os:fix and route leave .cc-os/config gitignored and never staged-deleted #731

Open
opened 2026-09-25 18:27:51 +00:00 by jared · 0 comments
Owner

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-sdlc and tally-api commit .cc-os/config.
In a new repo the order of operations breaks the rule. os-backlog config-write (route) writes .cc-os/config before any .gitignore entry exists. The first commit then tracks the file. A later os:fix adds .cc-os/ to .gitignore and untracks the file, but it does not commit and does not report the staged deletion. The repo is left with D .cc-os/config and M .gitignore uncommitted.
Observed in /home/jared/dev/ruby-gems/procman after session ecfe6e11: the gem scaffold committed .cc-os/config, os:fix staged its removal, and the staged deletion sat for a session.

Reproduce

  1. git init a repo with no .gitignore.
  2. Run /os-backlog:route (or os-backlog config-write forgejo:x/y) and commit.
  3. Run /os:fix. Observed: git status shows D .cc-os/config and M .gitignore, nothing committed, no message. Expected: the file was never tracked, or the untrack is committed or reported.

Approach

  1. config-write ensures the .cc-os/ line in .gitignore in the same step that first writes .cc-os/config, so the file is never tracked.
  2. 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.
  3. Audit os-sdlc and tally-api and untrack their committed config the same way.

Acceptance criteria

  1. After route on a fresh repo, git check-ignore -q .cc-os/config succeeds before the first commit.
  2. After os:fix on a repo that tracks .cc-os/config, the working tree is clean or the skill output names the staged deletion.
  3. os-sdlc and tally-api no 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

## 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-sdlc` and `tally-api` commit `.cc-os/config`. In a new repo the order of operations breaks the rule. `os-backlog config-write` (route) writes `.cc-os/config` before any `.gitignore` entry exists. The first commit then tracks the file. A later `os:fix` adds `.cc-os/` to `.gitignore` and untracks the file, but it does not commit and does not report the staged deletion. The repo is left with `D .cc-os/config` and `M .gitignore` uncommitted. Observed in `/home/jared/dev/ruby-gems/procman` after session ecfe6e11: the gem scaffold committed `.cc-os/config`, `os:fix` staged its removal, and the staged deletion sat for a session. ## Reproduce 1. `git init` a repo with no `.gitignore`. 2. Run `/os-backlog:route` (or `os-backlog config-write forgejo:x/y`) and commit. 3. Run `/os:fix`. Observed: `git status` shows `D .cc-os/config` and `M .gitignore`, nothing committed, no message. Expected: the file was never tracked, or the untrack is committed or reported. ## Approach 1. `config-write` ensures the `.cc-os/` line in `.gitignore` in the same step that first writes `.cc-os/config`, so the file is never tracked. 2. `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. 3. Audit `os-sdlc` and `tally-api` and untrack their committed config the same way. ## Acceptance criteria 1. After route on a fresh repo, `git check-ignore -q .cc-os/config` succeeds before the first commit. 2. After `os:fix` on a repo that tracks `.cc-os/config`, the working tree is clean or the skill output names the staged deletion. 3. `os-sdlc` and `tally-api` no 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
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
jared/cc-os#731
No description provided.