Skip to content

GSD 1.10, and planning docs that match what shipped - #228

Merged
EduMenges merged 4 commits into
developfrom
chore/gsd-1.10-upgrade-and-planning-sync
Aug 10, 2026
Merged

GSD 1.10, and planning docs that match what shipped#228
EduMenges merged 4 commits into
developfrom
chore/gsd-1.10-upgrade-and-planning-sync

Conversation

@braianxde

Copy link
Copy Markdown

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

  • The roadmap admits the mobile nav shell and the capped dashboard exist. Both have been live in the app for days; neither was in ROADMAP.md. Both are marked as executed outside GSD, so nobody trusts their phase metadata over git.
  • STATE.md stopped 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-health reports 5 warnings instead of 25. Seventeen handoff files moved into the handoffs/ directory that already held eighteen. What's left is real, so the check is worth reading again.
  • GSD would have opened PRs against main. The base branch was never set, so it fell through to the GitHub default instead of develop.
  • A gate new in 1.10.0 is switched off. It demands an API coverage matrix from any phase touching an external service — for this repo that's CoinGecko, Banxa, SquidRouter and Reown, so nearly every phase.
  • PR descriptions get written for people. The open-pr skill 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.sh among them since AGENTS.md changed. No Dart in this diff, so flutter analyze and flutter test were not re-run and develop's baseline stands.

Deliberately not here

  • Four phases still report a missing VALIDATION.md. Closing it means re-running research on phases that are already done.
  • Phase 24 and 25's own PLAN.md and BRIEF.md still read in-progress and ready-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.
  • Nothing here reduces how much the agents write. There is no verbosity setting in GSD in any released version — that needs a rule, not a config key, and it needs a decision first.
  • 1.10.0 also installs a hook that blocks any write shrinking ROADMAP.md or STATE.md past 40%. Untested here; expect it the first time a prune is legitimate.

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
braianxde marked this pull request as ready for review August 8, 2026 15:30
@EduMenges
EduMenges merged commit bc780cd into develop Aug 10, 2026
8 checks passed
@EduMenges
EduMenges deleted the chore/gsd-1.10-upgrade-and-planning-sync branch August 10, 2026 12:44
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants