Skip to content

spec-property-retirement playbook: the "gates fail serially, one stale surface hides the rest" claim contradicts the AGENTS.md section it cites; Check Generated Artifacts workflow named but absent #33572

Open

Description

@objectstack-fleet

domain:skills#1 · os-project-manager · session_01FEkQ5pjSPT7ui2EUcunaVb

Filing gate: ① (follow-ups from the at-tier retro review of merged PR #33457, card #32559; record on that PR).

.claude/skills/spec-property-retirement/SKILL.md on main:

  1. Lines 28 to 30 say the generated-artifact gates fail serially, one stale surface hiding the rest, one red build per surface. The AGENTS.md section the next paragraph cites says the opposite for the spec gates in CI (around L653 to 656: lanes "run every gate even after an earlier one is red, so one run reports every stale artifact"). The playbook's own §5 agrees with AGENTS.md, and §6 anchors 「串行门禁互相遮蔽」 in that section, which no longer states it. Measure whether the non-spec gates (i18n, tests, dogfood) among the roughly 14 surfaces can still hide one another across jobs before rewording.
  2. Line 251 names a Check Generated Artifacts workflow; nothing by that name exists under .github/ on main.

What lands. Reword 1 to what CI does (keep any measured serial case), and point 2 at the real job name. .claude/** is Tier S; the line ceiling (337, file at 336) is paid in place. skip-changeset.

Activity

  1. added
    findingRecorded observation — held, not dispatchable until the findings triage round grades it
    on Nov 15, 2026
  2. objectstack-fleet commented on Nov 15, 2026

    @objectstack-fleet
    ContributorAuthor

    triage#1 · hotlong · session_01Q4EjjMnyLqJdzuktEmRPXH

    Path: none

    Triage: first touch → domain:skills · p3 · 2026-11-15T00:58Z

    ⛔ Not a claim.

    The spec-property-retirement playbook contradicts the AGENTS.md section it cites and names a workflow that does not exist. Internal skill text, p3.

  3. objectstack-fleet commented on Nov 15, 2026

    @objectstack-fleet
    ContributorAuthor

    domain:skills#1 · os-project-manager · session_01FEkQ5pjSPT7ui2EUcunaVb

    Claim: PM loop round 5
    Session: session_01FEkQ5pjSPT7ui2EUcunaVb
    Account: os-project-manager
    Branch: claude/project-thread-j01qh2
    Thread session: session_01FEkQ5kJFi5T1hSXrdUxhzH
    Worktree: objectstack-issue-33572
    Domain: domain:skills
    Seat: domain:skills#1
    File surface: .claude/skills/spec-property-retirement/** (stop on breach; explain in the report)
    Container & model: S, mode:thread, model: opus (default; dispatch-gates --tier on the real diff decides), effort default
    Clause-②: no
    Metadata-protocol: none
    Responsibility: n/a — internal playbook wording, found by the at-tier retro review of PR #33457
    Thread-read: none
    Premise: holds (filed by this seat 2026-11-15T00:58:00Z from main)
    Serial constraints: none (no open lane PR touches this file). p2 lane cards are all held behind in-flight PRs on the same files (#33569 and #33560 after PR #33577 and PR #32703's PR; #33539, #33540, #33541, #33578 after PR #33531), so this p3 fills the free slot.
    Order: /mnt/project-files/pm-orders/skills/order-33572.md (project file). Ruling-ref: Leehom 「开放 p3卡认领」 (2026-11-14T21:21:06Z). Claimed 2026-11-15T01:54Z.

  4. added
    pm:dispatchedDispatched to a dev agent by /pm-dispatch
    and removed
    pm:queueReady for the PM dispatch loop
    on Nov 15, 2026
  5. objectstack-fleet commented on Nov 15, 2026

    @objectstack-fleet
    ContributorAuthor

    domain:skills#1 · os-project-manager · session_01FEkQ5kJFi5T1hSXrdUxhzH
    os-dev-report
    {
    "issue": 33572,
    "status": "done",
    "branch": "claude/project-thread-j01qh2",
    "pr": "#33592",
    "session": "session_01FEkQ5kJFi5T1hSXrdUxhzH",
    "premise_still_valid": true,
    "summary": "Head 2b04592 on main 4bba8b8, one file (.claude/skills/spec-property-retirement/SKILL.md, 336 to 336 lines, ceiling 337 untouched). Item 1: the opening no longer says the gates fail serially; it says a red gate inside a CI lane does not stop the rest (lint.yml EVERY GATE RUNS header) and names the three measured cases that still hide a gate: a fail-fast build step (lint lanes, Test Core closure build and turbo --continue=dependencies-successful), the serial Spec property liveness job (check:liveness red skips check:variant-docs), and dogfood running only on the merge queue. Section 6 drops the now unanchored serial-gates trap (four to three), and section 5's local pnpm check:i18n && ... test became ; so i18n red no longer hides the spec tests. Item 2: Check Generated Artifacts does not exist; TypeScript Type Check is real but is the required aggregate job of workflow Lint & Type Check, so the line now names the lane check:api-surface runs in (Type Check · consumer gates, lint.yml:6113) against the lane of the other generated-artifact gates (Type Check · source gates), both feeding TypeScript Type Check.",
    "tests": "Docs-only change to internal agent text: no package source, no unit test or typecheck owed, no ablation applies. check-skill-line-ratchet exit 0 (336 lines, ceiling 337, headroom 1, no line over 120 bytes). Workflow and check-run names read on PR #33483 head 82cc3c1 (Type Check · source gates / workspace / debt ledger / consumer gates, TypeScript Type Check) and PR #33465 (Spec property liveness).",
    "gates": "dispatch-gates --commands derived 19 families on 2b04592; all run after turbo build --filter=@objectstack/lint... under the verify lock (VERDICT command-exit 0, 97s), exit captured before any pipe: 19 exit 0. --ran reconciliation: 19 derived, 19 run, 0 NOT-MEASURED. dispatch-gates --tier: no path-derived mandate. check-governed-merges --branch: GOVERNED, Tier S (.claude/** x1), +11/-11. CI check-runs: in_progress at report time. Log: /mnt/project-files/pm-orders/skills/33572-gates-ran.txt.",
    "dogfood_battery": "n/a, no ! in the PR title and no (narrowing) arm",
    "mcp_calls": "0 GitHub MCP calls",
    "api_writes": "2 relay writes: pr_create (fleet-write run 43666418152, PR #33592, body read back identical 8336 bytes, label skip-changeset read back, no assignees) and this os-dev-report comment (post-stamped). Plus git push of the harness branch (not a REST write).",
    "open_questions": [],
    "security_findings": "none",
    "out_of_scope_findings": [
    "carrier: seat (AGENTS.md is outside this order's surface) · AGENTS.md L651-653 says the six spec artifact gates all live in one job, TypeScript Type Check; they run in the Type Check · source gates and Type Check · consumer gates lanes behind that aggregate job (lint.yml:4771, :5966, :6466). The required-context reading is right; only the one-job wording is loose. Not a/b/c class (agent-read wording, no runtime reach). Dedupe words: TypeScript Type Check one job, spec artifact gates lane, AGENTS.md Touched packages/spec.",
    "carrier: none (noted) · the Spec Liveness Check workflow's three steps are fail-fast (spec-liveness-check.yml:57-73), unlike every lint.yml lane; check:variant-docs runs nowhere else, so a red ledger hides it for a CI round. Recorded in the playbook as a measured serial case; giving those steps continue-on-error would be a workflow change (new gate machinery defaults to no without the maintainer naming it). Dedupe words: spec-liveness-check continue-on-error, variant-docs hidden, liveness serial steps."
    ],
    "deviations": [
    "Standing lines ask the PR body to end with an HTML signed comment; os-dev.md forbids dev-written HTML comments in GitHub text and wins on conflict, so the signature is the plain line after Fixes.",
    "Added a fourth edit beyond the card's two items: section 5's local command pnpm check:i18n && pnpm --filter @objectstack/spec test to ; with a comment, because it was a serial-masking case in the playbook's own text (item 1's subject), same file, zero line cost."
    ]
    }


    Generated by Claude Code

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Labels

documentationImprovements or additions to documentationdomain:skillsDomain lane — seat card indexed by label:pm:seatfindingRecorded observation — held, not dispatchable until the findings triage round grades itpm:dispatchedDispatched to a dev agent by /pm-dispatchpriority:p3

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions