@hassangameryt/freeflow 0.2.0 → 0.4.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 (312) hide show
  1. package/.agents/plugins/marketplace.json +1 -1
  2. package/.claude-plugin/marketplace.json +4 -4
  3. package/{plugins/freeflow/.claude-plugin → .claude-plugin}/plugin.json +5 -2
  4. package/{plugins/freeflow/.codex-plugin → .codex-plugin}/plugin.json +8 -9
  5. package/README.md +194 -127
  6. package/assets/feedback-loop.png +0 -0
  7. package/assets/freeflow-plugin-icon.png +0 -0
  8. package/assets/freeflow_workflow_map.png +0 -0
  9. package/assets/workflow.png +0 -0
  10. package/command-surface.json +129 -0
  11. package/hooks/freeflow-runtime-context.mjs +419 -0
  12. package/hooks/tests/check-runtime-context-hook.sh +223 -0
  13. package/package.json +41 -22
  14. package/pi-extension/dist/index.js +269 -0
  15. package/pi-extension/dist/integrations/mcp-config.js +29 -0
  16. package/pi-extension/dist/output-router/host-producer-identification.js +232 -0
  17. package/pi-extension/dist/output-router/native-safety-net.js +216 -0
  18. package/pi-extension/dist/output-router/observed-tool-routing.js +122 -0
  19. package/pi-extension/dist/output-router/renderers.js +1023 -0
  20. package/pi-extension/dist/output-router/router-tools.js +554 -0
  21. package/pi-extension/dist/output-router/schemas.js +383 -0
  22. package/pi-extension/dist/output-router/status.js +744 -0
  23. package/pi-extension/dist/output-router/utils.js +502 -0
  24. package/pi-extension/dist/runtime/runtime-context.js +798 -0
  25. package/pi-extension/dist/settings/settings-tui.js +314 -0
  26. package/pi-extension/dist/settings/settings-ui.js +1487 -0
  27. package/pi-extension/freeflow/index.js +1 -0
  28. package/pi-extension/src/index.ts +295 -0
  29. package/pi-extension/src/integrations/mcp-config.ts +32 -0
  30. package/pi-extension/src/output-router/host-producer-identification.ts +256 -0
  31. package/pi-extension/src/output-router/native-safety-net.ts +248 -0
  32. package/pi-extension/src/output-router/observed-tool-routing.ts +134 -0
  33. package/pi-extension/src/output-router/renderers.ts +1108 -0
  34. package/pi-extension/src/output-router/router-tools.ts +579 -0
  35. package/pi-extension/src/output-router/schemas.ts +387 -0
  36. package/pi-extension/src/output-router/status.ts +791 -0
  37. package/pi-extension/src/output-router/utils.ts +554 -0
  38. package/pi-extension/src/runtime/runtime-context.ts +895 -0
  39. package/pi-extension/src/settings/settings-tui.ts +408 -0
  40. package/pi-extension/src/settings/settings-ui.ts +1730 -0
  41. package/pi-extension/tests/integration/pi-extension.test.js +4018 -0
  42. package/pi-extension/tests/output-router/observed-producers.test.js +132 -0
  43. package/pi-extension/tests/output-router/search.test.js +722 -0
  44. package/pi-extension/tests/settings/settings-tui.test.js +243 -0
  45. package/pi-extension/tsconfig.json +16 -0
  46. package/{plugins/freeflow/router/dist → router/dist/benchmarks}/benchmark-harness.d.ts +16 -13
  47. package/router/dist/benchmarks/benchmark-harness.js +92 -0
  48. package/router/dist/benchmarks/benchmarks.d.ts +109 -0
  49. package/router/dist/benchmarks/benchmarks.js +979 -0
  50. package/router/dist/benchmarks/codex-qa-benchmarks.d.ts +95 -0
  51. package/router/dist/benchmarks/codex-qa-benchmarks.js +500 -0
  52. package/router/dist/benchmarks/command-benchmarks.d.ts +143 -0
  53. package/router/dist/benchmarks/command-benchmarks.js +698 -0
  54. package/router/dist/benchmarks/context-mode-normalized-benchmarks.d.ts +82 -0
  55. package/router/dist/benchmarks/context-mode-normalized-benchmarks.js +773 -0
  56. package/router/dist/benchmarks/context-mode-real-deep-benchmark.d.ts +132 -0
  57. package/router/dist/benchmarks/context-mode-real-deep-benchmark.js +1380 -0
  58. package/router/dist/benchmarks/context-saving-baseline.d.ts +60 -0
  59. package/router/dist/benchmarks/context-saving-baseline.js +470 -0
  60. package/router/dist/benchmarks/index-benchmarks.d.ts +103 -0
  61. package/router/dist/benchmarks/index-benchmarks.js +862 -0
  62. package/router/dist/benchmarks/storage-policy-benchmarks.d.ts +101 -0
  63. package/router/dist/benchmarks/storage-policy-benchmarks.js +618 -0
  64. package/router/dist/benchmarks/vault-index-benchmarks.d.ts +56 -0
  65. package/router/dist/benchmarks/vault-index-benchmarks.js +322 -0
  66. package/router/dist/config/config.d.ts +103 -0
  67. package/router/dist/config/config.js +632 -0
  68. package/{plugins/freeflow/router/dist → router/dist/config}/router-contract.d.ts +2 -2
  69. package/router/dist/config/router-contract.js +54 -0
  70. package/{plugins/freeflow/router/dist → router/dist/config}/schema.d.ts +19 -10
  71. package/router/dist/config/schema.js +648 -0
  72. package/router/dist/config/types.d.ts +573 -0
  73. package/router/dist/config/types.js +41 -0
  74. package/router/dist/evidence/bounded-evidence.d.ts +40 -0
  75. package/router/dist/evidence/bounded-evidence.js +323 -0
  76. package/router/dist/evidence/evidence-range-selector.d.ts +24 -0
  77. package/router/dist/evidence/evidence-range-selector.js +232 -0
  78. package/router/dist/evidence/evidence-search.d.ts +27 -0
  79. package/router/dist/evidence/evidence-search.js +490 -0
  80. package/{plugins/freeflow/router/dist → router/dist/evidence}/evidence.d.ts +18 -18
  81. package/router/dist/evidence/evidence.js +200 -0
  82. package/router/dist/evidence/failure-contracts.d.ts +37 -0
  83. package/router/dist/evidence/failure-contracts.js +166 -0
  84. package/router/dist/evidence/line-ranges.d.ts +24 -0
  85. package/router/dist/evidence/line-ranges.js +22 -0
  86. package/router/dist/experiments/local-index.d.ts +64 -0
  87. package/router/dist/experiments/local-index.js +581 -0
  88. package/router/dist/index.d.ts +30 -0
  89. package/router/dist/index.js +32 -0
  90. package/router/dist/local/local-traversal.d.ts +18 -0
  91. package/router/dist/local/local-traversal.js +334 -0
  92. package/router/dist/processing/engine.d.ts +132 -0
  93. package/router/dist/processing/engine.js +533 -0
  94. package/router/dist/processing/reducers.d.ts +280 -0
  95. package/router/dist/processing/reducers.js +1673 -0
  96. package/router/dist/processing/renderers.d.ts +31 -0
  97. package/router/dist/processing/renderers.js +195 -0
  98. package/router/dist/processing/scripts.d.ts +91 -0
  99. package/router/dist/processing/scripts.js +386 -0
  100. package/{plugins/freeflow/router/dist → router/dist/repo}/repo-traversal.d.ts +9 -9
  101. package/router/dist/repo/repo-traversal.js +245 -0
  102. package/router/dist/routing/observed-reducers.d.ts +41 -0
  103. package/router/dist/routing/observed-reducers.js +661 -0
  104. package/router/dist/routing/observed-routing.d.ts +26 -0
  105. package/router/dist/routing/observed-routing.js +378 -0
  106. package/router/dist/routing/parsers.d.ts +16 -0
  107. package/router/dist/routing/parsers.js +521 -0
  108. package/router/dist/routing/run-filters.d.ts +60 -0
  109. package/router/dist/routing/run-filters.js +238 -0
  110. package/router/dist/routing/run-reducers.d.ts +49 -0
  111. package/router/dist/routing/run-reducers.js +122 -0
  112. package/router/dist/sandbox/adapter-roots.d.ts +46 -0
  113. package/router/dist/sandbox/adapter-roots.js +66 -0
  114. package/router/dist/sandbox/eryx-python-adapter.d.ts +13 -0
  115. package/router/dist/sandbox/eryx-python-adapter.js +868 -0
  116. package/router/dist/sandbox/jq-wasm-adapter.d.ts +9 -0
  117. package/router/dist/sandbox/jq-wasm-adapter.js +429 -0
  118. package/router/dist/sandbox/quickjs-wasi-adapter.d.ts +13 -0
  119. package/router/dist/sandbox/quickjs-wasi-adapter.js +384 -0
  120. package/router/dist/sandbox/script-sandbox.d.ts +134 -0
  121. package/router/dist/sandbox/script-sandbox.js +337 -0
  122. package/router/dist/setup/script-transform-adapters.d.ts +32 -0
  123. package/router/dist/setup/script-transform-adapters.js +278 -0
  124. package/router/dist/tools/batch.d.ts +33 -0
  125. package/router/dist/tools/batch.js +586 -0
  126. package/router/dist/tools/run.d.ts +62 -0
  127. package/router/dist/tools/run.js +1304 -0
  128. package/router/dist/tools/search.d.ts +66 -0
  129. package/router/dist/tools/search.js +1364 -0
  130. package/router/dist/transform/engine.d.ts +168 -0
  131. package/router/dist/transform/engine.js +2072 -0
  132. package/router/dist/vault/vault-index.d.ts +125 -0
  133. package/router/dist/vault/vault-index.js +416 -0
  134. package/router/dist/vault/vault.d.ts +138 -0
  135. package/router/dist/vault/vault.js +630 -0
  136. package/runtime/interaction-contract.md +16 -0
  137. package/skills/bypass/SKILL.md +82 -0
  138. package/skills/commit-work/SKILL.md +106 -0
  139. package/skills/commit-work/references/staging-decisions.md +73 -0
  140. package/skills/decision-gate/SKILL.md +48 -0
  141. package/skills/design-for-depth/SKILL.md +106 -0
  142. package/skills/design-for-depth/references/design-pressure-signals.md +314 -0
  143. package/skills/design-for-depth/references/interface-design-loop.md +156 -0
  144. package/skills/design-for-depth/references/software-design-philosophy.md +248 -0
  145. package/skills/diagnose-failure/SKILL.md +105 -0
  146. package/skills/diagnose-failure/references/diagnostic-loop-catalog.md +36 -0
  147. package/skills/diagnose-failure/references/flaky-and-performance.md +43 -0
  148. package/skills/discuss/SKILL.md +121 -0
  149. package/skills/discuss/references/checkpoints.md +66 -0
  150. package/skills/evaluate-skill/SKILL.md +105 -0
  151. package/skills/evaluate-skill/references/definition-schema.md +345 -0
  152. package/skills/evaluate-skill/references/evaluation-design.md +86 -0
  153. package/skills/evaluate-skill/references/execution-and-evidence.md +85 -0
  154. package/skills/evaluate-skill/references/review-and-revision.md +51 -0
  155. package/skills/evaluate-skill/scripts/lib/definitions.mjs +296 -0
  156. package/skills/evaluate-skill/scripts/lib/evidence.mjs +46 -0
  157. package/skills/evaluate-skill/scripts/lib/grade-comparison.mjs +60 -0
  158. package/skills/evaluate-skill/scripts/lib/grade-interaction.mjs +148 -0
  159. package/skills/evaluate-skill/scripts/lib/grade-support.mjs +126 -0
  160. package/skills/evaluate-skill/scripts/lib/grade-workspace.mjs +192 -0
  161. package/skills/evaluate-skill/scripts/lib/grade.mjs +56 -0
  162. package/skills/evaluate-skill/scripts/lib/pi.mjs +489 -0
  163. package/skills/evaluate-skill/scripts/lib/process.mjs +79 -0
  164. package/skills/evaluate-skill/scripts/lib/rpc.mjs +444 -0
  165. package/skills/evaluate-skill/scripts/lib/runner.mjs +346 -0
  166. package/skills/evaluate-skill/scripts/lib/sandbox.mjs +409 -0
  167. package/skills/evaluate-skill/scripts/lib/view.mjs +337 -0
  168. package/skills/evaluate-skill/scripts/pi-guard.mjs +164 -0
  169. package/skills/evaluate-skill/scripts/skill-eval.mjs +101 -0
  170. package/skills/execute-work/SKILL.md +99 -0
  171. package/skills/execute-work/references/code-practices.md +78 -0
  172. package/skills/execute-work/references/execution-loop.md +77 -0
  173. package/skills/finish-branch/SKILL.md +117 -0
  174. package/skills/finish-branch/references/integration-options.md +80 -0
  175. package/skills/handoff/SKILL.md +92 -0
  176. package/skills/handoff/references/templates.md +141 -0
  177. package/skills/launch-work/SKILL.md +116 -0
  178. package/skills/launch-work/references/launch-readiness.md +85 -0
  179. package/skills/migration-work/SKILL.md +115 -0
  180. package/skills/migration-work/references/migration-lifecycle.md +82 -0
  181. package/skills/mode-contract/SKILL.md +82 -0
  182. package/skills/output-router/SKILL.md +206 -0
  183. package/skills/output-router/references/safety-policy.md +40 -0
  184. package/skills/release-work/SKILL.md +118 -0
  185. package/skills/release-work/references/release-evidence.md +78 -0
  186. package/skills/review-artifact/SKILL.md +126 -0
  187. package/skills/review-artifact/references/reviewer-prompt.md +148 -0
  188. package/skills/review-work/SKILL.md +126 -0
  189. package/skills/review-work/references/reviewer-prompt.md +134 -0
  190. package/skills/review-work/references/security-risk-lens.md +67 -0
  191. package/skills/setup-freeflow/SKILL.md +98 -0
  192. package/skills/setup-freeflow/references/activation-contract.md +120 -0
  193. package/skills/setup-freeflow/references/host-setup.md +72 -0
  194. package/skills/setup-freeflow/references/output-router-setup.md +110 -0
  195. package/skills/simplify-code/SKILL.md +80 -0
  196. package/skills/simplify-code/references/simplification-patterns.md +70 -0
  197. package/skills/tdd/SKILL.md +96 -0
  198. package/skills/tdd/references/test-design.md +96 -0
  199. package/skills/track-work/SKILL.md +84 -0
  200. package/skills/track-work/references/working-record-schema.md +378 -0
  201. package/skills/verify-work/SKILL.md +85 -0
  202. package/skills/verify-work/references/browser-runtime-evidence.md +55 -0
  203. package/skills/verify-work/references/integration-evidence.md +51 -0
  204. package/skills/verify-work/references/performance-evidence.md +57 -0
  205. package/skills/workflow/SKILL.md +91 -0
  206. package/skills/workflow/references/domain-skill-composition.md +57 -0
  207. package/skills/workflow/references/workflow-loop.md +92 -0
  208. package/skills/write-plan/SKILL.md +123 -0
  209. package/skills/write-plan/references/plan-shapes.md +156 -0
  210. package/skills/write-skill/SKILL.md +119 -0
  211. package/skills/write-skill/references/activation-boundaries.md +62 -0
  212. package/skills/write-skill/references/agent-first-instructions.md +87 -0
  213. package/skills/write-skill/references/progressive-disclosure.md +63 -0
  214. package/skills/write-skill/scripts/lib/skill-author.mjs +653 -0
  215. package/skills/write-skill/scripts/skill-author.mjs +104 -0
  216. package/skills/write-spec/SKILL.md +104 -0
  217. package/skills/write-spec/references/artifact-standards.md +86 -0
  218. package/skills/write-spec/references/decision-records.md +77 -0
  219. package/skills/write-spec/references/spec-shapes.md +128 -0
  220. package/plugins/freeflow/command-surface.json +0 -77
  221. package/plugins/freeflow/docs/README.md +0 -40
  222. package/plugins/freeflow/docs/adr/0001-three-modes.md +0 -27
  223. package/plugins/freeflow/docs/adr/0002-evals-before-hooks.md +0 -17
  224. package/plugins/freeflow/docs/adr/0003-release-boundary.md +0 -21
  225. package/plugins/freeflow/docs/adr/0004-research-replaces-shallow-discovery-skills.md +0 -26
  226. package/plugins/freeflow/docs/adr/README.md +0 -8
  227. package/plugins/freeflow/docs/architecture.md +0 -86
  228. package/plugins/freeflow/docs/output-router.md +0 -212
  229. package/plugins/freeflow/docs/release-evidence.md +0 -69
  230. package/plugins/freeflow/docs/skills.md +0 -43
  231. package/plugins/freeflow/docs/workflow.md +0 -57
  232. package/plugins/freeflow/hooks/freeflow-runtime-context.mjs +0 -257
  233. package/plugins/freeflow/pi-extension/index.js +0 -1176
  234. package/plugins/freeflow/router/dist/benchmark-harness.js +0 -92
  235. package/plugins/freeflow/router/dist/benchmarks.d.ts +0 -102
  236. package/plugins/freeflow/router/dist/benchmarks.js +0 -880
  237. package/plugins/freeflow/router/dist/bounded-evidence.d.ts +0 -40
  238. package/plugins/freeflow/router/dist/bounded-evidence.js +0 -310
  239. package/plugins/freeflow/router/dist/codex-qa-benchmarks.d.ts +0 -91
  240. package/plugins/freeflow/router/dist/codex-qa-benchmarks.js +0 -461
  241. package/plugins/freeflow/router/dist/command-benchmarks.d.ts +0 -128
  242. package/plugins/freeflow/router/dist/command-benchmarks.js +0 -652
  243. package/plugins/freeflow/router/dist/config.d.ts +0 -22
  244. package/plugins/freeflow/router/dist/config.js +0 -114
  245. package/plugins/freeflow/router/dist/evidence-range-selector.d.ts +0 -22
  246. package/plugins/freeflow/router/dist/evidence-range-selector.js +0 -180
  247. package/plugins/freeflow/router/dist/evidence-search.d.ts +0 -25
  248. package/plugins/freeflow/router/dist/evidence-search.js +0 -450
  249. package/plugins/freeflow/router/dist/evidence.js +0 -196
  250. package/plugins/freeflow/router/dist/experimental-local-index.d.ts +0 -1
  251. package/plugins/freeflow/router/dist/experimental-local-index.js +0 -1
  252. package/plugins/freeflow/router/dist/experiments/local-index.d.ts +0 -58
  253. package/plugins/freeflow/router/dist/experiments/local-index.js +0 -562
  254. package/plugins/freeflow/router/dist/index-benchmarks.d.ts +0 -84
  255. package/plugins/freeflow/router/dist/index-benchmarks.js +0 -458
  256. package/plugins/freeflow/router/dist/index.d.ts +0 -12
  257. package/plugins/freeflow/router/dist/index.js +0 -12
  258. package/plugins/freeflow/router/dist/line-ranges.d.ts +0 -22
  259. package/plugins/freeflow/router/dist/line-ranges.js +0 -22
  260. package/plugins/freeflow/router/dist/parsers.d.ts +0 -16
  261. package/plugins/freeflow/router/dist/parsers.js +0 -473
  262. package/plugins/freeflow/router/dist/repo-traversal.js +0 -242
  263. package/plugins/freeflow/router/dist/retrieve.d.ts +0 -33
  264. package/plugins/freeflow/router/dist/retrieve.js +0 -855
  265. package/plugins/freeflow/router/dist/router-contract.js +0 -54
  266. package/plugins/freeflow/router/dist/run.d.ts +0 -26
  267. package/plugins/freeflow/router/dist/run.js +0 -356
  268. package/plugins/freeflow/router/dist/schema.js +0 -354
  269. package/plugins/freeflow/router/dist/types.d.ts +0 -234
  270. package/plugins/freeflow/router/dist/types.js +0 -9
  271. package/plugins/freeflow/router/dist/vault.d.ts +0 -80
  272. package/plugins/freeflow/router/dist/vault.js +0 -484
  273. package/plugins/freeflow/skills/bypass/SKILL.md +0 -68
  274. package/plugins/freeflow/skills/commit-work/SKILL.md +0 -98
  275. package/plugins/freeflow/skills/commit-work/references/staging-decisions.md +0 -51
  276. package/plugins/freeflow/skills/diagnose-failure/SKILL.md +0 -95
  277. package/plugins/freeflow/skills/diagnose-failure/references/feedback-loop-catalog.md +0 -25
  278. package/plugins/freeflow/skills/diagnose-failure/references/flaky-and-performance.md +0 -31
  279. package/plugins/freeflow/skills/evaluate-skill/SKILL.md +0 -96
  280. package/plugins/freeflow/skills/evaluate-skill/references/eval-patterns.md +0 -41
  281. package/plugins/freeflow/skills/evaluate-skill/references/grading-priority.md +0 -33
  282. package/plugins/freeflow/skills/execute-plan/SKILL.md +0 -132
  283. package/plugins/freeflow/skills/execute-plan/references/execution-map.md +0 -122
  284. package/plugins/freeflow/skills/handoff/SKILL.md +0 -66
  285. package/plugins/freeflow/skills/handoff/references/templates.md +0 -64
  286. package/plugins/freeflow/skills/interview-gate/SKILL.md +0 -90
  287. package/plugins/freeflow/skills/mode-contract/SKILL.md +0 -79
  288. package/plugins/freeflow/skills/output-router/SKILL.md +0 -69
  289. package/plugins/freeflow/skills/output-router/references/safety-policy.md +0 -33
  290. package/plugins/freeflow/skills/research/ARTIFACT-DESTINATIONS.md +0 -58
  291. package/plugins/freeflow/skills/research/CHECKPOINTS.md +0 -74
  292. package/plugins/freeflow/skills/research/LANGUAGE.md +0 -61
  293. package/plugins/freeflow/skills/research/SKILL.md +0 -128
  294. package/plugins/freeflow/skills/review-artifact/SKILL.md +0 -115
  295. package/plugins/freeflow/skills/review-artifact/references/reviewer-prompt.md +0 -56
  296. package/plugins/freeflow/skills/review-work/SKILL.md +0 -96
  297. package/plugins/freeflow/skills/review-work/references/reviewer-prompt.md +0 -97
  298. package/plugins/freeflow/skills/setup-freeflow/SKILL.md +0 -94
  299. package/plugins/freeflow/skills/setup-freeflow/references/activation-contract.md +0 -99
  300. package/plugins/freeflow/skills/setup-freeflow/references/host-setup.md +0 -35
  301. package/plugins/freeflow/skills/setup-freeflow/references/output-router-setup.md +0 -52
  302. package/plugins/freeflow/skills/verify-work/SKILL.md +0 -62
  303. package/plugins/freeflow/skills/workflow/SKILL.md +0 -95
  304. package/plugins/freeflow/skills/workflow/references/workflow-map.md +0 -102
  305. package/plugins/freeflow/skills/write-plan/SKILL.md +0 -88
  306. package/plugins/freeflow/skills/write-plan/references/plan-shapes.md +0 -70
  307. package/plugins/freeflow/skills/write-skill/SKILL.md +0 -88
  308. package/plugins/freeflow/skills/write-spec/SKILL.md +0 -90
  309. package/plugins/freeflow/skills/write-spec/references/artifact-standards.md +0 -67
  310. package/plugins/freeflow/skills/write-spec/references/spec-shapes.md +0 -69
  311. /package/{plugins/freeflow/assets → assets}/freeflow-plugin-icon-transparent.png +0 -0
  312. /package/{plugins/freeflow/hooks → hooks}/hooks.json +0 -0
@@ -1,64 +0,0 @@
1
- # Handoff Templates
2
-
3
- Use this only after destination is clear: temp handoff or memory handoff.
4
-
5
- Handoffs are memory, not authority. Keep them compact, evidence-linked, and easy for a fresh agent to verify.
6
-
7
- ## Temp Handoff
8
-
9
- Use for immediate continuation after compaction, pausing, or a fresh chat.
10
-
11
- ```md
12
- # Temp Handoff
13
-
14
- Date: YYYY-MM-DD
15
-
16
- ## Goal
17
-
18
- ## Current State
19
-
20
- ## Decisions Made
21
-
22
- ## Evidence To Reopen
23
-
24
- ## Next Action
25
-
26
- ## Watchouts
27
- ```
28
-
29
- Keep `Current State` focused on what the next agent needs before acting. Do not include a transcript, full file tree, or broad repo summary.
30
-
31
- ## Memory Handoff
32
-
33
- Use for durable project memory under the repo's existing handoff location.
34
-
35
- ```md
36
- # Project Handoff
37
-
38
- Date: YYYY-MM-DD
39
-
40
- ## Purpose
41
-
42
- ## Stable Context
43
-
44
- ## Decisions Made
45
-
46
- ## Live Evidence
47
-
48
- ## Next Focus
49
-
50
- ## Stop Conditions
51
-
52
- ## Superseded Or Deferred Work
53
- ```
54
-
55
- Use `Live Evidence` for paths, tests, specs, ADRs, or commands the next agent should inspect. Say explicitly that live repo evidence overrides stale handoff text.
56
-
57
- ## Resume Checklist
58
-
59
- When resuming from either handoff:
60
-
61
- - Reopen linked live files before consequential edits.
62
- - Verify completion claims before repeating them.
63
- - Treat source-truth conflicts as interview-gate triggers.
64
- - Ask before changing product, policy, security, privacy, billing, data-loss, compatibility, public API, or hard-to-reverse architecture.
@@ -1,90 +0,0 @@
1
- ---
2
- name: interview-gate
3
- description: Use when context is low, scope is ambiguous, implementation/review/verification reveals unknowns, the user asks a question or suggests a path that could be misread as correction/permission, or the agent may be about to make a user-owned decision.
4
- ---
5
-
6
- # Interview Gate
7
-
8
- Stop before silent decisions.
9
-
10
- Known material method substitutions are decision points. If the requested, planned, or skill-required method and the fallback are already known, ask before source inspection, fallback work, or report drafting. Do not inspect files merely to make the fallback response more precise.
11
-
12
- ## Stop First: Question or Decision Point
13
-
14
- If the user asks a question, answer it. Do not treat the question as criticism, permission, or a request to change behavior. Do not create, update, or delete files.
15
-
16
- If the answer reveals missing work, report the gap. Do not fill it unless the user asks you to.
17
-
18
- When the user asks "why did you", "did you", "what happened", or similar, answer what happened and why. Do not infer scolding, apologize, revert, edit, or promise future behavior changes unless the user asks.
19
-
20
- When the user suggests "this is better, right", "shouldn't we", or a similar option, treat it as a hypothesis. Evaluate against evidence and say yes, no, or partly. Do not agree just to be agreeable.
21
-
22
- If adopting a suggestion would change scope, source truth, workflow, files, or user-visible behavior, ask before acting.
23
-
24
- If the user is deciding the next path, answer the decision first. Do not turn "should we", "do we need", "let's X before Y", or "what next" into file changes unless the action and destination are explicit.
25
-
26
- Existing practice is evidence, not approval. "We usually do X" does not authorize X when another live rule or destination would also fit.
27
-
28
- Fire this gate from any workflow state when the next action depends on:
29
-
30
- - Product behavior.
31
- - Scope or priority.
32
- - Domain meaning.
33
- - Artifact creation, destination, or durability.
34
- - Compatibility.
35
- - Public API or user-facing behavior.
36
- - Irreversible architecture.
37
- - Security, privacy, billing, or data-loss behavior.
38
- - Changing docs, tests, specs, policies, ADRs, or handoffs to fit a new implementation request.
39
- - A user request, handoff, plan, or review comment contradicts current repo evidence.
40
- - The user asked for X, but your next action would be materially different Y.
41
- - A requested, planned, or skill-required method is blocked and your fallback would change evidence quality, workflow shape, risk, scope, cost, persistence, or user-visible output.
42
-
43
- ## Inspect Before Asking
44
-
45
- If the answer is discoverable, inspect first:
46
-
47
- - Code.
48
- - Tests.
49
- - Docs.
50
- - Logs.
51
- - Issues.
52
- - ADRs or decision records.
53
- - Current external docs when facts may have changed.
54
-
55
- Ask the user only for decisions that remain user-owned.
56
-
57
- ## Conflict Pattern
58
-
59
- If the requested path conflicts with evidence, rules, constraints, or your intended next action:
60
-
61
- - Stop before acting.
62
- - Name the requested path and the conflicting path.
63
- - Name the blocking constraint.
64
- - Say why the difference changes the next action.
65
- - Ask which path to follow.
66
- - Give a recommendation when the evidence supports one.
67
-
68
- Until the user chooses, continue with investigation or clarification, not implementation.
69
-
70
- For material method substitution, stop before starting the fallback method. The constraint itself is enough to ask when the fallback would change evidence quality, workflow shape, confidence, or output.
71
-
72
- Do not fire for harmless execution details that do not change the user's outcome.
73
-
74
- Equivalent local substitutions such as `rg` for `grep`, temp filenames, nearby file reads, or formatting choices do not need a gate.
75
-
76
- ## Question Pattern
77
-
78
- Ask one question at a time.
79
-
80
- For each question:
81
-
82
- - State the uncertainty.
83
- - Explain why it changes the next action.
84
- - Give your recommended answer when possible.
85
-
86
- Exit when remaining ambiguity would not change the next forward action.
87
-
88
- ## Backward Flow
89
-
90
- When implementation, review, or verification reveals a gap, return here before changing direction. Do not patch forward silently.
@@ -1,79 +0,0 @@
1
- ---
2
- name: mode-contract
3
- description: Use when a user asks to set, change, infer, or discuss conversation/workflow/strict-workflow mode, or when task risk suggests recommending a workflow mode.
4
- ---
5
-
6
- # Mode Contract
7
-
8
- Use exactly three modes.
9
-
10
- ## Modes
11
-
12
- **Conversation mode**: discussion, explanation, critique, exploration, quick analysis.
13
-
14
- - Answer questions; do not act on them.
15
- - No workflow pressure.
16
- - No required artifacts.
17
- - No plan/spec requirement.
18
- - Ask only when needed for the answer.
19
-
20
- **Workflow mode**: normal consequential work.
21
-
22
- - Use the workflow as a guide.
23
- - Ask or inspect when ambiguity would change the next action.
24
- - Create artifacts only when they preserve decisions, reduce risk, or enable handoff.
25
- - Verify before completion claims.
26
-
27
- **Strict-workflow mode**: high-risk or hard-to-reverse work.
28
-
29
- - Use stronger gates.
30
- - Require explicit decisions for security, privacy, billing, data loss, migrations, public APIs, compatibility, deployment, and large architecture changes.
31
- - Require explicit confirmation before changing source-of-truth artifacts such as docs, tests, specs, policies, ADRs, or handoffs when they contradict the requested implementation.
32
- - Recommend this mode when risk warrants it, but do not silently switch unless the user configured it as default.
33
-
34
- ## Inference
35
-
36
- - If the user is talking or asking a conceptual question, use conversation mode.
37
- - If the user asks to implement, fix, research for action, review, or plan, use workflow mode.
38
- - If the task is high-risk, recommend strict-workflow mode and ask for confirmation.
39
- - If implementation would require overriding existing docs, tests, specs, policies, or established behavior, recommend strict-workflow mode and ask before editing.
40
-
41
- ## User Control
42
-
43
- The user owns mode changes. You may recommend a mode; the user decides.
44
-
45
- ## Commands And Defaults
46
-
47
- Keep two scopes separate:
48
-
49
- - `defaultMode`: persisted repo default in `.freeflow/config.json`.
50
- - Current mode: task, conversation, or session override. Do not persist it in repo config.
51
-
52
- Recognize only:
53
-
54
- ```text
55
- /workflow conversation
56
- /workflow workflow
57
- /workflow strict-workflow
58
- /workflow reset
59
- ```
60
-
61
- The three mode-setting commands switch mode for the current task, conversation, or host session only. `/workflow reset` clears the current override and returns to `defaultMode`; it is a command, not a fourth mode.
62
-
63
- Do not persist current mode, create repo state files, or edit config unless the user explicitly asks to change the repo default.
64
-
65
- Phrases like "from now on", "until I say otherwise", or "for this repo" still do not persist mode unless paired with an explicit default change request.
66
-
67
- When the repo default matters, read `.freeflow/config.json`. If it is missing or invalid, fall back to `workflow` and report the config issue when relevant.
68
-
69
- Persist only explicit default requests, such as "make strict-workflow the default for this repo." Update `.freeflow/config.json` with only:
70
-
71
- ```json
72
- {
73
- "defaultMode": "strict-workflow"
74
- }
75
- ```
76
-
77
- Use the requested valid mode. Do not add current mode, task, phase, version, or activation-path fields.
78
-
79
- Direct skill calls are manual state selection. If the user calls a workflow segment directly, operate in that segment while still using the interview gate for user-owned decisions.
@@ -1,69 +0,0 @@
1
- ---
2
- name: output-router
3
- description: Use when choosing between native tools and Freeflow routed tools, retrieving repo/vault evidence, running likely-large or noisy commands, recovering vaulted output, configuring outputRouter, or handling optional native read/bash safety-net routing.
4
- ---
5
-
6
- # Output Router
7
-
8
- Route output deliberately. Native tools stay direct unless explicit config enables the safety net.
9
-
10
- ## Tool Choice
11
-
12
- - Need existing repo or vault information: use `freeflow_retrieve`.
13
- - Need candidate paths first: use `freeflow_retrieve action=locate`.
14
- - Need a best evidence packet: use `freeflow_retrieve action=query`.
15
- - Need exact known repo/vault lines: use `freeflow_retrieve action=retrieve` with `source.path` or `source.kind=vault`, plus `lineRange` when exact lines matter.
16
- - Need more around prior evidence: use `freeflow_retrieve action=expand`.
17
- - Need to explain a routed result or vault id: use `freeflow_retrieve action=explain`.
18
- - Need to run a likely-large or noisy command: use `freeflow_run`.
19
- - Need a whole known file/artifact: use native read.
20
- - Need direct shell behavior or expected-small exact output: use native bash.
21
- - Need to edit files: use native edit/write.
22
-
23
- ## Hard Rules
24
-
25
- - Do not pretend routed output is native output.
26
- - Do not silently shorten native output. If the safety net transforms it, the result must say Freeflow routed it and include recovery instructions.
27
- - Capture raw output before transforming it.
28
- - Treat `preserve: full` as exact fidelity, not unlimited context injection. Over cap, return exact chunks or retrieval pointers.
29
- - Freeflow mode changes guidance strength only. It must not enable `postToolRouting`.
30
- - Keep `toolStatus`, `execution.status`, and `routing.status` separate.
31
-
32
- ## Safety Policy
33
-
34
- Read `references/safety-policy.md` before changing routing policy, reviewing router behavior, or routing exactness-sensitive output.
35
-
36
- ## Recovery Pattern
37
-
38
- For routed command or native safety-net output, recover exact text with:
39
-
40
- ```json
41
- {
42
- "action": "retrieve",
43
- "source": { "kind": "vault", "outputId": "ffout_...", "stream": "stdout|stderr|combined|raw" },
44
- "lineRange": { "start": 1, "end": 20 },
45
- "preserve": "full"
46
- }
47
- ```
48
-
49
- Use `query` first when the needed lines are unknown. Use `expand` when a previous evidence packet is too narrow.
50
-
51
- ## Config
52
-
53
- The router works with built-in defaults. Persist `outputRouter` config only when explicitly requested; `setup-freeflow` owns repo setup/config changes.
54
-
55
- Supported repo keys are `postToolRouting`, `largeOutputBytes`, `largeOutputLines`, `vaultRoot`, `vaultRetentionDays`, `generatedPaths`, and `noisyCommandHints`.
56
-
57
- `outputRouter.postToolRouting` controls native read/bash safety-net routing:
58
-
59
- - `off`: native outputs pass through unchanged.
60
- - `safety-net`: large/noisy native read/bash output may be vaulted and labeled.
61
- - `strict`: reserved for stronger future guards; do not invent blocking behavior.
62
-
63
- Rules:
64
-
65
- - Minimal setup stays only `defaultMode`.
66
- - Do not dump defaults or create an empty `outputRouter` object.
67
- - `generatedPaths` affects broad scans only; explicit path retrieval remains available.
68
- - Freeflow mode changes guidance strength only. It must not enable `postToolRouting`.
69
- - Invalid config must fall back safely with a warning.
@@ -1,33 +0,0 @@
1
- # Output Router Safety Policy
2
-
3
- Use this reference for exactness-sensitive output routing.
4
-
5
- ## Main Rule
6
-
7
- Do not silently summarize or compress exactness-sensitive output.
8
-
9
- Exactness-sensitive output includes:
10
-
11
- - user-requested exact/full output,
12
- - small outputs,
13
- - verification output needed for completion claims,
14
- - failure evidence needed for diagnosis,
15
- - source-truth conflict evidence,
16
- - security, privacy, billing, data-loss, or public API evidence,
17
- - anything marked `preserve: full`.
18
-
19
- ## Required Behavior
20
-
21
- - Capture raw evidence before transformation whenever output is routed.
22
- - Label every transformed native result as Freeflow-routed output.
23
- - Include an `outputId` and exact recovery instructions for routed output.
24
- - Preserve exact failure and verification evidence lines; do not paraphrase them.
25
- - Pass small native outputs through unchanged.
26
- - For huge exactness-sensitive output, use vaulting and exact chunk retrieval instead of lossy summarization.
27
- - If post-tool safety-net routing fails, fail open: return the native output unchanged when possible and include a warning.
28
-
29
- ## Non-Goals
30
-
31
- - This policy does not enable post-tool routing by itself.
32
- - This policy does not authorize model-assisted summarization inside the router runtime.
33
- - This policy does not require existing Freeflow skills to depend on the router runtime.
@@ -1,58 +0,0 @@
1
- # Artifact Destinations
2
-
3
- Use this when a research checkpoint or decision must survive beyond chat.
4
-
5
- ## Destination Test
6
-
7
- Before writing, answer:
8
-
9
- - What needs to survive?
10
- - Who will treat the destination as authority?
11
- - Which existing artifact already owns this kind of truth?
12
- - Would writing here create a new convention?
13
- - Would a future agent know to look here?
14
-
15
- If the owner is unclear, ask before writing.
16
-
17
- ## Common Destinations
18
-
19
- | Research output | Prefer | Avoid |
20
- | --- | --- | --- |
21
- | Domain term or meaning | Existing `CONTEXT.md`, glossary, or domain doc | README fallback; creating domain memory without asking |
22
- | Feature behavior, scope, acceptance | Existing or requested spec | ADR unless the ADR test passes |
23
- | Future implementation path | Plan | Hidden plan inside a research note |
24
- | Evidence summary before requirements settle | Existing research/design notes, or ask | Creating `docs/research/` by default |
25
- | Immediate continuation state | Handoff | Durable decision memory |
26
- | Hard-to-reverse surprising tradeoff from alternatives | ADR | Product note that hides rationale |
27
- | Rejected approach | ADR if tradeoff-heavy; otherwise spec/decision note | Changelog or README by default |
28
- | No durable value | Chat checkpoint | New file for ceremony |
29
-
30
- ## ADR Test
31
-
32
- Use an ADR only when all are true:
33
-
34
- - Hard to reverse.
35
- - Surprising without context.
36
- - Chosen from real alternatives.
37
-
38
- Otherwise use the owning spec, decision note, domain doc, handoff, or chat.
39
-
40
- ## Stop Rules
41
-
42
- Do not create a new `CONTEXT.md`, glossary, `docs/decisions/`, `docs/specs/`, `docs/research/`, or ADR folder just because the checkpoint needs memory.
43
-
44
- A missing destination convention is a decision point.
45
-
46
- Do not put volatile file lists, command output, temporary TODOs, or implementation inventory in durable decision memory. Put continuation state in a handoff or plan when needed.
47
-
48
- ## Question Shape
49
-
50
- When destination is ambiguous, ask one direct question:
51
-
52
- ```text
53
- I have a checkpoint worth preserving: [what].
54
- The narrowest destination is [recommended artifact] because [why].
55
- Should I save it there?
56
- ```
57
-
58
- Do not write the artifact before the user chooses the destination.
@@ -1,74 +0,0 @@
1
- # Research Checkpoints
2
-
3
- A checkpoint is the output of research. It preserves the current understanding and names the next route.
4
-
5
- Research does not end by silently writing a spec, plan, or implementation.
6
-
7
- ## Chat Or Artifact
8
-
9
- Keep the checkpoint in chat when the work is short-lived and the next turn can safely continue from conversation context.
10
-
11
- Save the checkpoint when it must guide later work, another agent, a future session, or a durable artifact.
12
-
13
- Use the narrowest owning artifact:
14
-
15
- - Spec: behavior, scope, requirements, acceptance, product decisions.
16
- - Plan: future implementation path and checks.
17
- - Handoff: immediate continuation state.
18
- - Decision note or ADR: durable tradeoff or rejected approach.
19
- - Domain memory: stable term or domain meaning.
20
- - Research note: evidence summary that must be reused before requirements are settled.
21
-
22
- If no clear destination exists, ask before writing.
23
-
24
- ## Shape
25
-
26
- Use this shape. Omit sections that do not apply.
27
-
28
- ```text
29
- Question / goal: ...
30
- Evidence: ...
31
- Current understanding: ...
32
- Settled: ...
33
- Tentative: ...
34
- Open: ...
35
- Recommendation: ...
36
- Next: Forward | Backward | Branch | Stop — ...
37
- ```
38
-
39
- ## Good Checkpoints
40
-
41
- A good checkpoint:
42
-
43
- - Links or names live evidence instead of copying volatile inventory.
44
- - Separates settled facts from tentative assumptions.
45
- - Names open decisions that change the next route.
46
- - Recommends the next route without treating it as permission.
47
- - Avoids hiding user-owned decisions in polished prose.
48
-
49
- ## Bad Checkpoints
50
-
51
- Bad:
52
-
53
- ```text
54
- We discussed a lot. I'll implement the recommended path.
55
- ```
56
-
57
- because it skips settled/tentative/open state and jumps to action.
58
-
59
- Bad:
60
-
61
- ```text
62
- Decision: create docs/decisions/ and record everything.
63
- ```
64
-
65
- when the repo has no decision-note convention and the user has not chosen that destination.
66
-
67
- Good:
68
-
69
- ```text
70
- Settled: RiskReview is manual today; $500+ invoices enter review.
71
- Tentative: retry scheduling should assist support, not replace review.
72
- Open: should this be support-assistive or fully automated?
73
- Next: Backward — answer the automation-scope decision before spec.
74
- ```
@@ -1,61 +0,0 @@
1
- # Research Language
2
-
3
- Use the same language as architecture review so early research shapes the codebase with the same concepts later used to review it.
4
-
5
- ## Terms
6
-
7
- **Module**
8
- The thing being understood, built, or reshaped. It can be a feature, flow, artifact, repo area, package, class, function, or future slice of code.
9
-
10
- **Interface**
11
- Everything a user, caller, or future agent must know to use or continue the module correctly: names, inputs, invariants, ordering, error modes, ownership, and source truth.
12
-
13
- **Implementation**
14
- The details that can stay hidden behind the interface. Research should decide what callers must know before exposing implementation detail.
15
-
16
- **Depth**
17
- Leverage at the interface. Deep research makes the next spec, plan, or module simpler to use. Shallow research pushes coordination into the user, callers, or future agents.
18
-
19
- **Seam**
20
- Where behavior, ownership, or variation can change without rewriting surrounding work. A seam can be code, artifact, process, owner, or dependency shaped.
21
-
22
- **Adapter**
23
- A concrete thing satisfying an interface at a seam. Use this when something actually varies across the seam; do not invent adapters for ceremony.
24
-
25
- **Leverage**
26
- What one question, decision, or interface unlocks for future work.
27
-
28
- **Locality**
29
- Where evidence, decisions, tests, and changes should concentrate so future work can find them.
30
-
31
- ## Deletion Tests
32
-
33
- Question deletion test:
34
-
35
- ```text
36
- If I do not ask this, does downstream complexity spread?
37
- ```
38
-
39
- Decision deletion test:
40
-
41
- ```text
42
- If this is not captured, will future work rediscover or contradict it?
43
- ```
44
-
45
- Module deletion test:
46
-
47
- ```text
48
- If this module disappears, does complexity vanish or spread across callers?
49
- ```
50
-
51
- ## Research Use
52
-
53
- Use domain language from `CONTEXT.md`, existing docs, tests, and code. Do not invent polished names before evidence supports them.
54
-
55
- Name the outside first: what should users, callers, or future agents need to know? Then decide which implementation details can stay hidden.
56
-
57
- A good research pass should make later architecture review ask:
58
-
59
- ```text
60
- Did we build the deep module we shaped here?
61
- ```
@@ -1,128 +0,0 @@
1
- ---
2
- name: research
3
- description: Use when shaping an idea, feature, architecture direction, vague task, or consequential question before spec, plan, build, or durable memory. Use when evidence, brainstorming, targeted questions, and decision checkpointing need to interleave.
4
- ---
5
-
6
- # Research
7
-
8
- Research is the discovery loop before action: evidence-guided back-and-forth that finds high-leverage decisions and ends in a checkpoint.
9
-
10
- For short-lived work, the checkpoint can stay in chat. When it must guide later work, save it in the narrowest owning artifact: spec, plan, handoff, decision note, ADR, or domain memory.
11
-
12
- Goal: enough evidence and shared understanding to checkpoint the current direction and route to spec, plan, more research, durable memory, build, or stop without inventing product, domain, scope, public API, security, privacy, billing, data-loss, compatibility, or architecture decisions.
13
-
14
- ## Language
15
-
16
- Use the same architecture language when shaping work. Read `LANGUAGE.md` when the research needs deeper language mapping or the checkpoint will shape architecture:
17
-
18
- - **Module** — the thing being understood, built, or reshaped; it has an **interface** and an **implementation**.
19
- - **Interface** — what users, callers, or future agents must know to use or continue the work correctly.
20
- - **Implementation** — the details that can stay hidden behind the interface.
21
- - **Depth** — leverage at the interface. **Deep** means a small interface carries a lot of useful behavior. **Shallow** means the user, caller, or future agent must coordinate too many details.
22
- - **Seam** — where behavior, ownership, or variation can change without rewriting the surrounding work.
23
- - **Adapter** — a concrete thing satisfying an interface at a seam.
24
- - **Leverage** — how much future work one question, decision, or interface unlocks.
25
- - **Locality** — keeping evidence, decisions, tests, and changes where future work can find them.
26
-
27
- Use the **deletion test** on questions, decisions, and proposed modules: if skipping it makes complexity spread downstream, it matters. If skipping it makes complexity vanish, it was ceremony.
28
-
29
- ## Loop
30
-
31
- 1. Identify the target: repo area, artifact, URL, product, model, package, paper, issue, or idea. If multiple plausible targets would change research, ask for the source.
32
- 2. Inspect the smallest evidence that can answer the current question: code, tests, docs, ADRs, specs, logs, issues, provided context, or current external sources.
33
- 3. Explain the current understanding in plain language.
34
- 4. Ask one path-changing question when the answer would change the next route.
35
- 5. Let the user challenge, counter-question, or go deeper. Treat that as research input, not interruption.
36
- 6. Refresh evidence when new claims, conflicts, or branches appear.
37
- 7. Track decisions as settled, tentative, or open.
38
- 8. Stop when remaining ambiguity would not change the next artifact or action.
39
-
40
- Research may move through evidence, brainstorming, targeted questioning, and checkpointing in any order. Do not force a fixed sequence when the evidence or conversation needs a loop.
41
-
42
- ## Question Discipline
43
-
44
- Prefer deeper questions over more questions. Ask as many as the situation needs, but each question should earn its place: a good question collapses branches; a shallow question collects approvals.
45
-
46
- Before asking, run the question deletion test:
47
-
48
- ```text
49
- If I do not ask this, does downstream complexity spread?
50
- ```
51
-
52
- If no, skip it.
53
-
54
- Bad question:
55
-
56
- ```text
57
- Should the button be blue or green?
58
- ```
59
-
60
- when the feature purpose is still unclear.
61
-
62
- Good question:
63
-
64
- ```text
65
- Is this for one workflow or many workflows?
66
- ```
67
-
68
- because it changes the module interface, spec shape, and test surface.
69
-
70
- Long question chains are a failure mode, not diligence. Do not answer pressure for "every question" or "25-50 questions" by dumping a long questionnaire. That creates shallow approvals.
71
-
72
- Do not turn recommendations into an approval script. Recommendations should clarify tradeoffs, not make it easy to rubber-stamp many decisions. Give the recommendation when useful, then wait when the choice is user-owned.
73
-
74
- Instead of a long questionnaire: inspect evidence, name the decision tree, group lower-level unknowns, and ask the first high-leverage question that changes the next route. Continue in later turns as needed.
75
-
76
- After a few path-changing questions, or whenever the user introduces a new claim, inspect evidence, summarize, or checkpoint before asking more.
77
-
78
- ## Decision Discipline
79
-
80
- Read `ARTIFACT-DESTINATIONS.md` when a checkpoint or decision must survive beyond chat and the owning destination is not obvious.
81
-
82
- Not every answer is durable. Keep a lightweight ledger:
83
-
84
- - **Settled** — explicit user decision or evidence-backed fact.
85
- - **Tentative** — useful working assumption, not authority.
86
- - **Open** — unresolved question that can change the next route.
87
-
88
- Persist a decision only when absence would make future work rediscover or contradict it.
89
-
90
- Put durable decisions where they belong:
91
-
92
- - Domain term or meaning -> existing glossary, `CONTEXT.md`, or domain doc.
93
- - Feature behavior, scope, or acceptance -> spec.
94
- - Future implementation path -> plan.
95
- - Immediate continuation state -> handoff.
96
- - Hard-to-reverse, surprising tradeoff chosen from alternatives -> ADR.
97
- - No durable value -> leave it in chat.
98
-
99
- If the destination is missing or ambiguous, ask before writing.
100
-
101
- ## Stop Conditions
102
-
103
- Stop and ask the user when research reveals a user-owned decision, source-of-truth conflict, path conflict, material method substitution, or ambiguous artifact destination.
104
-
105
- Do not write implementation files from research.
106
-
107
- Write specs, plans, ADRs, handoffs, or decision notes only when the user asks or the checkpoint must guide later work.
108
-
109
- Do not leave research by silently jumping to spec, plan, or build. Close with a checkpoint when consequential direction changed.
110
-
111
- ## Checkpoint Shape
112
-
113
- Read `CHECKPOINTS.md` when saving a checkpoint or choosing chat versus artifact.
114
-
115
- Use this shape when ending a research pass or routing forward. Save it in the owning artifact when it must survive beyond chat. Omit sections that do not apply.
116
-
117
- ```text
118
- Question / goal: ...
119
- Evidence: ...
120
- Current understanding: ...
121
- Settled: ...
122
- Tentative: ...
123
- Open: ...
124
- Recommendation: ...
125
- Next: Forward | Backward | Branch | Stop — ...
126
- ```
127
-
128
- `Next:` is routing, not permission to create the next artifact.