strikethroo 3.21.2 → 3.22.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 (93) hide show
  1. package/README.md +10 -0
  2. package/dist/cli.js +19 -1
  3. package/dist/cli.js.map +1 -1
  4. package/dist/index.d.ts +2 -0
  5. package/dist/index.d.ts.map +1 -1
  6. package/dist/index.js +50 -15
  7. package/dist/index.js.map +1 -1
  8. package/dist/resolve-init-harnesses.d.ts +30 -0
  9. package/dist/resolve-init-harnesses.d.ts.map +1 -0
  10. package/dist/resolve-init-harnesses.js +44 -0
  11. package/dist/resolve-init-harnesses.js.map +1 -0
  12. package/dist/types.d.ts +32 -1
  13. package/dist/types.d.ts.map +1 -1
  14. package/dist/types.js.map +1 -1
  15. package/dist/update.d.ts +28 -0
  16. package/dist/update.d.ts.map +1 -0
  17. package/dist/update.js +198 -0
  18. package/dist/update.js.map +1 -0
  19. package/dist-web/assets/{arc-Dnj8t_Cg.js → arc-CguPlWfb.js} +1 -1
  20. package/dist-web/assets/{architectureDiagram-3BPJPVTR-7x3i_pmi.js → architectureDiagram-3BPJPVTR-D65RMVqJ.js} +1 -1
  21. package/dist-web/assets/{blockDiagram-GPEHLZMM-Cg2a93ny.js → blockDiagram-GPEHLZMM-CNIwP_yH.js} +1 -1
  22. package/dist-web/assets/{c4Diagram-AAUBKEIU-DMmHyu1B.js → c4Diagram-AAUBKEIU-CuZ4SoKV.js} +1 -1
  23. package/dist-web/assets/channel-BL14r_5w.js +1 -0
  24. package/dist-web/assets/{chunk-2J33WTMH-BarACI5V.js → chunk-2J33WTMH-DM4ZcjVq.js} +1 -1
  25. package/dist-web/assets/{chunk-4BX2VUAB-D1jdtJjC.js → chunk-4BX2VUAB-DI3-zGiF.js} +1 -1
  26. package/dist-web/assets/{chunk-55IACEB6-D3ecVMrb.js → chunk-55IACEB6-DBdh-eer.js} +1 -1
  27. package/dist-web/assets/{chunk-727SXJPM-DXNd005W.js → chunk-727SXJPM-B0HDPh0I.js} +1 -1
  28. package/dist-web/assets/{chunk-AQP2D5EJ-C0VOl8ox.js → chunk-AQP2D5EJ-C0MnLmRm.js} +1 -1
  29. package/dist-web/assets/{chunk-FMBD7UC4-DcTxd98r.js → chunk-FMBD7UC4-CmggDcp1.js} +1 -1
  30. package/dist-web/assets/{chunk-ND2GUHAM-CAMtgZHg.js → chunk-ND2GUHAM-BSIdB1y0.js} +1 -1
  31. package/dist-web/assets/{chunk-QZHKN3VN-DWfV0bq5.js → chunk-QZHKN3VN-BTHsXhgb.js} +1 -1
  32. package/dist-web/assets/classDiagram-4FO5ZUOK-DBkbEi_3.js +1 -0
  33. package/dist-web/assets/classDiagram-v2-Q7XG4LA2-DBkbEi_3.js +1 -0
  34. package/dist-web/assets/{cose-bilkent-S5V4N54A-Csc9VNPk.js → cose-bilkent-S5V4N54A-IXUMXU5h.js} +1 -1
  35. package/dist-web/assets/{dagre-BM42HDAG-BnwRiOXb.js → dagre-BM42HDAG-CtwBET_X.js} +1 -1
  36. package/dist-web/assets/{diagram-2AECGRRQ-wPIOyrHK.js → diagram-2AECGRRQ-DRe1AFa_.js} +1 -1
  37. package/dist-web/assets/{diagram-5GNKFQAL-TccsDwtZ.js → diagram-5GNKFQAL-D9IRdgWX.js} +1 -1
  38. package/dist-web/assets/{diagram-KO2AKTUF-DtAJCwJt.js → diagram-KO2AKTUF-CQi7gmRS.js} +1 -1
  39. package/dist-web/assets/{diagram-LMA3HP47-BvMQVWoO.js → diagram-LMA3HP47-B0fp5jh8.js} +1 -1
  40. package/dist-web/assets/{diagram-OG6HWLK6-BPxOm_5c.js → diagram-OG6HWLK6-B2ujFhv2.js} +1 -1
  41. package/dist-web/assets/{erDiagram-TEJ5UH35-CRPnIDwq.js → erDiagram-TEJ5UH35-DcxHh3A8.js} +1 -1
  42. package/dist-web/assets/{flowDiagram-I6XJVG4X-DBLbHpW_.js → flowDiagram-I6XJVG4X-Btsglt1O.js} +1 -1
  43. package/dist-web/assets/{ganttDiagram-6RSMTGT7-gZhN1gnI.js → ganttDiagram-6RSMTGT7-BRaGl6R4.js} +1 -1
  44. package/dist-web/assets/{gitGraphDiagram-PVQCEYII-Dssi43fY.js → gitGraphDiagram-PVQCEYII-Cl1DR87j.js} +1 -1
  45. package/dist-web/assets/{index-CEGCvBkm.js → index-CxXoZ0_J.js} +1 -1
  46. package/dist-web/assets/{index-Nz3QPmKb.js → index-DXt7jz3h.js} +4 -4
  47. package/dist-web/assets/{index-BdDnJAsd.js → index-DZ4QtqqW.js} +1 -1
  48. package/dist-web/assets/{infoDiagram-5YYISTIA-sXzUxho2.js → infoDiagram-5YYISTIA-GMZDkbDI.js} +1 -1
  49. package/dist-web/assets/{ishikawaDiagram-YF4QCWOH-BPHTll-A.js → ishikawaDiagram-YF4QCWOH-DC8HBMwN.js} +1 -1
  50. package/dist-web/assets/{journeyDiagram-JHISSGLW-h2TzQwJC.js → journeyDiagram-JHISSGLW-4KT1uAXJ.js} +1 -1
  51. package/dist-web/assets/{kanban-definition-UN3LZRKU-1xkUO8WZ.js → kanban-definition-UN3LZRKU-bBpM_7W0.js} +1 -1
  52. package/dist-web/assets/{linear-D_7aXIXs.js → linear-BzW5Mi4V.js} +1 -1
  53. package/dist-web/assets/{mermaid.core-Bwdbg8D0.js → mermaid.core-BZXehlCp.js} +4 -4
  54. package/dist-web/assets/{mindmap-definition-RKZ34NQL-eAYjLKqV.js → mindmap-definition-RKZ34NQL-B8RhYsaN.js} +1 -1
  55. package/dist-web/assets/{pieDiagram-4H26LBE5-CWfU-OAg.js → pieDiagram-4H26LBE5-DV749i9Y.js} +1 -1
  56. package/dist-web/assets/{quadrantDiagram-W4KKPZXB-CgKKzr9p.js → quadrantDiagram-W4KKPZXB-Cduffe8j.js} +1 -1
  57. package/dist-web/assets/{requirementDiagram-4Y6WPE33-Dx-cDqCB.js → requirementDiagram-4Y6WPE33-C7KngwZn.js} +1 -1
  58. package/dist-web/assets/{sankeyDiagram-5OEKKPKP-B_yYv0Dy.js → sankeyDiagram-5OEKKPKP-CJjwUGG3.js} +1 -1
  59. package/dist-web/assets/{sequenceDiagram-3UESZ5HK--QLtZ1Rs.js → sequenceDiagram-3UESZ5HK-BARiZOtJ.js} +1 -1
  60. package/dist-web/assets/{stateDiagram-AJRCARHV-DVmFu5R7.js → stateDiagram-AJRCARHV-DA1dHBGx.js} +1 -1
  61. package/dist-web/assets/stateDiagram-v2-BHNVJYJU-D4ioaqC3.js +1 -0
  62. package/dist-web/assets/{timeline-definition-PNZ67QCA-BUtZCLUr.js → timeline-definition-PNZ67QCA-ClE6cvJF.js} +1 -1
  63. package/dist-web/assets/{vennDiagram-CIIHVFJN-CiAEMMvF.js → vennDiagram-CIIHVFJN-BLR57Itf.js} +1 -1
  64. package/dist-web/assets/{wardley-L42UT6IY-CzeU7tOS.js → wardley-L42UT6IY-EA8x1UUF.js} +1 -1
  65. package/dist-web/assets/{wardleyDiagram-YWT4CUSO-vvP_uZTz.js → wardleyDiagram-YWT4CUSO-DHktlei-.js} +1 -1
  66. package/dist-web/assets/{xychartDiagram-2RQKCTM6-vSFbOWXi.js → xychartDiagram-2RQKCTM6-DOxQD_Ha.js} +1 -1
  67. package/dist-web/index.html +1 -1
  68. package/package.json +4 -1
  69. package/templates/harness/skills/st-code-review/SKILL.md +3 -7
  70. package/templates/harness/skills/st-create-plan/SKILL.md +33 -44
  71. package/templates/harness/skills/st-create-plan/scripts/check-for-updates.cjs +2502 -0
  72. package/templates/harness/skills/st-execute-blueprint/SKILL.md +37 -63
  73. package/templates/harness/skills/st-execute-blueprint/scripts/check-for-updates.cjs +2502 -0
  74. package/templates/harness/skills/st-execute-blueprint/scripts/dispatch-task-execution.cjs +1 -0
  75. package/templates/harness/skills/st-execute-task/SKILL.md +36 -79
  76. package/templates/harness/skills/st-execute-task/scripts/check-for-updates.cjs +2502 -0
  77. package/templates/harness/skills/st-execute-task/scripts/dispatch-task-execution.cjs +1 -0
  78. package/templates/harness/skills/st-full-workflow/SKILL.md +139 -270
  79. package/templates/harness/skills/st-full-workflow/scripts/check-for-updates.cjs +2502 -0
  80. package/templates/harness/skills/st-full-workflow/scripts/dispatch-task-execution.cjs +1 -0
  81. package/templates/harness/skills/st-generate-tasks/SKILL.md +91 -155
  82. package/templates/harness/skills/st-generate-tasks/scripts/check-for-updates.cjs +2502 -0
  83. package/templates/harness/skills/st-refine-plan/SKILL.md +63 -109
  84. package/templates/harness/skills/st-refine-plan/scripts/check-for-updates.cjs +2502 -0
  85. package/templates/strikethroo/config/templates/UPDATE_NOTICE_TEMPLATE.md +1 -0
  86. package/dist-web/assets/channel-Bb0_vDD8.js +0 -1
  87. package/dist-web/assets/classDiagram-4FO5ZUOK-R25Yhm3n.js +0 -1
  88. package/dist-web/assets/classDiagram-v2-Q7XG4LA2-R25Yhm3n.js +0 -1
  89. package/dist-web/assets/stateDiagram-v2-BHNVJYJU-DBs8K0hr.js +0 -1
  90. package/templates/harness/skills/st-full-workflow/references/task-frontmatter.md +0 -23
  91. package/templates/harness/skills/st-full-workflow/references/test-philosophy.md +0 -17
  92. package/templates/harness/skills/st-generate-tasks/references/task-frontmatter.md +0 -23
  93. package/templates/harness/skills/st-generate-tasks/references/test-philosophy.md +0 -17
@@ -3642,6 +3642,7 @@ var import_child_process2 = require("child_process");
3642
3642
  var taskPrompt = (request) => `Strikethroo external task dispatch \u2014 Plan ${request.planId}, Task ${request.taskId}.
3643
3643
  Workspace: ${request.workspace}
3644
3644
  Task file: ${request.taskFile}
3645
+ You are a delegated execution worker. Do not run check-for-updates.cjs or emit update notices.
3645
3646
  Before implementation, read and execute ${path2.join(
3646
3647
  request.workspace,
3647
3648
  ".ai/strikethroo/config/hooks/PRE_TASK_EXECUTION.md"
@@ -5,46 +5,35 @@ description: Use when the user asks to run, execute, or implement one specific t
5
5
 
6
6
  # st-execute-task
7
7
 
8
- Drive the execution of a single task within an existing Strikethroo plan.
9
-
10
8
  ## Critical Rules
11
9
 
12
- 1. **Never skip dependency validation** — task execution requires all dependencies to be completed.
13
- 2. **Validate task status** — never execute tasks that are already completed, in-progress, or needs-clarification.
14
- 3. **Maintain status integrity** — update task status throughout the execution lifecycle.
15
- 4. **Document execution** — record all outcomes and issues encountered.
16
- 5. **Provide structured output** — always emit the structured result block for orchestrator parsing.
10
+ 1. **Maintain status integrity** — update task status throughout the execution lifecycle.
11
+ 2. **Document execution** — record all outcomes and issues encountered.
17
12
 
18
13
  ## Inputs
19
14
 
20
15
  The user supplies the numeric plan ID and task ID conversationally.
21
16
 
22
- ## Failure Modes
23
-
24
- - **Execution or hook failure.** If `PRE_TASK_EXECUTION.md`,
25
- `PRE_TASK_ASSIGNMENT.md`, or `POST_ERROR_DETECTION.md` fails, or the
26
- implementing agent encounters an unrecoverable error, set the task status
27
- to `failed`, document the error in Noteworthy Events, and emit the
28
- structured result with `Exit Code: 1`.
29
-
30
17
  ## Operating Procedure
31
18
 
32
19
  ### 1. Locate the strikethroo root
33
20
 
34
- Run `scripts/find-strikethroo-root.cjs` from the user's working directory.
21
+ Run `scripts/find-strikethroo-root.cjs` from the user's working directory. If
22
+ it exits non-zero, stop and ask the user to run `npx strikethroo init`.
35
23
 
36
- If the script exits non-zero, the working directory is not inside an
37
- initialized strikethroo workspace. Stop and ask the user to run the project
38
- initializer (e.g. `npx strikethroo init`) before continuing. Do
39
- not attempt to execute a task outside of a valid root.
24
+ Treat the path it prints as `<root>` for every subsequent step.
40
25
 
41
- For every subsequent step, treat the path printed by this script as `<root>`.
26
+ Delegated execution workers skip this step and do not emit update notices.
27
+
28
+ Run `scripts/check-for-updates.cjs "<root>"` as a separate command using this
29
+ skill's script path. Keep the user's working directory. Read the one JSON line
30
+ on stdout. When `notice` is present, retain its exact text for the final
31
+ user-facing response. Never pause for permission and never run an update.
42
32
 
43
33
  ### 2. Resolve the plan
44
34
 
45
- Run `scripts/validate-plan-blueprint.cjs <plan-id> planFile` to obtain the
46
- absolute path of the plan file. Passing a different field name prints that
47
- field alone.
35
+ Run `scripts/validate-plan-blueprint.cjs <plan-id> planFile` for the plan
36
+ file's absolute path. Another field name prints that field instead.
48
37
 
49
38
  If the script exits non-zero, stop and ask the user to confirm the plan ID.
50
39
  Do not guess a different ID.
@@ -54,40 +43,25 @@ printed path as `<plan-dir>`.
54
43
 
55
44
  ### 3. Validate the task file
56
45
 
57
- Locate the specific task file inside `<plan-dir>/tasks/`. Match using both
58
- padded and unpadded forms of the task ID:
59
-
60
- - First, look for `<plan-dir>/tasks/<task-id>--*.md`
61
- - If not found, look for `<plan-dir>/tasks/0<task-id>--*.md`
62
-
63
- If no file matches, stop and report that the task ID was not found in the
64
- plan. List the available task files in `<plan-dir>/tasks/` to help the user
65
- identify the correct ID.
66
-
67
- Treat the resolved file path as `<task-file>`.
46
+ Look for `<plan-dir>/tasks/<task-id>--*.md`, then for the zero-padded
47
+ `<plan-dir>/tasks/0<task-id>--*.md`. If neither matches, list the files in
48
+ `<plan-dir>/tasks/` and stop. Treat the match as `<task-file>`.
68
49
 
69
50
  ### 4. Check task status
70
51
 
71
- Read the YAML frontmatter of `<task-file>` and extract the `status` field.
52
+ Read `status` from the `<task-file>` frontmatter.
72
53
 
73
- - Block execution if the status is `completed`, `in-progress`, or
74
- `needs-clarification`.
75
- - Allow execution if the status is `pending` or `failed`.
76
- - If the status is missing or unrecognized, proceed with caution and note
77
- the ambiguity.
78
-
79
- If execution is blocked, stop and explain why, including guidance on how
80
- to resolve the blocker (e.g., use execute-blueprint to re-execute a completed
81
- task, or resolve clarification questions first).
54
+ - `completed`, `in-progress`, or `needs-clarification`: stop, and name the way
55
+ out (re-execute a completed task through execute-blueprint, answer the open
56
+ clarification questions first).
57
+ - `pending` or `failed`: execute.
58
+ - Missing or unrecognized: proceed with caution and note the ambiguity.
82
59
 
83
60
  ### 5. Validate dependencies
84
61
 
85
- Run `scripts/check-task-dependencies.cjs <plan-id> <task-id>`. The script
86
- validates that every dependency declared in the task frontmatter has status
87
- `completed`.
88
-
89
- If the script exits 1, stop and report that the task is blocked by unresolved
90
- dependencies. Do not proceed until dependencies are satisfied.
62
+ Run `scripts/check-task-dependencies.cjs <plan-id> <task-id>`. If it exits 1,
63
+ stop and report that unresolved dependencies block the task. Do not proceed
64
+ until they are satisfied.
91
65
 
92
66
  ### 6. Agent selection
93
67
 
@@ -124,33 +98,22 @@ Interpret the one-line JSON result and act on its `kind` exactly once:
124
98
  | `native-default` | Dispatch natively with no execution-setting prose. |
125
99
  | `native-override` | Dispatch natively, explicitly requiring the exact returned `model`. Require the returned `reasoningEffort` only when that property is present. |
126
100
  | `external-override` | Run the `execute` command with the returned `handoff`, then read its result against this same table. |
127
- | `fallback` | Nothing launched. Record the returned `reason` and `detail` visibly, then dispatch natively with no execution-setting prose. Either command can return it. |
101
+ | `fallback` | Nothing launched. Record the returned `reason` and `detail` visibly, then dispatch natively with no execution-setting prose. |
128
102
  | `launched-success` | The external process exited zero. Do not dispatch natively; review status and evidence as you would for a native agent. |
129
103
  | `launched-failure` | A failed task. Set its status to `failed` and run `<root>/config/hooks/POST_ERROR_DETECTION.md`. Never retry it natively. |
130
- | `infrastructure-failure` | A failed task. Set its status to `failed` and run `<root>/config/hooks/POST_ERROR_DETECTION.md`. Never retry it natively. |
104
+ | `infrastructure-failure` | Handle exactly as the preceding row. |
131
105
 
132
- Handoff and exit rules:
106
+ Handoff rules:
133
107
 
134
108
  - Pass the exact opaque `handoff` string the resolver returned for that task. Never reconstruct one.
135
109
  - Never reuse a handoff for another task, and never rerun resolution after launches begin.
136
- - `execute` validates the handoff and does not reread routing configuration.
137
- - The command emits exactly one JSON line. Exit code `2` is an infrastructure failure; exit code `1` is a launched task failure.
138
110
 
139
111
  Steps 9–11 are this skill's failed-status and error-hook path.
140
112
 
141
113
  For a native dispatch, deploy an agent using your internal Task tool. The agent
142
- MUST perform these steps in order:
143
-
144
- 1. **Pre-flight validation**: Read and execute
145
- `<root>/config/hooks/PRE_TASK_EXECUTION.md` before starting any
146
- implementation work.
147
- 2. **Execute the task**: Read the complete `<task-file>` and implement
148
- according to its requirements, including:
149
- - Objective and acceptance criteria
150
- - Technical requirements and implementation notes
151
- - Input dependencies and expected output artifacts
152
- 3. **Monitor progress**: Capture outputs, artifacts, and any issues
153
- encountered during implementation.
114
+ must read and execute `<root>/config/hooks/PRE_TASK_EXECUTION.md` before any
115
+ implementation work, then read the complete `<task-file>` and implement it.
116
+ Do not run `scripts/check-for-updates.cjs`; delegated workers do not consume update notices.
154
117
 
155
118
  ### 9. Update status to completed or failed
156
119
 
@@ -175,8 +138,6 @@ append a "Noteworthy Events" section to the end of `<task-file>`:
175
138
  - [YYYY-MM-DD] [Event description with sufficient context for the orchestrator]
176
139
  ```
177
140
 
178
- If no noteworthy events occurred, do not add the section.
179
-
180
141
  ### 11. Error handling
181
142
 
182
143
  If any error occurred during execution, read
@@ -184,14 +145,10 @@ If any error occurred during execution, read
184
145
  Document the error in Noteworthy Events and ensure the task status is set to
185
146
  `failed` if it is not already.
186
147
 
187
- ### 12. Emit structured output
148
+ When the retained update `notice` is present, append that exact sentence after
149
+ the structured summary block, or after your final response when this skill emits
150
+ no summary block. Nothing may follow the notice.
188
151
 
189
- End the session with exactly this block as the final output:
152
+ ## Failure Modes
190
153
 
191
- ```
192
- ---
193
- Task Execution Result:
194
- - Plan ID: [numeric-id]
195
- - Task ID: [numeric-id]
196
- - Exit Code: [0 for success, 1 for failure]
197
- ```
154
+ - **Execution errors.** If a task fails, read `<root>/config/hooks/POST_ERROR_DETECTION.md`, document the error in Noteworthy Events, and ensure the task status is set to `failed`.