@hassangameryt/freeflow 0.5.0 → 0.6.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 (284) hide show
  1. package/.claude-plugin/marketplace.json +1 -1
  2. package/.claude-plugin/plugin.json +1 -1
  3. package/.codex-plugin/plugin.json +1 -1
  4. package/README.md +148 -154
  5. package/capabilities/cognitive-routing/SKILL.md +229 -0
  6. package/capabilities/context-virtualization/SKILL.md +103 -0
  7. package/capabilities/conversation-history/SKILL.md +53 -0
  8. package/command-surface.json +6 -13
  9. package/hooks/freeflow-runtime-context.mjs +35 -91
  10. package/hooks/tests/check-runtime-context-hook.sh +56 -39
  11. package/package.json +24 -16
  12. package/pi-extension/dist/cognitive-routing/commands.js +96 -0
  13. package/pi-extension/dist/cognitive-routing/config.js +236 -0
  14. package/pi-extension/dist/cognitive-routing/controller.js +862 -0
  15. package/pi-extension/dist/cognitive-routing/history.js +439 -0
  16. package/pi-extension/dist/cognitive-routing/host.js +126 -0
  17. package/pi-extension/dist/cognitive-routing/runtime.js +43 -0
  18. package/pi-extension/dist/cognitive-routing/tool.js +211 -0
  19. package/pi-extension/dist/cognitive-routing/types.js +6 -0
  20. package/pi-extension/dist/context-virtualization/commands.js +89 -0
  21. package/pi-extension/dist/context-virtualization/projector.js +42 -0
  22. package/pi-extension/dist/context-virtualization/runtime.js +356 -0
  23. package/pi-extension/dist/context-virtualization/state.js +57 -0
  24. package/pi-extension/dist/context-virtualization/types.js +10 -0
  25. package/pi-extension/dist/conversation-history/passages.js +66 -0
  26. package/pi-extension/dist/conversation-history/ranking.js +105 -0
  27. package/pi-extension/dist/conversation-history/runtime.js +226 -0
  28. package/pi-extension/dist/conversation-history/search.js +56 -0
  29. package/pi-extension/dist/conversation-history/types.js +1 -0
  30. package/pi-extension/dist/freeflow-context/resolver.js +120 -0
  31. package/pi-extension/dist/freeflow-context/runtime.js +80 -0
  32. package/pi-extension/dist/freeflow-context/source-projector.js +95 -0
  33. package/pi-extension/dist/freeflow-context/tool.js +308 -0
  34. package/pi-extension/dist/freeflow-context/types.js +12 -0
  35. package/pi-extension/dist/freeflow-context/visibility.js +28 -0
  36. package/pi-extension/dist/index.js +516 -98
  37. package/pi-extension/dist/runtime/runtime-context.js +318 -271
  38. package/pi-extension/dist/runtime/runtime-identity.js +5 -0
  39. package/pi-extension/dist/settings/settings-tui.js +78 -0
  40. package/pi-extension/dist/settings/settings-ui.js +593 -563
  41. package/pi-extension/dist/ui/text-component.js +57 -0
  42. package/pi-extension/src/cognitive-routing/commands.ts +119 -0
  43. package/pi-extension/src/cognitive-routing/config.ts +307 -0
  44. package/pi-extension/src/cognitive-routing/controller.ts +1118 -0
  45. package/pi-extension/src/cognitive-routing/history.ts +638 -0
  46. package/pi-extension/src/cognitive-routing/host.ts +172 -0
  47. package/pi-extension/src/cognitive-routing/runtime.ts +57 -0
  48. package/pi-extension/src/cognitive-routing/tool.ts +272 -0
  49. package/pi-extension/src/cognitive-routing/types.ts +89 -0
  50. package/pi-extension/src/context-virtualization/commands.ts +111 -0
  51. package/pi-extension/src/context-virtualization/projector.ts +62 -0
  52. package/pi-extension/src/context-virtualization/runtime.ts +406 -0
  53. package/pi-extension/src/context-virtualization/state.ts +79 -0
  54. package/pi-extension/src/context-virtualization/types.ts +92 -0
  55. package/pi-extension/src/conversation-history/passages.ts +81 -0
  56. package/pi-extension/src/conversation-history/ranking.ts +155 -0
  57. package/pi-extension/src/conversation-history/runtime.ts +250 -0
  58. package/pi-extension/src/conversation-history/search.ts +79 -0
  59. package/pi-extension/src/conversation-history/types.ts +31 -0
  60. package/pi-extension/src/freeflow-context/resolver.ts +139 -0
  61. package/pi-extension/src/freeflow-context/runtime.ts +100 -0
  62. package/pi-extension/src/freeflow-context/source-projector.ts +106 -0
  63. package/pi-extension/src/freeflow-context/tool.ts +360 -0
  64. package/pi-extension/src/freeflow-context/types.ts +70 -0
  65. package/pi-extension/src/freeflow-context/visibility.ts +53 -0
  66. package/pi-extension/src/index.ts +553 -101
  67. package/pi-extension/src/runtime/runtime-context.ts +339 -281
  68. package/pi-extension/src/runtime/runtime-identity.ts +8 -0
  69. package/pi-extension/src/settings/settings-tui.ts +93 -0
  70. package/pi-extension/src/settings/settings-ui.ts +700 -613
  71. package/pi-extension/src/ui/text-component.ts +66 -0
  72. package/pi-extension/tests/cognitive-routing/commands.test.js +134 -0
  73. package/pi-extension/tests/cognitive-routing/controller.test.js +1099 -0
  74. package/pi-extension/tests/cognitive-routing/extension-lifecycle.test.js +1071 -0
  75. package/pi-extension/tests/cognitive-routing/history.test.js +274 -0
  76. package/pi-extension/tests/cognitive-routing/host-fixture.js +4 -0
  77. package/pi-extension/tests/cognitive-routing/host-identity.test.js +63 -0
  78. package/pi-extension/tests/cognitive-routing/profile-resolution.test.js +236 -0
  79. package/pi-extension/tests/cognitive-routing/tool.test.js +230 -0
  80. package/pi-extension/tests/context-virtualization/extension.test.js +749 -0
  81. package/pi-extension/tests/context-virtualization/projector.test.js +110 -0
  82. package/pi-extension/tests/context-virtualization/runtime.test.js +216 -0
  83. package/pi-extension/tests/conversation-history/runtime.test.js +98 -0
  84. package/pi-extension/tests/conversation-history/search.test.js +97 -0
  85. package/pi-extension/tests/integration/pi-extension.test.js +927 -2048
  86. package/pi-extension/tests/integration/prompt-architecture.test.js +305 -0
  87. package/runtime/prompts/cognitive-routing.md +9 -0
  88. package/runtime/prompts/context-virtualization.md +3 -0
  89. package/runtime/prompts/conversation-history.md +3 -0
  90. package/runtime/prompts/core.md +13 -0
  91. package/runtime/prompts/interaction-contract.md +7 -0
  92. package/runtime/prompts/skills.md +65 -0
  93. package/skills/action-selection/SKILL.md +91 -0
  94. package/skills/bypass/SKILL.md +3 -2
  95. package/skills/commit-work/SKILL.md +1 -1
  96. package/skills/commit-work/references/staging-decisions.md +1 -1
  97. package/skills/decision-gate/SKILL.md +1 -1
  98. package/skills/design-for-depth/SKILL.md +14 -33
  99. package/skills/design-for-depth/references/design-pressure-signals.md +1 -1
  100. package/skills/design-for-depth/references/interface-design-loop.md +1 -1
  101. package/skills/design-for-depth/references/software-design-philosophy.md +1 -1
  102. package/skills/diagnose-failure/SKILL.md +20 -14
  103. package/skills/diagnose-failure/references/diagnostic-loop-catalog.md +1 -3
  104. package/skills/diagnose-failure/references/{flaky-and-performance.md → flaky-and-performance-diagnosis.md} +1 -1
  105. package/skills/discuss/SKILL.md +34 -22
  106. package/skills/discuss/references/discussion-continuity.md +71 -0
  107. package/skills/evaluate-skill/SKILL.md +5 -5
  108. package/skills/evaluate-skill/references/{definition-schema.md → evaluation-definition-schema.md} +42 -2
  109. package/skills/evaluate-skill/references/execution-and-evidence.md +8 -3
  110. package/skills/evaluate-skill/scripts/lib/definitions.mjs +114 -3
  111. package/skills/evaluate-skill/scripts/lib/grade-interaction.mjs +156 -1
  112. package/skills/evaluate-skill/scripts/lib/grade.mjs +9 -1
  113. package/skills/evaluate-skill/scripts/lib/pi.mjs +147 -32
  114. package/skills/evaluate-skill/scripts/lib/rpc.mjs +4 -4
  115. package/skills/evaluate-skill/scripts/lib/runner.mjs +36 -14
  116. package/skills/evaluate-skill/scripts/lib/sandbox.mjs +92 -0
  117. package/skills/evaluate-skill/scripts/pi-guard.mjs +1 -1
  118. package/skills/evaluate-skill/scripts/pi-observer.mjs +66 -0
  119. package/skills/evaluate-skill/scripts/skill-eval.mjs +6 -5
  120. package/skills/execute-work/SKILL.md +18 -15
  121. package/skills/execute-work/references/code-practices.md +1 -1
  122. package/skills/execute-work/references/execute-work-edges.md +42 -0
  123. package/skills/finish-branch/SKILL.md +2 -2
  124. package/skills/finish-branch/references/integration-options.md +1 -1
  125. package/skills/handoff/SKILL.md +3 -3
  126. package/skills/launch-work/SKILL.md +1 -1
  127. package/skills/launch-work/references/launch-readiness.md +2 -2
  128. package/skills/migration-work/SKILL.md +2 -2
  129. package/skills/migration-work/references/migration-lifecycle.md +1 -1
  130. package/skills/mode-contract/SKILL.md +4 -4
  131. package/skills/release-work/SKILL.md +1 -1
  132. package/skills/release-work/references/release-evidence.md +1 -1
  133. package/skills/review-artifact/SKILL.md +28 -26
  134. package/skills/review-work/SKILL.md +28 -26
  135. package/skills/review-work/references/{reviewer-prompt.md → independent-work-reviewer-contract.md} +1 -1
  136. package/skills/review-work/references/security-risk-lens.md +1 -1
  137. package/skills/setup-freeflow/SKILL.md +3 -1
  138. package/skills/setup-freeflow/references/activation-contract.md +2 -2
  139. package/skills/setup-freeflow/references/host-setup.md +2 -2
  140. package/skills/simplify-code/SKILL.md +1 -1
  141. package/skills/simplify-code/references/simplification-patterns.md +1 -1
  142. package/skills/tdd/SKILL.md +18 -38
  143. package/skills/tdd/references/test-design.md +2 -2
  144. package/skills/track-work/SKILL.md +362 -58
  145. package/skills/track-work/scripts/lib/codec.mjs +570 -0
  146. package/skills/track-work/scripts/lib/commands.mjs +568 -0
  147. package/skills/track-work/scripts/lib/contract.mjs +303 -0
  148. package/skills/track-work/scripts/lib/model.mjs +506 -0
  149. package/skills/track-work/scripts/lib/operations.mjs +965 -0
  150. package/skills/track-work/scripts/lib/record-store.mjs +264 -0
  151. package/skills/track-work/scripts/lib/result.mjs +37 -0
  152. package/skills/track-work/scripts/lib/rewrites.mjs +740 -0
  153. package/skills/track-work/scripts/lib/schema.mjs +277 -0
  154. package/skills/track-work/scripts/lib/source-inventory.mjs +162 -0
  155. package/skills/track-work/scripts/lib/views.mjs +443 -0
  156. package/skills/track-work/scripts/lib/workspace.mjs +134 -0
  157. package/skills/track-work/scripts/working-record.mjs +122 -0
  158. package/skills/verify-work/SKILL.md +14 -2
  159. package/skills/verify-work/references/browser-runtime-evidence.md +1 -1
  160. package/skills/verify-work/references/integration-evidence.md +1 -1
  161. package/skills/verify-work/references/performance-evidence.md +1 -1
  162. package/skills/workflow/SKILL.md +105 -53
  163. package/skills/workflow/references/domain-skill-composition.md +22 -42
  164. package/skills/write-plan/SKILL.md +1 -1
  165. package/skills/write-skill/SKILL.md +3 -2
  166. package/skills/write-skill/references/progressive-disclosure.md +17 -3
  167. package/capabilities/output-router/SKILL.md +0 -206
  168. package/capabilities/output-router/references/safety-policy.md +0 -40
  169. package/capabilities/output-router/references/setup.md +0 -110
  170. package/pi-extension/dist/output-router/host-producer-identification.js +0 -232
  171. package/pi-extension/dist/output-router/native-safety-net.js +0 -216
  172. package/pi-extension/dist/output-router/observed-tool-routing.js +0 -122
  173. package/pi-extension/dist/output-router/renderers.js +0 -1023
  174. package/pi-extension/dist/output-router/router-tools.js +0 -554
  175. package/pi-extension/dist/output-router/schemas.js +0 -383
  176. package/pi-extension/dist/output-router/status.js +0 -744
  177. package/pi-extension/dist/output-router/utils.js +0 -502
  178. package/pi-extension/src/output-router/host-producer-identification.ts +0 -256
  179. package/pi-extension/src/output-router/native-safety-net.ts +0 -248
  180. package/pi-extension/src/output-router/observed-tool-routing.ts +0 -134
  181. package/pi-extension/src/output-router/renderers.ts +0 -1108
  182. package/pi-extension/src/output-router/router-tools.ts +0 -579
  183. package/pi-extension/src/output-router/schemas.ts +0 -387
  184. package/pi-extension/src/output-router/status.ts +0 -791
  185. package/pi-extension/src/output-router/utils.ts +0 -554
  186. package/pi-extension/tests/output-router/observed-producers.test.js +0 -132
  187. package/pi-extension/tests/output-router/search.test.js +0 -722
  188. package/router/dist/benchmarks/benchmark-harness.d.ts +0 -35
  189. package/router/dist/benchmarks/benchmark-harness.js +0 -92
  190. package/router/dist/benchmarks/benchmarks.d.ts +0 -109
  191. package/router/dist/benchmarks/benchmarks.js +0 -979
  192. package/router/dist/benchmarks/codex-qa-benchmarks.d.ts +0 -95
  193. package/router/dist/benchmarks/codex-qa-benchmarks.js +0 -500
  194. package/router/dist/benchmarks/command-benchmarks.d.ts +0 -143
  195. package/router/dist/benchmarks/command-benchmarks.js +0 -698
  196. package/router/dist/benchmarks/context-mode-normalized-benchmarks.d.ts +0 -82
  197. package/router/dist/benchmarks/context-mode-normalized-benchmarks.js +0 -773
  198. package/router/dist/benchmarks/context-mode-real-deep-benchmark.d.ts +0 -132
  199. package/router/dist/benchmarks/context-mode-real-deep-benchmark.js +0 -1380
  200. package/router/dist/benchmarks/context-saving-baseline.d.ts +0 -60
  201. package/router/dist/benchmarks/context-saving-baseline.js +0 -470
  202. package/router/dist/benchmarks/index-benchmarks.d.ts +0 -103
  203. package/router/dist/benchmarks/index-benchmarks.js +0 -862
  204. package/router/dist/benchmarks/storage-policy-benchmarks.d.ts +0 -101
  205. package/router/dist/benchmarks/storage-policy-benchmarks.js +0 -618
  206. package/router/dist/benchmarks/vault-index-benchmarks.d.ts +0 -56
  207. package/router/dist/benchmarks/vault-index-benchmarks.js +0 -322
  208. package/router/dist/config/config.d.ts +0 -103
  209. package/router/dist/config/config.js +0 -632
  210. package/router/dist/config/router-contract.d.ts +0 -10
  211. package/router/dist/config/router-contract.js +0 -54
  212. package/router/dist/config/schema.d.ts +0 -27
  213. package/router/dist/config/schema.js +0 -648
  214. package/router/dist/config/types.d.ts +0 -573
  215. package/router/dist/config/types.js +0 -41
  216. package/router/dist/evidence/bounded-evidence.d.ts +0 -40
  217. package/router/dist/evidence/bounded-evidence.js +0 -323
  218. package/router/dist/evidence/evidence-range-selector.d.ts +0 -24
  219. package/router/dist/evidence/evidence-range-selector.js +0 -232
  220. package/router/dist/evidence/evidence-search.d.ts +0 -27
  221. package/router/dist/evidence/evidence-search.js +0 -490
  222. package/router/dist/evidence/evidence.d.ts +0 -38
  223. package/router/dist/evidence/evidence.js +0 -200
  224. package/router/dist/evidence/failure-contracts.d.ts +0 -37
  225. package/router/dist/evidence/failure-contracts.js +0 -166
  226. package/router/dist/evidence/line-ranges.d.ts +0 -24
  227. package/router/dist/evidence/line-ranges.js +0 -22
  228. package/router/dist/experiments/local-index.d.ts +0 -64
  229. package/router/dist/experiments/local-index.js +0 -581
  230. package/router/dist/index.d.ts +0 -30
  231. package/router/dist/index.js +0 -32
  232. package/router/dist/local/local-traversal.d.ts +0 -18
  233. package/router/dist/local/local-traversal.js +0 -334
  234. package/router/dist/processing/engine.d.ts +0 -132
  235. package/router/dist/processing/engine.js +0 -533
  236. package/router/dist/processing/reducers.d.ts +0 -280
  237. package/router/dist/processing/reducers.js +0 -1673
  238. package/router/dist/processing/renderers.d.ts +0 -31
  239. package/router/dist/processing/renderers.js +0 -195
  240. package/router/dist/processing/scripts.d.ts +0 -91
  241. package/router/dist/processing/scripts.js +0 -386
  242. package/router/dist/repo/repo-traversal.d.ts +0 -18
  243. package/router/dist/repo/repo-traversal.js +0 -245
  244. package/router/dist/routing/observed-reducers.d.ts +0 -41
  245. package/router/dist/routing/observed-reducers.js +0 -661
  246. package/router/dist/routing/observed-routing.d.ts +0 -26
  247. package/router/dist/routing/observed-routing.js +0 -378
  248. package/router/dist/routing/parsers.d.ts +0 -16
  249. package/router/dist/routing/parsers.js +0 -521
  250. package/router/dist/routing/run-filters.d.ts +0 -60
  251. package/router/dist/routing/run-filters.js +0 -238
  252. package/router/dist/routing/run-reducers.d.ts +0 -49
  253. package/router/dist/routing/run-reducers.js +0 -122
  254. package/router/dist/sandbox/adapter-roots.d.ts +0 -46
  255. package/router/dist/sandbox/adapter-roots.js +0 -66
  256. package/router/dist/sandbox/eryx-python-adapter.d.ts +0 -13
  257. package/router/dist/sandbox/eryx-python-adapter.js +0 -868
  258. package/router/dist/sandbox/jq-wasm-adapter.d.ts +0 -9
  259. package/router/dist/sandbox/jq-wasm-adapter.js +0 -429
  260. package/router/dist/sandbox/quickjs-wasi-adapter.d.ts +0 -13
  261. package/router/dist/sandbox/quickjs-wasi-adapter.js +0 -384
  262. package/router/dist/sandbox/script-sandbox.d.ts +0 -134
  263. package/router/dist/sandbox/script-sandbox.js +0 -337
  264. package/router/dist/setup/script-transform-adapters.d.ts +0 -32
  265. package/router/dist/setup/script-transform-adapters.js +0 -278
  266. package/router/dist/tools/batch.d.ts +0 -33
  267. package/router/dist/tools/batch.js +0 -586
  268. package/router/dist/tools/run.d.ts +0 -62
  269. package/router/dist/tools/run.js +0 -1304
  270. package/router/dist/tools/search.d.ts +0 -66
  271. package/router/dist/tools/search.js +0 -1364
  272. package/router/dist/transform/engine.d.ts +0 -168
  273. package/router/dist/transform/engine.js +0 -2072
  274. package/router/dist/vault/vault-index.d.ts +0 -125
  275. package/router/dist/vault/vault-index.js +0 -416
  276. package/router/dist/vault/vault.d.ts +0 -138
  277. package/router/dist/vault/vault.js +0 -630
  278. package/runtime/interaction-contract.md +0 -16
  279. package/skills/discuss/references/checkpoints.md +0 -66
  280. package/skills/execute-work/references/execution-loop.md +0 -77
  281. package/skills/track-work/references/working-record-schema.md +0 -378
  282. package/skills/workflow/references/workflow-loop.md +0 -92
  283. /package/skills/handoff/references/{templates.md → handoff-templates.md} +0 -0
  284. /package/skills/review-artifact/references/{reviewer-prompt.md → independent-artifact-reviewer-contract.md} +0 -0
@@ -1,77 +0,0 @@
1
- # Execute Work Loop
2
-
3
- Read this when execution spans multiple bounded actions or slices, resumes from prior state, needs a specialized method, reaches a selected checkpoint, or reveals follow-on work. [Execute Work](../SKILL.md) owns the normal method; this reference expands its directed routes.
4
-
5
- ## Directed Execution Graph
6
-
7
- ```text
8
- [Requested or approved concrete work; effective mode permits mutation]
9
- -> [Orient]
10
- source + authority + live state + current slice + stop conditions
11
- -> [Choose one bounded action]
12
- -> [Load one needed method or reference]
13
- -> [Execute]
14
- -> [Test or observe]
15
- -> [Verify the claim at its required boundary]
16
- -> clear local defect
17
- -> [Correct within authority]
18
- -> [Test or observe]
19
- -> unclear or repeated failure
20
- -> [Diagnose Failure]
21
- -> [Workflow routes from the cause]
22
- -> contradicted, inconclusive, or route-changing evidence
23
- -> [Workflow]
24
- -> supported
25
- -> [Silent self-review]
26
- -> [Correct clear local issue and re-verify, or freeze]
27
- -> [Route from the supported state]
28
- -> more accepted work for the same coherent result
29
- -> [Choose the next bounded action]
30
- -> accepted extension to result / scope / authority / evidence / stop conditions
31
- -> [Record write-ahead when a Working Record exists]
32
- -> [Choose the next bounded action]
33
- -> distinct result, authority, or independently useful evidence boundary
34
- -> [Workflow establishes current slice outcome]
35
- -> [Select a new authorized slice; use Track Work when present]
36
- -> approved checkpoint due
37
- -> [Use checkpoint owner]
38
- -> [Return its result to Workflow]
39
- -> unapproved follow-on work
40
- -> [Recommend exact scope and wait]
41
- -> supported pause or exit
42
- -> [Preserve state and report]
43
- ```
44
-
45
- The graph may recur many times inside one Track Work slice. An action, verification run, self-review, review report, or owning-skill call does not create or close a slice by itself.
46
-
47
- ## Select A Method For The Action
48
-
49
- Use only the method needed by the concrete boundary:
50
-
51
- - Use [TDD](../../tdd/SKILL.md) for test-first behavior work. Read [Test Design](../../tdd/references/test-design.md) when the test seam, oracle, double, or composed failure is unclear.
52
- - Use [Simplify Code](../../simplify-code/SKILL.md) for behavior-preserving simplification. Read [Simplification Patterns](../../simplify-code/references/simplification-patterns.md) when choosing or judging a transformation.
53
- - Use [Design for Depth](../../design-for-depth/SKILL.md) when direct evidence shows design-bearing ownership, interface, state, failure-unit, or coordination pressure. Read [Design Pressure Signals](../../design-for-depth/references/design-pressure-signals.md) or the [Interface Design Loop](../../design-for-depth/references/interface-design-loop.md) only when their deeper branch applies.
54
- - Use [Diagnose Failure](../../diagnose-failure/SKILL.md) when a failure lacks a supported cause. Read the [Diagnostic Loop Catalog](../../diagnose-failure/references/diagnostic-loop-catalog.md) when choosing a reproduction or distinguishing observation, or [Flaky and Performance Diagnosis](../../diagnose-failure/references/flaky-and-performance.md) for those failure types.
55
-
56
- Do not stack methods because several descriptions match. Keep one execution owner and add only the lenses or evidence methods the current action requires.
57
-
58
- ## Route Selected Checkpoints
59
-
60
- A user-approved Plan or explicit discussion may select review, local commit, user-decision, or continuity checkpoints. When one becomes due, do not begin the next bounded action first. Use its owner and return the result to Workflow. If its conditions no longer hold, return the deviation rather than forcing the checkpoint.
61
-
62
- Use these separately controlled routes only when already requested or approved:
63
-
64
- - [Commit Work](../../commit-work/SKILL.md), with [Staging Decisions](../../commit-work/references/staging-decisions.md) for mixed changed state;
65
- - [Migration Work](../../migration-work/SKILL.md), with the [Migration Lifecycle](../../migration-work/references/migration-lifecycle.md) for migration units, compatibility, cutover, recovery, or removal proof;
66
- - [Finish Branch](../../finish-branch/SKILL.md), with [Integration Options](../../finish-branch/references/integration-options.md) for merge, pull request, preservation, or discard;
67
- - [Release Work](../../release-work/SKILL.md), with [Release Evidence](../../release-work/references/release-evidence.md) for source, version, artifact, tag, publication, or consumer identity;
68
- - [Launch Work](../../launch-work/SKILL.md), with [Launch Readiness](../../launch-work/references/launch-readiness.md) for production evidence, rollout, signals, or recovery;
69
- - [Handoff](../../handoff/SKILL.md), with [Handoff Templates](../../handoff/references/templates.md) after destination and purpose are clear.
70
-
71
- A checkpoint result may support continuation, correction, another route, deferment, or stopping. It does not authorize the next lifecycle stage automatically.
72
-
73
- ## Resume Or Return
74
-
75
- When resuming, reopen the source that established the work and inspect live state. If a Working Record exists, read its complete current context and slice through [Track Work](../../track-work/SKILL.md); do not reconstruct authority or progress from a summary alone.
76
-
77
- Continue only while accepted authority and evidence support the execution basis. Return to [Workflow](../../workflow/SKILL.md) when direction, authority, scope, source truth, strategy, or the intended result changes, or when no worthwhile safe continuation remains.
@@ -1,378 +0,0 @@
1
- # Working Record Method And Schema
2
-
3
- This is the required companion to Track Work. Read it completely before creating, resuming, or updating a Working Record. It defines both the lifecycle method and the stored shape.
4
-
5
- Omit optional fields and sections when they contain no useful information. Preserve detail when forgetting it could misalign later work; compactness means removing repetition, transcripts, and raw output—not continuity.
6
-
7
- ## Task Directory
8
-
9
- Use one stable directory per task:
10
-
11
- ```text
12
- .freeflow/tasks/task-NNN-<short-name>/
13
- ├── record.md
14
- ├── specs/ # only when Write Spec creates a task-local artifact
15
- └── plans/ # only when Write Plan creates a task-local artifact
16
- ```
17
-
18
- Use the next unused three-digit number and a short readable name. Track Work owns the directory and `record.md`. Write Spec and Write Plan own their artifact filenames, formats, and contents.
19
-
20
- ## Record Order
21
-
22
- Keep these layers in order:
23
-
24
- 1. **Current Context:** what is needed to understand the task.
25
- 2. **Current Work:** route, current or blocked slice, blockers, checkpoints, and next action.
26
- 3. **Proposed Slices:** ordered, revisable work that has not started.
27
- 4. **History:** decisions, checkpoint results, and completed, parked, or abandoned slices.
28
- 5. **Notes:** inert context with no active task effect.
29
-
30
- Read the complete record after context loss. The order establishes context before action; it does not make later sections disposable.
31
-
32
- ## Record Template
33
-
34
- ```markdown
35
- # Working Record: <task name>
36
-
37
- State: Active | Paused | Completed | Abandoned
38
- Last updated: <optional reliable date or time>
39
-
40
- ## Current Context
41
-
42
- Goal:
43
- What defines this task:
44
- Current understanding:
45
- Current direction:
46
- Boundaries:
47
-
48
- ### Active Decisions
49
-
50
- - D-001 — <one-line meaning>
51
-
52
- ### Active Hypotheses
53
-
54
- ### Open Questions
55
-
56
- ## Current Work
57
-
58
- Current route:
59
-
60
- ### Current Slice
61
-
62
- None
63
-
64
- Or:
65
- - ID: S-001
66
- - State: In progress | Blocked
67
- - Type: Learning | Delivery | Deepening
68
- - Intended result:
69
- - Authority source:
70
- - Reason and scope:
71
- - Expected evidence:
72
- - Stop condition:
73
- - Starting code or artifact state:
74
- - Accepted extensions, if any:
75
- - Selected checkpoints, if any:
76
- - Blocker, if blocked:
77
- - Resume when, if blocked:
78
-
79
- Blockers:
80
- Upcoming checkpoints:
81
- Next useful action:
82
-
83
- ## Proposed Slices
84
-
85
- ### <proposal title>
86
-
87
- Type:
88
- Intended result:
89
- Expected evidence:
90
- Dependencies:
91
- Selected checkpoints, if any:
92
-
93
- ## History
94
-
95
- ### Decisions
96
-
97
- #### D-001 — <decision title>
98
-
99
- State: Active | Superseded | Retired
100
- Decision:
101
- Who decided or what established it:
102
- Rationale and sources:
103
- Consequences:
104
- Revisit when:
105
- Supersedes:
106
- Superseded by:
107
-
108
- ### Checkpoints
109
-
110
- #### <checkpoint title>
111
-
112
- Type: Independent review | Local commit | User decision | Continuity
113
- Selected by: <approved Plan or explicit discussion>
114
- Condition:
115
- Result: Completed | Deferred | Cancelled | Replaced
116
- Judgment or decision:
117
- Evidence or result pointer:
118
- Effect on the task:
119
-
120
- ### Slices
121
-
122
- #### S-001 — <slice title>
123
-
124
- State: Completed | Blocked | Abandoned
125
- Type: Learning | Delivery | Deepening
126
- Intended result:
127
- Authority source:
128
- Accepted extensions and authority, if any:
129
- Work performed:
130
- Result:
131
- Effect on understanding, decisions, or hypotheses:
132
- Evidence:
133
- - Tests and other checks: <check, result, and source>
134
- - Verification: <claim, boundary, check result, claim result, proof limits, and source>
135
- - Independent review: <review number, judgment, items, adjudication, and source>
136
- Blocker and required resolution, if historically blocked:
137
- What happens next:
138
-
139
- ## Notes
140
-
141
- ### <note title>
142
-
143
- Source: <user request or useful agent observation>
144
-
145
- <retained context>
146
- ```
147
-
148
- ## Create Or Resume
149
-
150
- ### Minimum Record
151
-
152
- A record may begin without decisions, proposals, history, Notes, or a current slice. Add fields only when the task produces information worth preserving. At minimum record:
153
-
154
- - task state;
155
- - goal or central question;
156
- - current understanding;
157
- - important open questions;
158
- - `Current Slice: None` when no slice is running;
159
- - one next useful action.
160
-
161
- If context is too thin, recommend discussion first. If the user still wants a record, write an honest minimal one without inventing intent or state.
162
-
163
- ### Current Context
164
-
165
- - Keep only context that still affects interpretation or later action.
166
- - Treat `Current understanding` as a present-state summary, not a running task summary or compressed transcript. Rewrite it from what remains true instead of appending completed events.
167
- - Remove completed-slice narration, superseded failures and corrections, per-review findings, test inventories, hashes, and live-run detail once their active consequence is captured and History owns the evidence.
168
- - `Current direction` describes remaining strategy, not completed phases.
169
- - Summarize active decisions by ID; preserve rationale and lineage in History.
170
- - Update facts when live evidence changes. Moving obsolete context does not require deleting useful history.
171
- - Use no arbitrary size cap. Keep detail only when removing it could cause the next reader to choose the wrong route.
172
-
173
- ### Task State
174
-
175
- Only the user changes task state:
176
-
177
- - `Active`: the task is ongoing.
178
- - `Paused`: intentionally paused.
179
- - `Completed`: considered complete.
180
- - `Abandoned`: intentionally ended without completion.
181
-
182
- Do not infer task state from time, inactivity, apparent completion, or failure. Before a user-directed task-state change, make Current Context, Current Work, important History, and the next action accurate; then apply exactly the chosen state. Use `Last updated` only when a reliable date or time is available.
183
-
184
- ### Context Boundaries
185
-
186
- - **Before an expected compaction, summarization, pause, clear, or transfer:** reconcile the record only when task state changed. The boundary itself is not a record event.
187
- - **After compaction, summarization, resume, clear, or session navigation:** read the complete record before continuing task work and compare it with the current conversation and live state.
188
- - Identify the task from current context or inspect and ask rather than guessing. A record written on another conversation branch is memory, not authority. Correct clear factual or clerical mistakes, and ask before changing user intent, task lifecycle, or a recorded decision.
189
-
190
- ## Select A Slice
191
-
192
- ### Proposals
193
-
194
- Proposals remain revisable until selected:
195
-
196
- - use one unnumbered heading per proposal;
197
- - assign no `S-` ID, ordinal label, or state;
198
- - refer to a proposal by title, not “proposal 2”;
199
- - express ordering constraints under `Dependencies`;
200
- - preserve an external Plan phase or identifier only when one exists.
201
-
202
- When selected, remove the proposal, assign the next chronological `S-` ID, and write it as the one Current Slice before execution.
203
-
204
- ### Authority And Write-Ahead State
205
-
206
- - Record the source that requested or approved the slice.
207
- - Approval may cover one slice or a named set; do not ask again while remembered authority clearly covers the work, and do not extend it to invented scope.
208
- - Approval cadence and reporting cadence are separate.
209
- - A decision approval, tentative proposal, nearby instruction, or permission to discuss does not authorize implementation unless the interaction clearly establishes that authority.
210
- - Record the slice fields shown in the template, save the record, then execute. This preserves intent; it does not claim execution occurred.
211
- - A stop condition overrides general authority. Mark the slice `Blocked` and report before recovery unless the condition or later user direction authorizes a path.
212
-
213
- ## Maintain The Current Slice
214
-
215
- ### Current States
216
-
217
- Current Slice permits:
218
-
219
- - `In progress`: active work, including its in-scope discussion, feedback, review, correction, record maintenance, and checkpoints.
220
- - `Blocked`: safe continuation is impossible because a required decision, dependency, capability, evidence source, stop condition, or other condition is unavailable.
221
-
222
- A slice may span multiple Workflow Feedback Loop iterations and owning skills while its intended result remains coherent. Waiting for ordinary feedback, discussing, reviewing, or correcting within scope does not make it blocked.
223
-
224
- ### In-Slice Steering
225
-
226
- Record state transitions, not every activity:
227
-
228
- - do not log every edit, correction, implementation choice, or conversation;
229
- - questions, criticism, and review findings do not authorize changes;
230
- - apply authorized in-scope steering and preserve only its meaningful final effect when the slice closes;
231
- - if feedback would change the recorded result, scope, authority, evidence boundary, or stop conditions, classify and record the change before acting.
232
-
233
- Routine implementation feedback is in-slice collaboration, not a checkpoint or history event by default.
234
-
235
- ### Scope Extensions
236
-
237
- Before expanded work begins, decide whether it extends the current slice or needs a new one.
238
-
239
- Keep an extension when:
240
-
241
- - the intended result remains coherent;
242
- - existing or new explicit authority covers it;
243
- - the combined boundary can be verified and reviewed as one unit;
244
- - no stop condition or owner decision requires another route.
245
-
246
- Append the extension before execution. Preserve the original boundary and record:
247
-
248
- - authority source;
249
- - reason and added scope;
250
- - added evidence;
251
- - changed stop conditions;
252
- - extension starting state.
253
-
254
- Do not rewrite the original slice to imply the extension was always planned.
255
-
256
- Use a new slice when the work needs a distinct result, authority, evidence boundary, or independently useful outcome, or when the original result is no longer pursued. First establish the current slice as `Completed`, historical `Blocked`, or `Abandoned`; then select the new slice before execution. A request to stop does not by itself establish which outcome applies.
257
-
258
- ### Blocked Work
259
-
260
- Keep a newly blocked slice current, record the incident and required resolution, then stop.
261
-
262
- - If the blocker resolves and the intended result remains coherent, return the same ID to `In progress`, preserve the incident, and record any accepted extension before execution.
263
- - If resolution requires a distinct result, authority, or evidence boundary, park the attempt in History as `Blocked` and select a new slice.
264
- - Resuming a historically blocked attempt creates a new authorized slice that refers to it.
265
-
266
- Failure belongs in the result or evidence; it is not a slice state.
267
-
268
- ### Review And Other Routes
269
-
270
- Implementation, verification, self-review, or a review report does not end the slice by itself. Review may support continuation, correction, more evidence, a route change, deferment, or stopping; it need not Pass.
271
-
272
- Keep the slice current through accepted in-scope correction, discussion, evidence gathering, and checkpoints that belong to its result. Move it to History only when Workflow establishes the outcome.
273
-
274
- ## Close A Slice
275
-
276
- Historical states are:
277
-
278
- - `Completed`: the intended result and selected in-scope methods and checkpoints resolved sufficiently to finish.
279
- - `Blocked`: the unresolved attempt was parked.
280
- - `Abandoned`: the intended result is no longer pursued.
281
-
282
- When closing:
283
-
284
- 1. Gather tests, verification, review, and checkpoint results.
285
- 2. Move the slice to History with the established state.
286
- 3. Preserve the original boundary and every accepted extension with its authority.
287
- 4. Record work performed, result, task effect, evidence boundaries, and useful stable pointers.
288
- 5. Rewrite current understanding from the resulting present state. Remove completed-event detail now owned by History rather than appending another slice or review summary.
289
- 6. Reconcile decisions, hypotheses, proposals, blockers, and the next action only where feedback changed them.
290
- 7. Set `Current Slice` to `None`.
291
-
292
- A learning slice may complete by disproving its hypothesis.
293
-
294
- ## Decisions
295
-
296
- Use a `D-` ID for a task-local decision that affects later work:
297
-
298
- - `Active`: currently affects interpretation or later work.
299
- - `Superseded`: replaced or narrowed by a later decision; link both records.
300
- - `Retired`: remains historically valid but no longer affects later work.
301
-
302
- List only active decision summaries in Current Context. Keep full rationale and lineage in History.
303
-
304
- ## Checkpoints
305
-
306
- Use checkpoints only for additional boundaries selected in an approved Plan or explicit discussion:
307
-
308
- - `Independent review`: broader judgment before dependent work.
309
- - `Local commit`: coherent rollback and provenance.
310
- - `User decision`: approval or choice needed before continuing.
311
- - `Continuity`: record reconciliation, pause, or handoff.
312
-
313
- Keep pending checkpoints under Current Work with their approved source and condition. A slice may reference a checkpoint that follows it, and a phase or integration checkpoint may span several slices.
314
-
315
- - A selected slice review may be a checkpoint; review between implementation changes is not one merely because work pauses for the user.
316
- - Record checkpoint completion separately from its judgment or decision.
317
- - A question, criticism, new topic, temporal proximity, or unrelated authorization is not automatically a checkpoint result.
318
- - Keep the Current Slice `In progress` when the checkpoint belongs to its result.
319
- - When a selected phase-, task-, or continuity-level checkpoint follows a completed slice, leave `Current Slice` as `None` and record the checkpoint as the next useful action.
320
- - After a checkpoint, move its result to History, remove it from the upcoming list, and return its outcome to Workflow.
321
- - If its conditions no longer hold, return the deviation to Workflow rather than forcing it.
322
- - A local commit checkpoint does not authorize push or integration.
323
-
324
- ## Evidence And History
325
-
326
- Give each detailed fact one owner. Keep evidence with the slice that produced or used it; when checkpoint history also records that event, one entry owns the findings and exact evidence while the other gives a concise result and pointer rather than duplicating them. Preserve enough detail to recover:
327
-
328
- - what was checked or observed;
329
- - what the result supports and does not support;
330
- - which code, configuration, artifact, or external state was checked;
331
- - independent-review judgment and adjudication when review occurred;
332
- - completed checkpoint results;
333
- - where exact evidence can be found.
334
-
335
- Useful pointers include:
336
-
337
- ```text
338
- file:<path>#<section>
339
- commit:<sha>
340
- output:<output-id>
341
- review:<conversation-or-reference>
342
- session:<session-id>/turn:<turn-id>
343
- ```
344
-
345
- Use only identifiers that exist. Do not copy large raw output or create separate history for routine self-review. Preserve detail when it prevents false claims, lost rationale, or repeated investigation; do not optimize history toward an arbitrary line count.
346
-
347
- ## Notes
348
-
349
- Notes preserve context with no active task effect. They normally originate from an explicit user request to note, remember, retain, or defer something.
350
-
351
- During authorized record maintenance, add an agent-originated Note only when the information is concrete, task-adjacent, worth preserving across context loss, not already recorded, and has no structured owner. Ask when authorship or retention intent matters.
352
-
353
- Notes do not authorize, prioritize, schedule, block, unblock, prove, or require follow-up. Do not periodically triage them or create Specs, Plans, issues, decisions, slices, or artifacts from them by default.
354
-
355
- A deferred unselected idea may remain a Note when it does not affect current scope or completion. If deferral changes scope, completion, or a future obligation, record that effect in its owning section while the Note remains inert.
356
-
357
- If later user direction independently makes Note content active, create the appropriate structured state from that new direction. Preserve the original user-authored Note unless the user asks to change it; reference it when provenance helps.
358
-
359
- Keep Notes last and read them as part of the complete record without treating them as instructions.
360
-
361
- ## Consistency Check
362
-
363
- Before relying on or finishing an update, confirm:
364
-
365
- - Current Context agrees with recent evidence, describes the present state rather than accumulated events, and contains only active decision summaries.
366
- - Completed slice, review, test, hash, and live-run detail has one History owner and is not duplicated in Current Context or parallel history entries.
367
- - Current Work names no more than one slice and its authority source is clear.
368
- - Every current or historical slice keeps one stable `S-` ID.
369
- - Discussion, review, correction, small steering, and in-slice checkpoints do not replace a coherent Current Slice.
370
- - Small in-scope steering is reconciled at completion rather than logged as an event.
371
- - Accepted extensions preserve the original boundary and are recorded before execution and in History.
372
- - Ordinary in-slice feedback is not checkpoint history; selected checkpoints retain their condition and explicit result.
373
- - `Blocked` means safe continuation is unavailable, not merely that feedback or review is pending.
374
- - Proposed slices remain ordered, unnumbered, and unidentified.
375
- - Upcoming checkpoints still match their approved source and condition.
376
- - Superseded and Retired decisions and finished slices remain recoverable.
377
- - Notes remain inert and user-authored Notes preserve their meaning.
378
- - Live code, tests, docs, runtime evidence, and user decisions override contradictory memory.
@@ -1,92 +0,0 @@
1
- # Workflow Loop
2
-
3
- Read this when the complete lifecycle, named skill edges, re-entry route, or possible exits are unclear. [Workflow](../SKILL.md) owns routing; each linked skill owns its method.
4
-
5
- The **Interaction Lifecycle** contains the recurring **Feedback Loop**.
6
-
7
- ## Complete Lifecycle
8
-
9
- ```text
10
- [1. ENTRY] -- work needed --> [2. FEEDBACK LOOP] -- supported --> [3. EXIT]
11
- | ^ | |
12
- +--------- direct exit --------+ +------ feedback --------+
13
- ^ |
14
- +---------------- later user turn or evidence -------------------+
15
- ```
16
-
17
- ### 1. Entry
18
-
19
- A user turn or new evidence is interpreted through the Interaction Contract and effective mode. Workflow may:
20
-
21
- - answer, wait, defer, or stop directly;
22
- - use Discuss or Decision Gate when direction is unsettled;
23
- - choose the narrowest owner when work is needed.
24
-
25
- Questions, criticism, examples, hypotheses, and recommendations are not action authority unless the whole turn clearly requests or approves the bounded action.
26
-
27
- ### 2. Feedback Loop
28
-
29
- ```text
30
- Workflow chooses one owner
31
- -> understand, decide, preserve, execute, or inspect
32
- -> verify the resulting claim
33
- -> self-review once when supported
34
- -> route from evidence
35
- -> continue or correct locally
36
- -> diagnose an unsupported or repeated cause
37
- -> discuss changed direction
38
- -> revise the owning artifact
39
- -> gather evidence or a user decision
40
- -> use an approved checkpoint
41
- -> exit
42
- ```
43
-
44
- The loop may recur many times inside one coherent Track Work slice. Re-entry preserves accepted decisions, valid work, evidence, and task state. A new method, finding, or review does not create a new slice by itself.
45
-
46
- ### 3. Supported Exit
47
-
48
- A supported exit may answer, wait, pause, hand off, defer, stop, preserve an approved boundary, or complete the task. A later user turn or new evidence begins the lifecycle again.
49
-
50
- ## Skill Edges
51
-
52
- - [Discuss](../../discuss/SKILL.md) shapes open direction. [Decision Gate](../../decision-gate/SKILL.md) owns one blocking user choice or source conflict. [Bypass](../../bypass/SKILL.md) reduces optional pressure inside accepted work.
53
- - [Track Work](../../track-work/SKILL.md) decides whether continuity needs a Working Record and may surround any part of the loop. [Write Spec](../../write-spec/SKILL.md) and [Write Plan](../../write-plan/SKILL.md) own stable accepted content and ordered strategy; each has a separate [Review Artifact](../../review-artifact/SKILL.md) boundary.
54
- - [Execute Work](../../execute-work/SKILL.md) owns bounded changes. [TDD](../../tdd/SKILL.md), [Simplify Code](../../simplify-code/SKILL.md), [Diagnose Failure](../../diagnose-failure/SKILL.md), and [Design for Depth](../../design-for-depth/SKILL.md) compose only when their conditions apply.
55
- - [Verify Work](../../verify-work/SKILL.md) establishes what evidence proves. [Review Work](../../review-work/SKILL.md) and Review Artifact own self-review and selected independent judgment. Reading either review skill creates no independence.
56
- - [Commit Work](../../commit-work/SKILL.md), [Handoff](../../handoff/SKILL.md), [Finish Branch](../../finish-branch/SKILL.md), [Migration Work](../../migration-work/SKILL.md), [Release Work](../../release-work/SKILL.md), and [Launch Work](../../launch-work/SKILL.md) own separately controlled boundaries. None authorizes the next stage automatically.
57
-
58
- Use [domain skill composition](domain-skill-composition.md) when specialized engineering guidance must operate inside one of these routes.
59
-
60
- ## Authorization Edge
61
-
62
- The [Interaction Contract](../../../runtime/interaction-contract.md) distinguishes discussion from authority. [Mode Contract](../../mode-contract/SKILL.md) constrains whether mutation is permitted; mode does not authorize work.
63
-
64
- A clear request or approval may authorize one bounded outcome. An accepted Spec or Plan supplies direction unless its approval explicitly authorizes an action or checkpoint. A Working Record preserves authority but does not create it.
65
-
66
- When a mutation or separately controlled action is not covered, Workflow recommends the exact action and waits for the user's response. It does not begin the action or a dependent next step. Existing authority covers contained implementation, tests, verification, and reversible local choices; do not ask again unless the boundary changes.
67
-
68
- ## Evidence And Re-entry
69
-
70
- - A supported execution path is Execute Work → observe → Verify Work → silent self-Review Work → Workflow.
71
- - A clear local defect returns to its owner for correction and re-verification.
72
- - Failed or inconclusive evidence with an unsupported cause routes to Diagnose Failure before another patch.
73
- - New options or invalid assumptions route to Discuss.
74
- - A user-owned choice or source conflict routes to Decision Gate.
75
- - Changed accepted content or strategy returns to the owning Spec or Plan.
76
- - A coherent accepted correction may remain in the current Track Work slice; a distinct result, authority, or evidence boundary requires Workflow to establish the next slice.
77
-
78
- Preserve valid work and revise only the affected layer. Do not continue because implementation started, redesign because an ordinary mistake occurred, or patch repeatedly when evidence points to one shared cause.
79
-
80
- ## Review And Checkpoint Edges
81
-
82
- Specs and Plans receive separate independent artifact review after author self-review. Independent work review is selected for a plan-selected, explicitly requested, sensitive, hard-to-reverse, architecture-bearing, or strongly interacting boundary—not simply because work ended.
83
-
84
- Independent review returns **Pass**, **Non-blocking**, **Inconclusive**, or **Blocking**. The active agent adjudicates every item. Review findings do not authorize edits, and a review budget does not authorize another dispatch. Corrections return to Execute Work or the artifact owner; focused follow-up occurs only when needed and authorized. Review 2 and Review 3 relationship and diagnosis rules live in the review skills.
85
-
86
- A useful but unapproved review, correction, commit, or other checkpoint returns to Workflow to recommend and wait. Push, integration, migration, release, and launch remain separately controlled even when earlier work was authorized.
87
-
88
- ## Context And Completion
89
-
90
- Before an expected context boundary, reconcile changed Working Record state. After compaction, summarization, resume, clear, or session navigation, read the complete record before continuing and compare it with the conversation and live state. Another conversation branch may contain memory, not authority.
91
-
92
- Completion requires fresh evidence, supported self-review, resolved selected reviews, accurate task memory, synchronized required artifacts, and no hidden user-owned decision or source conflict.