KeiSeiKit-1.0/_blocks
Parfii-bot d95a3ba48c feat(v0.16.1): dynamic schema SSoT + KNOWN_SCHEMAS drift-test + mode-matrix Phase 3.6
Three polish items from post-audit parallel agent.

1. Dynamic schema whitelist (drops hardcoded const drift)
   _assembler/src/schemas_export.rs (NEW, 136 LOC) — loader cube,
     priority path $AGENT_ROOT/artifacts/schemas.json →
     ~/.claude/agents/artifacts/schemas.json → BUILTIN fallback.
     Hand-rolled JSON parser (no serde_json dep).
   _assembler/src/validator.rs delegates to schemas_export::load,
     keeps KNOWN_ARTIFACT_SCHEMAS alias for back-compat.
   _primitives/_rust/kei-artifact/src/export.rs (NEW, 82 LOC) —
     write() + render() + default_path().
   _primitives/_rust/kei-artifact/src/cli_cmds.rs (NEW, 126 LOC) —
     extracted cmd_emit/get/list/chain so main stays <200 LOC.
   ExportSchemas + ListSchemas subcommands; cmd_register
     auto-refreshes export file (best-effort).

2. KNOWN_SCHEMAS SSoT — documented-dual-const + drift-test
   (Option "simpler than new crate"). SSoT in kei-artifact's
   BUILTIN; schemas_export::BUILTIN is a documented mirror;
   builtin_schemas_do_not_drift_from_kei_artifact test in
   validator.rs parses the primitive's source at test time and
   diffs. <30 LOC change. No workspace structural change —
   assembler stays decoupled from runtime primitive.

3. Agent-to-mode matrix + wizard Phase 3.6
   _blocks/mode-matrix.md (NEW, 24 LOC) — 11-row table mapping
     agent role × recommended mode blocks.
   skills/new-agent/SKILL.md — new Phase 3.6 (between name-confirm
     3.5 and manifest-write 4). AskUserQuestion with 5
     cognitive-mode options (skeptic/devils-advocate/minimalist/
     maximalist/first-principles, multiSelect). Appends picked
     labels to manifest's blocks array. Defaults to NONE.
   _blocks/README.md adds one-line reference to the matrix.
   _assembler/tests/mode_blocks.rs (NEW, 78 LOC) — 3 integration
     tests lock the wiring.

README.md — all accumulated count + pre-built-binaries + plugin
section edits from the v0.16 cycle consolidated here (will be
replaced by markers in v0.17 counts-autogen refactor).

Tests: assembler 24 → 33 (+9), kei-artifact 24 → 31 (+7), total
48 → 64. cargo check --workspace clean.

Constructor Pattern: largest new file validator.rs 180 LOC.

Pre-existing flagged for separate refactor: kei-artifact
validate.rs 268 LOC (not touched by this polish).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-22 15:10:46 +08:00
..
api-anthropic.md feat: KeiSeiKit v0.1.0 — initial public release 2026-04-20 23:58:34 +08:00
api-apify.md refactor(blocks): update kit-agent handoff refs to kei- prefix in 5 blocks 2026-04-21 14:12:49 +08:00
api-elevenlabs.md refactor(blocks): update kit-agent handoff refs to kei- prefix in 5 blocks 2026-04-21 14:12:49 +08:00
api-fal-ai.md refactor(blocks): update kit-agent handoff refs to kei- prefix in 5 blocks 2026-04-21 14:12:49 +08:00
api-graphql.md feat(blocks): 4 API design blocks — rest/openapi/graphql/versioning-pagination 2026-04-21 20:54:53 +08:00
api-openapi-first.md feat(blocks): 4 API design blocks — rest/openapi/graphql/versioning-pagination 2026-04-21 20:54:53 +08:00
api-rest-conventions.md feat(blocks): 4 API design blocks — rest/openapi/graphql/versioning-pagination 2026-04-21 20:54:53 +08:00
api-versioning-pagination-ratelimit.md feat(blocks): 4 API design blocks — rest/openapi/graphql/versioning-pagination 2026-04-21 20:54:53 +08:00
auth-authorization.md feat(blocks): 4 auth blocks — oauth2-oidc/passkeys/sessions/authorization 2026-04-21 20:35:12 +08:00
auth-oauth2-oidc.md feat(blocks): 4 auth blocks — oauth2-oidc/passkeys/sessions/authorization 2026-04-21 20:35:12 +08:00
auth-passkeys.md feat(blocks): 4 auth blocks — oauth2-oidc/passkeys/sessions/authorization 2026-04-21 20:35:12 +08:00
auth-sessions.md feat(blocks): 4 auth blocks — oauth2-oidc/passkeys/sessions/authorization 2026-04-21 20:35:12 +08:00
baseline.md feat: KeiSeiKit v0.1.0 — initial public release 2026-04-20 23:58:34 +08:00
ci-forgejo-actions.md feat(blocks): 4 CI/CD blocks — gh-actions/forgejo-actions/release/security-gate 2026-04-21 20:56:24 +08:00
ci-github-actions.md feat(blocks): 4 CI/CD blocks — gh-actions/forgejo-actions/release/security-gate 2026-04-21 20:56:24 +08:00
ci-release-automation.md feat(blocks): 4 CI/CD blocks — gh-actions/forgejo-actions/release/security-gate 2026-04-21 20:56:24 +08:00
ci-security-gate.md feat(blocks): 4 CI/CD blocks — gh-actions/forgejo-actions/release/security-gate 2026-04-21 20:56:24 +08:00
db-drizzle.md feat(blocks): 5 database blocks — postgres/sqlite/sqlx/drizzle/migration-hygiene 2026-04-21 20:31:37 +08:00
db-migration-hygiene.md feat(blocks): 5 database blocks — postgres/sqlite/sqlx/drizzle/migration-hygiene 2026-04-21 20:31:37 +08:00
db-postgres.md feat(blocks): 5 database blocks — postgres/sqlite/sqlx/drizzle/migration-hygiene 2026-04-21 20:31:37 +08:00
db-sqlite.md feat(blocks): 5 database blocks — postgres/sqlite/sqlx/drizzle/migration-hygiene 2026-04-21 20:31:37 +08:00
db-sqlx.md feat(blocks): 5 database blocks — postgres/sqlite/sqlx/drizzle/migration-hygiene 2026-04-21 20:31:37 +08:00
deploy-aws-ec2.md feat: KeiSeiKit v0.1.0 — initial public release 2026-04-20 23:58:34 +08:00
deploy-cloudflare.md feat: KeiSeiKit v0.1.0 — initial public release 2026-04-20 23:58:34 +08:00
deploy-docker.md feat: KeiSeiKit v0.1.0 — initial public release 2026-04-20 23:58:34 +08:00
deploy-hetzner-cloud.md feat(blocks): 7 VM + security blocks 2026-04-21 20:59:28 +08:00
deploy-local-only.md refactor: remove restricted-scope agents and blocks from public kit 2026-04-21 19:07:02 +08:00
deploy-modal.md feat: KeiSeiKit v0.1.0 — initial public release 2026-04-20 23:58:34 +08:00
deploy-vps-generic.md feat(blocks): 7 VM + security blocks 2026-04-21 20:59:28 +08:00
docs-architecture-diagrams.md feat(blocks): 5 documentation blocks — claude-md/decisions/runbook/readme/diagrams 2026-04-21 21:01:28 +08:00
docs-claude-md.md feat(blocks): 5 documentation blocks — claude-md/decisions/runbook/readme/diagrams 2026-04-21 21:01:28 +08:00
docs-decisions-adr.md feat(blocks): 5 documentation blocks — claude-md/decisions/runbook/readme/diagrams 2026-04-21 21:01:28 +08:00
docs-readme-template.md feat(blocks): 5 documentation blocks — claude-md/decisions/runbook/readme/diagrams 2026-04-21 21:01:28 +08:00
docs-runbook.md feat(blocks): 5 documentation blocks — claude-md/decisions/runbook/readme/diagrams 2026-04-21 21:01:28 +08:00
domain-has-secrets.md feat: KeiSeiKit v0.1.0 — initial public release 2026-04-20 23:58:34 +08:00
domain-ml-training.md feat: KeiSeiKit v0.1.0 — initial public release 2026-04-20 23:58:34 +08:00
domain-paid-apis.md refactor(blocks): update kit-agent handoff refs to kei- prefix in 5 blocks 2026-04-21 14:12:49 +08:00
evidence-grading.md feat: KeiSeiKit v0.1.0 — initial public release 2026-04-20 23:58:34 +08:00
memory-protocol.md feat: KeiSeiKit v0.1.0 — initial public release 2026-04-20 23:58:34 +08:00
mode-devils-advocate.md feat(blocks): 5 cognitive mode blocks + 2 manifest wirings 2026-04-22 13:49:57 +08:00
mode-first-principles.md feat(blocks): 5 cognitive mode blocks + 2 manifest wirings 2026-04-22 13:49:57 +08:00
mode-matrix.md feat(v0.16.1): dynamic schema SSoT + KNOWN_SCHEMAS drift-test + mode-matrix Phase 3.6 2026-04-22 15:10:46 +08:00
mode-maximalist.md feat(blocks): 5 cognitive mode blocks + 2 manifest wirings 2026-04-22 13:49:57 +08:00
mode-minimalist.md feat(blocks): 5 cognitive mode blocks + 2 manifest wirings 2026-04-22 13:49:57 +08:00
mode-skeptic.md feat(blocks): 5 cognitive mode blocks + 2 manifest wirings 2026-04-22 13:49:57 +08:00
obs-metrics.md feat(blocks): 3 observability blocks — logs/metrics/traces 2026-04-21 20:41:17 +08:00
obs-structured-logs.md feat(blocks): 3 observability blocks — logs/metrics/traces 2026-04-21 20:41:17 +08:00
obs-traces.md feat(blocks): 3 observability blocks — logs/metrics/traces 2026-04-21 20:41:17 +08:00
README.md feat(v0.16.1): dynamic schema SSoT + KNOWN_SCHEMAS drift-test + mode-matrix Phase 3.6 2026-04-22 15:10:46 +08:00
rule-double-audit.md feat: KeiSeiKit v0.1.0 — initial public release 2026-04-20 23:58:34 +08:00
rule-error-budget.md feat: KeiSeiKit v0.1.0 — initial public release 2026-04-20 23:58:34 +08:00
rule-math-first.md feat: KeiSeiKit v0.1.0 — initial public release 2026-04-20 23:58:34 +08:00
rule-pre-dev-gate.md feat: KeiSeiKit v0.1.0 — initial public release 2026-04-20 23:58:34 +08:00
rule-test-first.md feat: KeiSeiKit v0.1.0 — initial public release 2026-04-20 23:58:34 +08:00
scraper-free-tier.md feat: KeiSeiKit v0.1.0 — initial public release 2026-04-20 23:58:34 +08:00
scraper-paid-tier.md refactor(blocks): update kit-agent handoff refs to kei- prefix in 5 blocks 2026-04-21 14:12:49 +08:00
scraper-unified-output.md feat: KeiSeiKit v0.1.0 — initial public release 2026-04-20 23:58:34 +08:00
security-audit-logging.md feat(blocks): 7 VM + security blocks 2026-04-21 20:59:28 +08:00
security-firewall-ufw.md feat(blocks): 7 VM + security blocks 2026-04-21 20:59:28 +08:00
security-patching.md feat(blocks): 7 VM + security blocks 2026-04-21 20:59:28 +08:00
security-ssh-hardening.md feat(blocks): 7 VM + security blocks 2026-04-21 20:59:28 +08:00
security-tls-caddy.md feat(blocks): 7 VM + security blocks 2026-04-21 20:59:28 +08:00
stack-astro.md feat(blocks): stack-astro/react-vite/sveltekit/tailwind 2026-04-21 21:07:45 +08:00
stack-embedded-stm32.md feat: KeiSeiKit v0.1.0 — initial public release 2026-04-20 23:58:34 +08:00
stack-fastapi-postgres.md feat: KeiSeiKit v0.1.0 — initial public release 2026-04-20 23:58:34 +08:00
stack-flutter.md feat: KeiSeiKit v0.1.0 — initial public release 2026-04-20 23:58:34 +08:00
stack-go-server.md feat: KeiSeiKit v0.1.0 — initial public release 2026-04-20 23:58:34 +08:00
stack-nextjs.md feat: KeiSeiKit v0.1.0 — initial public release 2026-04-20 23:58:34 +08:00
stack-python-ml.md feat: KeiSeiKit v0.1.0 — initial public release 2026-04-20 23:58:34 +08:00
stack-react-vite.md feat(blocks): stack-astro/react-vite/sveltekit/tailwind 2026-04-21 21:07:45 +08:00
stack-rust-axum.md feat: KeiSeiKit v0.1.0 — initial public release 2026-04-20 23:58:34 +08:00
stack-rust-cli.md feat: KeiSeiKit v0.1.0 — initial public release 2026-04-20 23:58:34 +08:00
stack-sveltekit.md feat(blocks): stack-astro/react-vite/sveltekit/tailwind 2026-04-21 21:07:45 +08:00
stack-swift-ios.md feat: KeiSeiKit v0.1.0 — initial public release 2026-04-20 23:58:34 +08:00
stack-swift-spm.md feat: KeiSeiKit v0.1.0 — initial public release 2026-04-20 23:58:34 +08:00
stack-tailwind.md feat(blocks): stack-astro/react-vite/sveltekit/tailwind 2026-04-21 21:07:45 +08:00
test-e2e.md feat(blocks): 4 testing blocks — fuzz/property/load/e2e 2026-04-21 20:32:45 +08:00
test-fuzz.md feat(blocks): 4 testing blocks — fuzz/property/load/e2e 2026-04-21 20:32:45 +08:00
test-load.md feat(blocks): 4 testing blocks — fuzz/property/load/e2e 2026-04-21 20:32:45 +08:00
test-property.md feat(blocks): 4 testing blocks — fuzz/property/load/e2e 2026-04-21 20:32:45 +08:00

_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. 2050 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-ownedinstall.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).