gsd-opencode 1.33.3 → 1.35.0

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 (118) hide show
  1. package/agents/gsd-advisor-researcher.md +23 -0
  2. package/agents/gsd-ai-researcher.md +142 -0
  3. package/agents/gsd-code-fixer.md +523 -0
  4. package/agents/gsd-code-reviewer.md +361 -0
  5. package/agents/gsd-debugger.md +14 -1
  6. package/agents/gsd-domain-researcher.md +162 -0
  7. package/agents/gsd-eval-auditor.md +170 -0
  8. package/agents/gsd-eval-planner.md +161 -0
  9. package/agents/gsd-executor.md +70 -7
  10. package/agents/gsd-framework-selector.md +167 -0
  11. package/agents/gsd-intel-updater.md +320 -0
  12. package/agents/gsd-phase-researcher.md +26 -0
  13. package/agents/gsd-plan-checker.md +12 -0
  14. package/agents/gsd-planner.md +16 -6
  15. package/agents/gsd-project-researcher.md +23 -0
  16. package/agents/gsd-ui-researcher.md +23 -0
  17. package/agents/gsd-verifier.md +55 -1
  18. package/commands/gsd/gsd-ai-integration-phase.md +36 -0
  19. package/commands/gsd/gsd-audit-fix.md +33 -0
  20. package/commands/gsd/gsd-autonomous.md +1 -0
  21. package/commands/gsd/gsd-code-review-fix.md +52 -0
  22. package/commands/gsd/gsd-code-review.md +55 -0
  23. package/commands/gsd/gsd-eval-review.md +32 -0
  24. package/commands/gsd/gsd-explore.md +27 -0
  25. package/commands/gsd/gsd-from-gsd2.md +45 -0
  26. package/commands/gsd/gsd-import.md +36 -0
  27. package/commands/gsd/gsd-intel.md +183 -0
  28. package/commands/gsd/gsd-next.md +2 -0
  29. package/commands/gsd/gsd-reapply-patches.md +58 -3
  30. package/commands/gsd/gsd-review.md +4 -2
  31. package/commands/gsd/gsd-scan.md +26 -0
  32. package/commands/gsd/gsd-undo.md +34 -0
  33. package/commands/gsd/gsd-workstreams.md +6 -6
  34. package/get-shit-done/bin/gsd-tools.cjs +143 -5
  35. package/get-shit-done/bin/lib/commands.cjs +10 -2
  36. package/get-shit-done/bin/lib/config.cjs +71 -37
  37. package/get-shit-done/bin/lib/core.cjs +70 -8
  38. package/get-shit-done/bin/lib/gsd2-import.cjs +511 -0
  39. package/get-shit-done/bin/lib/init.cjs +20 -6
  40. package/get-shit-done/bin/lib/intel.cjs +660 -0
  41. package/get-shit-done/bin/lib/learnings.cjs +378 -0
  42. package/get-shit-done/bin/lib/milestone.cjs +25 -15
  43. package/get-shit-done/bin/lib/model-profiles.cjs +17 -17
  44. package/get-shit-done/bin/lib/phase.cjs +148 -112
  45. package/get-shit-done/bin/lib/roadmap.cjs +12 -5
  46. package/get-shit-done/bin/lib/security.cjs +119 -0
  47. package/get-shit-done/bin/lib/state.cjs +283 -221
  48. package/get-shit-done/bin/lib/template.cjs +8 -4
  49. package/get-shit-done/bin/lib/verify.cjs +42 -5
  50. package/get-shit-done/references/ai-evals.md +156 -0
  51. package/get-shit-done/references/ai-frameworks.md +186 -0
  52. package/get-shit-done/references/common-bug-patterns.md +114 -0
  53. package/get-shit-done/references/few-shot-examples/plan-checker.md +73 -0
  54. package/get-shit-done/references/few-shot-examples/verifier.md +109 -0
  55. package/get-shit-done/references/gates.md +70 -0
  56. package/get-shit-done/references/ios-scaffold.md +123 -0
  57. package/get-shit-done/references/model-profile-resolution.md +6 -7
  58. package/get-shit-done/references/model-profiles.md +20 -14
  59. package/get-shit-done/references/planning-config.md +237 -0
  60. package/get-shit-done/references/thinking-models-debug.md +44 -0
  61. package/get-shit-done/references/thinking-models-execution.md +50 -0
  62. package/get-shit-done/references/thinking-models-planning.md +62 -0
  63. package/get-shit-done/references/thinking-models-research.md +50 -0
  64. package/get-shit-done/references/thinking-models-verification.md +55 -0
  65. package/get-shit-done/references/thinking-partner.md +96 -0
  66. package/get-shit-done/references/universal-anti-patterns.md +6 -1
  67. package/get-shit-done/references/verification-overrides.md +227 -0
  68. package/get-shit-done/templates/AI-SPEC.md +246 -0
  69. package/get-shit-done/workflows/add-tests.md +3 -0
  70. package/get-shit-done/workflows/add-todo.md +2 -0
  71. package/get-shit-done/workflows/ai-integration-phase.md +284 -0
  72. package/get-shit-done/workflows/audit-fix.md +154 -0
  73. package/get-shit-done/workflows/autonomous.md +33 -2
  74. package/get-shit-done/workflows/check-todos.md +2 -0
  75. package/get-shit-done/workflows/cleanup.md +2 -0
  76. package/get-shit-done/workflows/code-review-fix.md +497 -0
  77. package/get-shit-done/workflows/code-review.md +515 -0
  78. package/get-shit-done/workflows/complete-milestone.md +40 -15
  79. package/get-shit-done/workflows/diagnose-issues.md +1 -1
  80. package/get-shit-done/workflows/discovery-phase.md +3 -1
  81. package/get-shit-done/workflows/discuss-phase-assumptions.md +1 -1
  82. package/get-shit-done/workflows/discuss-phase.md +21 -7
  83. package/get-shit-done/workflows/do.md +2 -0
  84. package/get-shit-done/workflows/docs-update.md +2 -0
  85. package/get-shit-done/workflows/eval-review.md +155 -0
  86. package/get-shit-done/workflows/execute-phase.md +307 -57
  87. package/get-shit-done/workflows/execute-plan.md +64 -93
  88. package/get-shit-done/workflows/explore.md +136 -0
  89. package/get-shit-done/workflows/help.md +1 -1
  90. package/get-shit-done/workflows/import.md +273 -0
  91. package/get-shit-done/workflows/inbox.md +387 -0
  92. package/get-shit-done/workflows/manager.md +4 -10
  93. package/get-shit-done/workflows/new-milestone.md +3 -1
  94. package/get-shit-done/workflows/new-project.md +2 -0
  95. package/get-shit-done/workflows/new-workspace.md +2 -0
  96. package/get-shit-done/workflows/next.md +56 -0
  97. package/get-shit-done/workflows/note.md +2 -0
  98. package/get-shit-done/workflows/plan-phase.md +97 -17
  99. package/get-shit-done/workflows/plant-seed.md +3 -0
  100. package/get-shit-done/workflows/pr-branch.md +41 -13
  101. package/get-shit-done/workflows/profile-user.md +4 -2
  102. package/get-shit-done/workflows/quick.md +99 -4
  103. package/get-shit-done/workflows/remove-workspace.md +2 -0
  104. package/get-shit-done/workflows/review.md +53 -6
  105. package/get-shit-done/workflows/scan.md +98 -0
  106. package/get-shit-done/workflows/secure-phase.md +2 -0
  107. package/get-shit-done/workflows/settings.md +18 -3
  108. package/get-shit-done/workflows/ship.md +3 -0
  109. package/get-shit-done/workflows/ui-phase.md +10 -2
  110. package/get-shit-done/workflows/ui-review.md +2 -0
  111. package/get-shit-done/workflows/undo.md +314 -0
  112. package/get-shit-done/workflows/update.md +2 -0
  113. package/get-shit-done/workflows/validate-phase.md +2 -0
  114. package/get-shit-done/workflows/verify-phase.md +83 -0
  115. package/get-shit-done/workflows/verify-work.md +12 -1
  116. package/package.json +1 -1
  117. package/skills/gsd-code-review/SKILL.md +48 -0
  118. package/skills/gsd-code-review-fix/SKILL.md +44 -0
@@ -551,17 +551,17 @@ After user selects gray areas in present_gray_areas, spawn parallel research age
551
551
 
552
552
  1. Display brief status: "Researching {N} areas..."
553
553
 
554
- 2. For EACH user-selected gray area, spawn a relevant subagent using `@subagent prompt` syntax in parallel:
554
+ 2. For EACH user-selected gray area, spawn a task() in parallel:
555
555
 
556
556
  @gsd-advisor-researcher "First, read @$HOME/.config/opencode/agents/gsd-advisor-researcher.md for your role and instructions.
557
557
 
558
- <gray_area>{area_name}: {area_description from gray area identification}</gray_area>
559
- <phase_context>{phase_goal and description from ROADMAP.md}</phase_context>
560
- <project_context>{project name and brief description from PROJECT.md}</project_context>
561
- <calibration_tier>{resolved calibration tier: full_maturity | standard | minimal_decisive}</calibration_tier>
558
+ <gray_area>{area_name}: {area_description from gray area identification}</gray_area>
559
+ <phase_context>{phase_goal and description from ROADMAP.md}</phase_context>
560
+ <project_context>{project name and brief description from PROJECT.md}</project_context>
561
+ <calibration_tier>{resolved calibration tier: full_maturity | standard | minimal_decisive}</calibration_tier>
562
562
 
563
- Research this gray area and return a structured comparison table with rationale.
564
- ${AGENT_SKILLS_ADVISOR}"
563
+ Research this gray area and return a structured comparison table with rationale.
564
+ ${AGENT_SKILLS_ADVISOR}"
565
565
 
566
566
  All subagents spawn simultaneously — do NOT wait for one before starting the next.
567
567
 
@@ -602,6 +602,20 @@ Table-first discussion flow — present research-backed comparison tables, then
602
602
  - If user picks from table options → record as locked decision for that area
603
603
  - If user picks "Other" → receive their input, reflect it back for confirmation, record
604
604
 
605
+ **Thinking partner (conditional):**
606
+ If `features.thinking_partner` is enabled in config, check the user's answer for tradeoff signals
607
+ (see `references/thinking-partner.md` for signal list). If tradeoff detected:
608
+
609
+ ```
610
+ I notice competing priorities here — {option_A} optimizes for {goal_A} while {option_B} optimizes for {goal_B}.
611
+
612
+ Want me to think through the tradeoffs before we lock this in?
613
+ [Yes, analyze] / [No, decision made]
614
+ ```
615
+
616
+ If yes: provide 3-5 bullet analysis (what each optimizes/sacrifices, alignment with PROJECT.md goals, recommendation). Then return to normal flow.
617
+ If no or thinking_partner disabled: continue to next area.
618
+
605
619
  4. **After recording pick, OpenCode decides whether follow-up questions are needed:**
606
620
  - If the pick has ambiguity that would affect downstream planning → ask 1-2 targeted follow-up questions using question
607
621
  - If the pick is clear and self-contained → move to next area
@@ -11,6 +11,8 @@ read all files referenced by the invoking prompt's execution_context before star
11
11
  <step name="validate">
12
12
  **Check for input.**
13
13
 
14
+
15
+ **Text mode (`workflow.text_mode: true` in config or `--text` flag):** Set `TEXT_MODE=true` if `--text` is present in `$ARGUMENTS` OR `text_mode` from init JSON is `true`. When TEXT_MODE is active, replace every `question` call with a plain-text numbered list and ask the user to type their choice number. This is required for non-OpenCode runtimes (OpenAI Codex, Gemini CLI, etc.) where `question` is not available.
14
16
  If `$ARGUMENTS` is empty, ask via question:
15
17
 
16
18
  ```
@@ -84,6 +84,8 @@ Assemble the complete doc queue from always-on docs plus conditional docs from c
84
84
  If CONTRIBUTING.md is in the conditional queue AND does NOT appear in the `existing_docs` array from init JSON:
85
85
 
86
86
  1. If `--force` is present in `$ARGUMENTS`: skip this check, include CONTRIBUTING.md in the queue.
87
+
88
+ **Text mode (`workflow.text_mode: true` in config or `--text` flag):** Set `TEXT_MODE=true` if `--text` is present in `$ARGUMENTS` OR `text_mode` from init JSON is `true`. When TEXT_MODE is active, replace every `question` call with a plain-text numbered list and ask the user to type their choice number. This is required for non-OpenCode runtimes (OpenAI Codex, Gemini CLI, etc.) where `question` is not available.
87
89
  2. Otherwise, use question to confirm:
88
90
 
89
91
  ```
@@ -0,0 +1,155 @@
1
+ <objective>
2
+ Retroactive audit of an implemented AI phase's evaluation coverage. Standalone command that works on any GSD-managed AI phase. Produces a scored EVAL-REVIEW.md with gap analysis and remediation plan.
3
+
4
+ Use after /gsd-execute-phase to verify that the evaluation strategy from AI-SPEC.md was actually implemented. Mirrors the pattern of /gsd-ui-review and /gsd-validate-phase.
5
+ </objective>
6
+
7
+ <required_reading>
8
+ @$HOME/.config/opencode/get-shit-done/references/ai-evals.md
9
+ </required_reading>
10
+
11
+ <process>
12
+
13
+ ## 0. Initialize
14
+
15
+ ```bash
16
+ INIT=$(node "$HOME/.config/opencode/get-shit-done/bin/gsd-tools.cjs" init phase-op "${PHASE_ARG}")
17
+ if [[ "$INIT" == @file:* ]]; then INIT=$(cat "${INIT#@file:}"); fi
18
+ ```
19
+
20
+ Parse: `phase_dir`, `phase_number`, `phase_name`, `phase_slug`, `padded_phase`, `commit_docs`.
21
+
22
+ ```bash
23
+ AUDITOR_MODEL=$(node "$HOME/.config/opencode/get-shit-done/bin/gsd-tools.cjs" resolve-model gsd-eval-auditor --raw)
24
+ ```
25
+
26
+ Display banner:
27
+ ```
28
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
29
+ GSD ► EVAL AUDIT — PHASE {N}: {name}
30
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
31
+ ```
32
+
33
+ ## 1. Detect Input State
34
+
35
+ ```bash
36
+ SUMMARY_FILES=$(ls "${PHASE_DIR}"/*-SUMMARY.md 2>/dev/null)
37
+ AI_SPEC_FILE=$(ls "${PHASE_DIR}"/*-AI-SPEC.md 2>/dev/null | head -1)
38
+ EVAL_REVIEW_FILE=$(ls "${PHASE_DIR}"/*-EVAL-REVIEW.md 2>/dev/null | head -1)
39
+ ```
40
+
41
+ **State A** — AI-SPEC.md + SUMMARY.md exist: Full audit against spec
42
+ **State B** — SUMMARY.md exists, no AI-SPEC.md: Audit against general best practices
43
+ **State C** — No SUMMARY.md: Exit — "Phase {N} not executed. Run /gsd-execute-phase {N} first."
44
+
45
+
46
+ **Text mode (`workflow.text_mode: true` in config or `--text` flag):** Set `TEXT_MODE=true` if `--text` is present in `$ARGUMENTS` OR `text_mode` from init JSON is `true`. When TEXT_MODE is active, replace every `question` call with a plain-text numbered list and ask the user to type their choice number. This is required for non-OpenCode runtimes (OpenAI Codex, Gemini CLI, etc.) where `question` is not available.
47
+ **If `EVAL_REVIEW_FILE` non-empty:** Use question:
48
+ - header: "Existing Eval Review"
49
+ - question: "EVAL-REVIEW.md already exists for Phase {N}."
50
+ - options:
51
+ - "Re-audit — run fresh audit"
52
+ - "View — display current review and exit"
53
+
54
+ If "View": display file, exit.
55
+ If "Re-audit": continue.
56
+
57
+ **If State B (no AI-SPEC.md):** Warn:
58
+ ```
59
+ No AI-SPEC.md found for Phase {N}.
60
+ Audit will evaluate against general AI eval best practices rather than a phase-specific plan.
61
+ Consider running /gsd-ai-integration-phase {N} before implementation next time.
62
+ ```
63
+ Continue (non-blocking).
64
+
65
+ ## 2. Gather Context Paths
66
+
67
+ Build file list for auditor:
68
+ - AI-SPEC.md (if exists — the planned eval strategy)
69
+ - All SUMMARY.md files in phase dir
70
+ - All PLAN.md files in phase dir
71
+
72
+ ## 3. Spawn gsd-eval-auditor
73
+
74
+ ```
75
+ ◆ Spawning eval auditor...
76
+ ```
77
+
78
+ Build prompt:
79
+
80
+ ```markdown
81
+ read $HOME/.config/opencode/agents/gsd-eval-auditor.md for instructions.
82
+
83
+ <objective>
84
+ Conduct evaluation coverage audit of Phase {phase_number}: {phase_name}
85
+ {If AI-SPEC exists: "Audit against AI-SPEC.md evaluation plan."}
86
+ {If no AI-SPEC: "Audit against general AI eval best practices."}
87
+ </objective>
88
+
89
+ <files_to_read>
90
+ - {summary_paths}
91
+ - {plan_paths}
92
+ - {ai_spec_path if exists}
93
+ </files_to_read>
94
+
95
+ <input>
96
+ ai_spec_path: {ai_spec_path or "none"}
97
+ phase_dir: {phase_dir}
98
+ phase_number: {phase_number}
99
+ phase_name: {phase_name}
100
+ padded_phase: {padded_phase}
101
+ state: {A or B}
102
+ </input>
103
+ ```
104
+
105
+ Spawn as task with model `AUDITOR_MODEL`.
106
+
107
+ ## 4. Parse Auditor Result
108
+
109
+ read the written EVAL-REVIEW.md. Extract:
110
+ - `overall_score`
111
+ - `verdict` (PRODUCTION READY | NEEDS WORK | SIGNIFICANT GAPS | NOT IMPLEMENTED)
112
+ - `critical_gap_count`
113
+
114
+ ## 5. Display Summary
115
+
116
+ ```
117
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
118
+ GSD ► EVAL AUDIT COMPLETE — PHASE {N}: {name}
119
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
120
+
121
+ ◆ Score: {overall_score}/100
122
+ ◆ Verdict: {verdict}
123
+ ◆ Critical Gaps: {critical_gap_count}
124
+ ◆ Output: {eval_review_path}
125
+
126
+ {If PRODUCTION READY:}
127
+ Next step: /gsd-plan-phase (next phase) or deploy
128
+
129
+ {If NEEDS WORK:}
130
+ Address critical gaps in EVAL-REVIEW.md, then re-run /gsd-eval-review {N}
131
+
132
+ {If SIGNIFICANT GAPS or NOT IMPLEMENTED:}
133
+ Review AI-SPEC.md evaluation plan. Critical eval dimensions are not implemented.
134
+ Do not deploy until gaps are addressed.
135
+ ```
136
+
137
+ ## 6. Commit
138
+
139
+ **If `commit_docs` is true:**
140
+ ```bash
141
+ git add "${EVAL_REVIEW_FILE}"
142
+ git commit -m "docs({phase_slug}): add EVAL-REVIEW.md — score {overall_score}/100 ({verdict})"
143
+ ```
144
+
145
+ </process>
146
+
147
+ <success_criteria>
148
+ - [ ] Phase execution state detected correctly
149
+ - [ ] AI-SPEC.md presence handled (with or without)
150
+ - [ ] gsd-eval-auditor spawned with correct context
151
+ - [ ] EVAL-REVIEW.md written (by auditor)
152
+ - [ ] Score and verdict displayed to user
153
+ - [ ] Appropriate next steps surfaced based on verdict
154
+ - [ ] Committed if commit_docs enabled
155
+ </success_criteria>