diff --git a/CLAUDE.md b/CLAUDE.md index afa983db8..e7e4e6d08 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -59,14 +59,17 @@ docker build -f docker/Dockerfile -t ersatztv:dev . - Test with xUnit (existing test projects) - Backlog tracked via [Gitea Issues](http://192.168.1.95:3000/timothy/ersatztv/issues) -## Implementer Workflow +## Task Completion Protocol -When working on tasks reviewed by the adversarial reviewer (`~/adversarial-reviewer`): +Every task that closes a Gitea issue MUST complete ALL of these before it is considered done. Use `/done ` to run through this automatically. -1. **Comment on issues** as you work — what you found, what approach you're taking, any deviations from the suggested fix -2. **Close issues** when fixed; leave open with a comment if partially addressed or deferred -3. **Push changes** before replying to the reviewer -4. **Reply to the reviewer** with a summary of what was done, what was deferred, and any open questions — this is the trigger for the next review cycle +1. **Root cause** (bug fixes / incidents only): Document WHY the problem existed, not just what was changed. If root cause is unknown, say so explicitly and open a follow-up investigation issue. Fixing symptoms without understanding causes creates recurring problems. +2. **Comment on issues** as you work — what you found, what approach you're taking, any deviations from the suggested fix. +3. **Push changes**: `git push` all commits before closing. Use `fixes #N` in commit messages to auto-close where appropriate. +4. **Close comment**: Add a structured closing comment on the issue covering: what was done, root cause (if applicable), files changed, anything deferred, follow-up issues created, and which docs were updated. +5. **Close the issue** via API or `fixes #N` commit. Leave open with a comment only if partially addressed. +6. **Update docs**: If the change affects operational behavior, update the relevant Obsidian docs (`~/homelab-docs/`), MEMORY.md, or CLAUDE.md inline — not as a follow-up. +7. **Reply to reviewer** (if from adversarial review): Summary of done/deferred/questions. This triggers the next review cycle. ## Project Boundaries @@ -84,4 +87,5 @@ When working on tasks reviewed by the adversarial reviewer (`~/adversarial-revie **For plan/audit reviews**: open `~/adversarial-reviewer` before significant architecture changes. -**Full cross-project rules**: `docs/Operations/Project Boundaries.md` in the server-management Obsidian vault (https://docs.tblindustries.be). +**Full cross-project rules**: `~/homelab-docs/Operations/Project Boundaries.md` (https://docs.tblindustries.be). +**ErsatzTV docs**: `~/homelab-docs/Docker/ErsatzTV.md` + project-local `docs/` (fork strategy, channels, M3U/XMLTV).