@opengsd/gsd-core 1.6.1 → 1.7.0-rc.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (119) hide show
  1. package/.claude-plugin/marketplace.json +20 -0
  2. package/.claude-plugin/plugin.json +1 -1
  3. package/.opencode/plugins/gsd-core.js +711 -0
  4. package/agents/gsd-advisor-researcher.md +2 -0
  5. package/agents/gsd-ai-researcher.md +1 -1
  6. package/agents/gsd-assumptions-analyzer.md +2 -0
  7. package/agents/gsd-code-fixer.md +2 -0
  8. package/agents/gsd-code-reviewer.md +2 -0
  9. package/agents/gsd-codebase-mapper.md +2 -0
  10. package/agents/gsd-debugger.md +2 -0
  11. package/agents/gsd-doc-writer.md +2 -0
  12. package/agents/gsd-eval-auditor.md +2 -0
  13. package/agents/gsd-executor.md +9 -6
  14. package/agents/gsd-integration-checker.md +2 -0
  15. package/agents/gsd-nyquist-auditor.md +2 -0
  16. package/agents/gsd-phase-researcher.md +2 -0
  17. package/agents/gsd-plan-checker.md +2 -0
  18. package/agents/gsd-planner.md +2 -0
  19. package/agents/gsd-project-researcher.md +2 -0
  20. package/agents/gsd-research-synthesizer.md +2 -0
  21. package/agents/gsd-roadmapper.md +2 -0
  22. package/agents/gsd-security-auditor.md +2 -0
  23. package/agents/gsd-ui-auditor.md +2 -0
  24. package/agents/gsd-ui-checker.md +2 -0
  25. package/agents/gsd-ui-researcher.md +2 -0
  26. package/agents/gsd-verifier.md +5 -2
  27. package/bin/gsd-mcp-server.js +31 -0
  28. package/bin/install.js +411 -1146
  29. package/commands/gsd/review.md +6 -0
  30. package/gemini-extension.json +1 -1
  31. package/gsd-core/bin/gsd-tools.cjs +134 -8
  32. package/gsd-core/bin/lib/adapter-declarative.cjs +35 -0
  33. package/gsd-core/bin/lib/adapter-imperative.cjs +52 -0
  34. package/gsd-core/bin/lib/assumption-delta.cjs +231 -0
  35. package/gsd-core/bin/lib/capability-lifecycle.cjs +7 -7
  36. package/gsd-core/bin/lib/capability-loader.cjs +45 -9
  37. package/gsd-core/bin/lib/capability-lock.cjs +2 -2
  38. package/gsd-core/bin/lib/capability-registry.cjs +891 -82
  39. package/gsd-core/bin/lib/capability-source.cjs +26 -11
  40. package/gsd-core/bin/lib/capability-validator.cjs +222 -2
  41. package/gsd-core/bin/lib/cli-skew-check.cjs +44 -0
  42. package/gsd-core/bin/lib/command-aliases.cjs +8 -0
  43. package/gsd-core/bin/lib/commands.cjs +2 -1
  44. package/gsd-core/bin/lib/config.cjs +27 -0
  45. package/gsd-core/bin/lib/embedding-adapter.cjs +27 -0
  46. package/gsd-core/bin/lib/external-descriptor-trust.cjs +70 -0
  47. package/gsd-core/bin/lib/frontmatter.cjs +53 -6
  48. package/gsd-core/bin/lib/handshake-serialized.cjs +70 -0
  49. package/gsd-core/bin/lib/hook-bus.cjs +81 -0
  50. package/gsd-core/bin/lib/host-integration-sdk.cjs +53 -0
  51. package/gsd-core/bin/lib/host-integration.cjs +469 -0
  52. package/gsd-core/bin/lib/init.cjs +35 -7
  53. package/gsd-core/bin/lib/install-engine.cjs +755 -0
  54. package/gsd-core/bin/lib/install-profiles.cjs +35 -4
  55. package/gsd-core/bin/lib/installer-migrations.cjs +1 -1
  56. package/gsd-core/bin/lib/mcp-server.cjs +194 -0
  57. package/gsd-core/bin/lib/milestone.cjs +68 -40
  58. package/gsd-core/bin/lib/model-adapter.cjs +50 -0
  59. package/gsd-core/bin/lib/phase-id.cjs +18 -0
  60. package/gsd-core/bin/lib/phase.cjs +57 -90
  61. package/gsd-core/bin/lib/phases-command-router.cjs +4 -3
  62. package/gsd-core/bin/lib/planning-workspace.cjs +1 -1
  63. package/gsd-core/bin/lib/probe-core.cjs +132 -2
  64. package/gsd-core/bin/lib/review-reviewer-selection.cjs +129 -13
  65. package/gsd-core/bin/lib/roadmap-command-router.cjs +3 -2
  66. package/gsd-core/bin/lib/roadmap-parser.cjs +21 -11
  67. package/gsd-core/bin/lib/roadmap-upgrade.cjs +3 -2
  68. package/gsd-core/bin/lib/roadmap.cjs +33 -22
  69. package/gsd-core/bin/lib/runtime-artifact-conversion.cjs +65 -9
  70. package/gsd-core/bin/lib/runtime-artifact-install-plan.cjs +54 -4
  71. package/gsd-core/bin/lib/runtime-artifact-layout.cjs +5 -2
  72. package/gsd-core/bin/lib/runtime-hooks-surface.cjs +1 -1
  73. package/gsd-core/bin/lib/runtime-name-policy.cjs +160 -30
  74. package/gsd-core/bin/lib/shell-command-projection.cjs +16 -0
  75. package/gsd-core/bin/lib/stale-bake-guard.cjs +254 -0
  76. package/gsd-core/bin/lib/state-command-router.cjs +4 -0
  77. package/gsd-core/bin/lib/state-io.cjs +55 -0
  78. package/gsd-core/bin/lib/state-transition.cjs +1603 -0
  79. package/gsd-core/bin/lib/state.cjs +327 -683
  80. package/gsd-core/bin/lib/surface.cjs +4 -1
  81. package/gsd-core/bin/lib/validate.cjs +2 -1
  82. package/gsd-core/bin/lib/verify.cjs +6 -4
  83. package/gsd-core/bin/lib/workstream-inventory-builder.cjs +12 -2
  84. package/gsd-core/bin/lib/workstream-inventory.cjs +28 -0
  85. package/gsd-core/bin/lib/workstream.cjs +4 -4
  86. package/gsd-core/bin/shared/config-schema.manifest.json +9 -0
  87. package/gsd-core/references/agent-skills-bootstrap.md +60 -0
  88. package/gsd-core/references/honest-verifier.md +105 -0
  89. package/gsd-core/references/model-profiles.md +27 -0
  90. package/gsd-core/references/reviewer-instances.md +99 -0
  91. package/gsd-core/workflows/autonomous.md +30 -32
  92. package/gsd-core/workflows/complete-milestone.md +6 -10
  93. package/gsd-core/workflows/execute-phase.md +1 -1
  94. package/gsd-core/workflows/forensics.md +3 -3
  95. package/gsd-core/workflows/help/modes/full.md +1 -1
  96. package/gsd-core/workflows/manager.md +15 -15
  97. package/gsd-core/workflows/milestone-summary.md +3 -3
  98. package/gsd-core/workflows/new-milestone.md +6 -0
  99. package/gsd-core/workflows/plan-phase/steps/closed-phase-gate.md +42 -0
  100. package/gsd-core/workflows/plan-phase/steps/prd-express-path.md +102 -0
  101. package/gsd-core/workflows/plan-phase/steps/windows-troubleshooting.md +23 -0
  102. package/gsd-core/workflows/plan-phase.md +4 -159
  103. package/gsd-core/workflows/review.md +33 -2
  104. package/gsd-core/workflows/thread.md +4 -4
  105. package/gsd-core/workflows/verify-phase.md +11 -4
  106. package/gsd-core/workflows/verify-work.md +1 -2
  107. package/hooks/dist/gsd-graphify-update.sh +7 -1
  108. package/hooks/gsd-graphify-update.sh +7 -1
  109. package/package.json +6 -4
  110. package/scripts/ci-test-scope.cjs +38 -9
  111. package/scripts/lint-allow-test-rule-refs.allowlist.json +0 -1
  112. package/scripts/lint-regression-test-names.allowlist.json +3 -0
  113. package/scripts/lint-test-file-count.allowlist.json +19 -5
  114. package/scripts/mutation-matrix.cjs +45 -3
  115. package/scripts/prompt-injection-scan.sh +8 -0
  116. package/scripts/run-tests.cjs +51 -1
  117. package/scripts/sync-manifest-versions.cjs +66 -14
  118. package/skills/gsd-review/SKILL.md +6 -0
  119. package/scripts/lint-windows-test-portability.cjs +0 -178
@@ -19,6 +19,8 @@ Spawned by `discuss-phase` via `Task()`. You do NOT present output directly to t
19
19
 
20
20
  @~/.claude/gsd-core/references/untrusted-input-boundary.md
21
21
 
22
+ **agent_skills:** self-load per @~/.claude/gsd-core/references/agent-skills-bootstrap.md
23
+
22
24
  <documentation_lookup>
23
25
  @~/.claude/gsd-core/references/research-documentation-lookup.md
24
26
  </documentation_lookup>
@@ -72,7 +72,7 @@ Update AI-SPEC.md at `ai_spec_path`:
72
72
 
73
73
  **Section 3 — Framework Quick Reference:** real installation command, actual imports, working entry point pattern for `system_type`, abstractions table (3-5 rows), pitfall list with why-it's-a-pitfall notes, folder structure, Sources subsection with URLs.
74
74
 
75
- **Section 4 — Implementation Guidance:** specific model (e.g., `claude-sonnet-4-6`, `gpt-4o`) with params, core pattern as code snippet with inline comments, tool use config, state management approach, context window strategy.
75
+ **Section 4 — Implementation Guidance:** specific model (e.g., `claude-sonnet-5`, `gpt-4o`) with params, core pattern as code snippet with inline comments, tool use config, state management approach, context window strategy.
76
76
  </step>
77
77
 
78
78
  <step name="write_section_4b">
@@ -20,6 +20,8 @@ Spawned by `discuss-phase-assumptions` via `Task()`. You do NOT present output d
20
20
 
21
21
  @~/.claude/gsd-core/references/untrusted-input-boundary.md
22
22
 
23
+ **agent_skills:** self-load per @~/.claude/gsd-core/references/agent-skills-bootstrap.md
24
+
23
25
  <input>
24
26
  Agent receives via prompt:
25
27
 
@@ -24,6 +24,8 @@ Before fixing code, discover project context:
24
24
  **Project instructions:** Read `./CLAUDE.md` if it exists in the working directory. Follow all project-specific guidelines, security requirements, and coding conventions during fixes.
25
25
 
26
26
  **Project skills:** Check `.claude/skills/` or `.agents/skills/` directory if either exists:
27
+
28
+ **agent_skills:** self-load per @~/.claude/gsd-core/references/agent-skills-bootstrap.md
27
29
  1. List available skills (subdirectories)
28
30
  2. Read `SKILL.md` for each skill (lightweight index ~130 lines)
29
31
  3. Load specific `rules/*.md` files as needed during implementation
@@ -40,6 +40,8 @@ Before reviewing, discover project context:
40
40
  **Project instructions:** Read `./CLAUDE.md` if it exists in the working directory. Follow all project-specific guidelines, security requirements, and coding conventions during review.
41
41
 
42
42
  **Project skills:** Check `.claude/skills/` or `.agents/skills/` directory if either exists:
43
+
44
+ **agent_skills:** self-load per @~/.claude/gsd-core/references/agent-skills-bootstrap.md
43
45
  1. List available skills (subdirectories)
44
46
  2. Read `SKILL.md` for each skill (lightweight index ~130 lines)
45
47
  3. Load specific `rules/*.md` files as needed during review
@@ -29,6 +29,8 @@ If the prompt contains a `<required_reading>` block, you MUST use the `Read` too
29
29
  **Context budget:** Load project skills first (lightweight). Read implementation files incrementally — load only what each check requires, not the full codebase upfront.
30
30
 
31
31
  **Project skills:** Check `.claude/skills/` or `.agents/skills/` directory if either exists:
32
+
33
+ **agent_skills:** self-load per @~/.claude/gsd-core/references/agent-skills-bootstrap.md
32
34
  1. List available skills (subdirectories)
33
35
  2. Read `SKILL.md` for each skill (lightweight index ~130 lines)
34
36
  3. Load specific `rules/*.md` files as needed during implementation
@@ -40,6 +40,8 @@ Your job: Find the root cause through hypothesis testing, maintain debug file st
40
40
  - Load `rules/*.md` as needed during **investigation and fix**.
41
41
  - Follow skill rules relevant to the bug being investigated and the fix being applied.
42
42
 
43
+ **agent_skills:** self-load per @~/.claude/gsd-core/references/agent-skills-bootstrap.md
44
+
43
45
  <philosophy>
44
46
 
45
47
  @~/.claude/gsd-core/references/debugger-philosophy.md
@@ -34,6 +34,8 @@ If the prompt contains a `<required_reading>` block, you MUST use the `Read` too
34
34
  **Context budget:** Load project skills first (lightweight). Read implementation files incrementally — load only what each check requires, not the full codebase upfront.
35
35
 
36
36
  **Project skills:** Check `.claude/skills/` or `.agents/skills/` directory if either exists:
37
+
38
+ **agent_skills:** self-load per @~/.claude/gsd-core/references/agent-skills-bootstrap.md
37
39
  1. List available skills (subdirectories)
38
40
  2. Read `SKILL.md` for each skill (lightweight index ~130 lines)
39
41
  3. Load specific `rules/*.md` files as needed during implementation
@@ -39,6 +39,8 @@ Read `~/.claude/gsd-core/references/ai-evals.md` before auditing. This is your s
39
39
  **Context budget:** Load project skills first (lightweight). Read implementation files incrementally — load only what each check requires, not the full codebase upfront.
40
40
 
41
41
  **Project skills:** Check `.claude/skills/` or `.agents/skills/` directory if either exists:
42
+
43
+ **agent_skills:** self-load per @~/.claude/gsd-core/references/agent-skills-bootstrap.md
42
44
  1. List available skills (subdirectories)
43
45
  2. Read `SKILL.md` for each skill (lightweight index ~130 lines)
44
46
  3. Load specific `rules/*.md` files as needed during implementation
@@ -64,6 +64,8 @@ Before executing, discover project context:
64
64
  - Load `rules/*.md` as needed during **implementation**.
65
65
  - Follow skill rules relevant to the task you are about to commit.
66
66
 
67
+ **agent_skills:** self-load per @~/.claude/gsd-core/references/agent-skills-bootstrap.md
68
+
67
69
  **CLAUDE.md enforcement:** If `./CLAUDE.md` exists, treat its directives as hard constraints during execution. Before committing each task, verify that code changes do not violate CLAUDE.md rules (forbidden patterns, required conventions, mandated tools). If a task action would contradict a CLAUDE.md directive, apply the CLAUDE.md rule — it takes precedence over plan instructions. Document any CLAUDE.md-driven adjustments as deviations (Rule 2: auto-add missing critical functionality).
68
70
  </project_context>
69
71
 
@@ -689,7 +691,7 @@ Do NOT skip. Do NOT proceed to state updates if self-check fails.
689
691
  </self_check>
690
692
 
691
693
  <state_updates>
692
- After SUMMARY.md, update STATE.md using `gsd-tools query` state handlers (positional args; see `sdk/src/query/QUERY-HANDLERS.md`):
694
+ After SUMMARY.md, update STATE.md using `gsd-tools query` state handlers (named flags; see `sdk/src/query/QUERY-HANDLERS.md`):
693
695
 
694
696
  ```bash
695
697
  # Advance plan counter (handles edge cases automatically)
@@ -700,16 +702,17 @@ gsd_run query state.update-progress
700
702
 
701
703
  # Record execution metrics (phase, plan, duration, tasks, files)
702
704
  gsd_run query state.record-metric \
703
- "${PHASE}" "${PLAN}" "${DURATION}" "${TASK_COUNT}" "${FILE_COUNT}"
705
+ --phase "${PHASE}" --plan "${PLAN}" --duration "${DURATION}" \
706
+ --tasks "${TASK_COUNT}" --files "${FILE_COUNT}"
704
707
 
705
708
  # Add decisions (extract from SUMMARY.md key-decisions)
706
709
  for decision in "${DECISIONS[@]}"; do
707
- gsd_run query state.add-decision "${decision}"
710
+ gsd_run query state.add-decision --summary "${decision}"
708
711
  done
709
712
 
710
- # Update session info (timestamp, stopped-at, resume-file)
713
+ # Update session info (stopped-at, resume-file; timestamp set automatically)
711
714
  gsd_run query state.record-session \
712
- "" "Completed ${PHASE}-${PLAN}-PLAN.md" "None"
715
+ --stopped-at "Completed ${PHASE}-${PLAN}-PLAN.md" --resume-file "None"
713
716
  ```
714
717
 
715
718
  ```bash
@@ -736,7 +739,7 @@ gsd_run query requirements.mark-complete ${REQ_IDS}
736
739
 
737
740
  **For blockers found during execution:**
738
741
  ```bash
739
- gsd_run query state.add-blocker "Blocker description"
742
+ gsd_run query state.add-blocker --text "Blocker description"
740
743
  ```
741
744
  </state_updates>
742
745
 
@@ -35,6 +35,8 @@ Every expected cross-phase connection must resolve to WIRED (verified end-to-end
35
35
  **Context budget:** Load project skills first (lightweight). Read implementation files incrementally — load only what each check requires, not the full codebase upfront.
36
36
 
37
37
  **Project skills:** Check `.claude/skills/` or `.agents/skills/` directory if either exists:
38
+
39
+ **agent_skills:** self-load per @~/.claude/gsd-core/references/agent-skills-bootstrap.md
38
40
  1. List available skills (subdirectories)
39
41
  2. Read `SKILL.md` for each skill (lightweight index ~130 lines)
40
42
  3. Load specific `rules/*.md` files as needed during implementation
@@ -51,6 +51,8 @@ Read ALL files from `<required_reading>`. Extract:
51
51
  **Context budget:** Load project skills first (lightweight). Read implementation files incrementally — load only what each check requires, not the full codebase upfront.
52
52
 
53
53
  **Project skills:** Check `.claude/skills/` or `.agents/skills/` directory if either exists:
54
+
55
+ **agent_skills:** self-load per @~/.claude/gsd-core/references/agent-skills-bootstrap.md
54
56
  1. List available skills (subdirectories)
55
57
  2. Read `SKILL.md` for each skill (lightweight index ~130 lines)
56
58
  3. Load specific `rules/*.md` files as needed during implementation
@@ -50,6 +50,8 @@ Before researching, discover project context:
50
50
  - Load `rules/*.md` as needed during **research**.
51
51
  - Research output should account for project skill patterns and conventions.
52
52
 
53
+ **agent_skills:** self-load per @~/.claude/gsd-core/references/agent-skills-bootstrap.md
54
+
53
55
  **CLAUDE.md enforcement:** If `./CLAUDE.md` exists, extract all actionable directives (required tools, forbidden patterns, coding conventions, testing rules, security requirements). Include a `## Project Constraints (from CLAUDE.md)` section in RESEARCH.md listing these directives so the planner can verify compliance. Treat CLAUDE.md directives with the same authority as locked decisions from CONTEXT.md — research should not recommend approaches that contradict them.
54
56
  </project_context>
55
57
 
@@ -54,6 +54,8 @@ Before verifying, discover project context:
54
54
  **Project instructions:** Read `./CLAUDE.md` if it exists in the working directory. Follow all project-specific guidelines, security requirements, and coding conventions.
55
55
 
56
56
  **Project skills:** Check `.claude/skills/` or `.agents/skills/` directory if either exists:
57
+
58
+ **agent_skills:** self-load per @~/.claude/gsd-core/references/agent-skills-bootstrap.md
57
59
  1. List available skills (subdirectories)
58
60
  2. Read `SKILL.md` for each skill (lightweight index ~130 lines)
59
61
  3. Load specific `rules/*.md` files as needed during verification
@@ -46,6 +46,8 @@ Before planning, discover project context:
46
46
  **Project skills:** @~/.claude/gsd-core/references/project-skills-discovery.md
47
47
  - Load `rules/*.md` as needed during **planning**.
48
48
  - Ensure plans account for project skill patterns and conventions.
49
+
50
+ **agent_skills:** self-load per @~/.claude/gsd-core/references/agent-skills-bootstrap.md
49
51
  </project_context>
50
52
 
51
53
  <context_fidelity>
@@ -34,6 +34,8 @@ Your files feed the roadmap:
34
34
 
35
35
  @~/.claude/gsd-core/references/untrusted-input-boundary.md
36
36
 
37
+ **agent_skills:** self-load per @~/.claude/gsd-core/references/agent-skills-bootstrap.md
38
+
37
39
  <documentation_lookup>
38
40
  @~/.claude/gsd-core/references/research-documentation-lookup.md
39
41
  </documentation_lookup>
@@ -34,6 +34,8 @@ If the prompt contains a `<required_reading>` block, you MUST use the `Read` too
34
34
 
35
35
  @~/.claude/gsd-core/references/untrusted-input-boundary.md
36
36
 
37
+ **agent_skills:** self-load per @~/.claude/gsd-core/references/agent-skills-bootstrap.md
38
+
37
39
  <downstream_consumer>
38
40
  Your SUMMARY.md is consumed by the gsd-roadmapper agent which uses it to:
39
41
 
@@ -26,6 +26,8 @@ If the prompt contains a `<required_reading>` block, you MUST use the `Read` too
26
26
  **Context budget:** Load project skills first (lightweight). Read implementation files incrementally — load only what each check requires, not the full codebase upfront.
27
27
 
28
28
  **Project skills:** Check `.claude/skills/` or `.agents/skills/` directory if either exists:
29
+
30
+ **agent_skills:** self-load per @~/.claude/gsd-core/references/agent-skills-bootstrap.md
29
31
  1. List available skills (subdirectories)
30
32
  2. Read `SKILL.md` for each skill (lightweight index ~130 lines)
31
33
  3. Load specific `rules/*.md` files as needed during implementation
@@ -51,6 +51,8 @@ Read ALL files from `<required_reading>`. Extract:
51
51
  **Context budget:** Load project skills first (lightweight). Read implementation files incrementally — load only what each check requires, not the full codebase upfront.
52
52
 
53
53
  **Project skills:** Check `.claude/skills/` or `.agents/skills/` directory if either exists:
54
+
55
+ **agent_skills:** self-load per @~/.claude/gsd-core/references/agent-skills-bootstrap.md
54
56
  1. List available skills (subdirectories)
55
57
  2. Read `SKILL.md` for each skill (lightweight index ~130 lines)
56
58
  3. Load specific `rules/*.md` files as needed during implementation
@@ -49,6 +49,8 @@ Before auditing, discover project context:
49
49
  **Project instructions:** Read `./CLAUDE.md` if it exists in the working directory. Follow all project-specific guidelines.
50
50
 
51
51
  **Project skills:** Check `.claude/skills/` or `.agents/skills/` directory if either exists:
52
+
53
+ **agent_skills:** self-load per @~/.claude/gsd-core/references/agent-skills-bootstrap.md
52
54
  1. List available skills (subdirectories)
53
55
  2. Read `SKILL.md` for each skill
54
56
  3. Do NOT load full `AGENTS.md` files (100KB+ context cost)
@@ -30,6 +30,8 @@ Before verifying, discover project context:
30
30
  **Project instructions:** Read `./CLAUDE.md` if it exists in the working directory. Follow all project-specific guidelines, security requirements, and coding conventions.
31
31
 
32
32
  **Project skills:** Check `.claude/skills/` or `.agents/skills/` directory if either exists:
33
+
34
+ **agent_skills:** self-load per @~/.claude/gsd-core/references/agent-skills-bootstrap.md
33
35
  1. List available skills (subdirectories)
34
36
  2. Read `SKILL.md` for each skill (lightweight index ~130 lines)
35
37
  3. Load specific `rules/*.md` files as needed during verification
@@ -39,6 +39,8 @@ Before researching, discover project context:
39
39
  **Project instructions:** Read `./CLAUDE.md` if it exists in the working directory. Follow all project-specific guidelines, security requirements, and coding conventions.
40
40
 
41
41
  **Project skills:** Check `.claude/skills/` or `.agents/skills/` directory if either exists:
42
+
43
+ **agent_skills:** self-load per @~/.claude/gsd-core/references/agent-skills-bootstrap.md
42
44
  1. List available skills (subdirectories)
43
45
  2. Read `SKILL.md` for each skill (lightweight index ~130 lines)
44
46
  3. Load specific `rules/*.md` files as needed during research
@@ -52,14 +52,16 @@ Before verifying, discover project context:
52
52
  **Project skills:** @~/.claude/gsd-core/references/project-skills-discovery.md
53
53
  - Load `rules/*.md` as needed during **verification**.
54
54
  - Apply skill rules when scanning for anti-patterns and verifying quality.
55
+
56
+ **agent_skills:** self-load per @~/.claude/gsd-core/references/agent-skills-bootstrap.md
55
57
  </project_context>
56
58
 
57
59
  <core_principle>
58
60
  **Task completion ≠ Goal achievement**
59
61
 
60
- A task "create chat component" can be marked complete when the component is a placeholder. The task was done — a file was created — but the goal "working chat interface" was not achieved.
62
+ A "create chat component" task can be complete with a placeholder file — task done, goal "working chat interface" missed.
61
63
 
62
- Goal-backward verification starts from the outcome and works backwards:
64
+ Start from the outcome and work backwards:
63
65
 
64
66
  1. What must be TRUE for the goal to be achieved?
65
67
  2. What must EXIST for those truths to hold?
@@ -197,6 +199,7 @@ For each truth:
197
199
  - A pre-existing test exercises the transition/invariant and passes (confirm via Step 7b's single-named-test path) → ✓ VERIFIED.
198
200
  - No such test exists, or it can't run without a server/state mutation → ⚠️ PRESENT_BEHAVIOR_UNVERIFIED. Emit a human-verification item (Step 8) and do not count it toward the verified score (Step 9).
199
201
  - An accepted override (Step 3b) carries the truth as PASSED (override), exactly as it does for a FAILED truth.
202
+ 5b. **Non-inferable (`backstop`) truths:** a `verification: backstop` truth (via `truthVerification()`) abstains unless confirmed by explicit evidence — mark `insufficient_spec` -> a human-verification item -> `human_needed`. See `references/honest-verifier.md`.
200
203
  6. Determine truth status
201
204
 
202
205
  ## Step 3b: Check Verification Overrides
@@ -0,0 +1,31 @@
1
+ #!/usr/bin/env node
2
+ 'use strict';
3
+ /**
4
+ * gsd-mcp-server — companion MCP server bin entry (ADR-1239 Phase C-2 / #1681).
5
+ *
6
+ * Lives at top-level bin/ (alongside install.js) — it is a PACKAGE bin the host
7
+ * spawns via `npx gsd-mcp-server` (or the global bin), NOT a per-runtime
8
+ * artifact copied into a host's config dir. (Placing it under gsd-core/bin/
9
+ * would leak it into every runtime install + break golden parity.)
10
+ *
11
+ * A stdio JSON-RPC 2.0 server exposing GSD interface points 1 (command) + 5
12
+ * (state IO) so any MCP-consuming host (Claude/Codex/OpenCode/VS Code/Gemini/
13
+ * Cursor/Cline/Hermes) can drive GSD with no bespoke plugin. Delegates to the
14
+ * tested server module (gsd-core/bin/lib/mcp-server.cjs runServer). Reads
15
+ * line-delimited JSON-RPC from stdin, writes one response + newline per
16
+ * request, exits cleanly when stdin closes.
17
+ *
18
+ * The protocol logic (handleMessage) + the injectable-stream loop (runServer)
19
+ * are unit-tested in tests/gsd-mcp-server.test.cjs; the process lifecycle
20
+ * (spawn → JSON-RPC → clean exit) in tests/gsd-mcp-server-bin.test.cjs.
21
+ */
22
+ const { runServer } = require('../gsd-core/bin/lib/mcp-server.cjs');
23
+
24
+ runServer({
25
+ input: process.stdin,
26
+ output: process.stdout,
27
+ ctx: { cwd: process.cwd() },
28
+ }).catch((err) => {
29
+ process.stderr.write(String((err && err.message) || err) + '\n');
30
+ process.exit(1);
31
+ });