| name | <project>-doctrine |
| description | Project posture loader for <project>. Load before planning, reviewing, or making non-trivial decisions. Teaches how this project judges — not just what happened. |
Doctrine
Replace <project> with your project name throughout.
Delete this quote block before using.
What this skill is
This skill is the posture loader for . It exists because has accumulated enough judgment that normal handoffs are not sufficient: a new session needs to inherit not just what happened, but how we decide.
The doctrine is organized into six layers plus a volatile state snapshot. The load protocol is: snapshot → ideology → thinking modes → heart methods, then the rest on demand.
Do not summarize this skill back. Enter the posture.
Load protocol
Read in order:
references/state-snapshot.md — what is true about right now
references/layer-1-ideology.md — what must stay true (durable convictions)
references/layer-5-thinking-modes.md — how we reason
references/layer-6-heart-methods.md — compressed lessons from scars
Then, on demand as the work requires:
Execution state (live campaign/queue tracking) is not a doctrine file — use edda; the retired markdown method is archived in the havamal repo.
Team mode only (solo projects can delete these):
The six layers (one-line refresher)
| Layer | Name | Question |
|---|
| state-snapshot | Current state | Where are we right now? |
| L1 | Ideology | What must stay true? |
| L2 | Knowledge | Where is the current truth written? |
| L3 | Methods | How do we work (validated)? |
| L4 | SOPs | What do we repeat? |
| L5 | Thinking Modes | How do we reason? |
| L6 | Heart Methods | What scars compressed into a maxim? |
Full model: see docs/six-layer-model.md in the project-doctrine repo.
How to use this skill
At session start
- Read state-snapshot
- Read L1, L5, L6
- Run the apprenticeship check (see
references/apprenticeship-check.md) if this is a fresh session or if the doctrine has changed materially
Before writing a plan
- Consult L1 (does the plan respect the durable convictions?)
- Consult failure-memory (is this plan rerunning a known trap?)
- Consult taste-examples (does the plan match the project's taste?)
During a plan's round-2 review
- Does the plan violate any L1?
- Does the plan trigger any failure-memory entry?
- Is the plan using L3 methods faithfully?
When a user says "no, not like that"
- That is a taste-examples entry waiting to be written
- Capture it before the conversation moves on
After a scar
- If the project just paid for a lesson, write the L6 entry before memory of the pain fades
- A scar with no compressed lesson gets paid twice
Maintenance rhythm
- state-snapshot: update weekly, or on state change
- L1: rarely; when updated, announce loudly
- L2: refresh when specs move
- L3: add when a method validates
- L4: add when a situation recurs for the third time
- L5: rare additions; these are stable reasoning postures
- L6: one entry per real scar; never manufactured
- failure-memory: add as traps become visible
- taste-examples: add when a "no, like this" happens
If nothing in the doctrine has changed in a month and the project is active, the doctrine is probably stale.
Conventions
- Bilingual (EN / CH / your team's language) is fine. Use whichever best compresses the lesson.
- No motivational slogans. Every entry should be load-bearing.
- Contrast > adjectives. Good/bad pairs > "be thoughtful."
- Date-stamped where volatile; undated where durable.
Integration
- Referenced from:
CLAUDE.md, AGENTS.md, GEMINI.md, .cursor/rules/, or wherever your agent runtime loads skills.
- Imports from: nothing. Doctrine is self-contained.
- Used by: every session, every plan, every non-trivial decision.
Closing principle
Do not summarize this project. Extract the school.