fix(gitea-sync): survive live Gitea replies; point project memory at /buglog

gitea-sync.py fixes found on the first live run (bug-1855 follow-up):
- 204/empty-body replies (label DELETE) no longer crash in json.loads
- every request has a 60s timeout, so a stalled call fails instead of hanging
- spec.json sync state is inserted as a trailing "gitea" block instead of
  re-serializing the file (15 hand-formatted spec.json files would reflow)
- implementation issue body labels generated vs approved correctly; the
  validation body uses the same done-phase set as the close rules

Project memory now routes all buglog writes through the buglog skill:
CLAUDE.md key rule, a cerebrum Do-Not-Repeat entry (with the older
duplicate-id / json.dump / tags-vs-fix lessons tagged as superseded), and
xce-audit-invariants step 5.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
This commit is contained in:
Rongsong Shen 2026-09-24 10:21:51 +00:00
parent 19104f1940
commit e915f8def4
Signed by untrusted user: rshen
GPG key ID: 80533536B0EB651C
4 changed files with 53 additions and 20 deletions

View file

@ -268,9 +268,12 @@ several minutes per mode.
## Step 5 — Record and report
- Append every genuinely new root-caused bug to `.wolf/buglog.json` (id,
error_message, file, root_cause, fix, tags, related_bugs) — check the
existing entry count first so the new `bug-NNNN` id doesn't collide.
- Log every genuinely new root-caused bug with the `buglog` skill:
`python3 scripts/buglog.py add --error ... --root-cause ... --file ...
--tags <component>,... --fix "<what changed>" --status fixed` (or `open` /
`partial` with `--note` for what remains). It assigns the id; don't pick one
by hand. For a violation that an existing entry already covers, update that
entry instead: `scripts/buglog.py status <id> ...` / `note <id> ...`.
- Append durable, non-obvious learnings to `.wolf/cerebrum.md`'s Key
Learnings section (anchor the edit near an existing dated entry to avoid
the "## Key Learnings" heading collision — the file has one per dated