Qi layer skill
Use when writing or maintaining AGENTS.md, .context/CONTEXT.md, or CLAUDE.md mirrors: keep intent docs minimal and load-bearing.
by haowjy·Apache-2.0 license·★ 506 Stars on the repo·GitHub ↗
npx degit haowjy/creative-writing-skills/cw/skills/qi-layer#main ~/.claude/skills/qi-layerChecked ·commit main
Files of Qi layer
Show the full text118 lines
qi-layer
/qi-maintenance owns when colocated knowledge must move with source changes.
This skill owns how to write and structure that knowledge.
Load /knowledge-layers for where each layer lives and what it holds.
Load /llm-writing if it isn't already loaded.
This skill is about how to write and maintain the directory-local pair:
AGENTS.md and .context/CONTEXT.md. The pair governs any tree agents work
in — code, the KB, docs, work directories. AGENTS.md loads into an agent's
bounded context as standing instructions: write it like a prompt, minimal,
every line load-bearing.
The Four Principles
- Fractal Compression: leaf AGENTS.md summarizes its directory's content; parent AGENTS.md summarizes its children. Each level is a compression of the level below.
- Hierarchical Summarization: root provides broad architectural frame. Leaves provide local working knowledge. Agents accumulate understanding as they descend.
- LCA Deduplication: shared knowledge appears once at the shallowest node covering all relevant paths. Never duplicate between siblings.
- Progressive Disclosure: give just enough to work correctly at this
level. Link to
.context/CONTEXT.mdfor depth.
Writing AGENTS.md
Agents read AGENTS.md before opening anything else in the tree — write for that moment. Ask: what must someone understand before working here? That's what AGENTS.md captures.
Keep AGENTS.md as short as the directory allows, rarely past 200 lines. Include only what has substance:
- Purpose: what this area IS and what it ISN'T (1–3 sentences)
- Mental model: how to think about this area, key abstractions
- Key rules: constraints, what breaks if you get it wrong
- Anti-patterns: what NOT to do here
- Downlinks: to
.context/for depth, to related areas
An agent that only reads AGENTS.md should be able to work correctly here. An agent that also reads .context/ should be able to change things safely.
Writing .context/CONTEXT.md
Reference depth, co-located with the code it describes. Where an agent goes when it needs contracts, architecture, or rationale in detail.
Sections (use only those with substance):
- Contracts: interfaces, invariants, what breaks if violated
- Architecture: component relationships, data flow, dependency direction
- Rationale: why X over Y, rejected alternatives
- Patterns: how to work here, concrete pitfalls
The .context/ directory is extensible: additional files alongside
CONTEXT.md for specialized concerns.
What Does NOT Belong in AGENTS.md
Apply the every-session test: root AGENTS.md loads on every session. If knowledge is only relevant when working in a specific domain, it belongs in that domain's AGENTS.md or .context/, not root.
Apply the think-vs-lookup test: text whose removal would cause a wrong decision belongs in AGENTS.md. Text an agent would merely have to look up belongs in .context/. Text that changes no behavior gets deleted — agents already know how to code and follow common conventions.
Specific failure modes:
- Session bleed: LLM working notes that calcified into the instruction file. Tells: status-update language ("deleted", "shipped", "deferred"), implementation terms packed without framing, history narration.
- Reference material posing as intent: tables, command blocks, full scheme vocabularies, implementation specifics.
- Redundant guards: prose warnings for invariants already enforced by tests or types. The code is the real guard; prose rots faster.
- Duplicated knowledge: restating what lives in a skill, a domain .context/, or a KB page. Point, don't duplicate.
- Domain-specific detail at root: URI scheme tables, gateway pricing internals, auth implementation details. These belong in their domain's AGENTS.md, not root.
Structural Rules
- Relative paths for all links
- AGENTS.md and .context/ at the same directory level (siblings)
- Link to files, not headings (headings change more often)
- Lateral links between
.context/directories with contracts between them - LCA deduplication: if two siblings share context, put it in the parent
CLAUDE.md Mirrors
Claude harnesses read CLAUDE.md, not AGENTS.md. Give every AGENTS.md a
sibling CLAUDE.md whose first line is @AGENTS.md — normally the whole
file. Run meridian qi claude-md-fix <target-root> on the containing tree
after creating or moving AGENTS.md files: it creates missing mirrors, skips
exact ones, and reports anything else as a conflict.
Never write shared instructions into CLAUDE.md. Claude-only knowledge is
rare; when it exists, put it below the @AGENTS.md import and expect
claude-md-fix to keep flagging the file, so the divergence stays visible.
Loading differs by level. At the root, each harness auto-loads its own file every session: Claude reads CLAUDE.md, others read AGENTS.md. In subdirectories, Claude auto-injects CLAUDE.md when it touches files there; other agents see nested AGENTS.md only by reading it on entry. Don't lean on Claude's auto-injection: a nested AGENTS.md carries the local additions an agent needs on entry, with everything else inherited from ancestors.
| 1 | |
| 2 | name qi-layer |
| 3 | description 'Use when writing or maintaining AGENTS.md, .context/CONTEXT.md, or CLAUDE.md mirrors: keep intent docs minimal and load-bearing.' |
| 4 | |
| 5 | |
| 6 | # qi-layer |
| 7 | |
| 8 | `/qi-maintenance` owns when colocated knowledge must move with source changes. |
| 9 | This skill owns how to write and structure that knowledge. |
| 10 | |
| 11 | Load `/knowledge-layers` for where each layer lives and what it holds. |
| 12 | Load `/llm-writing` if it isn't already loaded. |
| 13 | |
| 14 | This skill is about **how to write and maintain** the directory-local pair: |
| 15 | AGENTS.md and `.context/CONTEXT.md`. The pair governs any tree agents work |
| 16 | in — code, the KB, docs, work directories. AGENTS.md loads into an agent's |
| 17 | bounded context as standing instructions: write it like a prompt, minimal, |
| 18 | every line load-bearing. |
| 19 | |
| 20 | ## The Four Principles |
| 21 | |
| 22 | **Fractal Compression**: leaf AGENTS.md summarizes its directory's |
| 23 | content; parent AGENTS.md summarizes its children. Each level is a |
| 24 | compression of the level below. |
| 25 | **Hierarchical Summarization**: root provides broad architectural |
| 26 | frame. Leaves provide local working knowledge. Agents accumulate |
| 27 | understanding as they descend. |
| 28 | **LCA Deduplication**: shared knowledge appears once at the shallowest |
| 29 | node covering all relevant paths. Never duplicate between siblings. |
| 30 | **Progressive Disclosure**: give just enough to work correctly at this |
| 31 | level. Link to `.context/CONTEXT.md` for depth. |
| 32 | |
| 33 | ## Writing AGENTS.md |
| 34 | |
| 35 | Agents read AGENTS.md before opening anything else in the tree — write for |
| 36 | that moment. Ask: **what must someone understand before working here?** |
| 37 | That's what AGENTS.md captures. |
| 38 | |
| 39 | Keep AGENTS.md as short as the directory allows, rarely past 200 lines. |
| 40 | Include only what has substance: |
| 41 | |
| 42 | **Purpose**: what this area IS and what it ISN'T (1–3 sentences) |
| 43 | **Mental model**: how to think about this area, key abstractions |
| 44 | **Key rules**: constraints, what breaks if you get it wrong |
| 45 | **Anti-patterns**: what NOT to do here |
| 46 | **Downlinks**: to `.context/` for depth, to related areas |
| 47 | |
| 48 | An agent that only reads AGENTS.md should be able to work correctly here. |
| 49 | An agent that also reads .context/ should be able to change things safely. |
| 50 | |
| 51 | ## Writing .context/CONTEXT.md |
| 52 | |
| 53 | Reference depth, co-located with the code it describes. Where an agent |
| 54 | goes when it needs contracts, architecture, or rationale in detail. |
| 55 | |
| 56 | Sections (use only those with substance): |
| 57 | |
| 58 | **Contracts**: interfaces, invariants, what breaks if violated |
| 59 | **Architecture**: component relationships, data flow, dependency direction |
| 60 | **Rationale**: why X over Y, rejected alternatives |
| 61 | **Patterns**: how to work here, concrete pitfalls |
| 62 | |
| 63 | The `.context/` directory is extensible: additional files alongside |
| 64 | CONTEXT.md for specialized concerns. |
| 65 | |
| 66 | ## What Does NOT Belong in AGENTS.md |
| 67 | |
| 68 | Apply the **every-session test**: root AGENTS.md loads on every session. |
| 69 | If knowledge is only relevant when working in a specific domain, it belongs |
| 70 | in that domain's AGENTS.md or .context/, not root. |
| 71 | |
| 72 | Apply the **think-vs-lookup test**: text whose removal would cause a |
| 73 | *wrong decision* belongs in AGENTS.md. Text an agent would merely have to |
| 74 | *look up* belongs in .context/. Text that changes no behavior gets |
| 75 | deleted — agents already know how to code and follow common conventions. |
| 76 | |
| 77 | Specific failure modes: |
| 78 | |
| 79 | **Session bleed**: LLM working notes that calcified into the instruction |
| 80 | file. Tells: status-update language ("**deleted**", "shipped", "deferred"), |
| 81 | implementation terms packed without framing, history narration. |
| 82 | **Reference material posing as intent**: tables, command blocks, full |
| 83 | scheme vocabularies, implementation specifics. |
| 84 | **Redundant guards**: prose warnings for invariants already enforced by |
| 85 | tests or types. The code is the real guard; prose rots faster. |
| 86 | **Duplicated knowledge**: restating what lives in a skill, a domain |
| 87 | .context/, or a KB page. Point, don't duplicate. |
| 88 | **Domain-specific detail at root**: URI scheme tables, gateway pricing |
| 89 | internals, auth implementation details. These belong in their domain's |
| 90 | AGENTS.md, not root. |
| 91 | |
| 92 | ## Structural Rules |
| 93 | |
| 94 | Relative paths for all links |
| 95 | AGENTS.md and .context/ at the same directory level (siblings) |
| 96 | Link to files, not headings (headings change more often) |
| 97 | Lateral links between `.context/` directories with contracts between them |
| 98 | LCA deduplication: if two siblings share context, put it in the parent |
| 99 | |
| 100 | ## CLAUDE.md Mirrors |
| 101 | |
| 102 | Claude harnesses read CLAUDE.md, not AGENTS.md. Give every AGENTS.md a |
| 103 | sibling CLAUDE.md whose first line is `@AGENTS.md` — normally the whole |
| 104 | file. Run `meridian qi claude-md-fix <target-root>` on the containing tree |
| 105 | after creating or moving AGENTS.md files: it creates missing mirrors, skips |
| 106 | exact ones, and reports anything else as a conflict. |
| 107 | |
| 108 | Never write shared instructions into CLAUDE.md. Claude-only knowledge is |
| 109 | rare; when it exists, put it below the `@AGENTS.md` import and expect |
| 110 | `claude-md-fix` to keep flagging the file, so the divergence stays visible. |
| 111 | |
| 112 | Loading differs by level. At the root, each harness auto-loads its own |
| 113 | file every session: Claude reads CLAUDE.md, others read AGENTS.md. In |
| 114 | subdirectories, Claude auto-injects CLAUDE.md when it touches files there; |
| 115 | other agents see nested AGENTS.md only by reading it on entry. Don't lean |
| 116 | on Claude's auto-injection: a nested AGENTS.md carries the local additions |
| 117 | an agent needs on entry, with everything else inherited from ancestors. |
| 118 |
Discussion
Alternatives
Browse more free Claude skills or everything in Development.