LRN-017: thin-dispatcher SKILL.md round-1 invariant = fallback + triggers. LRN-018: darwin eval subagents drift on total math (factor-10, D8 weight). BLK-003: scripts/screenshot.mjs hardcoded macOS path blocks PNG cards on Linux. BDR-015: exclude broken gstack symlinks from /darwin-skill scope. journal: 2026-05-12 session entry. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
12 KiB
12 KiB
| type | schema | rules | |||||||
|---|---|---|---|---|---|---|---|---|---|
| journal |
|
|
Journal
2026-04-23
- Restructured tree:
tasks/→.claude/tasks/, created.claude/memory/(5 registries) +.claude/audits/. - Adapted CLAUDE.md + skills
onboard,init-project+ agentonboarder+lib/project-archetypes/dotfiles-meta.md. - Added CAPITALIZE step in
ship-feature,bugfix,hotfix,feat,commit-change+ created/closeskill for session-end ritual. - 2nd user verify-gate caught bugs:
.gitignorebroke tracking (fixed BDR-003); harden/validate dispatcher bash broken after audit move (LRN-002). - Audits routed to
.claude/audits/(seo/geo/harden/validate/code-clean) +MIGRATION.mdwritten for existing projects. - 9 atomic commits (
c721a36..a9606aa) via/commit-change— first real exec of Phase 4 CAPITALIZE. - Decisions logged: BDR-002, BDR-003. Learnings: LRN-002. Blockers: BLK-002.
- English-only rule enforced in all CAPITALIZE specs (commit
bfcca72); 9 existing entries retrofitted to English in follow-up commit.
2026-04-27
- Settings: switched
permissions.defaultModefrom"default"to"auto"and droppeddisableAutoMode: "disable"(BDR-004); reorganised top-level keys + addedeffortLevel: "xhigh"; removed stale rootTODO.md(already migrated to.claude/tasks/TODO.md). - Learning: Claude Code
disable*settings use sentinel string"disable", not boolean (LRN-003). - 3 atomic commits (
f7f033f..1421578) via/commit-change. - Animation lib autoflow added: new helper
lib/animation-lib-check.sh+ STEP 5e in/init-project(auto-install) + STEP 2.5 in/onboard(opt-in) + read-only detection inplugin-advisorPHASE 1/2/3 + signal inlib/design-gate.md+ scaffolder note.motionchosen over legacyframer-motion(BDR-005, LRN-004).
2026-05-03
- Added
JuliusBrussee/cavemanas 4th always-on plugin (BDR-006). Full install: plugin + standalone hooks + caveman-shrink MCP scaffold (snippet only, not auto-registered — proxy needs upstream wrapper, LRN-006). - Discovered two co-masking bugs:
claude plugin installdoesn't enable (LRN-005) +session-start.shhardcoded "✅ ON: security-guidance rtk superpowers" regardless of actual state. Addedenable_plugin()helper +plugin_enabled()detector readingenabledPluginsfromsettings.json. Banner now reflects reality. - Side fix: doctor.sh exited under
set -euo pipefailwhen gstack/skills/ missing — wrapped find in brace +|| true. - 3 atomic commits (
0184818..2ec7935).
2026-05-04
- Built skill profile system (BDR-007):
lib/profile.sh+lib/profiles/{design,dev,qa,audit,minimal}.profilepartition gstack + personal skills by purpose. Activation toggles symlinksskills/↔skills-disabled/. - Wired into
agents/plugin-advisor.md(DETECT call toprofile.sh current+ newPROFILEline in OUTPUT + new "Skill profiles" subsection in TOGGLING EXTERNAL TOOLS),lib/toggle-external.sh(header pointer),Makefile(4 targets),skills/profile/SKILL.md(/profileslash command). cmd_currenthonestly reports "full" when nogstack__*entry exists inskills-disabled/— avoids "100% match" trap when full gstack on.- Tested end-to-end: list/show/current/diff/set/reset/apply all green; shellcheck clean; symlink state restored after reset.
- Profile system v2 (BDR-008): extended
profile.shto toggle Claude plugins (claude plugin enable|disable) + MCP servers (magicvialib/toggle-external.sh). Added 4 new profiles:web,seo,web-full,backend. Refined existing profiles to useplugin@<marketplace>syntax +clientries. Always-on plugins protected byMANAGED_PLUGINSallowlist +PROTECTED_PLUGINSdenylist. - Verified:
set webenables ui-ux-pro-max + magic;set seodisables ui-ux-pro-max;set minimaldisables ui-ux-pro-max but spares caveman/security-guidance/superpowers.currentheuristic respects ties (web-full beats web at 100%).
2026-05-05
- Mandated caveman format on all
.claude/memory/*.mdwrites (BDR-009). Rule added to CLAUDE.md "Memory registries" section. Self-applied: CLAUDE.md prose compressed in same pass. - Compressed 5 existing registries via
/caveman:compress(decisions, learnings, blockers, journal, evals) — ~40% input-token reduction per session-start load. - Side chores: disabled
example-skills@anthropic-agent-skillsplugin in settings.json; gitignored*.original.mdcompress backups (recoverable via git history). - 4 atomic commits (
0275eed..639486a) via/commit-change.
2026-05-06
- darwin-skill round 1 across 18 personal skills. Mean 83.4 → 88.7 (+5.3). 16 keeps, 2 reverts (code-clean, doc — D2 dry_run noise). Branch
auto-optimize/skills-20260506-1730. 22 commits, 35 files changed. - Top gains (analyze +18.5, skills-perso +11.9, refactor +11.0, hotfix +9.0) all from same shape: edge-case table in agent file. Captured as LRN-008.
- LRN-009: dry_run ratchet too strict for skills already >91; LRN-010:
~/.claude/skills,agentssymlink to Documents/claude — git operations must run from there. - Audit report
.claude/audits/DARWIN-SKILL-OPTIMIZATION.md. Eval log~/.agents/skills/darwin-skill/results.tsv(38 rows). Branch awaits manual review before merge.
2026-05-07
- /client-handover gates SEO classique + GEO (IA) independently at ≥17/20 (BDR-010). Was: combined display only, gate fired on SEO alone. Now: 4-axis gate (SEO, GEO, HARDEN, VALIDATE), axis-aware fix loop, per-axis override transparency.
- Pattern captured as LRN-011: single subagent emits N gated scores → labeled extraction + axis-aware loop + per-axis escalation. Generalizes to future multi-metric audits (e.g. /harden split TLS/headers/redirects).
- 1 atomic commit
5569a80(feat(client-handover): split SEO + GEO scores, gate GEO at ≥17/20). Bash unit testedextract_score_labeledon 4 cases (new format, /100 normalize, legacy fallback, GEO UNKNOWN strict) — all OK. - /client-handover deliverable refactor (BDR-011): 4-chapter structure (brief+pourquoi / fait ≤300w sans jargon / actions client / détails techniques) + branded HTML+PDF via ZenQuality identity (greens
#1A3A25/#2D5A3D/#4A7C59/#87A878, Inter+Playfair Display, cover page logo+tagline). Cascade renderer: MD→HTML (pandoc>python markdown>npx marked) then HTML→PDF (weasyprint>wkhtmltopdf>chromium). - STEP 15 hard gates: chapter 2 word count ≤300 (
wc -w) + forbidden-token grep (no/seo,/harden,/validate,SEO.md,SCORE_*etc. in chapters 1–3). Chapter 4 may use them in glossary. - LRN-012 captured: bash heredoc + stdin pipe collision (
printf | python3 - <<'PY' ... PY) silently drops piped data — heredoc wins stdin. Diagnose viabash -x. Fix: pass via env var or file path, never via stdin combined with heredoc. Hit during v1handover-to-pdf.sh, fixed before commit. - 1 atomic commit
e06b52a(feat(client-handover): 4-chapter doc structure + branded HTML/PDF rendering). End-to-end tested with synthetic boulangerie handover (179w chapter 2, no leaks, HTML 11KB + PDF 33KB via weasyprint).
2026-05-07 — /client-handover PDF rendering bugfix
- Fixed 3 bugs in
/client-handoverPDF generation reported onLIVRAISON.pdftest render. - Bug 1 (critical): MD→HTML converter chain — host had no pandoc, no python-markdown, fell to
npx marked < "$src"which dumped marked CLI's owncli.jssource instead of converting (marked 16.x stdin regression). PDF was 2 pages of marked binary source. Fix:npx --yes marked --gfm -i "$src". → LRN-013. - Bug 2: cover bg was cream
#F5F0EBwith 8mm green stripe — washed out. Final state after iteration:--white-purebg + subtle radial sage/forest tints +--black-deeptext +--green-forestaccents (eyebrow/meta labels/footer/border). Solid green-dark tried first then rejected (too heavy for long client doc). → BDR-012. - Bug 3: SVG logo
logo-horizontal.svgblended into cream bg. DefaultLOGO_URLswitched tohttps://zenquality.fr/assets/logo-horizontal-1024.png(URL provided by user). High contrast on white bg. - Verified: regenerated
LIVRAISON.pdf→ 164 KB, 19 pages, full content rendered, white cover with black title + green-forest accents + visible PNG logo. - Files touched:
skills/client-handover/scripts/handover-to-pdf.sh,skills/client-handover/resources/branding/zenquality.css,agents/client-handover-writer.md.
2026-05-11
- Personal-skills orchestrator audit via
/darwin-skill. 18 skills classified: 5 true orchestrators (ship-feature, seo, init-project, onboard, client-handover) + 12 single-delegation (justified — 6 agents reused multi-place) + 1 self-contained (skills-perso). All orchestrators verified doing real multi-agent dispatch. client-handoverpattern is skill→1 agent→subagents (3-level indirection) vs other 4 orchestrators' skill→multi-agent (2-level). Justified by agent complexity (1703 lines) — moving orchestration into SKILL.md would bloat. Description updated to make orchestrator role explicit./seo,/harden,/validateexecution verified inside client-handover-writer agent — dispatches general-purpose subagents reading the target skill files. Real parallelization, not sequential.- Description CSO fix per
/writing-skills: 5 skills had frontmatter >1024 chars (client-handover 1920, doc 1390, seo 1378, geo 1189, validate 1050) — all compressed under spec. 3 orchestrators (ship-feature, init-project, onboard) had workflow-summary descriptions (shortcut risk) — rewritten to "Use when [triggers]…" pattern. Captured as BDR-014. - client-handover deliverable restructured 4→6 chapters (BDR-013 supersedes BDR-011): scores promoted to §2 for 30s visual-proof-of-impact, NAP table promoted to §4 as prerequisite before §5 todos. Pandoc bumped to
gfm+gfm_auto_identifiersfor internal anchor links (LRN-014). - NAP checklist polish (commit
abd2612): added "Description courte" field + replaced retired BrightLocal Free Tools with Moz Local Citation Checker (LRN-015). - CSS bugfix (commit
465fe9e): pandoc GFM checkbox markup<li><input ...> text…</li>has no wrapper class, adjacent-sibling ruleli input + *yanks<a>/<code>siblings out of flow. Fixed by targetingli > input[type="checkbox"]directly. Captured as LRN-016. - 4 atomic commits
b15b275..1da6a31via/commit-change. Decisions BDR-013, BDR-014 + learnings LRN-014, LRN-015, LRN-016 capitalized. Pre-existing BDR-012 + LRN-013 Index rows backfilled (prior session entries existed in body but missing from Index).
2026-05-12
- Ran
/darwin-skillfull pipeline on cwd repo (real skill source, not~/.claude/skills/runtime mirror). Baseline scored 23 personal skills + 5 broken gstack symlinks excluded. Avg baseline 75.6. - Phase 2 round 1 on bottom 5: status 45.3→76.2 (+30.9), refactor 48.4→74.3 (+25.9), plugin-check 59.2→76.8 (+17.6), skills-perso 66.4→80.1 (+13.7), commit-change 69.6→83.5 (+13.9). All KEEP. Avg 58.0→78.2 (+20.2/skill).
- Rounds 2-3 skipped — diminishing returns past round 1 on dispatcher pattern. graphify (29.0, 62KB SKILL.md) deferred to Phase 2.5 exploratory rewrite per user.
- Pattern observed: thin-dispatcher round-1 invariant = fallback + frontmatter triggers. Replicable across the 4 dispatchers tested. Captured as LRN-017.
- Methodology gotcha: darwin eval subagents drift on total math (factor-10 errors, D8 weight 7 vs 25). Direction reliable, magnitude noisy. Captured as LRN-018. Recompute totals in main thread going forward.
- BDR-015: broken gstack symlinks (5 dirs) excluded from darwin scope — external ownership + missing targets.
- BLK-003:
scripts/screenshot.mjshardcoded macOS path → PNG cards skipped on Linux. Markdown report + 5 new test-prompts.json + 5 optimized SKILL.md only. Upstream issue, workaround in place. - Branch
auto-optimize/20260512-1319merged via--no-ffto master. 6 commits land. Report at.claude/audits/DARWIN-SKILL-2026-05-12.md. results.tsv at~/.agents/skills/darwin-skill/results.tsv(33 rows). - Pre-existing uncommitted
agents/doc-syncer.md(mtime 15:33, before session) NOT touched — left for the work session that owns it.