From 77f9741672a895217705361ba16609cd0fbfaff4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marc-Andr=C3=A9=20Bombeck?= Date: Sun, 10 May 2026 15:17:03 +0200 Subject: [PATCH] docs(planning): F1 develop branch + FX user-facing cleanup recorded - STATE.md: F1 ticked complete, F3+F4 collapsed into FX (combined cleanup wave), all bullets reflect what shipped on origin/main - phase-F1-report.md: GHCR workflow audit + branch model contract - phase-FX-report.md: 3-repo PII/jargon/German scrub (HealthLog, healthlog-docs, healthlog-landing) with carry-overs and the pre-release PII grep gate spec Co-Authored-By: Claude Opus 4.7 (1M context) --- .planning/STATE.md | 40 +++++++++--------- .planning/phase-F1-report.md | 47 +++++++++++++++++++++ .planning/phase-FX-report.md | 80 ++++++++++++++++++++++++++++++++++++ 3 files changed, 148 insertions(+), 19 deletions(-) create mode 100644 .planning/phase-F1-report.md create mode 100644 .planning/phase-FX-report.md diff --git a/.planning/STATE.md b/.planning/STATE.md index 6308d11cb..26e65245f 100644 --- a/.planning/STATE.md +++ b/.planning/STATE.md @@ -22,10 +22,10 @@ B1 dispatches. ### F1 — Branch model: long-lived `develop` -- [ ] Create `develop` from current `main` HEAD -- [ ] Push `develop` to origin -- [ ] Verify GHCR workflow only fires on `main` push + `v*` tag -- [ ] Set `develop` as default work-target for all v1.4.20 commits +- [x] Create `develop` from cleaned `main` HEAD (`a1cf9bc`) +- [x] Push `develop` to origin (tracking set up) +- [x] GHCR workflow verified — only `branches: [main]` + `tags: ['v*']` push paths build/publish; PRs to `main` build but do not push; develop is build-free +- [x] All v1.4.20 commits target `develop`; release-merge to `main` only at Phase E - Detailed report: `.planning/phase-F1-report.md` ### F2 — Document branch + release model @@ -35,23 +35,25 @@ B1 dispatches. - [ ] Make user-vs-contributor distinction explicit - Detailed report: `.planning/phase-F2-report.md` -### F3 — Repo-cleanup audit (jargon sweep) +### FX — User-facing artifact cleanup (PII + jargon + German leaks) -- [ ] Multi-agent sweep: `CHANGELOG.md`, `docs/audit/`, `docs/`, - `README.md`, healthlog-docs, healthlog-landing -- [ ] Replace internal jargon (Phase X / Wave Y / marathon / - sub-agent / autonomous orchestrator / Claude name) with neutral - language -- [ ] Keep Co-Author trailer on commits (git-meta only) -- [ ] No git history rewrite — only edit current file state -- Detailed report: `.planning/phase-F3-report.md` +Combined sweep across HealthLog main repo + healthlog-docs + healthlog-landing +(F3 + F4 + new PII rule consolidated into one wave). -### F4 — Release-notes language audit (German leaks) - -- [ ] Audit `CHANGELOG.md` v1.4.14–v1.4.19 + GitHub releases + future - docs/audit/v*-summary.md -- [ ] Translate German leaks to English -- Detailed report: `.planning/phase-F4-report.md` +- [x] HealthLog main repo: 20 files scrubbed, `a1cf9bc` on origin/main + (CHANGELOG.md, docs/audit/v146 / v1414 / v1415 / v1416 / v1418 / + v1419, docs/codex-protocol-spec.md, docs/migration/, docs/ops/) +- [x] healthlog-docs: 7 files scrubbed, `782862b` on origin/main + (api/ examples replaced "marc" → "alice", DE leaks fixed) +- [x] healthlog-landing: 1 file scrubbed, `9b31083` on origin/main + (JSON-LD author block depersonalised) +- [ ] GH releases v1.4.14–v1.4.19: republish bodies from cleaned + CHANGELOG sections (see Phase E pipeline) +- [ ] Source-comment sweep (`src/` has 191 `Marc` references in + maintainer comments) — defer to v1.4.21 backlog as low-priority +- [ ] DE+EN bilingual CHANGELOG entries (v1.4.15 era) — defer; larger + rewrite, captured in v1.4.21 backlog +- Detailed report: `.planning/phase-FX-report.md` ### F5 — Best-practice GitHub repo audit diff --git a/.planning/phase-F1-report.md b/.planning/phase-F1-report.md new file mode 100644 index 000000000..7cb58e08b --- /dev/null +++ b/.planning/phase-F1-report.md @@ -0,0 +1,47 @@ +# Phase F1 — Long-lived `develop` branch + +Status: complete · 2026-05-10T15:25+02:00 + +## Outcome + +`develop` branch created from cleaned `main` HEAD (`a1cf9bc`) and +pushed to `origin/develop` with upstream tracking. Both branches now +point at the same commit; they will diverge as v1.4.20 work commits +to `develop` only. + +## GHCR workflow audit + +`/Users/marc/Projects/HealthLog/.github/workflows/docker-publish.yml` +already had the right shape: + +```yaml +on: + push: + branches: [main] + tags: ["v*"] + pull_request: + branches: [main] + workflow_dispatch: +``` + +- Push to `main` → image build + push to GHCR + Coolify webhook +- Push to a `v*` tag → image build + push (`{{version}}` + `{{major.minor}}` tags) +- PR targeting `main` → build only, no push (so PR builds don't pollute `:latest`) +- Push to `develop` → no trigger +- Push to any other branch → no trigger + +No workflow change needed. Develop pushes are silent, exactly as +intended for the daily-work branch. + +## Branch model contract (enforced from F1 onward) + +- All v1.4.20 feature/fix/test work commits to `develop` +- Hotfixes branch from `main`, merge back to both (`main` with tag, `develop` to sync) +- Release-merge `develop` → `main` happens at Phase E only; `main` carries the tag, GHCR builds, Coolify deploys +- `main` is no longer the daily image-churn target + +## Memory updated + +`feedback_branch_model_dev_main.md` already captured this; the +session's STATE.md F1 block + the new `CONTRIBUTING.md` (F2) make it +visible to contributors. diff --git a/.planning/phase-FX-report.md b/.planning/phase-FX-report.md new file mode 100644 index 000000000..37b8e2c81 --- /dev/null +++ b/.planning/phase-FX-report.md @@ -0,0 +1,80 @@ +# Phase FX — User-facing artifact cleanup + +Status: complete · 2026-05-10T15:15+02:00 + +Combined wave covering the original F3 (jargon sweep), F4 (German +leaks), and a new PII rule the maintainer flagged after seeing v1.4.19 +release notes leak personal name + health figures. + +## Three repos, three commits + +| Repo | Commit | Files | Diff | +|---|---|---|---| +| HealthLog (main repo) | `a1cf9bc` on `origin/main` | 20 | +265 / −269 | +| healthlog-docs | `782862b` on `origin/main` | 7 | API examples + DE leaks | +| healthlog-landing | `9b31083` on `origin/main` | 1 | JSON-LD author block | + +Three parallel sub-agents executed the scrubs simultaneously; commits +landed independently. No working-tree races. No `--no-verify`. No +`--no-gpg-sign`. Pre-commit hooks green on every push. + +## Scope + +Removed from user-facing artifacts (CHANGELOG, GH-release-targeted +summaries, public docs site, public landing copy): + +- Maintainer's real name (replaced with neutral framing or + "the maintainer" / "the live tenant" / "an authenticated session") +- Specific health figures tied to the live tenant (BP-target + percentages, paired-reading counts, weight loss numbers, mood + scores) +- Internal release-process jargon (Phase X / Wave Y / marathon / + sub-agent / orchestrator / "Marc-Brief" headings) +- Stray German strings in English-only release notes + +## Preserved (not leaks) + +- "Phase-Based Reminders" — real product feature for medication + reminder escalation (green/yellow/orange/red) +- "Anthropic Claude" / `claude-3-5-haiku` — third-party product + + model slugs in the AI provider feature copy +- Public canonical URLs (`bombeck.io`, `MBombeck/HealthLog`, + `mbombeck/healthlog`) — these are how users find the project +- `Co-Authored-By: Claude Opus 4.7` git trailer — git-meta only, + not visible in any rendered surface +- `sub-agent` in `docs/codex-protocol-spec.md` — literal upstream + Codex protocol header names (`x-openai-subagent`) +- "Datengrundlage ist sehr stark" in `ai-insights.mdx` — documents + the forbidden phrase the prompt blocks (load-bearing for the + feature explanation) + +## Carried over to v1.4.21 backlog + +- Source-comment sweep: `src/` has 191 `Marc` references in + maintainer-internal comments. Visible to anyone who clones the + repo. Lower priority because these are not "rendered" artifacts; + schedule for v1.4.21 hygiene pass. +- DE+EN bilingual CHANGELOG entries (v1.4.15 era only) — each entry + pairs a German sentence with its English translation by historical + design. Translating them out is a larger rewrite. +- `CLAUDE.md` + `AGENTS.md` filenames at repo root — visible in any + directory listing. Renaming is a structural change with downstream + links; defer until a hygiene PR. + +## Pre-release PII gate + +Phase E for v1.4.20 will add a release-pipeline grep gate: + +```bash +git grep -niE 'Marc[^a-z]|Marc-Brief|Marc-side|all-time ≈|572 paired' \ + CHANGELOG.md docs/audit/ docs/ README.md SECURITY.md public/ && exit 1 +``` + +If the grep returns any hit, tag is blocked until the leak is +resolved. Captured in `STATE.md` Phase E checklist. + +## GH releases + +The published v1.4.14–v1.4.19 GitHub release bodies still carry the +old leak. Republish from cleaned CHANGELOG sections during Phase E for +v1.4.20 — captured in the Phase E task list.