diff --git a/CLAUDE.md b/CLAUDE.md index 32f746a..33d5352 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -361,6 +361,32 @@ This file is meant to be re-scanned when `scadaproj` is opened in Claude Code: 3. Keep the project set **curated** — only the SCADA/OT/Wonderware/OPC-UA family belongs here. 4. Flag new duplicates/overlaps and namespace mismatches rather than silently merging them. +### Index edits go on `main`, and get pushed + +Every sister project's `CLAUDE.md` tells it to update its entry here whenever a fact this +index records changes. That edit lands in **this** repo, which has its own checkout — so a +naive `git commit` writes it onto whatever branch `scadaproj` happens to be on, usually an +unrelated feature branch, sometimes one with no upstream. The index then disagrees with +reality for as long as that branch stays unmerged, which is the exact drift the rule exists +to prevent, and it is invisible unless someone goes looking. + +**So: commit index edits on `main` and push them.** Stash or set aside unrelated work first +— never commit an index edit onto a dirty branch — and restore the original branch after: + +```bash +git rev-parse --abbrev-ref HEAD # note it +git checkout main && git pull +# …edit the entry… +git commit -am "docs(index): >" && git push origin main +git checkout - # restore +``` + +**Observed 2026-07-27:** the OtOpcUa `Sql` poll driver's entry had sat unpushed on +`feat/overview-dashboard` since 2026-07-24 for exactly this reason, and the `Mqtt` driver's +entry was about to join it. Both were recovered by cherry-picking onto `main` (`6ab50fe`, +`591eaac`, `7dcd93c`) — **cherry-pick stranded index commits rather than merging the branch +they are stuck on**, since that branch usually carries unrelated in-progress work. + ## Other workspace projects with a CLAUDE.md (not indexed — promote on request) Listed so they can be pulled into the index above if you decide they belong.