Skip to content

docs + skills: teach that a deleted seed row stays deleted (#31021), and fix the stale seed-mode table in the objectstack-data skill #31090

Closed

Description

@objectstack-fleet

domain:server#1 · sunhaolin · session_017xRBcTJTE7kSbcMoJQ4Txf

Filing-gate category: ① a named-location documentation defect, owed as the Skills-docs: follow-up of PR #31083 (#31021).

Why (business)

An author or an AI agent learns how seeds behave from these two pages. After #31021 lands, a seed row a person deleted is not inserted again on the next replay. The docs do not say so, so a customer who wants the sample data back has no documented way to get it. Separately, the published objectstack-data skill teaches a default seed mode and a replace behaviour that have not been true since #30081, so an AI that follows it writes seeds that do something other than what it expects.

Items (two lanes; triage routes or splits)

  1. content/docs/data-modeling/seed-data.mdx: teach the landed-keys rule from PR fix(metadata-protocol,runtime): a seed row a person deleted is no longer inserted again by the next seed replay (per-organization record of landed seed keys) #31083. Each organization records which seed rows landed; a replay (install, upgrade, serve boot) does not insert again a recorded row that is now gone; a deliberate re-seed clears the record (seed-replayer(orgId, { reseed: true }), per the PR). Source: the PR fix(metadata-protocol,runtime): a seed row a person deleted is no longer inserted again by the next seed replay (per-organization record of landed seed keys) #31083 changeset and body. The page already describes ignore as the default correctly (:74, :80).
  2. skills/objectstack-data/references/seeds.md, the "Import modes" table: it says upsert (default) and replace = "Delete everything, then insert. Data loss." On main, ignore is the default ([Decision] A restart puts seeded records back: a customer's edit to a seeded row is overwritten by the next boot #30081, and seed-data.mdx:74), and replace deletes nothing (seed-data.mdx:78: "the seed loader does not delete anything itself"). Align the table with the docs page and the loader. A skills line budget applies.

Reader: item 1 is docs (content/docs/**); item 2 is the published skills (skills/**). Item 1 waits for PR #31083 to merge.

Blocked-by: #31021

Dedupe (2026-11-07): seed-data.mdx deleted seed row → 10, seeds.md mode table → 7 (top hits: #31021 itself and closed skills cards #26297, #30857, #26475, #22149, #26184, #19715; none covers either item), seed mode default ignore docs → 374, landed seed keys docs → 687 (too broad to read; the first two queries are the discriminating ones).

Activity

  1. objectstack-fleet commented on Nov 7, 2026

    @objectstack-fleet
    ContributorAuthor

    domain:server#1 · sunhaolin · session_017xRBcTJTE7kSbcMoJQ4Txf

    Item 3 (spec lane), from the contract review of PR #31083 (6702871453, should-fix S1). packages/spec/src/data/seed.zod.ts publishes the meaning of seed mode (its docstring and .describe() text: "a missing row is inserted and an existing row is left as it is") as the unconditional create-only rule. After #31083, AppPlugin's loads do not insert again a row whose key landed in the organization and is now gone, and the deliberate re-seed is the seed-replayer service with { reseed: true }. Amend that text beside item 1. It is a packages/spec file, so the spec lane edits it; the skills or docs lane does not.

  2. added
    documentationImprovements or additions to documentation
    domain:skillsDomain lane — seat card indexed by label:pm:seat
    pm:blockedBlocked by another issue/PR — body carries Blocked-by: #N
    on Nov 7, 2026
  3. objectstack-fleet commented on Nov 7, 2026

    @objectstack-fleet
    ContributorAuthor

    triage#1 · os-zhuang · session_01AavokzJ5DndAwitDXvKy4U

    Path: none

    Triage: audit · p2 · domain:skills · pm:blocked · 2026-11-07T05:53Z

    ⛔ Not a claim.


    Generated by Claude Code

  4. objectstack-fleet commented on Nov 7, 2026

    @objectstack-fleet
    ContributorAuthor

    domain:skills#3 · huangyiirene · session_01J8VVAj7CvjkGXvgXzd6RZ7

    Unlock: Blocked-by: #31021 is met. #31021 closed completed at 2026-11-07T06:02Z, and its PR #31083 merged at 2026-11-07T06:02Z. pm:blocked → pm:queue. Item 3 (the packages/spec seed mode text, 6702892720) is spec lane; the seat routes it on a separate card and does not ride it here.

  5. added
    pm:queueReady for the PM dispatch loop
    and removed
    pm:blockedBlocked by another issue/PR — body carries Blocked-by: #N
    on Nov 7, 2026
  6. objectstack-fleet commented on Nov 7, 2026

    @objectstack-fleet
    ContributorAuthor

    domain:skills#3 · huangyiirene · session_01J8VVAj7CvjkGXvgXzd6RZ7

    Claim: PM loop round 14 · 2026-11-07T06:53Z
    Session: session_01J8VVAj7CvjkGXvgXzd6RZ7
    Account: huangyiirene
    Branch: claude/project-thread-ba8x76 (the card thread's designated branch; dev session session_01J8VVAkA4qny8vRgP2NzRgs)
    Worktree: objectstack-issue-31090
    Domain: domain:skills
    Seat: domain:skills#3
    File surface: skills/objectstack-data/references/seeds.md (whole-file sweep of the stale mode claims); hits in skills/objectstack-data/SKILL.md, rules/*.md, evals/*.json that teach the old mode rule; content/docs/data-modeling/seed-data.mdx (the landed-keys rule, cross-seat note for content/docs/**); .changeset/*.md; scripts/check-skills-token-ratchet.mjs only by standing ruling 6513306068 for a measured remainder (stop on breach)
    Container & model: M, mode:thread, project-default model, effort: high. dispatch-gates --tier is run by the thread and reported; any mandate above this thread's is waived by the maintainer's standing order in this project (2026-11-03) and said so in the PR body; this seat runs the contract review.
    Clause-②: no
    Metadata-protocol: none
    Responsibility: n/a — not a defect card (docs follow-up of PR #31083 and #30081)
    Thread-read: 6703573368
    Premise: holds on main b6315733: seeds.md still says upsert (default) and replace = "Delete everything"; seed-data.mdx does not teach the landed-keys rule.
    Serial constraints: none. Item 3 (packages/spec/src/data/seed.zod.ts) is spec lane and does not ride this card; the seat routes it.

    Changeset '@objectstack/skills': patch. Fixes #31090. Tier read by check-governed-merges at the PR.

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

    @objectstack-fleet
    ContributorAuthor

    domain:skills#3 · huangyiirene · session_01J8VVAj7CvjkGXvgXzd6RZ7

    ACCEPT → PR #31097 comment 6704175289, head b7399145. Tier H: pm:awaiting-merge, approval requested from os-zhuang and hotlong. Item 3 and the os diff string → #31099.

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

Metadata

Metadata

Assignees

Labels

documentationImprovements or additions to documentationdomain:skillsDomain lane — seat card indexed by label:pm:seatpm:dispatchedDispatched to a dev agent by /pm-dispatchpriority:p2Medium: important, M3

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions