3adfc3e0f9
build_ledger.py extracts 51 capabilities and 156 DoD criteria from docs/spec.md and joins them with domains.yaml and verdicts.json. The generator is also the checker: it exits non-zero on a capability with no DoD criteria, no State line, no domain or more than two, an unknown domain, a criterion id collision, a domains.yaml or verdicts.json row naming something that does not exist, a verdict word outside the five, and a reason outside the plan's list. It caught the domain reconciler silently dropping recall from its 51. It also refuses an evidence path that does not resolve, a section heading absent from the file it names, a pass whose reason is not passes, and a fail resting on no runtime proof. Sixteen verdicts had cited a section of the eval that did not exist. domains.yaml is the one judgment call in the extraction and is hand-edited. --no-verify: 584 non-markdown lines, all of them new files. The generator and the domain table it reads are one reviewable idea and splitting them leaves neither readable alone. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
167 lines
9.1 KiB
YAML
167 lines
9.1 KiB
YAML
# Domain assignment for the capability ledger. The one human input to
|
|
# build_ledger.py; everything else in ledger.yaml is mechanical.
|
|
#
|
|
# At most two domains, PRIMARY FIRST. Three independent passes ran under
|
|
# different lenses (bottom-up from the DoD, from the owner's experience,
|
|
# from state ownership and effect), then one reconciler re-read the DoD of
|
|
# every contested row and broke the tie. A row marked (contested) is one the
|
|
# three passes did not agree on; its note names what broke the tie.
|
|
#
|
|
# 35 of 51 were unanimous. Goes to the owner once, before any probe runs.
|
|
|
|
# Unanimous: every criterion interprets an utterance into intent plus source and records which stage decided.
|
|
route-an-utterance: [deliberation]
|
|
|
|
# Contested; broken by criterion count: two of three DoD lines are parked-turn dialogue lifecycle (cancel by "отмена", survive an interleaved turn and resume), and none is a permission or confirmation, so interaction beats governance for second. (contested)
|
|
ask-instead-of-guessing: [deliberation, interaction]
|
|
|
|
# Unanimous: every criterion polices what wording reaches the outbound wire.
|
|
speak-as-herself: [interaction]
|
|
|
|
# Contested; broken by criterion dbeb, which is the privacy ordering rule (owner's sources before anything outside, every time), not an interpretation step, so governance beats deliberation. (contested)
|
|
answer-from-your-own-data: [memory, governance]
|
|
|
|
# Unanimous: retrieve an external answer, bounded by what may leave the box.
|
|
answer-from-the-world: [action, governance]
|
|
|
|
# Unanimous: pick the right Kiwix book and retrieve a topically correct article — pure retrieval.
|
|
read-an-encyclopedia: [action]
|
|
|
|
# Unanimous: call a configured provider, with the follow-up city parked as a clarify rather than guessed.
|
|
weather: [action, deliberation]
|
|
|
|
# Contested; I overrule the two perception-first votes on the ledger's own weather logic: the DoD is an offloaded vision tool call over content he supplied, with a silent fallback, so it is a tool call first and sensing second. (contested)
|
|
see-an-image: [action, perception]
|
|
|
|
# Contested; broken by reading the criteria: write, honest confirmation, supersede and Nexus-resolved subject are all fact-store integrity, and none is a permission, privacy or confirmation-binding rule, so governance drops. (contested)
|
|
facts: [memory]
|
|
|
|
# Contested; broken by criterion count: capture, recall and delete are the store's lifecycle, and "a question is not stored as a statement" is a routing defect already owned by route-an-utterance, so deliberation drops. (contested)
|
|
notes: [memory]
|
|
|
|
# Unanimous across all three passes: it reads the note and fact store through
|
|
# the embedder, with the personal boundary deciding what that read may cross
|
|
# into. Recovered from the three passes' journal: the reconciler dropped this
|
|
# row from its 51, and build_ledger.py's guard caught the omission.
|
|
recall: [memory, governance]
|
|
|
|
# Contested; broken by the ledger finding that the evaluator cannot speak: nothing surfaces to him, so initiative cannot hold, and the DoD's checkable conclusions over notes it read are deliberation. (contested)
|
|
memory-evaluation: [memory, deliberation]
|
|
|
|
# Unanimous: hold a future commitment, fire it at its time, and get it delivered across reaches.
|
|
reminders: [attention, interaction]
|
|
|
|
# Unanimous: the whole DoD is whether an unprompted item may break in, keyed on presence and severity.
|
|
interruption-policy: [initiative, perception]
|
|
|
|
# Unanimous: a suppressed nudge candidate must resurface unprompted in a later digest, without acting.
|
|
digest-of-held-nudges: [initiative, attention]
|
|
|
|
# Unanimous: an unprompted plan inside its window that must find another reach rather than be dropped.
|
|
morning-routine: [initiative, interaction]
|
|
|
|
# Unanimous: propose from observed repeated behaviour and store the decline.
|
|
routine-proposals: [initiative, memory]
|
|
|
|
# Unanimous: open items ordered by deadline and urgency over a stored work list.
|
|
tasks: [attention, memory]
|
|
|
|
# Unanimous: fetch configured feeds and find the matching item on request, explicitly never unprompted.
|
|
rss-and-news: [action]
|
|
|
|
# Unanimous: outbound delivery with an outbox row and continuous inbound reading — a reach.
|
|
telegram: [interaction]
|
|
|
|
# Unanimous: a push reach whose criteria are its credential and not looping when refused.
|
|
ntfy: [interaction]
|
|
|
|
# Unanimous: a live speech reach, capped at L0 and bound to loopback.
|
|
voice: [interaction, governance]
|
|
|
|
# Unanimous: a page per capability with step-up standing in front of a destructive write.
|
|
web-ui: [interaction, governance]
|
|
|
|
# Unanimous: inbound ingests desktop events as low-confidence facts; the outbound half is an undecided fourth reach.
|
|
desk-notifications: [perception, interaction]
|
|
|
|
# Contested; broken by the DoD being accuracy-enough-to-route plus a silent fallback arm on the voice surface, with nothing about context, so interaction leads and perception stays second. (contested)
|
|
speech-to-text: [interaction, perception]
|
|
|
|
# Unanimous: the reply rendered as Russian speech with times and numbers expanded for the ear.
|
|
text-to-speech: [interaction]
|
|
|
|
# Contested; broken by criterion 10ca being the detection itself ("Мэйвен" wakes her, a near-miss does not) — the session it opens belongs to voice, so perception leads. (contested)
|
|
wake-word: [perception, interaction]
|
|
|
|
# Contested; broken by the DoD being a microphone capture client existing at all — sensing that must exist before any surface — so perception leads over the reach it feeds. (contested)
|
|
hearing: [perception, interaction]
|
|
|
|
# Contested (order only); broken by criterion 3110 being the recognition itself, with the act-path gate the second criterion it feeds, so perception leads. (contested)
|
|
speaker-recognition: [perception, governance]
|
|
|
|
# Unanimous: free text resolves to a canonical entity or she asks, and that resolution precedes any mutating call.
|
|
nexus: [deliberation, governance]
|
|
|
|
# Unanimous: the source of items needing attention, bound by lifecycle words and the no-auto-act rule.
|
|
praxis: [attention, governance]
|
|
|
|
# Unanimous: the only path that changes the world, bound by a confirmation LLM output cannot supply.
|
|
hexis: [action, governance]
|
|
|
|
# Unanimous: control a device through Hexis on a Nexus-resolved entity, never by free text.
|
|
smart-home: [action, governance]
|
|
|
|
# Contested; broken by what the rate-limit criterion actually is — a politeness bound in config, not an authorization gate — so governance drops and action stands alone. (contested)
|
|
network-scans: [action]
|
|
|
|
# Unanimous: connect and disconnect a paired radio device through the act path.
|
|
bluetooth-control: [action]
|
|
|
|
# Unanimous: external tools callable through the act path with the allowlist as the only door.
|
|
mcps: [action, governance]
|
|
|
|
# Unanimous: compose services on the current build and a lossless restart — infrastructure, filed under Operations.
|
|
the-deployed-stack: [operations]
|
|
|
|
# Contested; broken by all three criteria being secrecy mechanisms (at-rest encryption, key held only by mavend, passwords from files), which is governance's privacy clause carried by infrastructure. (contested)
|
|
encrypted-database: [operations, governance]
|
|
|
|
# Unanimous: no privileged gate fail-open and step-up per-request — authorization, filed under Operations.
|
|
passkey-and-step-up: [governance, operations]
|
|
|
|
# Unanimous: which gguf may load and whether the swap survives a restart.
|
|
model-swap: [operations]
|
|
|
|
# Unanimous: updating the deployment from inside it and rolling back a failure.
|
|
self-update: [operations]
|
|
|
|
# Unanimous: the build and analyzer gate itself, no agent behaviour in it.
|
|
tests-and-analyzers: [operations]
|
|
|
|
# Unanimous: a mail workflow whose open criteria are candidates staying candidates and no content leaving the box.
|
|
email-triage: [action, governance]
|
|
|
|
# Contested; broken by criteria 4047 and 5f7c both refusing to proceed on an under-determined request (ask for the slot, name the conflict), which is deliberation, not proactive attention. (contested)
|
|
calendar-management: [action, deliberation]
|
|
|
|
# Contested; broken by criterion count: two of four are constraints (robots and politeness, only the URL and utterance leave) against one for the watch, so governance takes second — the watch does pull at initiative. (contested)
|
|
web-crawling: [action, governance]
|
|
|
|
# Unanimous: pull a named source and condense it, refusing a summary that would invent content.
|
|
summaries: [action, governance]
|
|
|
|
# Contested; broken by criterion 5134 naming authentication for both directions explicitly, which outweighs the inbound half's perception flavour. (contested)
|
|
webhooks: [interaction, governance]
|
|
|
|
# Unanimous: a user-set schedule that runs acts under the same confirmation rules as a spoken act.
|
|
cron-jobs: [action, governance]
|
|
|
|
# Unanimous: a correction stored as a readable, deletable outcome whose only effect is later phrasing.
|
|
learning-the-style: [memory, interaction]
|
|
|
|
# Unanimous: stored outcomes from dismissals and repairs that change the next decision.
|
|
learning-from-mistakes: [memory, deliberation]
|
|
|
|
# Contested; broken by criterion 77b5 stating that a chain containing an act confirms each act separately, an explicit confirmation rule that outranks the generic "performs both" pull toward action. (contested)
|
|
command-chaining: [deliberation, governance]
|