Commit Graph
152 Commits
Author SHA1 Message Date
Bastien Chanot c34ac99882 chore(memory): job8 C — darwin-skill reinstalled full pinned tree, detached HEAD
BDR-058 + LRN-109. Root cause of the "referenced files absent" finding:
the skills CLI's skillPath only fetches SKILL.md, never sibling
references/scripts/templates dirs. Upstream HEAD matched the already-
recorded lockfile hash exactly (no drift, no tamper) — reinstalled the
full tree at that pinned SHA, detached HEAD so nothing can silently
advance. Reinstall happened outside this repo (~/.agents); this commit
is the only repo-side record. Backup of the old single-file dir kept.
2026-07-07 23:47:07 +02:00
Bastien Chanot eade4e603e job7 capitalize: BDR-057, BDR-026 update, LRN-108, journal
BDR-057: secrets by reference not by value; redact at capture, not just at
rest. Documents the two-part job7 posture (MCP ${VAR} expansion + rtk-rewrite
env-dump redaction) and flags the unreconciled contradiction with job6's
same-day (wrong) finding that ${VAR} expansion was unsupported at user scope.

BDR-026 updated: the backup-vector incident (2026-07-02) is closed at the
source rather than by repeated scrubbing — every native auto-backup taken
while the live file held the plaintext value was a fresh leak, so scrubbing
existing backups alone would have recurred forever.

LRN-108: `claude mcp add --env KEY=value` writes the value literally —
double- vs single-quoting around `${VAR}` is the entire difference between
a reference and a plaintext-forever config. The natural way to type the
flag (bash-expand it first) is exactly the trap.

Also refreshed .audit/scan-secrets-claude-home.json to the post-purge state
(15 residual hits, down from 18 pre-D).
2026-07-07 12:58:51 +02:00
Bastien Chanot 563fbd5422 job6: capitalize — BDR-056, LRN-107, EVAL-020, journal
BDR-056: deps policy reversal — latest gated by integration, not
KEEP-PINNED by default (job6-batch-3 override, gstack #1911 case).
LRN-107: read-only subagent mandates must ban copying secret VALUES,
not just mutations (job6's own MAGIC_API_KEY scratch-copy incident).
EVAL-020: job6 execution quality — 2 real STOP gates hit and resolved
live (graphifyy hook rewrite declined, gsd-pi format break patched).
2026-07-07 04:07:07 +02:00
Bastien Chanot 0e18116ae3 job5: BDR-055 — pending verbs removal, J4-17 closed MOOT 2026-07-07 00:57:07 +02:00
Bastien Chanot bb5fb0cf5c job4: capitalize execution — EVAL-019 + LRN-106 + journal
EVAL-019: job4 test-gap audit + execution summary (11 specs, 5 fixes/
seams, every mutation red-green verified, zero residual, /tmp-exhaustion
incident + recovery, SPEC-06 checkpoint honesty, J4-22 caller-census
flag).

LRN-106: fixing B1 in one file != closing the B1 pattern. job3-B1
froze a fixture + repointed run-reconcile.sh's T2 off the live
registry, declared unblocked, 20/20 green — job4's very next audit
pass found T3/T5 in the SAME FILE still reading the live registry,
same fragility, untouched siblings. Now actually closed (SPEC-10).

journal: 2026-07-06 (cont. 2) entry.
2026-07-06 21:59:58 +02:00
Bastien Chanot 64f2e59a36 job3: capitalize B1 resolution — journal follow-up (sentinel authorized, suite 20/20) 2026-07-06 17:36:33 +02:00
Bastien Chanot 2028023359 job3: capitalize execution — EVAL-018 + LRN-105 + journal close
EVAL-018: job3 shipped, 46/46 findings verified, 20/23 fixes applied
(B1 blocked on sentinel scope, D2-D5+B6 skipped by decision), zero
residual on final re-sweep. LRN-105: explorer subagents need an
explicit ban on executing the subject-under-test's own CLI, not just
"read-only" framing (caught mid-run: a subagent ran `graphify .`).
2026-07-06 17:19:53 +02:00
Bastien Chanot d43d8131e5 job3: D6+D7+D9 supersede BDR-038 (BDR-054) + banner historical deploy docs
BDR-038 recorded NEXT.sh file + AskUserQuestion hand-back as the /deploy
design; 52f6678 removed both (LRN-102: pre-tool-call text may never render)
with no superseding decision. BDR-054 regularizes it. One-line banners on
docs/plans/2026-06-27-deploy-skill.md and docs/specs/2026-06-27-deploy-skill-design.md
point to the shipped behavior; historical body left untouched.
2026-07-06 16:50:17 +02:00
Bastien Chanot e737f41355 job2 tail: capitalize BDR-053 (ctx7 single surface) + journal close 2026-07-06 12:40:46 +02:00
Bastien Chanot 2ea21c25ba job2: capitalize execution — LRN-104 (oracle contract + no-runner) + journal 2026-07-06 12:34:03 +02:00
Bastien Chanot 0e7f171405 job2: capitalize — journal 2026-07-06 + EVAL-017 (audit shipped, verify-pass anomalies) 2026-07-06 12:09:30 +02:00
Bastien Chanot 98761fc1d0 job1: capitalize LRN-103 — BLK-009 doc was stale, paths: works at both levels 2026-07-06 02:48:16 +02:00
Bastien Chanot d1e74238d3 job1: close BLK-009 2026-07-06 02:48:16 +02:00
Bastien Chanot adf64dfd9d chore(memory): LRN-102 — deliverable text before a tool call may never render + journal 2026-07-05 20:19:13 +02:00
Bastien Chanot 7d566da776 chore(memory): EVAL-016 /deploy first real run + journal — tour→prod closed, skill UX patch 2026-07-05 15:32:16 +02:00
Bastien Chanot 16037acefd chore(memory): BDR-052 branch-as-gate + LRN-099/100 + EVAL-014 + journal — /tour TDD capitalized 2026-07-05 12:53:08 +02:00
Bastien ChanotandClaude Opus 4.8 599d7ddadb chore(memory): LRN-097 blog-pattern-vs-real-feature + journal 2026-07-04
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01XpphkdTosUzokBDNG7PToS
2026-07-04 13:48:46 +02:00
Bastien ChanotandClaude Opus 4.8 b99ace29c0 chore(memory): BDR-051 enrich-at-gate + LRN-096 flip-test-guards + journal lot 5 (chantier complete)
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01XpphkdTosUzokBDNG7PToS
2026-07-04 04:52:55 +02:00
Bastien ChanotandClaude Opus 4.8 65edf8c1ba chore(memory): BDR-050 universal pipeline + LRN-095 orthogonal gates + journal lot 4
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01XpphkdTosUzokBDNG7PToS
2026-07-04 04:38:45 +02:00
Bastien Chanot 5aa4216409 Merge branch 'feature/security-auditor' into feature/verify-loops
# Conflicts:
#	.claude/memory/journal.md
2026-07-03 20:35:07 +02:00
Bastien Chanot 324bb7b4b1 Merge branch 'feature/contract-verifier' into feature/verify-loops
# Conflicts:
#	.claude/memory/decisions.md
#	.claude/memory/journal.md
#	.claude/memory/learnings.md
2026-07-03 20:34:00 +02:00
Bastien ChanotandClaude Opus 4.8 938a908857 chore(memory): journal lot 3 — security-auditor shipped; LRN-094/BDR-048-addendum deferred to integration
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01XpphkdTosUzokBDNG7PToS
2026-07-03 19:52:47 +02:00
Bastien ChanotandClaude Opus 4.8 d682705f34 chore(memory): BDR-049 verifier doctrine + LRN-093 vacuous grep lock + journal 2026-07-03
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01XpphkdTosUzokBDNG7PToS
2026-07-03 18:53:54 +02:00
Bastien ChanotandClaude Opus 4.8 c6a7c1f7d9 chore(memory): BDR-048 pinned-gate doctrine + LRN-092 SAST smoke-test + journal 2026-07-03
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01XpphkdTosUzokBDNG7PToS
2026-07-03 18:40:07 +02:00
Bastien ChanotandClaude Opus 4.8 dfb79e7a88 chore(memory): LRN-091 banner-blindness (corrob LRN-047) + journal 2026-07-03
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01XpphkdTosUzokBDNG7PToS
2026-07-03 15:52:37 +02:00
Bastien ChanotandClaude Opus 4.8 415cde5f56 chore(memory): BDR-047 corrob (Opus 4.8 re-audit) + LRN-090 + journal 2026-07-03
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01XpphkdTosUzokBDNG7PToS
2026-07-03 15:29:20 +02:00
Bastien ChanotandClaude Opus 4.8 4e7f6b0951 chore(memory): BLK-015 + LRN-089 + LRN-047 corrob + journal 2026-07-03
gitflow_finish arg-guard bugfix + 3 doctor false-warns. BLK-015 (finish
ignored args → merged current branch), LRN-089 (pass-through wrapper
deriving target from ambient state = silent contract violation), LRN-047
corroborated (doctor false-warns), TODO items closed.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01XpphkdTosUzokBDNG7PToS
2026-07-03 14:03:12 +02:00
Bastien ChanotandClaude Fable 5 85a5f4b53d chore(memory): LRN-087 + LRN-088 + LRN-077 corrob + BDR-026 incident + journal 2026-07-02
Audit session capitalization: presence-flag ≠ capability (rtk),
token verbosity-beats-cardinality, T6c transient-state green,
copies-of-secrets incident (magic key rotated).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016zA3Qh2Q1QpcGXzXxKeDHR
2026-07-02 14:38:57 +02:00
Bastien ChanotandClaude Opus 4.8 f5961cb8d6 chore(memory): LRN-086 — external-tool skill provenance + gitignore/regen rule
ctx7 setup --claude --cli materializes find-docs (skill, symlinked into repo)
+ rules/context7.md (global, user-editable). login != setup. Rule: prove
provenance by mtime not repo grep; gitignore tool-generated skill + regen via
install-step; guard regen on absence when tool co-writes editable config.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01C8bmCXTHNccS7KRV4gWXEF
2026-07-02 13:22:59 +02:00
Bastien Chanot d2df514126 chore(memory): BDR-047 — ECC audit → zero import, config ahead of reference 2026-07-01 22:52:06 +02:00
Bastien ChanotandClaude Opus 4.8 90dc7d854d chore(memory): capitalize reconcile session + (a) npm-guard fix
Session capture for the /reconcile pass + the BLK-013 fix-forward build:

- journal 2026-07-01: reconcile real-state (1 actionable / 3 upstream /
  3 deferred / release live), (c) TODO drift, (a) npm guard built.
- BLK-013: append Update — fix-forward now BUILT (1f2c1cc); was
  "script hardening NOT built". Now fully resolved (env + script).
- BLK-014 + BDR-046: append Update — MERGED 2393ca5, supersedes the
  stale "pending merge". Records that BDR-046 already settled the
  "canal d'install" question (native installer, no `elif npm` branch).

Append-only (Update blocks, last-block-wins) — no past entry rewritten;
verified reconcile_blk_open now returns only the true upstream trio.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VeBXkDr74N9whdiJyjzyVN
2026-07-01 21:18:16 +02:00
Bastien ChanotandClaude 020737de57 chore(memory): BDR-046 — Claude Code via official native installer, drop npm
Co-Authored-By: Claude <noreply@anthropic.com>
2026-07-01 20:14:56 +02:00
Bastien ChanotandClaude 01f9ebb57b chore(memory): BLK-014 + LRN-085 — install.sh idempotent claude install/update
Co-Authored-By: Claude <noreply@anthropic.com>
2026-07-01 16:10:59 +02:00
Bastien ChanotandClaude Opus 4.8 8f001ec868 chore(memory): BDR-045 + LRN-084 + LRN-034 corrob — capitalize gitflow aiguillage-standalone
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01RNaYKPEkjH1jbgoX1TwKMX
2026-07-01 14:04:15 +02:00
Bastien ChanotandClaude Opus 4.8 53bd7beee8 chore(memory): BDR-044 + LRN-083 + auto-skill-dispatch won't-build — capitalize
BDR-044: auto-skill-dispatch chantier retired won't-build — 3rd measured moot
of the session (after --help, darwin re-baseline). Cartography showed L1
(superpowers "1%->MUST invoke") already over-determines routing -> reframed
from "does it route" (yes) to DISCERNMENT; risk inverted under->over. Measured
in real fresh sessions (8 prompts/3 classes): clear->route, ambiguous->ask,
trivial->abstain — model discriminates, no over-routing. Adding L2 prose =
phantom value + degradation risk. LRN-083: subagents are an invalid instrument
for measuring main-loop spontaneous routing (SUBAGENT-STOP + delegated framing
pin to the no-route floor) — retired the 0/6 subagent RED. LRN-080 corroborated
(3-in-a-row). TODO -> won't-build. Claude composed all -> trailers (4th
application of LRN-081).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_017KWG7sXg94LXX1gddCGBvM
2026-06-30 20:04:30 +02:00
Bastien ChanotandClaude Opus 4.8 efe33b76c5 chore(memory): LRN-081 correction — helper is trailer-agnostic
Append-only correction bullet to LRN-081: memory-commit.sh does NOT append
trailers (git commit -m verbatim, memory-commit.sh:86, no hook/template);
trailers are model-composed message content; control point = the MESSAGE, not
the helper. Proven by 532ae69 (bare msg → no trailers) → c09f2b2 (amended).
Phrasing cleanup of the false wording (body + Index cell) deferred to
/prune-memory. Claude-composed → trailers (LRN-081 rule, 3rd application).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_017KWG7sXg94LXX1gddCGBvM
2026-06-30 18:43:54 +02:00
Bastien ChanotandClaude Opus 4.8 c09f2b2630 chore(memory): LRN-082 + TODO(b) moot — capitalize
LRN-082: a trigger-cleared on a multi-motif exclusion lifts only the named
motif. BDR-043 cleared BDR-015's broken-symlink ground (a) but not its
external-ownership ground (b) → the darwin re-baseline is phantom value
(would edit the gstack submodule, LRN-070; results.tsv gone anyway). TODO (b)
resolved-MOOT (not done, not open). Trailers present: Claude composed LRN-082
+ the moot note — LRN-081's own rule, 2nd application.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_017KWG7sXg94LXX1gddCGBvM
2026-06-30 18:38:50 +02:00
Bastien ChanotandClaude Opus 4.8 5d348a711f chore(memory): LRN-081 + TODO reconcile — close ritual
LRN-081: Claude commit trailers only on Claude-COMPOSED content; a commit merely staging user-authored text gets none (staging != authorship). TODO reconcile: checked L26 'Cleanup machine courante' DONE (make plugin EXIT=0 this session ran Step 8.5, fs-verified strays absent); added (a) harden install-plugins.sh Step 1 npm-via-corepack (BLK-013 fix-forward) + (b) darwin re-baseline of the 5 ex-broken skills (BDR-043). Trailers present here because Claude composed the LRN + TODO formulations (LRN-081's own rule) — unlike e591510 which staged raw user text.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01C6bUdvHnajCNzgVQefZowj
2026-06-30 18:08:12 +02:00
Bastien ChanotandClaude Opus 4.8 437697e961 chore(memory): EVAL-013 — /reconcile real-usage value proven (usage vs build)
Capitalize the /reconcile dogfood on fresh live drift. Distinct from EVAL-011
(BUILD: fixture RED/GREEN + self-dogfood) — EVAL-013 = USAGE on real repo,
proving 2 things the build eval did not: (a) finds UNANTICIPATED gaps (3 stale
[branch …] headers = header-marker drift class beyond checkbox drift), (b) rejects
a FALSE POSITIVE off-fixture (--help candidate, both WON'T-BUILD → aligned).
'this run' wording kept — value proven, not zero-false-positive guaranteed
(consistent with the skill's engraved honest-limits). action keep.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_017KWG7sXg94LXX1gddCGBvM
2026-06-30 17:49:01 +02:00
Bastien ChanotandClaude Opus 4.8 5b03ac28a2 chore(memory): BLK-013 + BDR-043 — capitalize (make-plugin npm blocker + BDR-015 darwin re-baseline requalif)
Capitalized from 2 code vérifs (subagents, no-memory) + the make plugin fix:
- BLK-013: make plugin Error 127 — apt `nodejs` ships node WITHOUT npm; Step 1
  checks node>=22 but never npm. Fixed via corepack (npm 11.18.0 → ~/.local/bin,
  prefix ~/.local), EXIT=0, Step 4 ✓, Step 8.5 stray-dir residual cleanup
  (BDR-030/LRN-042) finally ran. Fix-forward: Step 1 should guarantee npm via
  corepack on apt-nodejs hosts.
- BDR-043: BDR-015 trigger cleared — its 5 broken gstack symlinks repaired
  (0 broken / 83 today, gstack now ships those skills); darwin re-baseline
  UNBLOCKED, NOT run. Kept distinct from BLK-007/f928a53 (iOS episode).
- ③ doc-commit branch-guard requalif DROPPED (already graved BDR-040/TODO:292);
  only the new whitelist-replication nuance logged in journal.

TODO.md planning note left uncommitted (user's WIP, separate scope).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01C6bUdvHnajCNzgVQefZowj
2026-06-30 17:08:06 +02:00
Bastien ChanotandClaude Opus 4.8 c3ba540372 chore(memory): BDR-001 won't-build + LRN-080 + TODO requalify (--help measured non-rentable)
--help chantier ABANDONED after measurement (not built — nothing to build):
- BDR-001 append (won't-build 2026-06-30): behavioral RED, 6 reps (/web-validate
  + /harden, no instruction) → 6/6 already render help AND stop without dispatch;
  residual value = format consistency only → ROI insufficient on a solo repo.
  Original Decision/Why/Rejected intact (append-only); Index status cell updated.
- LRN-080: measure if the model already does X before adding an instruction to
  make it do X — the behavioral RED kills phantom-value additions. Links LRN-075.
- TODO: chantier requalified WON'T-BUILD (3rd state — not done, not open).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01C6bUdvHnajCNzgVQefZowj
2026-06-30 16:27:04 +02:00
Bastien ChanotandClaude Opus 4.8 d1ddb6afdd chore(memory): capitalize /release-candidate — BDR-042 + LRN-078/079 + EVAL-012
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01C6bUdvHnajCNzgVQefZowj
2026-06-30 14:41:12 +02:00
Bastien ChanotandClaude Opus 4.8 6b512be9af chore(memory): capitalize /reconcile — BDR-041 + LRN-075/076/077 + EVAL-011
TODO write-back (chantier /reconcile subtasks ticked, S3 split honestly)
+ registry entries (body + Index rows) for the shipped skill.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01C6bUdvHnajCNzgVQefZowj
2026-06-30 13:42:24 +02:00
Bastien ChanotandClaude Opus 4.8 bdfa9bcbed chore(memory): reconcile TODO + queue /reconcile skill
Reconcile TODO.md against real git/fs state (not conversation memory):
- tick FINISH+PUSH prune-memory (merge 73e12be, develop==origin/develop)
- tick 3x stale [ ] Commit (working tree clean -> shipped)
- tick .gitmodules follow-up (a) (be1dcef); split (b) zenquality (other repo)
- tick doc-sync twin (BDR-036); requalify v2 Stop-hook deferred->REJECTED (BDR-037)
- keep line 26 cleanup-machine deferred (fs-verified: darwin-skill still present)
- flag --help chantier BLOCKED: contradicts BDR-001 (accepted, per-SKILL.md rejected)
Queue /reconcile skill: declared-vs-real reconciler, 4-category output, gated.
journal 2026-06-29 (cont. 4).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01C6bUdvHnajCNzgVQefZowj
2026-06-29 19:59:41 +02:00
Bastien ChanotandClaude Opus 4.8 d7f76fcb45 chore(memory): LRN-073/074 + EVAL-010 — prune-memory chantier close
- LRN-073 — a skill's worked-example must use FICTIONAL ids, never live registry
  ids (they prime real-data behavior). The RED-7 root-cause lesson.
- LRN-074 — system grep/awk may be ugrep/mawk: don't assume flag-parsing, use
  /usr/bin/grep, watch the RED go red. 4th command-assumption miss this session →
  engraved as a recurring pattern-family (alongside fail-silent LRN-066/071).
- EVAL-010 — prune-memory hardening: RED-7 deterministic fix + RED-8 accept +
  34-row backfill; anomalies incl the real-time false-green catch and the near-
  collision with the existing EVAL-009 (caught by reading first).
- journal 2026-06-29 (cont. 3) + TODO chantier section; BLK-011 finish/push marked.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01C6bUdvHnajCNzgVQefZowj
2026-06-29 19:29:15 +02:00
Bastien ChanotandClaude Opus 4.8 80a21d050f chore(memory): backfill 34 missing Index rows + re-sort LRN-021
Pass-D index hygiene (LRN-055): the Index tables had drifted — 34 body entries
present but missing their Index row (decisions 11, learnings 21, blockers 2; evals
clean). All pre-existing, from before the coupled-capitalize machinery (BDR-034)
that keeps new entries indexed. Composed each row from its entry (decisions/blockers:
title/date/status; learnings: heading title as Pattern + condensed future-application
as Applies-to — the 5 awk-missed ones re-read from the body, 4 corrected a nuance the
title alone dropped). Inserted in ID-sorted slots. STEP-4 verify: zero MISSING/ORPHAN.

Also moved one pre-existing out-of-order row: LRN-021 (stranded at the LRN-008/009
boundary) -> its sorted slot between LRN-020 and LRN-022. Index now 100% ID-sorted.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01C6bUdvHnajCNzgVQefZowj
2026-06-29 19:25:42 +02:00
Bastien ChanotandClaude Opus 4.8 52d4a66daa chore(memory): BLK-011 resolved + LRN-072 — fix-by-removal
- BLK-011 → resolved by REMOVAL (not by committing the orphan), with the TRUE
  reason engraved: speculatively auto-bootstrapping an unused multi-session engine
  at project creation is bad on its own terms. The initial "redundant with TODO"
  framing is explicitly marked WRONG (gsd >> roadmap; TODO != gsd ROADMAP) — a
  false reason that won't mislead a future reader. Reasoning trace kept: both
  premises refuted on read, conclusion held for the stronger reason.
- LRN-072 — a stranded-artifact bug can be fixed by NOT creating the artifact
  (negative diff), not by plumbing its commit; before building machinery, ask if
  the PRODUCING step is wanted. Speculative-at-creation -> remove; deliberate-on-
  demand -> keep. Family: BLK-010, BLK-011, BDR-036.
- journal 2026-06-29 (cont. 2) + TODO: BLK-011 line flipped, chantier section,
  MINOR-gate FINISH marked merged. Index rows updated (blockers + learnings).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01C6bUdvHnajCNzgVQefZowj
2026-06-29 18:27:34 +02:00
Bastien ChanotandClaude Opus 4.8 a335591c46 chore(memory): BDR-040 + LRN-071 + journal/TODO — MINOR-gate chantier
- BDR-040 — doc-syncer MINOR-shape oracle: deterministic floor under the LLM's
  MINOR call; engraved limit (structural/size, NOT semantic — reduction of
  RISK-1's gross cases, not elimination); option B (blocking gate) rejected
  (contradicts BDR-036); branch-guard deferred.
- LRN-071 — fail-loud must cover the helper's OWN commit, not just its inputs;
  named as the 3rd occurrence of the swallowed-commit pattern, linked to LRN-066
  + LRN-068/BLK-012; future application = audit every fallible op whose result
  gates a downstream "success".
- journal 2026-06-29 (cont.) + TODO chantier section + line-266 flip to done.
  Index rows added for both BDR-040 and LRN-071.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01C6bUdvHnajCNzgVQefZowj
2026-06-29 17:41:24 +02:00
Bastien Chanot eab4d2db3e chore(memory): BDR-039 (Option-1 protection) + TODO reconcile — gitflow chantier closed 2026-06-29 03:26:47 +02:00
Bastien Chanot 1620e5b9d5 chore(memory): LRN-070 + journal 2026-06-29 — gitflow migration complete (6/6) 2026-06-29 03:18:10 +02:00