You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
skills: objectstack-api still teaches that DELETE is unrecoverable and that there is no recycle bin (#30237, ADR-0148) #30847
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.
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 main256a4b725: 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.
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.
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.
Released · 2026-11-06T18:03Z · partial landed: PR #30994 (Refs #30847) merged. The skill now teaches that a by-id delete keeps business-object rows in the recycle bin (sys_recycle_bin) and that nothing lists or restores them over the API yet. Still owed here: the restore / purge door, permission and REST-route teaching, once #30237's restore and REST-door PRs land. Moved pm:dispatched → pm:blocked, assignee cleared.
Activity
objectstack-fleet commentedon Nov 6, 2026
triage#1 · os-zhuang · session_01AavokzJ5DndAwitDXvKy4U
Path: none
Triage: audit · p2 ·
domain:skills· 2026-11-06T06:53Z⛔ Not a claim.
objectstack-apistill teaches that DELETE is unrecoverable and that there is no recycle bin (engine: snapshot deletes into the recycle bin, restore under original ids, purge, and the TTL reap (#3146 slice 3) #30237, ADR-0148). p2 as suggested: a published skill that contradicts shipped behaviour. Correct the "no recycle bin" sentence now, and name the restore door once engine: snapshot deletes into the recycle bin, restore under original ids, purge, and the TTL reap (#3146 slice 3) #30237's PRs land.Generated by Claude Code
objectstack-fleet commentedon Nov 6, 2026
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_01J8VVAj7CvjkGXvgXzd6RZ7Account:
huangyiireneBranch:
claude/project-thread-zyyxri(the card thread's designated branch; dev sessionsession_01J8VVAnsTJVz6nCb7n8NUJs)Worktree:
objectstack-issue-30847Domain:
domain:skillsSeat:
domain:skills#3File surface:
skills/objectstack-api/SKILL.md, only L47 ("hard delete"), therestore/purgesentence 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 --tierreads 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 fixThread-read: 6679098621
Premise: holds on
main256a4b725:SKILL.mdL47 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'sNotify: serial6687759447 read. The thread mergesmainafter #30844 lands, before opening its PR.Scope: the PR says
Refs #30847, neverFixes. The restore / purge door teaching stays owed until #30237's restore and REST-door PRs land; at merge this seat releases the card withBlocked-by: #30237. Changeset owed:'@objectstack/skills': patch, neverskip-changeset. Tier H.objectstack-fleet commentedon Nov 6, 2026
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): itsexpected_outputand itsmust_containtokenstrackHistoryandlifecycle, which still grade the old "DELETE is a hard delete" teaching.'restore'stays inmust_not_contain. The eval ships in@objectstack/skills, so the correctedSKILL.mdmust not ship beside it. Same card, same patch changeset.objectstack-fleet commentedon Nov 6, 2026
domain:skills#3 · huangyiirene · session_01J8VVAj7CvjkGXvgXzd6RZ7
ACCEPT → PR #30994 comment 6690169452
Tier H: awaiting an approval from
os-zhuangorhotlong(requested). This PR is the immediate-correction half (Refs); at merge this card returns to the queue withBlocked-by: #30237for the restore-door teaching.objectstack-fleet commentedon Nov 6, 2026
domain:skills#3 · huangyiirene · session_01J8VVAj7CvjkGXvgXzd6RZ7
Released · 2026-11-06T18:03Z · partial landed: PR #30994 (
Refs #30847) merged. The skill now teaches that a by-id delete keeps business-object rows in the recycle bin (sys_recycle_bin) and that nothing lists or restores them over the API yet. Still owed here: the restore / purge door, permission and REST-route teaching, once #30237's restore and REST-door PRs land. Movedpm:dispatched→pm:blocked, assignee cleared.Blocked-by: #30237