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
@@ -5,15 +5,6 @@ description: Use when the user asks to run, execute, implement, or carry out a S
5
5
 
6
6
  # st-execute-blueprint
7
7
 
8
- Drive the end-to-end execution of an existing Strikethroo plan blueprint.
9
-
10
- ## Critical Rules
11
-
12
- 1. **Never skip validation gates** — a phase is not complete until `POST_PHASE.md` succeeds.
13
- 2. **Preserve dependency order** — never execute a task before all of its dependencies are completed.
14
- 3. **Maximize parallelism within each phase** — run all tasks whose dependencies are satisfied simultaneously.
15
- 4. **Fail safely and document everything** — halt on unrecoverable errors, and record all decisions, issues, and outcomes under "Noteworthy Events" in the execution summary.
16
-
17
8
  ## Inputs
18
9
 
19
10
  The user supplies the numeric plan ID conversationally.
@@ -22,20 +13,22 @@ The user supplies the numeric plan ID conversationally.
22
13
 
23
14
  ### 1. Locate the strikethroo root
24
15
 
25
- Run `scripts/find-strikethroo-root.cjs` from the user's working directory.
16
+ Run `scripts/find-strikethroo-root.cjs` from the user's working directory. If
17
+ it exits non-zero, stop and ask the user to run `npx strikethroo init`.
26
18
 
27
- If the script exits non-zero, the working directory is not inside an
28
- initialized strikethroo workspace. Stop and ask the user to run the project
29
- initializer (e.g. `npx strikethroo init`) before continuing. Do
30
- not attempt to execute a plan outside of a valid root.
19
+ Treat the path it prints as `<root>` for every subsequent step.
31
20
 
32
- For every subsequent step, treat the path printed by this script as `<root>`.
21
+ Delegated execution workers skip this step and do not emit update notices.
22
+
23
+ Run `scripts/check-for-updates.cjs "<root>"` as a separate command using this
24
+ skill's script path. Keep the user's working directory. Read the one JSON line
25
+ on stdout. When `notice` is present, retain its exact text for the final
26
+ user-facing response. Never pause for permission and never run an update.
33
27
 
34
28
  ### 2. Resolve the plan
35
29
 
36
- Run `scripts/validate-plan-blueprint.cjs <plan-id> planFile` to obtain the
37
- absolute path of the plan file. Passing a different field name prints that
38
- field alone.
30
+ Run `scripts/validate-plan-blueprint.cjs <plan-id> planFile` for the plan
31
+ file's absolute path. Another field name prints that field instead.
39
32
 
40
33
  If the script exits non-zero, stop and ask the user to confirm the plan ID.
41
34
  Do not guess a different ID.
@@ -52,26 +45,26 @@ Run `scripts/validate-plan-blueprint.cjs <plan-id> taskCount` and
52
45
 
53
46
  If `taskCount` is 0 or `blueprintExists` is `no`:
54
47
 
55
- - Notify the user: "Tasks or execution blueprint not found. Generating tasks automatically..."
48
+ Notify the user: "Tasks or execution blueprint not found. Generating tasks automatically..."
49
+
56
50
  - Follow the `st-generate-tasks` skill for this plan ID. Execute its operating procedure in full, including running `POST_TASK_GENERATION_ALL.md` to write the Execution Blueprint.
57
- - After generation completes, re-run the `planFile`, `planDir`, `taskCount`, and `blueprintExists` queries to refresh the resolved paths and counts.
51
+ - Re-run the `planFile`, `planDir`, `taskCount`, and `blueprintExists` queries to refresh the resolved paths and counts.
58
52
 
59
- If generation still leaves the plan without tasks or a blueprint, stop and report failure. Do not attempt execution without a valid blueprint.
53
+ If the plan still has no tasks or no blueprint, stop and report failure.
60
54
 
61
55
  ### 5. Optionally create a feature branch
62
56
 
63
- Run `scripts/create-feature-branch.cjs <plan-id>` once before phase execution. Branch creation is best-effort: when the script reports that it skipped creation (for example, not on `main`/`master`), continue on the current branch and do not retry or create a branch manually. Uncommitted or untracked changes are permitted only when every change is inside the repository-root `.ai/strikethroo` subtree. When the script exits with an error—including changes anywhere outside that subtree or an inability to inspect Git status on `main`/`master`—halt and report the error. Do not treat a skipped branch as a failure or spend effort working around a skip.
57
+ Run `scripts/create-feature-branch.cjs <plan-id>` once before phase execution. A skip is not a failure. Continue on the current branch, and never create the branch by hand. Uncommitted or untracked changes are permitted only inside the repository-root `.ai/strikethroo` subtree. An error result halts execution; report it.
64
58
 
65
- After the branch step, run `scripts/capture-base-commit.cjs <plan-id>` once. It records the commit the review gate diffs against. A `skipped` result is not a failure — continue execution and note that the review gate will skip. Only an `error` result halts.
59
+ Then run `scripts/capture-base-commit.cjs <plan-id>` once to record the commit the review gate diffs against. A `skipped` result continues execution and means the review gate will skip. Only an `error` result halts.
66
60
 
67
61
  ### 6. Load project context and execution blueprint
68
62
 
69
63
  Read these files, in order:
70
64
 
71
- - `<root>/config/STRIKETHROO.md` — directory conventions and project context.
72
- - The plan document at the path returned by step 2.
73
- - The plan's Execution Blueprint section — this defines the phase groupings and task dispatch order.
74
- - `<root>/config/shared/verification-gate.md` and `<root>/config/shared/anti-rationalization.md` — apply in the phase loop below.
65
+ - `<root>/config/STRIKETHROO.md`
66
+ - The plan document at the path from step 2, including its Execution Blueprint section, which defines the phase groupings and task dispatch order.
67
+ - `<root>/config/shared/verification-gate.md` and `<root>/config/shared/anti-rationalization.md`, both applied in the phase loop below.
75
68
 
76
69
  ### 7. Execute phases in order
77
70
 
@@ -93,17 +86,13 @@ scripts/dispatch-task-execution.cjs resolve <task-file> <current-harness> <works
93
86
  ```
94
87
 
95
88
  Resolvers never launch external processes. After interpreting all route results, issue
96
- every external execution and every native Task-tool agent **together in one parallel
89
+ every external execution and every sub-agent **together in one parallel
97
90
  tool operation**. External execution uses:
98
91
 
99
92
  ```text
100
93
  scripts/dispatch-task-execution.cjs execute <handoff> <task-file> <current-harness> <workspace> <plan-id> <task-id>
101
94
  ```
102
95
 
103
- This two-step protocol is mandatory: do not execute external tasks during route
104
- resolution, do not serialize external commands, and do not wait for external completion
105
- before launching ready native agents.
106
-
107
96
  `<current-harness>` is the exact supported harness identifier running this
108
97
  skill; `<workspace>` is the project working directory.
109
98
 
@@ -114,29 +103,20 @@ Interpret the one-line JSON result and act on its `kind` exactly once:
114
103
  | `native-default` | Dispatch natively with no execution-setting prose. |
115
104
  | `native-override` | Dispatch natively, explicitly requiring the exact returned `model`. Require the returned `reasoningEffort` only when that property is present. |
116
105
  | `external-override` | Run the `execute` command with the returned `handoff`, then read its result against this same table. |
117
- | `fallback` | Nothing launched. Record the returned `reason` and `detail` visibly, then dispatch natively with no execution-setting prose. Either command can return it. |
106
+ | `fallback` | Nothing launched. Record the returned `reason` and `detail` visibly, then dispatch natively with no execution-setting prose. |
118
107
  | `launched-success` | The external process exited zero. Do not dispatch natively; review status and evidence as you would for a native agent. |
119
108
  | `launched-failure` | A failed task. Set its status to `failed` and run `<root>/config/hooks/POST_ERROR_DETECTION.md`. Never retry it natively. |
120
- | `infrastructure-failure` | A failed task. Set its status to `failed` and run `<root>/config/hooks/POST_ERROR_DETECTION.md`. Never retry it natively. |
109
+ | `infrastructure-failure` | Handle exactly as the preceding row. |
121
110
 
122
- Handoff and exit rules:
111
+ Handoff rules:
123
112
 
124
113
  - Pass the exact opaque `handoff` string the resolver returned for that task. Never reconstruct one.
125
114
  - Never reuse a handoff for another task, and never rerun resolution after launches begin.
126
- - `execute` validates the handoff and does not reread routing configuration.
127
- - The command emits exactly one JSON line. Exit code `2` is an infrastructure failure; exit code `1` is a launched task failure.
128
115
 
129
- Deploy all remaining native agents simultaneously using your internal Task tool. Each agent MUST:
130
-
131
- 1. Read and execute `<root>/config/hooks/PRE_TASK_EXECUTION.md` before starting any implementation work.
132
- 2. Execute the task according to its requirements.
133
- 3. Monitor execution progress and capture outputs and artifacts.
134
- 4. Update task status in real-time.
116
+ Deploy all remaining native sub-agents simultaneously. Each sub-agent must read and execute `<root>/config/hooks/PRE_TASK_EXECUTION.md` before any implementation work, then execute the task and update its status. Do not run `scripts/check-for-updates.cjs`; delegated workers do not consume update notices.
135
117
 
136
118
  #### 7c. Phase completion verification
137
- Ensure every task in the phase has status `completed`. Collect and review all task outputs. Document any issues or exceptions encountered.
138
-
139
- Do not accept a subagent's report of success as proof. Apply the evidence gate in `<root>/config/shared/verification-gate.md` before marking the phase complete. Do not mark a phase complete on an unverified claim.
119
+ Ensure every task in the phase has status `completed` and collect its outputs. Do not accept a subagent's report of success as proof. Apply the evidence gate in `<root>/config/shared/verification-gate.md` before marking the phase complete.
140
120
 
141
121
  #### 7d. Phase post-execution
142
122
  Read `<root>/config/hooks/POST_PHASE.md` and execute its instructions. Do not proceed to the next phase until this hook succeeds.
@@ -167,17 +147,15 @@ After `POST_EXECUTION.md` reports green, follow the `st-code-review` skill and r
167
147
  code-review.cjs <plan-id> <current-harness>
168
148
  ```
169
149
 
170
- Resolve `code-review.cjs` from the `st-code-review` skill's sibling `scripts` directory. Pass the exact supported harness identifier running this skill. The command emits exactly one JSON line on stdout; reviewer output goes to stderr.
171
-
172
- If the `st-code-review` skill is not installed, record that outcome in the execution summary and continue to summary and archival.
150
+ Resolve `code-review.cjs` from the `st-code-review` skill's sibling `scripts` directory and pass the exact supported harness identifier running this skill. If the `st-code-review` skill is not installed, record that outcome in the execution summary and continue to summary and archival.
173
151
 
174
- Handle the JSON line in this order:
152
+ Handle the one JSON line it prints on stdout, in this order:
175
153
 
176
154
  1. Copy it verbatim into the execution summary's review outcome. Do not reformat it or omit fields.
177
- 2. Follow its top-level `action`. If it is `halt`, stop and report the top-level `detail`; execution is incomplete. If it is `continue`, proceed to the execution summary and archival.
155
+ 2. Follow its top-level `action`. If it is `halt`, stop and report the top-level `detail`. If it is `continue`, proceed to the execution summary and archival.
178
156
  3. Only when `verdict.kind` is `review-recorded`, read `<plan-dir>/review/review.xml` and `<plan-dir>/review/findings.json`, then decide which findings to act on. `severity` and `confidence` are advisory labels, not instructions.
179
157
 
180
- The compiled top-level `action` and exit status control the decision. Do not re-derive `action` from another field. Never report an uncertified review as clean.
158
+ Never report an uncertified review as clean.
181
159
 
182
160
  Hard rules:
183
161
 
@@ -187,19 +165,11 @@ Hard rules:
187
165
 
188
166
  ### 9. Append execution summary
189
167
 
190
- Append an execution summary section to the plan document using the format described in `<root>/config/templates/EXECUTION_SUMMARY_TEMPLATE.md`. Populate:
191
-
192
- - **Status**: Completed Successfully
193
- - **Completed Date**: current date
194
- - **Results**: brief summary of deliverables
195
- - **Noteworthy Events**: all decisions, issues, and outcomes encountered during execution. Always record the review gate's outcome here: the gate's JSON line verbatim, then which findings you acted on versus ignored and why. If nothing else occurred, state "No significant issues encountered." after the review outcome.
196
- - **Necessary follow-ups**: any follow-up actions or optimizations
168
+ Append an execution summary section to the plan document, filling every field of `<root>/config/templates/EXECUTION_SUMMARY_TEMPLATE.md`. Under Noteworthy Events, always record the review gate's JSON line verbatim, then which findings you acted on versus ignored and why.
197
169
 
198
170
  ### 10. Archive the plan
199
171
 
200
- Move the completed plan directory from `<root>/plans/<plan-folder>` to `<root>/archive/<plan-folder>`.
201
-
202
- Preserve the entire folder structure, including all tasks and subdirectories. If the move fails, log the error but do not fail the overall execution.
172
+ Move the completed plan directory from `<root>/plans/<plan-folder>` to `<root>/archive/<plan-folder>`, preserving the entire folder structure. If the move fails, log the error but do not fail the overall execution.
203
173
 
204
174
  ## Failure Modes
205
175
 
@@ -207,7 +177,7 @@ Preserve the entire folder structure, including all tasks and subdirectories. If
207
177
 
208
178
  ## Execution Summary
209
179
 
210
- Conclude with exactly this block as the final output:
180
+ Conclude with exactly this block (a retained update notice, when present, follows separately):
211
181
 
212
182
  ```
213
183
  ---
@@ -219,3 +189,7 @@ Execution Summary:
219
189
  ```
220
190
 
221
191
  The summary is consumed by downstream automation; keep the format exact.
192
+
193
+ When the retained update `notice` is present, append that exact sentence after
194
+ the structured summary block, or after your final response when this skill emits
195
+ no summary block. Nothing may follow the notice.