Skip to content

[finding] AGENTS.md §7 still names TWO classes of PR that never land on green alone — the maintainer's 5,000-changed-lines class (#19012) is the third, and the rules layer contradicts the landing rule until it says so #19037

Description

@os-elon-musk

Filed by the domain:skills execution seat (session_01BTeBejoPUvRHN8WdAJC6oF, seat post #7623) at 2026-09-18T12:52Z, from the #19012 dev's out_of_scope_findings on PR #19033 (report 5730187995), the class decided by the seat as the dev asked. Labels domain:skills · pm:queue set by the seat (its own lane: scripts/pm/** / governed text); priority left to triage.

Dedupe words: AGENTS.md green alone third class · 5000 lines human merge AGENTS · two classes of PR never enter on green alone · size class rules layer. Dedupe reading: the shift's corpus and every card since — none names §7's two-class sentence.

Class (b) — the rules layer names two classes where the maintainer ruled three

AGENTS.md §7, verbatim shape: 「Two classes of PR never enter this path on green alone」 — the governed surface and Version Packages. The maintainer's 2026-09-18 ruling (verbatim 「还有应该完善skills,修改代码量超过某个行数(比如5000)就应该人工审核。」, recorded on #16045 and carried by #19012 / PR #19033) adds a third: a PR over 5,000 changed lines (additions + deletions, generated files included). SKILL.md :608 and references/landing-operations.md :26 now say so; AGENTS.md still says two, so the rules layer contradicts the landing rule until one line is added there. Governed text (AGENTS.md, 1099 / 1099 — fold or pay).

What is asked (⛔ not asserted — triage grades)

One line in §7 naming the third class with the number and the 「generated files included」 clause, in the section's register; net 0 at the ceiling. Refs: #19012 / PR #19033; SKILL.md :608.


Generated by Claude Code

Activity

  1. os-elon-musk commented on Sep 18, 2026

    @os-elon-musk
    CollaboratorAuthor

    Lane first-touch grading (skills seat, session_01BTeBejoPUvRHN8WdAJC6oF) · 2026-09-18T13:07Z — the skills lane grades its own findings (lanes/skills.md).


    Generated by Claude Code

  2. self-assigned this
    on Sep 18, 2026
  3. os-elon-musk commented on Sep 18, 2026

    @os-elon-musk
    CollaboratorAuthor

    Claim: PM loop round 1 (wave 8c — patrol 13:04Z, slot freed by PR #19038's collection)
    Session: session_01BTeBejoPUvRHN8WdAJC6oF
    Branch: claude/issue-19037-agents-third-class-human-merge
    Worktree: objectstack-issue-19037
    Domain: domain:skills
    Seat: domain:skills#1
    File surface: AGENTS.md only — §7's 「Two classes of PR never enter this path on green alone」 sentence (:495–:500 on origin/main dbd474431) gains the maintainer's third class (a PR over 5,000 changed lines, additions + deletions, generated files included); the file is at its ceiling 1099 / 1099 ⇒ fold or pay inside the file, net 0.
    Container & model: S, mode:subagent, model: claude-fable-5-1 (CONTRACT_REVIEW_TIER — AGENTS.md is on the mandatory list); governed rule layer ⇒ draft at the four-piece terminal
    Clause-②: no
    Thread-read: card body + the seat's grading comment 5730428375 (priority:p2); the ruling it carries is the maintainer's verbatim 「还有应该完善skills,修改代码量超过某个行数(比如5000)就应该人工审核。」 recorded on #16045 (5729462393) and implemented by #19012 / PR #19033
    Serial constraints cleared: no open PR touches AGENTS.md (file lists of all 32 open PRs read at 2026-09-18T13:17Z); stem scan of origin heads for 19037 / third-class: none. Not serial behind PR #19033: the sentence states the ruling, not a line number of that PR. Batch: 3 in flight (#18926, #19025, this). Lock free.
    Ruling-ref: maintainer, chat 2026-09-18, verbatim above; recorded on #16045 comment 5729462393


    Generated by Claude Code

  4. os-elon-musk commented on Sep 18, 2026

    @os-elon-musk
    CollaboratorAuthor

    os-dev-report

    {
      "issue": 19037,
      "status": "done",
      "branch": "claude/issue-19037-agents-third-class-human-merge",
      "pr": "https://github.com/objectstack-ai/objectstack/pull/19042",
      "session": "session_01BTeBejoPUvRHN8WdAJC6oF",
      "premise_still_valid": true,
      "summary": "AGENTS.md Multi-agent discipline §7 (:495–:500 on origin/main dbd474431) said 「Two classes of PR never enter this path on green alone」; it now names three, the third being the maintainer's size class: 「(c) a PR whose **changed lines exceed 5,000** (`additions + deletions`, generated files included) — it lands only by a human merge, which is its review record」, and the closing instruction reads 「its author and its size」 beside the file list. The paragraph was re-flowed at the file's own 120-byte per-line budget so the clause lands at net 0 lines (1099 / 1099). Premise verified on origin/main dbd474431: the sentence read two classes at :495–:500, the ceiling row is ['AGENTS.md', 1099], no external pin holds the text. Assignee was PM-set (os-elon-musk) and untouched; the newest Claim (5730566948) names this branch. Draft PR #19042 at the four-piece terminal (governed rules layer): draft, skip-changeset, 维护者速读(草稿) section, session-URL footer stored verbatim.",
      "files_changed": [
        "AGENTS.md"
      ],
      "line_budget": {
        "file_lines_before": 1099,
        "file_lines_after": 1099,
        "ceiling": 1099,
        "paragraph_bytes": "466 → 640 (6 lines → 6 lines)",
        "changed_lines_bytes": {
          "495": "90 → 113",
          "496": "88 → 117",
          "497": "88 → 109",
          "498": "81 → 109",
          "499": "86 → 111",
          "500": "27 → 75"
        },
        "wrap_width": "re-flowed to ≤ 117 bytes per line against the file's 120-byte per-line budget (Prime Directives block runs to 120 bytes at :468; §8 beside the paragraph to 116 at :535); the original was wrapped at ~88 with a 27-byte tail. Every bold/code span stays whole on its line, as in the original.",
        "ratchet": "✓ check-skill-line-ratchet: AGENTS.md is 1099 lines (ceiling 1099; headroom 0). ✓ widest table row is 768 bytes (pin 768; headroom 0)."
      },
      "tests": "Head 845470659 (final commit; every reading below is from that tree). Derivation: node scripts/pm/dispatch-gates.mjs --commands --repo objectstack-ai/objectstack → 14 families from 1 path vs merge base dbd474431 (committed 1, working tree 0, untracked 0). Ran all 14 plus 2 the dispatch named, each redirect-then-$?: node scripts/check-closing-keyword-parity.mjs :: exit 0 · node scripts/check-closing-keyword-parity.mjs --self-test :: exit 0 · node scripts/check-comment-mask-corpus.mjs :: exit 0 · pnpm check:agent-test-spelling :: exit 0 · pnpm check:docs-audit-scope :: exit 0 · pnpm check:driver-memory-census :: exit 0 · pnpm check:nul-bytes :: exit 0 · pnpm check:pm-governed-merges :: exit 0 · pnpm check:pm-governed-prose :: exit 0 · pnpm check:pm-skill-id-lint :: exit 0 · pnpm check:pm-skill-ratchet :: exit 0 · pnpm check:refd-timer-probe :: exit 0 · pnpm check:required-contexts :: exit 0 · pnpm check:watch-hint-literal :: exit 0 · pnpm check:skill-frame-sync :: exit 0 · pnpm check:doc-authoring :: exit 0. Reconciliation (--ran): 「✓ dispatch-gates --ran: 14 derived famil(ies) accounted for — 14 run, 0 NOT-MEASURED (a DERIVED zero — all 14 recorded an exit code and none of them is 3)」; the 2 extras listed as outside the derivation, not an error. Id-lint: 0 citations in AGENTS.md (pattern /#[0-9]{3,}/ over the file). Control-byte grep of AGENTS.md: exit 1 (no match). check:pm-dispatch-gates: ran detached (PID 9249, foreground tail --pid waits 13:31–13:40Z and 13:40–13:41Z), log 1867 lines, no ✗, verdict lines 「✓ check:pm-dispatch-gates --self-test: the exit contract holds in all three directions.」 and 「✓ dispatch-gates self-test: 1849 cases pass.」 then 「the battery took 786.7s on this box」 — its process exit code was NOT captured (detached; verdict line is the reading). No build or test suite is owed (no package touched; no ① closure, no ②); nothing took the verify lock. No ablation applies (prose-only change).",
      "gates": {
        "derived_14": "all exit 0 (list in tests)",
        "pm_named_extra": "check:skill-frame-sync exit 0; check:doc-authoring exit 0; check:pm-dispatch-gates verdict green (exit code not captured, detached)",
        "check_doc_formula_expressions": "NOT RUN — not owed: its ROOTS are ['.claude', 'docs', 'skills', 'content'] (packages/lint/scripts/check-doc-formula-expressions.mjs :179), so AGENTS.md is outside its corpus; also outside the derivation; CI runs it anyway",
        "check_governed_queue_guard_pair": "node scripts/pm/check-governed-queue-guard.mjs --pair 19042 :: exit 1 = PREREQUISITE NOT MET (it reads GITHUB_EVENT_PATH only, absent locally) — NOT MEASURED, not a red",
        "clause2_pair": "node scripts/pm/check-clause2-carriers.mjs --pair 19042 :: exit 0 — claim pool 1 (5730566948), Clause-②: no declared on the card claim and in the PR body",
        "needs_contract_review_label": "absent on PR #19042 (seat's to hang; not touched)",
        "labels_read_back": "final read 2026-09-18T13:44:16.711Z: documentation, size/s, skip-changeset (label-write.mjs ④ MATCHES; two independent GETs agree)",
        "ci": "in_progress — Type Check · workspace, Lint & Repo Gates still running at post time; latest Check Changeset = skipped (label honoured)"
      },
      "reader_test": "A seat about to arm a 6,000-line PR reads §7: 「Three classes of PR never enter this path on green alone … (c) a PR whose changed lines exceed 5,000 (additions + deletions, generated files included) — it lands only by a human merge」 and stops; on origin/main the same seat read two classes, found a 6,000-line diff in neither, and armed.",
      "mechanism_assumptions": {
        "1_cite_by_card": "FALSIFIED — AGENTS.md's header rule (no ruling date, quotation or issue-number citation; provenance lives in the landing PR) is enforced by check:pm-skill-id-lint with ID_PATTERN /#[0-9]{3,}/ over AGENTS.md, so #16045 / #19012 in the sentence would go red. The sentence is self-contained (number + generated-files clause + human merge); the ruling, its card and its comment id are cited in the PR body. Prime Directive #14 / #15 stay the anchors of (a) / (b); no directive was added.",
        "2_reflow_at_net_0": "CONFIRMED — measured above (line_budget); 6 lines before and after.",
        "3_other_mentions": "grep -n -i -E 'green alone|two classes|Version Packages' on dbd474431: :291 :299 :307 :309 = Prime Directive #15's own text — LEFT (class (b)'s anchor, not an enumeration); :495 :498 = the §7 sentence — CHANGED; no other hit. Two neighbours name class (a) alone by design and were LEFT: Skills section 「Both roots are governed surfaces — human-merge only, or Prime Directive #14's pinned-approval path」 and Post-Task Checklist step 2's 「⛔ Except a diff touching a governed surface」 (defers to §7 by reference) — the latter noted below."
      },
      "deviations": [
        "Dispatch text 「Cite the ruling (#16045 / #19012)」 vs AGENTS.md header + check:pm-skill-id-lint: the file's binding rule won (os-dev.md: 派发词与本文件冲突时以本文件为准; 教训写成自含规则,不引卡号). Citations live in the PR body.",
        "Commit trailer: the harness reminder asked for a Co-Authored-By line carrying a model name; AGENTS.md's pre-push hook refuses a model identifier in the trailer pair, so the commit carries the model-free pair (Co-authored-by: Claude / Claude-Session: URL). The push printed ✓ check:commit-card-trailers.",
        "PR footer: AGENTS.md's session-URL form (blank line, ---, one footer line) was sent instead of the reminder's 🤖 form; read-back: byte-identical body (8141 sent / 8140 stored — trailing newline only), footer stored once, no platform-appended second footer.",
        "No auto-mode classifier denial occurred on any write."
      ],
      "mcp_calls": "0 — no MCP GitHub tool called (reads and writes both via curl through the REST proxy; label via scripts/pm/label-write.mjs)",
      "api_writes": "5 — git push refs/heads/claude/issue-19037-agents-third-class-human-merge ×2 (empty-branch probe at dbd474431, then 845470659); POST /repos/objectstack-ai/objectstack/pulls ×1 (→ #19042, HTTP 201, draft); POST /repos/objectstack-ai/objectstack/issues/19042/labels ×1 (skip-changeset, HTTP 200, via label-write.mjs); POST /repos/objectstack-ai/objectstack/issues/19037/comments ×1 (this os-dev-report). PR body written once, never PATCHed.",
      "open_questions": [],
      "out_of_scope_findings": [
        "noted, not filed: Post-Task Checklist step 2's 「⛔ Except a diff touching a governed surface」 names only class (a); the size class reaches a dev's own PR too. It defers to §7 by reference and the header's stated-once principle argues against restating; a one-line re-flow fold if wanted. 承接者: skills seat.",
        "noted, not filed: the size class has no Prime Directive of its own (a ruling, not a directive); a numbered home would be a new directive beside #14 / #15 — a separate decision, not taken here. 承接者: none."
      ],
      "cleanup": "worktree /home/user/objectstack-issue-19037: git status clean, 0 unpushed; node_modules removed; git worktree remove exit 0 (no --force); path gone, worktree list count 0. Detached PID 9249 had exited before removal. No dev server, no monitor left.",
      "ci_observed": "read 2026-09-18T13:44:16.711Z on 845470659: 25 check names (latest run per name) — {\"completed/skipped\":11,\"completed/success\":12,\"in_progress/-\":2}; in progress: Type Check · workspace, Lint & Repo Gates; non-green latest: none. Check Changeset: run 105617769277 (13:31Z, on opened, before the label) = failure; run 105620867111 (13:40:45Z, on labeled) = skipped — the label is honoured; the earlier failure is a pre-label reading, not a red on this diff."
    }

    Generated by Claude Code

  5. os-elon-musk commented on Sep 18, 2026

    @os-elon-musk
    CollaboratorAuthor

    ACCEPT — PR #19042 @ 8454706591 (one commit; one file, +6 / −6) · skills seat session_01BTeBejoPUvRHN8WdAJC6oF · 2026-09-18T13:47Z

    Read on GitHub: draft, base main, body line 1 Fixes #19037, Clause-②: no at line start; closing keywords touch this card only; get_files = AGENTS.md; skip-changeset present (size/s, documentation are the labellers'); report 5730878764 names the head, literal first line os-dev-report, no HTML comment, read back to the tail; the body carries ## 维护者速读(草稿). Gates: 14 derived / 14 run / 0 NOT-MEASURED at 845470659; check:pm-dispatch-gates 1849 cases (detached, verdict line read). Seat re-measure on a scratch worktree at the head: 1099 / 1099 (ratchet ✓, headroom 0; row pin 768 ✓), id-lint ✓ 27 files (0 citations in AGENTS.md), every changed line ≤ 117 B, --pair 19042 exit 0, closingKeywordTargets = {19037 → Fixes}, check-governed-merges.mjs --pr 19042 → GOVERNED, the newest Claim: (5730566948) names this branch; no open PR touches AGENTS.md; origin heads on the stem: only this branch. CI at 2026-09-18T13:45Z: 12 success · 11 skipped · 2 in progress (latest run per check), nothing red — the 13:31Z Check Changeset failure was the pre-label run, superseded by the labeled run (skipped).

    Contract review of record (CONTRACT_REVIEW_TIER, in seat): PR #19042 comment 5730909983 — VERDICT PASS. §7 now names three classes of PR that never enter the merge queue on green alone, the third the maintainer's: 「a PR whose changed lines exceed 5,000 (additions + deletions, generated files included) — it lands only by a human merge, which is its review record」, and the arming instruction reads the size beside the file list and the author. The paragraph is re-flowed in place at net 0 (6 → 6 lines within the file's 120-byte budget). The sentence carries no card number: AGENTS.md's header forbids citations and check:pm-skill-id-lint enforces it — the dispatch's 「cite the ruling」 was the seat's error, the dev's reading correct; provenance lives in the PR body. Classes (a) / (b) keep their Prime Directive anchors; no directive added.

    Path face: governed rule layer (AGENTS.md) ⇒ this PR stays a draft at the four-piece terminal: needs-user-decision on the PR, the final 维护者速读 posted there, review requested from os-zhuang and hotlong. On an authorized APPROVED the seat lands under ruling C (channel permitting; today the approver has been landing by hand). Lands in either order with PR #19033 (the rule's mechanism). This card closes on the merge (Fixes).


    Generated by Claude Code

  6. os-elon-musk commented on Sep 19, 2026

    @os-elon-musk
    CollaboratorAuthor

    Landing — PR #19042 @ 8454706591 armed on the maintainer's approval (skills seat, 2026-09-19T02:17Z)

    Tier H (AGENTS.md): approved by os-zhuang (GOVERNED_APPROVERS; review 5254146703 on this head at 2026-09-19T02:16Z) and readied by os-zhuang's hand. Ruling C: record 5730909983 (PASS at this head), check-clause2-carriers.mjs --pair 19042 exit 0, every completed check green (the Check Changeset red was stale — before skip-changeset — re-run green at 2026-09-19T00:56Z); needs-user-decision cleared; auto-merge SQUASH armed at 2026-09-19T02:17Z (the queue guard's pull_request leg was still running; the queue's merge_group leg judges the approval). The seat is clocking off on the maintainer's word — residue on this card (pm:dispatched → pm:done, unassign) is 留守 for the next seat or the maintainer's hand once the merge lands; the 收班简报 on the seat post (#7623) names it.


    Generated by Claude Code

  7. removed their assignment
    on Sep 19, 2026
  8. os-elon-musk commented on Sep 19, 2026

    @os-elon-musk
    CollaboratorAuthor

    Merged — PR #19042 → main 8f42b17461 (skills seat, 2026-09-19T02:41Z)

    Tier H: approved by os-zhuang (5254146703), readied by os-zhuang, auto-merge armed by the seat (landing 5738550632); merged through the queue at 2026-09-19T02:41Z. AGENTS.md §7 third class is on main: a PR over 5,000 changed lines lands only by a human merge. Residue: pm:dispatched → pm:done, unassigned — the last 留守 row of 简报 5738550753 is discharged; nothing is owed to the next seat. This card closed on the merge.


    Generated by Claude Code

  9. added a commit that references this issue on Sep 28, 2026
    8f42b17
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions