feat: Create Command Behavior Verification Matrix across CLI, TUI, and…

SF-Task: S04/T01
This commit is contained in:
Mikael Hugo 2026-05-12 23:01:31 +02:00
parent f789bf0f40
commit e2f2cb7e2e
25 changed files with 52 additions and 43 deletions

View file

@ -1,10 +0,0 @@
# Non-Goals — quick reference
For the full set see [`.sf/NON-GOALS.md`](../../../.sf/NON-GOALS.md).
- Not a code-completion product. SF is a planning + workflow control
plane; the agent generates code, not autocomplete suggestions.
- Not a chatbot. Sessions are structured around milestones and modes.
- Not a knowledge graph product. Memory and recall are operational
concerns, not the product itself.
- Not a registry. SF doesn't host a public skill/plugin marketplace.

View file

@ -1,13 +0,0 @@
# Principles — quick reference
For the full set see [`.sf/PRINCIPLES.md`](../../../.sf/PRINCIPLES.md).
- **Purpose-first.** Every milestone, slice, task ties back to a
stated purpose. Refuse work that doesn't.
- **Promote-only state.** `.sf/` artifacts are append/promote — don't
rewrite history of promoted artifacts; create new revisions if
something changed.
- **Spec-first TDD.** Write the contract before the code; tests
before the implementation.
- **Deterministic resolution.** Given the same inputs, agents must
produce the same canonical configuration.

View file

@ -1,14 +0,0 @@
# Style — quick reference
For the full guide see [`.sf/STYLE.md`](../../../.sf/STYLE.md).
- DB access via `node:sqlite` `DatabaseSync`. Never `better-sqlite3`,
never native addons.
- No file-based proxies for DB state. Query the DB.
- Comments are sparing — explain WHY a non-obvious choice was made,
never WHAT the code does (the code says that).
- Functions/classes get docstrings only when their purpose is
non-obvious from the name.
- TypeScript-first for new code under `src/`. JavaScript-first under
`src/resources/extensions/sf/` (loaded directly, no compile step
beyond `copy-resources`).

Binary file not shown.

Binary file not shown.

Binary file not shown.

View file

@ -1,14 +1,14 @@
{
"research-slice": {
"kimi-coding/kimi-k2.6": {
"successes": 4,
"successes": 5,
"failures": 0,
"timeouts": 0,
"totalTokens": 1590810,
"totalCost": 0.22167976,
"lastUsed": "2026-05-08T13:36:05.865Z",
"totalTokens": 4682735,
"totalCost": 0.25357486,
"lastUsed": "2026-05-12T20:54:43.410Z",
"successRate": 1,
"total": 4
"total": 5
},
"minimax/MiniMax-M2.7": {
"successes": 1,
@ -51,6 +51,16 @@
"lastUsed": "2026-05-10T07:26:04.505Z",
"successRate": 1,
"total": 2
},
"kimi-coding/kimi-k2.6": {
"successes": 1,
"failures": 0,
"timeouts": 0,
"totalTokens": 476746,
"totalCost": 0,
"lastUsed": "2026-05-12T20:56:35.833Z",
"successRate": 1,
"total": 1
}
},
"discuss-milestone": {
@ -97,6 +107,16 @@
"lastUsed": "2026-05-10T15:16:08.120Z",
"successRate": 1,
"total": 1
},
"kimi-coding/kimi-k2.6": {
"successes": 1,
"failures": 0,
"timeouts": 0,
"totalTokens": 1821480,
"totalCost": 0,
"lastUsed": "2026-05-12T20:57:45.179Z",
"successRate": 1,
"total": 1
}
},
"complete-slice": {

View file

@ -0,0 +1,16 @@
[
{
"kind": "write",
"toolCallId": "write_1778619443353_32",
"path": ".sf/milestones/M001-6377a4/slices/S04/VERIFICATION_MATRIX.md",
"timestamp": 1778619443535
},
{
"kind": "bash",
"toolCallId": "bash_1778619447339_33",
"command": "test -f .sf/milestones/M001-6377a4/slices/S04/VERIFICATION_MATRIX.md && grep -q \"status\" .sf/milestones/M001-6377a4/slices/S04/VERIFICATION_MATRIX.md && echo \"Matrix exists and contains status command info.\"",
"exitCode": 0,
"outputSnippet": "Matrix exists and contains status command info.\n",
"timestamp": 1778619447544
}
]

View file

@ -0,0 +1 @@
{"ts":"2026-05-12T20:56:39.435Z","type":"gate_run","traceId":"guard:76c7c307-91b4-426e-8fad-4ff951d5a52e","turnId":"iter-4","gateId":"plan-gate","gateType":"policy","unitType":"execute-task","unitId":"M001-6377a4/S04/T01","milestoneId":"M001-6377a4","sliceId":"S04","outcome":"pass","failureClass":"none","rationale":"Plan files verified","attempt":1,"maxAttempts":1,"retryable":false,"evaluatedAt":"2026-05-12T20:56:39.435Z","durationMs":0}

View file

@ -1 +1 @@
pre-dispatch:952f3f1c-1861-4637-a706-54141371ebc7.jsonl
guard:76c7c307-91b4-426e-8fad-4ff951d5a52e.jsonl

View file

@ -0,0 +1,2 @@
{"ts":"2026-05-12T20:52:04.171Z","type":"gate_run","traceId":"pre-dispatch:2e5b5158-453c-4b09-8dd2-26fa87c8ded5","turnId":"iter-1","gateId":"resource-version-guard","gateType":"policy","unitType":"pre-dispatch","unitId":"iter-1","milestoneId":"M001-6377a4","outcome":"pass","failureClass":"none","rationale":"resource version guard passed","findings":"","attempt":1,"maxAttempts":1,"retryable":false,"evaluatedAt":"2026-05-12T20:52:04.167Z","durationMs":0}
{"ts":"2026-05-12T20:52:04.988Z","type":"gate_run","traceId":"pre-dispatch:2e5b5158-453c-4b09-8dd2-26fa87c8ded5","turnId":"iter-1","gateId":"pre-dispatch-health-gate","gateType":"execution","unitType":"pre-dispatch","unitId":"iter-1","milestoneId":"M001-6377a4","outcome":"pass","failureClass":"none","rationale":"pre-dispatch health gate passed","findings":"","attempt":1,"maxAttempts":1,"retryable":false,"evaluatedAt":"2026-05-12T20:52:04.987Z","durationMs":0}

View file

@ -0,0 +1,3 @@
{"ts":"2026-05-12T20:56:38.487Z","type":"gate_run","traceId":"pre-dispatch:76c7c307-91b4-426e-8fad-4ff951d5a52e","turnId":"iter-4","gateId":"resource-version-guard","gateType":"policy","unitType":"pre-dispatch","unitId":"iter-4","milestoneId":"M001-6377a4","outcome":"pass","failureClass":"none","rationale":"resource version guard passed","findings":"","attempt":1,"maxAttempts":1,"retryable":false,"evaluatedAt":"2026-05-12T20:56:38.485Z","durationMs":0}
{"ts":"2026-05-12T20:56:39.307Z","type":"gate_run","traceId":"pre-dispatch:76c7c307-91b4-426e-8fad-4ff951d5a52e","turnId":"iter-4","gateId":"pre-dispatch-health-gate","gateType":"execution","unitType":"pre-dispatch","unitId":"iter-4","milestoneId":"M001-6377a4","outcome":"pass","failureClass":"none","rationale":"pre-dispatch health gate passed","findings":"","attempt":1,"maxAttempts":1,"retryable":false,"evaluatedAt":"2026-05-12T20:56:39.307Z","durationMs":0}
{"ts":"2026-05-12T20:56:39.313Z","type":"gate_run","traceId":"pre-dispatch:76c7c307-91b4-426e-8fad-4ff951d5a52e","turnId":"iter-4","gateId":"planning-flow-gate","gateType":"policy","unitType":"pre-dispatch","unitId":"iter-4","milestoneId":"M001-6377a4","outcome":"pass","failureClass":"none","rationale":"planning flow compile gate passed","findings":"","attempt":1,"maxAttempts":1,"retryable":false,"evaluatedAt":"2026-05-12T20:56:39.312Z","durationMs":0}

View file

@ -0,0 +1,2 @@
{"ts":"2026-05-12T20:56:36.969Z","type":"gate_run","traceId":"pre-dispatch:7b06b885-0539-40d2-81c1-066c2b2f20c5","turnId":"iter-3","gateId":"resource-version-guard","gateType":"policy","unitType":"pre-dispatch","unitId":"iter-3","milestoneId":"M001-6377a4","outcome":"pass","failureClass":"none","rationale":"resource version guard passed","findings":"","attempt":1,"maxAttempts":1,"retryable":false,"evaluatedAt":"2026-05-12T20:56:36.968Z","durationMs":0}
{"ts":"2026-05-12T20:56:37.702Z","type":"gate_run","traceId":"pre-dispatch:7b06b885-0539-40d2-81c1-066c2b2f20c5","turnId":"iter-3","gateId":"pre-dispatch-health-gate","gateType":"execution","unitType":"pre-dispatch","unitId":"iter-3","milestoneId":"M001-6377a4","outcome":"pass","failureClass":"none","rationale":"pre-dispatch health gate passed","findings":"","attempt":1,"maxAttempts":1,"retryable":false,"evaluatedAt":"2026-05-12T20:56:37.700Z","durationMs":0}

View file

@ -0,0 +1,2 @@
{"ts":"2026-05-12T20:54:44.467Z","type":"gate_run","traceId":"pre-dispatch:9ed021af-f7d3-4d67-bfae-5ecbfcbd08b6","turnId":"iter-2","gateId":"resource-version-guard","gateType":"policy","unitType":"pre-dispatch","unitId":"iter-2","milestoneId":"M001-6377a4","outcome":"pass","failureClass":"none","rationale":"resource version guard passed","findings":"","attempt":1,"maxAttempts":1,"retryable":false,"evaluatedAt":"2026-05-12T20:54:44.466Z","durationMs":0}
{"ts":"2026-05-12T20:54:45.217Z","type":"gate_run","traceId":"pre-dispatch:9ed021af-f7d3-4d67-bfae-5ecbfcbd08b6","turnId":"iter-2","gateId":"pre-dispatch-health-gate","gateType":"execution","unitType":"pre-dispatch","unitId":"iter-2","milestoneId":"M001-6377a4","outcome":"pass","failureClass":"none","rationale":"pre-dispatch health gate passed","findings":"","attempt":1,"maxAttempts":1,"retryable":false,"evaluatedAt":"2026-05-12T20:54:45.217Z","durationMs":0}