SlashForge
Start here

What it does to your machine

Every file SlashForge writes, every command it runs, and the things it will never do without asking.


You are about to let a tool write configuration into your home directory and run git operations in your repo. That deserves a page, not a footnote.

What it writes

PathWhen
~/.claude/setup/slashforge/On install — the guide files that carry the workflow, plus forge-report-shell.html (shared document styling) and forge-open.sh (opens a document in your browser)
~/.claude/commands/slashforge/On install — the four command files, plus SlashForge’s nine discipline skills (brainstorm, plan, worktree, debug, parallel, tdd, verify, request-review, review-feedback)
<repo>/CLAUDE.mdOn /slashforge:setup, after you answer its questions
<repo>/.claude/On /slashforge:setup — rules, skills, agents, commands, hooks
<repo>/docs/slashforge/investigations/On /slashforge:investigate — the findings report
<repo>/docs/slashforge/specs/On /slashforge:code full path — the design spec from Phase 1
<repo>/docs/slashforge/plans/On /slashforge:code full path — the implementation plan from Phase 2
<repo>/docs/slashforge/reviews/On /slashforge:review-pr — the review document

Nothing is written outside those paths. Every generated file carries a generated_by marker; remove or edit it and that file is treated as yours permanently. See /slashforge:setup for how the markers decide what may be refreshed.

What it runs

Inside the workflow it runs your own project commands — lint, tests, build — and git operations for the branch and PR phases. It uses the tooling already configured in your repo. It does not install a test runner, a linter, or a formatter of its own.

One exception worth naming, because it is the only thing that reaches outside your repo: whenever a command writes an HTML document — an investigation report, a design spec, or an implementation plan — it asks your OS to open it in your default browser. open on macOS, xdg-open on Linux, wslview on WSL, start on Windows. Claude Code will prompt you for that command the first time, so nothing launches without your say-so.

It is best-effort and deliberately timid. Over SSH, or on a headless Linux box with no $DISPLAY, it skips the step silently and just tells you the path. A failure to open never fails the run — the document is written first, and opening it is the last thing that happens.

What it never does

It never installs anything, force-pushes, or merges without asking.

NeverDetail
Auto-installsuperpowers is optional and never offered mid-run; Graphify is a one-time offer during setup. You see the exact shell command before anything runs
Force-pushNot at any phase
Merge for youPhase 8 opens the PR. Merging is yours
Post a review unasked/slashforge:review-pr shows the exact text first and never picks approve vs request-changes for you
Delete a branch silentlyPhase 10 asks before cleanup
Touch code in investigateNo branch, no commits, no edits — the constraint is the feature
Phone homeNo telemetry. Graphify, if you accept it, indexes entirely locally

Committing the config

Commit it.

CLAUDE.md and .claude/ are the point — they are what makes the next session, and everyone else on the team, start informed rather than cold. Generated configuration that lives only on one machine buys you nothing on the second run.

Phase 1 and Phase 2 write their spec and plan into docs/slashforge/specs/ and docs/slashforge/plans/, as HTML built from the same shell as the investigation reports. Those paths are baked into SlashForge’s own skills, so nothing writes design documents anywhere else in your repo.

The one directory worth considering for .gitignore is docs/slashforge/investigations/, if you would rather keep findings reports local. It sits under docs/ rather than inside .claude/ so the reports are visible in Finder and open in a browser without a code editor — the trade-off is that it shows up in git status. SlashForge will not edit your .gitignore; adding that line is yours.

Note

npx slashforge uninstall removes only what it put in ~/.claude/. A repo’s own .claude/ directory is yours and is never touched. See the CLI reference.