@hassangameryt/freeflow 0.7.3 → 0.9.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.agents/plugins/marketplace.json +2 -2
- package/.claude-plugin/marketplace.json +1 -1
- package/.claude-plugin/plugin.json +2 -2
- package/.codex-plugin/plugin.json +3 -3
- package/.cursor-plugin/plugin.json +1 -1
- package/NOTICE +14 -0
- package/README.md +101 -159
- package/capabilities/cognitive-routing/SKILL.md +47 -210
- package/capabilities/cognitive-routing/references/coordinator.md +163 -0
- package/capabilities/cognitive-routing/references/worker.md +38 -0
- package/capabilities/compaction/SKILL.md +49 -0
- package/capabilities/compaction/references/summary-format.md +250 -0
- package/capabilities/messaging/SKILL.md +49 -0
- package/capabilities/task-memory/SKILL.md +87 -0
- package/command-surface.json +8 -52
- package/gemini-extension.json +1 -1
- package/hooks/claude/hooks.json +13 -3
- package/hooks/codex/hooks.json +2 -1
- package/hooks/shared/runtime-context.mjs +73 -83
- package/licenses/Apache-2.0.txt +55 -0
- package/package.json +42 -12
- package/pi-extension/README.md +41 -0
- package/pi-extension/dist/ask-user/ask.js +108 -0
- package/pi-extension/dist/ask-user/form.js +250 -0
- package/pi-extension/dist/ask-user/questions.js +66 -0
- package/pi-extension/dist/ask-user/tool.js +124 -0
- package/pi-extension/dist/cognitive-routing/assembler.js +417 -0
- package/pi-extension/dist/cognitive-routing/bootstrap.js +90 -0
- package/pi-extension/dist/{cognitive-routing-v2 → cognitive-routing}/config.js +8 -6
- package/pi-extension/dist/cognitive-routing/economics.js +45 -0
- package/pi-extension/dist/cognitive-routing/event-schema.js +388 -0
- package/pi-extension/dist/{session-sources/events.js → cognitive-routing/event-store.js} +107 -41
- package/pi-extension/dist/cognitive-routing/gate.js +256 -0
- package/pi-extension/dist/cognitive-routing/handlers.js +901 -0
- package/pi-extension/dist/cognitive-routing/handoffs.js +350 -0
- package/pi-extension/dist/cognitive-routing/model-control.js +476 -0
- package/pi-extension/dist/cognitive-routing/projection.js +520 -0
- package/pi-extension/dist/cognitive-routing/provenance.js +83 -0
- package/pi-extension/dist/{cognitive-routing-v2 → cognitive-routing}/render.js +15 -15
- package/pi-extension/dist/cognitive-routing/runtime.js +398 -0
- package/pi-extension/dist/{cognitive-routing-v2 → cognitive-routing}/schemas.js +47 -11
- package/pi-extension/dist/cognitive-routing/session.js +223 -0
- package/pi-extension/dist/{session-sources → cognitive-routing}/sources.js +126 -87
- package/pi-extension/dist/{cognitive-routing-v2 → cognitive-routing}/state.js +55 -386
- package/pi-extension/dist/cognitive-routing/status.js +81 -0
- package/pi-extension/dist/cognitive-routing/tools.js +74 -0
- package/pi-extension/dist/{cognitive-routing-v2 → cognitive-routing}/types.js +14 -11
- package/pi-extension/dist/compaction/carry.js +205 -0
- package/pi-extension/dist/compaction/config.js +24 -0
- package/pi-extension/dist/compaction/controller.js +494 -0
- package/pi-extension/dist/compaction/harness.js +93 -0
- package/pi-extension/dist/compaction/results.js +159 -0
- package/pi-extension/dist/compaction/thresholds.js +35 -0
- package/pi-extension/dist/compaction/tool.js +57 -0
- package/pi-extension/dist/host/branch.js +13 -0
- package/pi-extension/dist/host/canonical.js +12 -0
- package/pi-extension/dist/host/catalog.js +62 -0
- package/pi-extension/dist/host/config-validation.js +233 -0
- package/pi-extension/dist/host/config.js +361 -0
- package/pi-extension/dist/host/inbound.js +142 -0
- package/pi-extension/dist/host/projection-tags.js +60 -0
- package/pi-extension/dist/host/prompts.js +93 -0
- package/pi-extension/dist/{session-sources → host}/read-only-session.js +117 -1
- package/pi-extension/dist/{runtime → host}/request-history.js +125 -39
- package/pi-extension/dist/host/rows.js +25 -0
- package/pi-extension/dist/host/runtime-state.js +204 -0
- package/pi-extension/dist/host/section-keeper.js +85 -0
- package/pi-extension/dist/host/settings/freeflow-command.js +2323 -0
- package/pi-extension/dist/{settings/settings-tui.js → host/settings/settings-view.js} +205 -73
- package/pi-extension/dist/host/staging.js +28 -0
- package/pi-extension/dist/host/status.js +115 -0
- package/pi-extension/dist/index.js +1004 -188
- package/pi-extension/dist/messaging/config.js +27 -0
- package/pi-extension/dist/messaging/messaging.js +398 -0
- package/pi-extension/dist/messaging/registry.js +57 -0
- package/pi-extension/dist/messaging/render.js +90 -0
- package/pi-extension/dist/messaging/tools.js +109 -0
- package/pi-extension/dist/messaging/transport.js +101 -0
- package/pi-extension/dist/provider-support/cache/anchor.js +21 -0
- package/pi-extension/dist/provider-support/cache/anthropic.js +102 -0
- package/pi-extension/dist/provider-support/cache/health.js +73 -0
- package/pi-extension/dist/provider-support/cache/index.js +58 -0
- package/pi-extension/dist/provider-support/cache/keepalive.js +222 -0
- package/pi-extension/dist/provider-support/cache/monitor.js +17 -0
- package/pi-extension/dist/provider-support/cache/openai-responses.js +48 -0
- package/pi-extension/dist/provider-support/effort.js +13 -0
- package/pi-extension/dist/provider-support/index.js +44 -3
- package/pi-extension/dist/provider-support/{astra → openai}/adapter.js +46 -29
- package/pi-extension/dist/provider-support/{astra → openai}/history.js +10 -8
- package/pi-extension/dist/provider-support/{astra → openai}/index.js +8 -4
- package/pi-extension/dist/provider-support/{astra → openai}/session-state.js +29 -38
- package/pi-extension/dist/provider-support/routes.js +17 -0
- package/pi-extension/dist/task-memory/config.js +49 -0
- package/pi-extension/dist/task-memory/registry.js +119 -0
- package/pi-extension/dist/task-memory/render.js +107 -0
- package/pi-extension/dist/task-memory/runtime.js +994 -0
- package/pi-extension/dist/task-memory/tool.js +233 -0
- package/pi-extension/dist/tool-execution/apply-patch/grammar.js +23 -0
- package/pi-extension/dist/tool-execution/apply-patch/match.js +38 -0
- package/pi-extension/dist/tool-execution/apply-patch/parser.js +177 -0
- package/pi-extension/dist/tool-execution/apply-patch/plan.js +201 -0
- package/pi-extension/dist/tool-execution/apply-patch/tool.js +84 -0
- package/pi-extension/dist/tool-execution/background.js +430 -0
- package/pi-extension/dist/tool-execution/bash-guard.js +23 -0
- package/pi-extension/dist/tool-execution/config.js +33 -0
- package/pi-extension/dist/tool-execution/edit-messages.js +120 -0
- package/pi-extension/dist/tool-execution/file-state.js +138 -0
- package/pi-extension/dist/tool-execution/file-tracking.js +163 -0
- package/pi-extension/dist/tool-execution/guidance-notices.js +124 -0
- package/pi-extension/dist/tool-execution/prompt.js +54 -0
- package/pi-extension/dist/tool-execution/skill-reads.js +143 -0
- package/pi-extension/dist/tool-execution/tools.js +16 -0
- package/pi-extension/freeflow/README.md +9 -0
- package/runtime/prompts/cognitive-routing.md +4 -4
- package/runtime/prompts/core.md +29 -72
- package/runtime/prompts/interaction-contract.md +18 -8
- package/runtime/prompts/tool-execution.md +25 -0
- package/runtime/prompts/working-method.md +25 -0
- package/skills/deliver-work/SKILL.md +76 -0
- package/skills/deliver-work/references/branch-closeout.md +134 -0
- package/skills/deliver-work/references/commit.md +83 -0
- package/skills/deliver-work/references/launch.md +94 -0
- package/skills/deliver-work/references/release.md +85 -0
- package/skills/deliver-work/scripts/commit-state.mjs +139 -0
- package/skills/deliver-work/scripts/delivery-state.mjs +107 -0
- package/skills/deliver-work/scripts/lib/git-state.mjs +178 -0
- package/skills/deliver-work/scripts/push-route.mjs +122 -0
- package/skills/deliver-work/scripts/release-preflight.mjs +177 -0
- package/skills/discuss-work/SKILL.md +148 -0
- package/skills/{discuss → discuss-work}/references/discussion-continuity.md +13 -50
- package/skills/discuss-work/references/learning-action.md +36 -0
- package/skills/discuss-work/scripts/choices.mjs +101 -0
- package/skills/discuss-work/scripts/lib/choices.mjs +159 -0
- package/skills/evaluate-behavior/SKILL.md +107 -0
- package/skills/evaluate-behavior/references/authoring.md +381 -0
- package/skills/evaluate-behavior/references/coding-tasks.md +145 -0
- package/skills/evaluate-behavior/references/conversations-pipelines-judges.md +177 -0
- package/skills/evaluate-behavior/references/design-and-measurement.md +273 -0
- package/skills/evaluate-behavior/references/running-and-evidence.md +245 -0
- package/skills/evaluate-behavior/scripts/claude-guard.mjs +76 -0
- package/skills/evaluate-behavior/scripts/guard-rules.mjs +309 -0
- package/skills/evaluate-behavior/scripts/lib/agreement.mjs +90 -0
- package/skills/evaluate-behavior/scripts/lib/arms.mjs +55 -0
- package/skills/evaluate-behavior/scripts/lib/budget.mjs +87 -0
- package/skills/evaluate-behavior/scripts/lib/build-source.mjs +287 -0
- package/skills/evaluate-behavior/scripts/lib/clear.mjs +74 -0
- package/skills/evaluate-behavior/scripts/lib/container.mjs +395 -0
- package/skills/evaluate-behavior/scripts/lib/decision.mjs +418 -0
- package/skills/evaluate-behavior/scripts/lib/definitions.mjs +1072 -0
- package/skills/evaluate-behavior/scripts/lib/freeflow.mjs +103 -0
- package/skills/evaluate-behavior/scripts/lib/grade-command.mjs +591 -0
- package/skills/evaluate-behavior/scripts/lib/grade-comparison.mjs +90 -0
- package/skills/{evaluate-skill → evaluate-behavior}/scripts/lib/grade-interaction.mjs +19 -18
- package/skills/{evaluate-skill → evaluate-behavior}/scripts/lib/grade-support.mjs +32 -5
- package/skills/{evaluate-skill → evaluate-behavior}/scripts/lib/grade-workspace.mjs +28 -12
- package/skills/evaluate-behavior/scripts/lib/grade.mjs +101 -0
- package/skills/evaluate-behavior/scripts/lib/hooks.mjs +98 -0
- package/skills/evaluate-behavior/scripts/lib/hosts/claude-code/confinement.mjs +196 -0
- package/skills/evaluate-behavior/scripts/lib/hosts/claude-code/constraints.mjs +111 -0
- package/skills/evaluate-behavior/scripts/lib/hosts/claude-code/index.mjs +48 -0
- package/skills/evaluate-behavior/scripts/lib/hosts/claude-code/isolation.mjs +74 -0
- package/skills/evaluate-behavior/scripts/lib/hosts/claude-code/launch.mjs +123 -0
- package/skills/evaluate-behavior/scripts/lib/hosts/claude-code/model-call.mjs +73 -0
- package/skills/evaluate-behavior/scripts/lib/hosts/claude-code/recorder.mjs +178 -0
- package/skills/evaluate-behavior/scripts/lib/hosts/claude-code/session.mjs +494 -0
- package/skills/evaluate-behavior/scripts/lib/hosts/claude-code/skills.mjs +81 -0
- package/skills/evaluate-behavior/scripts/lib/hosts/index.mjs +31 -0
- package/skills/evaluate-behavior/scripts/lib/hosts/names.mjs +3 -0
- package/skills/evaluate-behavior/scripts/lib/hosts/pi/confinement.mjs +173 -0
- package/skills/evaluate-behavior/scripts/lib/hosts/pi/host.mjs +148 -0
- package/skills/evaluate-behavior/scripts/lib/hosts/pi/index.mjs +70 -0
- package/skills/evaluate-behavior/scripts/lib/hosts/pi/isolation.mjs +81 -0
- package/skills/evaluate-behavior/scripts/lib/hosts/pi/model-call.mjs +79 -0
- package/skills/evaluate-behavior/scripts/lib/hosts/pi/process.mjs +241 -0
- package/skills/{evaluate-skill/scripts/lib → evaluate-behavior/scripts/lib/hosts/pi}/rpc.mjs +144 -26
- package/skills/evaluate-behavior/scripts/lib/identity.mjs +82 -0
- package/skills/evaluate-behavior/scripts/lib/judge.mjs +688 -0
- package/skills/evaluate-behavior/scripts/lib/metrics.mjs +332 -0
- package/skills/evaluate-behavior/scripts/lib/model-call.mjs +17 -0
- package/skills/evaluate-behavior/scripts/lib/participants.mjs +616 -0
- package/skills/{evaluate-skill → evaluate-behavior}/scripts/lib/process.mjs +22 -0
- package/skills/evaluate-behavior/scripts/lib/queue.mjs +54 -0
- package/skills/evaluate-behavior/scripts/lib/reference.mjs +343 -0
- package/skills/evaluate-behavior/scripts/lib/reuse.mjs +277 -0
- package/skills/evaluate-behavior/scripts/lib/review.mjs +933 -0
- package/skills/evaluate-behavior/scripts/lib/runner.mjs +732 -0
- package/skills/{evaluate-skill → evaluate-behavior}/scripts/lib/sandbox.mjs +121 -14
- package/skills/evaluate-behavior/scripts/lib/scan-shell.mjs +457 -0
- package/skills/evaluate-behavior/scripts/lib/scan.mjs +479 -0
- package/skills/evaluate-behavior/scripts/lib/seal.mjs +91 -0
- package/skills/evaluate-behavior/scripts/lib/shell.mjs +560 -0
- package/skills/evaluate-behavior/scripts/lib/source-override.mjs +64 -0
- package/skills/evaluate-behavior/scripts/lib/subject-file.mjs +88 -0
- package/skills/{evaluate-skill/scripts/lib/pi.mjs → evaluate-behavior/scripts/lib/subject.mjs} +239 -262
- package/skills/evaluate-behavior/scripts/lib/task-copy.mjs +124 -0
- package/skills/evaluate-behavior/scripts/lib/trials.mjs +524 -0
- package/skills/evaluate-behavior/scripts/lib/validity.mjs +68 -0
- package/skills/evaluate-behavior/scripts/lib/view-html.mjs +454 -0
- package/skills/{evaluate-skill → evaluate-behavior}/scripts/lib/view.mjs +218 -11
- package/skills/evaluate-behavior/scripts/pi-command-tool.mjs +159 -0
- package/skills/evaluate-behavior/scripts/pi-container-route.mjs +23 -0
- package/skills/evaluate-behavior/scripts/pi-guard.mjs +77 -0
- package/skills/evaluate-behavior/scripts/pi-login-refresh.mjs +31 -0
- package/skills/evaluate-behavior/scripts/skill-eval.mjs +586 -0
- package/skills/execute-work/SKILL.md +96 -72
- package/skills/execute-work/references/code-practices.md +27 -49
- package/skills/execute-work/references/design.md +271 -0
- package/skills/execute-work/references/diagnose.md +117 -0
- package/skills/execute-work/references/migration.md +108 -0
- package/skills/execute-work/references/simplify.md +65 -0
- package/skills/execute-work/scripts/self-review.mjs +422 -0
- package/skills/execute-work/scripts/touch-map.mjs +290 -0
- package/skills/review-work/SKILL.md +94 -64
- package/skills/review-work/references/adjudication.md +94 -0
- package/skills/review-work/references/artifact.md +198 -0
- package/skills/review-work/references/evals-and-judges.md +66 -0
- package/skills/review-work/references/work.md +177 -0
- package/skills/review-work/scripts/check-brief.mjs +128 -0
- package/skills/review-work/scripts/review-packet.mjs +233 -0
- package/skills/setup-freeflow/SKILL.md +69 -16
- package/skills/track-work/SKILL.md +135 -151
- package/skills/track-work/references/handoff.md +190 -0
- package/skills/track-work/references/projects.md +51 -0
- package/skills/track-work/references/working-record-format.md +201 -344
- package/skills/track-work/scripts/lib/document.mjs +79 -19
- package/skills/track-work/scripts/lib/format.mjs +18 -1
- package/skills/track-work/scripts/lib/recover.mjs +254 -0
- package/skills/track-work/scripts/lib/registry.mjs +656 -0
- package/skills/track-work/scripts/lib/search.mjs +40 -0
- package/skills/track-work/scripts/lib/store.mjs +53 -21
- package/skills/track-work/scripts/lib/transitions.mjs +79 -4
- package/skills/track-work/scripts/lib/views.mjs +50 -1
- package/skills/track-work/scripts/working-record.mjs +263 -22
- package/skills/verify-work/SKILL.md +64 -47
- package/skills/verify-work/references/feature-map.md +120 -0
- package/skills/verify-work/references/runtime-evidence.md +203 -0
- package/skills/verify-work/references/test-design.md +27 -6
- package/skills/verify-work/scripts/test-changes.mjs +246 -0
- package/skills/write-docs/SKILL.md +171 -0
- package/skills/write-docs/references/documentation-shapes.md +184 -0
- package/skills/write-docs/references/spec-and-plan-shapes.md +308 -0
- package/skills/write-docs/scripts/artifact-check.mjs +148 -0
- package/skills/write-docs/scripts/docs-check.mjs +229 -0
- package/skills/write-docs/scripts/plan-lint.mjs +123 -0
- package/skills/write-skill/SKILL.md +165 -165
- package/skills/write-skill/references/activation-and-wording.md +143 -0
- package/skills/write-skill/references/placement-and-dependencies.md +154 -0
- package/skills/write-skill/scripts/lib/compare.mjs +701 -0
- package/skills/write-skill/scripts/lib/similarity.mjs +56 -0
- package/skills/write-skill/scripts/lib/skill-author.mjs +197 -3
- package/skills/write-skill/scripts/skill-author.mjs +67 -8
- package/capabilities/context-virtualization/SKILL.md +0 -103
- package/capabilities/conversation-history/SKILL.md +0 -53
- package/hooks/tests/check-host-adapters.test.mjs +0 -82
- package/hooks/tests/check-runtime-context-hook.sh +0 -212
- package/pi-extension/dist/cognitive-routing-v2/projection.js +0 -330
- package/pi-extension/dist/cognitive-routing-v2/runtime.js +0 -2181
- package/pi-extension/dist/cognitive-routing-v2/tools.js +0 -60
- package/pi-extension/dist/context-virtualization/commands.js +0 -89
- package/pi-extension/dist/context-virtualization/projector.js +0 -42
- package/pi-extension/dist/context-virtualization/runtime.js +0 -378
- package/pi-extension/dist/context-virtualization/state.js +0 -57
- package/pi-extension/dist/context-virtualization/types.js +0 -10
- package/pi-extension/dist/conversation-history/passages.js +0 -66
- package/pi-extension/dist/conversation-history/ranking.js +0 -105
- package/pi-extension/dist/conversation-history/runtime.js +0 -226
- package/pi-extension/dist/conversation-history/search.js +0 -56
- package/pi-extension/dist/conversation-history/types.js +0 -1
- package/pi-extension/dist/freeflow-context/resolver.js +0 -120
- package/pi-extension/dist/freeflow-context/runtime.js +0 -80
- package/pi-extension/dist/freeflow-context/source-projector.js +0 -95
- package/pi-extension/dist/freeflow-context/tool.js +0 -314
- package/pi-extension/dist/freeflow-context/types.js +0 -12
- package/pi-extension/dist/freeflow-context/visibility.js +0 -28
- package/pi-extension/dist/integrations/mcp-config.js +0 -29
- package/pi-extension/dist/runtime/runtime-context.js +0 -754
- package/pi-extension/dist/runtime/runtime-identity.js +0 -5
- package/pi-extension/dist/session-sources/provenance.js +0 -32
- package/pi-extension/dist/settings/settings-ui.js +0 -1360
- package/pi-extension/dist/ui/text-component.js +0 -57
- package/pi-extension/src/cognitive-routing-v2/budget.ts +0 -42
- package/pi-extension/src/cognitive-routing-v2/config.ts +0 -173
- package/pi-extension/src/cognitive-routing-v2/projection.ts +0 -375
- package/pi-extension/src/cognitive-routing-v2/render.ts +0 -277
- package/pi-extension/src/cognitive-routing-v2/runtime.ts +0 -2241
- package/pi-extension/src/cognitive-routing-v2/schemas.ts +0 -180
- package/pi-extension/src/cognitive-routing-v2/state.ts +0 -839
- package/pi-extension/src/cognitive-routing-v2/tools.ts +0 -62
- package/pi-extension/src/cognitive-routing-v2/types.ts +0 -254
- package/pi-extension/src/context-virtualization/commands.ts +0 -111
- package/pi-extension/src/context-virtualization/projector.ts +0 -62
- package/pi-extension/src/context-virtualization/runtime.ts +0 -428
- package/pi-extension/src/context-virtualization/state.ts +0 -79
- package/pi-extension/src/context-virtualization/types.ts +0 -92
- package/pi-extension/src/conversation-history/passages.ts +0 -81
- package/pi-extension/src/conversation-history/ranking.ts +0 -155
- package/pi-extension/src/conversation-history/runtime.ts +0 -250
- package/pi-extension/src/conversation-history/search.ts +0 -79
- package/pi-extension/src/conversation-history/types.ts +0 -31
- package/pi-extension/src/freeflow-context/resolver.ts +0 -139
- package/pi-extension/src/freeflow-context/runtime.ts +0 -100
- package/pi-extension/src/freeflow-context/source-projector.ts +0 -106
- package/pi-extension/src/freeflow-context/tool.ts +0 -366
- package/pi-extension/src/freeflow-context/types.ts +0 -70
- package/pi-extension/src/freeflow-context/visibility.ts +0 -53
- package/pi-extension/src/index.ts +0 -390
- package/pi-extension/src/integrations/mcp-config.ts +0 -32
- package/pi-extension/src/provider-support/astra/adapter.ts +0 -108
- package/pi-extension/src/provider-support/astra/history.ts +0 -145
- package/pi-extension/src/provider-support/astra/index.ts +0 -12
- package/pi-extension/src/provider-support/astra/session-state.ts +0 -113
- package/pi-extension/src/provider-support/index.ts +0 -5
- package/pi-extension/src/runtime/request-history.ts +0 -243
- package/pi-extension/src/runtime/runtime-context.ts +0 -860
- package/pi-extension/src/runtime/runtime-identity.ts +0 -8
- package/pi-extension/src/session-sources/events.ts +0 -230
- package/pi-extension/src/session-sources/provenance.ts +0 -39
- package/pi-extension/src/session-sources/read-only-session.ts +0 -170
- package/pi-extension/src/session-sources/sources.ts +0 -334
- package/pi-extension/src/settings/settings-tui.ts +0 -501
- package/pi-extension/src/settings/settings-ui.ts +0 -1652
- package/pi-extension/src/ui/text-component.ts +0 -66
- package/pi-extension/tests/cache-reuse/history.test.js +0 -117
- package/pi-extension/tests/cache-reuse/native.test.js +0 -91
- package/pi-extension/tests/cache-reuse/settings.test.js +0 -211
- package/pi-extension/tests/cognitive-routing-v2/communication.test.js +0 -577
- package/pi-extension/tests/cognitive-routing-v2/compaction-input.test.js +0 -183
- package/pi-extension/tests/cognitive-routing-v2/delegation.test.js +0 -557
- package/pi-extension/tests/cognitive-routing-v2/native.test.js +0 -474
- package/pi-extension/tests/cognitive-routing-v2/performance.test.js +0 -87
- package/pi-extension/tests/cognitive-routing-v2/persistence.test.js +0 -300
- package/pi-extension/tests/cognitive-routing-v2/projection.test.js +0 -241
- package/pi-extension/tests/cognitive-routing-v2/recovery.test.js +0 -1034
- package/pi-extension/tests/cognitive-routing-v2/render.test.js +0 -244
- package/pi-extension/tests/cognitive-routing-v2/runtime.test.js +0 -423
- package/pi-extension/tests/cognitive-routing-v2/stabilization.test.js +0 -521
- package/pi-extension/tests/cognitive-routing-v2/state.test.js +0 -586
- package/pi-extension/tests/context-virtualization/extension.test.js +0 -775
- package/pi-extension/tests/context-virtualization/projector.test.js +0 -110
- package/pi-extension/tests/context-virtualization/runtime.test.js +0 -230
- package/pi-extension/tests/conversation-history/runtime.test.js +0 -98
- package/pi-extension/tests/conversation-history/search.test.js +0 -97
- package/pi-extension/tests/fixtures/pi-host.js +0 -4
- package/pi-extension/tests/fixtures/routing-native.js +0 -191
- package/pi-extension/tests/integration/mode-free-core.test.js +0 -220
- package/pi-extension/tests/integration/pi-extension.test.js +0 -1447
- package/pi-extension/tests/integration/prompt-architecture.test.js +0 -447
- package/pi-extension/tests/integration/unaffected-regressions.test.js +0 -478
- package/pi-extension/tests/provider-support/astra-boundaries.test.js +0 -75
- package/pi-extension/tests/provider-support/astra.test.js +0 -306
- package/pi-extension/tests/provider-support/cli.test.js +0 -92
- package/pi-extension/tests/provider-support/native.test.js +0 -183
- package/pi-extension/tests/settings/settings-tui.test.js +0 -243
- package/pi-extension/tsconfig.json +0 -16
- package/plugin.json +0 -33
- package/runtime/prompts/context-virtualization.md +0 -3
- package/runtime/prompts/conversation-history.md +0 -3
- package/skills/action-selection/SKILL.md +0 -100
- package/skills/action-selection/references/trajectory-stalls.md +0 -71
- package/skills/bypass/SKILL.md +0 -153
- package/skills/commit-work/SKILL.md +0 -145
- package/skills/commit-work/references/git-state-edges.md +0 -94
- package/skills/commit-work/references/simple-push.md +0 -92
- package/skills/commit-work/references/staging-decisions.md +0 -106
- package/skills/decision-gate/SKILL.md +0 -106
- package/skills/design-for-depth/SKILL.md +0 -117
- package/skills/design-for-depth/references/design-pressure-signals.md +0 -182
- package/skills/design-for-depth/references/implementation-decisions.md +0 -76
- package/skills/design-for-depth/references/interface-design-loop.md +0 -136
- package/skills/design-for-depth/references/module-and-dependency-design.md +0 -147
- package/skills/design-for-depth/references/software-design-philosophy.md +0 -202
- package/skills/design-for-depth/references/state-and-failure-boundaries.md +0 -136
- package/skills/diagnose-failure/SKILL.md +0 -125
- package/skills/diagnose-failure/references/diagnostic-loop-catalog.md +0 -48
- package/skills/diagnose-failure/references/flaky-and-performance-diagnosis.md +0 -51
- package/skills/discuss/SKILL.md +0 -116
- package/skills/evaluate-skill/SKILL.md +0 -219
- package/skills/evaluate-skill/references/evaluation-definition-schema.md +0 -385
- package/skills/evaluate-skill/references/evaluation-design.md +0 -112
- package/skills/evaluate-skill/references/execution-and-evidence.md +0 -90
- package/skills/evaluate-skill/references/review-and-revision.md +0 -92
- package/skills/evaluate-skill/scripts/lib/definitions.mjs +0 -407
- package/skills/evaluate-skill/scripts/lib/grade-comparison.mjs +0 -60
- package/skills/evaluate-skill/scripts/lib/grade.mjs +0 -64
- package/skills/evaluate-skill/scripts/lib/runner.mjs +0 -368
- package/skills/evaluate-skill/scripts/pi-guard.mjs +0 -164
- package/skills/evaluate-skill/scripts/skill-eval.mjs +0 -102
- package/skills/execute-work/references/execute-work-edges.md +0 -68
- package/skills/finish-branch/SKILL.md +0 -117
- package/skills/finish-branch/references/integration-options.md +0 -80
- package/skills/handoff/SKILL.md +0 -82
- package/skills/handoff/references/handoff-templates.md +0 -150
- package/skills/launch-work/SKILL.md +0 -116
- package/skills/launch-work/references/launch-readiness.md +0 -85
- package/skills/migration-work/SKILL.md +0 -115
- package/skills/migration-work/references/migration-lifecycle.md +0 -82
- package/skills/release-work/SKILL.md +0 -118
- package/skills/release-work/references/release-evidence.md +0 -78
- package/skills/review-artifact/SKILL.md +0 -142
- package/skills/review-artifact/references/adjudicate-artifact-review.md +0 -101
- package/skills/review-artifact/references/independent-artifact-reviewer-contract.md +0 -159
- package/skills/review-work/references/adjudicate-work-review.md +0 -97
- package/skills/review-work/references/independent-work-reviewer-contract.md +0 -139
- package/skills/review-work/references/security-risk-lens.md +0 -69
- package/skills/setup-freeflow/references/activation-contract.md +0 -109
- package/skills/setup-freeflow/references/host-setup.md +0 -67
- package/skills/simplify-code/SKILL.md +0 -85
- package/skills/simplify-code/references/simplification-patterns.md +0 -70
- package/skills/verify-work/references/browser-runtime-evidence.md +0 -55
- package/skills/verify-work/references/integration-evidence.md +0 -47
- package/skills/verify-work/references/performance-evidence.md +0 -57
- package/skills/workflow/SKILL.md +0 -127
- package/skills/workflow/references/domain-skill-composition.md +0 -43
- package/skills/write-plan/SKILL.md +0 -92
- package/skills/write-plan/references/plan-shapes.md +0 -156
- package/skills/write-skill/references/activation-boundaries.md +0 -104
- package/skills/write-skill/references/agent-first-instructions.md +0 -121
- package/skills/write-skill/references/progressive-disclosure.md +0 -127
- package/skills/write-skill/references/skill-dependency-graphs.md +0 -190
- package/skills/write-spec/SKILL.md +0 -92
- package/skills/write-spec/references/artifact-standards.md +0 -86
- package/skills/write-spec/references/decision-records.md +0 -78
- package/skills/write-spec/references/spec-shapes.md +0 -143
- /package/pi-extension/dist/{cognitive-routing-v2 → cognitive-routing}/budget.js +0 -0
- /package/skills/{evaluate-skill → evaluate-behavior}/scripts/lib/evidence.mjs +0 -0
- /package/skills/{evaluate-skill → evaluate-behavior}/scripts/pi-observer.mjs +0 -0
|
@@ -1,243 +0,0 @@
|
|
|
1
|
-
import assert from "node:assert/strict";
|
|
2
|
-
import test from "node:test";
|
|
3
|
-
|
|
4
|
-
import { CURSOR_MARKER, visibleWidth } from "@earendil-works/pi-tui";
|
|
5
|
-
|
|
6
|
-
import { PiSettingsComponent } from "../../dist/settings/settings-tui.js";
|
|
7
|
-
|
|
8
|
-
const theme = {
|
|
9
|
-
fg(_color, text) {
|
|
10
|
-
return text;
|
|
11
|
-
},
|
|
12
|
-
bold(text) {
|
|
13
|
-
return text;
|
|
14
|
-
},
|
|
15
|
-
};
|
|
16
|
-
|
|
17
|
-
function deferred() {
|
|
18
|
-
let resolve;
|
|
19
|
-
let reject;
|
|
20
|
-
const promise = new Promise((resolvePromise, rejectPromise) => {
|
|
21
|
-
resolve = resolvePromise;
|
|
22
|
-
reject = rejectPromise;
|
|
23
|
-
});
|
|
24
|
-
return { promise, resolve, reject };
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
function createComponent(entries, options = {}) {
|
|
28
|
-
const notifications = [];
|
|
29
|
-
let closed = false;
|
|
30
|
-
const component = new PiSettingsComponent({
|
|
31
|
-
title: options.title ?? "Test Settings",
|
|
32
|
-
entries,
|
|
33
|
-
theme: options.theme ?? theme,
|
|
34
|
-
requestRender() {},
|
|
35
|
-
notify(message, level) {
|
|
36
|
-
notifications.push({ message, level });
|
|
37
|
-
},
|
|
38
|
-
done() {
|
|
39
|
-
closed = true;
|
|
40
|
-
},
|
|
41
|
-
});
|
|
42
|
-
return { component, notifications, isClosed: () => closed };
|
|
43
|
-
}
|
|
44
|
-
|
|
45
|
-
test("Pi settings publish values only after persistence and block concurrent edits", async () => {
|
|
46
|
-
let current = "disabled";
|
|
47
|
-
let commits = 0;
|
|
48
|
-
const write = deferred();
|
|
49
|
-
const entry = {
|
|
50
|
-
id: "feature.enabled",
|
|
51
|
-
label: "Feature",
|
|
52
|
-
description: "Enable the feature.",
|
|
53
|
-
currentValue: () => current,
|
|
54
|
-
inactive: () => false,
|
|
55
|
-
currentChoiceKey: () => (current === "enabled" ? "true" : "false"),
|
|
56
|
-
choices: [
|
|
57
|
-
{ key: "true", value: true, label: "enabled" },
|
|
58
|
-
{ key: "false", value: false, label: "disabled" },
|
|
59
|
-
],
|
|
60
|
-
async commit() {
|
|
61
|
-
commits += 1;
|
|
62
|
-
await write.promise;
|
|
63
|
-
current = "enabled";
|
|
64
|
-
return { changed: true, reloadRequired: true };
|
|
65
|
-
},
|
|
66
|
-
};
|
|
67
|
-
const { component } = createComponent([entry]);
|
|
68
|
-
|
|
69
|
-
component.handleInput("\r");
|
|
70
|
-
component.handleInput("\u001b[A");
|
|
71
|
-
component.handleInput("\r");
|
|
72
|
-
component.handleInput("\r");
|
|
73
|
-
|
|
74
|
-
assert.equal(commits, 1);
|
|
75
|
-
assert.equal(current, "disabled");
|
|
76
|
-
write.resolve();
|
|
77
|
-
await component.waitForWrites();
|
|
78
|
-
assert.equal(current, "enabled");
|
|
79
|
-
assert.match(component.render(80).join("\n"), /Feature\s+enabled/);
|
|
80
|
-
assert.deepEqual(component.sessionResult(), { changed: true, configChanged: true, failed: false });
|
|
81
|
-
});
|
|
82
|
-
|
|
83
|
-
test("Pi settings retain the persisted value when a write fails", async () => {
|
|
84
|
-
const current = "disabled";
|
|
85
|
-
const entry = {
|
|
86
|
-
id: "feature.enabled",
|
|
87
|
-
label: "Feature",
|
|
88
|
-
description: "Enable the feature.",
|
|
89
|
-
currentValue: () => current,
|
|
90
|
-
inactive: () => false,
|
|
91
|
-
currentChoiceKey: () => "false",
|
|
92
|
-
choices: [
|
|
93
|
-
{ key: "true", value: true, label: "enabled" },
|
|
94
|
-
{ key: "false", value: false, label: "disabled" },
|
|
95
|
-
],
|
|
96
|
-
async commit() {
|
|
97
|
-
throw new Error("disk unavailable");
|
|
98
|
-
},
|
|
99
|
-
};
|
|
100
|
-
const { component, notifications } = createComponent([entry]);
|
|
101
|
-
|
|
102
|
-
component.handleInput("\r");
|
|
103
|
-
component.handleInput("\u001b[A");
|
|
104
|
-
component.handleInput("\r");
|
|
105
|
-
await component.waitForWrites();
|
|
106
|
-
component.handleInput("\u001b");
|
|
107
|
-
|
|
108
|
-
assert.equal(current, "disabled");
|
|
109
|
-
assert.match(component.render(80).join("\n"), /Feature\s+disabled/);
|
|
110
|
-
assert.deepEqual(component.sessionResult(), { changed: false, configChanged: false, failed: true });
|
|
111
|
-
assert.deepEqual(notifications, [{ message: "Write failed: disk unavailable", level: "error" }]);
|
|
112
|
-
});
|
|
113
|
-
|
|
114
|
-
test("Pi settings delegate paste, cursor, grapheme, and IME behavior to Input", async () => {
|
|
115
|
-
let current = "";
|
|
116
|
-
const entry = {
|
|
117
|
-
id: "feature.label",
|
|
118
|
-
label: "Label",
|
|
119
|
-
description: "Unicode label.",
|
|
120
|
-
currentValue: () => current,
|
|
121
|
-
inactive: () => false,
|
|
122
|
-
edit: {
|
|
123
|
-
initialValue: () => current,
|
|
124
|
-
parse: (text) => text,
|
|
125
|
-
},
|
|
126
|
-
async commit(value) {
|
|
127
|
-
current = value;
|
|
128
|
-
return { changed: true, reloadRequired: true };
|
|
129
|
-
},
|
|
130
|
-
};
|
|
131
|
-
const { component } = createComponent([entry]);
|
|
132
|
-
component.focused = true;
|
|
133
|
-
|
|
134
|
-
component.handleInput("\r");
|
|
135
|
-
assert.ok(component.render(40).join("\n").includes(CURSOR_MARKER));
|
|
136
|
-
component.handleInput("\u001b[200~ab🙂\u001b[201~");
|
|
137
|
-
component.handleInput("\u001b[D");
|
|
138
|
-
component.handleInput("\u007f");
|
|
139
|
-
component.handleInput("界");
|
|
140
|
-
component.handleInput("\r");
|
|
141
|
-
await component.waitForWrites();
|
|
142
|
-
|
|
143
|
-
assert.equal(current, "a界🙂");
|
|
144
|
-
});
|
|
145
|
-
|
|
146
|
-
test("Pi settings start value editing at the end of the existing value", async () => {
|
|
147
|
-
let current = "abc";
|
|
148
|
-
const entry = {
|
|
149
|
-
id: "feature.label",
|
|
150
|
-
label: "Label",
|
|
151
|
-
description: "Editable label.",
|
|
152
|
-
currentValue: () => current,
|
|
153
|
-
inactive: () => false,
|
|
154
|
-
edit: {
|
|
155
|
-
initialValue: () => current,
|
|
156
|
-
parse: (text) => text,
|
|
157
|
-
},
|
|
158
|
-
async commit(value) {
|
|
159
|
-
current = value;
|
|
160
|
-
return { changed: true, reloadRequired: true };
|
|
161
|
-
},
|
|
162
|
-
};
|
|
163
|
-
const { component } = createComponent([entry]);
|
|
164
|
-
|
|
165
|
-
component.handleInput("\r");
|
|
166
|
-
component.handleInput("X");
|
|
167
|
-
component.handleInput("\r");
|
|
168
|
-
await component.waitForWrites();
|
|
169
|
-
|
|
170
|
-
assert.equal(current, "abcX");
|
|
171
|
-
});
|
|
172
|
-
|
|
173
|
-
test("Pi settings keep typed input open when parsing fails", () => {
|
|
174
|
-
let commits = 0;
|
|
175
|
-
const entry = {
|
|
176
|
-
id: "feature.limit",
|
|
177
|
-
label: "Limit",
|
|
178
|
-
description: "Positive integer.",
|
|
179
|
-
currentValue: () => "1",
|
|
180
|
-
inactive: () => false,
|
|
181
|
-
edit: {
|
|
182
|
-
initialValue: () => "",
|
|
183
|
-
parse(text) {
|
|
184
|
-
const value = Number(text);
|
|
185
|
-
if (!Number.isInteger(value) || value <= 0) throw new Error("expected a positive integer");
|
|
186
|
-
return value;
|
|
187
|
-
},
|
|
188
|
-
},
|
|
189
|
-
async commit() {
|
|
190
|
-
commits += 1;
|
|
191
|
-
return { changed: true, reloadRequired: true };
|
|
192
|
-
},
|
|
193
|
-
};
|
|
194
|
-
const { component } = createComponent([entry]);
|
|
195
|
-
|
|
196
|
-
component.handleInput("\r");
|
|
197
|
-
component.handleInput("invalid");
|
|
198
|
-
component.handleInput("\r");
|
|
199
|
-
|
|
200
|
-
assert.equal(commits, 0);
|
|
201
|
-
assert.match(component.render(60).join("\n"), /Invalid value: expected a positive integer/);
|
|
202
|
-
});
|
|
203
|
-
|
|
204
|
-
test("Pi settings search accepts bracketed paste", () => {
|
|
205
|
-
const entries = ["Alpha", "Beta"].map((label) => ({
|
|
206
|
-
id: label.toLowerCase(),
|
|
207
|
-
label,
|
|
208
|
-
description: `${label} setting`,
|
|
209
|
-
currentValue: () => "off",
|
|
210
|
-
inactive: () => true,
|
|
211
|
-
}));
|
|
212
|
-
const { component } = createComponent(entries);
|
|
213
|
-
|
|
214
|
-
component.handleInput("\u001b[200~Beta\u001b[201~");
|
|
215
|
-
const rendered = component.render(60).join("\n");
|
|
216
|
-
assert.match(rendered, /Beta/);
|
|
217
|
-
assert.doesNotMatch(rendered, /Alpha/);
|
|
218
|
-
});
|
|
219
|
-
|
|
220
|
-
test("Pi settings keep ANSI and Unicode rendering within terminal width", () => {
|
|
221
|
-
const ansiTheme = {
|
|
222
|
-
fg(_color, text) {
|
|
223
|
-
return `\u001b[36m${text}\u001b[0m`;
|
|
224
|
-
},
|
|
225
|
-
bold(text) {
|
|
226
|
-
return `\u001b[1m${text}\u001b[22m`;
|
|
227
|
-
},
|
|
228
|
-
};
|
|
229
|
-
const entry = {
|
|
230
|
-
id: "unicode",
|
|
231
|
-
label: "設定🙂",
|
|
232
|
-
description: "幅の広い Unicode description with several words.",
|
|
233
|
-
currentValue: () => "有効界",
|
|
234
|
-
inactive: () => true,
|
|
235
|
-
};
|
|
236
|
-
const { component } = createComponent([entry], { title: "設定パネル", theme: ansiTheme });
|
|
237
|
-
|
|
238
|
-
for (const width of [12, 20, 40]) {
|
|
239
|
-
for (const line of component.render(width)) {
|
|
240
|
-
assert.ok(visibleWidth(line) <= width, `line width ${visibleWidth(line)} exceeds ${width}: ${line}`);
|
|
241
|
-
}
|
|
242
|
-
}
|
|
243
|
-
});
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"compilerOptions": {
|
|
3
|
-
"target": "ES2022",
|
|
4
|
-
"module": "NodeNext",
|
|
5
|
-
"moduleResolution": "NodeNext",
|
|
6
|
-
"rootDir": "src",
|
|
7
|
-
"outDir": "dist",
|
|
8
|
-
"declaration": false,
|
|
9
|
-
"sourceMap": false,
|
|
10
|
-
"strict": false,
|
|
11
|
-
"noEmitOnError": true,
|
|
12
|
-
"skipLibCheck": true,
|
|
13
|
-
"types": ["node"]
|
|
14
|
-
},
|
|
15
|
-
"include": ["src/**/*.ts"]
|
|
16
|
-
}
|
package/plugin.json
DELETED
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"$schema": "https://agent-plugins.org/schemas/1.0.0/plugin.schema.json",
|
|
3
|
-
"name": "freeflow",
|
|
4
|
-
"version": "0.7.3",
|
|
5
|
-
"description": "Feedback-based control system for coding agents.",
|
|
6
|
-
"author": {
|
|
7
|
-
"name": "Hassan Mohiddin"
|
|
8
|
-
},
|
|
9
|
-
"homepage": "https://github.com/hassan-mohiddin/freeflow",
|
|
10
|
-
"repository": "https://github.com/hassan-mohiddin/freeflow",
|
|
11
|
-
"license": "MIT",
|
|
12
|
-
"keywords": [
|
|
13
|
-
"workflow",
|
|
14
|
-
"skills",
|
|
15
|
-
"agents",
|
|
16
|
-
"feedback-loop",
|
|
17
|
-
"task-memory",
|
|
18
|
-
"planning",
|
|
19
|
-
"verification",
|
|
20
|
-
"review",
|
|
21
|
-
"agent-plugins",
|
|
22
|
-
"gemini",
|
|
23
|
-
"copilot",
|
|
24
|
-
"vscode",
|
|
25
|
-
"cursor",
|
|
26
|
-
"kiro",
|
|
27
|
-
"opencode",
|
|
28
|
-
"hermes"
|
|
29
|
-
],
|
|
30
|
-
"extensions": {
|
|
31
|
-
"com.github.copilot": {}
|
|
32
|
-
}
|
|
33
|
-
}
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
## Context Virtualization Cue
|
|
2
|
-
|
|
3
|
-
After broad or noisy tool evidence has been safely narrowed, exhausted, or crossed a meaningful activity boundary, use Context Virtualization to keep necessary evidence active and archive residue. Do not archive governing context or exact evidence still needed by current work.
|
|
@@ -1,100 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: "action-selection"
|
|
3
|
-
description: "Use when choosing or bounding an environment interaction, especially when the needed context, target, observer, or scope is uncertain, output may be broad, or recent actions have not advanced the current question."
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
# Action Selection
|
|
7
|
-
|
|
8
|
-
Choose one covered environment interaction that advances the current question or result, observe what it actually changes, and return the changed evidence to the current owner.
|
|
9
|
-
|
|
10
|
-
An environment interaction is a bounded tool-mediated observation or effect. A current activity can need several interactions; a tool call is not a task phase, Slice, or reason to change ownership.
|
|
11
|
-
|
|
12
|
-
Action Selection does not decide the user's outcome, work agreement, execution method, Slice, checkpoint, or Workflow route. It serves the owner responsible for those judgments and cannot accept the whole result.
|
|
13
|
-
|
|
14
|
-
## Identify The Immediate Need
|
|
15
|
-
|
|
16
|
-
Before touching the environment, identify what this interaction must answer or produce. Reuse evidence already available and current enough for that purpose.
|
|
17
|
-
|
|
18
|
-
The need may be:
|
|
19
|
-
|
|
20
|
-
- understanding the required outcome or reported symptom;
|
|
21
|
-
- establishing the mechanism, dependency, or approach;
|
|
22
|
-
- applying an understood change;
|
|
23
|
-
- observing whether a claim holds;
|
|
24
|
-
- reconstructing missing continuation state.
|
|
25
|
-
|
|
26
|
-
Use these purposes to focus the action, not to print phase labels or restart planning. Ask: what is the minimum sufficient context or effect for this next decision? Minimum means sufficient, not merely short.
|
|
27
|
-
|
|
28
|
-
Do not collect information because it may be useful later. Do not confuse the existence of a source or reference with having its necessary contents available.
|
|
29
|
-
|
|
30
|
-
## Take The Fast Path When The Action Is Known
|
|
31
|
-
|
|
32
|
-
Use the direct tool when the target, purpose, scope, and observing boundary are already supported and the action is covered, mechanical, and directly verifiable.
|
|
33
|
-
|
|
34
|
-
Examples include reading a known function or range, applying an exact selected edit, running an already-chosen focused check, or inspecting its resulting diff.
|
|
35
|
-
|
|
36
|
-
Do not manufacture alternative tools or repeat the action-selection method for an obvious continuation. A command being easy to run does not make its target or hypothesis well chosen.
|
|
37
|
-
|
|
38
|
-
## Compare Only Meaningful Alternatives
|
|
39
|
-
|
|
40
|
-
When the target, observer, or scope is uncertain, likely output is broad, the action is destructive, expensive, or difficult to recover, or recent work has stalled:
|
|
41
|
-
|
|
42
|
-
1. Identify the fact or effect the current owner needs.
|
|
43
|
-
2. Check whether existing evidence already supplies it.
|
|
44
|
-
3. Consider only a few materially different ways to obtain it.
|
|
45
|
-
4. Reject unchanged rereads, equivalent searches, eliminated approaches, and information without a current use.
|
|
46
|
-
5. Prefer the most direct action that distinguishes the plausible answers.
|
|
47
|
-
6. Among equally useful actions, prefer proportionate output, side effects, context residue, and recovery cost.
|
|
48
|
-
7. Execute the selected action once; choose the next interaction from its actual result.
|
|
49
|
-
|
|
50
|
-
Keep this comparison internal unless a user-owned choice is exposed. Do not emit candidate tables, numeric scores, simulated results, or a speculative sequence of tool calls.
|
|
51
|
-
|
|
52
|
-
A good observation can change the owner's belief or next action whether it supports or contradicts the leading explanation. An exact mutation can advance a settled result without testing a new hypothesis.
|
|
53
|
-
|
|
54
|
-
## Bound The Tool And Its Output
|
|
55
|
-
|
|
56
|
-
Use the simplest operation that can establish the required relationship:
|
|
57
|
-
|
|
58
|
-
- known file, symbol, artifact, or range -> focused read or operation;
|
|
59
|
-
- ownership, caller, or dependency question -> structured relationship query where available;
|
|
60
|
-
- literal or generated reference -> bounded content search;
|
|
61
|
-
- behavioral claim -> the owner's selected test, observer, or reproduction;
|
|
62
|
-
- understood effect -> narrow direct mutation;
|
|
63
|
-
- unknown location -> bounded discovery, then narrow from its result.
|
|
64
|
-
|
|
65
|
-
Choose scope before execution: directory, source kind, pattern, range, test target, time window, result count, fields, affected state, or recovery scope. Exclude unrelated history, generated output, and dependencies unless the current question needs them.
|
|
66
|
-
|
|
67
|
-
Use a location or count query before requesting all matching bodies when volume is uncertain. Prefer bounded output with an accessible full result. Truncation or a sampled result must remain explicit; it is not proof that omitted matches are irrelevant or that a search was exhaustive.
|
|
68
|
-
|
|
69
|
-
Context cost includes instructions, results, repeated material, and the capacity still needed for implementation, checking, correction, and continuation. Use host-supplied usage when available; do not invent token measurements or treat the provider maximum as a promise that a unit will fit.
|
|
70
|
-
|
|
71
|
-
The owner selects the work horizon. Return unexpectedly large context needs to it instead of reading the entire dependency tree or silently shrinking acceptance.
|
|
72
|
-
|
|
73
|
-
## Observe Before Continuing
|
|
74
|
-
|
|
75
|
-
After the interaction, determine:
|
|
76
|
-
|
|
77
|
-
- what actually ran or was returned;
|
|
78
|
-
- what changed in evidence, hypotheses, implementation, or task state;
|
|
79
|
-
- whether the intended question was answered or effect produced;
|
|
80
|
-
- which uncertainty, partial effect, or contradictory observation remains.
|
|
81
|
-
|
|
82
|
-
New content is not automatically useful evidence. A successful read is not understanding; a successful write is not correctness; a passing tool result is not proof of the wider claim. Return evidence to its owner for interpretation at the required boundary.
|
|
83
|
-
|
|
84
|
-
When a read settles the question, stop that investigation. Ordinary local continuation may be obvious; an invalidated implementation premise needs reassessment before dependent effects.
|
|
85
|
-
|
|
86
|
-
If the result did not advance the question, do not repeat it using synonyms, nearby files, a wider equivalent search, or another tool. Change the question or observer, or report the missing evidence.
|
|
87
|
-
|
|
88
|
-
When two or more recent interactions have not materially changed understanding, advanced the covered effect, or supported a new branch, read [Trajectory Stalls](references/trajectory-stalls.md) before another interaction.
|
|
89
|
-
|
|
90
|
-
## Return Without Expanding The Work
|
|
91
|
-
|
|
92
|
-
Return the observation and material state change to the same current owner. Action Selection does not transfer compute profiles, accept an implementation, or create authority.
|
|
93
|
-
|
|
94
|
-
When an experiment reveals a new prerequisite, report what it blocks: the current observer, chosen approach, or required outcome. Do not convert a blocked tool or prototype into permission to build a subsystem.
|
|
95
|
-
|
|
96
|
-
Use [Diagnose Failure](../diagnose-failure/SKILL.md) for unexplained repeated failures. Return changed authority, scope, ownership, direction, evidence boundary, or stop conditions to [Workflow](../workflow/SKILL.md).
|
|
97
|
-
|
|
98
|
-
Stop when the immediate need is satisfied, the active contract requires return, no useful covered interaction remains, or another activity must settle the next choice. Reuse adequate evidence instead of generating new calls to justify completion.
|
|
99
|
-
|
|
100
|
-
The goal is fewer low-value interactions while preserving sufficient evidence and the agreed outcome—not fewer calls at any cost.
|
|
@@ -1,71 +0,0 @@
|
|
|
1
|
-
# Trajectory Stalls
|
|
2
|
-
|
|
3
|
-
Read this when two or more recent environment interactions have not materially changed the current question, advanced the covered effect, or supported a new branch.
|
|
4
|
-
|
|
5
|
-
A stall is evidence that the current interaction policy is no longer producing useful progress. It does not prove that the task is difficult, the design is wrong, or another model is required.
|
|
6
|
-
|
|
7
|
-
## Recognize A Stall
|
|
8
|
-
|
|
9
|
-
Common stall patterns include:
|
|
10
|
-
|
|
11
|
-
- repeating searches with synonymous terms;
|
|
12
|
-
- rereading unchanged sources without a new question;
|
|
13
|
-
- rerunning the same check against unchanged state;
|
|
14
|
-
- widening search breadth without narrowing the hypothesis;
|
|
15
|
-
- collecting new output that does not change any belief or decision;
|
|
16
|
-
- revisiting a path already eliminated by supported evidence;
|
|
17
|
-
- changing hypotheses without a new observation;
|
|
18
|
-
- alternating edits, failures, and reversions without a supported cause;
|
|
19
|
-
- following each newly mentioned symbol or file away from the accepted outcome;
|
|
20
|
-
- continuing because interaction began rather than because evidence supports another step.
|
|
21
|
-
|
|
22
|
-
The following are not automatically stalls:
|
|
23
|
-
|
|
24
|
-
- several distinct mechanical interactions required by one exact covered effect;
|
|
25
|
-
- rerunning evidence after relevant state changed;
|
|
26
|
-
- a long-running operation that is still producing the selected result;
|
|
27
|
-
- checking a broader boundary after a focused result when that boundary was already required;
|
|
28
|
-
- returning through several files along one supported call or dependency path.
|
|
29
|
-
|
|
30
|
-
Judge progress by changed understanding, produced effects, or a newly supported branch—not raw action count.
|
|
31
|
-
|
|
32
|
-
## Stop Before Another Similar Interaction
|
|
33
|
-
|
|
34
|
-
Before another environment action:
|
|
35
|
-
|
|
36
|
-
1. restate the unresolved question or exact covered effect;
|
|
37
|
-
2. identify what the recent interactions established;
|
|
38
|
-
3. identify which paths or hypotheses they eliminated;
|
|
39
|
-
4. state why the interactions failed to change the decision;
|
|
40
|
-
5. determine whether another observer class could discriminate where the previous one could not.
|
|
41
|
-
|
|
42
|
-
Different observer classes may include:
|
|
43
|
-
|
|
44
|
-
- structural navigation instead of text search;
|
|
45
|
-
- caller or dependency tracing instead of concept search;
|
|
46
|
-
- runtime behavior instead of source inspection;
|
|
47
|
-
- source inspection instead of another runtime rerun;
|
|
48
|
-
- exact artifact comparison instead of summary output;
|
|
49
|
-
- a minimized reproduction instead of another speculative edit.
|
|
50
|
-
|
|
51
|
-
Changing syntax, keywords, directories, or tools without changing the evidence relationship is not a different observer class.
|
|
52
|
-
|
|
53
|
-
## Recover With One Discriminating Action
|
|
54
|
-
|
|
55
|
-
When a different covered observer can answer the unresolved question:
|
|
56
|
-
|
|
57
|
-
1. name what result would support or contradict the leading path;
|
|
58
|
-
2. bound one interaction;
|
|
59
|
-
3. execute it once;
|
|
60
|
-
4. return its observation to the current owner.
|
|
61
|
-
|
|
62
|
-
Do not compensate for a stall by generating a long plan, exploring every remaining path, or broadening the task.
|
|
63
|
-
|
|
64
|
-
When no covered interaction can discriminate:
|
|
65
|
-
|
|
66
|
-
- return the smallest missing evidence to the current owner;
|
|
67
|
-
- return a changed authority, scope, ownership, direction, or required observing boundary to [Workflow](../../workflow/SKILL.md);
|
|
68
|
-
- use [Diagnose Failure](../../diagnose-failure/SKILL.md) when repeated failure lacks a supported cause;
|
|
69
|
-
- stop when the active execution contract requires return.
|
|
70
|
-
|
|
71
|
-
A stall recovery succeeds when the decision surface changes or the absence of a safe useful interaction becomes explicit. It does not require another tool call.
|
package/skills/bypass/SKILL.md
DELETED
|
@@ -1,153 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: bypass
|
|
3
|
-
description: "Use when the user explicitly asks to skip or reduce optional workflow pressure for the next authorized activity or the current task."
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
# Bypass
|
|
7
|
-
|
|
8
|
-
Reduce explicitly selected optional workflow pressure without changing authority, accepted intent, the current owner, execution method, evidence semantics, selected checkpoints, mode, active capability protocols, or host controls.
|
|
9
|
-
|
|
10
|
-
Bypass is a user-controlled pressure modifier. It does not authorize the underlying work and does not perform that work itself.
|
|
11
|
-
|
|
12
|
-
**Optional pressure** is a workflow step whose removal does not weaken accepted intent, material risk control, required evidence, a selected checkpoint, or safe continuation.
|
|
13
|
-
|
|
14
|
-
## Interpret The Request Narrowly
|
|
15
|
-
|
|
16
|
-
Use Bypass only when the user explicitly asks to skip or reduce workflow pressure. Do not infer bypass from urgency, frustration, brevity, “just do it,” or a preference for concise responses.
|
|
17
|
-
|
|
18
|
-
Establish:
|
|
19
|
-
|
|
20
|
-
- the already-authorized bounded activity;
|
|
21
|
-
- the specific pressure the user wants removed;
|
|
22
|
-
- whether the requested scope is `next` or `task`;
|
|
23
|
-
- the authority, evidence, checkpoints, and stop conditions that remain;
|
|
24
|
-
- when the bypass expires.
|
|
25
|
-
|
|
26
|
-
A bare `/bypass` means `/bypass next`.
|
|
27
|
-
|
|
28
|
-
If the same user turn both authorizes an activity and explicitly requests reduced pressure, interpret the whole turn through [Workflow](../workflow/SKILL.md). Bypass may modify that authorized activity; it does not supply its authority.
|
|
29
|
-
|
|
30
|
-
If no authorized activity exists, return to Workflow and wait. Do not treat bypass as permission to implement, inspect actively, mutate, deliver, commit, or continue.
|
|
31
|
-
|
|
32
|
-
## Skip Only Optional Pressure
|
|
33
|
-
|
|
34
|
-
A valid bypass may remove:
|
|
35
|
-
|
|
36
|
-
- an unnecessary Spec, Plan, or Working Record;
|
|
37
|
-
- extended questioning whose answer would not change the accepted activity;
|
|
38
|
-
- an artifact created only for ceremony;
|
|
39
|
-
- duplicate explanation or status reporting;
|
|
40
|
-
- a proposed but unselected review or checkpoint with no remaining risk purpose;
|
|
41
|
-
- another optional step whose removal does not weaken the supported outcome.
|
|
42
|
-
|
|
43
|
-
Do not infer that a named artifact, review, check, or checkpoint is optional. Inspect what it protects before removing it.
|
|
44
|
-
|
|
45
|
-
Freeflow should already avoid unnecessary ceremony. Bypass is an explicit user override when optional pressure was proposed or recommended but was not selected as a required boundary, or would otherwise remain in the route.
|
|
46
|
-
|
|
47
|
-
## Preserve Non-Bypassable Boundaries
|
|
48
|
-
|
|
49
|
-
Bypass does not remove or override:
|
|
50
|
-
|
|
51
|
-
- the user’s authority over product behavior, scope, priorities, public interfaces, compatibility, permissions, security, privacy, billing, data loss, migration direction, deployment, or another hard-to-reverse outcome;
|
|
52
|
-
- conflicts among the request, code, tests, docs, policies, requirements, accepted behavior, or another source of truth;
|
|
53
|
-
- the accepted authority envelope or separately controlled effects;
|
|
54
|
-
- host safety, sandbox, permission, approval, or tool controls;
|
|
55
|
-
- mode boundaries or active capability protocols;
|
|
56
|
-
- the distinction between available evidence and supported claims;
|
|
57
|
-
- required self-review before accepting or reusing a supported result;
|
|
58
|
-
- an accepted Spec, Plan, selected checkpoint, required artifact review, or selected independent review;
|
|
59
|
-
- a stop condition, blocker, or evidence that invalidates the current route.
|
|
60
|
-
|
|
61
|
-
Material risk still requires the decisions and evidence that address it. A domain label alone does not require ceremony, but bypass cannot erase an observed risk.
|
|
62
|
-
|
|
63
|
-
Bypass cannot allow an active compute profile to act outside its execution protocol. Use the capability’s own user controls when the user wants to change manual or automatic control, profile behavior, or another capability setting.
|
|
64
|
-
|
|
65
|
-
## Respect Declined Evidence Without Inventing Support
|
|
66
|
-
|
|
67
|
-
A user may explicitly decline a test, build, runtime probe, review, or other evidence generation. Respect that instruction unless a higher-priority repository, host, or safety requirement prevents it.
|
|
68
|
-
|
|
69
|
-
Declining evidence does not make the corresponding claim supported.
|
|
70
|
-
|
|
71
|
-
When evidence is declined:
|
|
72
|
-
|
|
73
|
-
- perform only the remaining authorized work that can continue safely;
|
|
74
|
-
- leave the affected claim explicitly unverified;
|
|
75
|
-
- do not accept or reuse the result beyond the remaining evidence boundary;
|
|
76
|
-
- do not cross a checkpoint or dependent boundary that requires the missing evidence;
|
|
77
|
-
- return to Workflow when the expected exit, checkpoint, or safe continuation must change.
|
|
78
|
-
|
|
79
|
-
A request to skip evidence generation changes what may be claimed. It does not change what the available evidence proves.
|
|
80
|
-
|
|
81
|
-
## Route Changes Are Not Bypass
|
|
82
|
-
|
|
83
|
-
Treat the request as a Workflow route change when the user wants to:
|
|
84
|
-
|
|
85
|
-
- change accepted behavior, scope, effects, or stop conditions;
|
|
86
|
-
- weaken or replace an accepted evidence requirement;
|
|
87
|
-
- cancel or replace a selected checkpoint;
|
|
88
|
-
- revise an accepted Spec or Plan;
|
|
89
|
-
- change mode or an active capability protocol;
|
|
90
|
-
- continue despite contradictory evidence or a source conflict.
|
|
91
|
-
|
|
92
|
-
An explicit user instruction may authorize the changed route, but Workflow must reconcile its consequences before dependent work continues.
|
|
93
|
-
|
|
94
|
-
Use [Decision Gate](../decision-gate/SKILL.md) only when one user-owned choice or source conflict remains unresolved.
|
|
95
|
-
|
|
96
|
-
## Apply The Selected Scope
|
|
97
|
-
|
|
98
|
-
### Next
|
|
99
|
-
|
|
100
|
-
`/bypass next` removes one identified optional pressure from the current authorized activity.
|
|
101
|
-
|
|
102
|
-
The bypass is spent when:
|
|
103
|
-
|
|
104
|
-
- the selected pressure is skipped;
|
|
105
|
-
- the activity changes;
|
|
106
|
-
- another gate or stop condition appears;
|
|
107
|
-
- the route ends.
|
|
108
|
-
|
|
109
|
-
Re-check the route immediately after applying it. Do not carry the bypass into another activity by implication.
|
|
110
|
-
|
|
111
|
-
### Task
|
|
112
|
-
|
|
113
|
-
`/bypass task` reduces identified optional pressure for the current accepted task.
|
|
114
|
-
|
|
115
|
-
The task is the accepted request or active Working Record scope—not the repository, session, branch, or future related work.
|
|
116
|
-
|
|
117
|
-
Name the pressure being reduced when possible. Do not interpret task scope as “ignore all workflow for this task.”
|
|
118
|
-
|
|
119
|
-
Task scope ends when:
|
|
120
|
-
|
|
121
|
-
- the task completes or is abandoned;
|
|
122
|
-
- its accepted outcome changes materially;
|
|
123
|
-
- the user withdraws or replaces the bypass;
|
|
124
|
-
- a new task begins.
|
|
125
|
-
|
|
126
|
-
Reassess new risks, conflicts, evidence requirements, checkpoints, and separately controlled effects inside the task. Task scope does not make them optional.
|
|
127
|
-
|
|
128
|
-
When an existing Working Record is already authorized for maintenance and the task-scoped bypass must survive context loss, use [Track Work](../track-work/SKILL.md) to preserve its source, exact pressure, scope, and expiry.
|
|
129
|
-
|
|
130
|
-
The record preserves the user instruction; it does not broaden it. Without durable task memory, do not claim task-scoped bypass survives context loss.
|
|
131
|
-
|
|
132
|
-
Never convert `next` or `task` scope into permanent, repository-wide, session-wide, or cross-task behavior.
|
|
133
|
-
|
|
134
|
-
## Return The Modified Route
|
|
135
|
-
|
|
136
|
-
When the bypass is valid:
|
|
137
|
-
|
|
138
|
-
1. identify the optional pressure being removed;
|
|
139
|
-
2. apply only the selected scope;
|
|
140
|
-
3. return the reduced-pressure route to the unchanged current owner;
|
|
141
|
-
4. let that owner perform the separately authorized activity;
|
|
142
|
-
5. preserve the same evidence honesty, self-review, and stop conditions;
|
|
143
|
-
6. report what was skipped only when it materially clarifies the result or remaining scope.
|
|
144
|
-
|
|
145
|
-
Do not narrate internal bypass state on every turn. Speak in ordinary engineering language unless the scope or expiry matters to the user.
|
|
146
|
-
|
|
147
|
-
When a boundary remains:
|
|
148
|
-
|
|
149
|
-
1. do not perform the blocked action;
|
|
150
|
-
2. state the boundary the bypass cannot remove;
|
|
151
|
-
3. return to Workflow, Decision Gate, or the relevant current owner.
|
|
152
|
-
|
|
153
|
-
Bypass ends when the selected optional pressure has been removed, its scope expires, or a non-bypassable boundary requires another route.
|