@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,12 +1,29 @@
|
|
|
1
1
|
# Working Record Format
|
|
2
2
|
|
|
3
|
-
This
|
|
3
|
+
This reference owns the exact Schema 4 shape: sections, fields, states, lifecycle transitions, and the command contract. It defines format, not what is worth recording; [Track Work](../SKILL.md) owns that judgment.
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
## Task Directory
|
|
6
6
|
|
|
7
|
-
|
|
7
|
+
Each task has one directory:
|
|
8
8
|
|
|
9
|
-
|
|
9
|
+
```text
|
|
10
|
+
.freeflow/tasks/task-NNN-<short-name>/
|
|
11
|
+
record.md the Working Record
|
|
12
|
+
specs/ task-local Specs
|
|
13
|
+
plans/ task-local Plans
|
|
14
|
+
sources/ saved copies of material that exists only in conversation
|
|
15
|
+
scratch/ temporary work: throwaway scripts, saved output, downloads
|
|
16
|
+
```
|
|
17
|
+
|
|
18
|
+
`NNN` is three or more digits. A new task takes the next number after the highest existing one; numbers are never reused. `specs/`, `plans/`, and `sources/` are created only when needed; `init` creates `scratch/`. Nothing in `scratch/` is part of the record unless the record points to it, and it may be deleted when the task ends. The directory must be ignored by Git and untracked.
|
|
19
|
+
|
|
20
|
+
A registered task's directory lives in its project's store instead (`<Freeflow home>/projects/<project>/tasks/task-NNN-<short-name>/`, outside any repository; the store is marked by its `store.json`), with the same contents; see [Projects And Child Records](projects.md).
|
|
21
|
+
|
|
22
|
+
A Spec or Plan may instead live in the repository's own documentation; the record points to it either way.
|
|
23
|
+
|
|
24
|
+
## Skeleton
|
|
25
|
+
|
|
26
|
+
`init` creates every structural heading:
|
|
10
27
|
|
|
11
28
|
```markdown
|
|
12
29
|
# Working Record: <task name>
|
|
@@ -37,6 +54,8 @@ Last updated: <UTC ISO-8601 timestamp>
|
|
|
37
54
|
|
|
38
55
|
None
|
|
39
56
|
|
|
57
|
+
### Recovery sources
|
|
58
|
+
|
|
40
59
|
### Next useful action
|
|
41
60
|
|
|
42
61
|
## Future Work
|
|
@@ -52,476 +71,314 @@ None
|
|
|
52
71
|
## Notes
|
|
53
72
|
```
|
|
54
73
|
|
|
55
|
-
The
|
|
74
|
+
The five top-level sections are fixed, in this order: Current Context, Current Work, Future Work, History, Notes. `### Recovery sources` is optional; records created before it existed remain valid without it. `### Work agreement` is optional and not in the skeleton: `init` writes it, directly after Goal, only when its input has one.
|
|
56
75
|
|
|
57
|
-
The
|
|
76
|
+
The header holds the task name, `Schema`, task `State`, and `Last updated`. `init` and every successful lifecycle command set `Last updated`; views, validation, failed commands, and direct edits do not. It records recency only, not validity or truth.
|
|
58
77
|
|
|
59
|
-
|
|
60
|
-
Current Context
|
|
61
|
-
Current Work
|
|
62
|
-
Future Work
|
|
63
|
-
History
|
|
64
|
-
Notes
|
|
65
|
-
```
|
|
66
|
-
|
|
67
|
-
Do not create another top-level section or remove an empty structural heading. The `Notes` section is last and opaque to structured parsing; ordinary Markdown inside it is retained as inert content.
|
|
68
|
-
|
|
69
|
-
## General Rules
|
|
70
|
-
|
|
71
|
-
- Known structured blocks use only the field names defined here.
|
|
72
|
-
- Omit optional fields when they carry no useful information; do not emit empty labels or `[empty]` markers.
|
|
73
|
-
- `Current Slice` uses the literal `None` when no Slice is current.
|
|
74
|
-
- Field values may be multiline. Use ordinary Markdown bullets for concise lists.
|
|
75
|
-
- Lifecycle-created structured entities use compact field-list rows. A one-value field is `- Field: value`; multiple or block values use `- Field:` followed by two-space-indented lines. Keep fields contiguous so the preview remains a compact list.
|
|
76
|
-
- Expanded Schema 4 fields (`Field:` followed by values) remain accepted for backward reads and direct maintenance. Do not mix expanded and compact field styles within one entity block.
|
|
77
|
-
- Proposed Slices and proposed Checkpoints have no durable ID. Their titles must be unique across all Future Work items.
|
|
78
|
-
- Current and historical Slices use script-assigned `S-NNN` IDs.
|
|
79
|
-
- Accepted Checkpoints use script-assigned `C-NNN` IDs.
|
|
80
|
-
- Decisions use script-assigned `D-NNN` IDs.
|
|
81
|
-
- Durable IDs appear in headings and are never changed by direct edits.
|
|
82
|
-
- A lifecycle command either publishes one complete valid transition or leaves the source unchanged. If publication is uncertain, stop and inspect `full` before retrying.
|
|
83
|
-
|
|
84
|
-
## Current Context
|
|
78
|
+
## Field Syntax
|
|
85
79
|
|
|
86
|
-
|
|
80
|
+
Structured entities use compact field rows:
|
|
87
81
|
|
|
88
82
|
```markdown
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
### What defines this task
|
|
96
|
-
|
|
97
|
-
- Accepted artifacts, user decisions, constraints, and source pointers that determine interpretation.
|
|
98
|
-
|
|
99
|
-
### Settled
|
|
100
|
-
|
|
101
|
-
- Supported facts or accepted choices that still affect the task.
|
|
102
|
-
|
|
103
|
-
### Tentative
|
|
83
|
+
- Field: one-line value
|
|
84
|
+
- Field:
|
|
85
|
+
- first item
|
|
86
|
+
- second item
|
|
87
|
+
```
|
|
104
88
|
|
|
105
|
-
-
|
|
89
|
+
- Multi-line values are indented two spaces under their field.
|
|
90
|
+
- The older expanded style (`Field: value` without the leading dash) is still read. Do not mix the two styles within one entity; commands rewrite entities they change in compact style.
|
|
91
|
+
- Use only the fields defined for the entity. Omit an optional field that has no value; never write an empty label such as `- Type:`.
|
|
92
|
+
- Every line inside a structured entity belongs to a field or a permitted nested heading. Stray text is invalid.
|
|
93
|
+
- Durable IDs are assigned by commands: `S-NNN` Slices, `C-NNN` Checkpoints, `D-NNN` Decisions. They appear in headings and never change or get reused. They follow recording order, not the order work happened.
|
|
94
|
+
- Proposed Slices and proposed Checkpoints have no ID. Their titles must be unique across Future Work.
|
|
106
95
|
|
|
107
|
-
|
|
96
|
+
## Current Context
|
|
108
97
|
|
|
109
|
-
|
|
98
|
+
Present understanding, as bullets under these seven headings, plus an optional Work agreement directly after Goal:
|
|
110
99
|
|
|
111
|
-
|
|
100
|
+
| Heading | Holds |
|
|
101
|
+
| --- | --- |
|
|
102
|
+
| Goal | The outcome or central question; not the current mechanism. |
|
|
103
|
+
| Work agreement (optional) | The current work agreement, as far as it is known: what done looks like, what the agent does without asking, what needs the user's yes first, where it comes back, and how long it holds. |
|
|
104
|
+
| What defines this task | Pointers to the artifacts that define the task, such as its Spec, Plan, issue, or user-supplied brief. Every entry is read on each recovery. |
|
|
105
|
+
| Settled | Facts and accepted understanding that still affect the work. |
|
|
106
|
+
| Tentative | Hypotheses and provisional approaches. |
|
|
107
|
+
| Open | Unresolved questions that could change the work. |
|
|
108
|
+
| Current direction | The remaining approach and why; not a history of completed work. |
|
|
109
|
+
| Boundaries | Scope exclusions, constraints, evidence limits, user-facing return conditions, and separately controlled actions. When the record has a Work agreement, return conditions and separately controlled actions belong there, and Boundaries keeps the rest. |
|
|
112
110
|
|
|
113
|
-
|
|
111
|
+
Start each line with the lead words for the part it states: `Done when`, `Without asking:`, `Ask first:`, `Back`, `Holds until`. Write only the parts that are known; one line is often enough, and `validate` does not check the lead words. Each line that rests on the user's reply quotes it, beside what it answered:
|
|
114
112
|
|
|
115
|
-
|
|
113
|
+
```markdown
|
|
114
|
+
### Work agreement
|
|
116
115
|
|
|
117
|
-
-
|
|
116
|
+
- Done when the reported bug is fixed and its PR is open.
|
|
117
|
+
- Without asking: fix it, commit on a branch, open the PR. You said "yeah, do that" to that route (2026-10-12).
|
|
118
|
+
- Ask first: merging, anything outside the bug.
|
|
119
|
+
- Back at the PR.
|
|
120
|
+
- Holds until the PR merges.
|
|
118
121
|
```
|
|
119
122
|
|
|
120
|
-
|
|
123
|
+
The heading is never empty: omit it until something is agreed. `validate` rejects it when it is empty or anywhere but directly after Goal.
|
|
121
124
|
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
Preserve the agreed outcome separately from the current approach. Use the existing Goal, defining-source pointers, Current direction, and Boundaries to retain the execution scope and user-facing return condition; do not add a contract or phase section. An accepted amendment or new finding may require reconciling affected Current Work and Future Work as well as Context. Record unresolved dependencies as unresolved rather than converting the current mechanism into a requirement.
|
|
125
|
+
Keep only pointers under `What defines this task`; accepted choices go in Decisions and constraints in Boundaries. Change Current Context only when present meaning changes; a lifecycle transition alone does not require it. Remove narration once its consequence is recorded elsewhere.
|
|
125
126
|
|
|
126
127
|
## Current Work
|
|
127
128
|
|
|
128
|
-
Current Work
|
|
129
|
-
|
|
130
|
-
```markdown
|
|
131
|
-
## Current Work
|
|
129
|
+
Current Work holds one Current Slice or `None`, optional Recovery sources, and one Next useful action.
|
|
132
130
|
|
|
133
131
|
### Current Slice
|
|
134
132
|
|
|
135
|
-
|
|
133
|
+
```markdown
|
|
134
|
+
#### S-004 — Draft the migration guide
|
|
136
135
|
- State: in_progress
|
|
137
136
|
- Type: delivery
|
|
138
|
-
- Intended result:
|
|
139
|
-
- Authority source:
|
|
140
|
-
- Scope:
|
|
141
|
-
- Expected evidence:
|
|
142
|
-
- Stop condition:
|
|
143
|
-
- Starting state:
|
|
144
|
-
- Reopened from: S-004
|
|
137
|
+
- Intended result: A guide existing users can follow to move to v2.
|
|
138
|
+
- Authority source: User request in this conversation.
|
|
139
|
+
- Scope: docs/migration.md only.
|
|
140
|
+
- Expected evidence: Every v1 option maps to a v2 option or a stated removal.
|
|
141
|
+
- Stop condition: A v1 option with no v2 equivalent and no accepted removal.
|
|
142
|
+
- Starting state: docs/migration.md does not exist.
|
|
145
143
|
|
|
146
144
|
##### Material updates
|
|
147
145
|
|
|
148
|
-
-
|
|
149
|
-
- Evidence — claim: adapter preserves the response shape; observer/boundary: focused integration test; result: supported; proves: local compatibility; does not prove: production behavior; pointer: file:test/compatibility.test.mjs
|
|
150
|
-
- Paused — reason: compatibility policy is unresolved; resume when: the user selects a policy.
|
|
151
|
-
- Resumed — resolution source: user selected backward compatibility.
|
|
152
|
-
|
|
153
|
-
### Next useful action
|
|
154
|
-
|
|
155
|
-
- Inspect the named adapter before changing it.
|
|
146
|
+
- Evidence — claim: all 14 options mapped; observer/boundary: diff against v1 option list; result: supported; proves: coverage of listed options; does not prove: undocumented options; pointer: docs/migration.md
|
|
156
147
|
```
|
|
157
148
|
|
|
158
|
-
Required
|
|
149
|
+
| Field | Required | Values |
|
|
150
|
+
| --- | --- | --- |
|
|
151
|
+
| State | yes | `in_progress`, `paused` |
|
|
152
|
+
| Intended result | yes | |
|
|
153
|
+
| Authority source | yes | |
|
|
154
|
+
| Scope | yes | |
|
|
155
|
+
| Expected evidence | yes | |
|
|
156
|
+
| Stop condition | yes | |
|
|
157
|
+
| Starting state | yes | The state of what this Slice will change. |
|
|
158
|
+
| Type | no | `learning`, `delivery`, `deepening` |
|
|
159
|
+
| Dependencies | no | |
|
|
160
|
+
| Reopened from | no | `S-NNN` of a historical Slice |
|
|
159
161
|
|
|
160
|
-
|
|
161
|
-
- `Intended result`;
|
|
162
|
-
- `Authority source`;
|
|
163
|
-
- `Scope`;
|
|
164
|
-
- `Expected evidence`;
|
|
165
|
-
- `Stop condition`;
|
|
166
|
-
- `Starting state`.
|
|
162
|
+
`in_progress` means the Slice's result is being pursued. `paused` means it is still current but safe continuation is suspended; an ordinary turn, feedback, or context boundary is not a pause.
|
|
167
163
|
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
- `Type: learning | delivery | deepening`;
|
|
171
|
-
- `Dependencies`;
|
|
172
|
-
- `Reopened from: S-NNN`.
|
|
173
|
-
|
|
174
|
-
`Material updates` is optional and bullet-only. It is append-oriented, not a second entity schema. Add an entry only when losing it could affect safe continuation or truthful closure. Useful forms are:
|
|
164
|
+
`##### Material updates` is optional and holds bullets only. Use these prefixes when they fit; the rest of each line is prose:
|
|
175
165
|
|
|
176
166
|
```text
|
|
177
|
-
- Extension — authority: ...; added scope: ...; added evidence:
|
|
167
|
+
- Extension — authority: ...; added scope: ...; added evidence: ...
|
|
178
168
|
- Evidence — claim: ...; observer/boundary: ...; result: supported | contradicted | inconclusive | unavailable; proves: ...; does not prove: ...; pointer: ...
|
|
169
|
+
- Result — identity: ... (for example a commit SHA, document version, or sent message ID)
|
|
179
170
|
- Paused — reason: ...; resume when: ...
|
|
180
171
|
- Resumed — resolution source: ...
|
|
181
|
-
- Blocker — why unsafe: ...; required resolution:
|
|
182
|
-
- Blocker resolved — resolution source: ...
|
|
172
|
+
- Blocker — why unsafe: ...; required resolution: ...
|
|
183
173
|
- Contradiction — ...
|
|
184
|
-
- Review —
|
|
174
|
+
- Review gate — mode: auto | off | always; tier: ...; because: <trigger> | no trigger; result: dispatched | proposed | skipped
|
|
175
|
+
- Review — round: R1 | R2 | R3; reviewer: <model> (<family>); judgment: ...; Accepted: <n>; Rejected: <n>; Open: <n>; reviewed: <commit or version>; report: <path>; effect: ...
|
|
185
176
|
- Correction — ...
|
|
186
177
|
```
|
|
187
178
|
|
|
188
|
-
|
|
179
|
+
A Review entry is written after adjudication, one per independent review, so outcomes and rounds can be counted later; its report and brief live in the task's `scratch/reviews/` (`R1-brief.md`, `R1-report.md`). Self-review writes no Review entry.
|
|
180
|
+
|
|
181
|
+
An Evidence entry identifies the state it observed well enough to tell it apart from later versions. When later edits leave a result's applicability unresolved, say so rather than carrying the earlier result forward. Append counterevidence as a new entry instead of rewriting the earlier one. A missing output is unavailable evidence, not proof the check never ran. Label a report you did not observe as a report.
|
|
189
182
|
|
|
190
|
-
|
|
183
|
+
When no Slice is current, the section contains the single line `None`.
|
|
191
184
|
|
|
192
|
-
|
|
185
|
+
### Recovery sources
|
|
193
186
|
|
|
194
|
-
|
|
187
|
+
What the next context must read to resume the current work, one bullet per source:
|
|
195
188
|
|
|
196
189
|
```markdown
|
|
197
|
-
###
|
|
190
|
+
### Recovery sources
|
|
198
191
|
|
|
199
|
-
|
|
192
|
+
- docs/api-v2.pdf — the accepted response shape; sections 3–4 govern the current Slice.
|
|
193
|
+
- .freeflow/tasks/task-007-report/sources/layout.png — the user's layout; the header spacing is binding.
|
|
194
|
+
- conversation:turn-42 — the user's exception for legacy clients.
|
|
195
|
+
- docs/benchmarks.md — baseline timings; read when measuring performance.
|
|
200
196
|
```
|
|
201
197
|
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
Before any consequential action, especially after recovery, confirm the task State, Current Slice, active Decisions, pending or deferred Checkpoints, Next useful action, applicable authority/scope/stop condition, unresolved Evidence, and contradictions. Reconcile the projection from the Working Record, selected exact History, accepted artifacts under `What defines this task`, the live environment, and current human intent and authority. Do not act from the Working Record alone.
|
|
205
|
-
|
|
206
|
-
Do not begin Slice work until the start transition has successfully persisted and validated the Current Slice and Next useful action. Record an accepted extension before executing its expanded scope.
|
|
207
|
-
|
|
208
|
-
A Current Slice may be `in_progress` or `paused` only. `paused` means the same outcome remains current but safe continuation is suspended; a turn boundary or ordinary feedback is not a pause. To remove an unresolved paused attempt from Current Work, close it historically as `blocked`. Close as historical `blocked` only from a paused Current Slice; close as `abandoned` only with explicit authority and a reason; close as `completed` only after required Evidence and applicable Checkpoints are settled.
|
|
209
|
-
|
|
210
|
-
### Direct Start
|
|
211
|
-
|
|
212
|
-
When an immediately authorized outcome does not need Future Work ordering or recovery, `slice start-direct` may create a detailed Current Slice without consuming or changing any Future Work item:
|
|
198
|
+
Each entry is a pointer, then what it establishes. An entry may end with a trigger, `read when <situation>`: recovery reads it only once that situation applies. Use one only when the source matters to part of the work, not to save reading what the next action needs. A pointer is a path relative to the repository root, an absolute path, a URL, or a host history reference when the host can retrieve it. Material that exists only in the conversation is saved under the task's `sources/` directory first. Recovery sources apply to Current Work only and do not carry into History.
|
|
213
199
|
|
|
214
|
-
|
|
215
|
-
#### S-001 — Immediate outcome
|
|
216
|
-
- State: in_progress
|
|
217
|
-
- Intended result: The immediate accepted outcome.
|
|
218
|
-
- Authority source: The request or approval covering this Slice.
|
|
219
|
-
- Scope: The permitted work boundary.
|
|
220
|
-
- Expected evidence: The evidence required before closure.
|
|
221
|
-
- Stop condition: The condition requiring pause or return for direction.
|
|
222
|
-
- Starting state: The relevant starting code or artifact state.
|
|
223
|
-
```
|
|
200
|
+
### Next useful action
|
|
224
201
|
|
|
225
|
-
|
|
202
|
+
One concise action or an honest wait or stop condition, as a single bullet. Slice and task-state commands replace it with the `--next-action` text; Checkpoint commands replace it when `--next-action` is given.
|
|
226
203
|
|
|
227
204
|
## Future Work
|
|
228
205
|
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
Preserve a useful provisional route when one emerges rather than waiting for every implementation detail. Keep the immediate outcome concrete and later outcomes directional. Use the existing Dependencies field for prerequisites or ordering constraints, including uncertainty when material. Reconcile affected proposals after learning or accepted changes; neither their order nor a preceding Slice's completion proves their prerequisites.
|
|
232
|
-
|
|
233
|
-
All Future Work titles are unique across both kinds of item. A proposed item may be edited, reordered, or removed. A proposed item has no authority and cannot be selected merely because it exists.
|
|
206
|
+
One ordered sequence of proposed Slices and non-terminal Checkpoints. Order is a recommendation; it confers no authority and may be revised at any time.
|
|
234
207
|
|
|
235
208
|
### Proposed Slice
|
|
236
209
|
|
|
237
210
|
```markdown
|
|
238
|
-
### Slice —
|
|
211
|
+
### Slice — Add the CLI
|
|
239
212
|
- State: proposed
|
|
240
|
-
-
|
|
241
|
-
-
|
|
242
|
-
-
|
|
243
|
-
- Dependencies: A prerequisite or ordering constraint.
|
|
213
|
+
- Intended result: A CLI that exposes the parser.
|
|
214
|
+
- Expected evidence: CLI tests for each subcommand.
|
|
215
|
+
- Dependencies: Implement the parser.
|
|
244
216
|
```
|
|
245
217
|
|
|
246
|
-
Required:
|
|
247
|
-
|
|
248
|
-
- unique title in the heading;
|
|
249
|
-
- `State: proposed`;
|
|
250
|
-
- `Intended result`.
|
|
251
|
-
|
|
252
|
-
Optional:
|
|
253
|
-
|
|
254
|
-
- `Type: learning | delivery | deepening`;
|
|
255
|
-
- `Expected evidence`;
|
|
256
|
-
- `Dependencies`.
|
|
257
|
-
|
|
258
|
-
Starting removes this block from Future Work and creates a detailed Current Slice with a new `S-NNN`. The start operation must resolve any Checkpoint `Applies to` reference that named this proposed Slice.
|
|
218
|
+
Required: `State: proposed` and `Intended result`. Optional: `Type`, `Expected evidence`, `Dependencies`.
|
|
259
219
|
|
|
260
220
|
### Checkpoint
|
|
261
221
|
|
|
262
|
-
A Checkpoint belongs to one Slice. Its state is explicit even though its storage location remains Future Work until terminal:
|
|
263
|
-
|
|
264
|
-
```text
|
|
265
|
-
proposed -> pending <-> deferred
|
|
266
|
-
pending | deferred -> completed | cancelled | replaced
|
|
267
|
-
```
|
|
268
|
-
|
|
269
|
-
A proposed Checkpoint has no ID:
|
|
270
|
-
|
|
271
222
|
```markdown
|
|
272
|
-
### Checkpoint —
|
|
273
|
-
- State:
|
|
274
|
-
- Type:
|
|
275
|
-
- Condition: The
|
|
276
|
-
- Applies to:
|
|
223
|
+
### Checkpoint C-002 — Commit the parser
|
|
224
|
+
- State: pending
|
|
225
|
+
- Type: preserve
|
|
226
|
+
- Condition: The parser Slice's checks pass.
|
|
227
|
+
- Applies to: S-004
|
|
277
228
|
```
|
|
278
229
|
|
|
279
|
-
Required fields:
|
|
280
|
-
|
|
281
|
-
- unique title;
|
|
282
|
-
- `State: proposed | pending | deferred`;
|
|
283
|
-
- `Type: independent_review | local_commit | user_decision | continuity`;
|
|
284
|
-
- `Condition`;
|
|
285
|
-
- `Applies to`.
|
|
230
|
+
A proposed Checkpoint has no ID in its heading (`### Checkpoint — <title>`). Required fields: `State` (`proposed`, `pending`, `deferred`), `Type`, `Condition`, `Applies to`. `Applies to` names a proposed Slice by exact title until that Slice starts, then its `S-NNN`. Every Checkpoint belongs to one Slice; there are no task-wide Checkpoints.
|
|
286
231
|
|
|
287
|
-
|
|
232
|
+
| State | Meaning |
|
|
233
|
+
| --- | --- |
|
|
234
|
+
| `proposed` | Anticipated only. It has no ID and no authority, and may be removed directly. |
|
|
235
|
+
| `pending` | Authorized or selected and due. Work that depends on it must not cross it, and its Slice cannot close until it is closed. |
|
|
236
|
+
| `deferred` | Accepted but dormant until its condition. It is not cancelled, and it still blocks its Slice's closure. |
|
|
288
237
|
|
|
289
|
-
|
|
238
|
+
An accepted Checkpoint leaves Future Work only through `checkpoint close`; never drop one by editing.
|
|
290
239
|
|
|
291
|
-
|
|
240
|
+
`Type` is one of the five in Track Work's Checkpoint table: `preserve`, `publish`, `review`, `decision`, `continuity`. Earlier names are still read: `local_commit` as `preserve`, `independent_review` as `review`, `user_decision` as `decision`.
|
|
292
241
|
|
|
293
242
|
## History
|
|
294
243
|
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
```markdown
|
|
298
|
-
## History
|
|
244
|
+
Three subsections in this order: Decisions, Checkpoints, Slices. History is append-oriented: commands add entries and move terminal state into it; terminal entries are never deleted, reactivated, or rewritten.
|
|
299
245
|
|
|
300
246
|
### Decisions
|
|
301
247
|
|
|
302
|
-
### Checkpoints
|
|
303
|
-
|
|
304
|
-
### Slices
|
|
305
|
-
```
|
|
306
|
-
|
|
307
|
-
History is append-oriented, not strictly immutable: lifecycle commands may change an active Decision to a terminal state or move a current Slice/Checkpoint into History. Terminal content is never silently deleted, reactivated, or replaced. A clerical correction appends a correction record without erasing the prior value.
|
|
308
|
-
|
|
309
|
-
### Decisions
|
|
310
|
-
|
|
311
|
-
Decisions are accepted choices, not tentative hypotheses. Add one with a script-assigned `D-NNN`:
|
|
312
|
-
|
|
313
248
|
```markdown
|
|
314
249
|
#### D-001 — Keep the Markdown record canonical
|
|
315
250
|
- State: active
|
|
316
|
-
- Decision:
|
|
317
|
-
- Established by: The user
|
|
318
|
-
- Rationale: Agents need
|
|
319
|
-
-
|
|
320
|
-
- Consequences: Views can project one record without duplicating state.
|
|
251
|
+
- Decision: record.md remains the canonical task record.
|
|
252
|
+
- Established by: The user's accepted direction on 2026-09-25.
|
|
253
|
+
- Rationale: Agents need one readable recovery surface.
|
|
254
|
+
- Consequences: Views project the same file.
|
|
321
255
|
- Revisit when: The storage boundary changes.
|
|
322
256
|
```
|
|
323
257
|
|
|
324
|
-
|
|
258
|
+
Required: `State` (`active`, `superseded`, `retired`), `Decision`, `Established by`, `Rationale`, `Consequences`, `Revisit when`. Optional: `Source references`. `Superseded by: D-NNN` is required when superseded; `Retired because` when retired.
|
|
325
259
|
|
|
326
|
-
-
|
|
327
|
-
-
|
|
328
|
-
-
|
|
329
|
-
- `Rationale` — required;
|
|
330
|
-
- `Consequences` — required;
|
|
331
|
-
- `Revisit when` — required;
|
|
332
|
-
- `Source references` — optional;
|
|
333
|
-
- `Superseded by: D-NNN` — required when `superseded`;
|
|
334
|
-
- `Retired because` — required when `retired`.
|
|
335
|
-
|
|
336
|
-
Lifecycle:
|
|
337
|
-
|
|
338
|
-
```text
|
|
339
|
-
active -> superseded | retired
|
|
340
|
-
```
|
|
341
|
-
|
|
342
|
-
A clerical clarification may edit an active Decision directly without changing its meaning. A material change creates a new Decision and supersedes the old one. The old Decision names the replacement. Terminal Decisions are never reactivated; adopting an old choice again creates a new active Decision.
|
|
260
|
+
- Record only what the user actually accepted. When the difference matters, keep a source reference that distinguishes the accepted choice from the proposal.
|
|
261
|
+
- A clerical clarification may edit an active Decision directly. A change in meaning is a new Decision that supersedes the old one.
|
|
262
|
+
- Retire a Decision that no longer governs, with the reason. Adopting a superseded or retired choice again is a new Decision.
|
|
343
263
|
|
|
344
264
|
### Checkpoints
|
|
345
265
|
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
```markdown
|
|
349
|
-
#### C-001 — Review the compatibility boundary
|
|
350
|
-
- State: completed
|
|
351
|
-
- Type: independent_review
|
|
352
|
-
- Condition: Review the integrated result before dependent work proceeds.
|
|
353
|
-
- Applies to: S-001
|
|
354
|
-
- Result: Review completed; one non-blocking concern remains outside this Slice.
|
|
355
|
-
- Evidence: review:compatibility-review
|
|
356
|
-
- Task effect: The Slice may proceed.
|
|
357
|
-
```
|
|
358
|
-
|
|
359
|
-
Required terminal fields:
|
|
266
|
+
A closed Checkpoint keeps its future fields and adds `Result` and `Task effect`. `State` is `completed`, `cancelled`, or `replaced`. `Evidence` is optional; `Reason` is required for cancelled and replaced; `Replaced by: C-NNN` for replaced, naming a Checkpoint that is still pending or deferred.
|
|
360
267
|
|
|
361
|
-
|
|
362
|
-
- `Type`;
|
|
363
|
-
- `Condition`;
|
|
364
|
-
- `Applies to`;
|
|
365
|
-
- `Result`;
|
|
366
|
-
- `Task effect`.
|
|
268
|
+
`completed` means the boundary happened, not that its judgment was favorable.
|
|
367
269
|
|
|
368
|
-
|
|
270
|
+
### Slices
|
|
369
271
|
|
|
370
|
-
|
|
371
|
-
- `Reason` — required when `cancelled` or `replaced`;
|
|
372
|
-
- `Replaced by: C-NNN` — required when `replaced`.
|
|
272
|
+
A closed Slice keeps `Intended result` and, when present, `Type`, `Authority source`, and `Reopened from`. It adds `Result`, `Evidence and limits`, and `Task effect`. `State` is `completed`, `blocked`, or `abandoned`; `Resume when` is required for blocked and `Reason` for abandoned. `Residual effects` is optional.
|
|
373
273
|
|
|
374
|
-
|
|
274
|
+
Closing does not keep Scope, Stop condition, Starting state, Dependencies, Material updates, or Recovery sources. Anything among them that still matters belongs in `Evidence and limits` or `Task effect` before closing; Review entries always do, copied whole, so review outcomes stay countable.
|
|
375
275
|
|
|
376
|
-
|
|
276
|
+
| State | Meaning |
|
|
277
|
+
| --- | --- |
|
|
278
|
+
| `completed` | The intended result and its required evidence are settled. |
|
|
279
|
+
| `blocked` | A paused attempt that could not continue left Current Work; `Resume when` says what would allow it. |
|
|
280
|
+
| `abandoned` | Explicit authority ended the pursuit; `Reason` says why. |
|
|
377
281
|
|
|
378
|
-
|
|
282
|
+
A Slice that finished before it could be recorded, such as work done before the record existed, enters History through `slice record` with the same fields plus two more:
|
|
379
283
|
|
|
380
284
|
```markdown
|
|
381
|
-
#### S-
|
|
285
|
+
#### S-006 — Baseline on the easy tasks
|
|
382
286
|
- State: completed
|
|
383
|
-
-
|
|
384
|
-
-
|
|
385
|
-
-
|
|
386
|
-
- Result: The adapter was updated and the accepted behavior was verified locally.
|
|
387
|
-
- Evidence and limits: Focused integration checks passed; production behavior was not observed.
|
|
388
|
-
- Task effect: The next consumer can be migrated.
|
|
287
|
+
- Occurred: 2026-09-26 to 2026-09-27
|
|
288
|
+
- Recorded: retroactively on 2026-09-28
|
|
289
|
+
- Intended result: ...
|
|
389
290
|
```
|
|
390
291
|
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
- `State: completed | blocked | abandoned`;
|
|
394
|
-
- `Intended result`;
|
|
395
|
-
- `Result`;
|
|
396
|
-
- `Evidence and limits`;
|
|
397
|
-
- `Task effect`.
|
|
398
|
-
|
|
399
|
-
Optional or conditional fields:
|
|
400
|
-
|
|
401
|
-
- `Type: learning | delivery | deepening`;
|
|
402
|
-
- `Authority source`;
|
|
403
|
-
- `Reopened from: S-NNN`;
|
|
404
|
-
- `Resume when` — required when `blocked`;
|
|
405
|
-
- `Reason` — required when `abandoned`;
|
|
406
|
-
- `Residual effects` — useful when abandonment or rollback leaves consequences.
|
|
292
|
+
`Occurred` is when the work happened: `YYYY-MM-DD` or `YYYY-MM-DD to YYYY-MM-DD`. `Recorded` is written by the command, so a retroactive entry is never mistaken for live bookkeeping. The two appear together or not at all. A retroactive result is reconstructed, not observed at recording time: `Evidence and limits` points to where the exact history lives, such as a session, log, or commit.
|
|
407
293
|
|
|
408
|
-
|
|
294
|
+
Reopen a completed or blocked Slice only when the new work still belongs to the same intended result; reopening creates a new Slice and leaves the historical entry unchanged. After an abandoned Slice, propose a new one instead.
|
|
409
295
|
|
|
410
|
-
|
|
296
|
+
### Corrections
|
|
411
297
|
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
- authority;
|
|
415
|
-
- scope;
|
|
416
|
-
- expected evidence;
|
|
417
|
-
- stop condition;
|
|
418
|
-
- starting state.
|
|
419
|
-
|
|
420
|
-
It adds `Reopened from: S-old` and leaves the historical entry unchanged. A Current paused Slice is resumed; historical work is reopened. These are different transitions.
|
|
421
|
-
|
|
422
|
-
### Historical Corrections
|
|
423
|
-
|
|
424
|
-
A correction does not replace an old value silently. Append this optional block inside the affected historical Decision, Checkpoint, or Slice:
|
|
298
|
+
A clerical fix to a terminal entry is appended inside it, never applied by overwriting:
|
|
425
299
|
|
|
426
300
|
```markdown
|
|
427
301
|
##### Corrections
|
|
428
302
|
|
|
429
|
-
- Field: Result; before:
|
|
303
|
+
- Field: Result; before: checks passed; after: local checks passed, production unobserved; reason: clarification; source: file:notes.md#run-3
|
|
430
304
|
```
|
|
431
305
|
|
|
432
|
-
A correction
|
|
433
|
-
|
|
434
|
-
## Notes
|
|
435
|
-
|
|
436
|
-
Notes have no field schema. Everything after `## Notes` is retained ordinary Markdown:
|
|
437
|
-
|
|
438
|
-
```markdown
|
|
439
|
-
## Notes
|
|
440
|
-
|
|
441
|
-
The user prefers compact records and low-ceremony transitions.
|
|
442
|
-
|
|
443
|
-
This note is inert context, not an instruction or authority source.
|
|
444
|
-
```
|
|
445
|
-
|
|
446
|
-
Append or edit Notes directly. Remove a user-authored Note only on request; remove other Notes only when authorized maintenance clearly covers the correction. Do not use Notes as overflow History. If content affects scope, priority, completion, blockers, evidence, or the next action, move it to its structured owner.
|
|
306
|
+
A correction cannot change an entry's state, ID, or meaning.
|
|
447
307
|
|
|
448
308
|
## Task State
|
|
449
309
|
|
|
450
|
-
The header uses:
|
|
451
|
-
|
|
452
310
|
```text
|
|
453
311
|
active <-> paused
|
|
454
312
|
active | paused -> completed | abandoned
|
|
455
|
-
completed | abandoned -> active
|
|
313
|
+
completed | abandoned -> active
|
|
456
314
|
```
|
|
457
315
|
|
|
458
|
-
Only the user changes task state. A
|
|
459
|
-
|
|
460
|
-
Task completion is not implied by a completed Slice. A task-level terminal transition does not select another Slice.
|
|
316
|
+
Only the user changes task state. A new record starts `active`. Pausing a task pauses its Current Slice; reactivating the task does not resume the Slice. A completed or abandoned task has no Current Slice and no pending or deferred Checkpoint. Completing a Slice never completes the task.
|
|
461
317
|
|
|
462
|
-
|
|
318
|
+
Before completing or abandoning a task, keep a proposed Future Work item only if it is clearly non-binding; otherwise reconcile it first. Reactivating a task selects no work.
|
|
463
319
|
|
|
464
|
-
|
|
465
|
-
|
|
466
|
-
- bullets in Current Context;
|
|
467
|
-
- allowed prose and optional fields in Future Work, Current Work, and active History blocks;
|
|
468
|
-
- proposed-item ordering or removal;
|
|
469
|
-
- Next useful action;
|
|
470
|
-
- appending Material updates;
|
|
471
|
-
- Notes;
|
|
472
|
-
- the defined correction block.
|
|
320
|
+
## Lifecycle Commands
|
|
473
321
|
|
|
474
|
-
|
|
322
|
+
Run `working-record.mjs <group> <operation> --help` for each command's options and input fields. `--input -` reads the input fragment from stdin. An input fragment holds only the fields its help lists; commands set `State` and IDs themselves. Commands that change the Current Slice or task state require `--next-action`. `--record` resolves against `--root`, which defaults to the current directory; an absolute `--record` path finds its own root.
|
|
475
323
|
|
|
476
|
-
|
|
477
|
-
|
|
478
|
-
|
|
479
|
-
|
|
480
|
-
|
|
481
|
-
|
|
482
|
-
|
|
483
|
-
|
|
324
|
+
| Transition | Command |
|
|
325
|
+
| --- | --- |
|
|
326
|
+
| Create the record | `init --name <task name> --input <fragment>` (Goal and Next useful action required) |
|
|
327
|
+
| Propose a Slice | `slice propose` |
|
|
328
|
+
| Start a proposed Slice → `in_progress`, assigns `S-NNN` | `slice start --title <proposal title>` |
|
|
329
|
+
| Start a Slice that was never proposed | `slice start-direct` |
|
|
330
|
+
| `in_progress` → `paused` | `slice pause` |
|
|
331
|
+
| `paused` → `in_progress` | `slice resume` |
|
|
332
|
+
| Current → History `completed` / `blocked` (from paused) / `abandoned` | `slice close --state <state>` |
|
|
333
|
+
| Continue a completed or blocked historical Slice as a new Slice | `slice reopen --id <S-NNN>` |
|
|
334
|
+
| Record a Slice that already finished directly into History | `slice record --state <completed|blocked|abandoned>` |
|
|
335
|
+
| Propose a Checkpoint | `checkpoint propose` |
|
|
336
|
+
| `proposed` → `pending`, assigns `C-NNN` | `checkpoint activate` |
|
|
337
|
+
| `pending` ↔ `deferred` | `checkpoint defer`, `checkpoint resume` |
|
|
338
|
+
| `pending` / `deferred` → History | `checkpoint close --state <completed|cancelled|replaced>` |
|
|
339
|
+
| Add, supersede, or retire a Decision | `decision add`, `decision supersede`, `decision retire` |
|
|
340
|
+
| Change task state | `task set-state --state <state>` |
|
|
484
341
|
|
|
485
|
-
|
|
342
|
+
Use `slice start` for a proposed Slice and `slice start-direct` only for work that was never proposed. Starting any Slice records it before its first effect; it does not authorize the work. `slice record` is only for work whose effects already happened; it leaves the Current Slice, Future Work, and Next useful action unchanged, so it can run while a Slice is live.
|
|
486
343
|
|
|
487
|
-
|
|
344
|
+
Every command validates the record before and after the change and publishes one complete valid result or nothing.
|
|
488
345
|
|
|
489
|
-
|
|
346
|
+
| Exit code | Meaning |
|
|
347
|
+
| --- | --- |
|
|
348
|
+
| 0 | The change was published, or there was nothing to change. |
|
|
349
|
+
| 1 | Nothing was written. The error says why. |
|
|
350
|
+
| 2 | The outcome is uncertain: the write may have happened. Read `view full` before retrying or editing. |
|
|
490
351
|
|
|
491
|
-
##
|
|
352
|
+
## Direct Edits
|
|
492
353
|
|
|
493
|
-
|
|
354
|
+
Edit directly:
|
|
494
355
|
|
|
495
|
-
|
|
496
|
-
|
|
497
|
-
|
|
356
|
+
- Current Context bullets;
|
|
357
|
+
- optional fields and wording in active entities;
|
|
358
|
+
- Material updates, Recovery sources, and the Next useful action;
|
|
359
|
+
- the order, wording, or removal of proposed items;
|
|
360
|
+
- Notes;
|
|
361
|
+
- Corrections blocks in History.
|
|
498
362
|
|
|
499
|
-
|
|
500
|
-
2. all seven Current Context headings and their bullets;
|
|
501
|
-
3. active Decisions derived from History/Decisions, without duplicating them in Current Context;
|
|
502
|
-
4. complete Current Work;
|
|
503
|
-
5. all Future Work in stored order, including proposed, pending, and deferred items;
|
|
504
|
-
6. all Notes.
|
|
363
|
+
Never edit directly: IDs, `State` fields, which section an entity is in, or any terminal History entry apart from Corrections. `validate` checks structure only; it cannot detect a hand-made state change or a deleted entry, so those edits are forbidden rather than checked.
|
|
505
364
|
|
|
506
|
-
|
|
365
|
+
After editing headings, fields, or entity structure, run `validate --record <record.md>`. Prose-only edits need no validation. `validate` also lists Material updates pointers (paths from the repository root or the task folder, and commits) that do not resolve, as warnings, since a line may name a planned path or a commit not fetched yet; `--strict` fails on those an Evidence or Result line names. Pointers outside the repository are listed, not checked.
|
|
507
366
|
|
|
508
|
-
|
|
367
|
+
## Views
|
|
509
368
|
|
|
510
|
-
|
|
369
|
+
Views are plain Markdown and change nothing.
|
|
511
370
|
|
|
512
|
-
|
|
513
|
-
|
|
514
|
-
|
|
515
|
-
|
|
516
|
-
5. History with Decisions, Checkpoints, and Slices in that order;
|
|
517
|
-
6. Notes.
|
|
371
|
+
- `view resume` returns the header, Current Context, active Decisions, Current Work, Future Work, a History index, and Notes. The index has one line per closed History entry (superseded and retired Decisions, closed Checkpoints, closed Slices) in record order: ID, state, `by D-NNN` for a superseded Decision, `recorded retroactively` for a `slice record` entry, the title, and `(corrected)` when the entry has Corrections. It is the view to use while the conversation is still in context.
|
|
372
|
+
- `view recover` returns the `resume` view, then each `What defines this task` artifact and Recovery source with its trigger, whether its pointer resolves and its size, then live Git state (branch, HEAD, uncommitted paths, commits since `Last updated`) and where it disagrees with the record: a branch the record names that HEAD is not on, or a commit the Current Slice names that HEAD's history lacks. It is the recovery view after context loss.
|
|
373
|
+
- `view entry <ID> [<ID> ...]` returns the named `S-NNN`, `C-NNN`, or `D-NNN` entries exactly as stored, in the order given. An unknown ID prints nothing and fails.
|
|
374
|
+
- `view full` returns the file exactly as stored. It does not require the record to be valid, so use it to inspect malformed or unsupported records, after an uncertain write, or for an audit.
|
|
518
375
|
|
|
519
|
-
|
|
376
|
+
`view resume`, `view recover` and `view entry` require a valid Schema 4 record.
|
|
520
377
|
|
|
521
|
-
|
|
378
|
+
## Notes
|
|
522
379
|
|
|
523
|
-
|
|
380
|
+
Everything under `## Notes` is ordinary Markdown with no structure. Notes do not authorize, prioritize, block, or prove anything. Anything that affects scope, evidence, or the next action belongs in its structured section instead. Remove a user-written Note only when the user asks.
|
|
524
381
|
|
|
525
382
|
## Legacy Records
|
|
526
383
|
|
|
527
|
-
A record with another
|
|
384
|
+
A record with another `Schema` value is not a Schema 4 record. Read it through `view full` only; do not edit or transition it. Migration is a separate, authorized operation.
|