Repository navigation
Replace the brainstorming override with a vendor symlink and an AGENTS.md preference #62
Copy link
Copy link
Closed
Description
Problem
skills/brainstorming is a committed copy of obra-superpowers/brainstorming, kept only to change one path: upstream's docs/superpowers/specs/ becomes docs/specs/ (docs/SKILLS.md § Overrides). Since the 2026-10-21 submodule bump, .skills/doctor.sh warns that the override has fallen behind:
- Upstream has been rewritten. The override was synced from v6.4.2 (
8ca22db); the vendor is now at v7.0.0+ (b739a8a).SKILL.mdwas rewritten end to end, so re-syncing means reapplying the path change to a new document, not merging a small diff. - The override now hides upstream files. Upstream dropped
spec-document-reviewer-prompt.mdand addedbuilder-check-prompt.md, which v7'sSKILL.mddispatches ("Builder check"). The override still ships the old prompt and doesn't link the new one. Until it's re-synced, our copy runs v6.4.2's process. - The override isn't needed any more. v7's
SKILL.mdsays where the design doc goes (docs/superpowers/specs/YYYY-MM-DD-<topic>-design.md), then: "Your human partner's preferences override both." A stated preference inAGENTS.mddoes what the fork does, and needs no re-sync.
Proposal
- Replace
skills/brainstorming/with a vendor symlink,../skills-vendor/obra-superpowers/skills/brainstorming, like the other 11 superpowers skills..claude/skills/brainstormingalready points at../../skills/brainstorming, so it needs no change. - Add a short
AGENTS.mdsection on brainstorming preferences. At minimum:- Design docs go in
docs/specs/YYYY-MM-DD-<issue>-<slug>.md, notdocs/superpowers/specs/. - Plans go in
docs/plans/, by gregoryfoster'swriting-plans, as now (docs/SKILLS.md:43). - Any other preference the current override or docs/SKILLS.md implies. Check v7's flow, including the builder check, against the spec-first practice here.
- Design docs go in
- docs/SKILLS.md: remove the
brainstormingrow from § Overrides (and the section, if it ends up empty), change line 39's "11 + override" to 12 links, and update theAGENTS.mdDetail Docs line that mentions "the brainstorming override". - Tests and comments that name the override:
tests/test_skills.pykeeps passing.test_skills_are_vendor_links_or_declared_overridesandtest_override_links_resolvethen have no overrides to check. Keep them, so a future override is still held to the rule.tests/test_socraticode_config.py:74's comment callsskills/brainstorming"an upstream copy with one path changed": update it.tests/test_drift.py:115usesskills/brainstormingonly as a non-runtime path. Check that it still reads right.
Out of scope
- Other cohort repos that use the same Observo pattern. Note it as a cross-repo finding (for the operator to route), if useful.
- Changes to upstream superpowers.
Done when
skills/brainstormingis a symlink, andbash .skills/doctor.shno longer reports override drift.AGENTS.mdstates the preferences, and docs/SKILLS.md has no stale override text.- The full suite and ruff pass. No deploy:
skills/,docs/andAGENTS.mdaren't runtime.
Metadata
Metadata
Assignees
Labels
No labels
Activity
gregoryfoster commentedon Oct 21, 2026
Hand-off from the burn-down epic #24, 2026-10-21. This is next, and the last open item before the epic returns to a parking lot (#54). Agent tooling, size S, no deploy. The pre-flight is against
origin/main(18deb3c).The coordinator checked the issue's facts, and they hold:
skills/brainstorming/is a real directory, the only one among the 25skills/entries (the other 24 are links). It holdsSKILL.md,spec-document-reviewer-prompt.md,visual-companion.mdandscripts.b739a8a(v7.0.0-1). Itsbrainstorming/hasbuilder-check-prompt.mdand nospec-document-reviewer-prompt.md.SKILL.md:156-158reads: "Where it goes: in a software repo,docs/superpowers/specs/YYYY-MM-DD-<topic>-design.md, committed. Otherwise, ask. Your human partner's preferences override both." So a stated preference replaces the fork.Two points the issue doesn't cover:
SKILL.md:192says "for software, invoke superpowers:writing-plans and no other skill", where the override (v6.4.2) said plain "writing-plans skill" (skills/brainstorming/SKILL.md:142). Here, superpowers'writing-plansis deliberately not linked, and gregoryfoster's same-named skill wins (docs/SKILLS.md:43). So the AGENTS.md preference must say so: "superpowers:writing-plansmeans this repo'swriting-plans, which writes todocs/plans/." Without that, a brainstorming session either can't find the skill or goes looking for the unlinked one.docs/specs/YYYY-MM-DD-<issue>-<slug>.md. The existing spec (2026-09-29-processor-service-design.md), the override and v7 all end in-design. The coordinator recommendsdocs/specs/YYYY-MM-DD-<issue>-<topic>-design.md: the issue number first, as plans do, and the suffix kept. It's your call, but state it once in AGENTS.md and keep docs/SKILLS.md:43's plan-naming note consistent with it.The change (the issue's steps 1–4, with the two points above):
skills/brainstorming/with a symlink to../skills-vendor/obra-superpowers/skills/brainstorming..claude/skills/brainstormingstays as it is.docs/plans/by this repo'swriting-plans, and point 1. Also check v7's builder check against the spec-first practice here, and say whether it runs as written. The coordinator sees no conflict.test_skills_are_vendor_links_or_declared_overridesandtest_override_links_resolve, so a future override is still held to the rule. Update the comment attests/test_socraticode_config.py:74, and check thattests/test_drift.py:115still reads right.Traps:
.skills/doctor.shmust report clean afterwards. Run it in the worktree, and paste the before (the override-drift warning) and the after.git ls-files -s skills/brainstormingshows mode120000before pushing.SessionStarthook bumps submodules daily onmainand pushes. Pull--ff-onlyright before the merge, so the hook's push and yours don't collide (AGENTS.md § Workflow).Done when:
skills/brainstormingis a symlink, and the doctor is clean;superpowers:writing-plansmapping;mainpush runs.No deploy:
skills/,docs/,tests/andAGENTS.mdaren't runtime.Out of scope: other cohort repos' copies of the same pattern. Note it in the closing comment if useful; the operator routes it.
Ship: issue → branch in a worktree → plan (short) → PR (
Closes #62) → FF merge →git pull --ff-only. The closing comment gives each box with its evidence, the known limits, and the follow-ups (or "none").Kickoff prompt:
gregoryfoster commentedon Oct 22, 2026
Shipped in #63, FF-merged to
mainas0312f7c(2026-10-22T21:14Z). No deploy: nothing that runs changed.Done when:
skills/brainstormingis a symlink, and the doctor is clean.git ls-files -s skills/brainstorminggives120000 c06b06b…, pointing at../skills-vendor/obra-superpowers/skills/brainstorming. Before,bash .skills/doctor.shwarned "an override has fallen behind its vendor … last synced at commit 8ca22db…". After, it prints nothing and exits 0, in both the worktree and this checkout after the pull. The full before output is in #62 Replace the brainstorming override with a vendor link and an AGENTS.md preference #63.superpowers:writing-plansmapping. They're under Development Methodology → Brainstorming:docs/specs/YYYY-MM-DD-<issue>-<topic>-design.md;superpowers:<name>meansskills/<name>, sosuperpowers:writing-plansis gregoryfoster'swriting-plans, writing todocs/plans/(superpowers:using-git-worktreeslikewise);superpowers:writing-plans. Three more mentions the issue didn't list are fixed too:.socraticodeignore,.socraticodecontextartifacts.jsonanddocs/SOCRATICODE.md.tests/test_drift.py:115reads right as it is.mainpush of0312f7c, run 39855558610 passed lint and test.Tests: written red first (
e0f563d).test_superpowers_invocations_resolve_here: asuperpowers:<name>must resolve to askills/link, and AGENTS.md must map it when it isn't superpowers'. It was red onwriting-plansandusing-git-worktrees.Known limit: the new test reads vendor text. If a daily hook bump brings in a superpowers skill that invokes one not linked here, CI on
mainfails. That's deliberate, and it's the same exposure as the existingSKILL.md is_filecheck.Follow-ups: none in this repo. For the operator to route: other cohort repos with the same Observo-pattern brainstorming override can retire it the same way.
gregoryfoster commentedon Oct 22, 2026
Review round 1 shipped in #64, FF-merged to
mainas68bfee1..57fc8a3. CI on themainpush: run 39869123577 passed lint and test. No deploy.38317fb): AGENTS.md Brainstorming now covers v7's "small change" path. A small change that is non-trivial still gets a plan, and every change goes issue → branch → PR.d276d7e):test_superpowers_invocations_resolve_herescans every*.mdin a superpowers skill, not justSKILL.md: 36 references instead of 30, all resolving.57a74cb): the same test fails with the doctor hint on a dangling link. After CR 2, an uninitialised submodule had made it pass on an empty scan. Checked by pointing one link at a missing target.57fc8a3): the worktree pointer reads § Conventions → Workflow.Separately,
68bfee1is the hook's rolled-backgregoryfoster-skillsbump (0c32ebc→b8c54db), pushed by hand ahead of this round.Follow-ups: none.