KB-6B6B

RS-TKT-0A · 06 RS5A/RS5B Pre-Codex Profile (draft)

11 min read Revision 1
tool-kiem-thulegolaws-newrs-tkt-0ars5ars5bpre-codex-profilenon-authorizing2026-06-21

RS-TKT-0A · 06 — RS5A/RS5B Pre-Codex Profile (draft)

Lane: RS-TKT-0A · Date: 2026-06-21 Gate: REGISTRATION_HOLD · REGISTRATION_CAN_PROCEED = NO · 0 runtime mutations (KB writes only) Authority: NON_AUTHORITY · may_gate=false · decision_effect=NONE · draft checker profile, design-only

This profile is a support checker, not an approver. It mechanically catches the defect classes Codex actually raised on the RS5A chain (NEED_PATCH2, NEED_PATCH3, REJECT_RS5A_PATCH3_QUORUM_PRECEDENCE_INSUFFICIENT, ACCEPT_RS5A_PATCH4) so a packet is cleaner before GPT/Codex. A clean profile result is engineering PASS only — never authority/Codex/registration PASS. Every checker emits the 04 shared output schema.

Caveat (MCB-1): RS5B has no external Codex review yet (only self-check BI01–BI10). RS5B-specific rows are marked self-reported and remain DRAFT until Codex reviews RS5B.


Group A — Package checker (TKT-RS-PKG / TKT-RS-PACKAGE)

checker_id rule expected evidence failure code severity
TKT-RS-PKG-001 required files exist reports/<stage>/ has index + contiguous 01..NN + codex-review-packet; the macro-<stage> rollup exists at reports/ list_documents count=N, next_offset=null RS_PKG_FILE_MISSING BLOCKER
TKT-RS-PKG-002 no empty/truncated target each file content_length>0 and truncated=false per-file length RS_PKG_EMPTY_OR_TRUNCATED BLOCKER
TKT-RS-PKG-003 rollup + index + decision + codex packet present the five roles all present and identifiable role→file map RS_PKG_ROLE_MISSING BLOCKER
TKT-RS-PKG-004 no overwrite of prior package prior-stage dirs still all revision=1; current "Does NOT overwrite …" enumeration present revisions table RS_PKG_PRIOR_OVERWRITTEN BLOCKER

Group B — Gate checker (TKT-RS-GATE)

checker_id rule expected evidence failure code severity
TKT-RS-GATE-001 REGISTRATION_HOLD present literal REGISTRATION_HOLD in each index/decision/codex-packet/rollup matched lines RS_GATE_HOLD_MISSING BLOCKER
TKT-RS-GATE-002 CAN_PROCEED = NO literal REGISTRATION_CAN_PROCEED = NO; flag any = YES/HOLD-clearing phrase matched line RS_GATE_CAN_PROCEED_OPENED BLOCKER
TKT-RS-GATE-003 no Owner/scope/APR/register_dot creation no claim of creating Owner/scope/APR/register_dot; 0 mutations/0 runtime mutations present matched lines RS_GATE_OWNER_OBJECT_CREATED BLOCKER
TKT-RS-GATE-004 no RS-VALIDATOR / implementation / registration opened no claim of opening a validator, implementation, or registration matched lines RS_GATE_RUNTIME_OPENED BLOCKER

Group C — Scope / lifecycle checker (TKT-RS-LIFE)

Grounds: NEED_RS5A_PATCH3 (SCOPE_TAXONOMY_STILL_AMBIGUOUS) and the PATCH3 3-axis fix.

checker_id rule expected evidence failure code severity
TKT-RS-LIFE-001 replay/audit pre-admission replay/audit must already exist and pass before real register_dot admission (axis A) quoted "before … admission" RS_LIFE_PREADMISSION_MISSING HIGH
TKT-RS-LIFE-002 replay/audit persist/operate after admission prerequisites must remain available and keep enforcing after admission (axis B) quoted persistence clause RS_LIFE_PERSISTENCE_MISSING HIGH
TKT-RS-LIFE-003 activation only post-registration business transition activation is the only business transition after inert draft registration; never inherited quoted activation clause + MUST_NOT_IMPLICIT_INHERIT RS_LIFE_ACTIVATION_INHERITED HIGH
TKT-RS-LIFE-004 no deferrable replay/audit bucket forbidden phrases absent ("3 deferrable", "replay/audit … after registration", "may act/exist AFTER runtime registration") blocklist grep clean RS_LIFE_REPLAY_AUDIT_DEFERRED BLOCKER

Group D — Quorum checker (TKT-RS-QUORUM)

Grounds: the real REJECT_RS5A_PATCH3_QUORUM_PRECEDENCE_INSUFFICIENT and the PATCH4 total-order fix.

checker_id rule expected evidence failure code severity
TKT-RS-QUORUM-001 total Q-order exists full chain present: Q00 < Q10 < Q11 < Q20 < Q21 < Q22 < Q23 < Q30 < Q31 < Q40 < Q41 < Q50 quoted chain RS_QUORUM_ORDER_INCOMPLETE BLOCKER
TKT-RS-QUORUM-002 Q-order authoritative over bands "Q-order AUTHORITATIVE over P0–P5 band labels" + "lowest matching Q-code at the evaluation unit wins" present quoted rule RS_QUORUM_BANDS_AUTHORITATIVE BLOCKER
TKT-RS-QUORUM-003 evaluation unit defined three units defined: context (Q00) / single vote claim (Q10–Q31) / APR over valid claims (Q40–Q50) quoted definitions RS_QUORUM_EVAL_UNIT_MISSING BLOCKER
TKT-RS-QUORUM-004 compound P1 input → one code compound free-text-pres + self-declared-council input maps to exactly one code (Q10) fixture CQ01 RS_QUORUM_COMPOUND_P1_AMBIGUOUS HIGH
TKT-RS-QUORUM-005 compound P3 input → one code compound pres + council-unresolved maps to exactly one code (Q30) fixture CQ03 RS_QUORUM_COMPOUND_P3_AMBIGUOUS HIGH
TKT-RS-QUORUM-006 per-vote before APR count per-vote codes (Q10–Q31) evaluated before APR-level (Q40–Q50); numerically ordered so quoted ordering RS_QUORUM_PERVOTE_ORDER HIGH

Also (delegation): assert half-open [effective_from, effective_to)==from valid, ==to/after → DELEGATION_EXPIRED (Q23), before → DELEGATION_NOT_YET_EFFECTIVE (Q22), revocation overrides (Q20). Failure → RS_QUORUM_DELEGATION_INTERVAL_BAD.


Group E — Replay / idempotency checker (TKT-RS-REPLAY)

Grounds: the G02a/b/c overlap Codex flagged; PATCH4 domain fix.

checker_id rule expected evidence failure code severity
TKT-RS-REPLAY-001 G02a includes same auth envelope/digest G02a IDEMPOTENT_PRIOR_DECISION_RETRIEVAL requires same effect and same authorization envelope/digest and prior durable decision quoted G02a def RS_REPLAY_G02A_ENVELOPE_MISSING BLOCKER
TKT-RS-REPLAY-002 G02b different effect G02b NONCE_REUSE_DIFFERENT_EFFECT for same-nonce + different effect quoted G02b RS_REPLAY_G02B_BAD HIGH
TKT-RS-REPLAY-003 G02c same effect + different envelope G02c NONCE_REUSE_AUTHORIZATION_MISMATCH for same effect + different envelope quoted G02c RS_REPLAY_G02C_BAD HIGH
TKT-RS-REPLAY-004 G08 fixture distinct G08 is a distinct client-observation fixture (known-response retry vs lost/unknown-response recovery), same canonical outcome quoted G08 RS_REPLAY_G08_NOT_DISTINCT MEDIUM
TKT-RS-REPLAY-005 G02 partition domain narrowed if no prior durable decision partition claimed only within domain D (prior durable decision exists); in-flight same nonce·same effect·same envelope·NO prior durable decision named NO_PRIOR_DURABLE_DECISION_STATE_UNSPECIFIED = design-only label, not a code, not an executable scenario quoted domain + label RS_REPLAY_DOMAIN_UNRESTRICTED / RS_REPLAY_INFLIGHT_AS_CODE BLOCKER

Group F — Count / oracle checker (TKT-RS-COUNT)

Grounds: the "G02a/b/c enumerated separately while claiming 84" and "eight fixtures vs nine" drifts Codex caught.

checker_id rule expected evidence failure code severity
TKT-RS-COUNT-001 84 parent IDs / 86 executable scenarios 84 − 1 + 3 = 86 stated consistently across index/decision/rollup; suite DEFINED_NOT_EXECUTED quoted arithmetic + label RS_COUNT_ARITH_MISMATCH HIGH
TKT-RS-COUNT-002 aliases documentation-only any alias code marked documentation_alias_only, never an accepted oracle aliases table RS_COUNT_ALIAS_AS_ORACLE HIGH
TKT-RS-COUNT-003 one canonical expected outcome per executable scenario each scenario lists exactly one accepted code (no parenthetical alternatives) per-scenario code RS_COUNT_ORACLE_NONCANONICAL HIGH
TKT-RS-COUNT-004 compound fixtures do not silently change executable count fixture range matches actual fixtures present (e.g. CQ01–CQ09 = nine; flag "eight"); compound fixtures labelled predicate-resolution, not new scenarios fixture count RS_COUNT_FIXTURE_DRIFT HIGH

Also: filename↔title numeric drift (e.g. 09 "80-cases" vs body "84") → RS_COUNT_FILENAME_TITLE_DRIFT (MEDIUM).


Group G — Codex packet checker (TKT-RS-CODEX-PACKET)

checker_id rule expected evidence failure code severity
TKT-RS-CODEX-001 cross-file agreement verdict token, gate, count, "single next step" identical across index ↔ decision ↔ codex-packet ↔ rollup agreement table RS_CODEX_CROSSFILE_DISAGREE HIGH
TKT-RS-CODEX-002 links resolve every [[wikilink]] / path reference resolves to an existing doc resolution list RS_CODEX_DANGLING_LINK MEDIUM
TKT-RS-CODEX-003 verdict vocabulary verdict token ∈ {RS5x_READY_FOR_<reviewer>_REVIEW, ACCEPT_*, REJECT_*, NEED_*_PATCH}; STATUS ∈ {HOLD, ACCEPTED_WITH_REGISTRATION_HOLD} matched token RS_CODEX_VERDICT_VOCAB MEDIUM
TKT-RS-CODEX-004 no PASS upgrade / CLOSED cites evidence each "CLOSED" cites superseding wording + fixture; "0 mutations" treated as attestation; no engineering PASS upgraded to authority/runtime/registration PASS per-claim citation RS_CODEX_PASS_UPGRADED HIGH

Profile composition & verdict

Run order: A → B → {C, D, E, F} → G, layered on a TKT-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. Its value is purely acceleration: catch the bookkeeping defects so reviewers spend attention on judgment.

Out-of-scope

Whether Codex/Owner will accept; the runtime correctness of quorum/replay/lifecycle; semantic truth of any clause; any authority/registration effect.

Back to Knowledge Hub knowledge/dev/laws-new/tool-kiem-thu-lego/06-rs5a-rs5b-pre-codex-profile-draft-2026-06-21.md