PAOM (SENTINEL) ↔ FCC Coordination — Agent-Spec Handoff (#121)¶
FCC's record of the PAOM agent-spec handoff contract. PAOM consumes FCC personas as runnable agents; this file resolves the five handoff decisions PAOM raised. Authority: FCC owns personas / archetypes / R.I.S.C.E.A.R.; PAOM owns the agent runtime. Cross-repo posture is Channel-B — FCC does not write into PAOM; coordination is via this record + a GitHub notice on issue #121.
- PAOM contract draft:
paom/partnership_package/cross-repo/fcc_paom_spec_handoff_contract.md - PAOM pull adapter:
paom/src/paom/integrations/fcc_ingest.py(transport B) - FCC binding protocol:
archetype-persona-agent-binding.md
Resolved decisions (FCC, v1.11.0)¶
| # | Decision | Resolution | Owner |
|---|---|---|---|
| 1 | Transport | Bless B (pull). PAOM's fcc_ingest.py (reads FCC YAML via PAOM_FCC_ROOT) is the supported transport. FCC additionally publishes a versioned catalog export (docs/catalog/v<ver>/catalog.jsonl + paom_override_map.json, via make catalog-export) as the stable machine-readable surface PAOM may point at. No push pipeline. |
FCC publishes / PAOM pulls |
| 2 | Archetype label→PAOM-8 map | FCC owns it. FCC owns the archetype vocabulary; the canonical taxonomy (archetype_taxonomy.yaml) resolves all display labels to a PAOM-8 enum and emits paom_override_map.json for PAOM's override_map seam (zero-code adopt). |
FCC |
| 3 | Traits | PAOM derives; schema unchanged. FCC ships no trait weights; PAOM's derive_traits() seeds a per-enum profile so every archetype is fully populated, and archetype.schema.json keeps traits required. Corrected per SENTINEL on #121 — this row previously read "relaxes traits to optional (schema v2.1)", which was the originally proposed path, not the one taken. Same outcome, no gate weakened. |
PAOM |
| 4 | Constitution authority | doc_context.constitution is authoritative. The 3-tier guardrail (hard_stop / mandatory / preferred); hard_stop is mandatory for runnability (PAOM rejects personas without it — all FCC personas carry one as of v1.9.1). Any flat constraints[] is advisory / folded into mandatory. |
FCC |
| 5 | Contract record location | This file (fcc/docs/ecosystem/coordination/paom-sentinel-coordination.md), mirroring the tri-authority coordination template. PAOM's copy stays in its partnership_package/cross-repo/. |
FCC + PAOM |
What FCC delivers (this release)¶
- Canonical archetype taxonomy resolving 168 distinct display labels → 26 canonical archetypes → PAOM-8 enum; audited (0 unmapped).
paom_override_map.json— the label→PAOM-8 table for PAOM'soverride_map, published with everymake catalog-export.catalog.jsonl— full per-persona records (R.I.S.C.E.A.R. + canonical archetype + PAOM-8 enum + constitution), core (131) + vertical (45) = 176.- 131 of 176 personas are PAOM-runnable. The 131 core personas carry a populated
constitution.hard_stop; the 45 vertical personas shiphard_stop: [](empty) and are therefore rejected by PAOM's runnability gate. Verified againstdocs/catalog/v2.2.0/catalog.jsonl(176 entries, 45 empty). This line previously claimed all 176 were runnable — that was wrong, and SENTINEL caught it in #121: "the catalog is right and the summary line is stale." Populating the 45 vertical constitutions is a separate, deliberate piece of work — these are regulated domains (healthcare, finance, legal, insurance, energy, government) where ahard_stopis a safety claim, not boilerplate.
Open coordination notes (Channel-B — surface to PAOM via #121 notice)¶
- Verticals blind spot: PAOM's
fcc_ingestglobs onlysrc/fcc/data/personas/*.yamland does not readsrc/fcc/data/verticals/— so the 45 vertical personas are invisible to the pull adapter today. FCC's publishedcatalog.jsonlincludes them; PAOM should either consume the catalog or extend the glob. (FCC will not edit PAOM — flagged for PAOM to action.) - Override-map adoption: point
fcc_ingest'soverride_mapat FCC's publishedpaom_override_map.jsonto replace heuristic/default archetype resolution (the prior ~55 labels that fell to heuristic/default). - Traits derivation (decision 3) is a PAOM-side change (
derive_traits(), schema unchanged); FCC tracks it but does not depend on it.
Current as of v1.11.0. Resolutions confirmed by FCC owner 2026-06-20.