Regulatory asset intake lane

Document Version: 1.0.0 Effective: 2026-05-02 Owners: Compliance, Maintainer-of-Record, Legal Status: binding process


1. Why this lane exists

Stella Ops is offline/air-gap-first (CLAUDE.md §2.8). Every regulator-published or vendor-published evidence package that engineering needs at runtime (eIDAS QTSP/QSCD/TSL/LOTL fixtures, EBA DORA DPM/XBRL taxonomies, EBA RoI XSD packages, RFC 3161 TSA fixtures, OCSP/CRL snapshots) MUST be vendored into the repo under a stable local path with manifest SHA-256, license disposition, and notice attribution captured. Engineering cannot reach for these assets at build/test/runtime; the runtime never fetches.

The blocker on at least eight currently-BLOCKED tasks across sprints 018/019/112/121/122/123 is not engineering ambiguity — every fail-closed local-contract path is already implemented. The blocker is the absence of an intake lane: a deterministic process that takes a candidate package, clears it through legal/compliance, vendors it under the right path, and records the decision so future audits can replay it.

This document is the binding process. The associated decision-record template lives at docs/legal/templates/regulatory-asset-decision-record.md.

2. Roles and responsibilities

RoleActionCannot delegate
Engineering (sprint owner)Identifies the asset, drafts the decision record, computes the candidate SHA-256, proposes the local vendoring path. Must NOT vendor or merge until the gates below pass.Drafting the candidate record.
Schema-governance reviewer (maintainer-of-record)Reviews the manifest, version pin, source URLs, and that the package is the canonical regulator artefact (not a derivative). Confirms the proposed local path matches docs/contracts/schemas/eu/eu-schema-taxonomy-assets-v1.yaml namespacing.Manifest verification.
LegalPerforms BUSL-1.1 compatibility review of the package’s distribution license. Determines whether the package may be vendored, only referenced, or requires an alternate license arrangement.License determination.
Compliance (Vendor Integration when external vendor is involved)For vendor-qualified packages (eIDAS QTSP/QSCD packs, qualified TSA tokens), confirms the vendor agreement, jurisdiction, profile, and expiry.Vendor sourcing.
Project ManagerConfirms the originating sprint’s BLOCKED row points at the decision record id, updates the sprint’s Decisions & Risks, opens any follow-up validator-implementation sprint.Sprint state transitions.

Out of scope for this lane: non-regulatory third-party dependencies (NuGet/npm/etc.) follow the existing THIRD-PARTY-DEPENDENCIES.md process. Use this lane only for regulator- or vendor-qualified evidence packages where deterministic, offline, content-addressed local copies are the contract.

3. Intake gates

A candidate package moves through five gates in order. Each gate either passes (record gains a signature row) or rejects with a reason. There is no “conditional pass”; if a gate cannot decide, the record sits in the gate’s queue until decided.

Gate 1 — Engineering candidacy

Engineering produces:

Output: docs/legal/decisions/REG-<YYYYMMDD>-<short-id>.md from the template.

Gate 2 — Schema-governance review

Schema-governance reviewer verifies:

Output: Schema-governance review row signed in the decision record.

Legal performs:

Output: Legal review row signed in the decision record.

Gate 4 — Compliance / Vendor Integration (vendor-qualified packs only)

Skip for regulator-only packages. Required for:

Compliance verifies:

Output: Compliance / Vendor row signed in the decision record.

Gate 5 — Vendoring + sprint update

After all prior gates pass:

Output: Final commit attaches the decision record id to the change.

4. Decision record schema

Every intake produces one Markdown record under docs/legal/decisions/REG-<YYYYMMDD>-<short-id>.md. The template is the binding shape. Required fields:

Records are append-only. If an intake decision needs to be revoked (license re-categorization, vendor agreement lapse), a new record is opened with Supersedes: REG-<id> and the old record gains a final Superseded by row; the original signatures remain.

5. Ledger schema (the YAML inventory)

The single source of truth for “what is vendored where” is docs/contracts/schemas/eu/eu-schema-taxonomy-assets-v1.yaml. Adding an asset means adding an entry under assets: with this shape (existing oasis-csaf-2.0 entry is the reference example):

- id: <kebab-case-short-id>
  regime: <eIDAS | DORA-IR | DORA-RoI | CRA | Other>
  artifact: <one-line description>
  source:
    name: <regulator-canonical name>
    version: <version pin>
    sourceDate: <YYYY-MM-DD>
    urls: [<canonical urls>]
    transitiveUrls: [<transitive references>]
  local:
    status: present | BLOCKED-pending-approved-asset-intake
    path: docs/contracts/schemas/eu/<regime>/<short-version>/
    files:
      - name: <relative path>
        sha256: sha256:<lowercase hex>
        bytes: <integer>
  licenseStatus: <approved-* | reference-only-no-vendoring | rejected>
  notice: [<NOTICE.md, third-party-licenses/...>]
  decisionRecord: REG-<YYYYMMDD>-<short-id>

The decisionRecord field is added by this lane; it is the back-pointer from inventory → audit trail.

6. Currently-BLOCKED packages

Tracking from the open-sprint blocker analysis originally captured at docs/implplan/_blocker_analysis_2026-05-02.md (Cluster A). The analysis dump was retired after its referencing sprints closed; the post-resolution outcomes for each row are captured under §6.1 “Status update 2026-05-02” below. Engineering has already drafted the fail-closed local-contract paths; the intake decision is what remains.

Status update 2026-05-02 (counsel response received)

External counsel returned the Gate 3 review for all three open EBA / eIDAS records on 2026-05-02. The originating response is preserved at docs/legal/decisions/response.md. Each row in the table below now carries the post-2026-05-02 state alongside the historical “Notes” wording.

PackageSprintNotes
EBA DORA Incident-Reporting Framework 4.3 (DPM/XBRL)112 D1-112-1Schema-governance reviewer (maintainer-of-record) is the named owner; legal review remains. 2026-05-02: Gate 3 provisionally cleared with asset-scope re-verification gate; sprint stays BLOCKED on the engineering scope question.
EBA DORA RoI Reporting Framework 4.0 errata5 (XSD/taxonomy)121 D2-121-1, 122 D2-122-2, 123 D2-123-1One intake unblocks three sprints. 2026-05-02: Gate 3 cleared approved-with-notice; awaits Gate 2 + Gate 5.
eIDAS qualified provider pack (TSA tokens, OCSP/CRL, archive timestamps, signing/TSA cert chains, qualified TSL/LOTL snapshots)018 EIDAS-EVIDENCE-018-01Vendor selection + Gate 4 required. 2026-05-02: Gate 3 vendor-independent half cleared; final determination pending Gate 4; TLv6 + claim-control constraints binding regardless of vendor. Tracked in SPRINT_20260502_005_Cryptography_eidas_qtsp_vendor_intake.md.
RFC 3161 TSA fixture set018 EIDAS-EVIDENCE-018-02Subset of the eIDAS pack; can be vendored independently if vendor selection precedes the full pack. 2026-05-02: subordinate to the eIDAS pack Gate 4 outcome.

7. Engineering responsibilities BEFORE the lane

Engineering does NOT have to wait on this lane to ship the consuming code path. Every consumer must be implemented as fail-closed:

This is already the pattern across the BLOCKED sprints (see sprint 018 EIDAS-EVIDENCE-018-00, sprint 030 DOCTOR-AIRGAP-030-04). New consumers must follow the same pattern.

8. What this lane is NOT

9. Audit & replay

Every regulator-vendored asset must be reachable through:

  1. The YAML inventory entry (machine-readable).
  2. The REG-... decision record (human-readable; gates + signatures).
  3. The vendored files under docs/contracts/schemas/eu/<regime>/<version>/ (the artefacts themselves, with bytes-on-disk matching the recorded SHA-256).
  4. The NOTICE.md attribution and any third-party-licenses/<package> text.
  5. The sprint Execution Log entry that consumed the intake.

If any of these five is missing for a package that runtime treats as authoritative, the package is in violation of this lane and must be quarantined: the YAML status flips back to BLOCKED-pending-approved-asset-intake, the runtime reverts to fail-closed posture, and a new decision record opens.

10. Change log

DateChange
2026-05-02Lane authored.
2026-05-02§6 status update appended after counsel returned Gate 3 reviews for the three open REG records (RoI 4.0 errata5, Incident 4.3, eIDAS QTSP pack).