- mode-skeptic (17 LOC) — doubt everything, E1/E2 grade evidence - mode-devils-advocate (16) — steel-man the opposite - mode-minimalist (18) — what is unnecessary? - mode-maximalist (19) — 10x thinking for broad scope - mode-first-principles (21) — derive from invariants kei-critic += skeptic + devils-advocate kei-architect += first-principles Docs: _blocks/README.md + README.md paragraph under Behavioral blocks
2.5 KiB
2.5 KiB
_blocks/ — Composable Agent Content
Each .md file in this directory is a block: a single-concern, standalone-readable snippet that any agent manifest can include via its blocks = [...] list. The _assembler concatenates selected blocks + manifest metadata into the final agent .md that Claude Code loads.
Blocks are grouped by prefix:
| Prefix | Purpose |
|---|---|
baseline, evidence-grading, memory-protocol |
Obligatory base — every manifest must include these |
rule-* |
Discipline rules (pre-dev-gate, test-first, error-budget, double-audit, math-first) |
mode-* |
Cognitive mode blocks (see below) |
stack-* |
Language / framework constraints (Rust Axum, React Vite, Swift SPM, …) |
deploy-* |
Deployment target rules (Modal, AWS EC2, Cloudflare, Hetzner, …) |
api-* |
External API conventions (Apify, fal.ai, ElevenLabs, Anthropic, …) |
db-* |
Database rules (Postgres, SQLite, Drizzle, sqlx, migrations) |
auth-*, security-*, obs-*, ci-*, test-*, scraper-*, domain-*, docs-* |
Domain-specific rules |
Cognitive mode blocks
Composable behavioural skews. Add any combination to a manifest's blocks list to stack the mode. Modes compose — e.g. mode-skeptic + mode-minimalist yields an adversarial pruner.
| Block | Purpose |
|---|---|
mode-skeptic.md |
Doubt the conclusion until proved; flag claims without E1/E2 grade |
mode-devils-advocate.md |
Steel-man the opposite; name the strongest objection before agreeing |
mode-minimalist.md |
Prefer deleting over adding; justify every addition against existing code |
mode-maximalist.md |
Explore 10× scope; return both maximum and minimum bounds; only when user invokes exploration |
mode-first-principles.md |
Derive from invariants; cite the physical / mathematical constraint, not "best practice" |
Adding a new block
- Pick a stable prefix (existing category or a new one documented here).
- One concern per file. 20–50 LOC target,
<200 LOChard cap (Constructor Pattern). - Imperative voice (
"Do X"not"the agent should do X") — these land verbatim in agent prompts. - Standalone-readable — do not assume sibling blocks are present. Cross-references OK, hard dependencies not.
- Reference from a manifest's
blocks = [...]list; the assembler validates existence.
Ownership
Blocks are kit-owned — install.sh overwrites _blocks/ on re-run, backing up local edits to _blocks.bak-TIMESTAMP/. User-owned content belongs in _manifests/*.toml (which are never overwritten).