Skip to content

skills(objectstack-upgrade): the migration floor is 17 and 16.x-and-older rows are no longer rewritten at read, once the 16.x retirement kits leave #26303

Closed

Description

@objectstack-fleet

Filing gate ③: a follow-up the maintainer's words on #26184 ordered — Leehom, 2026-10-26, verbatim: 「是否建议单独立卡完整的评估一下现有 skills的缺口」「包括 pm-dispatch skills 和对外的skills」「立"skills 缺口评估卡"」; the audit card's own acceptance reads 「one fix card per skill package」. Filed by the domain:skills#2 seat (session_01LqKsGyMNFwwnbF5FTAqyPn, seat post #19287) from the audit's proposal. ⛔ Not a claim.

Origin: audit Part A on #26184, comment 6425678185 (gap table rows cited below carry the surface file:line on main at be531f685e; floor = tag @objectstack/spec@18.0.0, 06cab4849a).
Reader who acts: the domain:skills lane, one PR to skills/PACKAGE/** — a published surface (Tier H; dispatch-gates --tier mandates CONTRACT_REVIEW_TIER for skills/**).
Suggested grade (triage grades): p1 on landing; Blocked-by: #26138 (the 16.x retirement kits PR)

Blocked-by: #26138

Who pays: every customer upgrading from 16, the case the skill names as designed-for. On the release that carries #26138, the skill's recipe os migrate meta --from 16 answers MigrationFloorError, and its eval expects that refused command — a sentence that says something wrong (North Star item 4), not a missing one.

Measured (audit row UP1, comment 6425678185 § objectstack-upgrade): PR #26138's file list on its head touches no skills/**; the floor sentence sits at SKILL.md:103, the eval at evals/protocol-major-upgrade.json:10.

Wanted: the two-hop path from #26138's changeset (npx @objectstack/cli@17.7.0 migrate meta --from 16, or the one-shot @objectstack/cli@18.1.0), the stored pass before the image moves, the floor sentence at SKILL.md:103, and the eval at evals/protocol-major-upgrade.json:10.

Sequencing: lands before or with the release that ships #26138; the audit offered the alternative that #26138 carries the edit itself — a cross-lane PR touching a Tier H skills surface, so this card is the carrier unless its owning seat takes it (then this card closes as a duplicate of that PR's work).

Acceptance (shared by the eight audit cards)

  • Every new teaching gets an eval prompt in the package's evals/*.json; check:skill-docs, check:skill-refs and check:skill-examples green.
  • The PR body reports the whole-file and whole-package before/after line counts; additions are paid for inside the package; nothing is removed beyond the stale lines this card names.
  • Clause-②: no · Metadata-protocol: none (the skill teaches keys the protocol already carries).

Dedupe: REST listing of every issue updated since 2026-10-01 (505 issues, open + closed), title and body grep for upgrade skill migration floor 17, from 16 MigrationFloorError, retirement kits 16.x skill → 1 (#25671, closed: the platform skill's engines: { protocol: '^17' } sentence — a different stale sentence, same family of North Star item 4 cards). No open skills card asks for this.


Generated by Claude Code

Activity

  1. added
    documentationImprovements or additions to documentation
    area:devpathThe road — create, dev, verify, publish/install, connect an agent, iterate
    priority:p1High: required for production / M2
    on Oct 26, 2026
  2. objectstack-fleet commented on Oct 27, 2026

    @objectstack-fleet
    ContributorAuthor

    Scope note after the #25767 ruling · domain:skills#2 (session_01LqKsGyMNFwwnbF5FTAqyPn) · 2026-10-27T04:54Z

    The maintainer's 1+2 split on #25767 (2026-10-27T04:39Z, recorded as #25767 (comment)) narrows this card:


    Generated by Claude Code

  3. objectstack-fleet commented on Oct 27, 2026

    @objectstack-fleet
    ContributorAuthor

    Triage: re-read after the #25767 ruling · triage seat · session_01AavokzJ5DndAwitDXvKy4U · 2026-10-27T05:53Z

    ⛔ Not a claim. The grade (p1) and pm:blocked stand.

    Blocked-by: #26138


    Generated by Claude Code

  4. objectstack-fleet commented on Nov 2, 2026

    @objectstack-fleet
    ContributorAuthor

    domain:skills#1 · huangyiirene · session_01J8VVAnMUWA9rufXzFaEh4J

    Unlock scan: blocker landed through its successor · 2026-11-02T03:47Z

    ⛔ Not a claim. Lane patrol, domain:skills seat 1 (#7623). Transition in this stroke: pm:blocked → pm:queue (one replace). Grade p1 stands.


    Generated by Claude Code

  5. objectstack-fleet commented on Nov 2, 2026

    @objectstack-fleet
    ContributorAuthor

    domain:skills#1 · huangyiirene · session_01J8VVAnMUWA9rufXzFaEh4J

    Claim: PM loop round 1 · 2026-11-02T03:51Z
    Session: session_01J8VVAnMUWA9rufXzFaEh4J
    Account: huangyiirene
    Branch: claude/project-thread-gszymj
    Worktree: objectstack-issue-26303
    Domain: domain:skills
    Seat: domain:skills#1
    File surface: skills/objectstack-upgrade/** + one .changeset/*.md ('@objectstack/skills': patch) (stop on breach; explain in the report)
    Container & model: M, mode:thread, model: CONTRACT_REVIEW_TIER (dispatch-gates --tier: Model tier — MANDATORY, skills/** clause ①), effort: xhigh
    Clause-②: no
    Metadata-protocol: none
    Responsibility: n/a — not a defect card
    Thread-read: 6568576336
    Premise: corrected 6568576336
    Serial constraints cleared: none — no open PR touches skills/objectstack-upgrade/**; the only open PR touching .changeset/25767-retire-16x-retirement-kits.md is Version Packages #26517 (consumes it, no overlap with this surface); seat 2's in-flight #28816 (docs/NORTH-STAR.md) and #28829 do not touch this package.

    The branch is the card thread's own (platform exception: a project thread pushes only its assigned branch). Dispatched as a card thread through the project coordinator; the order carries the ruling (#25767 ruling 6434038284: floor stays 16, only the stored-rows half is owed) and a +15 net line budget for the package. Lands before the release that consumes .changeset/25767-retire-16x-retirement-kits.md (18.3).


    Generated by Claude Code

  6. objectstack-fleet commented on Nov 2, 2026

    @objectstack-fleet
    ContributorAuthor

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

    {
      "issue": 26303,
      "status": "done",
      "branch": "claude/project-thread-gszymj",
      "pr": "https://github.com/objectstack-ai/objectstack/pull/28918",
      "head": "3bf0627876043d1a60a6ae31d9af0a35dfa66faa",
      "session": "session_01J8VVAkD2h5o5cmhTRa3bsF",
      "premise_still_valid": true,
      "summary": "skills/objectstack-upgrade no longer teaches that a protocol-16 sys_metadata row rehydrates forever: § Stored rows now says applyConversionsToStoredItem replays only the conversions the installed release carries, 18.3 drops those retired at or below 16.x, and the stored pass must run on the release being left (18.2 or earlier) before moving. § 3.6's last sentence and the report-template stored-pass line carried the same claim and were corrected; eval 4's expected answer amended, eval 5 (18.1 to 18.3 with rows from 16) added; one '@objectstack/skills': patch changeset. Premise verified: tag @objectstack/spec@18.2.0 (27f38ada49) carries 45 conversions with retiredAfter 16.x + 5 with 15.x, base b15b634c16 carries 0.",
      "tests": "No code path changed; teaching exercised by eval 4 (amended) and eval 5 (new). On 3bf0627876: pnpm --filter @objectstack/spec run check:skill-docs :: exit 0 ('Skill docs in sync'); check:skill-refs :: exit 0 ('9 generated files in sync'); check:skill-examples :: exit 0 ('280 prose examples type-check across 3 surface(s)', after building @objectstack/spec and the 38-package @objectstack/client-react closure under os-verify-lock, VERDICT command-exit 0 both builds). No ablation: no tested behaviour changed.",
      "gates": "Local: dispatch-gates --commands --repo objectstack-ai/objectstack derived 46 families on 3bf0627876; --ran with exit codes: '46 derived famil(ies) accounted for, 45 run, 1 NOT-MEASURED'. check-skills-token-ratchet :: exit 0 (SKILL.md 6166/6188, examples-upgrade.md 1194/1197, no ceiling moved); doc-authoring, nul-bytes, empty-changeset, adr-0087-registration, changeset-no-major, role-word, skill-compatibility, skill-frame-sync, skill-identifier-liveness, published-files, pm-governed-merges and the rest :: exit 0. dts-closure, sourcemap-no-sources-content, lean-entry-closure, doc-formula-expressions first exit 3 (no build), exit 0 after the partial build (38 packages swept). NOT MEASURED: check:dual-build-cjs-loads :: exit 3 PREREQUISITE NOT MET (needs every package's dist; repo-wide build left to CI). CI at report time (head 3bf0627876): Governed Surface Queue Guard success, Check PR Size success, PR-body guards success, Test UI success, filter success; Check Changeset, Build Core, Lint (all lanes), Type Check (all lanes), Live E2E UI, Dogfood Regression Gate, Plan Test Core shards in_progress; UI build/lint/type-check/test shards, Build Docs, Dogfood Verify CLI skipped by the path filter. Not waited on.",
      "dogfood_battery": "n/a — no `!` in the PR title and no (narrowing) arm",
      "line_budget": "package skills/objectstack-upgrade/** 647 -> 655 (+8 of +15). SKILL.md 483 -> 481 (tokens 6176 -> 6171, ratchet-priced 6166, ceiling 6188); evals/protocol-major-upgrade.json 45 -> 55 (eval fixture, not ratcheted); references/examples-upgrade.md 119 -> 119 (tokens 1195 -> 1194, ceiling 1197). Catalog sum of all 11 skills/*/SKILL.md 4554 -> 4552.",
      "files_changed": [
        "skills/objectstack-upgrade/SKILL.md",
        "skills/objectstack-upgrade/evals/protocol-major-upgrade.json",
        "skills/objectstack-upgrade/references/examples-upgrade.md",
        ".changeset/26303-upgrade-skill-stored-rows-before-18-3.md"
      ],
      "deviations": [
        "Scope: the brief named § Stored rows and the eval; § 3.6's last sentence and references/examples-upgrade.md's stored-pass line state the same claim and were corrected too (inside the declared file surface; nothing else removed).",
        "Worktree: the shared checkout had the card branch checked out, so its HEAD was detached (no file touched there) to add worktree ../objectstack-issue-26303 on claude/project-thread-gszymj; BASE b15b634c16.",
        "Local NOT MEASURED: check:dual-build-cjs-loads (exit 3, needs a repo-wide build), declared to CI.",
        "PR has no assignee or reviewer and this session did not subscribe to its activity, per the seat's order and os-dev's dispatch contract; the platform's assign/request-review step is left to the seat's hand-off.",
        "Commit carries the AGENTS.md model-free trailer pair; the PR body ends with the session-URL footer form."
      ],
      "write_budget": "3 of 3: git push (claude/project-thread-gszymj, 3bf0627876); pr_create via relay (fw-20261102T041350Z-cb098c, run 41387289122 success, read-back 8923/8923 bytes identical, draft); this os-dev-report comment via post-stamped.",
      "mcp_calls": "4 — issue_read get, issue_read get_comments (#26303), pull_request_read get, pull_request_read get_check_runs (#28918); no MCP write tool used",
      "api_writes": "2 — POST /repos/objectstack-ai/objectstack/dispatches for pr_create; the post-stamped write of this comment on /repos/objectstack-ai/objectstack/issues/26303/comments",
      "open_questions": [],
      "out_of_scope_findings": [
        "class: none (unrehearsed doc drift, not a filing class) · reach: n/a, no published teaching · evidence: packages/spec/src/conversions/stored.ts header 'D3 keeps every conversion forever'; packages/metadata-protocol/src/stored-migration.ts header 'served canonical forever'; AGENTS.md Prime Directive #12 'replays the full conversion chain — retired entries included' — all predate the 18.3 kit removal · dedupe words: stored rows conversions forever, rehydration retired kits 18.3, applyConversionsToStoredItem header drift",
        "carrier: none · noted in PR #28918 Acceptance notes, not filed"
      ]
    }

    Generated by Claude Code

  7. objectstack-fleet commented on Nov 2, 2026

    @objectstack-fleet
    ContributorAuthor

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

    {
      "issue": 26303,
      "status": "done",
      "round": "patch 1 (seat review comment 6569077178, should-fix)",
      "branch": "claude/project-thread-gszymj",
      "pr": "https://github.com/objectstack-ai/objectstack/pull/28918",
      "head": "43d397d498d05ffaa719726fd263bb8f14bf4206",
      "session": "session_01J8VVAkD2h5o5cmhTRa3bsF",
      "premise_still_valid": true,
      "summary": "§ 3.6 now says the stored-pass exit 0 is valid only on the release being left: a release that dropped a row's conversions no longer recognises the row and answers 0. Verified before writing: migrateStoredMetadata (packages/metadata-protocol/src/protocol.ts) sets changed = notices.length above 0 from convertStoredItemDetailed, which calls applyConversionsToStoredItem with the installed conversions; no notice and no todo records the row 'canonical'; storedMigrationClean (stored-migration.ts) is pending === 0 and failed === 0; packages/cli/src/commands/migrate/meta.ts sets exitCode 1 only when not clean. Eval 5's expected answer gains the same point (no new assertion token). One new commit, no force-push.",
      "tests": "No code path changed. On 43d397d498: check:skill-docs :: exit 0; check:skill-refs :: exit 0; check:skill-examples :: exit 0 ('280 prose examples type-check across 3 surface(s)'; spec and client-react closure rebuilt under os-verify-lock, VERDICT command-exit 0, 38/38 cache hits on unchanged package sources).",
      "gates": "On 43d397d498: check-skills-token-ratchet --self-test :: exit 0, gate :: exit 0 (SKILL.md 6185 of 6188, headroom 3; no ceiling moved); check:nul-bytes :: exit 0; dispatch-gates --commands derives the same 46 families as on 3bf0627876 (identical list). The other derived families read no file this commit changed beyond the two already measured; not re-run. CI on the new head not waited on.",
      "line_budget": "package skills/objectstack-upgrade/** 647 -> 656 (+9 of +15). SKILL.md 483 -> 482 (was 481 at 3bf0627876), tokens 6176 -> 6190 raw, ratchet-priced 6185 of 6188; eval 55 lines (unchanged), 1314 -> 1339 tokens; examples-upgrade.md unchanged. Catalog sum of all 11 SKILL.md 4554 -> 4553.",
      "files_changed": [
        "skills/objectstack-upgrade/SKILL.md",
        "skills/objectstack-upgrade/evals/protocol-major-upgrade.json"
      ],
      "deviations": [
        "PR body not edited (os-dev: the dev writes the body once, at pr_create). Stale readings for the seat to rewrite: the SKILL.md row to '483 -> 482 (-1)' and '6176 -> 6190 (ratchet's priced count after: 6185, ceiling 6188)'; the eval row tokens to '1033 -> 1339'; the Package row to '647 -> 656 (+9, budget +15)'; the Catalog row to '4554 -> 4553 (-1)'; the head cited in Tests/Acceptance notes/Verification to 43d397d498."
      ],
      "write_budget": "2: git push 3bf0627876..43d397d498 (no force); this os-dev-report comment via post-stamped",
      "mcp_calls": "0 this round",
      "api_writes": "1 — the post-stamped write of this comment on /repos/objectstack-ai/objectstack/issues/26303/comments",
      "open_questions": [],
      "out_of_scope_findings": []
    }

    Generated by Claude Code

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

Metadata

Metadata

Assignees

Labels

area:devpathThe road — create, dev, verify, publish/install, connect an agent, iteratedocumentationImprovements or additions to documentationdomain:skillspm:dispatchedpriority:p1High: required for production / M2

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions