@hassangameryt/freeflow 0.4.0 → 0.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.claude-plugin/marketplace.json +1 -1
- package/.claude-plugin/plugin.json +2 -1
- package/.codex-plugin/plugin.json +2 -1
- package/README.md +150 -155
- package/capabilities/cognitive-routing/SKILL.md +229 -0
- package/capabilities/context-virtualization/SKILL.md +103 -0
- package/capabilities/conversation-history/SKILL.md +53 -0
- package/command-surface.json +17 -13
- package/hooks/freeflow-runtime-context.mjs +393 -159
- package/hooks/hooks.json +26 -1
- package/hooks/tests/check-runtime-context-hook.sh +223 -54
- package/package.json +25 -16
- package/pi-extension/dist/cognitive-routing/commands.js +96 -0
- package/pi-extension/dist/cognitive-routing/config.js +236 -0
- package/pi-extension/dist/cognitive-routing/controller.js +862 -0
- package/pi-extension/dist/cognitive-routing/history.js +439 -0
- package/pi-extension/dist/cognitive-routing/host.js +126 -0
- package/pi-extension/dist/cognitive-routing/runtime.js +43 -0
- package/pi-extension/dist/cognitive-routing/tool.js +211 -0
- package/pi-extension/dist/cognitive-routing/types.js +6 -0
- package/pi-extension/dist/context-virtualization/commands.js +89 -0
- package/pi-extension/dist/context-virtualization/projector.js +42 -0
- package/pi-extension/dist/context-virtualization/runtime.js +356 -0
- package/pi-extension/dist/context-virtualization/state.js +57 -0
- package/pi-extension/dist/context-virtualization/types.js +10 -0
- package/pi-extension/dist/conversation-history/passages.js +66 -0
- package/pi-extension/dist/conversation-history/ranking.js +105 -0
- package/pi-extension/dist/conversation-history/runtime.js +226 -0
- package/pi-extension/dist/conversation-history/search.js +56 -0
- package/pi-extension/dist/conversation-history/types.js +1 -0
- package/pi-extension/dist/freeflow-context/resolver.js +120 -0
- package/pi-extension/dist/freeflow-context/runtime.js +80 -0
- package/pi-extension/dist/freeflow-context/source-projector.js +95 -0
- package/pi-extension/dist/freeflow-context/tool.js +308 -0
- package/pi-extension/dist/freeflow-context/types.js +12 -0
- package/pi-extension/dist/freeflow-context/visibility.js +28 -0
- package/pi-extension/dist/index.js +516 -98
- package/pi-extension/dist/runtime/runtime-context.js +318 -271
- package/pi-extension/dist/runtime/runtime-identity.js +5 -0
- package/pi-extension/dist/settings/settings-tui.js +78 -0
- package/pi-extension/dist/settings/settings-ui.js +593 -563
- package/pi-extension/dist/ui/text-component.js +57 -0
- package/pi-extension/src/cognitive-routing/commands.ts +119 -0
- package/pi-extension/src/cognitive-routing/config.ts +307 -0
- package/pi-extension/src/cognitive-routing/controller.ts +1118 -0
- package/pi-extension/src/cognitive-routing/history.ts +638 -0
- package/pi-extension/src/cognitive-routing/host.ts +172 -0
- package/pi-extension/src/cognitive-routing/runtime.ts +57 -0
- package/pi-extension/src/cognitive-routing/tool.ts +272 -0
- package/pi-extension/src/cognitive-routing/types.ts +89 -0
- package/pi-extension/src/context-virtualization/commands.ts +111 -0
- package/pi-extension/src/context-virtualization/projector.ts +62 -0
- package/pi-extension/src/context-virtualization/runtime.ts +406 -0
- package/pi-extension/src/context-virtualization/state.ts +79 -0
- package/pi-extension/src/context-virtualization/types.ts +92 -0
- package/pi-extension/src/conversation-history/passages.ts +81 -0
- package/pi-extension/src/conversation-history/ranking.ts +155 -0
- package/pi-extension/src/conversation-history/runtime.ts +250 -0
- package/pi-extension/src/conversation-history/search.ts +79 -0
- package/pi-extension/src/conversation-history/types.ts +31 -0
- package/pi-extension/src/freeflow-context/resolver.ts +139 -0
- package/pi-extension/src/freeflow-context/runtime.ts +100 -0
- package/pi-extension/src/freeflow-context/source-projector.ts +106 -0
- package/pi-extension/src/freeflow-context/tool.ts +360 -0
- package/pi-extension/src/freeflow-context/types.ts +70 -0
- package/pi-extension/src/freeflow-context/visibility.ts +53 -0
- package/pi-extension/src/index.ts +553 -101
- package/pi-extension/src/runtime/runtime-context.ts +339 -281
- package/pi-extension/src/runtime/runtime-identity.ts +8 -0
- package/pi-extension/src/settings/settings-tui.ts +93 -0
- package/pi-extension/src/settings/settings-ui.ts +700 -613
- package/pi-extension/src/ui/text-component.ts +66 -0
- package/pi-extension/tests/cognitive-routing/commands.test.js +134 -0
- package/pi-extension/tests/cognitive-routing/controller.test.js +1099 -0
- package/pi-extension/tests/cognitive-routing/extension-lifecycle.test.js +1071 -0
- package/pi-extension/tests/cognitive-routing/history.test.js +274 -0
- package/pi-extension/tests/cognitive-routing/host-fixture.js +4 -0
- package/pi-extension/tests/cognitive-routing/host-identity.test.js +63 -0
- package/pi-extension/tests/cognitive-routing/profile-resolution.test.js +236 -0
- package/pi-extension/tests/cognitive-routing/tool.test.js +230 -0
- package/pi-extension/tests/context-virtualization/extension.test.js +749 -0
- package/pi-extension/tests/context-virtualization/projector.test.js +110 -0
- package/pi-extension/tests/context-virtualization/runtime.test.js +216 -0
- package/pi-extension/tests/conversation-history/runtime.test.js +98 -0
- package/pi-extension/tests/conversation-history/search.test.js +97 -0
- package/pi-extension/tests/integration/pi-extension.test.js +928 -2047
- package/pi-extension/tests/integration/prompt-architecture.test.js +305 -0
- package/runtime/prompts/cognitive-routing.md +9 -0
- package/runtime/prompts/context-virtualization.md +3 -0
- package/runtime/prompts/conversation-history.md +3 -0
- package/runtime/prompts/core.md +13 -0
- package/runtime/prompts/interaction-contract.md +7 -0
- package/runtime/prompts/skills.md +65 -0
- package/skills/action-selection/SKILL.md +91 -0
- package/skills/bypass/SKILL.md +3 -2
- package/skills/commit-work/SKILL.md +1 -1
- package/skills/commit-work/references/staging-decisions.md +1 -1
- package/skills/decision-gate/SKILL.md +1 -1
- package/skills/design-for-depth/SKILL.md +14 -33
- package/skills/design-for-depth/references/design-pressure-signals.md +1 -1
- package/skills/design-for-depth/references/interface-design-loop.md +1 -1
- package/skills/design-for-depth/references/software-design-philosophy.md +1 -1
- package/skills/diagnose-failure/SKILL.md +20 -14
- package/skills/diagnose-failure/references/diagnostic-loop-catalog.md +1 -3
- package/skills/diagnose-failure/references/{flaky-and-performance.md → flaky-and-performance-diagnosis.md} +1 -1
- package/skills/discuss/SKILL.md +34 -22
- package/skills/discuss/references/discussion-continuity.md +71 -0
- package/skills/evaluate-skill/SKILL.md +5 -5
- package/skills/evaluate-skill/references/{definition-schema.md → evaluation-definition-schema.md} +42 -2
- package/skills/evaluate-skill/references/execution-and-evidence.md +8 -3
- package/skills/evaluate-skill/scripts/lib/definitions.mjs +114 -3
- package/skills/evaluate-skill/scripts/lib/grade-interaction.mjs +156 -1
- package/skills/evaluate-skill/scripts/lib/grade.mjs +9 -1
- package/skills/evaluate-skill/scripts/lib/pi.mjs +147 -32
- package/skills/evaluate-skill/scripts/lib/rpc.mjs +4 -4
- package/skills/evaluate-skill/scripts/lib/runner.mjs +36 -14
- package/skills/evaluate-skill/scripts/lib/sandbox.mjs +92 -0
- package/skills/evaluate-skill/scripts/pi-guard.mjs +1 -1
- package/skills/evaluate-skill/scripts/pi-observer.mjs +66 -0
- package/skills/evaluate-skill/scripts/skill-eval.mjs +6 -5
- package/skills/execute-work/SKILL.md +18 -15
- package/skills/execute-work/references/code-practices.md +1 -1
- package/skills/execute-work/references/execute-work-edges.md +42 -0
- package/skills/finish-branch/SKILL.md +2 -2
- package/skills/finish-branch/references/integration-options.md +1 -1
- package/skills/handoff/SKILL.md +3 -3
- package/skills/launch-work/SKILL.md +1 -1
- package/skills/launch-work/references/launch-readiness.md +2 -2
- package/skills/migration-work/SKILL.md +2 -2
- package/skills/migration-work/references/migration-lifecycle.md +1 -1
- package/skills/mode-contract/SKILL.md +32 -10
- package/skills/release-work/SKILL.md +1 -1
- package/skills/release-work/references/release-evidence.md +1 -1
- package/skills/review-artifact/SKILL.md +28 -26
- package/skills/review-work/SKILL.md +28 -26
- package/skills/review-work/references/{reviewer-prompt.md → independent-work-reviewer-contract.md} +1 -1
- package/skills/review-work/references/security-risk-lens.md +1 -1
- package/skills/setup-freeflow/SKILL.md +6 -10
- package/skills/setup-freeflow/references/activation-contract.md +5 -10
- package/skills/setup-freeflow/references/host-setup.md +3 -7
- package/skills/simplify-code/SKILL.md +1 -1
- package/skills/simplify-code/references/simplification-patterns.md +1 -1
- package/skills/tdd/SKILL.md +18 -38
- package/skills/tdd/references/test-design.md +2 -2
- package/skills/track-work/SKILL.md +362 -58
- package/skills/track-work/scripts/lib/codec.mjs +570 -0
- package/skills/track-work/scripts/lib/commands.mjs +568 -0
- package/skills/track-work/scripts/lib/contract.mjs +303 -0
- package/skills/track-work/scripts/lib/model.mjs +506 -0
- package/skills/track-work/scripts/lib/operations.mjs +965 -0
- package/skills/track-work/scripts/lib/record-store.mjs +264 -0
- package/skills/track-work/scripts/lib/result.mjs +37 -0
- package/skills/track-work/scripts/lib/rewrites.mjs +740 -0
- package/skills/track-work/scripts/lib/schema.mjs +277 -0
- package/skills/track-work/scripts/lib/source-inventory.mjs +162 -0
- package/skills/track-work/scripts/lib/views.mjs +443 -0
- package/skills/track-work/scripts/lib/workspace.mjs +134 -0
- package/skills/track-work/scripts/working-record.mjs +122 -0
- package/skills/verify-work/SKILL.md +14 -2
- package/skills/verify-work/references/browser-runtime-evidence.md +1 -1
- package/skills/verify-work/references/integration-evidence.md +1 -1
- package/skills/verify-work/references/performance-evidence.md +1 -1
- package/skills/workflow/SKILL.md +105 -53
- package/skills/workflow/references/domain-skill-composition.md +22 -42
- package/skills/write-plan/SKILL.md +1 -1
- package/skills/write-skill/SKILL.md +3 -2
- package/skills/write-skill/references/progressive-disclosure.md +17 -3
- package/pi-extension/dist/output-router/host-producer-identification.js +0 -232
- package/pi-extension/dist/output-router/native-safety-net.js +0 -216
- package/pi-extension/dist/output-router/observed-tool-routing.js +0 -122
- package/pi-extension/dist/output-router/renderers.js +0 -1023
- package/pi-extension/dist/output-router/router-tools.js +0 -554
- package/pi-extension/dist/output-router/schemas.js +0 -383
- package/pi-extension/dist/output-router/status.js +0 -744
- package/pi-extension/dist/output-router/utils.js +0 -502
- package/pi-extension/src/output-router/host-producer-identification.ts +0 -256
- package/pi-extension/src/output-router/native-safety-net.ts +0 -248
- package/pi-extension/src/output-router/observed-tool-routing.ts +0 -134
- package/pi-extension/src/output-router/renderers.ts +0 -1108
- package/pi-extension/src/output-router/router-tools.ts +0 -579
- package/pi-extension/src/output-router/schemas.ts +0 -387
- package/pi-extension/src/output-router/status.ts +0 -791
- package/pi-extension/src/output-router/utils.ts +0 -554
- package/pi-extension/tests/output-router/observed-producers.test.js +0 -132
- package/pi-extension/tests/output-router/search.test.js +0 -722
- package/router/dist/benchmarks/benchmark-harness.d.ts +0 -35
- package/router/dist/benchmarks/benchmark-harness.js +0 -92
- package/router/dist/benchmarks/benchmarks.d.ts +0 -109
- package/router/dist/benchmarks/benchmarks.js +0 -979
- package/router/dist/benchmarks/codex-qa-benchmarks.d.ts +0 -95
- package/router/dist/benchmarks/codex-qa-benchmarks.js +0 -500
- package/router/dist/benchmarks/command-benchmarks.d.ts +0 -143
- package/router/dist/benchmarks/command-benchmarks.js +0 -698
- package/router/dist/benchmarks/context-mode-normalized-benchmarks.d.ts +0 -82
- package/router/dist/benchmarks/context-mode-normalized-benchmarks.js +0 -773
- package/router/dist/benchmarks/context-mode-real-deep-benchmark.d.ts +0 -132
- package/router/dist/benchmarks/context-mode-real-deep-benchmark.js +0 -1380
- package/router/dist/benchmarks/context-saving-baseline.d.ts +0 -60
- package/router/dist/benchmarks/context-saving-baseline.js +0 -470
- package/router/dist/benchmarks/index-benchmarks.d.ts +0 -103
- package/router/dist/benchmarks/index-benchmarks.js +0 -862
- package/router/dist/benchmarks/storage-policy-benchmarks.d.ts +0 -101
- package/router/dist/benchmarks/storage-policy-benchmarks.js +0 -618
- package/router/dist/benchmarks/vault-index-benchmarks.d.ts +0 -56
- package/router/dist/benchmarks/vault-index-benchmarks.js +0 -322
- package/router/dist/config/config.d.ts +0 -103
- package/router/dist/config/config.js +0 -632
- package/router/dist/config/router-contract.d.ts +0 -10
- package/router/dist/config/router-contract.js +0 -54
- package/router/dist/config/schema.d.ts +0 -27
- package/router/dist/config/schema.js +0 -648
- package/router/dist/config/types.d.ts +0 -573
- package/router/dist/config/types.js +0 -41
- package/router/dist/evidence/bounded-evidence.d.ts +0 -40
- package/router/dist/evidence/bounded-evidence.js +0 -323
- package/router/dist/evidence/evidence-range-selector.d.ts +0 -24
- package/router/dist/evidence/evidence-range-selector.js +0 -232
- package/router/dist/evidence/evidence-search.d.ts +0 -27
- package/router/dist/evidence/evidence-search.js +0 -490
- package/router/dist/evidence/evidence.d.ts +0 -38
- package/router/dist/evidence/evidence.js +0 -200
- package/router/dist/evidence/failure-contracts.d.ts +0 -37
- package/router/dist/evidence/failure-contracts.js +0 -166
- package/router/dist/evidence/line-ranges.d.ts +0 -24
- package/router/dist/evidence/line-ranges.js +0 -22
- package/router/dist/experiments/local-index.d.ts +0 -64
- package/router/dist/experiments/local-index.js +0 -581
- package/router/dist/index.d.ts +0 -30
- package/router/dist/index.js +0 -32
- package/router/dist/local/local-traversal.d.ts +0 -18
- package/router/dist/local/local-traversal.js +0 -334
- package/router/dist/processing/engine.d.ts +0 -132
- package/router/dist/processing/engine.js +0 -533
- package/router/dist/processing/reducers.d.ts +0 -280
- package/router/dist/processing/reducers.js +0 -1673
- package/router/dist/processing/renderers.d.ts +0 -31
- package/router/dist/processing/renderers.js +0 -195
- package/router/dist/processing/scripts.d.ts +0 -91
- package/router/dist/processing/scripts.js +0 -386
- package/router/dist/repo/repo-traversal.d.ts +0 -18
- package/router/dist/repo/repo-traversal.js +0 -245
- package/router/dist/routing/observed-reducers.d.ts +0 -41
- package/router/dist/routing/observed-reducers.js +0 -661
- package/router/dist/routing/observed-routing.d.ts +0 -26
- package/router/dist/routing/observed-routing.js +0 -378
- package/router/dist/routing/parsers.d.ts +0 -16
- package/router/dist/routing/parsers.js +0 -521
- package/router/dist/routing/run-filters.d.ts +0 -60
- package/router/dist/routing/run-filters.js +0 -238
- package/router/dist/routing/run-reducers.d.ts +0 -49
- package/router/dist/routing/run-reducers.js +0 -122
- package/router/dist/sandbox/adapter-roots.d.ts +0 -46
- package/router/dist/sandbox/adapter-roots.js +0 -66
- package/router/dist/sandbox/eryx-python-adapter.d.ts +0 -13
- package/router/dist/sandbox/eryx-python-adapter.js +0 -868
- package/router/dist/sandbox/jq-wasm-adapter.d.ts +0 -9
- package/router/dist/sandbox/jq-wasm-adapter.js +0 -429
- package/router/dist/sandbox/quickjs-wasi-adapter.d.ts +0 -13
- package/router/dist/sandbox/quickjs-wasi-adapter.js +0 -384
- package/router/dist/sandbox/script-sandbox.d.ts +0 -134
- package/router/dist/sandbox/script-sandbox.js +0 -337
- package/router/dist/setup/script-transform-adapters.d.ts +0 -32
- package/router/dist/setup/script-transform-adapters.js +0 -278
- package/router/dist/tools/batch.d.ts +0 -33
- package/router/dist/tools/batch.js +0 -586
- package/router/dist/tools/run.d.ts +0 -62
- package/router/dist/tools/run.js +0 -1304
- package/router/dist/tools/search.d.ts +0 -66
- package/router/dist/tools/search.js +0 -1364
- package/router/dist/transform/engine.d.ts +0 -168
- package/router/dist/transform/engine.js +0 -2072
- package/router/dist/vault/vault-index.d.ts +0 -125
- package/router/dist/vault/vault-index.js +0 -416
- package/router/dist/vault/vault.d.ts +0 -138
- package/router/dist/vault/vault.js +0 -630
- package/runtime/interaction-contract.md +0 -16
- package/skills/discuss/references/checkpoints.md +0 -66
- package/skills/execute-work/references/execution-loop.md +0 -77
- package/skills/output-router/SKILL.md +0 -206
- package/skills/output-router/references/safety-policy.md +0 -40
- package/skills/setup-freeflow/references/output-router-setup.md +0 -110
- package/skills/track-work/references/working-record-schema.md +0 -378
- package/skills/workflow/references/workflow-loop.md +0 -92
- /package/skills/handoff/references/{templates.md → handoff-templates.md} +0 -0
- /package/skills/review-artifact/references/{reviewer-prompt.md → independent-artifact-reviewer-contract.md} +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: review-artifact
|
|
3
|
-
description: Use when reviewing
|
|
3
|
+
description: Use when reviewing durable task memory, a spec, PRD, issue, API contract, technical design, migration contract, plan, decision record, ADR, handoff, or another durable artifact for fitness to guide its intended use.
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
# Review Artifact
|
|
@@ -14,7 +14,7 @@ Choose the role before reviewing:
|
|
|
14
14
|
- **Self-review:** you produced the artifact. Inspect it silently using the relevant boundary and lenses below. Correct clear local issues within existing authority. Create no formal review items, judgment, number, or cycle. Return unresolved material issues to [Workflow](../workflow/SKILL.md).
|
|
15
15
|
- **Independent review:** you did not produce the reviewed state. Inspect and report without editing. Use the formal item, judgment, and report method below. The receiving active agent adjudicates and routes the result.
|
|
16
16
|
|
|
17
|
-
Reading this skill does not create independence. If you produced the artifact, do not present your own judgment as independent review. Read
|
|
17
|
+
Reading this skill does not create independence. If you produced the artifact, do not present your own judgment as independent review. Read the [Independent Artifact Reviewer Contract](references/independent-artifact-reviewer-contract.md) when preparing or performing a separately selected independent review.
|
|
18
18
|
|
|
19
19
|
## Establish The Boundary
|
|
20
20
|
|
|
@@ -29,6 +29,8 @@ Understand:
|
|
|
29
29
|
|
|
30
30
|
Review the complete current artifact, not only its summary, change description, or author's reasoning. Review upstream authority before dependent artifacts. If an upstream issue invalidates downstream assumptions, mark affected material contingent instead of generating exhaustive findings against an unresolved basis.
|
|
31
31
|
|
|
32
|
+
Review Artifact owns the intended-use boundary, lenses, and judgment. When source or dependency inspection branches among several plausible observers or is likely to be broad, use [Action Selection](../action-selection/SKILL.md) to choose and bound one environment interaction. It returns evidence to the same review role. Skip it for an obvious artifact, dependency, or source-truth read.
|
|
33
|
+
|
|
32
34
|
When reviewing a Working Record, read [Track Work](../track-work/SKILL.md), which owns its format and lifecycle.
|
|
33
35
|
|
|
34
36
|
## Judge The Artifact By Its Job
|
|
@@ -72,33 +74,35 @@ A Blocking Issue must name the exact location, violated source truth or artifact
|
|
|
72
74
|
|
|
73
75
|
Pass, Non-blocking, Inconclusive, and Blocking are all valid review exits. A review ends with its report; it does not remain active until the artifact passes.
|
|
74
76
|
|
|
75
|
-
## Adjudicate And Route
|
|
76
|
-
|
|
77
|
-
After independent review, the receiving active agent adjudicates each item against the artifact, source truth, and evidence:
|
|
77
|
+
## Adjudicate Independent Review And Route
|
|
78
78
|
|
|
79
|
-
|
|
80
|
-
- **Rejected:** unsupported, stale, resolved, duplicate, preference-only, outside the artifact's job, or based on a source misread.
|
|
81
|
-
- **Open:** a question or evidence gap prevents acceptance or rejection.
|
|
79
|
+
After independent review, the receiving active agent adjudicates each material item against the artifact, source truth, and evidence rather than forwarding the report:
|
|
82
80
|
|
|
83
|
-
|
|
81
|
+
- **Accepted:** supported and applicable. State the actual artifact problem, consequence for its intended use, and whether the revision basis is supported or uncertain.
|
|
82
|
+
- **Rejected:** unsupported, stale, resolved, duplicate, preference-only, outside the artifact's job, or based on a source misread. State why.
|
|
83
|
+
- **Open:** a question or evidence gap prevents acceptance or rejection. State the concern, potential consequence, and missing evidence or decision.
|
|
84
84
|
|
|
85
|
-
|
|
85
|
+
A reviewer's suggested revision may bound an item, but it does not settle source intent or select the revision. Confirm whether each accepted Issue is Blocking or Non-blocking, derive the adjudicated judgment, and do not accept the reviewer's overall judgment separately.
|
|
86
86
|
|
|
87
87
|
- **Pass:** use the artifact for its intended purpose.
|
|
88
88
|
- **Non-blocking:** use it with explicit deferrals.
|
|
89
89
|
- **Inconclusive:** gather the missing evidence or decision.
|
|
90
90
|
- **Blocking:** do not use the artifact across the blocked boundary; re-enter its narrowest owner, defer, or stop.
|
|
91
91
|
|
|
92
|
-
|
|
92
|
+
### Decide Whether Independent-Review Revision Is Ready
|
|
93
|
+
|
|
94
|
+
A revision is ready when the artifact's job, the problem and consequence, and enough source or decision basis support a bounded revision. When the issue and source are clear, the revision local, affected dependencies known, and no material alternative or user choice remains, include adjudication and revision in the same assistant response.
|
|
93
95
|
|
|
94
|
-
|
|
96
|
+
Use the current response for a separate problem checkpoint when findings interact, source intent or dependency effects remain uncertain, accepted content or strategy is challenged, materially different revisions remain, the artifact relies on an unsupported failure cause, or user input could change the approach:
|
|
95
97
|
|
|
96
|
-
|
|
97
|
-
-
|
|
98
|
+
1. Report the adjudication, problem and consequence, revision-basis status, settled constraints, and controlling question or evidence.
|
|
99
|
+
2. Name [Discuss](../discuss/SKILL.md), [Diagnose Failure](../diagnose-failure/SKILL.md), [Decision Gate](../decision-gate/SKILL.md), evidence gathering, or the artifact's affected owner as the next route, then stop and wait.
|
|
98
100
|
|
|
99
|
-
|
|
101
|
+
Continue revision selection only when a later user turn or new evidence supplies enough support. Do not request revision authority before selecting a direction or wait for the user to elicit the missing analysis. The checkpoint is not another review and creates no revision or dispatch authority.
|
|
100
102
|
|
|
101
|
-
|
|
103
|
+
A revision-ready route states the proposed revision and rationale, dependency impact, verification boundary, whether focused follow-up is needed, and authority status. Findings are evidence, not commands, and do not authorize revision. Accepted revisions return to the artifact's owning skill and may remain in the same [Track Work](../track-work/SKILL.md) slice while its intended result stays coherent.
|
|
104
|
+
|
|
105
|
+
Use existing revision authority when it covers the result. Otherwise ask once for the revision and any warranted focused follow-up; omit follow-up when direct source evidence can settle the changed boundary. Then wait; do not revise or dispatch a follow-up from the request itself. Run follow-up only when the changed boundary or affected dependencies still need independent judgment and that dispatch is authorized. Do not revise source truth, accepted intent, or owner decisions merely to satisfy a reviewer or obtain Pass.
|
|
102
106
|
|
|
103
107
|
## Limit The Review Cycle
|
|
104
108
|
|
|
@@ -106,21 +110,19 @@ For one independently reviewed artifact state and intended-use boundary:
|
|
|
106
110
|
|
|
107
111
|
1. Review 1 is the normal broad review.
|
|
108
112
|
2. Review 2, when needed and authorized, focuses on accepted revisions, affected dependencies, and remaining risk.
|
|
109
|
-
3. Review 3 is exceptional, authorized
|
|
113
|
+
3. Review 3 is exceptional, separately authorized, and final.
|
|
110
114
|
|
|
111
|
-
The budget is a cap, not dispatch authority. Do not request Review 4
|
|
115
|
+
The budget is a cap, not dispatch authority. Do not request Review 4; return control to Workflow at the cap.
|
|
112
116
|
|
|
113
|
-
After Review 2 is adjudicated Blocking, stop before
|
|
117
|
+
After Review 2 is adjudicated Blocking, stop before another revision or Review 3:
|
|
114
118
|
|
|
115
|
-
- If the blocker repeats, extends, invalidates, or exposes another consequence of the prior revision, or its cause remains unsupported, read [Diagnose Failure](../diagnose-failure/SKILL.md) and diagnose the shared cause
|
|
116
|
-
- If it is an independent clear local defect with a supported cause, return
|
|
119
|
+
- If the blocker repeats, extends, invalidates, or exposes another consequence of the prior revision, or its cause remains unsupported, read [Diagnose Failure](../diagnose-failure/SKILL.md) and diagnose the shared cause first.
|
|
120
|
+
- If it is an independent clear local defect with a supported cause, return to the artifact's owner and state why diagnosis is unnecessary.
|
|
117
121
|
|
|
118
|
-
|
|
122
|
+
Diagnosis follows adjudicated evidence, not reviewer judgment alone. Review 3 is final judgment after the cause and revision boundary are understood, not another attempt to discover them through revisions. Workflow may establish a new cycle only for a materially new reviewed state and intended-use boundary; local edits, a different reviewer, or renamed scope do not reset it.
|
|
119
123
|
|
|
120
124
|
## Report
|
|
121
125
|
|
|
122
|
-
For self-review, report no formal
|
|
123
|
-
|
|
124
|
-
For independent review, use the structured output in [the reviewer prompt](references/reviewer-prompt.md). The receiving agent reports the reviewer and adjudicated judgments, each material item's Accepted, Rejected, or Open outcome and reason, affected dependencies, remaining open items, and authorized or proposed next route.
|
|
126
|
+
For self-review, report no formal result. Correct clear local issues and surface only unresolved material issues that change fitness or route.
|
|
125
127
|
|
|
126
|
-
|
|
128
|
+
For independent review, use the [Independent Artifact Reviewer Contract](references/independent-artifact-reviewer-contract.md) and stop with its report. The receiving agent then reports the reviewer and adjudicated judgments, each material item's outcome and reason, and either the problem checkpoint or revision-ready route defined above. Omit empty groups and support the result with source or evidence rather than confidence.
|
|
@@ -16,7 +16,7 @@ Choose the role before reviewing:
|
|
|
16
16
|
- **Self-review:** you produced the work. Inspect it silently using the relevant boundary and lenses below. Correct clear local issues within existing authority and re-verify. Create no formal review items, judgment, number, or cycle. Return unresolved material issues to [Workflow](../workflow/SKILL.md).
|
|
17
17
|
- **Independent review:** you did not produce the reviewed state. Inspect and report without editing. Use the formal item, judgment, and report method below. The receiving active agent adjudicates and routes the result.
|
|
18
18
|
|
|
19
|
-
Reading this skill does not create independence. If you produced the work, do not present your own judgment as independent review.
|
|
19
|
+
Reading this skill does not create independence. If you produced the work, do not present your own judgment as independent review. Before preparing or performing a separately selected independent review, read the [Independent Work Reviewer Contract](references/independent-work-reviewer-contract.md).
|
|
20
20
|
|
|
21
21
|
## Establish The Boundary
|
|
22
22
|
|
|
@@ -28,7 +28,9 @@ Understand:
|
|
|
28
28
|
- verification evidence and known gaps;
|
|
29
29
|
- risks and interactions material to the future action this review protects.
|
|
30
30
|
|
|
31
|
-
Inspect the work and source truth directly, not only the author's summary, reasoning, or claimed result.
|
|
31
|
+
Inspect the work and source truth directly, not only the author's summary, reasoning, or claimed result. Before reviewing work that changes trust boundaries, authentication, authorization, permissions, untrusted input, secrets, sensitive data, security-relevant dependencies or external integrations, code-execution boundaries, or failure behavior with security consequences, read the [Security Risk Lens](references/security-risk-lens.md).
|
|
32
|
+
|
|
33
|
+
Review Work owns the review boundary, lenses, and judgment. When source inspection branches among several plausible observers or is likely to be broad, use [Action Selection](../action-selection/SKILL.md) to choose and bound one environment interaction. It returns evidence to the same review role. Skip it for an obvious diff, file, or source-truth read.
|
|
32
34
|
|
|
33
35
|
## Review Proportionately
|
|
34
36
|
|
|
@@ -72,33 +74,35 @@ Use the most consequential applicable judgment:
|
|
|
72
74
|
|
|
73
75
|
Pass, Non-blocking, Inconclusive, and Blocking are all valid review exits. A review ends with its report; it does not remain active until the work passes.
|
|
74
76
|
|
|
75
|
-
## Adjudicate And Route
|
|
76
|
-
|
|
77
|
-
After independent review, the receiving active agent adjudicates each item against the work, source truth, and evidence:
|
|
77
|
+
## Adjudicate Independent Review And Route
|
|
78
78
|
|
|
79
|
-
|
|
80
|
-
- **Rejected:** unsupported, stale, resolved, duplicate, preference-only, out of scope, or based on a source misread.
|
|
81
|
-
- **Open:** a question or evidence gap prevents acceptance or rejection.
|
|
79
|
+
After independent review, the receiving active agent adjudicates each material item against the work, source truth, and evidence rather than forwarding the report:
|
|
82
80
|
|
|
83
|
-
|
|
81
|
+
- **Accepted:** supported and applicable. State the actual implementation problem, boundary consequence, and whether its cause is supported, unnecessary to select a bounded correction, or uncertain.
|
|
82
|
+
- **Rejected:** unsupported, stale, resolved, duplicate, preference-only, out of scope, or based on a source misread. State why.
|
|
83
|
+
- **Open:** a question or evidence gap prevents acceptance or rejection. State the concern, potential consequence, and missing evidence or decision.
|
|
84
84
|
|
|
85
|
-
|
|
85
|
+
A reviewer's suggested correction may bound an item, but it does not establish the cause or select the remedy. Confirm whether each accepted Issue is Blocking or Non-blocking, derive the adjudicated judgment, and do not accept the reviewer's overall judgment separately.
|
|
86
86
|
|
|
87
87
|
- **Pass:** proceed.
|
|
88
88
|
- **Non-blocking:** proceed with explicit deferrals.
|
|
89
89
|
- **Inconclusive:** gather the missing evidence or decision.
|
|
90
90
|
- **Blocking:** do not cross the boundary; re-enter the narrowest owning activity, defer, or stop.
|
|
91
91
|
|
|
92
|
-
|
|
92
|
+
### Decide Whether Independent-Review Remediation Is Ready
|
|
93
|
+
|
|
94
|
+
Remediation is ready when accepted behavior, the problem and consequence, and enough causal or decision basis support a bounded correction. When the finding is clear, the correction local, verification direct, and no material alternative or user choice remains, include adjudication and remediation in the same assistant response.
|
|
93
95
|
|
|
94
|
-
|
|
96
|
+
Use the current response for a separate problem checkpoint when findings interact, the cause matters but remains unsupported, accepted assumptions or design are challenged, materially different corrections remain, or user input could change the approach:
|
|
95
97
|
|
|
96
|
-
|
|
97
|
-
|
|
98
|
+
1. Report the adjudication, problem and consequence, cause status, settled constraints, and controlling question or evidence.
|
|
99
|
+
2. Name [Discuss](../discuss/SKILL.md), [Diagnose Failure](../diagnose-failure/SKILL.md), [Decision Gate](../decision-gate/SKILL.md), evidence gathering, or another affected owner as the next route, then stop and wait.
|
|
98
100
|
|
|
99
|
-
|
|
101
|
+
Continue remedy selection only when a later user turn or new evidence supplies enough support. Do not request implementation authority before selecting a remedy or wait for the user to elicit the missing analysis. The checkpoint is not another review and creates no correction or dispatch authority.
|
|
100
102
|
|
|
101
|
-
|
|
103
|
+
A remediation-ready route states the proposed correction and rationale, verification boundary, whether focused follow-up is needed, and authority status. Findings are evidence, not commands, and do not authorize edits. Accepted corrections return to [Execute Work](../execute-work/SKILL.md) and may remain in the same [Track Work](../track-work/SKILL.md) slice while its intended result stays coherent.
|
|
104
|
+
|
|
105
|
+
Use existing correction authority when it covers the result. Otherwise ask once for the correction and any warranted focused follow-up; omit follow-up when direct evidence can settle the changed boundary. Then wait; do not correct or dispatch a follow-up from the request itself. Verify authorized corrections and run follow-up only when the changed boundary still needs independent judgment and that dispatch is authorized. Do not change tests, Specs, policies, or accepted behavior merely to satisfy a reviewer or obtain Pass.
|
|
102
106
|
|
|
103
107
|
## Limit The Review Cycle
|
|
104
108
|
|
|
@@ -106,21 +110,19 @@ For one independently reviewed work state and boundary:
|
|
|
106
110
|
|
|
107
111
|
1. Review 1 is the normal broad review.
|
|
108
112
|
2. Review 2, when needed and authorized, focuses on accepted corrections, affected interactions, and remaining risk.
|
|
109
|
-
3. Review 3 is exceptional, authorized
|
|
113
|
+
3. Review 3 is exceptional, separately authorized, and final.
|
|
110
114
|
|
|
111
|
-
The budget is a cap, not dispatch authority. Do not request Review 4
|
|
115
|
+
The budget is a cap, not dispatch authority. Do not request Review 4; return control to Workflow at the cap.
|
|
112
116
|
|
|
113
|
-
After Review 2 is adjudicated Blocking, stop before
|
|
117
|
+
After Review 2 is adjudicated Blocking, stop before another correction or Review 3:
|
|
114
118
|
|
|
115
|
-
- If the blocker repeats, extends, invalidates, or exposes another consequence of the prior correction, or its cause remains unsupported, read [Diagnose Failure](../diagnose-failure/SKILL.md) and diagnose the shared cause
|
|
116
|
-
- If it is an independent clear local defect with a supported cause, return
|
|
119
|
+
- If the blocker repeats, extends, invalidates, or exposes another consequence of the prior correction, or its cause remains unsupported, read [Diagnose Failure](../diagnose-failure/SKILL.md) and diagnose the shared cause first.
|
|
120
|
+
- If it is an independent clear local defect with a supported cause, return to its owner and state why diagnosis is unnecessary.
|
|
117
121
|
|
|
118
|
-
|
|
122
|
+
Diagnosis follows adjudicated evidence, not reviewer judgment alone. Review 3 is final judgment after the cause and correction boundary are understood, not another attempt to discover them through patches. Workflow may establish a new cycle only for a materially new reviewed state and boundary; local fixes, a different reviewer, or renamed scope do not reset it.
|
|
119
123
|
|
|
120
124
|
## Report
|
|
121
125
|
|
|
122
|
-
For self-review, report no formal
|
|
123
|
-
|
|
124
|
-
For independent review, use the structured output in [the reviewer prompt](references/reviewer-prompt.md). The receiving agent reports the reviewer and adjudicated judgments, each material item's Accepted, Rejected, or Open outcome and reason, remaining open items, and authorized or proposed next route.
|
|
126
|
+
For self-review, report no formal result. Correct clear local issues and surface only unresolved material issues that change the route.
|
|
125
127
|
|
|
126
|
-
|
|
128
|
+
For independent review, use the [Independent Work Reviewer Contract](references/independent-work-reviewer-contract.md) and stop with its report. The receiving agent then reports the reviewer and adjudicated judgments, each material item's outcome and reason, and either the problem checkpoint or remediation-ready route defined above. Omit empty groups and support the result with source or evidence rather than confidence.
|
package/skills/review-work/references/{reviewer-prompt.md → independent-work-reviewer-contract.md}
RENAMED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Independent Work Reviewer Contract
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
Read this before preparing or performing a separately selected independent review of implementation or integrated work.
|
|
4
4
|
|
|
5
5
|
The reviewer did not produce the work. Give them the work product, source truth, and evidence needed to judge it directly. Do not provide only the author's summary, reasoning, or claimed result.
|
|
6
6
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Security Risk Lens
|
|
2
2
|
|
|
3
|
-
Read this
|
|
3
|
+
Read this before reviewing work that changes trust boundaries, authentication, authorization, permissions, untrusted input, secrets, sensitive data, security-relevant dependencies or external integrations, code-execution boundaries, or failure behavior with security consequences.
|
|
4
4
|
|
|
5
5
|
This lens helps frame review. It does not replace repo security policy, threat modeling, specialist review, or stack-specific hardening guidance.
|
|
6
6
|
|
|
@@ -13,7 +13,7 @@ Create or repair the smallest valid layered setup. Keep repository activation, p
|
|
|
13
13
|
|
|
14
14
|
Answer setup questions and delivery checks read-only. An explicit action request authorizes the smallest selected setup change under the state rules below. When repository config is missing, first activation authorizes minimal shared config; it does not authorize personal overrides, optional capabilities, replacement of invalid config, or edits to repo-owned host instructions.
|
|
15
15
|
|
|
16
|
-
Read [the activation contract](references/activation-contract.md) before changing setup state. Read [host setup](references/host-setup.md) when runtime delivery, lifecycle, or host trust matters.
|
|
16
|
+
Read [the activation contract](references/activation-contract.md) before changing setup state. Read [host setup](references/host-setup.md) when runtime delivery, lifecycle, or host trust matters.
|
|
17
17
|
|
|
18
18
|
## Establish Mutation Authority
|
|
19
19
|
|
|
@@ -64,17 +64,12 @@ Before writing local config in a Git checkout, verify it is untracked and ignore
|
|
|
64
64
|
|
|
65
65
|
If local config is invalid, report that it blocks effective runtime. Repair or remove it only with authorization; never discard it and fall back silently.
|
|
66
66
|
|
|
67
|
-
## Keep Optional Setup Explicit
|
|
68
|
-
|
|
69
|
-
Do not ask an automatic capabilities question. Configure Output Router only when explicitly requested, using [Output Router setup](references/output-router-setup.md). Preserve valid existing capability config during idempotent setup.
|
|
70
|
-
|
|
71
67
|
## Establish Same-Turn Context
|
|
72
68
|
|
|
73
69
|
After successful verification, apply newly effective context directly for the remainder of the setup turn:
|
|
74
70
|
|
|
75
|
-
- read the [Interaction Contract](../../runtime/interaction-contract.md) when it is effective;
|
|
76
|
-
- read [Workflow](../workflow/SKILL.md) and [Mode Contract](../mode-contract/SKILL.md) when Skills are effective
|
|
77
|
-
- read an explicitly configured capability skill only when runtime state says it is effective.
|
|
71
|
+
- read the [Interaction Contract](../../runtime/prompts/interaction-contract.md) when it is effective;
|
|
72
|
+
- read [Workflow](../workflow/SKILL.md) and [Mode Contract](../mode-contract/SKILL.md) when Skills are effective.
|
|
78
73
|
|
|
79
74
|
This direct read establishes same-turn guidance; it does not prove that a lifecycle adapter ran. After first activation, use [host setup](references/host-setup.md) to name the exact host-native lifecycle action for automatic delivery and resource refresh, state what applies before that boundary, and keep delivery confirmed, unavailable, or unconfirmed from evidence.
|
|
80
75
|
|
|
@@ -86,13 +81,14 @@ Verify:
|
|
|
86
81
|
- local config is missing or valid, personal, untracked, and ignored when applicable;
|
|
87
82
|
- effective `enabled`, Interaction Contract, Skills, and configured default values have the expected sources;
|
|
88
83
|
- Skills-disabled mode remains resolved but dormant;
|
|
89
|
-
- optional capability config changed only when requested;
|
|
90
84
|
- no repo-owned host instructions or unrelated files changed.
|
|
91
85
|
|
|
86
|
+
After verification supports a setup result, silently self-review the final observed or changed state before accepting, reusing, or reporting it. Correct clear local issues within the existing setup authority and re-verify the affected boundary; stop on ambiguity, route change, or an out-of-envelope correction.
|
|
87
|
+
|
|
92
88
|
Report separately:
|
|
93
89
|
|
|
94
90
|
1. shared repository activation;
|
|
95
91
|
2. personal override state and effective sources;
|
|
96
|
-
3. effective
|
|
92
|
+
3. effective Interaction Contract, Skills, and mode state;
|
|
97
93
|
4. same-turn direct context reads;
|
|
98
94
|
5. automatic runtime delivery as **confirmed**, **unavailable**, or **unconfirmed**.
|
|
@@ -19,8 +19,6 @@ Supported defaults are `conversation`, `workflow`, and `strict-workflow`. Missin
|
|
|
19
19
|
- `skills.enabled: true`
|
|
20
20
|
- `defaultMode: workflow`
|
|
21
21
|
|
|
22
|
-
Repository config may also contain documented Output Router settings. Add optional settings only after an explicit request and preserve valid existing settings during idempotent setup.
|
|
23
|
-
|
|
24
22
|
Do not add current mode, task state, phase, file inventories, plans, version metadata, activation paths, empty optional sections, host instruction copies, or generated workflow text.
|
|
25
23
|
|
|
26
24
|
Missing or invalid repository config means repository activation is absent. A valid config with effective `enabled: false` remains configured but inactive.
|
|
@@ -44,8 +42,6 @@ It may override these core values:
|
|
|
44
42
|
|
|
45
43
|
Every field is optional. Omission inherits the repository value, then the built-in default. Local core precedence is property-level, not whole-file replacement.
|
|
46
44
|
|
|
47
|
-
The local file may also contain documented local-only `processing` config. It must not contain repository-owned Output Router config.
|
|
48
|
-
|
|
49
45
|
Keep local config untracked and ignored. In a Git checkout, prefer `.git/info/exclude` or an existing ignore rule over an unsolicited shared `.gitignore` edit. Refuse to write personal overrides to a tracked local file.
|
|
50
46
|
|
|
51
47
|
A missing local file means full inheritance. An invalid existing local file blocks effective Freeflow and must not silently fall back to repository settings. Repair or removal requires authorization.
|
|
@@ -58,7 +54,7 @@ Resolve core values in this order:
|
|
|
58
54
|
host session override -> personal override -> repository value -> built-in default
|
|
59
55
|
```
|
|
60
56
|
|
|
61
|
-
Host session overrides,
|
|
57
|
+
Host session overrides are host state, not config, and cannot bypass missing or invalid repository activation. Pi may temporarily override Freeflow master enablement, Interaction Contract, Skills, and mode. Claude and Codex support mode-only overrides in plugin-owned session state.
|
|
62
58
|
|
|
63
59
|
Effective Freeflow requires:
|
|
64
60
|
|
|
@@ -68,8 +64,6 @@ Effective Freeflow requires:
|
|
|
68
64
|
|
|
69
65
|
The Interaction Contract and Skills are independent resolved switches. When Skills are disabled, the configured mode remains visible as resolved state but no Freeflow mode is effective.
|
|
70
66
|
|
|
71
|
-
Repository-owned Output Router settings remain independent capability config and take effect only while top-level Freeflow is enabled.
|
|
72
|
-
|
|
73
67
|
## Mutation Authority By State
|
|
74
68
|
|
|
75
69
|
Mode constrains agent-performed setup only when a mode is effective:
|
|
@@ -86,10 +80,11 @@ Configuration does not prove runtime delivery.
|
|
|
86
80
|
|
|
87
81
|
When effective, host adapters may deliver:
|
|
88
82
|
|
|
89
|
-
- `runtime/interaction-contract.md` when the Interaction Contract switch is enabled;
|
|
83
|
+
- `runtime/prompts/interaction-contract.md` when the Interaction Contract switch is enabled;
|
|
90
84
|
- one full `skills/workflow/SKILL.md` bootstrap when Skills are enabled;
|
|
91
|
-
- compact active or dormant mode
|
|
92
|
-
|
|
85
|
+
- compact active or dormant mode state.
|
|
86
|
+
|
|
87
|
+
Pi may additionally expose explicitly enabled Pi capability skills and tools through its extension. Codex and Claude `SessionStart` hooks compose static fragments from `runtime/prompts/` and mode state; their `UserPromptSubmit` hook delivers only an explicit session-mode change or failure delta.
|
|
93
88
|
|
|
94
89
|
The full Mode Contract and other workflow skills remain on demand. Adapters load context only; they do not enforce policy, block tools, grant permissions, or replace repo instructions.
|
|
95
90
|
|
|
@@ -37,7 +37,7 @@ Session settings can temporarily inherit, enable, or disable Freeflow, Interacti
|
|
|
37
37
|
|
|
38
38
|
Personal settings use omission to inherit. The settings path refuses to overwrite invalid or tracked local config and establishes local Git exclusion when needed. These are user-operated host controls; they update state before the next model turn. Agent-performed file edits still follow Setup Freeflow's mutation-authority rules.
|
|
39
39
|
|
|
40
|
-
When effective, Pi's `before_agent_start` path preserves the existing system prompt
|
|
40
|
+
When effective, Pi's `before_agent_start` path preserves the existing system prompt and composes the gated static fragments from `runtime/prompts/`. Runtime State is appended to every provider request; Workflow, Action Selection, and capability bodies remain discoverable rather than hidden persistent messages. Interaction Contract may be independent from Skills; Cognitive Routing, Context Virtualization, and Conversation History require Skills.
|
|
41
41
|
|
|
42
42
|
A config written during setup is visible to the available Pi adapter on the next agent turn. After first activation, tell the user to run `/reload` so Pi refreshes skills and resources fully. Without reload, the adapter can load core runtime context on the next agent turn, but resource discovery waits for reload. A session-mode command applies before the next model turn and does not require reload. For the remainder of the setup turn, read newly effective context directly after verification instead of claiming that another `before_agent_start` invocation already occurred.
|
|
43
43
|
|
|
@@ -45,9 +45,9 @@ Confirm automatic delivery through current extension status or runtime evidence
|
|
|
45
45
|
|
|
46
46
|
## Codex And Claude
|
|
47
47
|
|
|
48
|
-
The packaged
|
|
48
|
+
The packaged runtime hook reads the same repository and local layers plus plugin-owned session mode state. At supported session start, resume, clear, and compact boundaries, `SessionStart` restores the complete enabled context. On submitted prompts, `UserPromptSubmit` changes mode only for an explicit native or conservative natural-language session control and otherwise emits nothing.
|
|
49
49
|
|
|
50
|
-
When top-level Freeflow is effective, the hook loads the
|
|
50
|
+
When top-level Freeflow is effective, the hook loads the applicable static fragments from `runtime/prompts/` and reports configured, session, resolved, and effective mode state without treating a configured default as the current session mode. It does not inject a full Workflow bootstrap.
|
|
51
51
|
|
|
52
52
|
After first-time setup, tell the user to trigger the least disruptive supported host-native lifecycle boundary: resume, clear, compact, or a new session/startup as available. Name the exact control supported by the current host; do not prescribe Pi's `/reload`. Until that boundary runs, use same-turn direct reads without claiming automatic delivery.
|
|
53
53
|
|
|
@@ -61,10 +61,6 @@ Installed and trusted registration can establish availability for the next lifec
|
|
|
61
61
|
|
|
62
62
|
Do not compensate for unavailable or unconfirmed delivery by copying Freeflow text into repository instructions.
|
|
63
63
|
|
|
64
|
-
## Optional Capabilities
|
|
65
|
-
|
|
66
|
-
Do not ask a generic capability question during normal setup. If Output Router is explicitly requested, use `output-router-setup.md` and keep its config in the shared repository layer unless the documented setting is specifically local-only.
|
|
67
|
-
|
|
68
64
|
Do not install repo-local hooks, CLI commands, lint rules, global standards, documentation inventories, or state files during setup.
|
|
69
65
|
|
|
70
66
|
## Conflicts
|
|
@@ -20,7 +20,7 @@ Before editing:
|
|
|
20
20
|
|
|
21
21
|
Use this skill only when behavior should remain unchanged. If expected behavior is unclear or needs to change, return that evidence to [Workflow](../workflow/SKILL.md). If the interface or ownership is structurally wrong, use [Design for Depth](../design-for-depth/SKILL.md). If no reliable behavior loop exists, use [TDD](../tdd/SKILL.md) or [Diagnose Failure](../diagnose-failure/SKILL.md) first.
|
|
22
22
|
|
|
23
|
-
|
|
23
|
+
Before changing code, read [Code Practices](../execute-work/references/code-practices.md). Before choosing a transformation or deciding whether deletion really reduces complexity, read [Simplification Patterns](references/simplification-patterns.md).
|
|
24
24
|
|
|
25
25
|
## Classify The Opportunity
|
|
26
26
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Simplification Patterns
|
|
2
2
|
|
|
3
|
-
Use these as
|
|
3
|
+
Read this before choosing a simplification transformation or deciding whether deletion really reduces complexity. Use these patterns as candidates, not automatic rules. Preserve behavior and project conventions.
|
|
4
4
|
|
|
5
5
|
## Control Flow
|
|
6
6
|
|
package/skills/tdd/SKILL.md
CHANGED
|
@@ -5,12 +5,24 @@ description: Use when implementing or changing behavior test-first, fixing a bug
|
|
|
5
5
|
|
|
6
6
|
# Test-Driven Development
|
|
7
7
|
|
|
8
|
+
Selecting TDD creates no authority. Enter RED only when accepted behavior is settled and the current authority envelope covers the test and production effects.
|
|
9
|
+
|
|
8
10
|
Use one observed failing behavior check to guide the smallest complete implementation for one accepted behavior.
|
|
9
11
|
|
|
10
|
-
TDD is an execution method inside [Execute Work](../execute-work/SKILL.md). One vertical RED/GREEN/REFACTOR loop is a bounded action, not automatically a
|
|
12
|
+
TDD is an execution method inside [Execute Work](../execute-work/SKILL.md). One vertical RED/GREEN/REFACTOR loop is a bounded action, not automatically a new Slice. Several accepted behavior loops may remain inside one coherent Slice; when durable task memory exists, [Track Work](../track-work/SKILL.md) preserves it as the Current Slice.
|
|
11
13
|
|
|
12
14
|
TDD does not define intended behavior. The accepted request, source truth, and user decisions establish what should happen.
|
|
13
15
|
|
|
16
|
+
## Use Or Exit Deliberately
|
|
17
|
+
|
|
18
|
+
Use TDD when test-first execution is selected for an accepted behavior change, bug correction with a supported cause, consequential logic, or refactor whose behavior needs protection.
|
|
19
|
+
|
|
20
|
+
Do not force test-first work onto documentation, static content, mechanical formatting, generated output, or a disposable learning prototype whose result is not selected production behavior.
|
|
21
|
+
|
|
22
|
+
Stop before RED when expected behavior, failure semantics, or a public contract is unsettled. Return the missing direction to [Workflow](../workflow/SKILL.md) rather than encoding a guess as a test.
|
|
23
|
+
|
|
24
|
+
When TDD applies, before designing or materially changing its behavior check, read [Test Design](references/test-design.md) to choose the test level, seam, oracle, doubles, rejected-state coverage, composed failures, time or concurrency boundary, and characterization strategy.
|
|
25
|
+
|
|
14
26
|
## Follow The Behavior Loop
|
|
15
27
|
|
|
16
28
|
```text
|
|
@@ -26,56 +38,26 @@ TDD does not define intended behavior. The accepted request, source truth, and u
|
|
|
26
38
|
-> [Verify original path and affected boundary]
|
|
27
39
|
-> [Route]
|
|
28
40
|
-> another accepted behavior in this slice -> next TDD loop
|
|
29
|
-
-> coherent extension ->
|
|
41
|
+
-> coherent extension -> Workflow -> when covered, record if needed -> next TDD loop
|
|
30
42
|
-> unclear cause or structural pressure -> Workflow
|
|
31
43
|
-> supported bounded action -> return to Execute Work
|
|
32
44
|
```
|
|
33
45
|
|
|
34
46
|
Do not write all tests first and all implementation later. Finish, verify, and route one accepted behavior before starting another.
|
|
35
47
|
|
|
36
|
-
## Use Or Exit Deliberately
|
|
37
|
-
|
|
38
|
-
Use TDD for accepted behavior changes, bug fixes with a supported cause, consequential logic, and refactors whose behavior needs protection.
|
|
39
|
-
|
|
40
|
-
Do not force test-first work onto documentation, static content, mechanical formatting, generated output, or a disposable learning prototype whose result is not selected production behavior.
|
|
41
|
-
|
|
42
|
-
Stop before RED when expected behavior, failure semantics, or a public contract is unsettled. Return the missing direction to [Workflow](../workflow/SKILL.md) rather than encoding a guess as a test.
|
|
43
|
-
|
|
44
|
-
## Choose The Seam And Oracle
|
|
45
|
-
|
|
46
|
-
Test observable behavior through the highest stable interface that exercises the real requirement.
|
|
47
|
-
|
|
48
|
-
A useful seam:
|
|
49
|
-
|
|
50
|
-
- is used by callers rather than created only for tests;
|
|
51
|
-
- survives internal refactoring;
|
|
52
|
-
- reaches the real behavior or failure path;
|
|
53
|
-
- keeps setup proportionate;
|
|
54
|
-
- can disagree with the implementation.
|
|
55
|
-
|
|
56
|
-
Derive expected results from source truth, a worked example, protocol contract, or independent calculation—not the implementation algorithm.
|
|
57
|
-
|
|
58
|
-
Read [Test Design](references/test-design.md) when the test level, oracle, double, rejected state, composed failure, time or concurrency boundary, or legacy seam is unclear.
|
|
59
|
-
|
|
60
|
-
If testing requires owned internals, duplicated caller choreography, or production hooks used only by tests, return the evidence to Workflow. Use [Design for Depth](../design-for-depth/SKILL.md) only when it establishes design-bearing interface or ownership pressure; do not redesign merely because one test is inconvenient.
|
|
61
|
-
|
|
62
48
|
## Enforce The Test-First Evidence
|
|
63
49
|
|
|
64
50
|
- Observe RED failing for the intended missing behavior before changing production code.
|
|
65
51
|
- If RED passes immediately, inspect the test, observing boundary, and existing behavior; do not proceed to GREEN automatically.
|
|
66
52
|
- If RED fails because of syntax, setup, environment, or unrelated behavior, correct the harness or diagnose before implementation.
|
|
67
|
-
-
|
|
53
|
+
- Before changing production code for GREEN, read [Code Practices](../execute-work/references/code-practices.md). Then implement the smallest complete behavior.
|
|
68
54
|
- Refactor only when it improves the result while the focused behavior check remains green.
|
|
69
55
|
- Re-run the original path and smallest affected boundary before returning the supported action and evidence to Execute Work.
|
|
70
56
|
- Do not claim TDD when the check was written after implementation or RED was never observed for the intended reason.
|
|
71
57
|
|
|
72
58
|
## Keep Tests About Accepted Behavior
|
|
73
59
|
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
Use fakes, stubs, mocks, or spies only at a boundary where replacement is necessary and the double preserves the fields, effects, invariants, and failure behavior the test needs.
|
|
77
|
-
|
|
78
|
-
Do not copy the implementation into the expected value, add production methods used only by tests, change a valid test merely to make implementation pass, or treat coverage and test count as proof.
|
|
60
|
+
Use the behavior check as the RED/GREEN contract for one accepted behavior. Do not change a valid test, copy the production implementation into its expected value, or add production hooks used only by tests merely to reach GREEN.
|
|
79
61
|
|
|
80
62
|
Add an edge-case check only when accepted behavior, observed failure, material safety, or a settled failure contract requires it. If behavior is undefined, return it to Workflow. When related cases keep adding states, flags, setup, or patches, stop the behavior-loop stream and diagnose the shared contract, cause, ownership, or interface.
|
|
81
63
|
|
|
@@ -87,10 +69,8 @@ If no reliable diagnostic loop or supported cause exists, use [Diagnose Failure]
|
|
|
87
69
|
|
|
88
70
|
## Stop When Tests Start Designing The System
|
|
89
71
|
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
A green local loop does not prove the global design is right. Diagnose repeated or unexplained failure before redesigning.
|
|
72
|
+
When Test Design's pressure signals appear, the next check requires an unplanned subsystem, or making it pass expands accepted scope, stop and return the evidence to Workflow. Use [Design for Depth](../design-for-depth/SKILL.md) only when that evidence establishes design-bearing interface or ownership pressure; diagnose repeated or unexplained failure before redesigning.
|
|
93
73
|
|
|
94
74
|
## Report
|
|
95
75
|
|
|
96
|
-
Report the accepted behavior and seam, observed RED result, GREEN implementation, refactor if any, original-path and broader verification,
|
|
76
|
+
Report the accepted behavior and seam, observed RED result, GREEN implementation, refactor if any, original-path and broader verification, Slice effect when relevant, and remaining unverified behavior. Return route-changing evidence rather than silently beginning another behavior or slice.
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
# Test Design
|
|
2
2
|
|
|
3
|
-
Read this
|
|
3
|
+
Read this before designing or materially changing a TDD behavior check. Use it to choose the test level, seam, oracle, failure coverage, doubles, time or concurrency boundary, and characterization strategy.
|
|
4
4
|
|
|
5
|
-
The goal is confidence in accepted behavior, not maximal isolation or a fixed unit/integration/end-to-end ratio.
|
|
5
|
+
The goal is confidence in accepted behavior, not maximal isolation or a fixed unit/integration/end-to-end ratio.
|
|
6
6
|
|
|
7
7
|
## Choose The Confidence Boundary
|
|
8
8
|
|