Allow superpowers plugin to use project-configured output directories

Resolved 💬 2 comments Opened Mar 26, 2026 by demisx Closed Apr 25, 2026

Summary

The superpowers plugin hardcodes docs/superpowers/plans/ and docs/superpowers/specs/ as output directories for brainstorming specs and implementation plans. It also defaults worktrees to .worktrees/. There is no reliable way to override these paths per-project.

Problem

Projects that keep all Claude-generated artifacts under a single gitignored directory (e.g., .claude/) cannot configure superpowers to respect that convention. The current workaround is adding a CLAUDE.md directive like:

## Superpowers Docs Directory
Plans: .claude/docs/plans/
Specs/designs: .claude/docs/specs/

This works sometimes, but it relies on the LLM reading and respecting a natural-language instruction — it's not a config flag. The skills themselves contain hardcoded paths like:

  • writing-plans/SKILL.md: docs/superpowers/plans/YYYY-MM-DD-<feature-name>.md
  • brainstorming/SKILL.md: docs/superpowers/specs/YYYY-MM-DD-<topic>-design.md
  • using-git-worktrees/SKILL.md: .worktrees/ as default

Proposed Solution

Support a configuration block (in CLAUDE.md frontmatter, a dedicated config file, or plugin settings) that lets projects override default output directories. For example:

superpowers:
  plans_dir: .claude/docs/plans
  specs_dir: .claude/docs/specs
  worktrees_dir: .claude/worktrees

The skills would read these values and use them instead of hardcoded paths.

Use Case

Infrastructure-as-code repo where .claude/ is gitignored and all Claude artifacts (plans, specs, worktrees, skills) live under it. Having superpowers scatter output into docs/superpowers/ and .worktrees/ creates inconsistency and risks accidentally committing generated files.

View original on GitHub ↗

This issue has 2 comments on GitHub. Read the full discussion on GitHub ↗