Merge chore/ctx7-single-surface into develop

This commit is contained in:
Bastien Chanot
2026-07-06 12:40:53 +02:00
4 changed files with 22 additions and 7 deletions
+8
View File
@@ -834,3 +834,11 @@ rules:
- **Rationale**: mid-run gates defeat the skill's point (hands-off grouped sweep, user away). Auto-checking TODO reproduces the exact lie /reconcile catches — RED-proven, baseline did it. Branch+report = same approval semantics as audit-delta's 3c gate, moved after the fact where a headless run can afford it. - **Rationale**: mid-run gates defeat the skill's point (hands-off grouped sweep, user away). Auto-checking TODO reproduces the exact lie /reconcile catches — RED-proven, baseline did it. Branch+report = same approval semantics as audit-delta's 3c gate, moved after the fact where a headless run can afford it.
- **Alternatives rejected**: per-phase AskUserQuestion gates (audit-delta model — blocks headless); one consolidated pre-fix gate (still blocks); auto-edit TODO on oracle proof (inference ≠ approval); plain-branch fallback on non-gitflow repos (violates lib-only doctrine → report-only instead). - **Alternatives rejected**: per-phase AskUserQuestion gates (audit-delta model — blocks headless); one consolidated pre-fix gate (still blocks); auto-edit TODO on oracle proof (inference ≠ approval); plain-branch fallback on non-gitflow repos (violates lib-only doctrine → report-only instead).
- **Reference**: skills/tour/SKILL.md + CLAUDE.md routing (feature/tour-skill `73e6a1c`). TDD trail [[LRN-099]] [[LRN-100]] [[EVAL-014]]. - **Reference**: skills/tour/SKILL.md + CLAUDE.md routing (feature/tour-skill `73e6a1c`). TDD trail [[LRN-099]] [[LRN-100]] [[EVAL-014]].
## BDR-053 — ctx7 single surface: keep find-docs skill, kill context7.md rule
- **Date**: 2026-07-06
- **Decision**: ctx7 gets ONE session surface = `skills/find-docs` (lazy body, description-only cost). `rules/context7.md` deleted + install-plugins.sh STEP ctx7 purges it unconditionally post-setup (`rm -f`, generator has no skip-rule flag — `--claude`/`--cli` = target/mode only). darwin-skill entry dropped from skills-lock.json same pass (F8: lock stale `6bbcda37…` vs disk `c3220018…`, no re-pin verb in npx skills — unpinned rather than hand-edit undocumented hash).
- **Rationale**: rule = ~490 tok/session session-start duplicate of the skill (job1 F10 + job2); skill self-suffices (876-char description carries the triggers, body has full CLI flow). Purge-in-installer beats one-shot rm: survives re-runs + manual `ctx7 setup`.
- **Alternatives rejected**: kill skill keep rule (rule always-on, costs every session even non-lib work; skill lazy — wrong direction); hand-trim generated files (fight the generator, LRN-039 class); hand-edit lock hash (algo undocumented).
- **Reference**: chore/ctx7-single-surface; job1 F10, job2 F8/F13. User decision 2026-07-06.
+2 -1
View File
@@ -338,4 +338,5 @@ rules:
- job2 config-smell audit shipped read-only: `.audit/job2-report.md` — surface skills/agents/hooks/plugins/settings(.local), 17 findings (3 RISK perms, 6 DRIFT, 2 BLOAT, 3 OVERLAP, 2 DEAD, 1 struct), 26 diffs base c6d5e03, 0 decision-conflicts, all fresh-context verified [[EVAL-017]]. Live catch: design hook fired on audit's own task-notifications (14/20 recent fires). - job2 config-smell audit shipped read-only: `.audit/job2-report.md` — surface skills/agents/hooks/plugins/settings(.local), 17 findings (3 RISK perms, 6 DRIFT, 2 BLOAT, 3 OVERLAP, 2 DEAD, 1 struct), 26 diffs base c6d5e03, 0 decision-conflicts, all fresh-context verified [[EVAL-017]]. Live catch: design hook fired on audit's own task-notifications (14/20 recent fires).
- Brief premise corrected: Edit/Bash(hooks/*.sh) permission rule NEVER existed — was config-protection case arm (:37) + job1 sentinel bypasses. Phase-0 UNREFERENCED metrics 100% broken (grep -q kills -l). - Brief premise corrected: Edit/Bash(hooks/*.sh) permission rule NEVER existed — was config-protection case arm (:37) + job1 sentinel bypasses. Phase-0 UNREFERENCED metrics 100% broken (grep -q kills -l).
- User GO full execution incl. 3 RISK: cp/mv→ask, find -exec deny mirror, settings.local prune (python3 -, rtk git *). F9 fable default committed (user re-chose via /model), F16 gitflow-migrate.sh removed (git-recoverable), F8/find-docs skip (generator-owned). Executor = Sonnet subagent on chore/job2-fixes, NO finish. - User GO full execution incl. 3 RISK: cp/mv→ask, find -exec deny mirror, settings.local prune (python3 -, rtk git *). F9 fable default committed (user re-chose via /model), F16 gitflow-migrate.sh removed (git-recoverable), F8/find-docs skip (generator-owned). Executor = Sonnet subagent on chore/job2-fixes, NO finish.
- job2 EXECUTED: 15 commits chore/job2-fixes, all diffs first-try, `make test` wired + first-ever full run ALL GREEN (gitflow 71/0). Measured −309 tok/session (agents 4840→3609 chars); design hook no longer fires on task-notifications. Executor STOP exercised for real: F4 gate red → root-caused to job1 oracle regression (3f639b3), fixed as [[LRN-104]]; 2nd YAML error/file unmasked (onboard/plugin-check) → closed 6a3b197. Skips: F8 (npx skills has no re-pin verb), find-docs (ctx7). Open: F8 route, find-docs/ctx7 (couple job1-F10), merged on user GO. - job2 EXECUTED: 15 commits chore/job2-fixes, all diffs first-try, `make test` wired + first-ever full run ALL GREEN (gitflow 71/0). Measured −309 tok/session (agents 4840→3609 chars); design hook no longer fires on task-notifications. Executor STOP exercised for real: F4 gate red → root-caused to job1 oracle regression (3f639b3), fixed as [[LRN-104]]; 2nd YAML error/file unmasked (onboard/plugin-check) → closed 6a3b197. Skips: F8 (npx skills has no re-pin verb), find-docs (ctx7). Merged develop 964c5dd on user GO.
- job2 tail closed [[BDR-053]]: context7.md rule killed (file rm + installer purge, find-docs = single ctx7 surface, ~−490 tok/session more) + darwin lock entry dropped (F8). chore/ctx7-single-surface → develop, pushed. job1+job2 fully closed; total measured ≈ −800 tok/session.
+6 -2
View File
@@ -611,8 +611,7 @@ if command -v ctx7 &>/dev/null; then
fi fi
# CLI + Skills mode: install the find-docs skill into ~/.claude/skills when # CLI + Skills mode: install the find-docs skill into ~/.claude/skills when
# absent (it is gitignored — ctx7 owns it, this regenerates it on a fresh # absent (it is gitignored — ctx7 owns it, this regenerates it on a fresh
# clone). Guarded on absence so a re-run never clobbers a customized config # clone). Guarded on absence so a re-run never clobbers a customized config.
# (setup also (re)writes ~/.claude/rules/context7.md).
if [ ! -f "$HOME/.claude/skills/find-docs/SKILL.md" ]; then if [ ! -f "$HOME/.claude/skills/find-docs/SKILL.md" ]; then
if ctx7 setup --claude --cli -y </dev/null &>/dev/null; then if ctx7 setup --claude --cli -y </dev/null &>/dev/null; then
ok "ctx7 CLI + Skills configured (find-docs skill installed)" ok "ctx7 CLI + Skills configured (find-docs skill installed)"
@@ -620,6 +619,11 @@ if command -v ctx7 &>/dev/null; then
warn "ctx7 setup failed — run manually: ctx7 setup --claude --cli" warn "ctx7 setup failed — run manually: ctx7 setup --claude --cli"
fi fi
fi fi
# Single ctx7 surface = the find-docs skill (BDR-053). setup also (re)writes
# ~/.claude/rules/context7.md — a session-start duplicate of the skill
# (~490 tok/session, job1 F10). Purge it unconditionally so re-runs and
# manual `ctx7 setup` invocations stay rule-free.
rm -f "$HOME/.claude/rules/context7.md"
info "Standalone usage: ctx7 docs /vercel/next.js \"middleware\"" info "Standalone usage: ctx7 docs /vercel/next.js \"middleware\""
fi fi
+6 -4
View File
@@ -23,9 +23,11 @@ Docs: https://code.claude.com/docs/en/memory.md#path-specific-rules
## Machine-owned files (gitignored, regenerated) ## Machine-owned files (gitignored, regenerated)
- `context7.md` — written by `ctx7 setup --claude --cli` - `context7.md` — DELETED BY DESIGN (BDR-053, 2026-07-06): `ctx7 setup
(install-plugins.sh STEP ctx7). Not vendored: ctx7 owns its content --claude --cli` still writes it, but install-plugins.sh STEP ctx7
and rewrites it on setup; the repo would fight the generator. Same purges it right after — the find-docs skill is the single ctx7
treatment as `skills/find-docs/`. surface; the rule was a ~490 tok/session session-start duplicate
(job1 F10). If it reappears (manual `ctx7 setup`), delete it or
re-run `make plugin`.
Hand-written rules ARE tracked — add them normally. Hand-written rules ARE tracked — add them normally.