@hassangameryt/freeflow 0.5.0 → 0.7.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 -2
- package/.codex-plugin/plugin.json +4 -5
- package/README.md +141 -163
- package/capabilities/cognitive-routing/SKILL.md +387 -0
- package/capabilities/context-virtualization/SKILL.md +103 -0
- package/capabilities/conversation-history/SKILL.md +53 -0
- package/command-surface.json +6 -37
- package/hooks/freeflow-runtime-context.mjs +50 -541
- package/hooks/hooks.json +1 -26
- package/hooks/tests/check-runtime-context-hook.sh +114 -308
- package/package.json +27 -17
- package/pi-extension/dist/cognitive-routing/commands.js +96 -0
- package/pi-extension/dist/cognitive-routing/config.js +232 -0
- package/pi-extension/dist/cognitive-routing/controller.js +1292 -0
- package/pi-extension/dist/cognitive-routing/history.js +451 -0
- package/pi-extension/dist/cognitive-routing/host.js +188 -0
- package/pi-extension/dist/cognitive-routing/pi-routing-session.js +414 -0
- package/pi-extension/dist/cognitive-routing/pi-session-control.js +320 -0
- package/pi-extension/dist/cognitive-routing/runtime.js +43 -0
- package/pi-extension/dist/cognitive-routing/tool.js +212 -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 +564 -129
- package/pi-extension/dist/runtime/runtime-context.js +357 -470
- 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 +572 -826
- package/pi-extension/dist/ui/text-component.js +57 -0
- package/pi-extension/src/cognitive-routing/commands.ts +129 -0
- package/pi-extension/src/cognitive-routing/config.ts +303 -0
- package/pi-extension/src/cognitive-routing/controller.ts +1628 -0
- package/pi-extension/src/cognitive-routing/history.ts +650 -0
- package/pi-extension/src/cognitive-routing/host.ts +266 -0
- package/pi-extension/src/cognitive-routing/pi-routing-session.ts +538 -0
- package/pi-extension/src/cognitive-routing/pi-session-control.ts +444 -0
- package/pi-extension/src/cognitive-routing/runtime.ts +57 -0
- package/pi-extension/src/cognitive-routing/tool.ts +273 -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 +597 -135
- package/pi-extension/src/runtime/runtime-context.ts +373 -491
- 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 +679 -910
- 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 +1128 -0
- package/pi-extension/tests/cognitive-routing/extension-lifecycle.test.js +1142 -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/pi-normal-lifecycle.test.js +434 -0
- package/pi-extension/tests/cognitive-routing/pi-session-control.test.js +174 -0
- package/pi-extension/tests/cognitive-routing/pi-session-history.test.js +91 -0
- package/pi-extension/tests/cognitive-routing/profile-resolution.test.js +279 -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/mode-free-core.test.js +218 -0
- package/pi-extension/tests/integration/pi-extension.test.js +532 -3701
- package/pi-extension/tests/integration/prompt-architecture.test.js +350 -0
- package/pi-extension/tests/integration/unaffected-regressions.test.js +411 -0
- package/runtime/prompts/cognitive-routing.md +10 -0
- package/runtime/prompts/context-virtualization.md +3 -0
- package/runtime/prompts/conversation-history.md +3 -0
- package/runtime/prompts/core.md +84 -0
- package/runtime/prompts/interaction-contract.md +11 -0
- package/skills/action-selection/SKILL.md +140 -0
- package/skills/action-selection/references/trajectory-stalls.md +71 -0
- package/skills/bypass/SKILL.md +109 -38
- package/skills/commit-work/SKILL.md +94 -55
- package/skills/commit-work/references/git-state-edges.md +94 -0
- package/skills/commit-work/references/simple-push.md +92 -0
- package/skills/commit-work/references/staging-decisions.md +79 -46
- package/skills/decision-gate/SKILL.md +80 -22
- package/skills/design-for-depth/SKILL.md +206 -60
- package/skills/design-for-depth/references/design-pressure-signals.md +108 -240
- package/skills/design-for-depth/references/interface-design-loop.md +77 -97
- package/skills/design-for-depth/references/module-and-dependency-design.md +147 -0
- package/skills/design-for-depth/references/software-design-philosophy.md +128 -174
- package/skills/design-for-depth/references/state-and-failure-boundaries.md +136 -0
- package/skills/diagnose-failure/SKILL.md +200 -48
- package/skills/diagnose-failure/references/diagnostic-loop-catalog.md +18 -6
- package/skills/diagnose-failure/references/{flaky-and-performance.md → flaky-and-performance-diagnosis.md} +13 -5
- package/skills/discuss/SKILL.md +119 -65
- package/skills/discuss/references/discussion-continuity.md +123 -0
- package/skills/evaluate-skill/SKILL.md +166 -52
- package/skills/evaluate-skill/references/{definition-schema.md → evaluation-definition-schema.md} +43 -3
- package/skills/evaluate-skill/references/evaluation-design.md +56 -30
- package/skills/evaluate-skill/references/execution-and-evidence.md +8 -3
- package/skills/evaluate-skill/references/review-and-revision.md +62 -21
- 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 +99 -57
- package/skills/execute-work/references/code-practices.md +4 -4
- package/skills/execute-work/references/execute-work-edges.md +62 -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/release-work/SKILL.md +1 -1
- package/skills/release-work/references/release-evidence.md +1 -1
- package/skills/review-artifact/SKILL.md +129 -66
- package/skills/review-artifact/references/adjudicate-artifact-review.md +101 -0
- package/skills/review-artifact/references/independent-artifact-reviewer-contract.md +159 -0
- package/skills/review-work/SKILL.md +113 -68
- package/skills/review-work/references/adjudicate-work-review.md +97 -0
- package/skills/review-work/references/independent-work-reviewer-contract.md +139 -0
- package/skills/review-work/references/security-risk-lens.md +18 -16
- package/skills/setup-freeflow/SKILL.md +16 -17
- package/skills/setup-freeflow/references/activation-contract.md +24 -30
- package/skills/setup-freeflow/references/host-setup.md +6 -7
- package/skills/simplify-code/SKILL.md +97 -39
- package/skills/simplify-code/references/simplification-patterns.md +1 -1
- package/skills/tdd/SKILL.md +100 -53
- package/skills/tdd/references/test-design.md +3 -3
- package/skills/track-work/SKILL.md +195 -58
- package/skills/track-work/references/working-record-format.md +515 -0
- package/skills/track-work/scripts/lib/document.mjs +713 -0
- package/skills/track-work/scripts/lib/format.mjs +166 -0
- package/skills/track-work/scripts/lib/store.mjs +233 -0
- package/skills/track-work/scripts/lib/transitions.mjs +790 -0
- package/skills/track-work/scripts/lib/views.mjs +40 -0
- package/skills/track-work/scripts/working-record.mjs +316 -0
- package/skills/verify-work/SKILL.md +57 -19
- package/skills/verify-work/references/browser-runtime-evidence.md +2 -2
- package/skills/verify-work/references/integration-evidence.md +1 -7
- package/skills/verify-work/references/performance-evidence.md +2 -2
- package/skills/workflow/SKILL.md +137 -55
- package/skills/workflow/references/domain-skill-composition.md +26 -40
- package/skills/write-plan/SKILL.md +1 -1
- package/skills/write-skill/SKILL.md +218 -61
- package/skills/write-skill/references/activation-boundaries.md +63 -21
- package/skills/write-skill/references/agent-first-instructions.md +61 -27
- package/skills/write-skill/references/progressive-disclosure.md +97 -33
- package/skills/write-skill/references/skill-dependency-graphs.md +190 -0
- package/capabilities/output-router/SKILL.md +0 -206
- package/capabilities/output-router/references/safety-policy.md +0 -40
- package/capabilities/output-router/references/setup.md +0 -110
- 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/mode-contract/SKILL.md +0 -104
- package/skills/review-artifact/references/reviewer-prompt.md +0 -148
- package/skills/review-work/references/reviewer-prompt.md +0 -134
- 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
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
# Simple Push
|
|
2
|
+
|
|
3
|
+
Read this before performing any push through Commit Work.
|
|
4
|
+
|
|
5
|
+
A **simple push** sends inspected local commits from the current named branch to one explicit or established remote branch without force, deletion, tag publication, integration, pull-request creation, release, or deployment.
|
|
6
|
+
|
|
7
|
+
Use [Finish Branch](../../finish-branch/SKILL.md) when the route requires choosing how to integrate, share, preserve, rewrite, or clean up branch state.
|
|
8
|
+
|
|
9
|
+
## Confirm Push Authority
|
|
10
|
+
|
|
11
|
+
Push requires authority separate from local commit.
|
|
12
|
+
|
|
13
|
+
Confirm:
|
|
14
|
+
|
|
15
|
+
- which commits are intended;
|
|
16
|
+
- the local branch;
|
|
17
|
+
- the destination remote and branch;
|
|
18
|
+
- whether setting a new upstream is included;
|
|
19
|
+
- that no force, deletion, tag, or history rewrite is implied.
|
|
20
|
+
|
|
21
|
+
Do not infer a remote, destination branch, pull-request target, or shared-branch policy when the wrong choice could affect collaborators.
|
|
22
|
+
|
|
23
|
+
## Inspect The Route
|
|
24
|
+
|
|
25
|
+
Inspect:
|
|
26
|
+
|
|
27
|
+
```bash
|
|
28
|
+
git branch --show-current
|
|
29
|
+
git status --short --branch
|
|
30
|
+
git branch -vv
|
|
31
|
+
git remote -v
|
|
32
|
+
git log -1 --oneline --decorate
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
When an upstream exists, inspect:
|
|
36
|
+
|
|
37
|
+
```bash
|
|
38
|
+
git rev-parse --abbrev-ref --symbolic-full-name @{upstream}
|
|
39
|
+
git rev-list --left-right --count @{upstream}...HEAD
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
Ahead/behind state is only as fresh as the local remote-tracking reference. Do not claim current remote state unless it was freshly observed.
|
|
43
|
+
|
|
44
|
+
Stop before pushing when:
|
|
45
|
+
|
|
46
|
+
- `HEAD` is detached;
|
|
47
|
+
- destination or upstream is unclear;
|
|
48
|
+
- unexpected commits or dirty state change the route;
|
|
49
|
+
- protected or shared-branch policy disallows the push or leaves its route unclear;
|
|
50
|
+
- local and observed upstream history diverge;
|
|
51
|
+
- the push would require force, deletion, tag publication, or another separately controlled action.
|
|
52
|
+
|
|
53
|
+
## Push The Exact Branch
|
|
54
|
+
|
|
55
|
+
Use the established upstream when it clearly matches the approved route.
|
|
56
|
+
|
|
57
|
+
When no upstream exists, set one only when the remote and branch destination are explicit and the configuration change is included in the accepted route.
|
|
58
|
+
|
|
59
|
+
Do not push additional branches or tags.
|
|
60
|
+
|
|
61
|
+
A force push is not a simple push. Return an explicitly requested history rewrite to Workflow or Finish Branch.
|
|
62
|
+
|
|
63
|
+
## Handle Rejection Without Escalation
|
|
64
|
+
|
|
65
|
+
If the push is rejected or fails:
|
|
66
|
+
|
|
67
|
+
- preserve the complete result;
|
|
68
|
+
- do not automatically pull, merge, rebase, force, change remotes, or change destination;
|
|
69
|
+
- inspect whether any remote update occurred;
|
|
70
|
+
- return authentication, divergence, policy, or destination decisions to [Workflow](../../workflow/SKILL.md) or Finish Branch.
|
|
71
|
+
|
|
72
|
+
A failed push does not invalidate the local commit.
|
|
73
|
+
|
|
74
|
+
## Verify And Report
|
|
75
|
+
|
|
76
|
+
After a successful push, inspect:
|
|
77
|
+
|
|
78
|
+
```bash
|
|
79
|
+
git status --short --branch
|
|
80
|
+
git branch -vv
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
Report:
|
|
84
|
+
|
|
85
|
+
- pushed commit range;
|
|
86
|
+
- remote and destination branch;
|
|
87
|
+
- whether an upstream was created or changed;
|
|
88
|
+
- command result and strongest observed remote-state evidence;
|
|
89
|
+
- remaining unpushed commits or dirty state;
|
|
90
|
+
- CI, review, integration, release, or deployment work not established by the push.
|
|
91
|
+
|
|
92
|
+
A successful push proves transfer to the observed destination. It does not prove pull-request creation, merge, release, deployment, or remote CI success.
|
|
@@ -1,73 +1,106 @@
|
|
|
1
1
|
# Staging Decisions
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
Read this when staged, unstaged, or untracked changes have mixed ownership or concerns; a path contains both included and excluded work; existing staged ownership is uncertain; generated, durable, sensitive, or suspicious files appear; or narrowing may require changing existing staged state.
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
This reference determines what may enter the checkpoint. It does not establish commit authority, verification, review readiness, or permission to alter user-owned work.
|
|
6
6
|
|
|
7
|
-
|
|
7
|
+
## Classify The Changed Units
|
|
8
8
|
|
|
9
|
-
|
|
10
|
-
- `git diff --cached`
|
|
11
|
-
- `git diff`
|
|
12
|
-
- `git ls-files --others --exclude-standard`
|
|
9
|
+
Classify at the path level only when the whole path has one role. Otherwise classify individual hunks.
|
|
13
10
|
|
|
14
|
-
|
|
11
|
+
- **Checkpoint content:** directly implements or proves the checkpoint claim.
|
|
12
|
+
- **Required companion:** tests, documentation, schema, metadata, or generated output required for that same claim.
|
|
13
|
+
- **Related but separable:** useful work that does not need to be preserved in this checkpoint.
|
|
14
|
+
- **Unrelated or user-owned:** work outside the accepted outcome or whose ownership is not established.
|
|
15
|
+
- **Sensitive or unsafe:** secrets, credentials, personal data, environment files, debug output, destructive state, or unexplained artifacts.
|
|
16
|
+
- **Unclear:** content whose purpose, generator, ownership, or evidence relationship is not yet supported.
|
|
15
17
|
|
|
16
|
-
|
|
18
|
+
Only checkpoint content and required companions belong.
|
|
17
19
|
|
|
18
|
-
|
|
20
|
+
A broad request such as "commit everything" may authorize broad inclusion, but it does not remove the obligation to inspect unsafe, unclear, or unexpectedly unrelated content.
|
|
19
21
|
|
|
20
|
-
|
|
21
|
-
- **Required generated output:** repo convention or task requires it and its generator is known.
|
|
22
|
-
- **Durable artifact:** Spec, policy, ADR, or Plan that belongs to the same accepted checkpoint while retaining its own authority and lifecycle.
|
|
23
|
-
- **Durable continuation memory:** Working Record or Handoff describing the same checkpoint without becoming authority over live evidence.
|
|
24
|
-
- **Related but separable:** useful work that should remain outside this checkpoint.
|
|
25
|
-
- **Unrelated or user-owned:** not part of the current outcome.
|
|
26
|
-
- **Sensitive or unsafe:** secrets, private data, debug output, destructive state, or unclear generated content.
|
|
22
|
+
## Protect Existing Staged State
|
|
27
23
|
|
|
28
|
-
|
|
24
|
+
Existing staged changes may belong to another workflow.
|
|
29
25
|
|
|
30
|
-
|
|
26
|
+
Inspect them, but do not infer that they are intended merely because they are staged. Do not silently:
|
|
31
27
|
|
|
32
|
-
|
|
28
|
+
- absorb them into the checkpoint;
|
|
29
|
+
- unstage or reset them;
|
|
30
|
+
- amend them into another commit;
|
|
31
|
+
- move them through a stash or temporary commit;
|
|
32
|
+
- replace the index or use index tricks to bypass ownership ambiguity.
|
|
33
33
|
|
|
34
|
-
-
|
|
35
|
-
- its outcome and source requirement are clear;
|
|
36
|
-
- every included path belongs to that outcome;
|
|
37
|
-
- verification supports the claim represented by the commit;
|
|
38
|
-
- selected review status is known and [Workflow](../../workflow/SKILL.md) supports the checkpoint route;
|
|
39
|
-
- excluded changes can remain untouched without loss;
|
|
40
|
-
- the final report names remaining dirty state.
|
|
34
|
+
When intended and pre-existing staged work cannot be separated without manipulating ambiguous state, present the smallest safe options and ask which checkpoint the user wants.
|
|
41
35
|
|
|
42
|
-
|
|
36
|
+
## Handle Partial Files Carefully
|
|
43
37
|
|
|
44
|
-
|
|
38
|
+
A file may contain both checkpoint and excluded hunks. Stage only the intended hunks when their behavior and evidence remain independently coherent.
|
|
45
39
|
|
|
46
|
-
|
|
40
|
+
Stop when:
|
|
47
41
|
|
|
48
|
-
-
|
|
49
|
-
-
|
|
50
|
-
-
|
|
51
|
-
-
|
|
52
|
-
- security, privacy, billing, permissions, migration, data-loss, compatibility, or public API behavior plus unrelated work;
|
|
53
|
-
- learning-slice evidence plus production changes that have not passed promotion criteria.
|
|
42
|
+
- included and excluded hunks depend on each other;
|
|
43
|
+
- partial staging would produce an invalid intermediate state;
|
|
44
|
+
- verification ran against the combined working tree and excluded changes may have affected the result;
|
|
45
|
+
- the staged version differs materially from the state that was reviewed or verified.
|
|
54
46
|
|
|
55
|
-
|
|
47
|
+
Do not claim an isolated staged checkpoint is supported merely because the combined dirty worktree passed.
|
|
56
48
|
|
|
57
|
-
## Generated Files
|
|
49
|
+
## Include Generated Files Deliberately
|
|
58
50
|
|
|
59
|
-
|
|
51
|
+
Include generated files, snapshots, lockfiles, formatter output, or build artifacts only when repository convention or the accepted outcome requires them.
|
|
60
52
|
|
|
61
|
-
|
|
53
|
+
Establish:
|
|
62
54
|
|
|
63
|
-
|
|
55
|
+
- which command or generator produced them;
|
|
56
|
+
- whether their changes are expected from the accepted source change;
|
|
57
|
+
- whether they are deterministic enough to review;
|
|
58
|
+
- whether hand edits are prohibited;
|
|
59
|
+
- whether their verification belongs to the checkpoint evidence.
|
|
64
60
|
|
|
65
|
-
|
|
61
|
+
Do not include generated output merely because it changed. Do not hand-edit it unless the repository explicitly expects that workflow.
|
|
66
62
|
|
|
67
|
-
|
|
63
|
+
## Preserve Durable Artifacts Honestly
|
|
68
64
|
|
|
69
|
-
|
|
65
|
+
A Spec, Plan, ADR, policy, public documentation file, or release artifact may have authority and maintenance rules independent of implementation.
|
|
70
66
|
|
|
71
|
-
|
|
67
|
+
Include it only when:
|
|
72
68
|
|
|
73
|
-
|
|
69
|
+
- its change is explicitly covered;
|
|
70
|
+
- it belongs to the same coherent checkpoint;
|
|
71
|
+
- it describes the same accepted behavior;
|
|
72
|
+
- its own maintenance policy permits the update.
|
|
73
|
+
|
|
74
|
+
Do not edit a durable artifact merely to make implementation appear coherent. Return contradictions to [Workflow](../../workflow/SKILL.md).
|
|
75
|
+
|
|
76
|
+
Working Records under `.freeflow/tasks/**` are ignored local memory and must never be staged or committed.
|
|
77
|
+
|
|
78
|
+
## Reject Sensitive Or Suspicious Content
|
|
79
|
+
|
|
80
|
+
Stop before staging:
|
|
81
|
+
|
|
82
|
+
- secrets, tokens, credentials, private keys, or local environment files;
|
|
83
|
+
- databases, dumps, recordings, or personal data;
|
|
84
|
+
- unexplained binaries or generated archives;
|
|
85
|
+
- logs, traces, screenshots, or debug output not explicitly required;
|
|
86
|
+
- destructive state or files whose inclusion could expose or lose user data.
|
|
87
|
+
|
|
88
|
+
Do not "clean up" suspicious files by deleting or discarding them. Preserve their state and report the exact paths.
|
|
89
|
+
|
|
90
|
+
## Verify The Candidate
|
|
91
|
+
|
|
92
|
+
After staging, compare all three states:
|
|
93
|
+
|
|
94
|
+
```bash
|
|
95
|
+
git diff --cached
|
|
96
|
+
git diff
|
|
97
|
+
git status --short --branch
|
|
98
|
+
```
|
|
99
|
+
|
|
100
|
+
The checkpoint is narrow only when:
|
|
101
|
+
|
|
102
|
+
- the index contains exactly the intended checkpoint;
|
|
103
|
+
- excluded work remains untouched;
|
|
104
|
+
- remaining dirty state is understood;
|
|
105
|
+
- verification still supports the staged version rather than only the combined worktree;
|
|
106
|
+
- the final report can name everything left behind.
|
|
@@ -1,48 +1,106 @@
|
|
|
1
1
|
---
|
|
2
|
-
name: decision-gate
|
|
3
|
-
description: Use when proceeding would silently choose for the user,
|
|
2
|
+
name: "decision-gate"
|
|
3
|
+
description: "Use when proceeding would silently choose a consequential outcome for the user, or when accepted sources conflict in a way that leaves one material choice blocking the next action."
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
# Decision Gate
|
|
7
7
|
|
|
8
|
-
|
|
8
|
+
Resolve one known blocking decision without making it for the user.
|
|
9
9
|
|
|
10
|
-
|
|
10
|
+
A **blocking decision** is a choice whose realistic answers materially change the accepted outcome, scope, behavior, risk, persistence, compatibility, evidence boundary, or next safe action.
|
|
11
11
|
|
|
12
|
-
|
|
12
|
+
Decision Gate is not general discussion, factual investigation, or an approval checkpoint for routine work. It begins only when one blocking choice or source conflict is clear enough to resolve with one direct question.
|
|
13
13
|
|
|
14
|
-
|
|
14
|
+
The [Interaction Contract](../../runtime/prompts/interaction-contract.md) governs whether the user is asking, proposing, deciding, or authorizing action. [Workflow](../workflow/SKILL.md) owns authority and routing.
|
|
15
15
|
|
|
16
|
-
|
|
17
|
-
- the request conflicts with existing code, tests, docs, policies, requirements, or established behavior;
|
|
18
|
-
- the proposed action would materially change what was requested or agreed, including its evidence quality, risk, cost, persistence, or user-visible result;
|
|
19
|
-
- new evidence exposes one known user choice or source conflict that must be resolved before proceeding.
|
|
16
|
+
## Enter With One Decision
|
|
20
17
|
|
|
21
|
-
|
|
18
|
+
Use Decision Gate only when:
|
|
22
19
|
|
|
23
|
-
|
|
20
|
+
- the requested or accepted path is known;
|
|
21
|
+
- one unresolved choice or material source conflict can be stated precisely;
|
|
22
|
+
- available evidence and established source precedence do not already settle it;
|
|
23
|
+
- different realistic answers would materially change what follows;
|
|
24
|
+
- proceeding would silently decide for the user or override accepted source truth.
|
|
24
25
|
|
|
25
|
-
|
|
26
|
+
Do not use Decision Gate for:
|
|
26
27
|
|
|
27
|
-
|
|
28
|
+
- facts available through focused passive inspection;
|
|
29
|
+
- reversible implementation details that preserve the accepted outcome;
|
|
30
|
+
- ordinary authorization for one clear additional action;
|
|
31
|
+
- preferences that do not affect the result or its acceptance;
|
|
32
|
+
- hypothetical edge cases without supported reachability or consequence;
|
|
33
|
+
- broad or unsettled option spaces that still require exploration.
|
|
34
|
+
|
|
35
|
+
Use [Discuss](../discuss/SKILL.md) when the problem, alternatives, assumptions, or direction are not yet bounded enough for one decision.
|
|
36
|
+
|
|
37
|
+
When several decisions appear, ask only the earliest one whose answer determines whether the others remain relevant. Do not turn the gate into an interview.
|
|
38
|
+
|
|
39
|
+
## Resolve Facts Before Asking
|
|
40
|
+
|
|
41
|
+
Inspect the smallest existing evidence that can settle the factual part: the current request, accepted decisions, code, tests, documentation, Specs, policies, ADRs, repository state, supplied artifacts, and current primary sources when relevant.
|
|
42
|
+
|
|
43
|
+
Do not ask the user to choose between factual claims whose truth can be established from available evidence.
|
|
44
|
+
|
|
45
|
+
When accepted sources appear to conflict:
|
|
46
|
+
|
|
47
|
+
1. state each source's exact claim and applicable scope;
|
|
48
|
+
2. determine whether each is current, accepted, draft, historical, generated, or advisory;
|
|
49
|
+
3. apply repository-defined precedence or maintenance policy when one exists;
|
|
50
|
+
4. identify the observable consequence of following each claim.
|
|
51
|
+
|
|
52
|
+
A difference is material only when applicable sources make incompatible claims and selecting between them changes the accepted result or next safe action.
|
|
53
|
+
|
|
54
|
+
Do not invent a universal hierarchy: code is not automatically correct because it runs, tests are not automatically requirements because they fail, documentation is not automatically stale because implementation differs, and task memory does not override live accepted source truth.
|
|
55
|
+
|
|
56
|
+
If established precedence resolves the conflict, return the supported result to Workflow without asking a decision question. Updating an inconsistent source belongs to its owning activity and requires its own authority.
|
|
57
|
+
|
|
58
|
+
If responsible framing requires new active evidence, return the exact claim, proposed observer, expected evidence, and stop condition to Workflow. Decision Gate does not run an experiment merely to make its question easier.
|
|
28
59
|
|
|
29
60
|
## Ask One Direct Question
|
|
30
61
|
|
|
31
|
-
State:
|
|
62
|
+
State proportionately:
|
|
32
63
|
|
|
33
|
-
1.
|
|
34
|
-
2. the
|
|
64
|
+
1. the requested or previously accepted path;
|
|
65
|
+
2. the exact missing choice or conflicting evidence;
|
|
35
66
|
3. why it changes the next action;
|
|
36
|
-
4. the
|
|
67
|
+
4. the realistic options and material tradeoffs;
|
|
37
68
|
5. a recommendation when evidence supports one;
|
|
38
69
|
6. one direct question that resolves the block.
|
|
39
70
|
|
|
71
|
+
Frame the choice around the outcome the user owns, not ordinary implementation mechanics. Do not ask which file to change when the real decision is which behavior or contract should govern.
|
|
72
|
+
|
|
73
|
+
Do not manufacture a menu. Omit dominated, unsafe, unavailable, or hypothetical options. A direct yes-or-no question is appropriate when one supported deviation needs a decision. Include preserving the current behavior, waiting, or stopping only when each is real.
|
|
74
|
+
|
|
75
|
+
Recommend plainly when one path is better supported. State its principal tradeoff and what evidence or changed priority would alter the recommendation. A recommendation is not the user's decision.
|
|
76
|
+
|
|
40
77
|
Then stop. Do not perform the blocked action in the same response.
|
|
41
78
|
|
|
42
|
-
Urgency,
|
|
79
|
+
Urgency, prior effort, reviewer confidence, common practice, or general approval to continue does not resolve an unnamed decision or source conflict.
|
|
80
|
+
|
|
81
|
+
## Interpret And Return The Decision
|
|
82
|
+
|
|
83
|
+
Treat an explicit choice as resolving only the decision that was asked. A question, criticism, hypothesis, preference, conditional answer, or request for more information is not automatically a decision; respond to its substance and keep the blocked action stopped.
|
|
84
|
+
|
|
85
|
+
Route narrowly:
|
|
86
|
+
|
|
87
|
+
- explicit choice with a clear covered path → Workflow;
|
|
88
|
+
- answer that reopens alternatives or assumptions → Discuss;
|
|
89
|
+
- unresolved factual evidence → Workflow and the appropriate evidence owner;
|
|
90
|
+
- defer, preserve, or stop → return that outcome without forcing progress.
|
|
91
|
+
|
|
92
|
+
A resolved decision may complete the missing intent for a still-valid request. It does not authorize unrelated effects or another outcome by implication.
|
|
93
|
+
|
|
94
|
+
Return to Workflow with:
|
|
95
|
+
|
|
96
|
+
- the exact decision and who or what established it;
|
|
97
|
+
- the selected outcome and important exclusions;
|
|
98
|
+
- material consequences and affected source truth;
|
|
99
|
+
- remaining uncertainty or revisit condition;
|
|
100
|
+
- the authority state of the next action.
|
|
43
101
|
|
|
44
|
-
|
|
102
|
+
When losing the decision or its rationale could cause later misalignment, Workflow may route [Track Work](../track-work/SKILL.md) to preserve it. Decision Gate does not mutate task memory itself.
|
|
45
103
|
|
|
46
|
-
|
|
104
|
+
Do not broaden the answer, reinterpret it as approval for a different path, or continue past another separately controlled boundary.
|
|
47
105
|
|
|
48
|
-
|
|
106
|
+
Stop when one direct question has been asked and no answer exists, the answer does not resolve the material block, the appropriate decision owner is unavailable, or active evidence is required before a responsible choice can be framed. A supported wait, deferment, preservation boundary, or stop is a valid result.
|