Repository navigation
fix(skills): node-local installs are local-installed:{auto|owner|manual}, not approved/installed@ (#2374) - #2376
Merged
Conversation
…al} (#2374) #2283 labelled an autosave install installed / installed@<sha12> and an owner approve approved, but Wiki DOC-3903 TM-3906 reserves approved for the P6 promote merge and installed@<sha> for the P7 fleet install. Promotion only stages installed autosave-managed skills, so the real path has a node-local install between P3 and P4 that the vocabulary did not name. - autoinstall.sh: autosave install -> local-installed:auto (meta + install ledger; the content sha stays in .sha256); autosave apply -> local-installed:owner. - skillsuggest SKILL.md: hand-copied legacy approve (no autosave marker, never promoted) -> local-installed:manual. - skill-review.sh reindex: owner vs manual from meta installed_by. - ccc-skill-usage-report.py: node-index installed / installed@<sha12> -> local-installed:auto, approved -> local-installed:owner (node rows and aggregate over not-yet-updated node reports). - docs + changelog; skills/registry.json regenerated. Fleet installed.json and publisher-ledger stages unchanged. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
jinon86
approved these changes
Oct 18, 2026
jinon86
left a comment
Contributor
There was a problem hiding this comment.
Approved after exact-head validation and fresh operator authorization using the relay-held jinon86 credential.
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
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Fixes #2374 — follow-up to #2283 / #2373 (owner decision 2026-10-18: option A).
Why
Promotion stages only installed, autosave-managed skills (
scripts/ccc-skill-promotion.py_discover:1287-1293 →_snapshot:1170-1211: ownershipautosave-managed+.autosave-meta.jsonmarker). So the real path isdrafted → prescreened → node-local install → staged → published → verdict → approved → installed@<commit>. The node-local step had no name in Wiki DOC-3903 TM-3906, so #2283 borrowed the fleet names:approved(TM-3906: P6 promote merge)installed@<SKILL.md sha12>(TM-3906: P7 fleet install;installed.jsonrows areinstalled@<40-hex commit>, feat(skills): lifecycle on promotion ledger rows and installed.json (#2283, part 2) #2369)Investigation evidence (nosuk) is in the #2374 comment: all 7 claude
stagedrows came from.installed-drafts, and 2 of them are nowfleet-managed.Change
autoinstall.sh, legacy + incremental; meta + install ledger)installed/installed@<sha12>local-installed:auto(content sha stays in ledger.sha256)autosave apply(marker → promotable)approvedlocal-installed:owner/skillsuggestlegacy hand copy (no marker, never promoted)approvedlocal-installed:manualskill-review.sh reindexapproved/installedinstalled_by=owner-approved→ owner, else manual; installed → auto; a metalocal-installed:*is adoptedccc-skill-usage-report.py(node rows + aggregate)installed/installed@*→local-installed:auto;approved→local-installed:ownerKnown limit (documented): a row or node report from before #2374 cannot tell owner from manual, so a pre-#2374
approvedcounts asowneruntil that node's next reindex sweep, which recomputes the split from meta. On nosuk this affects 0 drafts (.approved-= 0).Unchanged: fleet
installed.json(installed@<commit>), publisher-ledger stages (published/verdict:*/approved), all fields, directory suffixes, gates and caps.Evidence (nosuk, load avg 0.02)
ccc_skill_usage_report_test.py18 OK. Node fixture:installed@<sha12>row → auto, post-investigate(skills): 오너 수동 승인 lifecycleapproved가 P6 의미와 겹침 — P3 승인 이후 실제 전이 확인 (#2283/#2373 후속) #2374 manual row. Aggregate fixture: a not-yet-updated node withapproved/installed/installed@*→ owner 2 / auto 5 / manual 1, and no P6/P7 name left instages.ccc-skill-autosave.test.sh202/0 (3 new investigate(skills): 오너 수동 승인 lifecycleapproved가 P6 의미와 겹침 — P3 승인 이후 실제 전이 확인 (#2283/#2373 후속) #2374 reindex assertions: pre-investigate(skills): 오너 수동 승인 lifecycleapproved가 P6 의미와 겹침 — P3 승인 이후 실제 전이 확인 (#2283/#2373 후속) #2374 apply meta → owner, pre-investigate(skills): 오너 수동 승인 lifecycleapproved가 P6 의미와 겹침 — P3 승인 이후 실제 전이 확인 (#2283/#2373 후속) #2374installed@meta → auto, no bareapproved/installed/installed@in the node index).autoinstall.test.sh124/0,autoinstall-incremental.test.sh6/0,codex-autoinstall.test.sh43/0,skill-review.test.sh73/0,ccc-skill-registry.test.sh26/0.mainsources): only the changed/new assertions fail — pytest 2, autosave 197/5, autoinstall 123/1, incremental 5/1.CCC_HARNESS_PHASE=static validate-harness.shPASS.🤖 Generated with Claude Code