Bastien Chanot
89093a7835
docs(plan): model routing wave 2 — pure-execution + reflection-split skills (doc/status/hotfix/commit-change/release-candidate)
2026-07-15 12:34:20 +02:00
Bastien Chanot
2ad712cfd4
chore(memory): BDR-066 model routing + journal + TODO follow-ups
2026-07-15 12:01:14 +02:00
Bastien Chanot
97088fe59b
docs(model-routing): README agent-model table + CHANGELOG entry
2026-07-15 11:54:54 +02:00
Bastien Chanot
bd5a603567
test(model-routing): census guard — gate wiring, pins, executor shape (flip-tested)
2026-07-15 11:49:59 +02:00
Bastien Chanot
e955c4d050
feat(model-routing): web-validate fix bundle applied via hotfixer at L1 (BDR-061 alignment)
2026-07-15 11:44:53 +02:00
Bastien Chanot
0fbe3103cb
feat(model-routing): SDD implementation + review subagents dispatched model sonnet
2026-07-15 11:40:42 +02:00
Bastien Chanot
56c451ea25
feat(model-routing): /feat re-architecture — reflection inline, feater = sonnet executor (partial supersede BDR-050)
2026-07-15 11:33:18 +02:00
Bastien Chanot
1ed77cb3fb
feat(model-routing): pin hotfixer sonnet (executor), un-pin analyzer (inherits session)
2026-07-15 11:16:33 +02:00
Bastien Chanot
06413d9eb5
feat(model-routing): wire blocking model gate into 12 reflection orchestrators
2026-07-15 11:11:29 +02:00
Bastien Chanot
f2dd361bd5
feat(model-routing): blocking model-gate include (self-check + witness)
2026-07-15 11:06:49 +02:00
Bastien Chanot
9984b75f90
feat(model-routing): model-check witness (big/small/unknown) + flip-tests
2026-07-15 11:00:32 +02:00
Bastien Chanot
e5dd804e7e
docs(plan): model routing — 10-task implementation plan (client-handover deferred to plan 2)
2026-07-15 10:46:43 +02:00
Bastien Chanot
2864635087
docs(spec): model routing — reflection inline / execution sonnet (design)
2026-07-15 00:08:12 +02:00
Bastien Chanot
166faa1da5
Merge chore/post-merge-cleanup into develop
2026-07-14 18:46:53 +02:00
Bastien Chanot
08ab0575df
chore(docs): drop transient spec+plan post-merge; codify artifact lifecycle (BDR-065)
2026-07-14 18:46:43 +02:00
Bastien Chanot
8d70fcb15c
chore(memory): BDR-065 + LRN-124 — post-merge capitalize (transient artifacts, scan-report leak-map)
2026-07-14 18:46:43 +02:00
Bastien Chanot
d557ee906d
Merge chore/untrack-audit-reports into develop
2026-07-14 18:45:22 +02:00
Bastien Chanot
2d54df5e33
Merge feature/claude-global-md-rename into develop
2026-07-14 18:43:36 +02:00
Bastien Chanot
20b90465d8
chore(audit): untrack gitleaks reports; allowlist triaged FP classes
...
Reports are gitignored (.gitignore:94) but were swept into 17bdd08 —
even redacted they map secret types/locations for anyone with repo
access. Allowlists from the 2026-07-14 cso triage (75 findings → 0,
each class verified empirically): bare 40-hex git SHAs, gitflow-test
synthetic AWS fixture, presigned-URL key ids, expired GitHub image
JWTs, doc placeholders, IDE lock files, two prose literals. Converted
deprecated [allowlist] to [[allowlists]] (gitleaks 8.30 refuses the
mix). Makefile hint no longer suggests committing the reports.
Transcripts/file-history deliberately NOT path-allowlisted (BDR-057).
2026-07-14 18:07:11 +02:00
Bastien Chanot
5842119d2a
added audit folder
2026-07-14 17:21:00 +02:00
Bastien Chanot
30d6b031b4
chore(memory): BDR-064 + LRN-122 + LRN-123 — ship-feature claude-global-md-rename
2026-07-14 17:06:29 +02:00
Bastien Chanot
e9a38a0268
fix(memory): test covers CLAUDE.global.md guard entry; doctor asserts exact global symlink target
2026-07-14 16:19:29 +02:00
Bastien Chanot
0f23f10767
fix(memory): hook comments and payloads reference the renamed global memory
2026-07-14 04:24:15 +02:00
Bastien Chanot
1534b2202a
docs: slim rules/README to a pointer; README tree lists both memory files
2026-07-14 04:02:47 +02:00
Bastien Chanot
c20ad4763a
feat(memory): guards, doctor stats and doc-commit exclusions follow CLAUDE.global.md
2026-07-14 03:55:25 +02:00
Bastien Chanot
040c88ee40
feat(memory): add project-scope CLAUDE.md; link.sh deploys CLAUDE.global.md
2026-07-13 00:39:19 +02:00
Bastien Chanot
9496538500
feat(memory): rename global memory CLAUDE.md → CLAUDE.global.md (scope header, drop repo-only tail)
2026-07-13 00:39:02 +02:00
Bastien Chanot
a4ee7e1790
docs(spec): CLAUDE.global.md rename — design + implementation plan
2026-07-13 00:06:21 +02:00
Bastien Chanot
b7106761b0
Merge feature/seo-nap-guardrails into develop
2026-07-10 18:17:37 +02:00
Bastien Chanot
8614bc5760
feat(seo/geo): projected code-only score + 17/20 trajectory, wired into client-handover
...
- Analyzers (seo/geo): every finding tagged fixable:code|user; mandatory
projected axis+global scores (bundle fully applied), honest code
ceiling, TRAJECTORY TO 17/20 block (ranked code fixes or ceiling +
unlocking user actions)
- /seo: §1 carries actual+projected columns + merged trajectory; console
shows projected scores + trajectory one-liner
- /geo: audit-end deliverables (HUMAN-ACTIONS.md, trajectory in report +
console) even in conservative mode — parity with /seo
- client-handover: fix loop breaks at code ceiling (score ≥ projected−0.2)
instead of burning iterations on user-bound points; STEP 8 gate gains
the code-ceiling pass (gap items land verbatim in client doc §5 with
expected gains, explicit status in score table); §4 NAP table consumes
NAP-KIT.md first; §5 consumes HUMAN-ACTIONS.md first; HANDOVER-ROADMAP
splits CODE-BLOQUÉ vs CLIENT-BLOQUÉ
2026-07-10 18:06:32 +02:00
Bastien Chanot
c6e8adaff3
feat(seo): STEP 0 external-report intake (SORank or equivalent)
...
- Optional gate before agent dispatch: file in .claude/audits/external/
(PDF read directly), pasted PDF content / suggested AI prompt, or skip
- 30-day staleness check; normalized EXTERNAL FINDINGS block in shared
context; both dispatch prompts carry the data-not-instructions rule
(cross-check before bundling, never merge external score into /20 axes)
- Merge side: confirmed findings credited 'Confirmé par <tool>', refuted/
uncovered ones surfaced in §14 divergences; no report → §12 recommends
the free SORank extension; console summary line added
2026-07-10 17:44:50 +02:00
Bastien Chanot
b6bde8f4ee
feat(seo): NAP guardrails + audit-end deliverables
...
- STEP 0 collects user-confirmed CANONICAL NAP (LRN-032 zenquality:
duplicated-seed trap — source majority is not truth)
- Both dispatch prompts carry the canonical NAP + no-majority rule;
seo-analyzer spec forbids directional NAP fix without confirmation
- STEP 2 now emits .claude/audits/HUMAN-ACTIONS.md (checklist from §11)
and NAP-KIT.md (local business) in BOTH modes — audit-only runs leave
the user immediately actionable; /client-handover §4 consumes NAP-KIT
2026-07-10 17:03:53 +02:00
Bastien Chanot
642da0147c
Merge feature/seo-account-mgmt into develop
2026-07-10 12:52:54 +02:00
Bastien Chanot
0cedbc7b3a
chore(memory): LRN-121 shell allowlist validation (grep -Eq fragile → whole-string POSIX case) + seo-account-mgmt journal + contract
2026-07-10 12:48:54 +02:00
Bastien Chanot
887341d7a6
docs(usage): /seo account-management verbs (connect/accounts/forget)
2026-07-10 12:39:22 +02:00
Bastien Chanot
8bf7459566
feat(seo): account-management verbs (connect/accounts/forget) + connect.sh wrapper
...
tokenstore remove/clear, fetch.sh forget dispatch, and a connect.sh wrapper
that sources ~/.claude/.env internally and runs from any project. /seo now
routes connect|accounts|forget before the audit flow; Makefile seo-connect
delegates to the wrapper. Labels are guarded to shell-safe ASCII (POSIX case,
whole-string, C-locale) as defense-in-depth; forget output states local
removal is not a Google-side revocation.
2026-07-10 12:38:32 +02:00
Bastien Chanot
61a98d3ae1
Merge bugfix/seo-connect-env-source into develop
2026-07-10 03:51:57 +02:00
Bastien Chanot
caa5bed189
fix(seo-data): source ~/.claude/.env in make seo-connect so OAuth creds reach connect.py
...
The seo-connect target ran connect.py without sourcing ~/.claude/.env, so
GOOGLE_OAUTH_CLIENT_ID/SECRET (documented to live there) never reached
os.environ — connect.py aborted telling the user to set what they had set.
Mirror fetch.sh's sourcing; add a regression lock.
2026-07-10 03:17:06 +02:00
Bastien Chanot
8a1fac02cd
Merge chore/doc-sync-gsc-crux into develop
2026-07-10 03:10:07 +02:00
Bastien Chanot
e687eae6f9
chore(seo-data): remove transient GSC+CrUX design spec + plan (shipped, documented, capitalized)
2026-07-10 03:05:13 +02:00
Bastien Chanot
504f6f2242
chore(memory): BDR-063 + LRN-119/120 — GSC+CrUX data layer (OAuth token store, fail-open engine contract, SDD merge-base gotcha)
2026-07-10 03:04:17 +02:00
Bastien Chanot
4a15c737d0
docs: README + USAGE + CHANGELOG — GSC+CrUX data layer for /seo FULL
2026-07-10 03:00:14 +02:00
Bastien Chanot
bb1fbb2d45
Merge feature/gsc-crux-data-layer into develop
2026-07-10 02:52:45 +02:00
Bastien Chanot
cbfd89d6ff
docs(seo-data): correct README status enum + doctor/link/queries accuracy
2026-07-10 02:36:33 +02:00
Bastien Chanot
c50d2cc5bb
docs(seo-data): engine usage + security contract README
2026-07-10 02:29:48 +02:00
Bastien Chanot
15962fcd90
feat(seo): wire GSC+CrUX data into /seo FULL (STEP 0 account select, CWV field, GSC perf)
2026-07-10 02:19:57 +02:00
Bastien Chanot
c4bee6aad3
chore(seo-data): install/make/doctor wiring + gitleaks allowlist for token store
2026-07-10 02:10:31 +02:00
Bastien Chanot
7f06533d8b
feat(seo-data): OAuth consent + property discovery + pinned deps
2026-07-10 01:45:33 +02:00
Bastien Chanot
39e227f1c8
fix(seo-data): fail-open CLI contract (corrupt store + bad usage always emit JSON)
2026-07-10 01:42:23 +02:00
Bastien Chanot
c3a504fbbf
feat(seo-data): fetch.sh entrypoint with venv/system fallback and redaction
2026-07-10 01:32:48 +02:00