Principles¶
Version: 0.1.0 (draft). Each principle has a rule, a reason, the evidence, and how to enforce it. Evidence IDs point to the dossier.
The words MUST, SHOULD, and MAY have the meanings in RFC 2119.
Summary¶
| ID | Principle | One-line rule |
|---|---|---|
| P1 | Checks decide | Deterministic checks, not agent claims, decide if work is done. |
| P2 | Separate the writer from the judge | The actor (human or agent) that writes code does not write its tests or approve it. |
| P3 | Judgment goes into the inputs | A human makes the ticket good. Then the prompt can be simple. |
| P4 | Context is a budget | Load the minimum. Load the rest only when a task needs it. |
| P5 | Each component earns its place | Each rule, skill, role, and hook has an eval, an owner, and a review date. |
| P6 | Enforce what you can state | If a rule can be a check, make it a check. |
| P7 | Ceremony scales with risk | The profile sets the plan form and the gates. |
| P8 | Small units, fresh sessions, state in files | One unit of work per session. Durable state lives in versioned files. |
| P9 | Bounded autonomy | Least privilege. A human approves each destructive action. |
| P10 | Volume is a cost | Limit change size. Every line has a maintenance cost. |
| P11 | Make the work visible | The agent records its decisions and shows the evidence. |
| P12 | Neutral core, thin adapters | The core never names a harness or a tool. |
P1. Checks decide¶
- Rule: Work MUST NOT be marked done until the checks for its profile pass. An agent's statement that it ran a check is not evidence. The check output is evidence.
- Reason: Agents stop when work looks done, and they sometimes claim checks that they did not run.
- Evidence: B1, B2, B8, B12, D6, F3.
- Enforce: Gate G3 runs the checks in CI, outside the agent session. The agent attaches check output to the PR.
P2. Separate the writer from the judge¶
- Rule: The actor in the implementer role MUST NOT write or change tests, checks, or check configuration. This applies to a human and to an agent. A different actor writes the tests from the spec and the diff. A different actor reviews. When an agent fills the tester or reviewer role, it runs in a fresh session. The pipeline MUST start these roles. A prompt that only asks for them is not sufficient.
- Reason: Tests from the same actor prove only that the code agrees with that actor's reading of the task. This bias applies to people too.
- Evidence: B2, B3, B5, B9, B10, B15, E12, F6. Risk: B6.
- Enforce: A protected-path check fails the build if an implementer commit changes a test or a check path. A commit with no role trailer counts as an implementer commit. Checks are read-only in the agent environment where the harness allows it. Mutation score measures the tester.
P3. Judgment goes into the inputs¶
- Rule: Work MUST NOT start until the input meets the profile's Definition of Ready. The Definition of Ready includes acceptance criteria, non-goals, and a test oracle (how to know it works).
- Reason: Human judgment is most valuable at the start (the ticket) and at the end (the review).
- Evidence: D1, D7, D8, D9, D10, D11, H2.
- Enforce: Gate G1. An interview ("grill") skill finds the gaps. A template check confirms the required ticket fields.
P4. Context is a budget¶
- Rule: The always-loaded instruction file SHOULD be under 300 lines. It MUST contain only facts that the agent cannot find in the repo. Other knowledge MUST load on demand (skills, linked docs).
- Reason: Performance decreases as context grows, and generated context files did not help.
- Evidence: A1–A9, A12, A15, H6.
- Enforce: A size check on the instruction file. A lint for skill size and description format.
P5. Each component earns its place¶
- Rule: Each generated component MUST have a manifest entry. The entry has a purpose, an eval, an owner, the tested models, and a review date. At the review date, the owner MUST remove the component or record new evidence that it helps.
- Reason: What helps one model can hurt the next. Effects are seldom measured, and people feel faster when they are not.
- Evidence: A3, B4, G1–G9.
- Enforce: lifecycle.md. A scheduled CI job opens an issue for each component past its review date.
P6. Enforce what you can state¶
- Rule: If a rule can be stated precisely, it MUST be a check or a hook, not an instruction. Prefer, in this order: check, hook, skill, instruction.
- Reason: Instructions are advisory. Checks and hooks run every time.
- Evidence: B4, B7, B13, B14, C1–C10, F6.
- Enforce: Each instruction in the manifest has a field "why not a check". The lifecycle review reads it.
P7. Ceremony scales with risk¶
- Rule: Each profile MUST declare its plan form (plan artifact or decision log) and its gates. A repo MAY add gates. A repo MUST record a reason to remove a gate.
- Reason: Heavy process on small work wastes review time. Light process on large work is risky.
- Evidence: D2–D5, E10, H3.
- Enforce: Profile frontmatter. The generator rejects a profile without a plan form and gates.
P8. Small units, fresh sessions, state in files¶
- Rule: Each session SHOULD do one unit of work. Durable state (plan, progress, decision log, task list) MUST be in versioned files in the repo. Hidden harness memory MUST NOT be a source of truth.
- Reason: Long sessions collect noise. Repo files are visible to all tools and all people.
- Evidence: A10, A11, E1–E7, E13.
- Enforce: Profiles define session boundaries. Progress and decision-log templates.
P9. Bounded autonomy¶
- Rule: Each role MUST have the minimum tools and permissions for its job. No role may have private data, untrusted input, and an outbound channel at the same time. A human MUST approve each destructive action (delete, force push, production data change, deploy).
- Reason: Agents have deleted production data.
- Evidence: F1–F5.
- Enforce: Gate G5. Role permission lists. Sandboxes. Branch protection.
P10. Volume is a cost¶
- Rule: Each profile MUST set a change-size limit for one PR. A PR over the limit MUST be split or get an explicit waiver.
- Reason: Large PRs get no-look reviews, and maintenance cost grows with every line.
- Evidence: B11, C2, C5, C9, G10, H1.
- Enforce: A diff-size check in G3. Complexity caps.
P11. Make the work visible¶
- Rule: The agent MUST record each decision that it made without a human (decision log). It MUST attach the evidence for each acceptance criterion. It MUST state its confidence and the open risks.
- Reason: A reviewer checks evidence faster than they repeat the work.
- Evidence: A10, D3, D7, F7, H1.
- Enforce: PR template sections. A check that the sections are not empty (K14). Human-facing text follows the writing standard (K17).
P12. Neutral core, thin adapters¶
- Rule: Files in
framework/outsideadapters/MUST NOT name a harness, a model, or a spec tool. Each harness or tool detail MUST be in an adapter. Each model idiom MUST be in a model profile with a source and a read date. When a vendor releases a new model, the adapter-refresh profile updates the model profile. The core does not change. - Reason: Harnesses and tools change faster than principles.
- Evidence: A13, A14, E7, E10, E11, G5, H5.
- Enforce: A text check on
framework/for harness and tool names, withadapters/excluded.