@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
@@ -8,7 +8,7 @@
8
8
  "name": "freeflow",
9
9
  "source": {
10
10
  "source": "local",
11
- "path": "./plugins/freeflow"
11
+ "path": "."
12
12
  },
13
13
  "policy": {
14
14
  "installation": "AVAILABLE",
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "$schema": "https://anthropic.com/claude-code/marketplace.schema.json",
3
3
  "name": "freeflow",
4
- "description": "Lightweight workflow for coding agents.",
4
+ "description": "Feedback-based control system for coding agents.",
5
5
  "owner": {
6
6
  "name": "Hassan Mohiddin",
7
7
  "url": "https://github.com/hassan-mohiddin"
@@ -9,10 +9,10 @@
9
9
  "plugins": [
10
10
  {
11
11
  "name": "freeflow",
12
- "description": "Conversation, workflow, and strict-workflow skills for coding agents.",
13
- "version": "0.2.0",
12
+ "description": "Feedback-based control for coding agents.",
13
+ "version": "0.4.0",
14
14
  "category": "development",
15
- "source": "./plugins/freeflow",
15
+ "source": "./",
16
16
  "author": {
17
17
  "name": "Hassan Mohiddin"
18
18
  },
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "freeflow",
3
- "description": "Lightweight workflow for coding agents. Conversation, workflow, and strict-workflow skills for planning, execution, review, verification, handoff, and decision capture.",
4
- "version": "0.2.0",
3
+ "description": "Freeflow gives coding agents an Interaction Contract, evidence-driven Workflow, focused methods, and durable task memory across conversation, workflow, and strict-workflow modes.",
4
+ "version": "0.4.0",
5
5
  "author": {
6
6
  "name": "Hassan Mohiddin"
7
7
  },
@@ -12,8 +12,11 @@
12
12
  "workflow",
13
13
  "skills",
14
14
  "agents",
15
+ "feedback-loop",
16
+ "task-memory",
15
17
  "planning",
16
18
  "verification",
19
+ "review",
17
20
  "claude-code",
18
21
  "codex"
19
22
  ]
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "freeflow",
3
- "version": "0.2.0",
4
- "description": "Lightweight workflow for coding agents.",
3
+ "version": "0.4.0",
4
+ "description": "Feedback-based control system for coding agents.",
5
5
  "author": {
6
6
  "name": "Hassan Mohiddin"
7
7
  },
@@ -12,23 +12,22 @@
12
12
  "workflow",
13
13
  "skills",
14
14
  "agents",
15
+ "feedback-loop",
16
+ "task-memory",
15
17
  "planning",
16
18
  "verification",
19
+ "review",
17
20
  "codex",
18
21
  "claude"
19
22
  ],
20
23
  "skills": "./skills/",
21
24
  "interface": {
22
25
  "displayName": "Freeflow",
23
- "shortDescription": "Lightweight workflow for coding agents.",
24
- "longDescription": "Freeflow guides coding agents through conversation, workflow, and strict-workflow modes with interview gates, source-truth checks, planning, execution, review, verification, commit discipline, handoffs, and durable decision capture.",
26
+ "shortDescription": "Feedback-based control for coding agents.",
27
+ "longDescription": "Freeflow gives coding agents an Interaction Contract, evidence-driven Workflow, focused methods, and durable task memory across conversation, workflow, and strict-workflow modes.",
25
28
  "developerName": "Hassan Mohiddin",
26
29
  "category": "Coding",
27
- "capabilities": [
28
- "Interactive",
29
- "Read",
30
- "Write"
31
- ],
30
+ "capabilities": ["Interactive", "Read", "Write"],
32
31
  "defaultPrompt": [
33
32
  "Use Freeflow workflow mode for this task.",
34
33
  "Keep this in conversation mode.",
package/README.md CHANGED
@@ -1,73 +1,142 @@
1
1
  # Freeflow
2
2
 
3
- Lightweight workflow for coding agents.
3
+ **A feedback-based control system for coding agents.**
4
4
 
5
- Agent workflow tools tend to choose one side of the problem: sharp point skills, full lifecycle methodology, or enforcement-heavy runtimes. The missing layer is a small workflow spine that prevents silent product decisions, source-truth rewrites, fake verification, and messy handoffs without turning every change into a process operating system.
5
+ Freeflow helps coding agents move through consequential work without a rigid pipeline, silent decisions, or context-heavy ceremony.
6
6
 
7
- ## Workflow
7
+ > Use feedback to choose the smallest useful next action.
8
8
 
9
- Freeflow is a workflow layer, not a new agent. It helps the agent choose the right amount of process for the task.
9
+ > Re-enter the narrowest owning activity when evidence changes the path.
10
10
 
11
- ### Modes
11
+ > Memory preserves context. It does not create authority.
12
12
 
13
- - `conversation`: answer, explain, critique, or explore without workflow pressure.
14
- - `workflow`: default for consequential work; use the workflow spine and scale detail to risk.
15
- - `strict-workflow`: high-risk or hard-to-reverse work with stronger gates.
13
+ The active agent still does the work. Freeflow supplies the interaction contract, workflow routing, focused methods, task memory, and evidence discipline that help it decide what to do next—and when not to edit.
16
14
 
17
- Use strict-workflow for security, privacy, billing, public APIs, migrations, data loss, compatibility, permissions, deployment, or irreversible architecture.
15
+ ## Why Freeflow
18
16
 
19
- ### Map
17
+ Coding agents are strong at mutation and weak at control boundaries:
20
18
 
21
- ```mermaid
22
- flowchart LR
23
- Request{request}
24
- Talk[conversation<br/>answer directly]
25
- Discover[discover<br/>research checkpoint]
26
- Spec[spec]
27
- Plan[plan]
28
- Build[build<br/>execute / diagnose]
29
- Check[review + verify]
30
- Close[commit / handoff]
19
+ | Common failure | Freeflow response |
20
+ | --- | --- |
21
+ | A question or tentative idea becomes an edit. | The Interaction Contract answers first and waits for clear action authority. |
22
+ | A prompt conflicts with tests, policy, or accepted behavior. | Decision Gate names the conflict and stops before mutation. |
23
+ | Work follows a plan after evidence invalidates it. | Workflow routes from evidence and preserves unaffected work. |
24
+ | Every task gets a spec, plan, review, and status ceremony. | Workflow enters at the narrowest useful owner and creates artifacts only when they help. |
25
+ | A passing command becomes an unsupported completion claim. | Verify Work matches direct evidence to the exact claim and boundary. |
26
+ | Review findings are treated as commands. | The active agent adjudicates; corrections require existing or explicit authority. |
27
+ | Compaction loses task state or imports stale branch authority. | Track Work restores the complete Working Record and reconciles it with the current conversation and live repo. |
28
+ | Large search, logs, and test output consume the context window. | Output Router returns focused evidence with exact recovery where configured. |
31
29
 
32
- Request -->|question| Talk
33
- Request -->|work| Discover
34
- Discover --> Spec --> Plan --> Build --> Check --> Close
35
- Check -. new evidence or failed check .-> Discover
36
- ```
30
+ Freeflow is not a new agent or workflow engine. It is a portable control layer for Codex, Claude Code, Pi, and similar coding environments.
31
+
32
+ ## The Control System
37
33
 
38
- The map is orienting, not mandatory. Small reversible work can skip unnecessary artifacts and gates.
34
+ One user interaction is an **Interaction Lifecycle**:
39
35
 
40
- ### Backward Edge
36
+ ![Freeflow Workflow: Entry, Feedback Loop, and Supported Exit](assets/workflow.png)
37
+
38
+ ```text
39
+ [Entry] -> [Feedback Loop when needed] -> [Supported Exit]
40
+ ^ ^ | |
41
+ | |________| |
42
+ |__________________________________________|
43
+ later user turn or evidence
44
+ ```
41
45
 
42
- Loop back when new evidence changes the path:
46
+ When work is needed, the inner **Feedback Loop** is:
43
47
 
44
- ```mermaid
45
- flowchart LR
46
- Trigger{new evidence<br/>conflict<br/>failed check<br/>owner decision}
47
- Decide{changes<br/>next action?}
48
- Continue[continue]
49
- Reenter[clarify / research<br/>revise spec or plan<br/>diagnose / split / stop]
48
+ ![Freeflow Core Feedback Loop: orient, use the owning skill, verify, self-review once, and route from evidence](assets/feedback-loop.png)
50
49
 
51
- Trigger --> Decide
52
- Decide -->|no| Continue
53
- Decide -->|yes| Reenter
54
- Reenter -. resume .-> Decide
50
+ ```text
51
+ orient to accepted intent, task memory, and live evidence
52
+ -> use the narrowest owning skill
53
+ -> implement, discuss, test, or observe
54
+ -> verify what the evidence proves
55
+ -> when supported, self-review once
56
+ -> continue, correct, diagnose, revise, ask, defer, or stop
55
57
  ```
56
58
 
57
- 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.
59
+ A Supported Exit may answer, wait, pause, hand off, defer, stop, preserve a controlled boundary, or complete. Freeflow does not invent another phase merely because one exists in the full skill pack.
60
+
61
+ ## Core Principles
62
+
63
+ - **The active agent owns the current route.** Independent review may add judgment; it does not take over routing or verification.
64
+ - **Verification is factual. Review is judgment.** The active agent verifies; self-review is silent; selected independent review uses a separate context.
65
+ - **Pass is not the only review exit.** Pass, Non-blocking, Inconclusive, and Blocking all end review and return evidence to Workflow.
66
+ - **Review findings do not authorize edits.** Ask for unapproved corrections and any warranted focused follow-up together.
67
+ - **Specs and Plans have separate jobs and separate reviews.** Working Records carry evolving state; Plans remain stable ordered strategy.
68
+ - **A slice may span several feedback iterations.** Extend its boundary write-ahead only while the intended result remains coherent.
69
+ - **Diagnose before redesigning.** Ordinary mistakes do not prove structural failure.
70
+ - **Bypass skips optional pressure, not authority, safety, evidence, or selected review.**
71
+
72
+ ## Modes
73
+
74
+ Freeflow has exactly three modes:
75
+
76
+ | Mode | Use for | Guardrail |
77
+ | --- | --- | --- |
78
+ | `conversation` | Discussion, critique, explanation, and read-only exploration | Agent-performed mutation requires switching mode. |
79
+ | `workflow` | Normal consequential or mutating work | Use the adaptive lifecycle and proportionate evidence. |
80
+ | `strict-workflow` | High-risk or hard-to-reverse work | Stronger decision, evidence, and checkpoint pressure without review after every slice. |
81
+
82
+ Task type and direct skill calls do not silently switch mode.
83
+
84
+ ## Skills And Routing
85
+
86
+ Freeflow ships 26 skill packages:
87
+
88
+ - 25 active model/contributor skills;
89
+ - Output Router as an optional capability loaded only when effective.
90
+
91
+ See the [typed skill routing map](https://github.com/hassan-mohiddin/freeflow/blob/main/plugin-docs/skill-routing.md) for every owner, sibling route, and reference dependency. See [Workflow](https://github.com/hassan-mohiddin/freeflow/blob/main/plugin-docs/workflow.md) for the lifecycle and [Architecture](https://github.com/hassan-mohiddin/freeflow/blob/main/plugin-docs/architecture.md) for delivery and configuration.
58
92
 
59
- ### Bypass
93
+ ## Task Memory Without A Second Task System
60
94
 
61
- Bypass skips ceremony, not judgment.
95
+ Track Work maintains one Working Record for an ongoing task:
62
96
 
63
- 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.
97
+ - current context;
98
+ - one current slice;
99
+ - ordered proposed slices;
100
+ - task-local decisions and hypotheses;
101
+ - evidence pointers and completed history;
102
+ - one next useful action;
103
+ - optional inert Notes.
104
+
105
+ It records state transitions, not every edit or comment. Routine in-slice feedback is not checkpoint history. After compaction, summarization, clear, resume, or session navigation, Workflow reads the complete record before continuing and treats it as memory rather than authority.
106
+
107
+ ## Context Is For Decisions, Not Dumps
108
+
109
+ Output Router keeps noisy evidence recoverable without forcing all of it into model context.
110
+
111
+ | Need | Use |
112
+ | --- | --- |
113
+ | Search repo, explicit local sources, or routed evidence | `freeflow_search` |
114
+ | Run noisy tests, builds, typechecks, logs, or diagnostics | `freeflow_run` |
115
+ | Run independent searches/checks and aggregate facts | `freeflow_batch` |
116
+ | Compute bounded subsets or statistics | `freeflow_search action=transform` |
117
+ | Inspect configuration, vault, routing, or adapters | `freeflow_status` |
118
+ | Read a known file or run a tiny exact command | Native host tools |
119
+
120
+ Output Router is disabled by default. Setup enables it only after an explicit request.
121
+
122
+ ## Evidence, Not Marketing Certainty
123
+
124
+ Historical v0.1 workflow fixtures and current router benchmarks remain reproducible evidence, not universal guarantees. The current adaptive skill candidate is **Unverified** pending baseline-vs-with-skill behavioral evaluation.
125
+
126
+ | Evidence | Result |
127
+ | --- | --- |
128
+ | Historical v0.1 acceptance suite | 15/15 fixtures passed after measured fixes. |
129
+ | Historical source-truth conflict pressure | Baseline 2/10; with-skill 10/10. |
130
+ | Retrieval benchmark | 7/7 gated fixtures; 98.54% weighted context reduction. |
131
+ | Command-output benchmark | 8/8 fixtures with exact recovery; 85.03% weighted reduction. |
132
+ | Pi observed-routing eval | 28/28 objective gates; 82.2% overall byte reduction. |
133
+
134
+ See [release evidence](https://github.com/hassan-mohiddin/freeflow/blob/main/plugin-docs/release-evidence.md) for boundaries, reports, and deferred checks.
64
135
 
65
136
  ## Install
66
137
 
67
138
  ### Codex
68
139
 
69
- Register the GitHub repo as a Codex marketplace, refresh it, then install Freeflow:
70
-
71
140
  ```bash
72
141
  codex plugin marketplace add https://github.com/hassan-mohiddin/freeflow.git
73
142
  codex plugin marketplace upgrade freeflow
@@ -75,146 +144,144 @@ codex plugin add freeflow@freeflow
75
144
  codex plugin list | rg freeflow
76
145
  ```
77
146
 
78
- In the Codex app, add the same GitHub marketplace URL from `/plugins`, then search for `freeflow`.
147
+ Trust the Freeflow `SessionStart` hook from `/hooks` when Codex requests review.
79
148
 
80
149
  ### Claude Code
81
150
 
82
- Register the marketplace:
83
-
84
151
  ```bash
85
152
  /plugin marketplace add hassan-mohiddin/freeflow
86
153
  /plugin install freeflow
87
154
  ```
88
155
 
89
- Or install directly from GitHub:
90
-
91
- ```bash
92
- /plugin install hassan-mohiddin/freeflow
93
- ```
94
-
95
- ### Pi Coding Agent
96
-
97
- Install Freeflow as a native Pi package from npm:
156
+ ### Pi
98
157
 
99
158
  ```bash
100
159
  pi install npm:@hassangameryt/freeflow
101
160
  ```
102
161
 
103
- Or install directly from GitHub:
162
+ Or:
104
163
 
105
164
  ```bash
106
165
  pi install git:github.com/hassan-mohiddin/freeflow
107
166
  ```
108
167
 
109
- For local development from this checkout:
110
-
111
- ```bash
112
- pi install .
113
- ```
114
-
115
- The Pi package exposes Freeflow skills and a small extension that registers direct Freeflow commands and loads workflow skill/map context before agent turns.
116
-
117
- ### Required Step 1: Run Setup
168
+ ## Activate In A Repository
118
169
 
119
- **Run this in every repo after installing Freeflow:**
170
+ Run:
120
171
 
121
172
  ```text
122
173
  /setup-freeflow
123
174
  ```
124
175
 
125
- Setup creates the repo activation file and `.freeflow/config.json`. It does not create repo-local hooks, docs inventories, state files, handoffs, or `.codex/rules` behavior files.
176
+ Minimal setup creates shared activation:
126
177
 
127
- After successful setup, the setup skill reads the workflow skill and workflow map before its final response so the current session can continue with Freeflow loaded.
128
-
129
- ### Required Step 2: Enable Hooks
178
+ ```json
179
+ {
180
+ "defaultMode": "workflow"
181
+ }
182
+ ```
130
183
 
131
- **In Codex, open the hooks screen and trust the Freeflow `SessionStart` hook:**
184
+ Configuration layers are:
132
185
 
133
186
  ```text
134
- /hooks
187
+ Pi session capability or mode override
188
+ -> .freeflow/local.json personal core override
189
+ -> .freeflow/config.json shared repository value
190
+ -> built-in default
135
191
  ```
136
192
 
137
- Press `t` to trust/enable the hook when Codex marks it as needing review.
193
+ `.freeflow/config.json` is required. `.freeflow/local.json` is optional and cannot activate Freeflow by itself. Session overrides live in branch-aware Pi session JSONL, do not mutate config files, and cannot bypass missing or invalid repository activation. Setup does not write Freeflow instructions into `AGENTS.md`, `CLAUDE.md`, or host rule files.
138
194
 
139
- Once enabled, the hook loads Freeflow workflow context at session start, resume, clear, and compact.
195
+ ## Runtime Delivery
140
196
 
141
- In Pi, Freeflow's package extension provides the context-loading hook through Pi lifecycle events. It refreshes workflow context on session start and compact, then injects it before agent turns. If you install it project-locally, trust the project when Pi prompts for project-local package resources.
197
+ When effective, host adapters deliver:
142
198
 
143
- These hooks do not run after every edit, block tools, grant permissions, or enforce workflow policy.
199
+ - `runtime/interaction-contract.md` for compact turn interpretation;
200
+ - one `skills/workflow/SKILL.md` bootstrap while Skills are effective;
201
+ - compact mode and capability state;
202
+ - effective optional capability context.
144
203
 
145
- ### Other Agents
204
+ Mode Contract and other skills remain on demand. Hooks load context only; they do not enforce policy, block tools, grant permissions, or replace repo instructions.
146
205
 
147
- Copy the `plugins/freeflow/skills/` directory into the agent's skills/plugin system and make sure the agent can read `SKILL.md` files with bundled `references/`.
206
+ Pi appends effective compact context before agent turns and stores Workflow as one hidden persistent session message. Codex and Claude use packaged lifecycle hooks at supported start, resume, clear, and compact boundaries. Setup reports automatic delivery as confirmed, unavailable, or unconfirmed.
148
207
 
149
- ## Usage
208
+ ## Commands
150
209
 
151
- Use natural language first:
210
+ Natural language is preferred. Pi registers these canonical direct calls:
152
211
 
153
212
  ```text
154
- Use Freeflow workflow mode for this task.
155
- Keep this in conversation mode.
156
- Use strict-workflow for this billing change.
157
- Verify before claiming completion.
158
- Create a research checkpoint.
159
- ```
160
-
161
- Slash-style prompts are model-routed in Codex and Claude:
162
-
163
- ```text
164
- /workflow conversation
165
- /workflow workflow
166
- /workflow strict-workflow
167
- /workflow reset
168
- /research
213
+ /discuss
214
+ /track-work
169
215
  /write-spec
216
+ /review-artifact
170
217
  /write-plan
171
- /execute-plan
218
+ /execute-work
219
+ /simplify-code
220
+ /migration-work
221
+ /diagnose-failure
172
222
  /verify-work
223
+ /review-work
173
224
  /commit-work
174
225
  /handoff
226
+ /finish-branch
227
+ /release-work
228
+ /launch-work
229
+ /bypass
230
+ ```
231
+
232
+ Pi-only compatibility aliases:
233
+
234
+ ```text
235
+ /discover
236
+ /execute-plan
175
237
  ```
176
238
 
177
- For Codex and Claude, these commands work as skill-routing language. In Pi, the package extension registers native command handlers for Freeflow commands. Pi `/workflow` mode changes are session-scoped and update the footer; `.freeflow/config.json` remains the repo default only.
239
+ Contributor calls:
178
240
 
179
- ## Docs
241
+ ```text
242
+ /setup-freeflow
243
+ /write-skill
244
+ /evaluate-skill
245
+ ```
180
246
 
181
- - [Docs index](plugins/freeflow/docs/README.md)
182
- - [Workflow](plugins/freeflow/docs/workflow.md)
183
- - [Skills](plugins/freeflow/docs/skills.md)
184
- - [Architecture](plugins/freeflow/docs/architecture.md)
185
- - [Release evidence](plugins/freeflow/docs/release-evidence.md)
186
- - [ADRs](plugins/freeflow/docs/adr/README.md)
247
+ Mode controls:
187
248
 
188
- ## Evidence
249
+ ```text
250
+ /freeflow mode conversation
251
+ /freeflow mode workflow
252
+ /freeflow mode strict-workflow
253
+ /freeflow mode reset
254
+ ```
189
255
 
190
- Freeflow does not claim to beat Matt Pocock's skills or Obra's Superpowers. Those are references for skill sharpness and lifecycle discipline. Current evals compare baseline agent behavior against Freeflow instructions/skills, then verify command coverage.
256
+ Pi-native settings controls:
191
257
 
192
- | Report | Baseline | With Freeflow | What It Shows |
193
- | --- | ---: | ---: | --- |
194
- | v0.1 acceptance suite | - | 15/15 pass | Required release behaviors passed after measured fixes. |
195
- | Always-on source-truth conflict | 2/10 | 10/10 | Freeflow stopped a pressured billing rewrite, made no edits, named the conflict, and asked for the policy decision. |
196
- | Write spec from stale handoff | 4/10 | 10/10 | Freeflow refused to supersede billing policy from stale handoff text. |
197
- | Write plan with hidden billing decision | 4/10 | 10/10 | Freeflow created no plan, named the policy conflict, and asked which path to follow. |
198
- | Cold spec call without context | 2/10 | 10/10 | Freeflow did not invent onboarding behavior from adjacent files. |
199
- | Workflow context lifecycle | fail | pass | Setup loads workflow context for the same session; session-start hooks load workflow context without `PostToolUse`. |
200
- | Output router retrieval | - | 7/7 pass | Deterministic router evidence fixes generated-artifact false positives while keeping scanner retrieval default. |
201
- | Output router command recovery | - | 8/8 pass | `freeflow_run` preserves exact facts and verifies raw vault recovery for routed command output. |
202
- | Codex Structured Q&A | native proxy 0/1 | improved router 1/1 | Sandbox Permissions Q&A resolves to the source markdown instead of a generated `graphify-out` decoy. |
203
- | Command surface audit | - | Pass | 4 mode commands, 11 direct skill calls, and 2 developer skill calls are covered while native slash handlers remain disabled. |
258
+ ```text
259
+ /freeflow
260
+ /output-router
261
+ ```
262
+
263
+ `/freeflow settings` edits personal core overrides. `/freeflow settings session` manages temporary, branch-aware Freeflow, Interaction Contract, Skills, and mode overrides without changing config files. `/freeflow settings repo` edits shared settings. `/freeflow mode` remains the direct temporary mode control. Codex and Claude have no native Freeflow slash handlers; canonical names and natural language remain model-routed cues.
264
+
265
+ Direct skill calls select a method. They do not change mode, authorize mutation, or create independent review context.
204
266
 
205
- Eval sources and reports live with the plugin under `plugins/freeflow/evals/`; generated run output is ignored. Concise release evidence is summarized in [plugins/freeflow/docs/release-evidence.md](plugins/freeflow/docs/release-evidence.md).
267
+ ## Public Docs
268
+
269
+ - [Docs index](https://github.com/hassan-mohiddin/freeflow/blob/main/plugin-docs/README.md)
270
+ - [Workflow](https://github.com/hassan-mohiddin/freeflow/blob/main/plugin-docs/workflow.md)
271
+ - [Skill routing](https://github.com/hassan-mohiddin/freeflow/blob/main/plugin-docs/skill-routing.md)
272
+ - [Architecture](https://github.com/hassan-mohiddin/freeflow/blob/main/plugin-docs/architecture.md)
273
+ - [Output Router](https://github.com/hassan-mohiddin/freeflow/blob/main/plugin-docs/output-router.md)
274
+ - [Release evidence](https://github.com/hassan-mohiddin/freeflow/blob/main/plugin-docs/release-evidence.md)
275
+ - [Release ADRs](https://github.com/hassan-mohiddin/freeflow/blob/main/plugin-docs/adr/README.md)
206
276
 
207
277
  ## What Freeflow Is Not
208
278
 
209
279
  - Not a new agent.
210
- - Not a CLI framework.
211
- - Not an enforcement hook system.
280
+ - Not a mandatory phase pipeline.
281
+ - Not a CLI enforcement framework.
282
+ - Not a replacement for repository instructions, tests, policies, or review culture.
212
283
  - Not old Orchestra with a smaller README.
213
- - Not a replacement for Matt's skills or Superpowers.
214
-
215
- The shipped hooks are context-loading only. They do not enforce policy, block tools, or replace repo instructions.
216
-
217
- Freeflow is the lightweight workflow layer between point skills and full process systems.
284
+ - Not proof that the current candidate is behaviorally ready.
218
285
 
219
286
  ## License
220
287
 
Binary file
Binary file
Binary file
Binary file
@@ -0,0 +1,129 @@
1
+ {
2
+ "nativeSlashHandlers": false,
3
+ "modeCommands": [
4
+ {
5
+ "command": "/freeflow mode conversation",
6
+ "routesTo": "mode-contract"
7
+ },
8
+ {
9
+ "command": "/freeflow mode workflow",
10
+ "routesTo": "mode-contract"
11
+ },
12
+ {
13
+ "command": "/freeflow mode strict-workflow",
14
+ "routesTo": "mode-contract"
15
+ },
16
+ {
17
+ "command": "/freeflow mode reset",
18
+ "routesTo": "mode-contract"
19
+ }
20
+ ],
21
+ "directSkillCalls": [
22
+ {
23
+ "command": "/discuss",
24
+ "skill": "discuss"
25
+ },
26
+ {
27
+ "command": "/discover",
28
+ "skill": "discuss",
29
+ "aliasFor": "/discuss",
30
+ "piOnly": true
31
+ },
32
+ {
33
+ "command": "/track-work",
34
+ "skill": "track-work"
35
+ },
36
+ {
37
+ "command": "/write-spec",
38
+ "skill": "write-spec"
39
+ },
40
+ {
41
+ "command": "/review-artifact",
42
+ "skill": "review-artifact"
43
+ },
44
+ {
45
+ "command": "/write-plan",
46
+ "skill": "write-plan"
47
+ },
48
+ {
49
+ "command": "/execute-work",
50
+ "skill": "execute-work"
51
+ },
52
+ {
53
+ "command": "/execute-plan",
54
+ "skill": "execute-work",
55
+ "aliasFor": "/execute-work",
56
+ "piOnly": true
57
+ },
58
+ {
59
+ "command": "/simplify-code",
60
+ "skill": "simplify-code"
61
+ },
62
+ {
63
+ "command": "/migration-work",
64
+ "skill": "migration-work"
65
+ },
66
+ {
67
+ "command": "/diagnose-failure",
68
+ "skill": "diagnose-failure"
69
+ },
70
+ {
71
+ "command": "/verify-work",
72
+ "skill": "verify-work"
73
+ },
74
+ {
75
+ "command": "/review-work",
76
+ "skill": "review-work"
77
+ },
78
+ {
79
+ "command": "/commit-work",
80
+ "skill": "commit-work"
81
+ },
82
+ {
83
+ "command": "/handoff",
84
+ "skill": "handoff"
85
+ },
86
+ {
87
+ "command": "/finish-branch",
88
+ "skill": "finish-branch"
89
+ },
90
+ {
91
+ "command": "/release-work",
92
+ "skill": "release-work"
93
+ },
94
+ {
95
+ "command": "/launch-work",
96
+ "skill": "launch-work"
97
+ },
98
+ {
99
+ "command": "/bypass",
100
+ "skill": "bypass"
101
+ }
102
+ ],
103
+ "piNativeCommands": [
104
+ {
105
+ "command": "/freeflow",
106
+ "handler": "freeflow",
107
+ "kind": "settings"
108
+ },
109
+ {
110
+ "command": "/output-router",
111
+ "handler": "output-router",
112
+ "kind": "settings"
113
+ }
114
+ ],
115
+ "developerSkillCalls": [
116
+ {
117
+ "command": "/setup-freeflow",
118
+ "skill": "setup-freeflow"
119
+ },
120
+ {
121
+ "command": "/write-skill",
122
+ "skill": "write-skill"
123
+ },
124
+ {
125
+ "command": "/evaluate-skill",
126
+ "skill": "evaluate-skill"
127
+ }
128
+ ]
129
+ }