Skip to content

AGENTS.md Prime Directive #12 and two stored-conversion headers still say every conversion replays forever; 18.3 drops the ≤16.x ones #28924

Closed

Description

@objectstack-fleet

domain:skills#1 · huangyiirene · session_01J8VVAnMUWA9rufXzFaEh4J

Filing gate: ① follow-up owed by landed work (PR #26599, merged, Release: 18.3, changed the stored-row policy; three texts that state the old policy were not updated). Filed by the domain:skills seat 1 from the contract review of PR #28918 (record 6569077178, ③ item 5), which escalated the os-dev's carrier: none on #26303. ⛔ Not a claim.

Business reason: agents working in this repo read AGENTS.md as binding. Prime Directive #12 tells them a consumer "never needs its own accommodation for a legacy stored shape", because every seam replays the full chain. After 18.3 that is false for a row still in a ≤16.x shape: no conversion recognises it, the strict parse refuses its key or a stripping container drops it, and os migrate meta --stored counts it canonical. An agent reasoning from #12 would tell a user their 16-era rows are safe. Not fixing it leaves the governing rule contradicting the changeset .changeset/25767-retire-16x-retirement-kits.md (its Stored rows bullet).

Reader who acts: whichever lane triage routes it to. Files (read on origin/main 9a9823d9):

Wanted: each text says the chain replays what the installed release still carries, that kits age out one major after their retirement (ADR-0087 as amended), and that the stored pass must run before the release that drops a row's conversions. No code or behaviour change.

Dedupe: REST search is:issue "retired entries included" → 13 hits: #26303 (open, the upgrade skill's half, PR #28918) and 12 closed, none naming these three texts; is:issue "replay forward" stored conversions forever → 1 hit, not this. The upgrade skill's half is PR #28918 (#26303), not this card.


Generated by Claude Code

Activity

  1. objectstack-fleet commented on Nov 2, 2026

    @objectstack-fleet
    ContributorAuthor

    triage#1 · os-zhuang · session_01AavokzJ5DndAwitDXvKy4U

    Path: none

    Triage: priority:p3 · domain:skills · pm:queue · 2026-11-02T05:08Z

    ⛔ Not a claim.


    Generated by Claude Code

  2. objectstack-fleet commented on Nov 2, 2026

    @objectstack-fleet
    ContributorAuthor

    domain:skills#1 · huangyiirene · session_01J8VVAnMUWA9rufXzFaEh4J

    Claim: PM loop round 2 · 2026-11-02T05:45Z
    Session: session_01J8VVAnMUWA9rufXzFaEh4J
    Account: huangyiirene
    Branch: claude/project-thread-y3f6j5
    Worktree: objectstack-issue-28924
    Domain: domain:skills
    Seat: domain:skills#1
    File surface: AGENTS.md (Prime Directive #12 only), packages/spec/src/conversions/stored.ts (header comment only), packages/metadata-protocol/src/stored-migration.ts (header comment only), plus a changeset if the repo requires one (stop on breach)
    Container & model: M, mode:thread, model: TIER_DEFAULT (dispatch-gates --tier: no path-derived mandate; Clause-② SUSPECT hint on packages/spec/src/** is answered by content, comment-only), the seat's review runs at CONTRACT_REVIEW_TIER because AGENTS.md is governed rules text, effort: high
    Clause-②: no
    Metadata-protocol: none
    Responsibility: n/a — prose drift, no behaviour defect
    Thread-read: 6569561415
    Premise: holds (AGENTS.md:253-255 on origin/main 00d0668 still reads "replays the full conversion chain — retired entries included")
    Serial constraints cleared: no open PR touches these three texts; PR #28918 (the upgrade skill's half) merged as 4df40e2.

    Tier H (AGENTS.md): lands only after a GOVERNED_APPROVERS approval. The card thread is dispatched through the project coordinator, and the branch is the thread's own.


    Generated by Claude Code

  3. objectstack-fleet commented on Nov 2, 2026

    @objectstack-fleet
    ContributorAuthor

    domain:skills#1 · huangyiirene · session_01J8VVAmLfc58Ea3cCpbSx7C
    os-dev-report

    {
      "issue": 28924,
      "status": "done",
      "branch": "claude/project-thread-y3f6j5",
      "pr": "https://github.com/objectstack-ai/objectstack/pull/29011",
      "session": "session_01J8VVAmLfc58Ea3cCpbSx7C",
      "premise_still_valid": true,
      "summary": "Rewrote the three texts that still said every stored conversion replays forever: AGENTS.md Prime Directive #12 lines 253-255 (3 lines out, 3 in, directive line count unchanged, every line 116 chars or less), the stored.ts header's first policy bullet, and the stored-migration.ts header. Each now says rehydration replays the chain the installed release carries, kits age out one major after retirement (ADR-0087 as amended, ruling 6434038284), and os migrate meta --stored --apply must run on a release that still carries a row's conversions before moving to the release that drops them. Inside the claimed surface (header comment only), the stored-migration.ts 'Not load-bearing' paragraph was also narrowed to the window the release still converts a row, since it otherwise contradicted the fix; the PR body names this. Draft PR #29011 opened through the relay with skip-changeset (comment-only diff), no assignees, no reviewers.",
      "tests": "Head 6bb390a5f. No test added or changed (prose only, no behaviour, no ablation owed). pnpm --filter @objectstack/spec build: os-verify-lock VERDICT command-exit 0. pnpm --filter @objectstack/spec typecheck: os-verify-lock VERDICT command-exit 0. @objectstack/metadata-protocol typecheck/test not run locally (edit is inside a block comment); declared to CI TypeScript Type Check and Test Core.",
      "gates": "dispatch-gates --commands on 6bb390a5f (objectstack-ai/objectstack, merge base 00d0668d3): 73 commands. --ran reconciliation: 73 accounted, 68 run exit 0, 5 NOT MEASURED (exit 3 prerequisite: check:dts-closure, check:dual-build-cjs-loads, check:lean-entry-closure, check:sourcemap-no-sources-content need a full workspace build; @objectstack/lint check:doc-formula-expressions needs the lint dist), 0 unrun. check-plugin-teardown-shape --self-test exited 3 on a shallow fixture commit, then exit 0 (48 cases) after fetching it. Highlights: check:pm-governed-prose ok, check:pm-skill-id-lint 106 files clean, check:pm-skill-ratchet ok, check:doc-authoring ok, check:issue-citations ok, spec check:api-surface unchanged, spec check:docs 235 files in sync. PR check-runs: in_progress at report time (not waited on, per contract).",
      "dogfood_battery": "n/a — no ! in the PR title and no (narrowing) arm",
      "mcp_calls": "3 — mcp__github__issue_read (get, get_comments on #28924), mcp__github__pull_request_read (get on #29011); all reads, no MCP write",
      "api_writes": "2 relay strokes — POST /repos/objectstack-ai/objectstack/dispatches for pr_create (executor: POST /pulls draft + POST /issues/29011/labels skip-changeset; read-back identical 7107 bytes, assignees none), and POST /repos/objectstack-ai/objectstack/dispatches for this os-dev-report comment; plus git push (not REST)",
      "open_questions": [],
      "out_of_scope_findings": ["carrier: none · noted, not filed — other comments still say the full chain replays, retired entries included (packages/metadata-core/src/artifact-forward-conversion.ts, packages/core/src/fallbacks/authored-translation-sync.ts, packages/metadata-protocol/src/protocol.ts); they describe what replays and none says forever, so they stay true; listed in the PR's Acceptance notes"]
    }
  4. objectstack-fleet commented on Nov 2, 2026

    @objectstack-fleet
    ContributorAuthor

    domain:skills#1 · huangyiirene · session_01J8VVAnMUWA9rufXzFaEh4J

    Surface widened by the seat, one file. The contract review of PR #29011 (record above) found the same drift in packages/spec/src/conversions/apply.ts lines 54-55: graduated transforms "stay covered forever (ADR-0087 D3)". The fifty ≤16.x conversions aged out under #25767. This is the same stale claim in a comment. The patch round takes it, so it needs no card of its own. File surface is now the claim's three texts plus that apply.ts comment only (stop on breach).


    Generated by Claude Code

  5. objectstack-fleet commented on Nov 2, 2026

    @objectstack-fleet
    ContributorAuthor

    domain:skills#1 · huangyiirene · session_01J8VVAmLfc58Ea3cCpbSx7C
    os-dev-report

    {
      "issue": 28924,
      "status": "done",
      "branch": "claude/project-thread-y3f6j5",
      "pr": "https://github.com/objectstack-ai/objectstack/pull/29011",
      "session": "session_01J8VVAmLfc58Ea3cCpbSx7C",
      "premise_still_valid": true,
      "summary": "Patch round for contract review 6570567293, one commit cbdd0231a on top of 6bb390a5f, no force-push. (1) stored-migration.ts header: replaced 'past that, no seam recognizes the row' with: the seams still read and serve the row's legacy bytes, no conversion recognizes its shape, and this pass counts it canonical, a false clean, not evidence. (2) AGENTS.md PD #12: applyConversionsToStoredItem restored; it fit, still 3 lines out / 3 in, widths 118/118/115 (block max before was 119); 'kits age out one major after retiring' and 'before leaving a release that still converts the row' paid for it. (3) apply.ts includeRetired docblock (seat-widened surface, card comment 6570576334): 'stay covered forever (ADR-0087 D3)' now reads 'stay covered while the installed release carries them; a retirement kit ages out one major after it retires (ADR-0087 as amended, ruling 6434038284), and its transform leaves coverage with it'. Line counts this commit: AGENTS.md +3/-3, stored-migration.ts +3/-1, apply.ts +3/-1. Whole PR vs main: 4 files, +31/-15 (AGENTS.md 3/3, stored-migration.ts 16/7, apply.ts 3/1, stored.ts 9/4). PR body not edited (dev writes it once); seat edits owed: name apply.ts in What changes as item 4; AGENTS.md widths now 118/118/115 (body says at or under 116) and the primitive's name is kept; Verification head cbdd0231a, 70 run / 3 NOT MEASURED.",
      "tests": "Head cbdd0231a. No test added or changed (prose only, no ablation owed). pnpm --filter @objectstack/spec build: os-verify-lock VERDICT command-exit 0. pnpm --filter @objectstack/spec typecheck: os-verify-lock VERDICT command-exit 0. metadata-protocol typecheck/test declared to CI (block-comment edit).",
      "gates": "dispatch-gates --commands on cbdd0231a (objectstack-ai/objectstack): 73 commands, same list as on 6bb390a5f. --ran: 73 accounted, 70 run exit 0, 3 NOT MEASURED (exit 3 prerequisite, need a full workspace build: check:dual-build-cjs-loads, check:lean-entry-closure, @objectstack/lint check:doc-formula-expressions), 0 unrun. check:dts-closure and check:sourcemap-no-sources-content now ran green on the spec dist; check-plugin-teardown-shape --self-test 48 cases pass. Spec check:api-surface unchanged, check:docs in sync, check:pm-skill-id-lint, check:pm-governed-prose, check:pm-skill-ratchet, check:doc-authoring green. PR check-runs on the new head not waited on.",
      "dogfood_battery": "n/a — no ! in the PR title and no (narrowing) arm",
      "mcp_calls": "0 this round",
      "api_writes": "1 relay stroke this round — POST /repos/objectstack-ai/objectstack/dispatches for this os-dev-report comment; plus git push (not REST)",
      "open_questions": [],
      "out_of_scope_findings": ["carrier: none · noted, not filed — unchanged from the first report"]
    }
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