docs/layered-soul-recipe #239

Merged
clawdie merged 2 commits from docs/layered-soul-recipe into main 2026-10-31 20:55:01 +01:00
Owner
No description provided.
Add a design note and a spec-check pack for turning layered-soul guardrails
into Agent Vault placeholders.

- docs/plans/SOUL-RECIPE-PLACEHOLDERS.md: five placeholder classes, the
  guardrail->class table, an additive clawdie.layered-soul.v1 recipe schema
  (requires/provides, ph./cap./gen. ids, registry membership), the vault
  report shape with redaction rules, and the class-aware decision table
- scripts/soul-recipe/replay.py + testdata: vocabulary, 12-row matrix A,
  30-row class-aware matrix B, five recipe fixtures, a mutant-table negative
  control, and a sentinel proving a blocked recipe never invokes install()
- Jev triage recorded honestly: the five-way taxonomy question collapsed to
  one label and was unstable across runs (confidence 0.19-0.57), so it is
  treated as no evidence; the class-aware matrix agreed on write-only
  requirements (0.83/0.88) and was overruled on circular custody, where the
  deterministic table wins (refuse, not blocked)

Design only: no live vault, Tarsnap, jail, or ZFS operation. The replayer is a
spec check, not production binding.

Gates: ci-checks.sh PASS; check-okf.sh --changed clean; wiki-lint --strict 583
PASS; leak-guard clean; replay PASS.
docs(soul): simplify the recipe to api_placeholders only
Some checks failed
CI / markdown (pull_request) Successful in 11s
CI / packaging (pull_request) Successful in 3s
CI / python-tests (pull_request) Successful in 21s
CI / mcp-cross-language (pull_request) Successful in 26s
CI / go (pull_request) Has been cancelled
leak-guard / guard (pull_request) Successful in 2s
540b3f1dd0
Drop the gen.* / cap.* id machinery. A soul recipe declares credentials, not
host topology: mesh identity, dataset properties, lockfiles and runtime config
belong to Phase 1 host bootstrap, not to soul metadata.

- schema: one additive key, api_placeholders (name -> http_inject | read_decrypt
  | write_only), max 16, no values or refs
- keep the class because a single TARSNAP_* name cannot express that a write-only
  backup key cannot restore; without it readiness is wrong in the unsafe direction
- matrix A stays as import-time analysis (vault / host_bootstrap / archive /
  operator / hard_refuse) but only vault rows become recipe entries
- matrix B unchanged: state x requirement class x level, refuse on circular custody
- record two corrections: Tarsnap restore is smoke-tested with a fake key, not
  proven; and an empty vault does not mean no network, because jail PF egress is broad

Gates: ci-checks PASS; check-okf --changed clean; wiki-lint --strict 583 PASS;
leak-guard clean; replay PASS (12 A rows, 30 B rows, mutant + sentinel).
clawdie deleted branch docs/layered-soul-recipe 2026-10-31 20:55:02 +01:00
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
clawdie/colibri!239
No description provided.