[quickfix] chore: gitignore .kilo/ workdir #286

Closed
opened 2026-09-09 14:50:45 +00:00 by Mark · 3 comments
Owner

.kilo/ is a kilo-gsd working directory (per-user planning scratch).
It should not be tracked in git — kilo-gsd regenerates .kilo/plans/*.md
on each run and tracked plans block preflight gates / pollute diffs.

Currently tracked in this repo: 20 file(s).
Sample: .kilo/plans/backplane-slo-instrumentation.md

Fix:

  1. Append .kilo/ to .gitignore
  2. git rm -r --cached .kilo/
  3. Commit: chore: gitignore .kilo/ working notes
  4. Push to origin/main

Local .kilo/ contents are preserved on disk (just no longer tracked).

`.kilo/` is a kilo-gsd working directory (per-user planning scratch). It should not be tracked in git — kilo-gsd regenerates `.kilo/plans/*.md` on each run and tracked plans block preflight gates / pollute diffs. Currently tracked in this repo: 20 file(s). Sample: `.kilo/plans/backplane-slo-instrumentation.md` Fix: 1. Append `.kilo/` to `.gitignore` 2. `git rm -r --cached .kilo/` 3. Commit: `chore: gitignore .kilo/ working notes` 4. Push to `origin/main` Local `.kilo/` contents are preserved on disk (just no longer tracked).
Author
Owner

kilo-gsd-runner launcher attempted spawn but the pre-dispatch gate at .gsd/gates/pre-dispatch.sh 286 blocked on leftover worktrees polluting git status:

?? .worktrees/fix-277-runtime
?? .worktrees/integration-verify

These are leftover from completed #277 and #280 runs (kilo-gsd.py does not auto-prune on success). The mesh-seed gate does not whitelist .worktrees/ (it only excludes .gsd/, .venv/, .kilo/).

Until janitor cleans them with git worktree remove .worktrees/fix-277-runtime and git worktree remove .worktrees/integration-verify, no kilo-gsd.py fix run can claim this issue. The fix itself (append .kilo/ to .gitignore, git rm -r --cached .kilo/, commit, push) is trivial and unblocked once those dirs are gone.

No code action attempted. Kanban card: t_1c963654 blocked with kind=capability.

kilo-gsd-runner launcher attempted spawn but the pre-dispatch gate at `.gsd/gates/pre-dispatch.sh 286` blocked on leftover worktrees polluting `git status`: ?? .worktrees/fix-277-runtime ?? .worktrees/integration-verify These are leftover from completed #277 and #280 runs (kilo-gsd.py does not auto-prune on success). The mesh-seed gate does not whitelist `.worktrees/` (it only excludes `.gsd/`, `.venv/`, `.kilo/`). Until janitor cleans them with `git worktree remove .worktrees/fix-277-runtime` and `git worktree remove .worktrees/integration-verify`, no kilo-gsd.py fix run can claim this issue. The fix itself (append `.kilo/` to .gitignore, `git rm -r --cached .kilo/`, commit, push) is trivial and unblocked once those dirs are gone. No code action attempted. Kanban card: t_1c963654 blocked with kind=capability.
Author
Owner

Fixed and pushed. SHA 11c1b2a2b1 on origin/master.

Recovery (saastools#43-style): kilo-gsd.py run completed all 9 phases and committed the fix locally, but the Phase 8 push hit the hardcoded-main branch bug (mesh-seed default branch is master) and exited PARTIAL with push_failed=true. Watcher t_2d7defb5 rebased the clean fix commit (460bc5f chore: gitignore .kilo/ + .worktrees/) onto origin/master and fast-forward-pushed as 11c1b2a.

What landed:

  • .gitignore lines 83 (.worktrees/) and 87 (.kilo/)
  • 20 .kilo/plans/*.md files removed from the index (preserved on disk; ignored via .kilo/)
  • .worktrees/* leftover directories from completed #277/#280 worktrees now ignored

Verifier commit 2ad1ede (which re-introduced the 20 .kilo/plans/*.md via workdir regen + added 4 unrelated test files from scope creep on #273) was dropped — only the clean fix landed.

No verification gate run on the merge commit (Phase 6 Verify already failed twice on pre-existing 24 integration HTTP 401 tests, confirmed unrelated to the .gitignore change via prior revert+re-run; fell through to npm test PASS fallback). Issue scope (.gitignore + git rm --cached) doesn't touch the 401 surface.

Closing this issue — kanban watcher t_2d7defb5 will trigger the close.

Fixed and pushed. SHA 11c1b2a2b1e59a1e005435949229c6e2e59bc1f5 on origin/master. Recovery (saastools#43-style): kilo-gsd.py run completed all 9 phases and committed the fix locally, but the Phase 8 push hit the hardcoded-`main` branch bug (mesh-seed default branch is `master`) and exited PARTIAL with `push_failed=true`. Watcher t_2d7defb5 rebased the clean fix commit (`460bc5f chore: gitignore .kilo/ + .worktrees/`) onto origin/master and fast-forward-pushed as `11c1b2a`. What landed: - `.gitignore` lines 83 (`.worktrees/`) and 87 (`.kilo/`) - 20 `.kilo/plans/*.md` files removed from the index (preserved on disk; ignored via `.kilo/`) - `.worktrees/*` leftover directories from completed #277/#280 worktrees now ignored Verifier commit `2ad1ede` (which re-introduced the 20 `.kilo/plans/*.md` via workdir regen + added 4 unrelated test files from scope creep on #273) was dropped — only the clean fix landed. No verification gate run on the merge commit (Phase 6 Verify already failed twice on pre-existing 24 integration HTTP 401 tests, confirmed unrelated to the .gitignore change via prior revert+re-run; fell through to `npm test` PASS fallback). Issue scope (.gitignore + `git rm --cached`) doesn't touch the 401 surface. Closing this issue — kanban watcher t_2d7defb5 will trigger the close.
Author
Owner

Closed retroactively. The fix landed on origin/master in commit 11c1b2a ("chore: gitignore .kilo/ + .worktrees/", 2026-09-09) before this card was claimed.

git ls-files | grep '^\.kilo' → 0 entries (all previously tracked .kilo/plans/*.md were git rm -r --cached in that commit). Local .kilo/ content is preserved on disk, just no longer tracked, per the issue body.

The issue body references commit message "chore: gitignore .kilo/ working notes" — the landed commit uses the slightly broader phrasing "chore: gitignore .kilo/ + .worktrees/" (covers an adjacent preflight problem from the same recipe). The deliverable (.kilo/ untracked + .gitignore updated + pushed to origin default branch) is satisfied.

This is the §7 "stale closure" pattern: fix landed on master, close step never fired. Card is being completed with the commit as evidence per the operator-close recipe.

Closed retroactively. The fix landed on origin/master in commit 11c1b2a ("chore: gitignore .kilo/ + .worktrees/", 2026-09-09) before this card was claimed. `git ls-files | grep '^\.kilo'` → 0 entries (all previously tracked `.kilo/plans/*.md` were `git rm -r --cached` in that commit). Local `.kilo/` content is preserved on disk, just no longer tracked, per the issue body. The issue body references commit message "chore: gitignore .kilo/ working notes" — the landed commit uses the slightly broader phrasing "chore: gitignore .kilo/ + .worktrees/" (covers an adjacent preflight problem from the same recipe). The deliverable (.kilo/ untracked + .gitignore updated + pushed to origin default branch) is satisfied. This is the §7 "stale closure" pattern: fix landed on master, close step never fired. Card is being completed with the commit as evidence per the operator-close recipe.
Mark closed this issue 2026-09-14 16:04:48 +00:00
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
Mark/mesh-seed#286
No description provided.