GSD 1.10, and planning docs that match what shipped - #228
Merged
Conversation
Two were outright wrong. `git.base_branch` was unset, so GSD resolved the GitHub default and would have opened PRs against `main`, the release branch. `claude_md_path` pointed at ./.claude/CLAUDE.md, which does not exist — the real one is at the root. `auto_advance` goes off: it chained phases past the checkpoints Braian asks to be stopped at. `use_worktrees` was inherited as true by omission; the GSD maintainers recommend false for solo work, and there are reports of the teardown deleting a real node_modules in the main checkout. `api_coverage_gate` is new in 1.10.0 and defaults on. It demands a COVERAGE.md capability matrix from any phase touching an external API, which here means CoinGecko, Banxa, SquidRouter and Reown — it would block the seal on most phases we run. Off until we decide we want it. The rest bound hangs: a test gate that never times out, and a planner spawn that stalls with no detection, which the executor already had.
Both were live in the app and neither was in ROADMAP.md. Phase 24 is the mobile nav shell (centre dock, wallet header, two-section accounts sheet); phase 25 is the capped dashboard sections and the Assets page they forced into existence. Added with their locked decisions, the files they landed and their test coverage. Both carry an artifact-gap note, because the metadata lies: phase 24 has no SUMMARY and its PLAN still reads status: in-progress, and phase 25's BRIEF still reads ready-to-plan with no SUMMARY for 25-01. Jakub executed them outside GSD. The roadmap now says to trust git over the phase files rather than leaving the next reader to work that out. STATE.md contradicted itself and the repo — current_phase 14 in frontmatter, 23 in one body line, 22 in another, and a stopped_at claiming the 260806-hfe task was never pushed when it merged as #224. Counters and dates corrected, and a dated block now marks where the current position ends and the dual-track history begins. That history is kept, not rewritten.
…dy did GSD 1.10.0 reports every non-canonical file at the .planning/ root as a warning. Seventeen loose HANDOFF-*.md files meant health came back with 25 warnings, 18 of them noise, which buries the five that mean something. The subdirectory already existed and already held 18 handoffs — the convention drifted back to the root at some point rather than being a deliberate choice. Moved with git mv so the history follows. HANDOFF.json is a different artifact and stays at the root. WALK-260807-mobile.md goes to phase 24 instead: it is Jakub's iPhone walk of that phase's branch, and phase 25 already keeps its own walk beside its plans. AGENTS.md updated to the new path with the reason recorded, so it does not drift back a third time. copilot-instructions.md regenerated from it. Health: 25 warnings to 5.
The old guidance said "lead with what a user hits", which is right and did not work. #226 still opened with a hardcoded fontSize, a 180px box and chartUsesFrame() needing 220 — true, and useless to anyone deciding whether to open the diff. So the skill now shows rather than tells: that exact paragraph sits next to the version a reviewer needed ("on a phone the price ran the whole width of the card, and the chart under it showed no prices and no dates"). Same change, one of them actionable. Adds a shape and a budget — a screenful, past which you have started explaining the implementation — and a list of what stays out of the summary: pixel values, function and class names, file paths, widget internals. A number earns a mention only when someone will argue about it. Everything else goes in the commit message, where whoever wants it is already reading. Also reframes "deliberately not here" as product writing, and asks for what is unverified to be said out loud: a reviewer can accept a gap they can see and cannot forgive one they find themselves. Opening switches to /gsd-ship --draft, now that git.base_branch is pinned to develop. It generates its body from PLAN and SUMMARY, which is the machine summary this commit is trying to get away from, so the skill says to keep the verification numbers and rewrite the rest.
braianxde
marked this pull request as ready for review
August 8, 2026 15:30
EduMenges
approved these changes
Aug 10, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
GSD was three minor versions behind, and the planning docs had drifted far enough that they described a branch we no longer work on and two phases that had already shipped.
What changed
ROADMAP.md. Both are marked as executed outside GSD, so nobody trusts their phase metadata overgit.STATE.mdstopped contradicting itself. It named three different current phases in three places, and said the transactions-at-phone-width work was never pushed — it merged as Transactions page at phone width #224./gsd-healthreports 5 warnings instead of 25. Seventeen handoff files moved into thehandoffs/directory that already held eighteen. What's left is real, so the check is worth reading again.main. The base branch was never set, so it fell through to the GitHub default instead ofdevelop.open-prskill now carries a before/after taken from Markets: readable hero on a phone, timeframe tabs that actually fetch, and a table that yields to cards when it doesn't fit #226 rather than a principle that nobody could act on.Verification
Five gate scripts exit 0,
check_agent_rules_sync.shamong them sinceAGENTS.mdchanged. No Dart in this diff, soflutter analyzeandflutter testwere not re-run and develop's baseline stands.Deliberately not here
VALIDATION.md. Closing it means re-running research on phases that are already done.PLAN.mdandBRIEF.mdstill readin-progressandready-to-plan. Rewriting another author's phase files to match a conclusion drawn from the code seemed worse than documenting the gap where people read it.ROADMAP.mdorSTATE.mdpast 40%. Untested here; expect it the first time a prune is legitimate.