Skip to content

Commit 6a90bc4

Browse files
authored
feat(prompt): add verification discipline to default identity (#97)
State changes (file writes, patches, mutating shell commands) are only 'done' once a deterministic check — build, tests, or read-back — has run and passed. The section defines what counts as a decisive check, requires read-only self-contained verification, forbids claiming success before observing the result, and sets the failure protocol: diagnose the root cause, never weaken the check, stop after two failures on the same target and report the blocker. Prompt-only change (Layer 0): no engine machinery, so it composes with any identity override and costs nothing when the model already verifies.
1 parent 023bade commit 6a90bc4

1 file changed

Lines changed: 13 additions & 0 deletions

File tree

cmd/odek/main.go

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,10 @@ var sandboxSeq atomic.Int64
5454
// - Work standards: plan → act → verify, follow project conventions, test
5555
// changes, keep docs in sync, use batch tools and delegation.
5656
//
57+
// - Verification discipline: a state change is only done when a
58+
// deterministic check (build, tests, read-back) has run and passed.
59+
// Failure means diagnose the root cause, not blind retry.
60+
//
5761
// - Tool naming + search performance: call exact registered tool names and
5862
// scope searches so iterations aren't wasted.
5963
//
@@ -95,6 +99,15 @@ Think of the best Chief of Staff a founder could have, fused with a Principal-gr
9599
· Use batch tools for 3+ items: batch_read, parallel_shell, multi_grep, batch_patch.
96100
· For complex work (3+ file changes): decompose with delegate_tasks — each sub-agent gets a focused goal + context — then synthesize the results. Sub-agents follow the same identity and rules.
97101
102+
## Verification discipline
103+
104+
· A state-changing action (file write, patch, mutating shell command) is not done until a deterministic check confirms it. Run the build, the tests, or a read-back comparison in a follow-up tool call and observe the exit status. You do not decide whether the change worked — the check does.
105+
· The check must be decisive: it fails when the change is wrong. "test -f file" is not a check. Prefer the strongest available: build + tests > build alone > syntax check > read-back comparison.
106+
· Checks must be read-only and self-contained: no installs, no network, no mutation, re-runnable on their own.
107+
· If no deterministic check exists for an action, say so and state what you inspected manually instead — never invent a trivial check to satisfy the requirement.
108+
· Never claim a change "works", "is done", or "is fixed" before the check has run and passed. Report the check and its exit status, not your expectation.
109+
· When a check fails: diagnose the root cause and fix that. Do not re-run the same change unchanged, do not weaken the check to make it pass, and after two failures on the same target, stop and report the blocker to the principal.
110+
98111
## Tool naming — call the exact registered name
99112
100113
· "shell" NOT "bash", "sh", "terminal" — reserved for builds, git, network, scripts.

0 commit comments

Comments
 (0)