You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Bump skills-vendor pin: init-socraticode's #115 policy split is not yet vendored #41
skills-vendor/gregoryfoster-skills is pinned at 3fc7b71; upstream main is c3f40f7.
#35 brought this repo's ## Code Exploration Policy block onto the shape init-socraticode adopted in gregoryfoster/skills#115 (upstream commit 9125148) — Variant A in AGENTS.md, the full reference in docs/SOCRATICODE.md, and repo-authored content rescued into ## Code Exploration Notes (repo-specific) outside the marker pair. That saved 489 tokens on a section curating-context is contractually forbidden to touch.
The vendored skill does not know about any of it. Verified against the pin:
vendored 3fc7b71
upstream 9125148
mentions docs/SOCRATICODE.md
0
yes
tool-table rows in the block
8
3
step 1a (rescue repo-authored content)
absent
present
So an init-socraticode re-run today would:
take the marker-pair branch and restore the pre-split eight-row block into AGENTS.md, reverting the saving and pushing the file back toward budget;
never write or overwrite docs/SOCRATICODE.md, leaving it an orphan duplicating content that just came back inline.
## Code Exploration Notes (repo-specific) is safe either way — the old sweep targets only ## Code Exploration Policy, and the rescue heading is deliberately different.
Ask
Bump the submodule and re-run init-socraticode, reviewing its rescue report. Deliberately not bundled into #35: that PR is a documentation curation, and a pin bump pulls in #115 plus unrelated upstream work (#107 graph-yield gating, #141 self-budget gate, #144 batch clearance) that deserves its own review.
Noted in docs/SOCRATICODE.md's header so anyone re-running before the bump knows what they will get.
Raised as CR round-2 finding #8 on the #35 branch.
The pin bump came from #39's hook, not by hand — registering the SessionStart entry made the refresh hook fire on main, and its own auto-commit (36326c4) moved skills-vendor/gregoryfoster-skills3fc7b71 → 2e1cf28. Upstream main had moved past the c3f40f7 quoted here; the bump is 153 commits. obra-superpowers came along to v6.3.0.
Rescue report: nothing moved
The destructive re-run predicted here does not materialize, and the reason is the one this issue identified as the safe case. #35 had already landed the marker pair, so Phase 3 takes the replace-between-markers branch — and ## Code Exploration Notes (repo-specific) sits outside that pair, so it was never inside the replaced span. The whole-span replace only exists on the unmarked branch.
The re-run against the new skill also writes docs/SOCRATICODE.md rather than orphaning it, so both failure modes listed here are closed.
What actually changed
Artifact
Change
AGENTS.md policy block
stays variant A (yield gate: ok); one line changed — the prefetch now names .claude/hooks/socraticode-reminder.sh. Block unchanged at 443 tokens, so #35's saving is intact
docs/SOCRATICODE.md
rewritten from the current template; the "requires a pin at or after #115" header this issue asked for is now satisfied and removed
.claude/hooks/socraticode-reminder.sh
new — inline echo moved to the org-standard script file, entry upgraded in place
the v1.2 hold recorded as ended; #22 and skills#100/#99 all closed
The unrelated upstream work this issue flagged as deserving its own review — #107 graph-yield gating, #141 self-budget gate, #144 batch clearance — is reviewed in #43's description.
Verification
preflight green; manifest 21 artifacts, every path resolves
graph yield ok — 172 edges across 73 files (2.36/file), so variant A is correct; 85.1% unresolved is logged as an advisory
settings.json merge idempotent — a second pass is byte-identical
683 tests pass, 99.83% coverage, ruff clean, no dead links or anchors
context artifacts re-indexed after the doc edits, per this repo's own ## Code Exploration Notes rule — codebase_context_search returns the new docs/SKILLS.md text
Filed upstream
gregoryfoster/skills#177. mcp-driver.mjs guards dispatch on path.resolve(argv[1]) === fileURLToPath(import.meta.url), which never matches through a symlink — so invoked at the path SKILL.md documents (skills/init-socraticode/scripts/…, a managing-skills symlink) it exits 0 having printed nothing. Worse, socraticode-health.sh resolves that symlink ahead of the real skills-vendor/ path, so the health hook cannot report on any repo in the cohort — the never-measured green light #107 exists to prevent. Worked around here via SOCRATICODE_DRIVER; documented in docs/SOCRATICODE.md.
Follow-up: two code-review rounds after the close corrected three things in the re-run's output.
The #177 workaround was machine-local.SOCRATICODE_DRIVER sat only in gitignored .claude/settings.local.json, so every other checkout shipped a health hook that resolved the broken skills/ symlink and reported clean without measuring anything. The value is a repo-relative path, so it moved to the committed .claude/settings.jsonenv block — verified reaching spawned processes, with the hook now reporting from committed config alone (docs+test: apply CR round-1 findings (#1-#8) #45).
Repo-authored prose had been added to a generated file. The #177 note went into docs/SOCRATICODE.md, six lines under its own "a re-run overwrites this file wholesale" header — this issue's own concern, one level down. Moved to AGENTS.md → ## Code Exploration Notes (repo-specific), which survives a re-run. The write guard caught the first draft 68 tokens over budget, so the detail went to docs/SKILLS.md and only the rule stayed inline (docs+test: apply CR round-1 findings (#1-#8) #45).
A re-run still reverts three things, including restoring node skills/init-socraticode/scripts/mcp-driver.mjs — the invocation that exits 0 printing nothing. docs/SKILLS.md now carries an after-a-re-run checklist; two of the three items fail a test, and the checklist covers the one that cannot (docs+test: apply CR round-2 findings (#9, #11, #12) #46).
Also filed upstream from this work: skills#177 (driver no-ops through the vendoring symlink, and the health hook resolves that symlink first), skills#179 (copy-vs-symlink contradiction), skills#180 (health hook measures ., so a worktree session reports a healthy index as broken).
Shipped: c5698e9, 86ceda6, b393590, c29cbe6 (PRs #43, #45, #46). Context artifacts re-indexed after every doc change, per this repo's own rule.
Activity
#35 docs: apply CR round-2 findings (#8-#11)
gregoryfoster commentedon Aug 15, 2026
Done in #43 (merged as
0257f3c).The pin bump came from #39's hook, not by hand — registering the
SessionStartentry made the refresh hook fire onmain, and its own auto-commit (36326c4) movedskills-vendor/gregoryfoster-skills3fc7b71→2e1cf28. Upstreammainhad moved past thec3f40f7quoted here; the bump is 153 commits.obra-superpowerscame along to v6.3.0.Rescue report: nothing moved
The destructive re-run predicted here does not materialize, and the reason is the one this issue identified as the safe case. #35 had already landed the marker pair, so Phase 3 takes the replace-between-markers branch — and
## Code Exploration Notes (repo-specific)sits outside that pair, so it was never inside the replaced span. The whole-span replace only exists on the unmarked branch.The re-run against the new skill also writes
docs/SOCRATICODE.mdrather than orphaning it, so both failure modes listed here are closed.What actually changed
AGENTS.mdpolicy blockok); one line changed — the prefetch now names.claude/hooks/socraticode-reminder.sh. Block unchanged at 443 tokens, so #35's saving is intactdocs/SOCRATICODE.md.claude/hooks/socraticode-reminder.sh.claude/hooks/socraticode-health.shdocs/SKILLS.mdThe unrelated upstream work this issue flagged as deserving its own review — #107 graph-yield gating, #141 self-budget gate, #144 batch clearance — is reviewed in #43's description.
Verification
settings.jsonmerge idempotent — a second pass is byte-identical## Code Exploration Notesrule —codebase_context_searchreturns the newdocs/SKILLS.mdtextFiled upstream
gregoryfoster/skills#177.
mcp-driver.mjsguards dispatch onpath.resolve(argv[1]) === fileURLToPath(import.meta.url), which never matches through a symlink — so invoked at the path SKILL.md documents (skills/init-socraticode/scripts/…, amanaging-skillssymlink) it exits 0 having printed nothing. Worse,socraticode-health.shresolves that symlink ahead of the realskills-vendor/path, so the health hook cannot report on any repo in the cohort — the never-measured green light #107 exists to prevent. Worked around here viaSOCRATICODE_DRIVER; documented indocs/SOCRATICODE.md.chore: calibrate the context estimator per file
gregoryfoster commentedon Aug 16, 2026
Follow-up: two code-review rounds after the close corrected three things in the re-run's output.
#177workaround was machine-local.SOCRATICODE_DRIVERsat only in gitignored.claude/settings.local.json, so every other checkout shipped a health hook that resolved the brokenskills/symlink and reported clean without measuring anything. The value is a repo-relative path, so it moved to the committed.claude/settings.jsonenvblock — verified reaching spawned processes, with the hook now reporting from committed config alone (docs+test: apply CR round-1 findings (#1-#8) #45).#177note went intodocs/SOCRATICODE.md, six lines under its own "a re-run overwrites this file wholesale" header — this issue's own concern, one level down. Moved toAGENTS.md→## Code Exploration Notes (repo-specific), which survives a re-run. The write guard caught the first draft 68 tokens over budget, so the detail went todocs/SKILLS.mdand only the rule stayed inline (docs+test: apply CR round-1 findings (#1-#8) #45).node skills/init-socraticode/scripts/mcp-driver.mjs— the invocation that exits 0 printing nothing.docs/SKILLS.mdnow carries an after-a-re-run checklist; two of the three items fail a test, and the checklist covers the one that cannot (docs+test: apply CR round-2 findings (#9, #11, #12) #46).Also filed upstream from this work: skills#177 (driver no-ops through the vendoring symlink, and the health hook resolves that symlink first), skills#179 (copy-vs-symlink contradiction), skills#180 (health hook measures
., so a worktree session reports a healthy index as broken).Shipped:
c5698e9,86ceda6,b393590,c29cbe6(PRs #43, #45, #46). Context artifacts re-indexed after every doc change, per this repo's own rule.