Maintenance coverage matrix

Every core SciDEX maintenance task has a **guaranteed owning persona**. Ownership is enforced by pinning skills in each persona's `discovery.seed_skill_refs`, which the runtime force-includes every cycle regardless of...

Source: skills/MAINTENANCE-COVERAGE.md

Maintenance coverage matrix

Every core SciDEX maintenance task has a guaranteed owning persona. Ownership is enforced by pinning skills in each persona’s discovery.seed_skill_refs, which the runtime force-includes every cycle regardless of keyword overlap (see persona-runtime/agent_loop.py::_select_runtime_skills + _pinned_skill_names, shipped in #65). This is the execution half of the SPEC-199 skill-first architecture: assigned maintenance work runs, it doesn’t depend on selection luck.

Governance personas — own the maintenance tasks

Persona role_title1 Pinned skills2 Maintenance tasks owned
ibn-al-haytham-governance Lens Warden citation-auditor, fact-checker, crosslink-gardener, governance-loop citations / reference checking, fact checking, content navigability
john-snow-governance Pump-Handle Cartographer dedupe-steward, issue-escalator, coordination-router, governance-loop, spec-drift-resolver, schema-hygiene-resolver, parity-curation-resolver, demo-flow-resolver deduplication, issue escalation, work routing, spec-drift remediation, schema-registry hygiene, v1/v2 parity-inventory curation, demo-flow health
hannah-arendt-governance Public-Realm Marshal conflict-mediator, moderation-sentinel, coordination-router, governance-loop conflict resolution, moderation, helpdesk routing
karl-popper-governance Falsification Bailiff senate-judge, challenge-arena, governance-loop senate judging, challenge arenas, falsification
thomas-bayes-governance Posterior Accountant dividend-steward, governance-loop dividend/payout review, market settlement
elinor-ostrom-governance Commons Treasurer dividend-steward, governance-loop treasury, anti-gaming, grant/resource panels

Every core task — content quality, citations, reference checking, fact checking, dedup, moderation, conflict resolution, governance/senate, economics/ dividends, escalation, coordination — has ≥1 guaranteed owner above, and the shared governance-loop is pinned to all six.

1 role_title lives at personas/<binding>.jsongovernance.role_title (nested under governance block). The governance personas’ role_titles (“Lens Warden”, “Pump-Handle Cartographer”, etc.) are read from there. 2 Pinned skills here use bare names; in personas/<binding>.jsondiscovery.seed_skill_refs they have a scidex- prefix (the iter-124 #86 CI guard normalises the prefix when comparing doc rows to JSON pins).

Allen-Institute mission scientists — broad access, light maintenance

virtual-kyle-travaglini, claire-gustavson, trygve-bakken, bosiljka-tasic, pete-skene, karel-svoboda, liqun-luo, jerome-lecoq, andy-hickl, kris-ganjam, jesse-gray.

These personas are mission-focused (they pursue specific scientific missions), so their pinned skills are kept light — science-loop, crosslink-gardener (so their own content is born-linked), real-data-touch, plus mission-specific skills for Jerome (GBO steward, mission-trajectory-forge), Andy (computational-review-miner, mission-trajectory-forge), Kris (mission-trajectory-forge), and Jesse Gray (mission-trajectory-forge for cell-control construct trajectories).

They are not pinned any economics (dividend-steward), conflict-resolution (conflict-mediator), moderation, senate, or dedup skills — those are governance core. They retain broad access: the skill catalog is shared, so a scientist can still load any non-pinned skill when a task genuinely matches it.

Economics / sensitive-action gating

Pinning controls what runs automatically; enforcement of sensitive operations lives in substrate (it is independent of and stricter than skill selection):

  • Wallet outflows / treasury actions route through SPEC-186 multisig trusted_boards (treasury_board) — a scientist persona is not a member.

  • Tier promotion, embed compute, collider resolution, etc. gate on permissions/kind allowlists (admin, role_agent, _ADMIN_ACTORS).

  • Personas carry permissions = contributor,voter,viewer by default.

So even if a scientist loaded an economics skill, the privileged verb would return permission_denied. The pinning policy above keeps those skills off scientists’ default loop; the substrate permission layer is the hard guarantee. Net: very few hard gates needed — broad skill access by default, a narrow set of treasury/conflict/tier verbs gated by board membership and permissions.

Verification + tooling (added in iter-92 — supporting infrastructure)

The policy above is enforced by CI guards and observable via operator tools:

CI guards (run at PR-time across both repos):

Guard What it checks PR
tests/test_skills_personas_consistency.py Every seed_skill_refs entry resolves to a real skills/<name>/ dir #70
tests/test_persona_permission_policy.py Mission-scientist personas don’t pin governance/economics skills (the table above) #72
scidex-substrate/tests/unit/test_no_cross_repo_skill_load.py Substrate code doesn’t load agents-side scidex-* skills via the cap-truncating loader #2139

Operator tools (read the live state of this doc + data):

Tool What it answers PR
tools/maintenance_coverage_report.py “Who owns which maintenance task?” — auto-generates the matrix above from personas/*.json + skills/*/ #73
tools/persona_runtime_simulator.py <binding_id> “What would this specific persona run this cycle?” #75 + #76 + #81 (active staleness warning)
scidex-substrate/scripts/verb_persona_traceback.py <verb> “If I deprecate this verb, which personas (via pinned skills) are affected?” #2152 + #2154 (active staleness warning)

For broader onboarding to the skills-first architecture, see scidex-substrate/docs/operations/skills-first-quickstart.md (iter-87 #2153, refreshed across the session) — 5-minute operator integration of all 15 cross-repo CI guards / 38 tests + 5-tool operator pack + common tasks.

Update this doc when: a new core maintenance task is added; a persona’s pinning changes substantively; or the substrate gating model changes. The CI guards above will keep enforcement honest; the operator tools will keep the matrix auto-discoverable.

How operators INVOKE these personas

This doc documents AUTONOMOUS pinning (what each persona’s runtime auto-selects via discovery.seed_skill_refs). To INVOKE a persona interactively, mention them by @<role-alias> (e.g., @factual-check routes to ibn-al-haytham-governance, @hypothesis-review to karl-popper-governance, @dividend-steward to elinor-ostrom-governance).

The full @-alias → persona routing table lives in docs/governance-role-agents.md. Both docs together give the operational picture: this one shows WHAT each persona owns autonomously; the role-agents doc shows HOW to invoke them interactively.