Skip to main content
skill CX Codex

knowledge-layers — Claude Code skill: where project knowledge goes

A skill that decides which layer holds a piece of knowledge: AGENTS.md, .context/, KB, docs/ or a work directory. Useful when the agent keeps looking in the wrong place.

Install into Claude Code · Skills CLI (Vercel) All methods and platforms ↓
npx skills add haowjy/creative-writing-skills --skill knowledge-layers -a claude-code
Open on GitHub

What knowledge-layers does

The skill lays out five layers and placement rules. AGENTS.md carries intent and the mental model for a directory — the first thing an agent reads on entry. .context/ holds contracts, architecture and rationale in CONTEXT.md, plus deferred work in TODO and FUTURE. The KB takes cross-cutting decisions and domain concepts, docs/ serves end users, and a work directory keeps scratch decisions tied to an active item.

When in doubt, colocate. Knowledge that sits far from what it describes rots faster, because a change to the thing never triggers awareness that a distant doc needs updating. The KB links to the work's own docs and writes only what they leave out: the settled intent, the reason, the rejected alternatives.

The skill tells you to load /qi-layer when writing or editing AGENTS.md or .context/ files, and /information-hierarchy plus /llm-writing if they aren't loaded yet. It also separates an invariant from a current choice. The test: if an agent found a better way that broke the rule, should it stop and ask the human first? If yes, it's an invariant. Everything else defaults to a current choice, and human hedges like "for now" or "let's try" mark a trial rather than a ruling.

What it helps with

  • pick the right layer for a new piece of project knowledge
  • file a deferred task against the directory it touches
  • tell an invariant apart from a temporary choice
  • delete a stale doc without leaving a gap
  • decide when knowledge belongs in the KB and when it stays next to the code

Example prompts for the agent

  • where should the auth module's architecture decision go?
  • is this an invariant or a current choice?
  • clean up the stale pages in the KB

How to install knowledge-layers

1Skills CLI (Vercel)

npx skills add haowjy/creative-writing-skills --skill knowledge-layers -a claude-code

2Manually: put the files in place

~/.claude/skills/knowledge-layers/SKILL.md

Copy the whole skill folder; for one project use .claude/skills/knowledge-layers/

Step by step, with commands for each platform: How to install skills in Claude Code: five ways

Questions about knowledge-layers

How do I install knowledge-layers in Claude?

Run npx skills add haowjy/creative-writing-skills --skill knowledge-layers -a claude-code. It lands at ~/.claude/skills/knowledge-layers/SKILL.md.

What does knowledge-layers do?

It tells you which layer a piece of knowledge belongs to: AGENTS.md, .context/, KB, docs/ or a work directory. It also separates invariants from current choices.

Which skills does it need loaded?

/qi-layer for writing or editing AGENTS.md or .context/ files. /information-hierarchy and /llm-writing if they aren't loaded yet.

Source text

SKILL.md · Apache-2.0
---
name: knowledge-layers
description: 'Use when deciding where knowledge goes or reading/writing durable docs: AGENTS.md, .context/, KB, docs/, and work directories.'
---

# Knowledge Layers

Load `/qi-layer` when writing or editing AGENTS.md or .context/ files: it
owns the craft (four principles, contents guidelines, what doesn't belong).
Load `/information-hierarchy` if not already loaded for disclosure tiers.
Load `/llm-writing` if not already loaded.

## The Five Layers

| Layer | What it holds | When to use it |
|---|---|---|
| `AGENTS.md` | Intent and mental model for a directory | First thing agents read on entry; what to understand *before* working here |
| `.context/` | Contracts, architecture, rationale (`CONTEXT.md`); deferred work (`TODO`, `FUTURE`) | Reference depth and tracked deferrals, co-located with the material they describe |
| KB | Cross-cutting decisions, domain concepts, patterns | Spans directories; outlives sessions; no single directory owns it |
| `docs/` | User-facing documentation | Different audience, different update cadence |
| Work directory | Temporary design decisions and scratch | Not colocated with durable content; scoped to an active work item |

## Placement Rules

If it's intent/mental-model for a directory → `AGENTS.md`.
If it's directory-scoped depth an agent looks up → `.context/`.
If it's deferred work scoped to this directory → `.context/TODO` (must-do)
or `.context/FUTURE` (nice-to-have). Flat markdown lists — each entry names
the affected path and concrete follow-up. Cross-cutting items or items needing
external visibility get filed in the project's issue tracker instead.
If it's big picture — cross-cutting decisions, domain concepts,
higher-level system architecture → KB.
If it's for end users → `docs/`.
If it's the human correcting an agent → the KB corrections register
(`resources/corrections/register.md`; `code.md` beside it for code projects).
`/correct` fixes the classes that repeat.
If it's a temporary work artifact → work directory.

When in doubt, colocate. Knowledge that depends on one subsystem belongs
in that subsystem's AGENTS.md or .context/ even when it reads like a
concept; the KB stays independent of any one implementation, holding what
survives a change to it. Knowledge that lives far from what it describes
rots faster: changes to the thing don't trigger awareness that a distant doc
needs updating.

**The KB links to the work's own docs.** Before writing to the KB about
some work, read the docs, `AGENTS.md`, `.context/`, and comments the work
updated. Link to what they describe, and write only what they don't say:
the settled intent, the reason, the rejected alternatives, how it relates
to the rest of the project. When they say all of it, the KB gets a link or
nothing. Cut a KB section that restates them down to the link and the
parts they don't say; the copy drifts the next time they change.

## Current Truth Over History

Every durable layer — AGENTS.md, `.context/`, KB, `docs/` — holds the best
current understanding; work directories may keep intermediate reasoning
while their work item is active. When durable content is
superseded, delete it or (for KB pages) move it to `archive/`
(`.kgignore`'d, excluded from the knowledge graph). Live content never
references archived content. Pages read as current truth, never narrate
their own evolution.

**Deletion needs no replacement.** A page whose subject is gone, or that
describes behavior the system no longer has, gets deleted on sight — even
with nothing new to write in its place. Stale knowledge is worse than a
gap: agents load it and reason from it. Deletion is the content-truth
owner's call; structural roles flag instead.

**History is the archive.** In a version-controlled tree, commit untracked
files before deleting them so the removal lands in history, and say what was
removed and why in the commit message. Elsewhere, preserve what still matters
in the project's archive before deleting. Deletion is cheap because nothing
preserved is truly lost.

**Truth is anchored per layer.** AGENTS.md and `.context/` describe the
tree that contains them: update them in the same change as what they
describe. The KB records the current settled intent — what the project
*should be* — and an invariant is KB truth the moment the human settles it,
done or not. Unsettled intent isn't KB material; it stays in the work directory.
`docs/` describes what has shipped to its readers. In a code project, load
`resources/code.md` for how this maps to branches, merges, and shipped code.

Decision records are the exception: preserve superseded decisions in place
when they explain why the system changed. Mark the old decision as
superseded and link to the replacement.

## Invariants and Current Choices

Record each settled point as one of two kinds. An **invariant** must hold
however the work is done. A **current choice** is what the project is doing
or trying for now. The test: if an agent found a better way that broke it,
should it stop and ask the human who owns the project first? If yes, it's an
invariant; if no, the agent changes it and updates the doc.

Default to current choice. The human's hedges ("for now", "let's try", "i
think", "whatever is less work") mark a trial, and so does the human agreeing
to something an agent proposed. An agent's own call stays a current choice
until the human makes it an invariant. Quote the human with their hedges
kept, and never record a trial as their ruling.

Write invariants as rules, in decision records or `AGENTS.md`. Write current
choices as how things stand now, beside the work they describe. Measurements
and the story of what went wrong go beside what they measure or explain, not
inside a rule. A status line says only whether the thing is done, partly
done, not done, or superseded; how it got there belongs in version control
or the archive.

## KB Conventions

### Structure

The KB is a directory tree like any other: it carries its own AGENTS.md
and `.context/` pair, written per `/qi-layer` — intent in AGENTS.md,
governance depth (writing conventions, structure, validation) in
`.context/`. Read the KB's own `AGENTS.md` before writing. Treat this
skill as the cross-project default; the local KB guide wins for that KB.
See `resources/bootstrap.md` for a suggested starting layout.

### Wiki Page Conventions

Follow `/information-hierarchy`. One concept per document; name files by
what they describe (`token-validation.md`), not when (`auth-redesign-notes.md`).
Cross-reference instead of re-explaining. Load `/shared-dao` for vocabulary
methodology. Use mermaid for anything spatial; capture what the files
themselves can't easily tell you.

## Operations

**Ingest**: new information enters the KB. Read the source, extract key
knowledge, write or update wiki pages, and update indexes/cross-links touched
by the change.

**Maintain**: keep the wiki current per Current Truth Over History above.

**Lint**: health-check the wiki. Look for contradictions, stale claims,
orphan pages, missing cross-references. Use `/md-validation` for link
checking and diagram validation.

Flag content needing human attention with `> [!FLAG] **Needs human review**`.

© haowjy · Apache-2.0 · haowjy/creative-writing-skills

Similar skills

All skills for Agent setup: memory, context, orchestration →

From the same set22

Project sponsors

Companies that keep this analytics open
Gold sponsor

Impressions, clicks and code copies — open statistics. We keep the numbers public for the same reason NeBlask itself is public. Become a sponsor