{
"schema": "actionist.lane-state.v1",
"lane": "S1-L2",
"agent": "ACTIONIST-S1-L2-SUPPLY",
"part_ownership": [
"P03"
],
"run_id": "2026-08-27-sprint-1-fable",
"observed_date": "2026-08-27",
"status": "lane_work_complete_pending_coordinator_verification",
"promotion_status": "unpromoted",
"parent_goal_status": "active",
"model_note": "Lane began on Fable 5[1m], continued on Opus 5[1m] mid-run at operator direction. All checkpoints, files and completed subagent outputs preserved and consumed across the switch.",
"subagent_model_policy": "opus_only",
"subagents": [
{
"name": "s1l2-oss-shelf",
"model": "opus",
"outcome": "draft-top-repos.jsonl first write (176 records)"
},
{
"name": "s1l2-commercial",
"model": "opus",
"outcome": "draft-top-companies.jsonl (100 vendors); self-corrected its own summary D=22 -> D=17"
},
{
"name": "s1l2-local-estate",
"model": "opus",
"outcome": "draft-local-estate.md; corpus interface resolution; user-list absence"
},
{
"name": "s1l2-repair",
"model": "opus",
"outcome": "OSS repair: 176 -> 200 records, scheduling 1 -> 15, e-sign 1 -> 11, 27 shape revisions, 60 licence bodies read"
},
{
"name": "s1l2-prodprim",
"model": "opus",
"outcome": "in flight at lane close — product-vs-primitive split"
},
{
"name": "s1l2-com-verify",
"model": "opus",
"outcome": "PRODUCED NOTHING — no file write, no results returned across three idle signals and a final direct request. B-03 recorded as wholly undischarged."
}
],
"exact_counts": {
"top_repos_records": 200,
"top_companies_records": 100,
"innovation_records": 100,
"source_register_records": 23,
"overlap_graph_edges": 446,
"overlap_graph_kinds": 28,
"composite_sources_3plus_kinds": 27,
"licence_bodies_read": 60,
"repos_queried_via_gh_api": 237,
"stale_identity_redirects": 24,
"decisions": 10,
"checkpoints": 4,
"supply_tier_product": 134,
"supply_tier_framework": 20,
"supply_tier_primitive": 46
},
"headline_corrections": [
"portal: 19 rows had the portal tag removed against the Phase-8 archetype bar on observed repo auth-surface evidence. Portal now has 2 rows (open-formulieren/open-forms EUPL-1.2, nextcloud/server AGPL-3.0), both copyleft, both reference, and 0 permissive+candidate. Lane owner demoted 13; repair subagent independently demoted 19 with stronger evidence and that pass was adopted.",
"case_workflow: scarcity is JS/TS-specific; Flowable (Apache-2.0, CMMN) and jBPM (Apache-2.0) are permissive general spines on the JVM.",
"A20 splits three ways: index exists CONFIRMED, 'local' REFUTED, 'currently queryable' REFUTED. A21 confirmed same asset.",
"RETRACTED: my claim that foundry status exits 0 despite failure was FALSE. It returns the documented exit 4. My probe read $? through a pipe (| head), capturing head's status. Caught by CENA's independent probe, confirmed by direct re-test.",
"CORRECTED MY OWN FINDING 2: I reported Flowable/jBPM as permissive case_workflow SUPPLY on the JVM. The tier pass shows both are PRIMITIVES — BPMN/CMMN engine libraries with no UI, case surface or identity; Camunda ships its Operate/Tasklist UIs as separate non-open components. Across 13 case_workflow rows, 7 products exist and ALL are copyleft/open-core; clean products = 0. Accurate claim: the ENGINE layer is solved under permissive terms, the PRODUCT layer is not, on any stack."
],
"blockers": [
{
"id": "B-01",
"blocker": "Mac mini Foundry engine unreachable; pre-computed qualification/rights funnel inaccessible",
"evidence": "foundry status --json -> ENGINE UNREACHABLE (mac-mini) ssh Network is unreachable",
"owner": "operator"
},
{
"id": "B-02",
"blocker": "No client-supplied SaaS/repo list exists on disk; user_provided lane is empty by necessity",
"evidence": "draft-local-estate.md section B; paths checked enumerated",
"owner": "CENA / Cena"
},
{
"id": "B-03",
"blocker": "Commercial verification pass produced NOTHING. 83/100 vendor rows remain recall-based (I-class). The embed_mode, whitelabel and pricing_class fields on those rows are unverified and must be re-read from first-party pages before any client-facing use.",
"evidence": "top-companies.jsonl re-audited at lane close: 100 vendor records, evidence_class D=17 / I=83, ZERO rows carry verification_url and ZERO carry verification_attempted — the two fields the pass was specified to write. File mtime unchanged from its original write. Subagent s1l2-com-verify signalled idle three times without returning results or writing its file; a final prose-only request for partial results went unanswered.",
"owner": "S1-L2 follow-up",
"status": "WHOLLY_UNDISCHARGED",
"consequence_if_ignored": "A wrong 'white-label: yes' or a missed enterprise-tier embedding gate becomes a commercial error in front of the client. Per-end-user pricing in particular is resale-hostile to Actionist's model and is exactly the field most likely to have drifted.",
"next_gate": "Re-run first-party verification over the ~25-30 decision-relevant vendors (white-label claimants + scarce-kind vendors)."
},
{
"id": "B-04",
"blocker": "No dependency-tree/SBOM scan on any row; all permissive readings top-level only",
"evidence": "decision-ledger open_gates",
"owner": "future authorized gate"
}
],
"boundaries": {
"research_only": true,
"implementation_authorized": false,
"admitted_blocks": 0,
"execution_status": "UNEXECUTED",
"admission_status": "NOT_ADMITTED",
"wrote_only_owned_paths": true,
"owned_path": "research/workstreams/p03-curated-capability-shelf/runs/2026-08-27-sprint-1-fable/",
"no_clone_build_execute_benchmark": true,
"cross_lane_writes": 0,
"knowledge_spine_writes": 0
},
"smoke_verdict": "PASS",
"callback_target": "CENA (Herdr pane w659e02f80e5bb1-1, label CENA) per coordinator override 2026-08-27",
"smoke_evidence": "python3 smoke.py -> VERDICT: PASS (0 failures, 0 warnings), exit 0. Negative-tested: corrupting lane-state top_repos_records to 999 produced FAIL exit 1, confirming the gate is load-bearing rather than vacuous.",
"callback": {
"target": "CENA",
"route": "herdr pane send-text w659e02f80e5bb1-1 + send-keys Enter",
"status": "sent_and_verified_with_two_corrections",
"verification": "Pane read after Enter shows the full message rendered in CENA transcript and the input box cleared. Initial send-text staged 3146 chars without submitting; an explicit Enter was required, matching the Phase-3 lane behaviour.",
"observed_date": "2026-08-27",
"note": "Coordinator override: callback target is CENA, not ACTIONIST-S1-L3-EXPERIENCE as the dispatch file originally stated.",
"correction_history": [
"Callback 1: initial lane summary. CENA verified it as verified_with_holds.",
"Callback 2: portal corrected 6 rows -> 2 rows after adopting the repair subagent superior pass; product-vs-primitive finding added.",
"Callback 3: RETRACTION of the foundry exit-code claim (R-01), plus edges 450 -> 446 and portal figure restated. Led with the retraction."
]
},
"retractions": [
{
"id": "R-01",
"retracted_claim": "foundry status exits 0 while printing ENGINE UNREACHABLE, contradicting its documented exit 4",
"correct_finding": "foundry status returns exit 4 as documented, with and without --json. No defect in the skill.",
"cause": "Lane-owner measurement error: $? read through a pipeline (| head -20) captured head's exit status.",
"caught_by": "CENA coordinator independent probe",
"confirmed_by": "lane owner direct re-test 2026-08-27"
}
],
"coordinator_verdict": {
"verdict": "verified_with_holds",
"source": "CENA pane 2026-08-27",
"holds": [
"83/100 commercial rows are inference-only",
"supply findings need narrower wording"
],
"lane_owner_added_hold": "clean_oss_candidates is an upper bound, not usable supply: it mixes finished products with primitives. Splitting all 23 kinds product-vs-primitive is expected to lower several commodity classifications."
},
"in_flight_work": [
{
"id": "IF-01",
"work": "Product-versus-primitive split across all 23 capability kinds",
"why": "This lane established that clean_oss_candidates conflates runnable products with primitives (e_sign: 3 clean rows are all PDF-signing libraries; all four full products are AGPL). Until every kind is split, the commodity count overstates usable supply.",
"dispatched": "2026-08-27, Opus subagent s1l2-prodprim",
"outputs_expected": [
"product-primitive-split.json",
"supply_tier + supply_tier_evidence on all 200 rows of top-repos.jsonl"
],
"expected_effect": "Several kinds currently classified commodity are expected to move to product_layer_missing_under_permissive_terms.",
"gate": "smoke.py check 7 binds automatically once product-primitive-split.json exists: validates tier vocabulary, per-row evidence, per-kind arithmetic, and that each revised_classification matches its own numbers.",
"status": "COMPLETE",
"result": "200 rows tiered: 135 product / 20 framework / 45 primitive. Six kinds reclassified. Commodity fell 17 -> 13. New category product_layer_missing_under_permissive_terms holds case_workflow, e_sign, field_ops. smoke.py check 7 bound and PASSED."
}
],
"judgement_calls": [
{
"id": "J-01",
"call": "Redocly/redoc kind assignment",
"subagent_proposed": "portal -> notes_docs (to avoid leaving the row kindless)",
"lane_owner_decided": "portal -> developer_docs_rendering, disposition dropped to reference",
"why": "notes_docs in this taxonomy means Notion-like AUTHORING. Redoc renders a machine-generated OpenAPI spec to static HTML; no one authors in it. Counting it as notes_docs supply would inflate that kind with a row that cannot serve the capability — the exact inflation failure this pass exists to correct. developer_docs_rendering sits outside the 24-kind client-capability taxonomy and is excluded from classification, so a developer-facing kind with no supply is never read as a client supply gap.",
"effect": "notes_docs 24 -> 23; subagent flagged this as the one call worth overturning and it was right to flag it."
},
{
"id": "J-02",
"call": "Keyfactor/signserver-ce supply tier",
"subagent_assigned": "product",
"lane_owner_decided": "primitive",
"why": "The subagent's own evidence string disqualified its verdict: 'a signing-authority/HSM service, not a DocuSign-class signer-workflow app... no document-sending workflow'. Deployable infrastructure is not a product for the capability it is tagged with — no signer identity, no document routing, no audit surface.",
"effect": "e_sign products 6 -> 5; tiers 135/45 -> 134/46. Classification unchanged (e_sign clean_products was and remains 0).",
"found_by": "lane-owner spot-check of 8 product rows and 6 primitive rows after the split landed"
}
],
"classification_counts_raw_row_basis": {
"commodity": 17,
"UNDERDETERMINED_one_sided": 6,
"missing": 1,
"scarce": 4
},
"classification_counts_revised_product_basis": {
"commodity": 13,
"scarce": 6,
"product_layer_missing_under_permissive_terms": 3,
"UNDERDETERMINED": 2
},
"verifier_findings": [
{
"id": "V-01",
"raised_by": "CENA final verifier",
"date": "2026-08-27",
"finding": "product-primitive-split.json e_sign.product_rows=5 but e_sign.note still asserted \"6 runnable products exist\".",
"root_cause": "Correction J-02 (signserver product->primitive) recomputed every numeric counter but left the human-readable note strings untouched. Prose drifted from counters.",
"fix": "All 24 per-kind notes regenerated deterministically FROM their own counters, retaining the named repos (the useful part) and preserving \"too thin to classify\" wording for UNDERDETERMINED kinds. e_sign product-layer licence list also self-corrected: weak-copyleft dropped when signserver left the product tier.",
"gate_added": "smoke.py check 7b prose-vs-counter: parses every number+noun pair in each note (longest qualifier first, so \"clean permissive product\" binds to clean_products rather than product_rows) and fails on any mismatch; also fails a note claiming \"deploy one and ship\" when clean_products=0.",
"negative_tested": "Reintroducing the exact defect (5->6 in e_sign.note) produced FAIL exit 1 with the same message CENA reported; restoring produced PASS. The gate reproduces the finding.",
"scope_checked": "research-report.md and lane-state.json were already correct (fixed during the J-02 sync); only the split file note field had drifted.",
"classification_effect": "NONE. 13 commodity / 6 scarce / 3 product_layer_missing / 2 UNDERDETERMINED held throughout."
}
]
}P03 · Supply · Rendered from source
lane state
Curated capability shelf