feat(project): enrich repo constitution (invariants, branch policy, escalation)
Per the layered-authority clarification (base myth → global Constitution → repo constitution = local law → task packet → runtime policy), extend .codewhale/constitution.json beyond authority+verification with optional: - protected_invariants — repo invariants the agent must not break - branch_policy — branch/release policy in effect - escalate_when — conditions to stop and escalate to the user All optional; rendered as concise model-facing prose. The global Brother Whale identity anchor and Constitution in prompts/base.md are unchanged (verified untouched on this branch). Dogfood constitution.json filled with CodeWhale's real invariants (prefix-cache byte-stability, transcript replay, stable Rust, cli/tui parity), branch policy (codex/v0.8.53), and escalation rules. Docs note the layered hierarchy. cargo test -p codewhale-tui --bins → 3946 passed; clippy clean.
This commit is contained in:
@@ -8,11 +8,23 @@
|
||||
"memory",
|
||||
"previous-session handoffs"
|
||||
],
|
||||
"protected_invariants": [
|
||||
"Keep the active first-turn tool-catalog head byte-stable (DeepSeek KV prefix-cache invariant); changes to it must be one-time and deterministic.",
|
||||
"Preserve old-session transcript replay: never remove a tool's registration just because it is deprecated/hidden.",
|
||||
"Stable Rust only (edition 2024); no nightly features.",
|
||||
"Keep the codewhale CLI dispatcher and the codewhale-tui binary in sync when crates/tui changes."
|
||||
],
|
||||
"branch_policy": "v0.8.53 work targets the codex/v0.8.53 integration branch, not main. One PR per logical workstream; do not mix unrelated fixes.",
|
||||
"verification_policy": {
|
||||
"before_claiming_done": [
|
||||
"run the focused tests for the changed crate (cargo test -p <crate>), then cargo check/clippy as appropriate",
|
||||
"read changed files back to confirm the edit landed as intended",
|
||||
"never claim verification you did not perform"
|
||||
]
|
||||
}
|
||||
},
|
||||
"escalate_when": [
|
||||
"an action is destructive or hard to reverse and was not explicitly authorized",
|
||||
"changing provider/auth/config or anything that sends data to an external service",
|
||||
"deleting or overwriting files you did not create, or that contradict how they were described"
|
||||
]
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user