Commit Graph
672 Commits
Author SHA1 Message Date
Bastien Chanot 960d3f33ea chore(graphify): sync vendored skill 0.9.6 -> 0.9.15
Upstream skill refresh, present in the working tree before this session —
committed here rather than left dangling. Not authored work.

- uv invocation fix: `uv tool run graphifyy python` -> `uv tool run --from
  graphifyy python`. Without --from, uv resolved the command name against
  the package instead of running the interpreter.
- default output is now HTML viz; --obsidian opts into the vault.
- description reworded to trigger on codebase questions generally, not
  only when graphify-out/ already exists.
2026-07-16 14:45:37 +02:00
Bastien Chanot 07ca738b3f fix(settings): Write() deny rules inert — convert to Edit(), close write gaps
Startup emitted 15 warnings: "Write(**/.env) is not matched by file
permission checks — only Edit(path) rules are."

Write(path) rules never matched. The 5 secret-file write bans were dead
config — .env, secrets/**, *.pem, *.key were freely writable. Converting
to Edit() makes them enforced: permissions.md:242 "Edit rules apply to all
built-in tools that edit files", and :244 prescribes exactly this ("add an
Edit deny rule for paths no tool may change").

- settings.json: Write(...) -> Edit(...) on the 5 patterns.
- Mirror the 9 secret patterns Read denied but Edit did not: *.p12, *.pfx,
  id_rsa*, id_ed25519*, .ssh/**, credentials, credentials.json,
  .aws/credentials, .azure/**. Read/Edit parity now 14/14. Claude could
  previously overwrite an SSH private key or ~/.aws/credentials.
- New read-allowed/write-denied class: lockfiles (*.lock,
  package-lock.json, pnpm-lock.yaml, go.sum) + node_modules/**. Reading
  aids diagnosis; hand-editing is always wrong — the package manager
  regenerates them via Bash, which Edit deny does not block.
- templates/settings/SETTINGS.md taught the broken Write() pattern; fixed
  at the source so /onboard stops propagating it.

Rule syntax has no negation and deny beats allow, so deny globs cannot
carry exceptions — see the .env.example conflict noted in the follow-up.
2026-07-16 14:45:26 +02:00
Bastien Chanot 83eba36ac7 chore(memory): journal — v1.1.0 cut + v4.0.0 stale-tag watch-item 2026-07-16 14:06:58 +02:00
Bastien Chanot 21b1e21a2c Merge release/1.1.0 into develop 2026-07-16 13:57:08 +02:00
Bastien Chanot 0543dafa2d chore(release): 1.1.0 — version.txt + CHANGELOG 2026-07-16 13:56:02 +02:00
Bastien Chanot 1b13bac652 Merge feature/close-auto-persist into develop 2026-07-16 13:52:12 +02:00
Bastien Chanot 096418c3e7 feat(capitalize): auto-persist memory to develop on /close + /capitalize (STEP 5C, BDR-068) 2026-07-16 13:51:15 +02:00
Bastien Chanot d36d4d0a58 Merge chore/session-close into develop 2026-07-16 13:42:31 +02:00
Bastien Chanot c41aac6975 chore(memory): LRN-128 LRN-129 EVAL-023 — close ritual 2026-07-16 13:37:43 +02:00
Bastien Chanot fdbe168ad8 chore(memory): BDR-067 — v1.0.0 first public release (versioning reset) + journal + TODO 2026-07-16 13:29:54 +02:00
Bastien Chanot 6c23d6f925 Merge release/1.0.0 into develop 2026-07-16 13:22:29 +02:00
Bastien Chanot b0e2ebc31a chore(release): 1.0.0 — first public release (versioning reset from internal 4.x lineage) 2026-07-16 13:12:10 +02:00
Bastien Chanot 5f159f38d2 Merge bugfix/model-routing-edge-fixes into develop 2026-07-16 12:50:01 +02:00
Bastien Chanot 890e55f789 fix(model-routing): ronde edge fixes — feater applier carve-out, /refactor→sonnet dispatch, /analyze gate, audit-pin guards (F1-F5) 2026-07-16 12:45:07 +02:00
Bastien Chanot d8917bff4c Merge feature/client-handover-dispatch into develop 2026-07-16 12:17:11 +02:00
Bastien Chanot c43f89cede docs(memory): LRN-126 (split severs implicit data paths) + LRN-127 (SDD implementer git-ops discipline) 2026-07-16 12:17:01 +02:00
Bastien Chanot 1947a21237 fix(model-routing): wave-4 review fixes — forward DEPLOY_HINTS + SKIP_SEO in PACKAGE, realign §7/§8 annex numbering (I1/I2/I3) 2026-07-16 12:12:53 +02:00
Bastien Chanot fe1d60fccb chore(model-routing): wave-4 census + docs + BDR-066 (client-handover doc-gen → sonnet) 2026-07-16 11:56:54 +02:00
Bastien Chanot 1dcda2702b feat(model-routing): client-handover MODEL GATE (pipeline orchestrates audits = reflection) 2026-07-16 11:51:57 +02:00
Bastien Chanot 1ec032d2af feat(model-routing): client-handover-writer trimmed to pipeline + delegates doc-gen to sonnet doc-writer
STEP 1-8 preserved byte-for-byte; STEP 9-16 replaced by a doc-gen orchestration
that resolves all interaction (questions, NAP, precheck, overwrite, client-name),
assembles the PACKAGE, and dispatches handover-doc-writer. Dropped the inert
model: opus pin (inherits the big session model via inline-load).
2026-07-16 11:51:10 +02:00
Bastien Chanot a98610f676 feat(model-routing): handover-doc-writer — sonnet gate-free deliverable generator (wave 4) 2026-07-16 11:36:58 +02:00
Bastien Chanot 872225f7d1 docs(model-routing): wave-4 plan (client-handover redaction-only doc-gen dispatch) + TODO 2026-07-16 11:26:42 +02:00
Bastien Chanot e5c7c516d2 Merge feature/model-routing into develop 2026-07-16 11:03:25 +02:00
Bastien Chanot 30f732c08f chore(memory): LRN-125 — no dual-use agent across model tiers (wave-3 lesson) 2026-07-16 11:02:32 +02:00
Bastien Chanot 4294bc2af5 docs(model-routing): USAGE onboard STEP 6 audit → general-purpose (wave-3 consumer sweep, review finding) 2026-07-16 10:41:23 +02:00
Bastien Chanot bed695a6c6 chore(model-routing): wave-3 census + docs + BDR-066 update (bugfix/code-clean split) 2026-07-16 10:34:12 +02:00
Bastien Chanot a7d4df8704 feat(model-routing): /code-clean split — audit+gate inline, code-cleaner = sonnet PHASE-2 executor
code-cleaner is now a pure fix executor (was audit+gate+execute). Reroute the two
read-only-audit consumers (onboard STEP 6, tour Phase B) to a big-model agent
(general-purpose/analyzer) — an audit must stay on the big model, never the sonnet
executor. Refactor now runs on sonnet inside the executor (inline-load pin was inert).
2026-07-16 03:24:51 +02:00
Bastien Chanot 1f7afc1d49 feat(model-routing): /bugfix split — reflection inline, bugfixer = sonnet executor (supersedes BDR-050 bugfix carve-out)
Reroute hotfix's deeper-bug escalation to the /bugfix skill (bugfixer is now a
pure executor, not loadable standalone). loops-light locks repointed to the
bugfix orchestrator + bugfixer-executor shape.
2026-07-15 23:50:34 +02:00
Bastien Chanot 152da63624 docs(model-routing): wave-3 plan (bugfix + code-clean split) + wave-4 stub + TODO 2026-07-15 23:16:52 +02:00
Bastien Chanot 2136953b2a fix(model-routing): commit-changer resolves step→hash refs on apply; edge-case resume notes (release NEED-DECISION, commit-change skip) 2026-07-15 22:05:23 +02:00
Bastien Chanot bc8eede090 chore(model-routing): wave-2 census + docs + BDR-066 update 2026-07-15 21:49:34 +02:00
Bastien Chanot dd7868fc1c fix(model-routing): release-candidate title back to 'orchestrator' to match preserved Overview doctrine 2026-07-15 21:37:23 +02:00
Bastien Chanot da50c38be9 feat(model-routing): /release-candidate dispatches sonnet release-executor, human gates in dispatcher 2026-07-15 21:31:54 +02:00
Bastien Chanot 4217fcfe35 fix(model-routing): keep commit grouping on the sonnet subagent (edit<n> re-dispatches; /feat routes to /commit-change) 2026-07-15 21:24:48 +02:00
Bastien Chanot ab0fafc0ef feat(model-routing): /commit-change dispatch to sonnet commit-changer, gates relocated to dispatcher 2026-07-15 21:09:15 +02:00
Bastien Chanot 29fa962e43 fix(model-routing): /feat Rule 1 downgrade routes to /hotfix skill, not the bare executor agent 2026-07-15 19:46:56 +02:00
Bastien Chanot 45cd86810a feat(model-routing): /hotfix split — reflection inline + gate, hotfixer = sonnet executor (dual-use applier preserved) 2026-07-15 19:28:58 +02:00
Bastien Chanot f36aec370b feat(model-routing): doc/status dispatch their agent (sonnet/haiku pins take effect) 2026-07-15 12:38:12 +02:00
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