@hassangameryt/freeflow 0.8.0 → 0.9.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 (290) hide show
  1. package/.agents/plugins/marketplace.json +2 -2
  2. package/.claude-plugin/marketplace.json +1 -1
  3. package/.claude-plugin/plugin.json +2 -2
  4. package/.codex-plugin/plugin.json +3 -3
  5. package/.cursor-plugin/plugin.json +1 -1
  6. package/README.md +96 -149
  7. package/capabilities/cognitive-routing/SKILL.md +21 -129
  8. package/capabilities/cognitive-routing/references/coordinator.md +163 -0
  9. package/capabilities/cognitive-routing/references/worker.md +38 -0
  10. package/capabilities/compaction/SKILL.md +3 -3
  11. package/capabilities/compaction/references/summary-format.md +26 -15
  12. package/capabilities/messaging/SKILL.md +49 -0
  13. package/capabilities/task-memory/SKILL.md +87 -0
  14. package/command-surface.json +6 -54
  15. package/gemini-extension.json +1 -1
  16. package/hooks/claude/hooks.json +13 -3
  17. package/hooks/codex/hooks.json +2 -1
  18. package/hooks/shared/runtime-context.mjs +69 -77
  19. package/package.json +25 -8
  20. package/pi-extension/dist/ask-user/ask.js +108 -0
  21. package/pi-extension/dist/ask-user/form.js +250 -0
  22. package/pi-extension/dist/ask-user/questions.js +66 -0
  23. package/pi-extension/dist/ask-user/tool.js +124 -0
  24. package/pi-extension/dist/cognitive-routing/assembler.js +35 -11
  25. package/pi-extension/dist/cognitive-routing/bootstrap.js +90 -0
  26. package/pi-extension/dist/cognitive-routing/config.js +3 -4
  27. package/pi-extension/dist/cognitive-routing/event-store.js +4 -1
  28. package/pi-extension/dist/cognitive-routing/gate.js +20 -5
  29. package/pi-extension/dist/cognitive-routing/handlers.js +15 -13
  30. package/pi-extension/dist/cognitive-routing/model-control.js +17 -8
  31. package/pi-extension/dist/cognitive-routing/projection.js +23 -6
  32. package/pi-extension/dist/cognitive-routing/provenance.js +3 -1
  33. package/pi-extension/dist/cognitive-routing/render.js +15 -15
  34. package/pi-extension/dist/cognitive-routing/runtime.js +4 -2
  35. package/pi-extension/dist/cognitive-routing/schemas.js +4 -4
  36. package/pi-extension/dist/cognitive-routing/session.js +3 -1
  37. package/pi-extension/dist/cognitive-routing/sources.js +29 -4
  38. package/pi-extension/dist/cognitive-routing/state.js +18 -8
  39. package/pi-extension/dist/cognitive-routing/status.js +4 -3
  40. package/pi-extension/dist/cognitive-routing/tools.js +29 -15
  41. package/pi-extension/dist/cognitive-routing/types.js +10 -1
  42. package/pi-extension/dist/compaction/carry.js +36 -22
  43. package/pi-extension/dist/compaction/config.js +4 -2
  44. package/pi-extension/dist/compaction/controller.js +52 -29
  45. package/pi-extension/dist/compaction/harness.js +19 -3
  46. package/pi-extension/dist/compaction/results.js +14 -13
  47. package/pi-extension/dist/compaction/tool.js +6 -6
  48. package/pi-extension/dist/host/catalog.js +20 -35
  49. package/pi-extension/dist/host/config-validation.js +233 -0
  50. package/pi-extension/dist/host/config.js +78 -91
  51. package/pi-extension/dist/host/inbound.js +142 -0
  52. package/pi-extension/dist/host/projection-tags.js +1 -1
  53. package/pi-extension/dist/host/prompts.js +24 -13
  54. package/pi-extension/dist/host/read-only-session.js +6 -1
  55. package/pi-extension/dist/host/request-history.js +7 -3
  56. package/pi-extension/dist/host/rows.js +25 -0
  57. package/pi-extension/dist/host/runtime-state.js +17 -2
  58. package/pi-extension/dist/host/section-keeper.js +85 -0
  59. package/pi-extension/dist/host/settings/freeflow-command.js +846 -93
  60. package/pi-extension/dist/host/settings/settings-view.js +27 -8
  61. package/pi-extension/dist/host/status.js +19 -5
  62. package/pi-extension/dist/index.js +638 -72
  63. package/pi-extension/dist/messaging/config.js +27 -0
  64. package/pi-extension/dist/messaging/messaging.js +398 -0
  65. package/pi-extension/dist/messaging/registry.js +57 -0
  66. package/pi-extension/dist/messaging/render.js +90 -0
  67. package/pi-extension/dist/messaging/tools.js +109 -0
  68. package/pi-extension/dist/messaging/transport.js +101 -0
  69. package/pi-extension/dist/provider-support/cache/keepalive.js +16 -4
  70. package/pi-extension/dist/task-memory/config.js +49 -0
  71. package/pi-extension/dist/task-memory/registry.js +119 -0
  72. package/pi-extension/dist/task-memory/render.js +107 -0
  73. package/pi-extension/dist/task-memory/runtime.js +994 -0
  74. package/pi-extension/dist/task-memory/tool.js +233 -0
  75. package/pi-extension/dist/tool-execution/apply-patch/tool.js +1 -1
  76. package/pi-extension/dist/tool-execution/background.js +220 -28
  77. package/pi-extension/dist/tool-execution/config.js +14 -3
  78. package/pi-extension/dist/tool-execution/file-tracking.js +24 -4
  79. package/pi-extension/dist/tool-execution/guidance-notices.js +124 -0
  80. package/pi-extension/dist/tool-execution/skill-reads.js +143 -0
  81. package/pi-extension/dist/tool-execution/tools.js +2 -2
  82. package/runtime/prompts/cognitive-routing.md +4 -4
  83. package/runtime/prompts/core.md +24 -14
  84. package/runtime/prompts/interaction-contract.md +7 -4
  85. package/runtime/prompts/tool-execution.md +3 -16
  86. package/runtime/prompts/working-method.md +16 -99
  87. package/skills/deliver-work/SKILL.md +76 -0
  88. package/skills/deliver-work/references/branch-closeout.md +134 -0
  89. package/skills/deliver-work/references/commit.md +83 -0
  90. package/skills/deliver-work/references/launch.md +94 -0
  91. package/skills/deliver-work/references/release.md +85 -0
  92. package/skills/deliver-work/scripts/commit-state.mjs +139 -0
  93. package/skills/deliver-work/scripts/delivery-state.mjs +107 -0
  94. package/skills/deliver-work/scripts/lib/git-state.mjs +178 -0
  95. package/skills/deliver-work/scripts/push-route.mjs +122 -0
  96. package/skills/deliver-work/scripts/release-preflight.mjs +177 -0
  97. package/skills/discuss-work/SKILL.md +148 -0
  98. package/skills/{discuss → discuss-work}/references/discussion-continuity.md +10 -27
  99. package/skills/discuss-work/references/learning-action.md +36 -0
  100. package/skills/discuss-work/scripts/choices.mjs +101 -0
  101. package/skills/discuss-work/scripts/lib/choices.mjs +159 -0
  102. package/skills/evaluate-behavior/SKILL.md +107 -0
  103. package/skills/evaluate-behavior/references/authoring.md +381 -0
  104. package/skills/evaluate-behavior/references/coding-tasks.md +145 -0
  105. package/skills/evaluate-behavior/references/conversations-pipelines-judges.md +177 -0
  106. package/skills/evaluate-behavior/references/design-and-measurement.md +273 -0
  107. package/skills/evaluate-behavior/references/running-and-evidence.md +245 -0
  108. package/skills/evaluate-behavior/scripts/claude-guard.mjs +76 -0
  109. package/skills/evaluate-behavior/scripts/guard-rules.mjs +309 -0
  110. package/skills/evaluate-behavior/scripts/lib/agreement.mjs +90 -0
  111. package/skills/evaluate-behavior/scripts/lib/arms.mjs +55 -0
  112. package/skills/evaluate-behavior/scripts/lib/budget.mjs +87 -0
  113. package/skills/evaluate-behavior/scripts/lib/build-source.mjs +287 -0
  114. package/skills/evaluate-behavior/scripts/lib/clear.mjs +74 -0
  115. package/skills/evaluate-behavior/scripts/lib/container.mjs +395 -0
  116. package/skills/evaluate-behavior/scripts/lib/decision.mjs +418 -0
  117. package/skills/evaluate-behavior/scripts/lib/definitions.mjs +1072 -0
  118. package/skills/evaluate-behavior/scripts/lib/freeflow.mjs +103 -0
  119. package/skills/evaluate-behavior/scripts/lib/grade-command.mjs +591 -0
  120. package/skills/evaluate-behavior/scripts/lib/grade-comparison.mjs +90 -0
  121. package/skills/{evaluate-skill → evaluate-behavior}/scripts/lib/grade-interaction.mjs +19 -18
  122. package/skills/{evaluate-skill → evaluate-behavior}/scripts/lib/grade-support.mjs +32 -5
  123. package/skills/{evaluate-skill → evaluate-behavior}/scripts/lib/grade-workspace.mjs +28 -12
  124. package/skills/evaluate-behavior/scripts/lib/grade.mjs +101 -0
  125. package/skills/evaluate-behavior/scripts/lib/hooks.mjs +98 -0
  126. package/skills/evaluate-behavior/scripts/lib/hosts/claude-code/confinement.mjs +196 -0
  127. package/skills/evaluate-behavior/scripts/lib/hosts/claude-code/constraints.mjs +111 -0
  128. package/skills/evaluate-behavior/scripts/lib/hosts/claude-code/index.mjs +48 -0
  129. package/skills/evaluate-behavior/scripts/lib/hosts/claude-code/isolation.mjs +74 -0
  130. package/skills/evaluate-behavior/scripts/lib/hosts/claude-code/launch.mjs +123 -0
  131. package/skills/evaluate-behavior/scripts/lib/hosts/claude-code/model-call.mjs +73 -0
  132. package/skills/evaluate-behavior/scripts/lib/hosts/claude-code/recorder.mjs +178 -0
  133. package/skills/evaluate-behavior/scripts/lib/hosts/claude-code/session.mjs +494 -0
  134. package/skills/evaluate-behavior/scripts/lib/hosts/claude-code/skills.mjs +81 -0
  135. package/skills/evaluate-behavior/scripts/lib/hosts/index.mjs +31 -0
  136. package/skills/evaluate-behavior/scripts/lib/hosts/names.mjs +3 -0
  137. package/skills/evaluate-behavior/scripts/lib/hosts/pi/confinement.mjs +173 -0
  138. package/skills/evaluate-behavior/scripts/lib/hosts/pi/host.mjs +148 -0
  139. package/skills/evaluate-behavior/scripts/lib/hosts/pi/index.mjs +70 -0
  140. package/skills/evaluate-behavior/scripts/lib/hosts/pi/isolation.mjs +81 -0
  141. package/skills/evaluate-behavior/scripts/lib/hosts/pi/model-call.mjs +79 -0
  142. package/skills/evaluate-behavior/scripts/lib/hosts/pi/process.mjs +241 -0
  143. package/skills/{evaluate-skill/scripts/lib → evaluate-behavior/scripts/lib/hosts/pi}/rpc.mjs +144 -26
  144. package/skills/evaluate-behavior/scripts/lib/identity.mjs +82 -0
  145. package/skills/evaluate-behavior/scripts/lib/judge.mjs +688 -0
  146. package/skills/evaluate-behavior/scripts/lib/metrics.mjs +332 -0
  147. package/skills/evaluate-behavior/scripts/lib/model-call.mjs +17 -0
  148. package/skills/evaluate-behavior/scripts/lib/participants.mjs +616 -0
  149. package/skills/{evaluate-skill → evaluate-behavior}/scripts/lib/process.mjs +22 -0
  150. package/skills/evaluate-behavior/scripts/lib/queue.mjs +54 -0
  151. package/skills/evaluate-behavior/scripts/lib/reference.mjs +343 -0
  152. package/skills/evaluate-behavior/scripts/lib/reuse.mjs +277 -0
  153. package/skills/evaluate-behavior/scripts/lib/review.mjs +933 -0
  154. package/skills/evaluate-behavior/scripts/lib/runner.mjs +732 -0
  155. package/skills/{evaluate-skill → evaluate-behavior}/scripts/lib/sandbox.mjs +119 -14
  156. package/skills/evaluate-behavior/scripts/lib/scan-shell.mjs +457 -0
  157. package/skills/evaluate-behavior/scripts/lib/scan.mjs +479 -0
  158. package/skills/evaluate-behavior/scripts/lib/seal.mjs +91 -0
  159. package/skills/evaluate-behavior/scripts/lib/shell.mjs +560 -0
  160. package/skills/evaluate-behavior/scripts/lib/source-override.mjs +64 -0
  161. package/skills/evaluate-behavior/scripts/lib/subject-file.mjs +88 -0
  162. package/skills/{evaluate-skill/scripts/lib/pi.mjs → evaluate-behavior/scripts/lib/subject.mjs} +235 -265
  163. package/skills/evaluate-behavior/scripts/lib/task-copy.mjs +124 -0
  164. package/skills/evaluate-behavior/scripts/lib/trials.mjs +524 -0
  165. package/skills/evaluate-behavior/scripts/lib/validity.mjs +68 -0
  166. package/skills/evaluate-behavior/scripts/lib/view-html.mjs +454 -0
  167. package/skills/{evaluate-skill → evaluate-behavior}/scripts/lib/view.mjs +159 -18
  168. package/skills/{evaluate-skill → evaluate-behavior}/scripts/pi-command-tool.mjs +21 -6
  169. package/skills/evaluate-behavior/scripts/pi-container-route.mjs +23 -0
  170. package/skills/evaluate-behavior/scripts/pi-guard.mjs +77 -0
  171. package/skills/evaluate-behavior/scripts/pi-login-refresh.mjs +31 -0
  172. package/skills/evaluate-behavior/scripts/skill-eval.mjs +586 -0
  173. package/skills/execute-work/SKILL.md +96 -104
  174. package/skills/execute-work/references/code-practices.md +27 -51
  175. package/skills/execute-work/references/design.md +271 -0
  176. package/skills/execute-work/references/diagnose.md +117 -0
  177. package/skills/execute-work/references/migration.md +108 -0
  178. package/skills/execute-work/references/simplify.md +65 -0
  179. package/skills/execute-work/scripts/self-review.mjs +422 -0
  180. package/skills/execute-work/scripts/touch-map.mjs +290 -0
  181. package/skills/review-work/SKILL.md +89 -65
  182. package/skills/review-work/references/adjudication.md +94 -0
  183. package/skills/review-work/references/artifact.md +198 -0
  184. package/skills/review-work/references/evals-and-judges.md +66 -0
  185. package/skills/review-work/references/work.md +177 -0
  186. package/skills/review-work/scripts/check-brief.mjs +128 -0
  187. package/skills/review-work/scripts/review-packet.mjs +233 -0
  188. package/skills/setup-freeflow/SKILL.md +68 -17
  189. package/skills/track-work/SKILL.md +52 -20
  190. package/skills/track-work/references/handoff.md +190 -0
  191. package/skills/track-work/references/projects.md +51 -0
  192. package/skills/track-work/references/working-record-format.md +36 -18
  193. package/skills/track-work/scripts/lib/document.mjs +17 -13
  194. package/skills/track-work/scripts/lib/format.mjs +2 -0
  195. package/skills/track-work/scripts/lib/recover.mjs +254 -0
  196. package/skills/track-work/scripts/lib/registry.mjs +656 -0
  197. package/skills/track-work/scripts/lib/search.mjs +40 -0
  198. package/skills/track-work/scripts/lib/store.mjs +46 -15
  199. package/skills/track-work/scripts/lib/views.mjs +50 -1
  200. package/skills/track-work/scripts/working-record.mjs +232 -13
  201. package/skills/verify-work/SKILL.md +45 -37
  202. package/skills/verify-work/references/feature-map.md +120 -0
  203. package/skills/verify-work/references/runtime-evidence.md +203 -0
  204. package/skills/verify-work/references/test-design.md +25 -6
  205. package/skills/verify-work/scripts/test-changes.mjs +246 -0
  206. package/skills/write-docs/SKILL.md +113 -25
  207. package/skills/write-docs/references/documentation-shapes.md +68 -3
  208. package/skills/write-docs/references/spec-and-plan-shapes.md +308 -0
  209. package/skills/write-docs/scripts/artifact-check.mjs +148 -0
  210. package/skills/write-docs/scripts/docs-check.mjs +96 -6
  211. package/skills/write-docs/scripts/plan-lint.mjs +123 -0
  212. package/skills/write-skill/SKILL.md +92 -52
  213. package/skills/write-skill/references/activation-and-wording.md +143 -0
  214. package/skills/write-skill/references/placement-and-dependencies.md +154 -0
  215. package/skills/write-skill/scripts/lib/compare.mjs +701 -0
  216. package/skills/write-skill/scripts/lib/skill-author.mjs +197 -3
  217. package/skills/write-skill/scripts/skill-author.mjs +51 -8
  218. package/capabilities/cognitive-routing/references/both-mode.md +0 -36
  219. package/capabilities/cognitive-routing/references/executor-mode.md +0 -48
  220. package/capabilities/cognitive-routing/references/helper-mode.md +0 -47
  221. package/plugin.json +0 -33
  222. package/skills/action-selection/SKILL.md +0 -92
  223. package/skills/action-selection/references/trajectory-stalls.md +0 -73
  224. package/skills/bypass/SKILL.md +0 -153
  225. package/skills/commit-work/SKILL.md +0 -93
  226. package/skills/commit-work/references/git-state-edges.md +0 -94
  227. package/skills/commit-work/references/simple-push.md +0 -94
  228. package/skills/commit-work/references/staging-decisions.md +0 -106
  229. package/skills/decision-gate/SKILL.md +0 -87
  230. package/skills/design-for-depth/SKILL.md +0 -108
  231. package/skills/design-for-depth/references/design-pressure-signals.md +0 -84
  232. package/skills/design-for-depth/references/implementation-decisions.md +0 -76
  233. package/skills/design-for-depth/references/interface-design-loop.md +0 -105
  234. package/skills/design-for-depth/references/module-and-dependency-design.md +0 -117
  235. package/skills/design-for-depth/references/state-and-failure-boundaries.md +0 -125
  236. package/skills/diagnose-failure/SKILL.md +0 -140
  237. package/skills/diagnose-failure/references/diagnostic-loop-catalog.md +0 -50
  238. package/skills/diagnose-failure/references/flaky-and-performance-diagnosis.md +0 -51
  239. package/skills/discuss/SKILL.md +0 -140
  240. package/skills/evaluate-skill/SKILL.md +0 -188
  241. package/skills/evaluate-skill/references/evaluation-definition-schema.md +0 -415
  242. package/skills/evaluate-skill/references/evaluation-design.md +0 -112
  243. package/skills/evaluate-skill/references/execution-and-evidence.md +0 -111
  244. package/skills/evaluate-skill/references/review-and-revision.md +0 -94
  245. package/skills/evaluate-skill/scripts/lib/definitions.mjs +0 -448
  246. package/skills/evaluate-skill/scripts/lib/grade-comparison.mjs +0 -60
  247. package/skills/evaluate-skill/scripts/lib/grade.mjs +0 -64
  248. package/skills/evaluate-skill/scripts/lib/review.mjs +0 -196
  249. package/skills/evaluate-skill/scripts/lib/runner.mjs +0 -405
  250. package/skills/evaluate-skill/scripts/lib/trials.mjs +0 -103
  251. package/skills/evaluate-skill/scripts/pi-guard.mjs +0 -181
  252. package/skills/evaluate-skill/scripts/skill-eval.mjs +0 -182
  253. package/skills/execute-work/references/execute-work-edges.md +0 -78
  254. package/skills/finish-branch/SKILL.md +0 -117
  255. package/skills/finish-branch/references/integration-options.md +0 -80
  256. package/skills/handoff/SKILL.md +0 -82
  257. package/skills/handoff/references/handoff-templates.md +0 -150
  258. package/skills/launch-work/SKILL.md +0 -116
  259. package/skills/launch-work/references/launch-readiness.md +0 -85
  260. package/skills/migration-work/SKILL.md +0 -115
  261. package/skills/migration-work/references/migration-lifecycle.md +0 -82
  262. package/skills/release-work/SKILL.md +0 -118
  263. package/skills/release-work/references/release-evidence.md +0 -78
  264. package/skills/review-artifact/SKILL.md +0 -143
  265. package/skills/review-artifact/references/adjudicate-artifact-review.md +0 -101
  266. package/skills/review-artifact/references/independent-artifact-reviewer-contract.md +0 -159
  267. package/skills/review-work/references/adjudicate-work-review.md +0 -97
  268. package/skills/review-work/references/independent-work-reviewer-contract.md +0 -139
  269. package/skills/review-work/references/security-risk-lens.md +0 -67
  270. package/skills/setup-freeflow/references/activation-contract.md +0 -103
  271. package/skills/setup-freeflow/references/host-setup.md +0 -67
  272. package/skills/simplify-code/SKILL.md +0 -85
  273. package/skills/simplify-code/references/simplification-patterns.md +0 -70
  274. package/skills/verify-work/references/browser-runtime-evidence.md +0 -51
  275. package/skills/verify-work/references/integration-evidence.md +0 -49
  276. package/skills/verify-work/references/performance-evidence.md +0 -59
  277. package/skills/workflow/SKILL.md +0 -171
  278. package/skills/workflow/references/domain-skill-composition.md +0 -45
  279. package/skills/write-plan/SKILL.md +0 -92
  280. package/skills/write-plan/references/plan-shapes.md +0 -156
  281. package/skills/write-skill/references/activation-boundaries.md +0 -106
  282. package/skills/write-skill/references/agent-first-instructions.md +0 -133
  283. package/skills/write-skill/references/progressive-disclosure.md +0 -129
  284. package/skills/write-skill/references/skill-dependency-graphs.md +0 -192
  285. package/skills/write-spec/SKILL.md +0 -85
  286. package/skills/write-spec/references/artifact-standards.md +0 -86
  287. package/skills/write-spec/references/decision-records.md +0 -80
  288. package/skills/write-spec/references/spec-shapes.md +0 -143
  289. /package/skills/{evaluate-skill → evaluate-behavior}/scripts/lib/evidence.mjs +0 -0
  290. /package/skills/{evaluate-skill → evaluate-behavior}/scripts/pi-observer.mjs +0 -0
@@ -1,125 +0,0 @@
1
- # State And Failure Boundaries
2
-
3
- Read this when correctness materially depends on canonical state, partial effects, atomic visibility, concurrency, cancellation, retries, recovery, reconciliation, or evidence of the final outcome.
4
-
5
- This reference is judgment. Do not apply it to a simple local value change whose state owner and failure behavior are already sound.
6
-
7
- ## Name Canonical State
8
-
9
- Identify:
10
-
11
- - canonical source of truth;
12
- - who may create, replace, or invalidate it;
13
- - visible states and invariants;
14
- - commit or visibility point;
15
- - diagnostic versus authoritative records;
16
- - what callers may safely cache or infer.
17
-
18
- Do not let several modules each behave as the source of truth.
19
-
20
- A log, cache, temporary file, UI projection, or recovery marker is not canonical merely because it is observable.
21
-
22
- ## Define State Transitions
23
-
24
- For every material transition, establish:
25
-
26
- ```text
27
- precondition
28
- -> accepted operation
29
- -> commit or visibility point
30
- -> resulting canonical state
31
- -> evidence
32
- ```
33
-
34
- Name forbidden transitions and partial states.
35
-
36
- Prefer one owner for transition policy. Callers should not reproduce state-machine rules independently.
37
-
38
- ## Bound Partial Effects
39
-
40
- When an operation affects several resources or can fail midway, establish:
41
-
42
- - which effects may occur before commitment;
43
- - which effects are forbidden before commitment;
44
- - what must be rolled back, reconciled, or retained;
45
- - what prior accepted state must survive;
46
- - how partial outcomes are detected;
47
- - what result is safe to expose.
48
-
49
- Atomicity may come from transactions, staging, replacement, versioning, or explicit reconciliation. Do not claim atomic behavior from intention alone.
50
-
51
- ## Separate Retry, Resume, And Replay
52
-
53
- These are different capabilities:
54
-
55
- - **Retry:** attempt the same operation again.
56
- - **Resume:** continue incomplete work from preserved state.
57
- - **Replay:** apply an event or request again.
58
- - **Idempotency:** repeated application has one supported effect.
59
- - **Recovery:** restore a safe supported state.
60
- - **Reconciliation:** compare and resolve divergent state.
61
-
62
- Supporting one does not imply the others.
63
-
64
- Expose them only when required by accepted behavior or observed failure.
65
-
66
- ## Design Concurrency Deliberately
67
-
68
- When operations can overlap, identify:
69
-
70
- - shared state;
71
- - ordering and visibility;
72
- - lost-update or duplicate-effect risk;
73
- - serialization or conflict rule;
74
- - cancellation behavior;
75
- - stale-read policy;
76
- - observer capable of proving the required outcome.
77
-
78
- Do not add locks, queues, retries, or optimistic versions without naming the invariant they protect.
79
-
80
- ## Define Failure And Recovery
81
-
82
- For the failure unit, state:
83
-
84
- - who observes failure;
85
- - canonical state after failure;
86
- - diagnostic evidence;
87
- - forbidden partial effects;
88
- - fail-open, fail-closed, degrade, stop, retry, or escalation behavior;
89
- - safe restart or recovery operation;
90
- - evidence proving recovery.
91
-
92
- A graceful error response does not prove graceful state handling.
93
-
94
- ## Keep Recovery Out Of Ordinary Callers
95
-
96
- Callers should normally request an outcome and receive supported success or failure.
97
-
98
- Do not require every caller to know:
99
-
100
- - cleanup order;
101
- - retry schedule;
102
- - temporary paths;
103
- - partial-state markers;
104
- - provider error translation;
105
- - reconciliation commands.
106
-
107
- Publish diagnostics without exposing recovery choreography unless callers genuinely own recovery.
108
-
109
- ## Test State And Failure Through Observable Invariants
110
-
111
- Tests should verify:
112
-
113
- - accepted final state;
114
- - preserved prior state;
115
- - forbidden writes;
116
- - composed failures;
117
- - retry or replay behavior when required;
118
- - cancellation and recovery;
119
- - evidence at the real observing boundary.
120
-
121
- A passing happy-path test does not prove partial-failure safety.
122
-
123
- ## Return
124
-
125
- Return the canonical state and owner, material invariants, the failure unit and its forbidden partial outcomes, the retry, resume, replay, and recovery capabilities actually required, and remaining uncertainty. Stop when state and failure ownership are sufficient for the current decision; do not design every theoretical failure mode.
@@ -1,140 +0,0 @@
1
- ---
2
- name: diagnose-failure
3
- description: "Use when a bug, failure, regression, performance problem, or repeated unsuccessful correction lacks a supported cause."
4
- ---
5
-
6
- # Diagnose Failure
7
-
8
- Establish what fails and why before selecting a correction. A supported cause distinguishes meaningful alternatives well enough to bound the next action; it does not require impossible certainty.
9
-
10
- A plausible path, requested patch, reviewer theory, or favorable rerun is not a supported cause. Diagnosis owns the causal question, interpretation, and correction boundary, not authority to run experiments or change production.
11
-
12
- The **Rules** below are binding; if one cannot be met, stop and say why. Everything else is **judgment**: follow its stated goal, and adapt when a different choice serves that goal better.
13
-
14
- ## Rules
15
-
16
- - Never invent the expected behavior. When accepted behavior or source truth is unsettled, use [Decision Gate](../../skills/decision-gate/SKILL.md) before diagnosing against it.
17
- - Before active evidence generation, confirm that the work agreement covers the path, environment, repetition, instrumentation, cost, sensitive-data handling, and cleanup or recovery. Covered bug investigation needs no extra permission solely because it is diagnosis. Otherwise return the proposed observation and stop condition to [Workflow](../../skills/workflow/SKILL.md) and wait.
18
- - Preserve unfavorable evidence. Never rerun until a failure disappears, and never drop a contradicting observation.
19
- - Minimize and sanitize logs, traces, payloads, dumps, screenshots, and browser state; never expose credentials or unnecessary private data.
20
- - Report a mitigation as containment, not resolution. Never claim fixed when only mitigation succeeded or the reported boundary remains unverified.
21
- - If a remedy changes scope, compatibility, public behavior, failure semantics, or another user-owned boundary, return its concrete consequence and alternatives through Workflow before adopting it.
22
-
23
- ## Enter For An Unsettled Cause
24
-
25
- Goal: diagnose when the cause is genuinely unknown, and not otherwise.
26
-
27
- Use diagnosis for unexplained bugs, failed checks, regressions, flaky or environmental behavior, contradictory observations, and corrections that repeatedly fail or expose related coordination.
28
-
29
- Do not investigate an ordinary mistake when fresh evidence already establishes a clear local defect and the accepted remedy; return that correction to Workflow. Finding count, or several bugs in one area, does not establish a shared structural cause.
30
-
31
- Keep diagnosis within the same coherent Slice. Use [Track Work](../../skills/track-work/SKILL.md) when continuity requires preserving the hypothesis, discriminating evidence, rejected approaches, blocker, and next useful action. Do not record every trial.
32
-
33
- ## Establish The Failure, Not The Proposed Fix
34
-
35
- Goal: know exactly what fails, against what expectation, at what boundary.
36
-
37
- Identify only what the investigation needs:
38
-
39
- - accepted expected behavior and its source;
40
- - observed symptom and available counterevidence;
41
- - relevant input, state, environment, timing, and reported path;
42
- - the strongest boundary actually observed;
43
- - any difference between that boundary and the reported failure.
44
-
45
- Prefer the reported path and environment. A nearby symptom may suggest a hypothesis but does not reproduce the reported defect; state reduced-fidelity limits explicitly.
46
-
47
- Allowed behavior is not a bug: a cache hit does not establish a stale-read failure when caching is permitted. A possible race in source is not the cause without evidence connecting its timing and state to the symptom.
48
-
49
- ## Choose A Distinguishing Observation
50
-
51
- Goal: the next observation can tell the viable explanations apart.
52
-
53
- State a falsifiable leading explanation and only the viable alternatives the next observation must distinguish:
54
-
55
- ```text
56
- Hypothesis:
57
- Predicted observation:
58
- What would contradict it:
59
- Meaningful alternative:
60
- ```
61
-
62
- Choose a repeatable diagnostic loop whose possible results differ between those explanations. Do not build a hypothesis around the requested patch and then treat consistency with it as proof of necessity.
63
-
64
- Read [Diagnostic Loop Catalog](references/diagnostic-loop-catalog.md) when the exact loop is not obvious or several loop shapes are plausible. Read [Flaky and Performance Diagnosis](references/flaky-and-performance-diagnosis.md) when timing, randomness, environment, concurrency, or resources shape the failure.
65
-
66
- Use [Action Selection](../../skills/action-selection/SKILL.md) when tools, targets, or observers for the selected causal question remain uncertain or broad. Stop reading when adequate context supports the experiment; the objective is not exhaustive understanding of the subsystem.
67
-
68
- If no safe useful observer is available, report the smallest missing input, trace, environment, permission, or instrumentation rather than patching a guess.
69
-
70
- ## Interpret One Iteration
71
-
72
- Goal: each observation moves the causal question, and its meaning is not overstated.
73
-
74
- Run one covered observation, changing one distinguishing variable at a time. Use [Verify Work](../../skills/verify-work/SKILL.md) for its claim-and-boundary method when needed; diagnosis keeps ownership of causal inference.
75
-
76
- Keep three results separate:
77
-
78
- - **Check result:** Passed, Failed, Error, or Unavailable under Verify Work's assertion-relative meanings. Observing an expected target failure can be a Passed check.
79
- - **Hypothesis result:** Supported, Contradicted, Inconclusive, or Unavailable at the stated observing boundary.
80
- - **Cause status:** Supported or Unresolved.
81
-
82
- A supported hypothesis need not establish the cause. A useful supported cause connects trigger and state through mechanism to the symptom, predicts the observations, materially weakens viable alternatives, and is sufficient to bound a correction without guessing. If only the strongest remaining hypothesis is supported, say so and name its missing causal link; one consistent observation is not certainty.
83
-
84
- Route from the result:
85
-
86
- - Check Error -> repair or replace the observer, not production.
87
- - Check Unavailable -> return the missing evidence or authority.
88
- - Hypothesis Contradicted -> preserve the result and revise the explanation.
89
- - Hypothesis Inconclusive -> choose a sharper observer if one is useful and covered.
90
- - Hypothesis Supported, cause Unresolved -> test the remaining material link or alternative.
91
- - Cause Supported -> return the correction boundary.
92
-
93
- Stop when the cause is sufficiently supported or no covered observation can materially improve the decision. Do not keep investigating merely because stronger certainty is imaginable.
94
-
95
- ## Keep The Investigation Inside The Task
96
-
97
- Goal: the correction serves the accepted outcome, not the investigation's momentum.
98
-
99
- Before following another prerequisite, distinguish a limitation of the current observer or approach from a requirement of the accepted outcome. A failed reproduction method is not proof that production needs new infrastructure, stronger guarantees, or a host change.
100
-
101
- Choose the smallest supported correction that preserves accepted behavior. Classify only the owning cause the evidence supports:
102
-
103
- - local implementation defect;
104
- - invalid, stale, or inadequate check;
105
- - environment, dependency, data, timing, or configuration issue;
106
- - missing observer or evidence;
107
- - unsettled behavior or source conflict;
108
- - wrong result, scope, order, or strategy;
109
- - structural ownership, interface, state, or failure-unit pressure.
110
-
111
- Use [Design for Depth](../../skills/design-for-depth/SKILL.md) when causal or direct design evidence establishes structural pressure. It shapes the boundary without re-proving the cause. If design reveals an unsupported causal premise, return to diagnosis with that exact uncertainty.
112
-
113
- ## Contain Harm And Keep Instrumentation Honest
114
-
115
- Goal: the investigation causes no damage and leaves no hidden residue.
116
-
117
- Bound repetitions by time, cost, effects, and environment safety. Temporary instrumentation must distinguish hypotheses; keep it isolated and state its observer, its mutation or performance impact, its removal condition, and whether it remains afterward.
118
-
119
- When immediate harm needs containment before diagnosis is settled, return one narrower, reversible mitigation to Workflow. It must preserve evidence, define checking and recovery, and avoid settling undefined behavior.
120
-
121
- A requested experimental patch can generate evidence when authorized as learning. It does not select production behavior or authorize continuing beyond its question.
122
-
123
- ## Return A Supported Correction Boundary
124
-
125
- Goal: the next owner can correct the failure without re-diagnosing it.
126
-
127
- Return proportionately:
128
-
129
- - failure and accepted expectation at the required boundary;
130
- - observed diagnostic loop, check result, and hypothesis result;
131
- - causal chain, alternatives weakened, and remaining uncertainty;
132
- - owning cause and smallest coherent correction;
133
- - minimized regression signal and the original reported path or strongest available observer;
134
- - instrumentation, containment, residual effects, and authority limits.
135
-
136
- An already-covered correction can return to [Execute Work](../../skills/execute-work/SKILL.md). Preserve the diagnostic evidence and use suitable regression checks without prescribing a formal test-first sequence; use Verify Work to design or classify those checks. Use [Simplify Code](../../skills/simplify-code/SKILL.md) only for an accepted behavior-preserving removal of obsolete or workaround machinery, not as a substitute for the fix.
137
-
138
- After correction, verify the minimized regression signal and the original reported path or strongest available observer; a nearby passing test is insufficient. If the fix fails or reveals related shared-state consequences, re-enter the affected causal question before another patch.
139
-
140
- Stop with the supported correction, missing evidence, containment boundary, or unresolved decision explicit.
@@ -1,50 +0,0 @@
1
- # Diagnostic Loop Catalog
2
-
3
- Read this when the exact distinguishing loop is not obvious or several loop shapes remain plausible.
4
-
5
- This reference is judgment: adapt it to the failure in front of you.
6
-
7
- Use it to select the smallest observation whose possible outcomes differ between meaningful hypotheses at the required boundary.
8
-
9
- ## Common Loops
10
-
11
- - **Failing test:** use when an existing stable interface or test boundary reaches the reported behavior.
12
- - **Reproduction command:** one CLI, package task, or script with representative fixture input.
13
- - **HTTP or protocol script:** the smallest real request sequence that crosses the affected boundary.
14
- - **Browser path:** the user flow with relevant DOM, console, network, and visual observations.
15
- - **Captured trace:** a sanitized log window, HAR, event payload, seed, timestamped screenshot, dump, or production sample replayed safely.
16
- - **Throwaway harness:** a minimal script around the real module when no test framework reaches it.
17
- - **Differential loop:** the same input through old and new code, configuration, dataset, dependency, or environment.
18
- - **Instrumented run:** targeted probes at boundaries that distinguish competing hypotheses.
19
-
20
- ## Predict Before Running
21
-
22
- Record only outcomes capable of distinguishing the viable hypotheses:
23
-
24
- ```text
25
- Observation outcome | Effect on leading hypothesis | Effect on alternative
26
- ```
27
-
28
- If every likely outcome leaves the same hypotheses plausible, the loop is not distinguishing enough. Sharpen the observer or choose another loop before generating evidence.
29
-
30
- ## Improve The Loop
31
-
32
- Prefer a loop that is:
33
-
34
- - **Sharper:** observes the reported symptom or hypothesis rather than generic failure.
35
- - **More representative:** preserves the relevant input, state, environment, and observing boundary.
36
- - **More distinguishing:** can support one plausible cause while contradicting another.
37
- - **More deterministic:** pins time, randomness, dependencies, filesystem, or network only when doing so preserves the failure.
38
- - **Faster:** removes unrelated setup without narrowing the claim.
39
- - **Safer:** isolates mutation, sanitizes sensitive evidence, and has bounded cleanup or recovery.
40
-
41
- An observer must sit on the real path and cover the complete operation. A manual counter beside the path, a helper call, or a nearby mocked flow does not prove the reported boundary ran.
42
-
43
- ## Boundary Examples
44
-
45
- - A UI save remains pending: exercise the browser path and inspect the request, console, and rendered state; a reducer unit test does not prove the reported boundary.
46
- - A registered callback allegedly never runs: invoke or observe the registered entrypoint; calling its helper directly proves only helper behavior.
47
- - A failure appears only in CI: compare the same input across local and CI configuration before changing timing or adding retries.
48
- - Two causes fit one symptom: choose an observation whose outcomes differ between them; another generic failure is not distinguishing evidence.
49
-
50
- Stop once one loop is selected with predicted distinguishing outcomes. Return it to the main skill; do not execute it from this reference.
@@ -1,51 +0,0 @@
1
- # Flaky And Performance Diagnosis
2
-
3
- Read this before selecting or running a diagnostic observation when timing, randomness, environmental variance, concurrency, or resource behavior shapes the failure.
4
-
5
- This reference is judgment, with one Rule of its own: never stabilize a flaky failure with sleeps, retries, wider timeouts, swallowed errors, or disabled checks unless evidence shows that mechanism addresses the causal timing or availability contract. Suppressing observation is not correction.
6
-
7
- Diagnostic measurement explains why variance or resource behavior occurs. After correction, Verify Work establishes whether the representative behavior or performance claim is supported.
8
-
9
- ## Flaky Failures
10
-
11
- The goal is not one lucky rerun. Raise the reproduction rate or capture the distinguishing event until the failure can be explained.
12
-
13
- Use, when safe and representative:
14
-
15
- - bounded repetition of the exact failing path;
16
- - captured seeds, time, timezone, locale, viewport, browser, runtime, and dependency versions;
17
- - controlled scheduling, fake clocks, CPU pressure, network delay, or concurrency;
18
- - console, network, event-order, scheduler, screenshot, or video traces;
19
- - old-versus-new, local-versus-CI, or headed-versus-headless differential runs.
20
-
21
- Choose the repetition count from runtime, cost, side effects, and the estimated failure rate. State the planned stop condition before running. Preserve every unfavorable result.
22
-
23
- One green rerun does not contradict an intermittent-failure hypothesis. One red rerun may establish the symptom but not its cause. Use the aggregate pattern or captured distinguishing event to classify the hypothesis.
24
-
25
- Do not loop mutating production behavior merely to improve reproduction.
26
-
27
- ## Performance Problems
28
-
29
- Measure the reported path before optimizing it.
30
-
31
- Useful causal evidence includes:
32
-
33
- - baseline timing or resource use for the representative workload;
34
- - slow input, dataset, concurrency, cache, and dependency state;
35
- - profiler, flamegraph, query plan, allocation profile, or browser trace;
36
- - old-versus-new comparison under matched conditions;
37
- - a benchmark that exercises the dominant work identified by evidence.
38
-
39
- A microbenchmark can test a hypothesis but does not explain the reported slowdown unless the isolated operation materially determines the real path. Repeated calls with one object justify memoization only when the reported workload repeats that object and measurement shows the repeated work dominates.
40
-
41
- Sanitize production traces and payloads. When safe production evidence is unavailable, use representative non-production evidence and downgrade the claim.
42
-
43
- ## Boundary Examples
44
-
45
- - Twenty green reruns after widening a timeout: the failure was suppressed or became rarer; its cause remains unresolved.
46
- - A parser microbenchmark improves while the representative trace is dominated by database waiting: the benchmark does not explain the reported slowdown.
47
- - Median latency improves while tail latency or memory crosses the accepted boundary: the performance claim remains contradicted or incomplete.
48
-
49
- After an authorized correction, verify that the representative baseline improves and required behavior remains correct. Report variance and relevant resource tradeoffs rather than one favorable run.
50
-
51
- Stop when the loop has produced a distinguishing pattern or event, the planned repetition or cost boundary is reached, or the required representative evidence is unavailable. Return the evidence and limit to the main skill.
@@ -1,140 +0,0 @@
1
- ---
2
- name: discuss
3
- description: "Use when exploring, clarifying, or revisiting what to accomplish or how to approach it, especially when user collaboration, alternatives, assumptions, or new evidence could change the next action."
4
- ---
5
-
6
- # Discuss
7
-
8
- Build enough shared understanding to choose the next sound action. Discussion can establish both what to accomplish and how to approach it; it need not end at requirements or continue until every implementation detail is known.
9
-
10
- Discuss owns exploration, alternatives, assumptions, and direction.
11
-
12
- The **Rules** below are binding; if one cannot be met, stop and say why. Everything else is **judgment**: follow its stated goal, and adapt when a different choice serves that goal better.
13
-
14
- ## Rules
15
-
16
- - Conversation, convergence, a recommendation, or a recorded proposal never authorizes execution. Begin implementation only under an execution agreement established through [Workflow](../workflow/SKILL.md).
17
- - Keep supported facts and explicit decisions distinct from hypotheses, proposed mechanisms, and unresolved choices. An assistant recommendation never becomes a requirement because it is repeated or recorded.
18
- - Leave priorities, behavior, constraints, and tradeoffs the user owns to the user; ask rather than decide them.
19
- - Never weaken required behavior to make an approach look simpler.
20
- - A successful demonstration is not production acceptance; promotion must be deliberately selected and its effects authorized.
21
-
22
- ## Start From The User's Intent
23
-
24
- Goal: the conversation serves what the user is actually trying to do, at the depth they asked for.
25
-
26
- Respond to the substance before steering the process.
27
-
28
- A request to discuss keeps the user involved as understanding develops. Gather relevant existing facts when needed, explain what they imply, and return at the next meaningful question or supported conclusion.
29
-
30
- A direct action request may already settle the outcome and delegate approach selection. Do not force a discussion phase when existing evidence can resolve the remaining facts and reversible local choices. Return clear covered work to Workflow.
31
-
32
- Use [Decision Gate](../decision-gate/SKILL.md) for one known blocking user-owned choice or source conflict. Use [Diagnose Failure](../diagnose-failure/SKILL.md) when a reported or recurring failure needs a supported cause rather than broader option discussion.
33
-
34
- ## Separate Outcome From Approach
35
-
36
- Goal: know which understanding is missing, what or how, and establish only that.
37
-
38
- Identify which understanding is missing:
39
-
40
- - **What:** the problem or opportunity, desired result, accepted behavior, constraints, non-goals, and what would count as success.
41
- - **How:** the mechanism, dependencies, affected boundaries, tradeoffs, and evidence needed to produce that result in the actual environment.
42
-
43
- Use [Design for Depth](../design-for-depth/SKILL.md) when representation, identity, ownership, interfaces, algorithms, state, dependencies, or failure behavior materially shape the choice. If unresolved choices could materially change a technical recommendation or invalidate significant dependent work, read its Implementation Decisions method before recommending a mechanism. Use it to explain the differences that matter between viable approaches, not to turn ordinary discussion or a supported local change into an architecture exercise.
44
-
45
- These questions can be answered together. Reuse what remains supported instead of running two compulsory discovery passes. A detailed request may settle what while leaving how open; an investigation may reveal that the initial problem description was wrong.
46
-
47
- When reopening discussion, name what changed and preserve unaffected understanding. A new local obstacle does not reopen the whole task.
48
-
49
- ## Gather Context To Answer A Question
50
-
51
- Goal: answer the question the discussion needs with the smallest observation that can answer it.
52
-
53
- Before inspecting the environment, identify the missing fact and how its answer could change the discussion. Check whether current evidence already supplies it.
54
-
55
- Use [Action Selection](../action-selection/SKILL.md) for uncertain or broad inspection. Prefer a focused source, caller, contract, or observation over a repository survey. Read more only when the result leaves a material question unresolved.
56
-
57
- Existing code, tests, documentation, policies, artifacts, repository state, supplied material, and current primary sources may settle factual questions. Inspect them rather than asking the user to supply facts available to the agent. Source inspection cannot establish unobserved runtime behavior.
58
-
59
- Stop gathering when sufficient evidence supports the next decision. Do not collect every later dependency, reconstruct exhausted history, or prepare an exact implementation plan while the outcome is still open.
60
-
61
- ## Collaborate And Recommend Proportionately
62
-
63
- Goal: the user gets your real judgment, with the tradeoffs that matter, and keeps the choices they own.
64
-
65
- Carry your share of the thinking:
66
-
67
- - explain what the evidence and intent imply;
68
- - challenge unsupported claims and consequential assumptions;
69
- - compare only materially different paths that could realistically be chosen;
70
- - state what each sacrifices and the assumptions it needs;
71
- - recommend the best-supported direction and what would change it;
72
- - revise your position when evidence changes.
73
-
74
- Keep one consequential uncertainty in focus; do not conduct a questionnaire or manufacture alternatives for ordinary choices.
75
-
76
- Before recommending a new obligation, distinguish a requirement from a limitation of the current approach. Explain consequences in user terms: "requires changing and distributing a patched host," not merely "needs a provenance interface." Include a simpler in-scope alternative when one is supported.
77
-
78
- ## Frame And Assess A Learning Action
79
-
80
- Goal: when evidence cannot settle a question, the smallest experiment that can settle it, and an honest reading of what it showed.
81
-
82
- Use an experiment or prototype when existing evidence cannot settle a material question and exercising behavior can distinguish the remaining answers. A separate prototype should isolate the uncertainty more safely or economically than changing production; unfamiliarity alone does not require one.
83
-
84
- If the work is an accepted useful outcome regardless of what it teaches, treat it as Delivery or Deepening rather than disguise implementation as Learning. Incidental learning does not change its authority or acceptance boundary.
85
-
86
- Frame the action before proposing execution:
87
-
88
- - the question and its consequence for the accepted outcome or approach;
89
- - plausible answers and the observation that would distinguish them;
90
- - the smallest adequate prototype or observer;
91
- - permitted effects, environment, and production exclusion;
92
- - expected evidence and return conditions: question answered, observing limit reached, or further work requiring a different question or expanded scope;
93
- - what would justify discarding, revising, or proposing promotion.
94
-
95
- Add a time or cost boundary when repetition or setup could grow; do not demand an exact token prediction. If no adequate observer is available within scope, state the limitation rather than inventing a proof.
96
-
97
- Return the framed action to Workflow for authority and, when needed, [Track Work](../track-work/SKILL.md) preservation, then [Execute Work](../execute-work/SKILL.md) for execution. Existing authority may already cover the experiment; its name does not create another approval gate.
98
-
99
- Assess returned evidence against the original question. Negative or inconclusive evidence is a valid result; one failed technique does not prove every alternative impossible. If a new prerequisite is reported, distinguish a limitation of the observer or chosen approach from a requirement of the intended outcome before recommending more work.
100
-
101
- Revise only the affected understanding. Preserve the consequence for the task, remaining uncertainty, and exploratory-artifact disposition when continuity matters. Stop assessment when the supported next direction or unresolved decision is clear.
102
-
103
- ## Preserve A Useful Route When Needed
104
-
105
- Goal: when the likely work becomes clear, the route and the understanding behind it survive for whoever continues.
106
-
107
- When the likely work becomes clear enough, propose coherent outcomes and their dependencies. Keep near-term work concrete and later work directional. A rough route need not wait for a formal Plan; its order may change as evidence arrives.
108
-
109
- Ask whether losing the current understanding, decisions, evidence, proposals, or next action would risk misalignment. If not, keep it in conversation.
110
-
111
- If continuity matters, read [Discussion Continuity](references/discussion-continuity.md), then Track Work before record operations. Preserve the state that made memory necessary, not an empty shell or transcript. Keep the outcome separate from the current approach and retain material uncertainty instead of describing proposals as settled work.
112
-
113
- Once a record exists, use it as working memory during the discussion, updating it at meaningful boundaries: accepted choices, open questions, options still under consideration, material the user supplies, and the route as it emerges. Track Work describes how.
114
-
115
- ```text
116
- Discuss establishes supported meaning
117
- -> Track Work preserves material state
118
- -> Discuss continues or returns the direction to Workflow
119
- ```
120
-
121
- The record does not select work or grant authority. When the route includes a commit, a publication, a review, a user decision, or a planned handoff, propose it as a Checkpoint on the route rather than as a separate Slice; Workflow selects it.
122
-
123
- ## Converge And Return
124
-
125
- Goal: end the discussion when the next sound action no longer depends on it, and hand over only what that action needs.
126
-
127
- End the current discussion when the next sound action no longer depends on unresolved direction, or when a bounded learning action, missing user decision, wait, or stop is clear. Do not continue merely because more detail could be explored.
128
-
129
- When the user requests execution, return to Workflow to establish its outcome, scope, and user-facing return condition. If the user delegates the remaining investigation and implementation, do not require them to finish planning it. Context gathered during discussion counts toward preparing the route; do not repeat it, and gather what the route still needs before the first production change.
130
-
131
- Return only what the next route needs: supported understanding, tentative approach, material open questions, relevant evidence, recommended or accepted next action, continuity, and authority state.
132
-
133
- - Stable accepted content needing a durable source -> [Write Spec](../write-spec/SKILL.md).
134
- - A supported ordered strategy needing a durable artifact -> [Write Plan](../write-plan/SKILL.md).
135
- - Covered concrete work -> Workflow and Execute Work.
136
- - One blocking owner choice -> Decision Gate.
137
- - Unsupported failure cause -> Diagnose Failure.
138
- - No action needed -> answer or stop.
139
-
140
- Neither an artifact nor a planning milestone is mandatory. Stop recommending or preserving once the agreed discussion result is supported.