Skip to content

[rebuild of #19474] spec(lint): wire the inert runtime-create rules for action / hook / report / skill / email_template / mapping — six types, one edit (ruling #203/4 group A+C) #19542

Description

@os-steve

⭐ REBUILD of card #19474, whose original is unreachable. Filed by the domain:spec seat 4 (session_01AmH9bKvGoLjiY86Q4Z3og2, seat post #18917) on 2026-09-21, under the same instruction that rebuilt #19384 as #19541: the original was filed by the banned os-sam account.

⛔ The original is not deleted and ⛔ nothing here overrules it. Measured at this act, exit codes captured before any pipe:

path reading
GET …/issues/19474 404 Not Found
PATCH …/issues/19474 404 — it cannot be edited, labelled or closed
…/issues/19474/comments · /timeline 200 — the claim, the corrections and all 16 timeline events still resolve
control, a card this seat filed …/issues/19491 200

⇒ Why a rebuild was not optional here

This card has a live delivery: PR #19517, draft, head 72de2b946301aa59f624da807ae7fc383e82b81e, 6 files, +1018 / −11. The unreadable card blocks it mechanically, ⛔ not cosmetically:

PM_SWEEP_REPO=objectstack-ai/objectstack node scripts/pm/check-clause2-carriers.mjs --pair 19517   → exit 2
✗ UNJUDGED: card #19474's labels could not be read.

and

node scripts/pm/label-write.mjs --issue 19474 --add domain:spec --dry-run   → exit 5
① read — COULD NOT READ: GET …/issues/19474 -> HTTP 404

⇒ the clause-② enqueue gate can never be satisfied for #19517 while its card cannot be read, and this seat cannot hang or strip needs:contract-review on the card side of the ruled dual carrier. The PR could never land. That is the whole reason this card exists.

The delivery's state, carried over so nothing is re-derived

what where it still reads
the round-1 at-tier contract review, VERDICT: FAIL on head 33db31d234 PR comment 5756052587
this seat's handback adopting it comment 5756068299 on the old card
the seat correction withdrawing a wrongly-written review exemption comment 5755777834 on the old card
the blocker record when the review tier went unavailable comment 5756460515 on the old card
the original claim comment 5755122378 on the old card

⚠️ Round 2 has NOT been judged. Two dispatches of the delta review both died on their first model request with HTTP 429 「You've reached your Fable limit」 (claude-fable-5-1 = CONTRACT_REVIEW_TIER), and the maintainer has since stated 「fable 没有了」. The review is ABSENT — ⛔ not FAIL, ⛔ not PASS — and PR #19517 stays draft, out of the queue, until the tier question is settled.

⚠️ The dev took the review's route (b) and held skill out, so group A lands as three types, not four. Whether that is inside the ruling's logic or a scope reduction its author should decide is the open question the absent round-2 review was dispatched to answer. ⛔ It is not settled, and ⛔ this seat has not settled it.

The hand-off card the hold-out produced is #19527.


The original card, reproduced verbatim below, ⛔ not rewritten

Filed by the domain:spec execution seat 3 (os-sam, session_01HnRAeVTLJevtQ5iCPX6JSm) at 2026-09-21T02:02Z, as the split ruling 5754204885 on #19275 explicitly instructs this seat to perform (batch #203 item 4, letter B, maintainer 「203 同意」). ⛔ Not a new finding, ⛔ not a re-grading: priority:p1 and domain:spec are inherited from #19275, whose split this is.

The policy, ruled once for all ten types: 「declared ⇒ honoured; not honourable ⇒ retired」.

Read before writing: ruling 5754204885 · measurement round 5750725047 (the specification) · triage's grouping 5750895260. Sibling ruling for app/position: #19370 (B, same policy).

Scope — six types, ONE card

Group A — action · hook · report · skill. The ruling: 「wire the existing candidate rules (runtimeTypes rows / TYPE_TO_STACK_KEY rows already present, inert only because the gate filters on runtimeTypes first)」. ⭐ One execution card for the four, ⛔ not four — the ruling says so in those words.

Group C — email_template · mapping. 「wire the ledger-driven rule the same way」, and the ruling folds group C into this card.

⛔ Fences, quoted from the ruling rather than paraphrased

  • ⛔ No ledger-population work is dispatched for group C: 「the empty warn maps stay empty until a real property needs a row — ⛔ no ledger-population work is dispatched (zero pull), the wiring is the whole deliverable」.
  • ⛔ Do not widen scope to the other four of the ten. doc / external_catalog retire under a separate card; translation / tool are read first under two more. Each has its own carrier.
  • ⛔ Do not re-litigate letter B. The policy is ruled.

Acceptance

Per type: a real runtime write that the wired rule must refuse is refused, plus a lit control that a good write passes. ⛔ A surfaces / runtimeTypes field that merely changed is not the deliverable.

⚠️ The ruling's own NOT MEASURED, carried in unchanged

Still NOT MEASURED on any of the ten: whether a wired rule fires on a real write; the dispatch order names it as the report's first reading.

⇒ acceptance is behavioural. ⛔ A diff that changes a declaration without a test proving a real write is judged does not close this card.

查重词

allowRuntimeCreate · runtimeTypes · TYPE_TO_STACK_KEY · inert runtime-create declaration · declared but never honoured


Generated by Claude Code

Activity

  1. self-assigned this
    on Sep 21, 2026
  2. os-steve commented on Sep 21, 2026

    @os-steve
    CollaboratorAuthor

    Claim: PM loop round 15
    Session: session_01AmH9bKvGoLjiY86Q4Z3og2
    Branch: claude/issue-19474-wire-inert-runtime-create-rules
    Worktree: objectstack-issue-19474
    Domain: domain:spec
    Seat: domain:spec#4
    File surface: packages/lint/src/ (stop on breach; explain in the report)
    Container & model: M, mode:subagent, model: opus — quoting the --tier output taken for this work: 「Model tier — no path-derived mandate: the surface hits none of the 3 declared glob(s) … floor sonnet · default opus · ceiling fable」
    Clause-②: no
    Thread-read: none
    Serial constraints cleared: PR #19486 (claude/issue-19370-role-word-crosses-whole) merged as a227afa415f596269ed36aae0a0631c84270ccc9, and its conflict with this branch is resolved in merge commit 33db31d234. No other open PR touches packages/lint/src/authoring-rules.ts or runtime-gate.ts.


    ⭐ This is the SAME claim, on a rebuilt card — ⛔ not a second claim and ⛔ not a re-dispatch. The original claim is comment 5755122378 on card #19474, which is unreachable (GET and PATCH both 404) because the os-sam account that filed that card was banned. This card is its verbatim rebuild. ⛔ The branch, the worktree and the work are unchanged; nothing was re-dispatched and no dev was re-run.

    ⚠️ The branch name keeps issue-19474, ⛔ deliberately: it is the name the work was pushed under and the one PR #19517's head carries. ⛔ Renaming it is not available to this session anyway — POST …/branches/{b}/rename answers HTTP 403 through this proxy, measured earlier today on another branch.

    State carried over, ⛔ not re-derived, at 2026-09-21T08:15Z:

    what reading
    PR #19517 draft, head 72de2b946301aa59f624da807ae7fc383e82b81e, 6 files, +1018 / −11, mergeable_state: blocked
    round-1 at-tier review FAIL on head 33db31d234, record 5756052587 on the PR
    round-2 ⛔ ABSENT — two dispatches both died on their first request, HTTP 429 「You've reached your Fable limit」; the maintainer has since said 「fable 没有了」
    needs:contract-review hung on both carriers again — this card and PR #19517
    the scope question the absent review owes whether holding skill out (group A landing as three types, not four) is inside ruling 5754204885's own logic or a scope reduction its author should decide

    ⛔ This seat has not settled that question and will not: a seat cannot rule on whether it delivered the ruled work.


    Generated by Claude Code

  3. added 4 commits that reference this issue on Sep 28, 2026
    1f69917
    f77b806
    24d1a2d
    fd920ca
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions