KB-6D56

RS-TKT-1 (Phase 1) · 08 TKT Base RS Profile Provenance Contract

6 min read Revision 1
tool-kiem-thulegolaws-newrs-tkt-1phase1-designrs-profileprovenancers5ars5bnon-authorizing2026-06-22

RS-TKT-1 (Phase 1) · 08 — TKT Base RS Profile Provenance Contract

Lane: RS-TKT-1 — Phase 1 TKT Base Design Package (design-only) Date: 2026-06-22 Gate: REGISTRATION_HOLD · REGISTRATION_CAN_PROCEED = NO · 0 runtime mutations (KB design-doc writes only) Authority: NON_AUTHORITY · may_gate=false · decision_effect=NONE · design-only

Inherits: RS-TKT-0A 06 (RS pre-Codex profile) + PATCH1 06 (P6 split) + PATCH2 02 (P6 schema repair, Codex-CLOSED). The RS profile is a support checker layered on a Base result, not an approver. A clean profile result is engineering PASS only.


1. Two orthogonal axes (PATCH2 §3 — binding)

profile_id   = provenance track    — how the rule was sourced / validated  (TWO values only)
scope_class  = applicability class  — which packets the rule legitimately governs  (THREE values)
profile_id  ∈ { CODEX_CAUGHT_RS5A, SELF_REPORTED_RS5B_DRAFT }
scope_class ∈ { STRUCTURAL_COMMON, RS5A_SPECIFIC, RS5B_SPECIFIC }

profile_id = structural is deleted and never valid (the PATCH1 enum/table contradiction). STRUCTURAL_COMMON, RS5A_SPECIFIC, RS5B_SPECIFIC are scope_class values, never profile_id values.

2. Per-rule provenance schema (PATCH2 §2)

{
  "rule_id": "...",
  "profile_id": "CODEX_CAUGHT_RS5A | SELF_REPORTED_RS5B_DRAFT",
  "scope_class": "STRUCTURAL_COMMON | RS5A_SPECIFIC | RS5B_SPECIFIC",
  "provenance": "codex_caught | self_reported",
  "source_review": "<path to the Codex/User acceptance, or the RS5B self-check doc>",
  "validation_status": "EXTERNALLY_CODEX_REVIEWED | SELF_REPORTED_DRAFT | PROMOTED_AFTER_REVIEW",
  "applies_to": ["..."],
  "does_not_apply_to": ["..."]
}

3. Group assignment (PATCH2 §4 — corrected; no profile_id=structural)

Group / rule profile_id scope_class validation_status applies_to does_not_apply_to
A Package (PKG-001..004) CODEX_CAUGHT_RS5A STRUCTURAL_COMMON EXTERNALLY_CODEX_REVIEWED any RS packet
B Gate (GATE-001..004) CODEX_CAUGHT_RS5A STRUCTURAL_COMMON EXTERNALLY_CODEX_REVIEWED any RS packet
C Lifecycle (LIFE-001..004) CODEX_CAUGHT_RS5A RS5A_SPECIFIC EXTERNALLY_CODEX_REVIEWED RS5A lifecycle packets non-RS5A unless promoted
D Quorum (QUORUM-001..006) CODEX_CAUGHT_RS5A RS5A_SPECIFIC EXTERNALLY_CODEX_REVIEWED RS5A quorum generic RS-series
E Replay (REPLAY-001..005) CODEX_CAUGHT_RS5A RS5A_SPECIFIC EXTERNALLY_CODEX_REVIEWED RS5A replay generic RS-series
F Count (COUNT-001..004) CODEX_CAUGHT_RS5A RS5A_SPECIFIC EXTERNALLY_CODEX_REVIEWED RS5A suites generic RS-series
G Codex-packet (CODEX-001..004) CODEX_CAUGHT_RS5A STRUCTURAL_COMMON EXTERNALLY_CODEX_REVIEWED any RS packet
RS5B BI01–BI10 SELF_REPORTED_RS5B_DRAFT RS5B_SPECIFIC SELF_REPORTED_DRAFT RS5B all non-RS5B; not a gate

Groups A/B/G keep broad applicability via scope_class = STRUCTURAL_COMMON; their provenance track is the RS5A Codex chain that hardened them.

4. Applicability constraints (PATCH2 §5)

84 parent IDs / 86 executable scenarios  = scope_class RS5A_SPECIFIC  (unless explicitly promoted later)
Q-code order Q00 < … < Q50               = scope_class RS5A_SPECIFIC  (unless explicitly promoted later)
G02a/G02b/G02c effect→envelope tree       = scope_class RS5A_SPECIFIC  (unless explicitly promoted later)
RS5B BI01–BI10                            = profile_id SELF_REPORTED_RS5B_DRAFT until Codex reviews RS5B

Applying an RS5A-specific rule to a non-RS5A packet is a configuration error, not a finding. RS5B rows must never be described as externally validated (MCB-1 carry-forward).

5. No automatic promotion (PATCH2 §6)

A rule promotes from RS-specific→common, or self-reported→reviewed, ONLY by a later explicit review:
  validation_status = PROMOTED_AFTER_REVIEW
  source_review     = <path to the Codex/User acceptance that authorized the promotion>
Until then: RS5A_SPECIFIC stays RS5A_SPECIFIC; SELF_REPORTED_RS5B_DRAFT stays SELF_REPORTED_DRAFT.

There is no automatic promotion. A design that auto-promotes RS5B BI01–BI10 to generic/common, or labels them externally validated, is BAD-RS-001 and must be REJECTED (17).

6. RS profile group purposes (design carried from 06, unchanged in substance)

A Package   : file-set complete, non-empty, non-truncated, additive (no overwrite of a prior package).
B Gate      : REGISTRATION_HOLD present + CAN_PROCEED = NO + 0 mutations + no Owner/scope/APR/register_dot opened.
C Lifecycle : replay/audit pre-admission + persist after admission + activation only post-registration (no implicit inherit).
D Quorum    : total Q-order Q00<…<Q50; lowest matching Q-code wins; eval-unit defined; half-open delegation interval.
E Replay    : G02a (same effect+same envelope+prior durable decision) / G02b / G02c disjoint; domain-restricted; in-flight = design-only label, not a code.
F Count     : 84 − 1 + 3 = 86; one canonical code per scenario; fixture count consistent; filename↔title numeric consistency.
G Codex-pkt : verdict/gate/count/single-next-step identical across index↔decision↔codex-packet↔rollup; links resolve; no PASS upgraded.

7. Status effect

CODEX_CAUGHT_RS5A rules  : engineering-grounded only — still NON_AUTHORITY, may_gate=false, never a registration gate.
SELF_REPORTED_RS5B_DRAFT : DRAFT / NOT_EXTERNALLY_CODEX_REVIEWED — may guide surveying and Phase-1 design,
                           must NOT be called validated, must NOT be used as a gate.

Run order: A → B → {C, D, E, F} → G, layered on a Base (L0–L3) result. The braced groups are independent. Aggregate = worst per-group status; any BLOCKER FAIL ⇒ "not Codex-ready" (advisory). The profile never sets CAN_PROCEED, clears REGISTRATION_HOLD, or substitutes for Codex/Owner.

Back to Knowledge Hub knowledge/dev/laws-new/tool-kiem-thu-lego/phase1-design/08-tkt-base-rs-profile-provenance-contract-2026-06-22.md