@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,21 +0,0 @@
1
- # ADR 0003: Release Boundary
2
-
3
- ## Status
4
-
5
- Accepted.
6
-
7
- ## Decision
8
-
9
- Freeflow ships as a marketplace repo with one plugin runtime under `plugins/freeflow/`.
10
-
11
- The plugin runtime includes skills, bundled references, context-loading runtime, public docs, eval sources/reports, command-surface metadata, Codex/Claude metadata, and Pi package metadata/extension.
12
-
13
- The runtime excludes generated eval run output, historical research notes, handoffs, enforcement hooks, CLI tools, and old Orchestra compatibility.
14
-
15
- ## Rationale
16
-
17
- The public repo should be installable without generated artifacts or duplicate package copies. Eval definitions and concise reports stay near the skills they protect; generated run output stays ignored.
18
-
19
- ## Consequences
20
-
21
- Release evidence is summarized in `release-evidence.md`. Generated eval run output remains ignored unless a future release intentionally publishes it.
@@ -1,26 +0,0 @@
1
- # ADR 0004: Research Replaces Shallow Discovery Skills
2
-
3
- ## Status
4
-
5
- Accepted.
6
-
7
- ## Decision
8
-
9
- Freeflow uses one active `research` skill for discovery work before spec, plan, build, or durable memory.
10
-
11
- The previous active skills `research-brief`, `grill-context`, and `capture-decisions` are deprecated and moved to root `deprecated/skills/`. They are no longer part of the runtime skill surface or direct command surface.
12
-
13
- The active direct command is `/research`.
14
-
15
- ## Rationale
16
-
17
- The three older skills were useful independently but shallow as a workflow module. In real use, research, brainstorming, targeted questions, and decision checkpointing need to interleave. Splitting them made the user or agent coordinate the sequence and made long grilling chains or uncaptured research decisions more likely.
18
-
19
- The `research` skill uses the same module/interface/depth/seam/leverage/locality language as architecture review so discovery can shape deep modules from the beginning, not only rescue shallow code later.
20
-
21
- ## Consequences
22
-
23
- - `/research-brief`, `/grill-context`, and `/capture-decisions` are removed from the current command surface.
24
- - Historical evals and reports for the deprecated skills remain as development evidence.
25
- - Current discovery eval evidence lives in `plugins/freeflow/evals/reports/by-skill/research-1-report.md`.
26
- - Durable decisions now belong to the checkpoint destination chosen by `research`: spec, plan, handoff, decision note, ADR, domain memory, or chat.
@@ -1,8 +0,0 @@
1
- # Freeflow ADRs
2
-
3
- Durable decisions for the public Freeflow package:
4
-
5
- - [ADR 0001: Three Workflow Modes](0001-three-modes.md)
6
- - [ADR 0002: Evals Before Enforcement Hooks](0002-evals-before-hooks.md)
7
- - [ADR 0003: Release Boundary](0003-release-boundary.md)
8
- - [ADR 0004: Research Replaces Shallow Discovery Skills](0004-research-replaces-shallow-discovery-skills.md)
@@ -1,86 +0,0 @@
1
- # Architecture
2
-
3
- Freeflow is a portable skill pack for coding agents.
4
-
5
- ## Runtime Boundary
6
-
7
- Freeflow ships Markdown skills, bundled references, lightweight context-loading hooks, and a Pi extension. It does not ship a CLI, Codex/Claude native slash handlers, enforcement hooks, or a new agent runtime in this release.
8
-
9
- Host runtimes still control tools, sandboxing, approvals, and permissions. Freeflow controls workflow pressure:
10
-
11
- - how much clarification is needed
12
- - when artifacts are useful
13
- - when source-truth conflicts stop edits
14
- - when review and verification are required
15
- - when a handoff or durable decision is useful
16
-
17
- ## Package Layout
18
-
19
- ```text
20
- freeflow/
21
- package.json
22
- .agents/plugins/marketplace.json
23
- .claude-plugin/marketplace.json
24
- README.md
25
- LICENSE
26
- CHANGELOG.md
27
- docs/
28
- plugins/freeflow/
29
- .codex-plugin/plugin.json
30
- .claude-plugin/plugin.json
31
- command-surface.json
32
- hooks/
33
- pi-extension/
34
- skills/
35
- docs/
36
- evals/
37
- ```
38
-
39
- The repository root is the marketplace and package-facing shell. Codex uses `.agents/plugins/marketplace.json`; Claude uses `.claude-plugin/marketplace.json`. Both point at `plugins/freeflow/`. Pi uses the root `package.json` `pi` manifest to load `plugins/freeflow/skills/` and `plugins/freeflow/pi-extension/index.js`.
40
-
41
- `plugins/freeflow/` is the single runtime source of truth. Skill edits, bundled references, eval metadata, and command-surface metadata live there to avoid generated package drift.
42
-
43
- ## Progressive Disclosure
44
-
45
- Each skill keeps its active `SKILL.md` short. Stable details move into `references/` files only when they prevent bloat, reduce repeated work, or address measured failures.
46
-
47
- This keeps the model's first-loaded instructions focused on behavior:
48
-
49
- - trigger
50
- - loop
51
- - stop condition
52
- - failure prevention
53
-
54
- ## Host Setup
55
-
56
- `setup-freeflow` installs a compact always-on contract into the host repo.
57
-
58
- The canonical setup contract lives in `skills/setup-freeflow/references/activation-contract.md`; setup docs, fixtures, and eval assertions should reference it or be checked against it.
59
-
60
- Codex setup targets `AGENTS.md` and `.freeflow/config.json`.
61
-
62
- Claude setup targets `CLAUDE.md`, `.claude/rules/freeflow-core.md`, and `.freeflow/config.json` when Claude is the selected host.
63
-
64
- Setup should not silently update both hosts or overwrite stronger repo-specific rules. Existing repo instructions are source truth.
65
-
66
- ## Runtime Context Hooks
67
-
68
- The installed plugin owns `hooks/hooks.json`. Setup does not copy hook files into target repos.
69
-
70
- The hooks load the existing `workflow` skill, workflow map, and `interview-gate` skill:
71
-
72
- - at session start, including startup, resume, clear, and compact
73
-
74
- They also report whether the current repo appears set up, partially set up, or missing setup. They do not run after edit/write tools, block tools, grant permissions, enforce mode policy, or replace repo instructions.
75
-
76
- Setup handles the same-session case directly: after successful setup verification, it reads the workflow skill, workflow map, and interview-gate skill before its final response and only then says workflow and interview-gate context is loaded.
77
-
78
- Host runtimes may require plugin hooks to be reviewed and trusted after install. If the host skips untrusted hooks, setup still writes activation/config files, but future session-start runtime context will not load until hooks are trusted and the session is restarted, resumed, cleared, or compacted.
79
-
80
- Pi uses an extension instead of `hooks/hooks.json`. The Pi extension registers direct commands, reads `workflow/SKILL.md`, `workflow/references/workflow-map.md`, `interview-gate/SKILL.md`, `output-router/SKILL.md`, and `output-router/references/safety-policy.md`, refreshes that context on `session_start` and `session_compact`, and injects it during Pi's `before_agent_start` lifecycle event. The same extension registers `freeflow_retrieve` and `freeflow_run` and gives them compact/expanded TUI renderers so collapsed tool rows stay readable while `ctrl+o` shows structured evidence and recovery details. Pi `/workflow` commands set a session-scoped current-mode override, while `.freeflow/config.json` remains the default-mode source. It follows the same boundary as the Codex/Claude hooks: context loading only, no enforcement.
81
-
82
- ## Deferred Enforcement
83
-
84
- Enforcement hooks and CLI checks are intentionally deferred. They are useful only after skill wording and evals prove a repeated behavior needs mechanical enforcement.
85
-
86
- For this release, commands are model-routed language such as `/write-spec` or `/verify-work`; they are not native registered slash handlers.
@@ -1,212 +0,0 @@
1
- # Output Router
2
-
3
- Freeflow Output Router keeps agent context focused while preserving exact evidence outside context.
4
-
5
- Use it when broad repo exploration, generated artifacts, large logs, or noisy command output would otherwise flood the model.
6
-
7
- For the full architecture, see [`docs/designs/freeflow-output-router-architecture.md`](../../../docs/designs/freeflow-output-router-architecture.md) in the repo root.
8
-
9
- ## Core Idea
10
-
11
- ```text
12
- smallest sufficient evidence in context
13
- + exact raw recovery outside context
14
- + no surprise native tool semantics
15
- ```
16
-
17
- The router ships two explicit tools:
18
-
19
- - `freeflow_retrieve`: retrieve targeted repo/vault evidence.
20
- - `freeflow_run`: run likely-large/noisy commands, vault raw output, and return compact evidence.
21
-
22
- Native tools still matter:
23
-
24
- - use native `read` for known whole files,
25
- - use native `bash` for small/direct raw shell behavior,
26
- - use native `edit`/`write` for mutations.
27
-
28
- ## Tiny Map
29
-
30
- ```mermaid
31
- flowchart LR
32
- Agent[agent]
33
- Retrieve[freeflow_retrieve]
34
- Run[freeflow_run]
35
- Repo[repo files]
36
- Vault[Freeflow vault]
37
- Native[native read/bash]
38
- Evidence[bounded evidence]
39
- Raw[exact recovery]
40
-
41
- Agent -->|existing info| Retrieve
42
- Agent -->|noisy command| Run
43
- Agent -->|direct/raw known output| Native
44
- Retrieve --> Repo --> Evidence
45
- Retrieve --> Vault --> Evidence
46
- Run --> Vault
47
- Run --> Evidence
48
- Vault --> Raw
49
- ```
50
-
51
- ## Tool Choice
52
-
53
- | Need | Use |
54
- | --- | --- |
55
- | Find repo evidence before reading files | `freeflow_retrieve action=query` |
56
- | Get candidate paths first | `freeflow_retrieve action=locate` |
57
- | Retrieve exact repo/vault lines | `freeflow_retrieve action=retrieve` with `lineRange` |
58
- | Widen previous evidence | `freeflow_retrieve action=expand` |
59
- | Explain a previous routed decision/output | `freeflow_retrieve action=explain` |
60
- | Run noisy/large command output | `freeflow_run` |
61
- | Read a known whole file | native `read` |
62
- | Run small exact command | native `bash` |
63
-
64
- ## `freeflow_retrieve`
65
-
66
- Sources:
67
-
68
- - `repo`: local repo files.
69
- - `vault`: previous routed command/native output.
70
-
71
- Actions:
72
-
73
- - `query`: returns best evidence packets; default `topK=1`.
74
- - `locate`: returns candidate locations; default `topK=5`.
75
- - `retrieve`: returns explicit path/line range evidence.
76
- - `expand`: expands a previous evidence packet to `lines_30`, `lines_80`, or `full`.
77
- - `explain`: explains a route decision or vault output.
78
-
79
- Example:
80
-
81
- ```json
82
- {
83
- "action": "query",
84
- "source": { "kind": "repo" },
85
- "query": "Sandbox Permissions UseDefault RequireEscalated WithAdditionalPermissions",
86
- "preserve": "important"
87
- }
88
- ```
89
-
90
- Evidence packets include:
91
-
92
- - source/path,
93
- - line range,
94
- - exact excerpt,
95
- - why the router selected it,
96
- - expansion/recovery guidance.
97
-
98
- Repo retrieval uses deterministic scanner ranking by default. Broad scans skip generated/dependency/cache paths such as `graphify-out/**`, but explicit path retrieval remains available.
99
-
100
- ## `freeflow_run`
101
-
102
- `freeflow_run` executes once through the host-approved runner, stores exact raw output in the vault, then returns useful command evidence.
103
-
104
- Example:
105
-
106
- ```json
107
- {
108
- "command": "npm test",
109
- "goal": "verification",
110
- "preserve": "important"
111
- }
112
- ```
113
-
114
- Returned results include:
115
-
116
- - `outputId`,
117
- - `execution.status` and `exitCode`,
118
- - parser metadata,
119
- - important lines,
120
- - exact recovery instructions.
121
-
122
- Command parsers currently cover:
123
-
124
- - test runner output,
125
- - TypeScript/lint diagnostics,
126
- - git status/diffstat,
127
- - build/toolchain errors,
128
- - generic fallback,
129
- - duplicate output detection.
130
-
131
- ## Vault Recovery
132
-
133
- Recover exact command output with:
134
-
135
- ```json
136
- {
137
- "action": "retrieve",
138
- "source": { "kind": "vault", "outputId": "ffout_...", "stream": "combined" },
139
- "lineRange": { "start": 1, "end": 40 },
140
- "preserve": "full"
141
- }
142
- ```
143
-
144
- Streams:
145
-
146
- - command output: `stdout`, `stderr`, `combined`,
147
- - native safety-net output: `raw`.
148
-
149
- Default vault root:
150
-
151
- ```text
152
- ~/.cache/freeflow-router/vault
153
- ```
154
-
155
- ## Config
156
-
157
- The router works with built-in defaults. Minimal `/setup-freeflow` writes only `defaultMode`.
158
-
159
- Optional repo config lives in `.freeflow/config.json` only when explicitly requested:
160
-
161
- ```json
162
- {
163
- "defaultMode": "workflow",
164
- "outputRouter": {
165
- "postToolRouting": "off",
166
- "largeOutputBytes": 64000,
167
- "largeOutputLines": 1000,
168
- "vaultRoot": "~/.cache/freeflow-router/vault",
169
- "vaultRetentionDays": 7,
170
- "generatedPaths": ["graphify-out/**"],
171
- "noisyCommandHints": ["npm test"]
172
- }
173
- }
174
- ```
175
-
176
- Rules:
177
-
178
- - `postToolRouting` defaults to `off`.
179
- - `safety-net` is opt-in.
180
- - `strict` is reserved.
181
- - Do not dump defaults into config.
182
- - Write only requested keys.
183
-
184
- ## Native Safety Net
185
-
186
- Pi can optionally route large native `read`/`bash` results after the tool runs.
187
-
188
- Default: off.
189
-
190
- When enabled, a routed native result is labeled, vaulted, and includes an `outputId`. If safety-net routing fails, Freeflow fails open and returns native output with a warning.
191
-
192
- ## Defaults And Experiments
193
-
194
- Current adoption decisions:
195
-
196
- - Scanner retrieval is the default backend.
197
- - The no-dependency local index is experimental and not adopted by default.
198
- - SQLite/FTS is not adopted.
199
- - Model-assisted routing is not default.
200
- - Graphify, Claude Context, RTK, and Squeez are optional references/comparators, not dependencies.
201
-
202
- ## Evidence
203
-
204
- Current release evidence:
205
-
206
- - Retrieval benchmark: improved router passed 7/7 fixtures.
207
- - Command benchmark: `freeflow_run` passed 8/8 fixtures with exact recovery.
208
- - Optional index benchmark: scanner remains default; index not adopted.
209
- - Codex Structured Q&A benchmark: improved router passed the Sandbox Permissions fixture where native broad search selected `graphify-out/graph.html`.
210
- - Setup eval: optional `outputRouter` config is opt-in; minimal setup remains only `defaultMode`.
211
-
212
- See `release-evidence.md` and runtime reports under `plugins/freeflow/evals/reports/runtime/`.
@@ -1,69 +0,0 @@
1
- # Release Evidence
2
-
3
- Freeflow v0.2.0 is based on the v0.1 local acceptance suite plus targeted runtime, setup, and output-router evidence from the development repository.
4
-
5
- ## Acceptance Summary
6
-
7
- The local v0.1 acceptance suite passed after measured fixes and was rerun during prepublish verification on 2026-05-26.
8
-
9
- High-signal behaviors covered:
10
-
11
- - Source-truth conflicts stop before edits.
12
- - Strict public API specs ask for owner decisions.
13
- - Execution stops when verification reveals a bad plan.
14
- - Commit flow refuses mixed staged sensitive changes.
15
- - Research checkpoints replace separate research, grilling, and decision-capture commands for discovery work.
16
- - Bypass skips ceremony, not judgment.
17
-
18
- ## Command Surface
19
-
20
- The development registry covers:
21
-
22
- - 4 mode commands.
23
- - 11 direct workflow skill calls.
24
- - 2 contributor skill calls.
25
-
26
- Codex/Claude native slash handlers are not shipped in this release. In those hosts, commands are model-routed through natural language and skill activation. Pi registers direct Freeflow commands through its extension.
27
-
28
- ## Runtime Context
29
-
30
- Freeflow ships plugin-bundled context hooks that load the existing `workflow` skill, workflow map, and `interview-gate` skill at session start. The Pi extension also loads output-router context, including its safety-policy reference, when the routed tools are available. These hooks do not run after edit/write tools, enforce behavior, block tools, or create repo-local hook files.
31
-
32
- For the same session that runs setup, `setup-freeflow` reads the workflow skill, workflow map, and interview-gate skill after successful setup verification before saying workflow and interview-gate context is loaded.
33
-
34
- Host trust prompts for plugin hooks are expected host behavior. Local metadata validation checks hook packaging and deterministic output, not end-to-end host trust UI.
35
-
36
- ## Output Router Evidence
37
-
38
- Output-router behavior is backed by deterministic runtime reports under `plugins/freeflow/evals/reports/runtime/`.
39
-
40
- Verified in the development repo:
41
-
42
- - Retrieval benchmark: improved router passed 7/7 gated fixtures and fixed the generated-artifact Sandbox Permissions false-positive shape.
43
- - Command-output benchmark: `freeflow_run` passed 8/8 fixtures, preserved exact facts, and verified raw vault recovery.
44
- - Optional local index benchmark: scanner remains default, index is not adopted by default, and the no-dependency index remains experimental.
45
- - Codex Structured Q&A macro benchmark: improved router passed the first Sandbox Permissions Q&A fixture while the native broad-search proxy selected `graphify-out/graph.html`.
46
- - Large Codex scanner benchmark: scanner remains the retrieval backend; latest recorded report-refresh evidence kept scanner at 6/8 strict fixtures with bounded context.
47
- - Setup/config eval: `setup-freeflow` supports optional `outputRouter` repo config only when explicitly requested; minimal setup still writes only `defaultMode`.
48
-
49
- Adoption decisions:
50
-
51
- - Scanner improvements ship as default behavior.
52
- - Native post-tool safety-net routing remains off unless explicitly configured.
53
- - The no-dependency local index stays experimental.
54
- - SQLite/FTS, model-assisted routing, Graphify, and Claude Context remain optional/non-default comparison paths, not product dependencies.
55
-
56
- ## Release Metadata
57
-
58
- Run `plugins/freeflow/evals/scripts/validate-release-metadata.sh` for local prepublish checks across marketplace metadata, host manifests, command-surface routing, release-boundary docs, package cleanliness, and deferred install-smoke status.
59
-
60
- Run `plugins/freeflow/evals/scripts/check-runtime-context-hook.sh` after changing lifecycle context hooks.
61
-
62
- ## Known Deferred Work
63
-
64
- - Live Claude smoke evals after Hassan confirms Claude testing is available again.
65
- - GitHub-install smoke tests in separate Codex, Claude, and fresh Pi environments.
66
- - Enforcement hooks or CLI checks only after repeated behavior failures justify them.
67
- - Public marketplace submission only after GitHub install works for required hosts.
68
-
69
- Full eval reports are development evidence and are not included in the runtime package.
@@ -1,43 +0,0 @@
1
- # Skills
2
-
3
- Freeflow ships a small workflow skill pack. Natural language is the preferred interface. In Codex/Claude, slash-style phrases work as model-routed skill hints; in Pi, the extension registers direct Freeflow commands.
4
-
5
- ## Core
6
-
7
- | Skill | Use When |
8
- | --- | --- |
9
- | `workflow` | Choosing the next workflow entry point or explaining the full flow. |
10
- | `mode-contract` | Inferring or switching `conversation`, `workflow`, or `strict-workflow`. |
11
- | `interview-gate` | Ambiguity or a user-owned decision would change the next action. |
12
- | `output-router` | Choosing routed tools for large/noisy output, vault recovery, or output-router configuration. |
13
- | `bypass` | Skipping unnecessary ceremony without skipping judgment. |
14
-
15
- ## Discovery And Artifacts
16
-
17
- | Skill | Use When |
18
- | --- | --- |
19
- | `research` | An idea, feature, architecture direction, vague task, or consequential question needs evidence, brainstorming, targeted questions, and a checkpoint before spec, plan, build, or durable memory. |
20
- | `write-spec` | Agreed requirements or decisions need a durable spec. |
21
- | `review-artifact` | A spec, plan, handoff, research checkpoint, or decision note must guide future work. |
22
- | `write-plan` | An approved spec or explicit task context needs executable slices. |
23
-
24
- ## Execution And Closeout
25
-
26
- | Skill | Use When |
27
- | --- | --- |
28
- | `execute-plan` | An approved plan exists and should be implemented in checked slices, especially multi-slice/TDD work with verification, review, commit, or handoff checkpoints. |
29
- | `diagnose-failure` | Behavior is broken, failing, flaky, slow, or unclear. |
30
- | `review-work` | A completed diff or review feedback needs bug/risk-focused review or adjudication before fixes. |
31
- | `verify-work` | Fresh evidence is needed before claiming completion. |
32
- | `commit-work` | Reviewed, verified, intended work is ready to commit. |
33
- | `handoff` | Pausing, compacting, transferring context, or preserving continuation memory. |
34
-
35
- ## Contributor Skills
36
-
37
- | Skill | Use When |
38
- | --- | --- |
39
- | `setup-freeflow` | Installing the compact always-on Freeflow contract into a repo. |
40
- | `write-skill` | Creating or revising concise behavior-shaping skills. |
41
- | `evaluate-skill` | Turning failures into baseline-vs-with-skill evals and revising from evidence. |
42
-
43
- These contributor skills are shipped because teams may use Freeflow to install or adapt workflow behavior, but they are not normal workflow states for ordinary feature work.
@@ -1,57 +0,0 @@
1
- # Workflow
2
-
3
- Freeflow is a workflow layer, not a new agent. It helps the agent choose the right amount of process for the task.
4
-
5
- ## Modes
6
-
7
- - `conversation`: answer, explain, critique, or explore without workflow pressure.
8
- - `workflow`: default for consequential work; use the workflow spine and scale detail to risk.
9
- - `strict-workflow`: high-risk or hard-to-reverse work with stronger gates.
10
-
11
- Use strict-workflow for security, privacy, billing, public APIs, migrations, data loss, compatibility, permissions, deployment, or irreversible architecture.
12
-
13
- ## Map
14
-
15
- ```mermaid
16
- flowchart LR
17
- Request{request}
18
- Talk[conversation<br/>answer directly]
19
- Discover[discover<br/>research checkpoint]
20
- Spec[spec]
21
- Plan[plan]
22
- Build[build<br/>execute / diagnose]
23
- Check[review + verify]
24
- Close[commit / handoff]
25
-
26
- Request -->|question| Talk
27
- Request -->|work| Discover
28
- Discover --> Spec --> Plan --> Build --> Check --> Close
29
- Check -. new evidence or failed check .-> Discover
30
- ```
31
-
32
- The map is orienting, not mandatory. Small reversible work can skip unnecessary artifacts and gates.
33
-
34
- ## Backward Edge
35
-
36
- Loop back when new evidence changes the path:
37
-
38
- ```mermaid
39
- flowchart LR
40
- Trigger{new evidence<br/>conflict<br/>failed check<br/>owner decision}
41
- Decide{changes<br/>next action?}
42
- Continue[continue]
43
- Reenter[clarify / research<br/>revise spec or plan<br/>diagnose / split / stop]
44
-
45
- Trigger --> Decide
46
- Decide -->|no| Continue
47
- Decide -->|yes| Reenter
48
- Reenter -. resume .-> Decide
49
- ```
50
-
51
- The agent should not silently choose the backward destination when the choice changes product behavior, scope, compatibility, public APIs, security, privacy, billing, data loss, permissions, or irreversible architecture.
52
-
53
- ## Bypass
54
-
55
- Bypass skips ceremony, not judgment.
56
-
57
- Use `bypass` only to skip an unnecessary gate. It does not skip user-owned decisions, source-truth conflicts, risky checks, or fresh verification before completion claims.