Skip to content

Commit 5fd3923

Browse files
authored
Restore topology command dispatch and fix stale soon badges (#180)
## Summary - `specsync topology` was silently broken by PR #174's rebase (its source branch predated the command's dispatch wiring) — restores `"topology": true` in `knownSubcommands` and the `case "topology": runTopology(rest)` arm. - Drops the stale `"status": "soon"` badge from three feature cards on specsync.se whose features actually shipped weeks ago (design notes overflow #139, topology #168, adopt #160). Found while verifying the #174/#177 deploys were fully correct. Closes #179 🤖 Generated with [Claude Code](https://claude.com/claude-code)
1 parent c7fc2e4 commit 5fd3923

4 files changed

Lines changed: 35 additions & 11 deletions

File tree

‎cmd/specsync/main.go‎

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ var knownSubcommands = map[string]bool{
3333
"sync": true, "audit": true, "audit-tasks": true, "validate": true,
3434
"spinoff": true, "pr-body": true, "verify": true,
3535
"agent-help": true, "doctor": true, "idea": true, "ideas": true, "archive": true,
36-
"epic": true, "adopt": true,
36+
"epic": true, "adopt": true, "topology": true,
3737
}
3838

3939
// knownConfusions maps a word someone might reach for by habit (e.g. git's
@@ -94,7 +94,7 @@ func deprecatedSlugFlag(args []string) error {
9494
func main() {
9595
cmd, rest, err := resolveSubcommand(os.Args[1:])
9696
if err != nil {
97-
fmt.Fprintf(os.Stderr, "specsync: %v\n\nRun with no subcommand (optionally with flags) to sync, or use one of: pull, adopt, link, scan, trace, release-plan, changelog, install-skill, changes, set-stage, set-priority, note, audit, audit-tasks, validate, spinoff, pr-body, verify, idea, ideas, archive, epic\n", err)
97+
fmt.Fprintf(os.Stderr, "specsync: %v\n\nRun with no subcommand (optionally with flags) to sync, or use one of: pull, adopt, link, scan, trace, release-plan, changelog, install-skill, changes, set-stage, set-priority, note, audit, audit-tasks, validate, spinoff, pr-body, verify, idea, ideas, archive, epic, topology\n", err)
9898
os.Exit(2)
9999
}
100100

@@ -151,6 +151,8 @@ func main() {
151151
runArchive(rest)
152152
case "epic":
153153
runEpic(rest)
154+
case "topology":
155+
runTopology(rest)
154156
default:
155157
runSync(rest)
156158
}
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
# Restore the topology command and fix stale "soon" badges on the site
2+
3+
## Why
4+
PR #174 (store support) was rebased from a branch that predated two pieces of
5+
already-shipped work: the `topology` subcommand's dispatch wiring in
6+
`cmd/specsync/main.go`, and the "See who's already working what" feature card
7+
on specsync.se. The flat-diff reapplication silently dropped the `topology`
8+
case from `knownSubcommands` and the `main()` switch, so `specsync topology`
9+
now fails with "unknown subcommand" even though `runTopology` and all its
10+
tests are still present and working.
11+
12+
Separately, while reviewing the site after that merge: three feature cards
13+
(design notes overflow #139, topology #168, adopt #160) still carry a "soon"
14+
badge even though all three shipped weeks ago.
15+
16+
## What Changes
17+
- Restore `"topology": true` in `knownSubcommands`, the `case "topology":
18+
runTopology(rest)` dispatch arm, and `topology` in the subcommand list
19+
printed on an unknown-subcommand error.
20+
- Drop the stale `"status": "soon"` / `"issue"` fields from the three
21+
already-shipped feature cards in `site/features.json`.
22+
23+
## Impact
24+
- Affected code: `cmd/specsync/main.go`, `site/features.json`
25+
- No spec delta: restores previously-specified, previously-tested behavior
26+
that regressed in a merge; doesn't change any contract.
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
- [x] Restore topology to knownSubcommands and the dispatch switch
2+
- [x] Drop stale soon/issue fields from the three shipped feature cards

‎site/features.json‎

Lines changed: 3 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -9,9 +9,7 @@
99
"group": "plan",
1010
"icon": "flow",
1111
"title": "Design notes survive the worktree",
12-
"body": "A <code>design.md</code> renders as <code>## Design notes</code> in the synced issue, so decisions made while planning aren't lost if the local worktree is force-removed. Oversized notes overflow to a linked issue comment instead of getting truncated.",
13-
"status": "soon",
14-
"issue": 139
12+
"body": "A <code>design.md</code> renders as <code>## Design notes</code> in the synced issue, so decisions made while planning aren't lost if the local worktree is force-removed. Oversized notes overflow to a linked issue comment instead of getting truncated."
1513
},
1614
{
1715
"group": "plan",
@@ -23,9 +21,7 @@
2321
"group": "plan",
2422
"icon": "flow",
2523
"title": "See who's already working what",
26-
"body": "<code>specsync topology</code> joins every change with its tracker issue, git branch, and worktree across coordinated stores — a read-only check before an agent starts, so it doesn't duplicate work already in flight.",
27-
"status": "soon",
28-
"issue": 168
24+
"body": "<code>specsync topology</code> joins every change with its tracker issue, git branch, and worktree across coordinated stores — a read-only check before an agent starts, so it doesn't duplicate work already in flight."
2925
},
3026
{
3127
"group": "plan",
@@ -49,9 +45,7 @@
4945
"group": "collaborate",
5046
"icon": "idempotent",
5147
"title": "Adopt an existing issue",
52-
"body": "<code>specsync adopt -issue 3691 -change my-change</code> binds a change and an issue that already exist independently, writing the ref cache before touching the issue body so the link holds immediately instead of racing search indexing.",
53-
"status": "soon",
54-
"issue": 160
48+
"body": "<code>specsync adopt -issue 3691 -change my-change</code> binds a change and an issue that already exist independently, writing the ref cache before touching the issue body so the link holds immediately instead of racing search indexing."
5549
},
5650
{
5751
"group": "collaborate",

0 commit comments

Comments
 (0)