@hassangameryt/freeflow 0.8.0 → 0.9.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.agents/plugins/marketplace.json +2 -2
- package/.claude-plugin/marketplace.json +1 -1
- package/.claude-plugin/plugin.json +2 -2
- package/.codex-plugin/plugin.json +3 -3
- package/.cursor-plugin/plugin.json +1 -1
- package/README.md +96 -149
- package/capabilities/cognitive-routing/SKILL.md +21 -129
- package/capabilities/cognitive-routing/references/coordinator.md +163 -0
- package/capabilities/cognitive-routing/references/worker.md +38 -0
- package/capabilities/compaction/SKILL.md +3 -3
- package/capabilities/compaction/references/summary-format.md +26 -15
- package/capabilities/messaging/SKILL.md +49 -0
- package/capabilities/task-memory/SKILL.md +87 -0
- package/command-surface.json +6 -54
- package/gemini-extension.json +1 -1
- package/hooks/claude/hooks.json +13 -3
- package/hooks/codex/hooks.json +2 -1
- package/hooks/shared/runtime-context.mjs +69 -77
- package/package.json +25 -8
- package/pi-extension/dist/ask-user/ask.js +108 -0
- package/pi-extension/dist/ask-user/form.js +250 -0
- package/pi-extension/dist/ask-user/questions.js +66 -0
- package/pi-extension/dist/ask-user/tool.js +124 -0
- package/pi-extension/dist/cognitive-routing/assembler.js +35 -11
- package/pi-extension/dist/cognitive-routing/bootstrap.js +90 -0
- package/pi-extension/dist/cognitive-routing/config.js +3 -4
- package/pi-extension/dist/cognitive-routing/event-store.js +4 -1
- package/pi-extension/dist/cognitive-routing/gate.js +20 -5
- package/pi-extension/dist/cognitive-routing/handlers.js +15 -13
- package/pi-extension/dist/cognitive-routing/model-control.js +17 -8
- package/pi-extension/dist/cognitive-routing/projection.js +23 -6
- package/pi-extension/dist/cognitive-routing/provenance.js +3 -1
- package/pi-extension/dist/cognitive-routing/render.js +15 -15
- package/pi-extension/dist/cognitive-routing/runtime.js +4 -2
- package/pi-extension/dist/cognitive-routing/schemas.js +4 -4
- package/pi-extension/dist/cognitive-routing/session.js +3 -1
- package/pi-extension/dist/cognitive-routing/sources.js +29 -4
- package/pi-extension/dist/cognitive-routing/state.js +18 -8
- package/pi-extension/dist/cognitive-routing/status.js +4 -3
- package/pi-extension/dist/cognitive-routing/tools.js +29 -15
- package/pi-extension/dist/cognitive-routing/types.js +10 -1
- package/pi-extension/dist/compaction/carry.js +36 -22
- package/pi-extension/dist/compaction/config.js +4 -2
- package/pi-extension/dist/compaction/controller.js +52 -29
- package/pi-extension/dist/compaction/harness.js +19 -3
- package/pi-extension/dist/compaction/results.js +14 -13
- package/pi-extension/dist/compaction/tool.js +6 -6
- package/pi-extension/dist/host/catalog.js +20 -35
- package/pi-extension/dist/host/config-validation.js +233 -0
- package/pi-extension/dist/host/config.js +78 -91
- package/pi-extension/dist/host/inbound.js +142 -0
- package/pi-extension/dist/host/projection-tags.js +1 -1
- package/pi-extension/dist/host/prompts.js +24 -13
- package/pi-extension/dist/host/read-only-session.js +6 -1
- package/pi-extension/dist/host/request-history.js +7 -3
- package/pi-extension/dist/host/rows.js +25 -0
- package/pi-extension/dist/host/runtime-state.js +17 -2
- package/pi-extension/dist/host/section-keeper.js +85 -0
- package/pi-extension/dist/host/settings/freeflow-command.js +846 -93
- package/pi-extension/dist/host/settings/settings-view.js +27 -8
- package/pi-extension/dist/host/status.js +19 -5
- package/pi-extension/dist/index.js +638 -72
- package/pi-extension/dist/messaging/config.js +27 -0
- package/pi-extension/dist/messaging/messaging.js +398 -0
- package/pi-extension/dist/messaging/registry.js +57 -0
- package/pi-extension/dist/messaging/render.js +90 -0
- package/pi-extension/dist/messaging/tools.js +109 -0
- package/pi-extension/dist/messaging/transport.js +101 -0
- package/pi-extension/dist/provider-support/cache/keepalive.js +16 -4
- package/pi-extension/dist/task-memory/config.js +49 -0
- package/pi-extension/dist/task-memory/registry.js +119 -0
- package/pi-extension/dist/task-memory/render.js +107 -0
- package/pi-extension/dist/task-memory/runtime.js +994 -0
- package/pi-extension/dist/task-memory/tool.js +233 -0
- package/pi-extension/dist/tool-execution/apply-patch/tool.js +1 -1
- package/pi-extension/dist/tool-execution/background.js +220 -28
- package/pi-extension/dist/tool-execution/config.js +14 -3
- package/pi-extension/dist/tool-execution/file-tracking.js +24 -4
- package/pi-extension/dist/tool-execution/guidance-notices.js +124 -0
- package/pi-extension/dist/tool-execution/skill-reads.js +143 -0
- package/pi-extension/dist/tool-execution/tools.js +2 -2
- package/runtime/prompts/cognitive-routing.md +4 -4
- package/runtime/prompts/core.md +24 -14
- package/runtime/prompts/interaction-contract.md +7 -4
- package/runtime/prompts/tool-execution.md +3 -16
- package/runtime/prompts/working-method.md +16 -99
- package/skills/deliver-work/SKILL.md +76 -0
- package/skills/deliver-work/references/branch-closeout.md +134 -0
- package/skills/deliver-work/references/commit.md +83 -0
- package/skills/deliver-work/references/launch.md +94 -0
- package/skills/deliver-work/references/release.md +85 -0
- package/skills/deliver-work/scripts/commit-state.mjs +139 -0
- package/skills/deliver-work/scripts/delivery-state.mjs +107 -0
- package/skills/deliver-work/scripts/lib/git-state.mjs +178 -0
- package/skills/deliver-work/scripts/push-route.mjs +122 -0
- package/skills/deliver-work/scripts/release-preflight.mjs +177 -0
- package/skills/discuss-work/SKILL.md +148 -0
- package/skills/{discuss → discuss-work}/references/discussion-continuity.md +10 -27
- package/skills/discuss-work/references/learning-action.md +36 -0
- package/skills/discuss-work/scripts/choices.mjs +101 -0
- package/skills/discuss-work/scripts/lib/choices.mjs +159 -0
- package/skills/evaluate-behavior/SKILL.md +107 -0
- package/skills/evaluate-behavior/references/authoring.md +381 -0
- package/skills/evaluate-behavior/references/coding-tasks.md +145 -0
- package/skills/evaluate-behavior/references/conversations-pipelines-judges.md +177 -0
- package/skills/evaluate-behavior/references/design-and-measurement.md +273 -0
- package/skills/evaluate-behavior/references/running-and-evidence.md +245 -0
- package/skills/evaluate-behavior/scripts/claude-guard.mjs +76 -0
- package/skills/evaluate-behavior/scripts/guard-rules.mjs +309 -0
- package/skills/evaluate-behavior/scripts/lib/agreement.mjs +90 -0
- package/skills/evaluate-behavior/scripts/lib/arms.mjs +55 -0
- package/skills/evaluate-behavior/scripts/lib/budget.mjs +87 -0
- package/skills/evaluate-behavior/scripts/lib/build-source.mjs +287 -0
- package/skills/evaluate-behavior/scripts/lib/clear.mjs +74 -0
- package/skills/evaluate-behavior/scripts/lib/container.mjs +395 -0
- package/skills/evaluate-behavior/scripts/lib/decision.mjs +418 -0
- package/skills/evaluate-behavior/scripts/lib/definitions.mjs +1072 -0
- package/skills/evaluate-behavior/scripts/lib/freeflow.mjs +103 -0
- package/skills/evaluate-behavior/scripts/lib/grade-command.mjs +591 -0
- package/skills/evaluate-behavior/scripts/lib/grade-comparison.mjs +90 -0
- package/skills/{evaluate-skill → evaluate-behavior}/scripts/lib/grade-interaction.mjs +19 -18
- package/skills/{evaluate-skill → evaluate-behavior}/scripts/lib/grade-support.mjs +32 -5
- package/skills/{evaluate-skill → evaluate-behavior}/scripts/lib/grade-workspace.mjs +28 -12
- package/skills/evaluate-behavior/scripts/lib/grade.mjs +101 -0
- package/skills/evaluate-behavior/scripts/lib/hooks.mjs +98 -0
- package/skills/evaluate-behavior/scripts/lib/hosts/claude-code/confinement.mjs +196 -0
- package/skills/evaluate-behavior/scripts/lib/hosts/claude-code/constraints.mjs +111 -0
- package/skills/evaluate-behavior/scripts/lib/hosts/claude-code/index.mjs +48 -0
- package/skills/evaluate-behavior/scripts/lib/hosts/claude-code/isolation.mjs +74 -0
- package/skills/evaluate-behavior/scripts/lib/hosts/claude-code/launch.mjs +123 -0
- package/skills/evaluate-behavior/scripts/lib/hosts/claude-code/model-call.mjs +73 -0
- package/skills/evaluate-behavior/scripts/lib/hosts/claude-code/recorder.mjs +178 -0
- package/skills/evaluate-behavior/scripts/lib/hosts/claude-code/session.mjs +494 -0
- package/skills/evaluate-behavior/scripts/lib/hosts/claude-code/skills.mjs +81 -0
- package/skills/evaluate-behavior/scripts/lib/hosts/index.mjs +31 -0
- package/skills/evaluate-behavior/scripts/lib/hosts/names.mjs +3 -0
- package/skills/evaluate-behavior/scripts/lib/hosts/pi/confinement.mjs +173 -0
- package/skills/evaluate-behavior/scripts/lib/hosts/pi/host.mjs +148 -0
- package/skills/evaluate-behavior/scripts/lib/hosts/pi/index.mjs +70 -0
- package/skills/evaluate-behavior/scripts/lib/hosts/pi/isolation.mjs +81 -0
- package/skills/evaluate-behavior/scripts/lib/hosts/pi/model-call.mjs +79 -0
- package/skills/evaluate-behavior/scripts/lib/hosts/pi/process.mjs +241 -0
- package/skills/{evaluate-skill/scripts/lib → evaluate-behavior/scripts/lib/hosts/pi}/rpc.mjs +144 -26
- package/skills/evaluate-behavior/scripts/lib/identity.mjs +82 -0
- package/skills/evaluate-behavior/scripts/lib/judge.mjs +688 -0
- package/skills/evaluate-behavior/scripts/lib/metrics.mjs +332 -0
- package/skills/evaluate-behavior/scripts/lib/model-call.mjs +17 -0
- package/skills/evaluate-behavior/scripts/lib/participants.mjs +616 -0
- package/skills/{evaluate-skill → evaluate-behavior}/scripts/lib/process.mjs +22 -0
- package/skills/evaluate-behavior/scripts/lib/queue.mjs +54 -0
- package/skills/evaluate-behavior/scripts/lib/reference.mjs +343 -0
- package/skills/evaluate-behavior/scripts/lib/reuse.mjs +277 -0
- package/skills/evaluate-behavior/scripts/lib/review.mjs +933 -0
- package/skills/evaluate-behavior/scripts/lib/runner.mjs +732 -0
- package/skills/{evaluate-skill → evaluate-behavior}/scripts/lib/sandbox.mjs +119 -14
- package/skills/evaluate-behavior/scripts/lib/scan-shell.mjs +457 -0
- package/skills/evaluate-behavior/scripts/lib/scan.mjs +479 -0
- package/skills/evaluate-behavior/scripts/lib/seal.mjs +91 -0
- package/skills/evaluate-behavior/scripts/lib/shell.mjs +560 -0
- package/skills/evaluate-behavior/scripts/lib/source-override.mjs +64 -0
- package/skills/evaluate-behavior/scripts/lib/subject-file.mjs +88 -0
- package/skills/{evaluate-skill/scripts/lib/pi.mjs → evaluate-behavior/scripts/lib/subject.mjs} +235 -265
- package/skills/evaluate-behavior/scripts/lib/task-copy.mjs +124 -0
- package/skills/evaluate-behavior/scripts/lib/trials.mjs +524 -0
- package/skills/evaluate-behavior/scripts/lib/validity.mjs +68 -0
- package/skills/evaluate-behavior/scripts/lib/view-html.mjs +454 -0
- package/skills/{evaluate-skill → evaluate-behavior}/scripts/lib/view.mjs +159 -18
- package/skills/{evaluate-skill → evaluate-behavior}/scripts/pi-command-tool.mjs +21 -6
- package/skills/evaluate-behavior/scripts/pi-container-route.mjs +23 -0
- package/skills/evaluate-behavior/scripts/pi-guard.mjs +77 -0
- package/skills/evaluate-behavior/scripts/pi-login-refresh.mjs +31 -0
- package/skills/evaluate-behavior/scripts/skill-eval.mjs +586 -0
- package/skills/execute-work/SKILL.md +96 -104
- package/skills/execute-work/references/code-practices.md +27 -51
- package/skills/execute-work/references/design.md +271 -0
- package/skills/execute-work/references/diagnose.md +117 -0
- package/skills/execute-work/references/migration.md +108 -0
- package/skills/execute-work/references/simplify.md +65 -0
- package/skills/execute-work/scripts/self-review.mjs +422 -0
- package/skills/execute-work/scripts/touch-map.mjs +290 -0
- package/skills/review-work/SKILL.md +89 -65
- package/skills/review-work/references/adjudication.md +94 -0
- package/skills/review-work/references/artifact.md +198 -0
- package/skills/review-work/references/evals-and-judges.md +66 -0
- package/skills/review-work/references/work.md +177 -0
- package/skills/review-work/scripts/check-brief.mjs +128 -0
- package/skills/review-work/scripts/review-packet.mjs +233 -0
- package/skills/setup-freeflow/SKILL.md +68 -17
- package/skills/track-work/SKILL.md +52 -20
- package/skills/track-work/references/handoff.md +190 -0
- package/skills/track-work/references/projects.md +51 -0
- package/skills/track-work/references/working-record-format.md +36 -18
- package/skills/track-work/scripts/lib/document.mjs +17 -13
- package/skills/track-work/scripts/lib/format.mjs +2 -0
- package/skills/track-work/scripts/lib/recover.mjs +254 -0
- package/skills/track-work/scripts/lib/registry.mjs +656 -0
- package/skills/track-work/scripts/lib/search.mjs +40 -0
- package/skills/track-work/scripts/lib/store.mjs +46 -15
- package/skills/track-work/scripts/lib/views.mjs +50 -1
- package/skills/track-work/scripts/working-record.mjs +232 -13
- package/skills/verify-work/SKILL.md +45 -37
- package/skills/verify-work/references/feature-map.md +120 -0
- package/skills/verify-work/references/runtime-evidence.md +203 -0
- package/skills/verify-work/references/test-design.md +25 -6
- package/skills/verify-work/scripts/test-changes.mjs +246 -0
- package/skills/write-docs/SKILL.md +113 -25
- package/skills/write-docs/references/documentation-shapes.md +68 -3
- package/skills/write-docs/references/spec-and-plan-shapes.md +308 -0
- package/skills/write-docs/scripts/artifact-check.mjs +148 -0
- package/skills/write-docs/scripts/docs-check.mjs +96 -6
- package/skills/write-docs/scripts/plan-lint.mjs +123 -0
- package/skills/write-skill/SKILL.md +92 -52
- package/skills/write-skill/references/activation-and-wording.md +143 -0
- package/skills/write-skill/references/placement-and-dependencies.md +154 -0
- package/skills/write-skill/scripts/lib/compare.mjs +701 -0
- package/skills/write-skill/scripts/lib/skill-author.mjs +197 -3
- package/skills/write-skill/scripts/skill-author.mjs +51 -8
- package/capabilities/cognitive-routing/references/both-mode.md +0 -36
- package/capabilities/cognitive-routing/references/executor-mode.md +0 -48
- package/capabilities/cognitive-routing/references/helper-mode.md +0 -47
- package/plugin.json +0 -33
- package/skills/action-selection/SKILL.md +0 -92
- package/skills/action-selection/references/trajectory-stalls.md +0 -73
- package/skills/bypass/SKILL.md +0 -153
- package/skills/commit-work/SKILL.md +0 -93
- package/skills/commit-work/references/git-state-edges.md +0 -94
- package/skills/commit-work/references/simple-push.md +0 -94
- package/skills/commit-work/references/staging-decisions.md +0 -106
- package/skills/decision-gate/SKILL.md +0 -87
- package/skills/design-for-depth/SKILL.md +0 -108
- package/skills/design-for-depth/references/design-pressure-signals.md +0 -84
- package/skills/design-for-depth/references/implementation-decisions.md +0 -76
- package/skills/design-for-depth/references/interface-design-loop.md +0 -105
- package/skills/design-for-depth/references/module-and-dependency-design.md +0 -117
- package/skills/design-for-depth/references/state-and-failure-boundaries.md +0 -125
- package/skills/diagnose-failure/SKILL.md +0 -140
- package/skills/diagnose-failure/references/diagnostic-loop-catalog.md +0 -50
- package/skills/diagnose-failure/references/flaky-and-performance-diagnosis.md +0 -51
- package/skills/discuss/SKILL.md +0 -140
- package/skills/evaluate-skill/SKILL.md +0 -188
- package/skills/evaluate-skill/references/evaluation-definition-schema.md +0 -415
- package/skills/evaluate-skill/references/evaluation-design.md +0 -112
- package/skills/evaluate-skill/references/execution-and-evidence.md +0 -111
- package/skills/evaluate-skill/references/review-and-revision.md +0 -94
- package/skills/evaluate-skill/scripts/lib/definitions.mjs +0 -448
- package/skills/evaluate-skill/scripts/lib/grade-comparison.mjs +0 -60
- package/skills/evaluate-skill/scripts/lib/grade.mjs +0 -64
- package/skills/evaluate-skill/scripts/lib/review.mjs +0 -196
- package/skills/evaluate-skill/scripts/lib/runner.mjs +0 -405
- package/skills/evaluate-skill/scripts/lib/trials.mjs +0 -103
- package/skills/evaluate-skill/scripts/pi-guard.mjs +0 -181
- package/skills/evaluate-skill/scripts/skill-eval.mjs +0 -182
- package/skills/execute-work/references/execute-work-edges.md +0 -78
- package/skills/finish-branch/SKILL.md +0 -117
- package/skills/finish-branch/references/integration-options.md +0 -80
- package/skills/handoff/SKILL.md +0 -82
- package/skills/handoff/references/handoff-templates.md +0 -150
- package/skills/launch-work/SKILL.md +0 -116
- package/skills/launch-work/references/launch-readiness.md +0 -85
- package/skills/migration-work/SKILL.md +0 -115
- package/skills/migration-work/references/migration-lifecycle.md +0 -82
- package/skills/release-work/SKILL.md +0 -118
- package/skills/release-work/references/release-evidence.md +0 -78
- package/skills/review-artifact/SKILL.md +0 -143
- package/skills/review-artifact/references/adjudicate-artifact-review.md +0 -101
- package/skills/review-artifact/references/independent-artifact-reviewer-contract.md +0 -159
- package/skills/review-work/references/adjudicate-work-review.md +0 -97
- package/skills/review-work/references/independent-work-reviewer-contract.md +0 -139
- package/skills/review-work/references/security-risk-lens.md +0 -67
- package/skills/setup-freeflow/references/activation-contract.md +0 -103
- package/skills/setup-freeflow/references/host-setup.md +0 -67
- package/skills/simplify-code/SKILL.md +0 -85
- package/skills/simplify-code/references/simplification-patterns.md +0 -70
- package/skills/verify-work/references/browser-runtime-evidence.md +0 -51
- package/skills/verify-work/references/integration-evidence.md +0 -49
- package/skills/verify-work/references/performance-evidence.md +0 -59
- package/skills/workflow/SKILL.md +0 -171
- package/skills/workflow/references/domain-skill-composition.md +0 -45
- package/skills/write-plan/SKILL.md +0 -92
- package/skills/write-plan/references/plan-shapes.md +0 -156
- package/skills/write-skill/references/activation-boundaries.md +0 -106
- package/skills/write-skill/references/agent-first-instructions.md +0 -133
- package/skills/write-skill/references/progressive-disclosure.md +0 -129
- package/skills/write-skill/references/skill-dependency-graphs.md +0 -192
- package/skills/write-spec/SKILL.md +0 -85
- package/skills/write-spec/references/artifact-standards.md +0 -86
- package/skills/write-spec/references/decision-records.md +0 -80
- package/skills/write-spec/references/spec-shapes.md +0 -143
- /package/skills/{evaluate-skill → evaluate-behavior}/scripts/lib/evidence.mjs +0 -0
- /package/skills/{evaluate-skill → evaluate-behavior}/scripts/pi-observer.mjs +0 -0
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "freeflow",
|
|
3
|
-
"description": "Freeflow gives coding agents an Interaction Contract,
|
|
4
|
-
"version": "0.
|
|
3
|
+
"description": "Freeflow gives coding agents an Interaction Contract, one cycle (agree, build and verify, review and hand over), ten skills with scripts, and durable task memory.",
|
|
4
|
+
"version": "0.9.0",
|
|
5
5
|
"author": {
|
|
6
6
|
"name": "Hassan Mohiddin"
|
|
7
7
|
},
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "freeflow",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.9.0",
|
|
4
4
|
"description": "Feedback-based control system for coding agents.",
|
|
5
5
|
"author": {
|
|
6
6
|
"name": "Hassan Mohiddin"
|
|
@@ -25,12 +25,12 @@
|
|
|
25
25
|
"interface": {
|
|
26
26
|
"displayName": "Freeflow",
|
|
27
27
|
"shortDescription": "Feedback-based control for coding agents.",
|
|
28
|
-
"longDescription": "Freeflow gives coding agents an Interaction Contract,
|
|
28
|
+
"longDescription": "Freeflow gives coding agents an Interaction Contract, one cycle (agree, build and verify, review and hand over), ten skills with scripts, and durable task memory.",
|
|
29
29
|
"developerName": "Hassan Mohiddin",
|
|
30
30
|
"category": "Coding",
|
|
31
31
|
"capabilities": ["Interactive", "Read", "Write"],
|
|
32
32
|
"defaultPrompt": [
|
|
33
|
-
"Use Freeflow
|
|
33
|
+
"Use Freeflow for this task: agree before building, verify, then review and hand over.",
|
|
34
34
|
"Respect the Interaction Contract and ask before going beyond the requested scope."
|
|
35
35
|
],
|
|
36
36
|
"websiteURL": "https://github.com/hassan-mohiddin/freeflow",
|
package/README.md
CHANGED
|
@@ -2,115 +2,110 @@
|
|
|
2
2
|
|
|
3
3
|
**A feedback-based control system for coding agents.**
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
Freeflow gives the coding agent you already use (Codex, Claude Code, Pi and others) what it needs at the moment it decides. On every host its prompts and skills work as a portable layer; on Pi a native extension adds the runtime parts.
|
|
6
6
|
|
|
7
|
-
|
|
7
|
+
- **A short method, always loaded.** One cycle: agree before building, build and verify, review and hand over. Each step checks what actually happened (a script's output, a test, your answer) before the next one, rather than trusting the plan.
|
|
8
|
+
- **Ten capability skills** that bring scripts and structured artifacts, not just advice: a script that maps what a change touches, a self-review report, a decision list for your choices, a Working Record that survives context loss.
|
|
9
|
+
- **On Pi, a runtime** that pushes the right lines of a skill at the tool call that needs them, and adds compaction, tool handling, task memory and multi-model routing.
|
|
8
10
|
|
|
9
|
-
The
|
|
11
|
+
The agent keeps its own tools, permissions and execution. Freeflow does not grant permission, enforce a pipeline, or replace your repository's instructions, tests or review.
|
|
10
12
|
|
|
11
|
-
- **New to Freeflow?** Read [Using Freeflow Effectively](https://github.com/hassan-mohiddin/freeflow/blob/main/plugin-docs/using-freeflow.md).
|
|
13
|
+
- **New to Freeflow?** Read [Using Freeflow Effectively](https://github.com/hassan-mohiddin/freeflow/blob/main/plugin-docs/using-freeflow.md) and [How Freeflow Works](https://github.com/hassan-mohiddin/freeflow/blob/main/plugin-docs/workflow.md).
|
|
12
14
|
- **Installing it?** Start with [Getting Started](https://github.com/hassan-mohiddin/freeflow/blob/main/plugin-docs/getting-started.md).
|
|
13
|
-
- **Using Cognitive Routing?** Read the detailed [Cognitive Routing reference](https://github.com/hassan-mohiddin/freeflow/blob/main/plugin-docs/capabilities/cognitive-routing.md).
|
|
14
|
-
- **Using Freeflow on Pi?** Read [Tool Execution](https://github.com/hassan-mohiddin/freeflow/blob/main/plugin-docs/capabilities/tool-execution.md) and [Compaction](https://github.com/hassan-mohiddin/freeflow/blob/main/plugin-docs/capabilities/compaction.md).
|
|
15
15
|
|
|
16
|
-
##
|
|
16
|
+
## Why
|
|
17
17
|
|
|
18
|
-
|
|
19
|
-
| --- | --- | --- |
|
|
20
|
-
| **Memory — Track Work** | Working Records that preserve current context, one Current Slice, decisions, evidence limits, future work, and the next useful action. | Available through the shared skill surface. |
|
|
21
|
-
| **Context — Context Control** | Planned source-aware residency, representation, and bounded recovery for admitted context. | Planned/in development; unavailable in this release. |
|
|
22
|
-
| **Compute — Cognitive Routing** | Coordinator, Helper, and Executor profiles in one agent/session, with mode-aware work placement and optional worker-evidence projection. | Experimental native-Pi capability; installed-host and model-behavior evidence remain separate. |
|
|
23
|
-
|
|
24
|
-
The former Freeflow Context (`freeflow_context`, `/freeflow context`), Context Virtualization, and Conversation History surfaces are removed as a breaking change. Context Control v2 is planned but unavailable in this release; it does not replace those operations yet. See the Unreleased changelog for the required config-key cleanup.
|
|
25
|
-
|
|
26
|
-
## Selected OpenAI model cache-aware reuse
|
|
18
|
+
Agents often act without opening the skill that describes the step they are taking. In Freeflow's own runs, the old Workflow and Action Selection skills were rarely opened, so their guidance rarely reached the work. Version 0.9.0 is built around that finding. The few rules that must always hold live in a short always-loaded prompt; each skill's description says when it applies; and the skills hand the agent facts and checks (script output, a list of choices, a review brief) instead of more prose to remember.
|
|
27
19
|
|
|
28
|
-
|
|
20
|
+
| What goes wrong | What Freeflow does |
|
|
21
|
+
| --- | --- |
|
|
22
|
+
| A question or tentative idea becomes an edit. | The Interaction Contract tells discussion apart from a request to act. |
|
|
23
|
+
| A request leaves choices open that the agent settles silently. | Before building, the agent sends what it will do, where it stops, and your decisions with its defaults, then waits; the hand-over shows any choice you have not seen. |
|
|
24
|
+
| A change misses a caller, a test or a doc. | Execute Work's `touch-map.mjs` lists what a change touches, and `self-review.mjs` reports every changed test and whether each requirement's check ran after the last edit. |
|
|
25
|
+
| A passing command becomes an unsupported completion claim. | Verify Work ties the claim to what the check actually observed. |
|
|
26
|
+
| Context loss erases decisions and partial work. | Track Work recovers the Working Record in one call and reconciles it with live state. |
|
|
27
|
+
| Risky changes ship without a second look. | Review Work's gate calls for an independent review when the change touches security, data, release files or a public interface. |
|
|
28
|
+
| Commits, pushes and releases happen without a clear yes. | Deliver Work handles each one within its own approval, and its scripts check state before acting. |
|
|
29
29
|
|
|
30
|
-
|
|
31
|
-
- changed runtime state is appended instead of rewriting earlier generated context;
|
|
32
|
-
- supported OpenAI Responses and OpenAI-Codex Responses routes can retain a request-level effort baseline and insert trusted effort changes at validated historical positions;
|
|
33
|
-
- unsupported or uncertain requests fall back to the untouched native request.
|
|
30
|
+
## How it works
|
|
34
31
|
|
|
35
|
-
|
|
32
|
+
```text
|
|
33
|
+
1. Agree before the first edit on a task that builds or changes behavior:
|
|
34
|
+
what I'll do, where I stop, your decisions with defaults; wait
|
|
35
|
+
2. Build and verify within the agreement; check on the path you will use
|
|
36
|
+
3. Review, hand over self-review; independent review when the gate calls for it;
|
|
37
|
+
report what done looks like against what was done
|
|
38
|
+
When evidence changes the picture, go back only to the step it affects.
|
|
39
|
+
```
|
|
36
40
|
|
|
37
|
-
|
|
41
|
+
A question gets an answer, an exact one-line edit gets made, and a large change gets the whole cycle. Only your request or a still-valid approval authorizes work; commit, push and release each need their own yes.
|
|
38
42
|
|
|
39
|
-
|
|
43
|
+
## Skills
|
|
40
44
|
|
|
41
|
-
|
|
|
45
|
+
| Skill | Use it when |
|
|
42
46
|
| --- | --- |
|
|
43
|
-
|
|
|
44
|
-
|
|
|
45
|
-
|
|
|
46
|
-
|
|
|
47
|
-
|
|
|
48
|
-
|
|
|
49
|
-
|
|
|
50
|
-
|
|
|
51
|
-
|
|
|
52
|
-
|
|
|
47
|
+
| Discuss Work | What to do or how is still open; agreeing before building; a choice mid-work; skipping an optional step |
|
|
48
|
+
| Execute Work | Implementing, fixing, refactoring, designing, finding why something fails, migrating |
|
|
49
|
+
| Verify Work | Checking whether work or a claim holds; setting up or rechecking saved live checks of your software |
|
|
50
|
+
| Review Work | Judging whether work or a document is fit to use, yours or another's |
|
|
51
|
+
| Deliver Work | Commit, push, merge or pull request, branch cleanup, release, deploy |
|
|
52
|
+
| Track Work | Task memory beyond the conversation: the Working Record, recovery, handoffs |
|
|
53
|
+
| Write Docs | Specs, plans, decision records, user and developer docs |
|
|
54
|
+
| Setup Freeflow | Activating Freeflow in a repository and checking delivery |
|
|
55
|
+
| Write Skill | Writing or revising a skill or other text an agent acts on |
|
|
56
|
+
| Evaluate Behavior | Testing or comparing how an agent behaves with a setup change |
|
|
57
|
+
|
|
58
|
+
Version 0.9.0 replaced twenty-five skills with these ten; removed names have no aliases. [What changed in 0.9.0](https://github.com/hassan-mohiddin/freeflow/blob/main/plugin-docs/workflow.md#what-changed-in-090) says where each one went.
|
|
53
59
|
|
|
54
|
-
##
|
|
60
|
+
## Commands
|
|
55
61
|
|
|
56
|
-
|
|
62
|
+
Natural language works: the agent opens the skill whose description matches. A direct call helps when it makes the intended method clear. A skill is a method, not a permission.
|
|
63
|
+
|
|
64
|
+
Skill commands on Pi (Claude Code uses `/freeflow:<skill>`, Codex a skill mention):
|
|
57
65
|
|
|
58
66
|
```text
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
└─ continue, correct, diagnose, ask, defer, or stop
|
|
67
|
+
/discuss-work
|
|
68
|
+
/execute-work
|
|
69
|
+
/verify-work
|
|
70
|
+
/review-work
|
|
71
|
+
/deliver-work
|
|
72
|
+
/track-work
|
|
73
|
+
/write-docs
|
|
67
74
|
```
|
|
68
75
|
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
On a qualified native Pi host, automatic Cognitive Routing sits inside the current Workflow owner:
|
|
76
|
+
Contributor calls:
|
|
72
77
|
|
|
73
78
|
```text
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
-> assigned worker returns actual work and evidence
|
|
78
|
-
-> Coordinator assesses, continues, corrects, or closes
|
|
79
|
+
/setup-freeflow
|
|
80
|
+
/write-skill
|
|
81
|
+
/evaluate-behavior
|
|
79
82
|
```
|
|
80
83
|
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
## Cognitive Routing modes
|
|
84
|
-
|
|
85
|
-
The labels describe intended optimization direction and potential, not guarantees.
|
|
86
|
-
|
|
87
|
-
| Mode | Positioning | Behavior |
|
|
88
|
-
| --- | --- | --- |
|
|
89
|
-
| **Helper only** | Quality-first — maximum performance and output-quality potential | Coordinator implements; Helper gathers context, prepares, checks, maintains task memory, and performs settled support. |
|
|
90
|
-
| **Executor only** | Savings-first — maximum savings potential | Coordinator directs and assesses; Executor owns delegated environment work. |
|
|
91
|
-
| **Both** | Balanced | Helper handles frequent routine support; Executor is commissioned for substantive or consequential work. |
|
|
92
|
-
|
|
93
|
-
A comparatively economical but capable Helper can contribute much of Both mode's potential savings because many routine assignments go through it. The detailed guide includes [recommended OpenAI subscription starting presets](https://github.com/hassan-mohiddin/freeflow/blob/main/plugin-docs/using-freeflow.md#recommended-openai-subscription-starting-presets) and the limits on those recommendations.
|
|
94
|
-
|
|
95
|
-
## Availability
|
|
84
|
+
Native Pi controls:
|
|
96
85
|
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
86
|
+
```text
|
|
87
|
+
/freeflow
|
|
88
|
+
/freeflow status
|
|
89
|
+
/freeflow settings
|
|
90
|
+
/freeflow settings session
|
|
91
|
+
/freeflow settings local
|
|
92
|
+
/freeflow settings repo
|
|
93
|
+
/freeflow profile coordinator
|
|
94
|
+
/freeflow profile helper
|
|
95
|
+
/freeflow profile executor
|
|
96
|
+
/freeflow profile auto
|
|
97
|
+
/freeflow profile history
|
|
98
|
+
/freeflow resume
|
|
99
|
+
/freeflow compact
|
|
100
|
+
/freeflow task
|
|
101
|
+
/freeflow project
|
|
102
|
+
```
|
|
106
103
|
|
|
107
|
-
|
|
104
|
+
Profile changes and resume require an idle host. These commands do not prove installed-host delivery or authorize task work.
|
|
108
105
|
|
|
109
106
|
## Host support
|
|
110
107
|
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
| Host | Freeflow support | Cognitive Routing |
|
|
108
|
+
| Host | Freeflow support | Pi capabilities |
|
|
114
109
|
| --- | --- | --- |
|
|
115
110
|
| Codex | Shared skills and Codex `SessionStart` hook | Not available |
|
|
116
111
|
| Claude Code | Shared skills and Claude Code `SessionStart` hook | Not available |
|
|
@@ -120,9 +115,21 @@ Freeflow is one package with different host boundaries:
|
|
|
120
115
|
| Kiro | Agent Plugins 1.0 Power and shared skills | Not available; skills-only claim |
|
|
121
116
|
| OpenCode v2 | Canonical `skills/` through a documented project skill source | Not available; skills-only support |
|
|
122
117
|
| Hermes Agent | Agent Plugins 1.0 package and canonical skills | Not available; skills-only support |
|
|
123
|
-
| Pi | Shared skills and the native extension
|
|
118
|
+
| Pi | Shared skills and the native extension | Tool Execution and Compaction on by default; Task Memory, Messaging and Cognitive Routing opt-in |
|
|
119
|
+
|
|
120
|
+
Freeflow owns its prompts, skills, capability source, host adapters and the Pi extension. Each host owns launch, package installation, session state, trust and updates.
|
|
124
121
|
|
|
125
|
-
|
|
122
|
+
### Pi capabilities
|
|
123
|
+
|
|
124
|
+
| Capability | Status | What it does |
|
|
125
|
+
| --- | --- | --- |
|
|
126
|
+
| [Tool Execution](https://github.com/hassan-mohiddin/freeflow/blob/main/plugin-docs/capabilities/tool-execution.md) | Experimental; on by default | Working guidance, file tracking, clearer edit errors, `apply_patch`, background commands and monitors, and a skill's key lines at the tool call that needs them (`toolExecution.guidanceNotices`) |
|
|
127
|
+
| [Compaction](https://github.com/hassan-mohiddin/freeflow/blob/main/plugin-docs/capabilities/compaction.md) | Experimental; on by default | The agent compacts at a safe point from its own summary and Working Record; Pi's compaction stays the fallback |
|
|
128
|
+
| [Task Memory](https://github.com/hassan-mohiddin/freeflow/blob/main/plugin-docs/capabilities/task-memory.md) | Preview; off by default | Working Records attached to the session and delivered after context loss; projects and child tasks |
|
|
129
|
+
| [Messaging](https://github.com/hassan-mohiddin/freeflow/blob/main/plugin-docs/capabilities/messaging.md) | Preview; off by default | Messages between the agents in your Pi sessions on this machine |
|
|
130
|
+
| [Cognitive Routing](https://github.com/hassan-mohiddin/freeflow/blob/main/plugin-docs/capabilities/cognitive-routing.md) | Experimental; off by default | Coordinator, Helper and Executor profiles on different models in one session |
|
|
131
|
+
|
|
132
|
+
Native fixtures and live sessions exercise these capabilities; their effect on task results, cost and long real use is not yet measured. Freeflow's Pi extension also keeps request history cache-friendly and has a qualified effort-history route for `gpt-6-astra`, `gpt-6-luna` and `gpt-6-sol`; that is request-construction behavior, not proof of a provider cache hit or a billing reduction ([Pi cache reuse boundaries](https://github.com/hassan-mohiddin/freeflow/blob/main/plugin-docs/integrations/pi.md#cache-reuse-boundaries)).
|
|
126
133
|
|
|
127
134
|
## Quick start
|
|
128
135
|
|
|
@@ -193,11 +200,11 @@ Run:
|
|
|
193
200
|
/setup-freeflow
|
|
194
201
|
```
|
|
195
202
|
|
|
196
|
-
This creates the required shared `.freeflow/config.json` activation boundary. Minimal activation is `{}`. Optional `.freeflow/local.json` personal overrides cannot activate Freeflow alone.
|
|
203
|
+
This creates the required shared `.freeflow/config.json` activation boundary. Minimal activation is `{}`. Optional `.freeflow/local.json` personal overrides cannot activate Freeflow alone. Configuration or installation alone does not establish runtime delivery; setup reports delivery as confirmed, unavailable or unconfirmed.
|
|
197
204
|
|
|
198
205
|
## Use Freeflow effectively
|
|
199
206
|
|
|
200
|
-
A clear prompt
|
|
207
|
+
A clear prompt for consequential work names:
|
|
201
208
|
|
|
202
209
|
```text
|
|
203
210
|
Outcome: what should be true?
|
|
@@ -209,63 +216,7 @@ User-owned choices: what must come back to me?
|
|
|
209
216
|
Stop and return: where should the agent stop?
|
|
210
217
|
```
|
|
211
218
|
|
|
212
|
-
Natural language is preferred.
|
|
213
|
-
|
|
214
|
-
Read [Using Freeflow Effectively](https://github.com/hassan-mohiddin/freeflow/blob/main/plugin-docs/using-freeflow.md) for prompt examples, Workflow management, Track Work, settings, mode selection, preset recommendations, cache/cost boundaries, and troubleshooting.
|
|
215
|
-
|
|
216
|
-
## Commands
|
|
217
|
-
|
|
218
|
-
Canonical Pi direct calls include:
|
|
219
|
-
|
|
220
|
-
```text
|
|
221
|
-
/discuss
|
|
222
|
-
/action-selection
|
|
223
|
-
/track-work
|
|
224
|
-
/write-spec
|
|
225
|
-
/review-artifact
|
|
226
|
-
/write-plan
|
|
227
|
-
/write-docs
|
|
228
|
-
/execute-work
|
|
229
|
-
/simplify-code
|
|
230
|
-
/migration-work
|
|
231
|
-
/diagnose-failure
|
|
232
|
-
/verify-work
|
|
233
|
-
/review-work
|
|
234
|
-
/commit-work
|
|
235
|
-
/handoff
|
|
236
|
-
/finish-branch
|
|
237
|
-
/release-work
|
|
238
|
-
/launch-work
|
|
239
|
-
/bypass
|
|
240
|
-
```
|
|
241
|
-
|
|
242
|
-
Contributor calls:
|
|
243
|
-
|
|
244
|
-
```text
|
|
245
|
-
/setup-freeflow
|
|
246
|
-
/write-skill
|
|
247
|
-
/evaluate-skill
|
|
248
|
-
```
|
|
249
|
-
|
|
250
|
-
Native Pi controls:
|
|
251
|
-
|
|
252
|
-
```text
|
|
253
|
-
/freeflow
|
|
254
|
-
/freeflow status
|
|
255
|
-
/freeflow settings
|
|
256
|
-
/freeflow settings session
|
|
257
|
-
/freeflow settings local
|
|
258
|
-
/freeflow settings repo
|
|
259
|
-
/freeflow profile coordinator
|
|
260
|
-
/freeflow profile helper
|
|
261
|
-
/freeflow profile executor
|
|
262
|
-
/freeflow profile auto
|
|
263
|
-
/freeflow profile history
|
|
264
|
-
/freeflow resume
|
|
265
|
-
/freeflow compact
|
|
266
|
-
```
|
|
267
|
-
|
|
268
|
-
Profile changes and resume require an idle host. These commands do not prove installed-host delivery or authorize task work.
|
|
219
|
+
Natural language is preferred. Answer the agent's agreement with "go" to accept its defaults, or correct the line you disagree with. Read [Using Freeflow Effectively](https://github.com/hassan-mohiddin/freeflow/blob/main/plugin-docs/using-freeflow.md) for prompt examples, steering the agreement, Track Work, settings, Cognitive Routing modes and presets, cache and cost boundaries, and troubleshooting.
|
|
269
220
|
|
|
270
221
|
## Evidence and limits
|
|
271
222
|
|
|
@@ -278,21 +229,17 @@ Freeflow is explicit about what observations prove:
|
|
|
278
229
|
- local release preparation is not publication;
|
|
279
230
|
- publication is not production deployment.
|
|
280
231
|
|
|
281
|
-
Cognitive Routing remains experimental pending broader behavioral acceptance. Context Control v2 remains planned. The deprecated Output Router is removed and archived outside the active runtime.
|
|
282
|
-
|
|
283
232
|
## Documentation
|
|
284
233
|
|
|
285
234
|
- [Using Freeflow Effectively](https://github.com/hassan-mohiddin/freeflow/blob/main/plugin-docs/using-freeflow.md)
|
|
235
|
+
- [How Freeflow Works](https://github.com/hassan-mohiddin/freeflow/blob/main/plugin-docs/workflow.md)
|
|
286
236
|
- [Getting Started](https://github.com/hassan-mohiddin/freeflow/blob/main/plugin-docs/getting-started.md)
|
|
287
|
-
- [
|
|
288
|
-
- [
|
|
289
|
-
- [Tool Execution](https://github.com/hassan-mohiddin/freeflow/blob/main/plugin-docs/capabilities/tool-execution.md)
|
|
290
|
-
- [Compaction](https://github.com/hassan-mohiddin/freeflow/blob/main/plugin-docs/capabilities/compaction.md)
|
|
237
|
+
- [Settings](https://github.com/hassan-mohiddin/freeflow/blob/main/plugin-docs/settings.md)
|
|
238
|
+
- [Capabilities](https://github.com/hassan-mohiddin/freeflow/blob/main/plugin-docs/capabilities/README.md)
|
|
291
239
|
- [Pi integration](https://github.com/hassan-mohiddin/freeflow/blob/main/plugin-docs/integrations/pi.md)
|
|
292
240
|
- [Architecture](https://github.com/hassan-mohiddin/freeflow/blob/main/dev-docs/README.md)
|
|
293
241
|
- [System prompt architecture](https://github.com/hassan-mohiddin/freeflow/blob/main/dev-docs/subsystems/prompt-assembly.md)
|
|
294
242
|
- [Skill routing](https://github.com/hassan-mohiddin/freeflow/blob/main/dev-docs/subsystems/skill-routing.md)
|
|
295
|
-
- [Capabilities](https://github.com/hassan-mohiddin/freeflow/blob/main/plugin-docs/capabilities/README.md)
|
|
296
243
|
- [Release process](https://github.com/hassan-mohiddin/freeflow/blob/main/dev-docs/guides/release.md)
|
|
297
244
|
- [Release evidence](https://github.com/hassan-mohiddin/freeflow/blob/main/plugin-docs/release-evidence/README.md)
|
|
298
245
|
- [Changelog](CHANGELOG.md)
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: "cognitive-routing"
|
|
3
|
-
description: "Use when Cognitive Routing is active
|
|
3
|
+
description: "Use when Cognitive Routing is active: the Coordinator plans and delegates work to Helper or Executor profiles, and workers carry out and report their assignments."
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
# Cognitive Routing
|
|
@@ -17,21 +17,32 @@ Terms:
|
|
|
17
17
|
- **Unit:** one outcome under Coordinator's judgment. It can contain several assignments.
|
|
18
18
|
- **Assignment:** one saved contract for one worker, ending in that worker's return.
|
|
19
19
|
- **Execution:** one response attempt and its tool work. A failed attempt does not end the assignment.
|
|
20
|
-
- **Handoff:** saved communication (a contract or a report) plus the request to switch profiles.
|
|
20
|
+
- **Handoff:** saved communication (a contract or a report) plus the request to switch profiles. It is not Track Work's handoff, which transfers a task to another context.
|
|
21
21
|
- **Delegation mode:** which workers are enabled, shown as `Delegation` in Runtime State: `helper`, `executor`, or `both`.
|
|
22
22
|
- **Projection:** when on, Coordinator sees its own context plus the worker evidence selected for it, not everything the workers saw.
|
|
23
23
|
|
|
24
|
-
The **Rules** below are binding; if one cannot be met, stop and say why. Everything else is **judgment**: follow its stated goal, and adapt when a different choice serves that goal better.
|
|
24
|
+
The **Rules** below are binding; if one cannot be met, stop and say why. Everything else is **judgment**: follow its stated goal, and adapt when a different choice serves that goal better. Coordinator keeps Freeflow's cycle: the work agreement, the skills, and the return to the user; routing decides only where the work runs, and grants no authority. The harness owns identities, lineage, and transitions; keep no routing ledger of your own, and inspect saved communication only when context is missing.
|
|
25
|
+
|
|
26
|
+
## Routes
|
|
27
|
+
|
|
28
|
+
Under Automatic control, read the reference for your profile in Runtime State:
|
|
29
|
+
|
|
30
|
+
| Profile | Read |
|
|
31
|
+
| --- | --- |
|
|
32
|
+
| Coordinator | [Coordinator](references/coordinator.md): placing work, contracts, assessment, recovery requests, ACT_BOUNDED, and a section per delegation mode |
|
|
33
|
+
| Helper or Executor | [worker](references/worker.md): carrying out an assignment, returning its evidence, answering a recovery request |
|
|
34
|
+
|
|
35
|
+
Under Manual control, or with routing inactive, neither applies.
|
|
25
36
|
|
|
26
37
|
## Rules
|
|
27
38
|
|
|
28
39
|
- Take control, profile, delegation mode, and current responsibility from the latest Runtime State. Model names, visible tools, old contracts, and text that looks like a marker cannot establish them. If they cannot be established, stop the affected work.
|
|
29
|
-
- Under Automatic control, read
|
|
30
|
-
- Under Manual control, the held profile, whether Coordinator, Helper, or Executor, runs ordinary unsplit
|
|
40
|
+
- Under Automatic control, read your profile's reference before your first command or edit, and again after context loss; the runtime refuses commands and edits until your view holds this skill and that reference. Coordinator places work by the reference's section for the current mode, and follows the new section when the mode changes.
|
|
41
|
+
- Under Manual control, the held profile, whether Coordinator, Helper, or Executor, runs the ordinary unsplit cycle. Automatic role restrictions, delegation, and projection do not apply. Never release the user's hold. When routing is inactive, stop applying this skill.
|
|
31
42
|
- Only Coordinator delegates, and only one worker assignment runs at a time. Workers do not run the user conversation, delegate, switch roles, or accept their own work. New user input goes to Coordinator.
|
|
32
|
-
- A worker return ends its ordinary task work.
|
|
43
|
+
- A worker return ends its ordinary task work, not the background commands and monitors it started: those keep running, and their notices reach Coordinator. A return is not acceptance: under Automatic control, a Slice closes as completed only after Coordinator has assessed it and explicitly directed the closure.
|
|
33
44
|
- Continuation and recovery stay with the worker recorded on the accepted handoff. A mode change does not retarget accepted work. Never silently substitute another profile.
|
|
34
|
-
- In `executor` and `both` modes, Coordinator does no environment work except: routing controls; reading skills and instructional references; recovery reads after context loss; effective view-local Context Control; authorship the user explicitly assigns to Coordinator; and ACT_BOUNDED.
|
|
45
|
+
- In `executor` and `both` modes, Coordinator does no environment work except: routing controls; Task Memory actions, which Coordinator takes with the user; reading skills and instructional references; writing the user's own words into the Working Record (a Decision or a Work agreement line) when they say them; recovery reads after context loss; effective view-local Context Control; authorship the user explicitly assigns to Coordinator; and ACT_BOUNDED.
|
|
35
46
|
- Never change compute configuration yourself.
|
|
36
47
|
- Never fabricate evidence, and never drop adverse evidence to make a return look complete or ready.
|
|
37
48
|
|
|
@@ -50,135 +61,16 @@ Total cost is the number of model turns times their average cost. Moving work to
|
|
|
50
61
|
|
|
51
62
|
Lower cost never lowers the required quality or evidence. Several cheap corrections can still be economical; repeated misunderstanding, needless handoffs, and unsupported acceptance are not savings.
|
|
52
63
|
|
|
53
|
-
## Decide Where Work Runs
|
|
54
|
-
|
|
55
|
-
Goal: each result is produced where the total cost is lowest without losing quality.
|
|
56
|
-
|
|
57
|
-
Delegate when the expected saving in cost or quality exceeds the handoff, the ramp-up, the assessment, and the likely corrections. The kind of difficulty usually suggests the owner:
|
|
58
|
-
|
|
59
|
-
- missing facts about the environment: a worker observes;
|
|
60
|
-
- an unresolved design or governing choice: Coordinator;
|
|
61
|
-
- settled mechanics: a worker, or a script when the work is deterministic and repeated;
|
|
62
|
-
- a decision the user owns: Coordinator asks, using [Decision Gate](../../skills/decision-gate/SKILL.md); never a worker.
|
|
63
|
-
|
|
64
|
-
Default: follow your mode reference. Keep a tightly coupled edit, check, and interpret loop with one producer; hand off results that can be separated from it. A separate multi-entry record update qualifies; a one-line update in the middle of your own work does not. A read-only check of the candidate against the Slice's acceptance requirements qualifies even mid-implementation, because it gives Coordinator a different result, not a repeat.
|
|
65
|
-
|
|
66
|
-
Decide by the responsibility handed over and its consequences, not by whether it reads or writes, whether the output is prose or code, the file type, the line count, the tool count, or the models' names and effort labels. Choosing a worker never substitutes for the user's authorization. Do not require a worker to fail before choosing a stronger owner. If a return shows the responsibility is different from what you assumed, reassess the placement rather than repeat the assignment more forcefully.
|
|
67
|
-
|
|
68
|
-
Direct Coordinator work needs no invented assignment, projection, or return. Authorship the user assigns to Coordinator means the user asked Coordinator itself to write a particular artifact; a general request such as "write the plan" does not select it, and it authorizes nothing beyond that artifact. Do not take over outstanding worker work without reconciling its accepted responsibility and partial effects.
|
|
69
|
-
|
|
70
|
-
## Prepare The Route Before Delegating Production
|
|
71
|
-
|
|
72
|
-
Goal: the implementer starts with what it needs, and nobody gathers in the premium profile what the route could have predicted.
|
|
73
|
-
|
|
74
|
-
Workflow's route preparation applies. Routing adds:
|
|
75
|
-
|
|
76
|
-
- Coordinator plans the route and may read skills directly to know which methods the assignments will need.
|
|
77
|
-
- Before implementation, commission the context gathering the predictable steps need, so the implementer starts with it. Who gathers, and how the evidence reaches Coordinator, depends on the mode; see your mode reference.
|
|
78
|
-
- The implementing producer forms the execution forecast described in [Execute Work](../../skills/execute-work/SKILL.md) under Gather Enough Context For This Unit. When a worker implements, Coordinator supplies the governing decisions and the worker forms the forecast; do not write the patch for it.
|
|
79
|
-
|
|
80
|
-
## Coordinator: Write A Contract That Carries The Decision
|
|
81
|
-
|
|
82
|
-
Goal: the worker can act correctly on the first attempt without re-deriving what Coordinator already knows.
|
|
83
|
-
|
|
84
|
-
Put the actual contract in `freeflow_delegate(operation: "assign")`. In `both` mode, set `worker` to `helper` or `executor`; with one enabled worker the tool infers it. Write for what the worker can see, not what you remember:
|
|
85
|
-
|
|
86
|
-
- the required result, why it matters, and the method to use;
|
|
87
|
-
- established facts, accepted decisions, and open questions;
|
|
88
|
-
- scope, order, constraints, permitted effects, and remaining local freedom;
|
|
89
|
-
- behavior for the cases the request does not mention but the change touches: other entry points, sibling operations, data already written, and work that runs at the same time or on a schedule;
|
|
90
|
-
- the contracts the worker must not choose: names, messages, interfaces, file locations, and dependencies, exactly as they must appear;
|
|
91
|
-
- the evidence you need to assess the result;
|
|
92
|
-
- when to return, including when a premise or governing choice changes.
|
|
93
|
-
|
|
94
|
-
State each requirement as the outcome for a named thing, without an escape clause such as "unless needed" or "as today". When behavior elsewhere must be preserved, say where the change belongs and what each named caller must still get: "keep what callers rely on today" alone can steer a worker away from a correct fix in shared code.
|
|
95
|
-
|
|
96
|
-
When unresolved representation, ownership, or failure choices could invalidate the work, settle them first with [Design for Depth](../../skills/design-for-depth/SKILL.md). Your most valuable contribution is framing the problem so the worker finds it straightforward. For a consequential or repeatedly misunderstood property, name the mechanism and why it fits, the plausible wrong approach, and the observation that tells them apart. Give more structure where the worker has shown difficulty and more freedom where the mechanics are settled. A contract that contains the finished patch has moved the work back to Coordinator's price.
|
|
97
|
-
|
|
98
|
-
A gathering assignment names what must be learned, not a guessed implementation. Request evidence by purpose, since its refs do not exist yet; what you request is a minimum, and workers also return material discoveries and counterevidence. Shared history and provider caching do not convey unspoken direction, and a filename does not mean its content is available to the worker.
|
|
99
|
-
|
|
100
|
-
Size an assignment to include the work, its local checks, the expected corrections, and preparing the return. Shorten it when an unfamiliar boundary could invalidate much dependent work. Do not supervise every command, and do not delegate the whole objective to avoid later judgment. A negative result can complete a gathering or experimental assignment.
|
|
101
|
-
|
|
102
|
-
Use `replace` only for quiescent outstanding work whose unit outcome still holds. State why the direction changed, preserve partial effects and uncertainty, and choose the worker again in `both` mode. Do not replace returned work, or close and reopen a unit to escape unfinished responsibility.
|
|
103
|
-
|
|
104
|
-
## Worker: Execute Within The Contract
|
|
105
|
-
|
|
106
|
-
Goal: produce the assigned result resourcefully, within scope, and stop at the useful boundary.
|
|
107
|
-
|
|
108
|
-
Establish the contract, your assigned role, the constraints, and the return condition. Load the producing method and [Action Selection](../../skills/action-selection/SKILL.md) when absent. Follow required direction; choose ordinary mechanics yourself. A useful discovery or an available tool grants no new authority.
|
|
109
|
-
|
|
110
|
-
Challenge unsupported premises and report better-supported approaches. A governing change, one that alters the accepted outcome, architecture, policy, scope, authority, failure behavior, or required evidence, stops dependent effects until Coordinator decides. An unprescribed filename or helper does not require a return. For an unexplained or repeatedly stalling failure, use [Diagnose Failure](../../skills/diagnose-failure/SKILL.md) within scope or return.
|
|
111
|
-
|
|
112
|
-
Run routine tools without announcing them; put findings in the report. Questions for the user go to Coordinator in the return.
|
|
113
|
-
|
|
114
|
-
Verify the actual candidate and self-review through the producing method, using [Verify Work](../../skills/verify-work/SKILL.md) to say what the observations support. Keep failed, stale, incomplete, and inconclusive evidence. If a test changes, say what the old and new versions each establish.
|
|
115
|
-
|
|
116
|
-
Return when the result is ready, the stop condition is reached, no useful covered work remains, or new user input needs Coordinator. Do not stop after each command, and do not continue into a different responsibility to avoid a handoff. State what remains before the Slice's exit.
|
|
117
|
-
|
|
118
|
-
## Worker: Prepare Evidence, Then Return
|
|
119
|
-
|
|
120
|
-
Goal: Coordinator receives what it needs to judge the result and nothing it does not.
|
|
121
|
-
|
|
122
|
-
Helper and Executor share ordinary history. Reuse each other's sources and observations while keeping who produced them; do not create worker-to-worker projections. With projection on, Coordinator sees only what you select, so select enough original material for judgment, not the execution trail. Prepare evidence once, at the return boundary, not after each tool call.
|
|
123
|
-
|
|
124
|
-
1. **Reconcile the result.** Compare the contract with the actual work, changed assumptions, partial effects, missing checks, and contrary findings. Make sure captures describe the candidate you are reporting, after any later edits.
|
|
125
|
-
2. **Choose the evidence.** Start with what Coordinator requested and what it already has. Add governing background, material discoveries, and counterevidence it needs. Being eligible is not a reason to select a source, and a nearby result, filename, or shared report is not automatically the evidence for a claim. Unknown authorship stays unknown. When Coordinator already has adequate evidence or the result is self-contained, select nothing new.
|
|
126
|
-
3. **Add the bodies and submit together.** With projection on, add the skill and reference reads that carry the methods Coordinator needs, and the original task-evidence bodies needed for assessment, in one `freeflow_project` add using visible refs directly. Only tool results are evidence; write findings, drafts, and interpretation into the report instead. In the same response, put `freeflow_return(operation: "submit")` last, with the result, evidence and limits, changed assumptions, partial effects, what remains, and why you are returning. Do not wait for the selection receipt: the report is saved even when evidence has problems. Never batch the return with new task work whose outcome the report assumes. Then stop ordinary task work.
|
|
127
|
-
4. **Check the return receipt.** If it reports problems, resolve identity or representation problems with `freeflow_project`, then use payload-free `freeflow_return(operation: "retry")`. Withdraw a request only with a reason; withdrawing does not close a required evidence gap. Do not rerun work to manufacture a selectable receipt.
|
|
128
|
-
|
|
129
|
-
Use `freeflow_project` inspect only when a ref's identity, eligibility, representation, or selection state is unclear; assignment size alone is not a reason. Once you find the refs you need, add them; the remaining candidates are not a work queue. With projection off, skip the projection tools, not verification or honest reporting.
|
|
130
|
-
|
|
131
|
-
A required stop takes precedence over another read or test: return an honest `partial` or `blocked` report instead of forcing `completed`. `reportSaved` does not mean delivered or assessed. If the transfer is blocked, ordinary work stays ended; fix only the handoff problem and use payload-free `freeflow_return(operation: "retry")`. Use `submit` again only to deliberately revise the report.
|
|
132
|
-
|
|
133
|
-
## Coordinator: Assess The Return
|
|
134
|
-
|
|
135
|
-
Goal: accept only what the evidence supports, and choose the next work from the actual gap.
|
|
136
|
-
|
|
137
|
-
Assess the report and evidence you received. Ordinary assessment needs neither routine inspection nor an `assess` call; `assess` restores a suspended evidence view after new user input paused it.
|
|
138
|
-
|
|
139
|
-
For a material claim, compare the accepted property, the observation actually made, the decisive assertions, the candidate's identity, and the result. A confident report or a green suite cannot fill a missing link. Keep unsupported required claims open and stop dependent work. Check the actual state before calling something a defect or crediting a fix.
|
|
140
|
-
|
|
141
|
-
Assess your own direction too: did the contract leave a consequential decision implicit, over-constrain the mechanism, choose the wrong check, or place the work wrongly? A worker that asked no questions has not shown the contract was sufficient; missing specification shows in the result, as a plausible but different name, location, or behavior. Improve the next contract from the answer.
|
|
142
|
-
|
|
143
|
-
Before commissioning more work, ask whether it meets an accepted requirement, repairs a demonstrated defect, or only adds an optional guarantee; Workflow owns that test. Then choose from the gap:
|
|
144
|
-
|
|
145
|
-
- **Supported result:** continue with the next covered work, or accept the outcome.
|
|
146
|
-
- **Evidence omitted but it exists:** recover it (below) before investigating again; absence from your view does not mean the action never happened.
|
|
147
|
-
- **Missing or inadequate observation:** request the observation that decides it, without changing the required property.
|
|
148
|
-
- **Supported defect:** assign the correction and affected checks to the owner its responsibility needs.
|
|
149
|
-
- **Invalidated approach or unclear cause:** revise the direction or commission diagnosis rather than repeat the demand.
|
|
150
|
-
- **User-owned choice:** take it to the user before dependent work.
|
|
151
|
-
|
|
152
|
-
Repeated failure needs a changed premise, check, contract, working set, or mechanism, not lower acceptance or endless repair. Reuse adequate producer verification; a worker's audit in the same session is not independent review, which remains a separate Workflow choice.
|
|
153
|
-
|
|
154
|
-
Before completed Slice closure, state your assessment of the Slice's result and evidence, resolve material contradictions, and confirm its Checkpoints are settled. Then direct the [Track Work](../../skills/track-work/SKILL.md) closure through whichever route your mode allows, preferably folded into work already going to that profile rather than a handoff of its own. A prior "close it if green" instruction cannot stand in for assessing results you have not seen. Workers may record factual progress while the Slice is open; a worker writing the closure returns instead if new evidence contradicts the accepted basis.
|
|
155
|
-
|
|
156
|
-
Use `freeflow_unit(operation: "close")` when the unit's outcome is supported, or to record an authorized `cancelled` or `deferred` outcome. Closing a unit does not complete a Slice or task, clear history, or authorize a commit or delivery. Continue covered work to the agreed return point.
|
|
157
|
-
|
|
158
64
|
## Keep Control And Continuity
|
|
159
65
|
|
|
160
|
-
New natural-language input, including "continue", goes to Coordinator. If it reaches a worker mid-assignment, honor any restriction at once, stop task work, and return the partial state. When the user asks what a worker did, answer from `
|
|
66
|
+
New natural-language input, including "continue", goes to Coordinator. If it reaches a worker mid-assignment, honor any restriction at once, stop task work, and return the partial state. When the user asks what a worker did, answer from `routing_unit` inspection or by asking that worker; absence from your view does not mean the action never happened. Runtime State refreshes are observations, not new direction. Technical retries stay within the accepted assignment; `/freeflow resume` continues unchanged saved work after reconciliation and does not release a Manual hold.
|
|
161
67
|
|
|
162
68
|
During a Manual hold, preserve any interrupted assignment, partial effects, and pending assessment; keep no shadow delegation. If the held preset cannot do the work, report it and leave the choice to the user. When the user releases the hold, Coordinator reconciles current direction, the mode, outstanding responsibility, and anything done during the hold before routing again.
|
|
163
69
|
|
|
164
|
-
After context loss, follow the bootstrap in the capability cue, reload the methods and
|
|
165
|
-
|
|
166
|
-
### Recover Missing Evidence For An Assessment
|
|
167
|
-
|
|
168
|
-
Outstanding assignments use ordinary continuation, not this. For the current returned assessment, Coordinator uses `freeflow_unit(operation: "recover")` with the missing-evidence question, any exact task-file `paths`, and any captured result ids in `results` (a context ref such as `ctx:1a2b3c4d` goes in the request instead; the worker selects it). Recovery belongs to the assignment's recorded worker. Preserve the unit, assignment, original report, outcome, revision, selections, and assessment.
|
|
169
|
-
|
|
170
|
-
During recovery, the worker may select previously exposed evidence and read only exact admitted task paths, granted captured results, or packaged Freeflow skill and reference files. It must not edit, run commands or tests, broaden discovery, or resume task work. Report stale or unavailable evidence without rerunning anything. Return with `freeflow_return(operation: "supplement")` and stop reading. A `partial` or `blocked` supplement can deliver its communication while the full evidence obligation stays suspended; payload-free `retry` resends an unchanged saved supplement.
|
|
171
|
-
|
|
172
|
-
A separate recovery assignment fits only when no existing assignment or assessment needs preserving. Coordinator uses `cancel-recovery` when the lookup is no longer needed; the original report and assessment remain. Deliver the supplement or cancel recovery before `assess`; new user input does not settle recovery. Do not simulate recovery by replacing an assignment/report or opening a new unit.
|
|
70
|
+
After context loss, follow the bootstrap in the capability cue, reload the methods, this skill and your profile's reference, and recover control, mode, contract or report, user direction, partial effects, and stop conditions. When a Working Record exists, Coordinator recovers it through Track Work's order, including the artifacts under `What defines this task`, directly, in every mode. Large Recovery sources that only serve execution stay with the worker that needs them. An outstanding worker reconstructs and continues its recorded assignment, and its recovery reads stay within the contract's limits; do not wrap existing responsibility in a new assignment. A summary mentioning a superseded contract does not revive it.
|
|
173
71
|
|
|
174
72
|
### Keep Useful History
|
|
175
73
|
|
|
176
74
|
Closing, replacing, returning, and pausing change responsibility, not the value of history already admitted. Keep past work distinguishable from the current obligation without removing it. Navigation does not roll back files, processes, or the record; compaction does not justify inventing source bodies or repeating uncertain effects. When Context Control is effective, read its method before managing a view, and keep current direction, contrary findings, and promised originals. Optional cleanup comes after the promised evidence is prepared; if cleanup fails, keep the extra context and continue the handoff.
|
|
177
75
|
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
In `executor` and `both` modes, Coordinator may do other environment work only when judgment and action cannot be separated and delegating would lose something concrete. Examples: synthesizing a governing artifact when a complete contract would already be the artifact; intervening result by result in sensitive work. Task size, convenience, fewer switches, a failed recovery, or a preference for premium compute do not qualify, and separable production does not become judgment by being relabelled.
|
|
181
|
-
|
|
182
|
-
Before acting, state ACT_BOUNDED with its scope, expected result, existing authority, stop condition, the inseparable judgment, and what delegation would lose. Stay inside that scope; end on completion, interruption, context loss, changed applicability, or before delegating again. It grants no permission, assignment, or acceptance. Helper-mode Coordinator production needs no ACT_BOUNDED.
|
|
183
|
-
|
|
184
|
-
Stop applying the Automatic split when control becomes Manual or routing becomes inactive; preserve unfinished responsibility honestly and follow ordinary Workflow.
|
|
76
|
+
Stop applying the Automatic split when control becomes Manual or routing becomes inactive; preserve unfinished responsibility honestly and follow the ordinary cycle.
|