-
Notifications
You must be signed in to change notification settings - Fork 0
Add sdd init orphan cleanup of installed legacy skills
#7
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Merged
Changes from all commits
Commits
Show all changes
5 commits
Select commit
Hold shift + click to select a range
5038789
sdd init: prune installed skill files the bundle no longer carries
hlubek cbc94f5
sdd init: one prune path for both passes, and a downgrade guard
hlubek 7e27506
sdd: signal tactical `sdd init` now removes installed skill files who…
hlubek 4c374dd
sdd: summarize 20260905-112554-s-tac-3ja (manual)
hlubek 3bae179
sdd init: an unreadable path cannot make the orphan sweep fail
hlubek File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,32 @@ | ||
| --- | ||
| type: signal | ||
| layer: tactical | ||
| kind: done | ||
| refs: | ||
| - id: 20260821-123832-d-tac-ip1 | ||
| kind: addresses | ||
| desc: delivers its orphan-cleanup criterion; the removal, rename, surface sweep, parity verdict, kind-capture coverage and release notes stay open | ||
| - id: 20260614-182310-s-tac-wqq | ||
| kind: builds-on | ||
| desc: the dropped-agent prune whose content-hash safety rule this extends to orphans within a still-rendered agent | ||
| closes: | ||
| - 20260507-174656-s-tac-zaz | ||
| participants: | ||
| - Christopher | ||
| confidence: high | ||
| topics: | ||
| - implementation/cli | ||
| summary: '`sdd init` now detects and removes installed skill files whose bundle source is gone, extending the content-hash safety rule—preserve edited files, remove stamped matches, `--force` overrides—to orphans within a still-rendered agent, with the install stamp as the ownership marker that keeps skills sdd never wrote out of the sweep and a version guard that spares files stamped by a later release. It delivers the orphan-cleanup criterion of the retirement plan (20260821-123832-d-tac-ip1), leaving that plan''s other criteria open, and folds its own sweep together with the dropped-agent prune into one path holding the shared rule (20260614-182310-s-tac-wqq). It closes the gap signal (20260507-174656-s-tac-zaz).' | ||
| --- | ||
|
|
||
| `sdd init` now removes installed skill files whose bundle source is gone, so an upgrade no longer leaves stale copies behind (commits 50387893 and cbc94f52). | ||
|
|
||
| The read side was the hole: `SkillStatus` walked bundle entries only, so a file on disk with no embedded counterpart was invisible to the whole install pipeline. It now also walks the install directory and reports what has no bundle source, and init sweeps those for every rendered agent after the install pass — by the same safety rule the dropped-agent prune already applies to a whole render (20260614-182310-s-tac-wqq): a file still matching its install stamp is removed, an edited one is preserved and named, and `--force` removes that too. The sweep first landed as a near-copy of that prune; both now run through one path holding the rule, each caller supplying only the files it offers and what else its own case takes. | ||
|
|
||
| One rule the gap did not state had to be settled in the building. The install directory also holds skills sdd never wrote, so the stamp became the ownership marker: a file carrying none is not an orphan at all — left untouched, and not reported as something to resolve. A test holds that under `--force`, where getting it wrong would delete a user's own skill during an upgrade. Because the stamp is written into the installed file rather than read from the bundle, recognising sdd's own work needs no record of what older versions shipped — the question raised in dialogue when the sweep was weighed against a one-time list of retired paths. One direction still needed a guard: a stamp naming a release ahead of the running binary is left alone, since absence from an older bundle is no evidence a newer sdd never shipped the file. | ||
|
|
||
| Beyond the tests, the built binary was run against scratch projects: a tracked orphan is removed, its deletion committed, and the working tree is clean afterwards. | ||
|
|
||
| That run also surfaced a pre-existing condition the sweep inherits: an orphan that was never committed is removed, and the auto-commit then fails on it. Ruled out of scope in dialogue, since init commits what it installs and a genuine orphan is therefore tracked. | ||
|
|
||
| This is the orphan-cleanup criterion of the retirement plan (20260821-123832-d-tac-ip1) and closes the gap that plan adopted its rule from. Its remaining criteria are untouched. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.