feat(#3149): add dedicated init.debug entry point for /gsd:debug
/gsd:debug was one of the last workflows with no cmdInit* of its own: its Step 0 made three separate round-trips (state.load, resolve-model gsd-debugger, config-get workflow.tdd_mode) to assemble one context. Because no debug-scoped fact was computed at any entry point, ADR-1671 admission gate (2) could never be satisfied for debug — an applicability atom naming such a fact would evaluate FALSE forever and silently exclude its section. Adds cmdInitDebug (init.debug), registers it in the init router and the command-alias table, and collapses debug.md Step 0 to one call. Every field resolves through the same primitive the call it replaces used: loadConfig for commit_docs, withProjectRoot for response_language (#2402), planningPaths for debug_dir, resolveModelInternal for debugger_model, and the existing Boolean(workflow.tdd_mode) idiom for tdd_mode. PlanningPaths gains a debug field so state.load and init.debug share ONE debug-directory expression rather than two kept in sync by hand. state.load keeps emitting debug_dir: it is a shipped query surface with its own test anchor, so narrowing it would break unseen consumers for no gain. No WHEN_VOCABULARY atom and no gsd:section marker: gate (1), a consuming section of at least 400 bytes, belongs to the change that adds the section. Closes #3149 Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
@@ -159,6 +159,17 @@ own dedicated `cmdInit*` entry points (`cmdInitReview`,
|
||||
(`cmdInitDocsUpdate`, `cmdInitUpdate`, `cmdInitTransition`) plus an extension
|
||||
of the pre-existing `cmdInitNewMilestone`.
|
||||
|
||||
An entry point can also land **ahead of** the atom it will unblock. `#3149`
|
||||
gives `debug` a dedicated `cmdInitDebug` (`init.debug`) with no vocabulary
|
||||
change at all: `/gsd:debug` previously made three separate `gsd_run`
|
||||
round-trips and had no `cmdInit*` of its own, so gate (2) could never be
|
||||
satisfied for any debug-scoped fact. Shipping the entry point first satisfies
|
||||
gate (2) on its own schedule and leaves gate (1) — a consuming section of at
|
||||
least 400 bytes — to the change that actually adds the section. `debug` has no
|
||||
`<!-- gsd:section -->` markers yet, so it contributes no key to
|
||||
`section-manifest.json` and `init.debug`'s `section_manifest` field degrades to
|
||||
`null` (read everything) until it does.
|
||||
|
||||
### Compound conditions are resolved in the fact, never the grammar
|
||||
|
||||
`state:chunked-mode` looks, at the section-body level, like it should be a
|
||||
|
||||
Reference in New Issue
Block a user