Single-commit clean baseline after security scrub of niche-tells, project codenames, internal jargon, and contributor-email leaks. Contents: - 100 Rust crates (_primitives/_rust/) - 37 agent manifests (_manifests/) + generated specs (_generated/) - 67 user-invocable skills (skills/) - 33 hooks (hooks/) - Composition blocks (_blocks/) - Documentation (docs/, README.md) - TS adapter packages (_ts_packages/) - Assembler (_assembler/) - Roles (_roles/) - Templates (_templates/) - Forgejo CI (.forgejo/) Author: Denis Parfionovich <info@greendragon.info> License: see LICENSE.
42 lines
2.7 KiB
Markdown
42 lines
2.7 KiB
Markdown
# `_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" |
|
||
|
||
See `mode-matrix.md` for the **agent-role × recommended-modes** table used by the `skills/new-agent` wizard (Phase 3.6). It is the suggested starting set per role — modes remain a free pick per manifest.
|
||
|
||
## Adding a new block
|
||
|
||
1. Pick a stable prefix (existing category or a new one documented here).
|
||
2. One concern per file. 20–50 LOC target, `<200 LOC` hard cap (Constructor Pattern).
|
||
3. Imperative voice (`"Do X"` not `"the agent should do X"`) — these land verbatim in agent prompts.
|
||
4. Standalone-readable — do not assume sibling blocks are present. Cross-references OK, hard dependencies not.
|
||
5. 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).
|