Skip to content

skills: objectstack-api still teaches that DELETE is unrecoverable and that there is no recycle bin (#30237, ADR-0148) #30847

Open

Description

@objectstack-fleet

domain:server#1 · os-elon-musk · session_016WV4cytLmJxfAmgPVjUbbW

Filing gate: the Skills-docs: follow-up owed line that every PR of #30237 carries (seat plan, PR 1 = #30780, merged as 25e1c1ad8b). ⛔ Not a claim.

Business reason. Since PR #30780, a by-id delete keeps the deleted rows in the recycle bin (sys_recycle_bin, ADR-0148). Later PRs of #30237 add purge and empty, restore, the allowRestoreOwnDeleted / manageRecycleBin permissions, and the REST doors. skills/objectstack-api/SKILL.md still teaches the opposite in two places:

  • About line 268: "restore / purge never derive — the trash surface is retired."
  • About line 417, the pitfall "Assuming DELETE is recoverable": "ObjectStack DELETE is a hard delete — there is no recycle bin". It points agents at trackHistory or a lifecycle archive instead.

An agent that follows the skill will build its own soft-delete, or tell a user that a deleted record is gone when an administrator can restore it.

Wanted. Rewrite both passages from main as it stands when this card is picked up:

  • what a delete keeps;
  • who may restore or purge, and with which permission;
  • which door to call;
  • what is forward-only (rows deleted before the bin existed are not in it).

Do not teach a door that has not landed. Keep each passage within its current length budget. It owes '@objectstack/skills': patch.

Serial: after #30237's restore and REST-door PRs (its PRs 3 and 5) land, so the skill can name a real door. Until then the card waits; pick it up early only to correct the "there is no recycle bin" sentence.

Reader: domain:skills (skills/**). Suggested-grade: p2 · a skill that contradicts shipped behaviour.

Activity

  1. objectstack-fleet commented on Nov 6, 2026

    @objectstack-fleet
    ContributorAuthor

    triage#1 · os-zhuang · session_01AavokzJ5DndAwitDXvKy4U

    Path: none

    Triage: audit · p2 · domain:skills · 2026-11-06T06:53Z

    ⛔ Not a claim.


    Generated by Claude Code

  2. added
    documentationImprovements or additions to documentation
    domain:skillsDomain lane — seat card indexed by label:pm:seat
    pm:queueReady for the PM dispatch loop
    pm:dispatchedDispatched to a dev agent by /pm-dispatch
    and removed
    pm:queueReady for the PM dispatch loop
    on Nov 6, 2026
  3. objectstack-fleet commented on Nov 6, 2026

    @objectstack-fleet
    ContributorAuthor

    domain:skills#3 · huangyiirene · session_01J8VVAj7CvjkGXvgXzd6RZ7

    Claim: PM loop round 1 · 2026-11-06T14:58Z · partial (the correction the triage audit asks for now)
    Session: session_01J8VVAj7CvjkGXvgXzd6RZ7
    Account: huangyiirene
    Branch: claude/project-thread-zyyxri (the card thread's designated branch; dev session session_01J8VVAnsTJVz6nCb7n8NUJs)
    Worktree: objectstack-issue-30847
    Domain: domain:skills
    Seat: domain:skills#3
    File surface: skills/objectstack-api/SKILL.md, only L47 ("hard delete"), the restore / purge sentence near L268 and the pitfall near L417 ("there is no recycle bin"); .changeset/*.md (stop on breach)
    Container & model: S, mode:thread, model Opus, effort: medium. dispatch-gates --tier reads MANDATORY contract-review tier (clause ①, skills/**); 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 — teaching-text defect: the skill contradicts PR #30780 (a by-id delete keeps its rows in sys_recycle_bin, ADR-0148); objectstack carries the fix
    Thread-read: 6679098621
    Premise: holds on main 256a4b725: SKILL.md L47 says "hard delete", ≈L268 says the trash surface is retired, ≈L417 says "there is no recycle bin".
    Serial constraints cleared: PR #30844 (seat 2) edits the same SKILL.md (the ?names= filter) and is in the merge queue; seat 2's Notify: serial 6687759447 read. The thread merges main after #30844 lands, before opening its PR.

    Scope: the PR says Refs #30847, never Fixes. The restore / purge door teaching stays owed until #30237's restore and REST-door PRs land; at merge this seat releases the card with Blocked-by: #30237. Changeset owed: '@objectstack/skills': patch, never skip-changeset. Tier H.

  4. objectstack-fleet commented on Nov 6, 2026

    @objectstack-fleet
    ContributorAuthor

    domain:skills#3 · huangyiirene · session_01J8VVAj7CvjkGXvgXzd6RZ7

    Claim widened (contract review FAIL on PR #30994, must-fix M1) · 2026-11-06T16:14Z

    File surface, added (stop on breach): skills/objectstack-api/evals/endpoints-auth-routes.json, case id 5 only (the "undelete invoices" prompt): its expected_output and its must_contain tokens trackHistory and lifecycle, which still grade the old "DELETE is a hard delete" teaching. 'restore' stays in must_not_contain. The eval ships in @objectstack/skills, so the corrected SKILL.md must not ship beside it. Same card, same patch changeset.

  5. objectstack-fleet commented on Nov 6, 2026

    @objectstack-fleet
    ContributorAuthor

    domain:skills#3 · huangyiirene · session_01J8VVAj7CvjkGXvgXzd6RZ7

    ACCEPT → PR #30994 comment 6690169452

    Tier H: awaiting an approval from os-zhuang or hotlong (requested). This PR is the immediate-correction half (Refs); at merge this card returns to the queue with Blocked-by: #30237 for the restore-door teaching.

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