os:fix and route leave .cc-os/config gitignored and never staged-deleted #731
Labels
No labels
P0
P1
P2
P3
bug
category/code-change
category/cross-repo
category/eval-run
category/investigation
category/no-test-target
category/owner-ruling
category/prose-artifact
category/recurring-chore
category/structure
category/umbrella
crc-refactor
create
delete
enhancement
filed-by/agent
filed-by/user
frozen
lint-rule
needs-info
needs-triage
next
plugin/cc-architect
plugin/os
plugin/os-adr
plugin/os-aidd-lint
plugin/os-backlog
plugin/os-context
plugin/os-doc-hygiene
plugin/os-sdlc
plugin/os-vault
project/cc-os
ready-for-agent
ready-for-human
recurring
review
rule-proposal
update
waiting
wayfinder:grilling
wayfinder:map
wayfinder:map
wayfinder:research
wayfinder:task
wayfinder:task
wontfix
worklist/deviations
worklist/lint-rule
worklist/new-implement-build
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
jared/cc-os#731
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Problem
ADR-027 says
.cc-os/is gitignored and never committed. The 2026-09-25 survey shows 26 of 28 repos follow this. Two do not:os-sdlcandtally-apicommit.cc-os/config.In a new repo the order of operations breaks the rule.
os-backlog config-write(route) writes.cc-os/configbefore any.gitignoreentry exists. The first commit then tracks the file. A lateros:fixadds.cc-os/to.gitignoreand untracks the file, but it does not commit and does not report the staged deletion. The repo is left withD .cc-os/configandM .gitignoreuncommitted.Observed in
/home/jared/dev/ruby-gems/procmanafter session ecfe6e11: the gem scaffold committed.cc-os/config,os:fixstaged its removal, and the staged deletion sat for a session.Reproduce
git inita repo with no.gitignore./os-backlog:route(oros-backlog config-write forgejo:x/y) and commit./os:fix. Observed:git statusshowsD .cc-os/configandM .gitignore, nothing committed, no message. Expected: the file was never tracked, or the untrack is committed or reported.Approach
config-writeensures the.cc-os/line in.gitignorein the same step that first writes.cc-os/config, so the file is never tracked.os:fix, when it untracks an already-tracked.cc-os/config, either commits the untrack with a fixed message or prints one line telling the user the deletion is staged and how to commit it.os-sdlcandtally-apiand untrack their committed config the same way.Acceptance criteria
git check-ignore -q .cc-os/configsucceeds before the first commit.os:fixon a repo that tracks.cc-os/config, the working tree is clean or the skill output names the staged deletion.os-sdlcandtally-apino longer track.cc-os/config.Origin
Session: 8dde24ae-74d3-4884-810d-e4c873a6c2ab
Transcript: /home/jared/.claude/projects/-home-jared-dev-ruby-gems-procman/8dde24ae-74d3-4884-810d-e4c873a6c2ab.jsonl
Where: plugins/os/skills/fix/SKILL.md step 3a; plugins/os-backlog ConfigWriteCommand; cc-os ADR-027