gsd-opencode 1.10.2 → 1.20.1

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 (164) hide show
  1. package/agents/gsd-codebase-mapper.md +29 -3
  2. package/agents/gsd-debugger.md +19 -21
  3. package/agents/gsd-executor.md +213 -528
  4. package/agents/gsd-integration-checker.md +20 -0
  5. package/agents/gsd-phase-researcher.md +189 -267
  6. package/agents/gsd-plan-checker.md +278 -279
  7. package/agents/gsd-planner.md +299 -490
  8. package/agents/gsd-project-researcher.md +103 -345
  9. package/agents/gsd-research-synthesizer.md +5 -22
  10. package/agents/gsd-roadmapper.md +43 -6
  11. package/agents/gsd-verifier.md +158 -377
  12. package/{lib → bin/dm/lib}/constants.js +10 -3
  13. package/{src → bin/dm/src}/commands/install.js +5 -4
  14. package/{src → bin/dm/src}/commands/uninstall.js +3 -1
  15. package/{src → bin/dm/src}/services/backup-manager.js +1 -1
  16. package/{src → bin/dm/src}/services/config.js +1 -1
  17. package/{src → bin/dm/src}/services/file-ops.js +20 -4
  18. package/{src → bin/dm/src}/services/health-checker.js +3 -1
  19. package/{src → bin/dm/src}/services/repair-service.js +3 -1
  20. package/{src → bin/dm/src}/services/settings.js +1 -1
  21. package/{src → bin/dm/src}/services/update-service.js +2 -2
  22. package/bin/gsd-install.js +0 -0
  23. package/bin/gsd.js +9 -9
  24. package/commands/gsd/gsd-add-phase.md +43 -0
  25. package/commands/gsd/gsd-add-todo.md +47 -0
  26. package/commands/gsd/gsd-audit-milestone.md +36 -0
  27. package/commands/gsd/gsd-check-todos.md +45 -0
  28. package/commands/gsd/gsd-cleanup.md +18 -0
  29. package/commands/gsd/{complete-milestone.md → gsd-complete-milestone.md} +1 -1
  30. package/commands/gsd/{debug.md → gsd-debug.md} +16 -21
  31. package/commands/gsd/{discuss-phase.md → gsd-discuss-phase.md} +6 -9
  32. package/commands/gsd/gsd-execute-phase.md +41 -0
  33. package/commands/gsd/gsd-health.md +22 -0
  34. package/commands/gsd/gsd-help.md +22 -0
  35. package/commands/gsd/gsd-insert-phase.md +32 -0
  36. package/commands/gsd/gsd-join-discord.md +18 -0
  37. package/commands/gsd/{list-phase-assumptions.md → gsd-list-phase-assumptions.md} +3 -7
  38. package/commands/gsd/{map-codebase.md → gsd-map-codebase.md} +3 -3
  39. package/commands/gsd/gsd-new-milestone.md +44 -0
  40. package/commands/gsd/gsd-new-project.md +42 -0
  41. package/commands/gsd/gsd-pause-work.md +38 -0
  42. package/commands/gsd/gsd-plan-milestone-gaps.md +34 -0
  43. package/commands/gsd/gsd-plan-phase.md +44 -0
  44. package/commands/gsd/gsd-progress.md +24 -0
  45. package/commands/gsd/gsd-quick.md +41 -0
  46. package/commands/gsd/gsd-reapply-patches.md +119 -0
  47. package/commands/gsd/gsd-remove-phase.md +31 -0
  48. package/commands/gsd/{research-phase.md → gsd-research-phase.md} +38 -49
  49. package/commands/gsd/{resume-work.md → gsd-resume-work.md} +2 -2
  50. package/commands/gsd/gsd-set-profile.md +34 -0
  51. package/commands/gsd/gsd-settings.md +36 -0
  52. package/commands/gsd/gsd-update.md +37 -0
  53. package/commands/gsd/gsd-verify-work.md +38 -0
  54. package/get-shit-done/bin/gsd-tools.cjs +553 -0
  55. package/get-shit-done/bin/gsd-tools.test.cjs +2346 -0
  56. package/get-shit-done/bin/lib/commands.cjs +556 -0
  57. package/get-shit-done/bin/lib/config.cjs +162 -0
  58. package/get-shit-done/bin/lib/core.cjs +377 -0
  59. package/get-shit-done/bin/lib/frontmatter.cjs +299 -0
  60. package/get-shit-done/bin/lib/init.cjs +694 -0
  61. package/get-shit-done/bin/lib/milestone.cjs +215 -0
  62. package/get-shit-done/bin/lib/phase.cjs +877 -0
  63. package/get-shit-done/bin/lib/roadmap.cjs +298 -0
  64. package/get-shit-done/bin/lib/state.cjs +490 -0
  65. package/get-shit-done/bin/lib/template.cjs +222 -0
  66. package/get-shit-done/bin/lib/verify.cjs +772 -0
  67. package/get-shit-done/references/checkpoints.md +62 -364
  68. package/get-shit-done/references/decimal-phase-calculation.md +65 -0
  69. package/get-shit-done/references/git-integration.md +10 -16
  70. package/get-shit-done/references/git-planning-commit.md +38 -0
  71. package/get-shit-done/references/model-profile-resolution.md +34 -0
  72. package/get-shit-done/references/model-profiles.md +54 -66
  73. package/get-shit-done/references/phase-argument-parsing.md +61 -0
  74. package/get-shit-done/references/planning-config.md +112 -10
  75. package/get-shit-done/references/questioning.md +4 -0
  76. package/get-shit-done/references/ui-brand.md +1 -1
  77. package/get-shit-done/templates/UAT.md +1 -1
  78. package/get-shit-done/templates/VALIDATION.md +104 -0
  79. package/get-shit-done/templates/codebase/structure.md +6 -6
  80. package/get-shit-done/templates/config.json +37 -0
  81. package/get-shit-done/templates/context.md +2 -10
  82. package/get-shit-done/templates/continue-here.md +6 -6
  83. package/get-shit-done/templates/debug-subagent-prompt.md +2 -2
  84. package/get-shit-done/templates/discovery.md +6 -6
  85. package/get-shit-done/templates/milestone-archive.md +3 -3
  86. package/get-shit-done/templates/phase-prompt.md +9 -7
  87. package/get-shit-done/templates/planner-subagent-prompt.md +6 -6
  88. package/get-shit-done/templates/research-project/ARCHITECTURE.md +1 -1
  89. package/get-shit-done/templates/research.md +29 -6
  90. package/get-shit-done/templates/roadmap.md +1 -1
  91. package/get-shit-done/templates/state.md +0 -30
  92. package/get-shit-done/templates/summary-complex.md +59 -0
  93. package/get-shit-done/templates/summary-minimal.md +41 -0
  94. package/get-shit-done/templates/summary-standard.md +48 -0
  95. package/get-shit-done/templates/summary.md +16 -37
  96. package/get-shit-done/templates/user-setup.md +1 -13
  97. package/get-shit-done/templates/verification-report.md +5 -5
  98. package/get-shit-done/workflows/add-phase.md +111 -0
  99. package/{commands/gsd → get-shit-done/workflows}/add-todo.md +24 -60
  100. package/{commands/gsd → get-shit-done/workflows}/audit-milestone.md +83 -63
  101. package/{commands/gsd → get-shit-done/workflows}/check-todos.md +21 -73
  102. package/get-shit-done/workflows/cleanup.md +152 -0
  103. package/get-shit-done/workflows/complete-milestone.md +251 -312
  104. package/get-shit-done/workflows/diagnose-issues.md +6 -31
  105. package/get-shit-done/workflows/discovery-phase.md +11 -11
  106. package/get-shit-done/workflows/discuss-phase.md +156 -49
  107. package/get-shit-done/workflows/execute-phase.md +238 -396
  108. package/get-shit-done/workflows/execute-plan.md +180 -1609
  109. package/get-shit-done/workflows/health.md +156 -0
  110. package/{commands/gsd → get-shit-done/workflows}/help.md +33 -35
  111. package/get-shit-done/workflows/insert-phase.md +129 -0
  112. package/get-shit-done/workflows/list-phase-assumptions.md +3 -3
  113. package/get-shit-done/workflows/map-codebase.md +73 -80
  114. package/get-shit-done/workflows/new-milestone.md +382 -0
  115. package/{commands/gsd → get-shit-done/workflows}/new-project.md +281 -234
  116. package/get-shit-done/workflows/oc-set-profile.md +320 -0
  117. package/{commands/gsd → get-shit-done/workflows}/pause-work.md +31 -43
  118. package/{commands/gsd → get-shit-done/workflows}/plan-milestone-gaps.md +29 -50
  119. package/get-shit-done/workflows/plan-phase.md +478 -0
  120. package/{commands/gsd → get-shit-done/workflows}/progress.md +64 -47
  121. package/get-shit-done/workflows/quick.md +453 -0
  122. package/get-shit-done/workflows/remove-phase.md +154 -0
  123. package/get-shit-done/workflows/research-phase.md +73 -0
  124. package/get-shit-done/workflows/resume-project.md +17 -26
  125. package/get-shit-done/workflows/set-profile.md +80 -0
  126. package/get-shit-done/workflows/settings.md +213 -0
  127. package/get-shit-done/workflows/transition.md +84 -104
  128. package/{commands/gsd → get-shit-done/workflows}/update.md +70 -28
  129. package/get-shit-done/workflows/verify-phase.md +106 -492
  130. package/get-shit-done/workflows/verify-work.md +26 -53
  131. package/package.json +7 -4
  132. package/rules/gsd-oc-work-hard.md +36 -0
  133. package/skills/gsd-oc-select-model/SKILL.md +348 -0
  134. package/skills/gsd-oc-select-model/scripts/select-models.cjs +268 -0
  135. package/agents/gsd-set-model.md +0 -287
  136. package/agents/gsd-set-profile.md +0 -239
  137. package/agents/gsd-settings.md +0 -749
  138. package/bin/install.js +0 -323
  139. package/commands/gsd/add-phase.md +0 -207
  140. package/commands/gsd/execute-phase.md +0 -339
  141. package/commands/gsd/insert-phase.md +0 -227
  142. package/commands/gsd/new-milestone.md +0 -721
  143. package/commands/gsd/plan-phase.md +0 -525
  144. package/commands/gsd/quick.md +0 -309
  145. package/commands/gsd/remove-phase.md +0 -349
  146. package/commands/gsd/set-model.md +0 -77
  147. package/commands/gsd/set-profile.md +0 -46
  148. package/commands/gsd/settings.md +0 -33
  149. package/commands/gsd/verify-work.md +0 -219
  150. package/commands/gsd/whats-new.md +0 -124
  151. /package/{src → bin/dm/src}/commands/check.js +0 -0
  152. /package/{src → bin/dm/src}/commands/config.js +0 -0
  153. /package/{src → bin/dm/src}/commands/list.js +0 -0
  154. /package/{src → bin/dm/src}/commands/repair.js +0 -0
  155. /package/{src → bin/dm/src}/commands/update.js +0 -0
  156. /package/{src → bin/dm/src}/services/manifest-manager.js +0 -0
  157. /package/{src → bin/dm/src}/services/migration-service.js +0 -0
  158. /package/{src → bin/dm/src}/services/scope-manager.js +0 -0
  159. /package/{src → bin/dm/src}/services/structure-detector.js +0 -0
  160. /package/{src → bin/dm/src}/utils/hash.js +0 -0
  161. /package/{src → bin/dm/src}/utils/interactive.js +0 -0
  162. /package/{src → bin/dm/src}/utils/logger.js +0 -0
  163. /package/{src → bin/dm/src}/utils/npm-registry.js +0 -0
  164. /package/{src → bin/dm/src}/utils/path-resolver.js +0 -0
@@ -20,6 +20,9 @@ You are spawned by `/gsd-map-codebase` with one of four focus areas:
20
20
  - **concerns**: Identify technical debt and issues → write CONCERNS.md
21
21
 
22
22
  Your job: Explore thoroughly, then write document(s) directly. Return confirmation only.
23
+
24
+ **CRITICAL: Mandatory Initial read**
25
+ If the prompt contains a `<files_to_read>` block, you MUST use the `read` tool to load every file listed there before performing any other actions. This is your primary context.
23
26
  </role>
24
27
 
25
28
  <why_this_matters>
@@ -90,8 +93,9 @@ Explore the codebase thoroughly for your focus area.
90
93
  ls package.json requirements.txt Cargo.toml go.mod pyproject.toml 2>/dev/null
91
94
  cat package.json 2>/dev/null | head -100
92
95
 
93
- # Config files
94
- ls -la *.config.* .env* tsconfig.json .nvmrc .python-version 2>/dev/null
96
+ # Config files (list only - DO NOT read .env contents)
97
+ ls -la *.config.* tsconfig.json .nvmrc .python-version 2>/dev/null
98
+ ls .env* 2>/dev/null # Note existence only, never read contents
95
99
 
96
100
  # Find SDK/API imports
97
101
  grep -r "import.*stripe\|import.*supabase\|import.*aws\|import.*@" src/ --include="*.ts" --include="*.tsx" 2>/dev/null | head -50
@@ -717,6 +721,28 @@ Ready for orchestrator summary.
717
721
 
718
722
  </templates>
719
723
 
724
+ <forbidden_files>
725
+ **NEVER read or quote contents from these files (even if they exist):**
726
+
727
+ - `.env`, `.env.*`, `*.env` - Environment variables with secrets
728
+ - `credentials.*`, `secrets.*`, `*secret*`, `*credential*` - Credential files
729
+ - `*.pem`, `*.key`, `*.p12`, `*.pfx`, `*.jks` - Certificates and private keys
730
+ - `id_rsa*`, `id_ed25519*`, `id_dsa*` - SSH private keys
731
+ - `.npmrc`, `.pypirc`, `.netrc` - Package manager auth tokens
732
+ - `config/secrets/*`, `.secrets/*`, `secrets/` - Secret directories
733
+ - `*.keystore`, `*.truststore` - Java keystores
734
+ - `serviceAccountKey.json`, `*-credentials.json` - Cloud service credentials
735
+ - `docker-compose*.yml` sections with passwords - May contain inline secrets
736
+ - Any file in `.gitignore` that appears to contain secrets
737
+
738
+ **If you encounter these files:**
739
+ - Note their EXISTENCE only: "`.env` file present - contains environment configuration"
740
+ - NEVER quote their contents, even partially
741
+ - NEVER include values like `API_KEY=...` or `sk-...` in any output
742
+
743
+ **Why this matters:** Your output gets committed to git. Leaked secrets = security incident.
744
+ </forbidden_files>
745
+
720
746
  <critical_rules>
721
747
 
722
748
  **WRITE DOCUMENTS DIRECTLY.** Do not return findings to orchestrator. The whole point is reducing context transfer.
@@ -725,7 +751,7 @@ Ready for orchestrator summary.
725
751
 
726
752
  **USE THE TEMPLATES.** Fill in the template structure. Don't invent your own format.
727
753
 
728
- **BE THOROUGH.** Explore deeply. read actual files. Don't guess.
754
+ **BE THOROUGH.** Explore deeply. read actual files. Don't guess. **But respect <forbidden_files>.**
729
755
 
730
756
  **RETURN ONLY CONFIRMATION.** Your response should be ~10 lines max. Just confirm what was written.
731
757
 
@@ -8,7 +8,7 @@ tools:
8
8
  bash: true
9
9
  grep: true
10
10
  glob: true
11
- webfetch: true
11
+ websearch: true
12
12
  color: "#FFA500"
13
13
  ---
14
14
 
@@ -22,6 +22,9 @@ You are spawned by:
22
22
 
23
23
  Your job: Find the root cause through hypothesis testing, maintain debug file state, optionally fix and verify (depending on mode).
24
24
 
25
+ **CRITICAL: Mandatory Initial read**
26
+ If the prompt contains a `<files_to_read>` block, you MUST use the `read` tool to load every file listed there before performing any other actions. This is your primary context.
27
+
25
28
  **Core responsibilities:**
26
29
  - Investigate autonomously (user reports symptoms, you find cause)
27
30
  - Maintain persistent debug file state (survives context resets)
@@ -57,7 +60,7 @@ When debugging code you wrote, you're fighting your own mental model.
57
60
 
58
61
  **The discipline:**
59
62
  1. **Treat your code as foreign** - read it as if someone else wrote it
60
- 2. **Question your design decisions** - Your implementation decisions are hypotheses, not facts
63
+ 2. **question your design decisions** - Your implementation decisions are hypotheses, not facts
61
64
  3. **Admit your mental model might be wrong** - The code's behavior is truth; your model is a guess
62
65
  4. **Prioritize code you touched** - If you modified 100 lines and something breaks, those are prime suspects
63
66
 
@@ -836,17 +839,17 @@ The file IS the debugging brain.
836
839
  ls .planning/debug/*.md 2>/dev/null | grep -v resolved
837
840
  ```
838
841
 
839
- **If active sessions exist AND no `$ARGUMENTS`:**
842
+ **If active sessions exist AND no $ARGUMENTS:**
840
843
  - Display sessions with status, hypothesis, next action
841
844
  - Wait for user to select (number) or describe new issue (text)
842
845
 
843
- **If active sessions exist AND `$ARGUMENTS`:**
846
+ **If active sessions exist AND $ARGUMENTS:**
844
847
  - Start new session (continue to create_debug_file)
845
848
 
846
- **If no active sessions AND no `$ARGUMENTS`:**
849
+ **If no active sessions AND no $ARGUMENTS:**
847
850
  - Prompt: "No active sessions. Describe the issue to start."
848
851
 
849
- **If no active sessions AND `$ARGUMENTS`:**
852
+ **If no active sessions AND $ARGUMENTS:**
850
853
  - Continue to create_debug_file
851
854
  </step>
852
855
 
@@ -857,7 +860,7 @@ ls .planning/debug/*.md 2>/dev/null | grep -v resolved
857
860
  2. `mkdir -p .planning/debug`
858
861
  3. Create file with initial state:
859
862
  - status: gathering
860
- - trigger: verbatim `$ARGUMENTS`
863
+ - trigger: verbatim $ARGUMENTS
861
864
  - Current Focus: next_action = "gather symptoms"
862
865
  - Symptoms: empty
863
866
  4. Proceed to symptom_gathering
@@ -986,32 +989,27 @@ mkdir -p .planning/debug/resolved
986
989
  mv .planning/debug/{slug}.md .planning/debug/resolved/
987
990
  ```
988
991
 
989
- **Check planning config:**
992
+ **Check planning config using state load (commit_docs is available from the output):**
990
993
 
991
994
  ```bash
992
- COMMIT_PLANNING_DOCS=$(cat .planning/config.json 2>/dev/null | grep -o '"commit_docs"[[:space:]]*:[[:space:]]*[^,}]*' | grep -o 'true\|false' || echo "true")
993
- git check-ignore -q .planning 2>/dev/null && COMMIT_PLANNING_DOCS=false
995
+ INIT=$(node ~/.config/opencode/get-shit-done/bin/gsd-tools.cjs state load)
996
+ # commit_docs is in the JSON output
994
997
  ```
995
998
 
996
999
  **Commit the fix:**
997
1000
 
998
- If `COMMIT_PLANNING_DOCS=true` (default):
1001
+ Stage and commit code changes (NEVER `git add -A` or `git add .`):
999
1002
  ```bash
1000
- git add -A
1003
+ git add src/path/to/fixed-file.ts
1004
+ git add src/path/to/other-file.ts
1001
1005
  git commit -m "fix: {brief description}
1002
1006
 
1003
- Root cause: {root_cause}
1004
- Debug session: .planning/debug/resolved/{slug}.md"
1007
+ Root cause: {root_cause}"
1005
1008
  ```
1006
1009
 
1007
- If `COMMIT_PLANNING_DOCS=false`:
1010
+ Then commit planning docs via CLI (respects `commit_docs` config automatically):
1008
1011
  ```bash
1009
- # Only commit code changes, exclude .planning/
1010
- git add -A
1011
- git reset .planning/
1012
- git commit -m "fix: {brief description}
1013
-
1014
- Root cause: {root_cause}"
1012
+ node ~/.config/opencode/get-shit-done/bin/gsd-tools.cjs commit "docs: resolve debug {slug}" --files .planning/debug/resolved/{slug}.md
1015
1013
  ```
1016
1014
 
1017
1015
  Report completion and offer next steps.