Influences
An explanation. Procoder absorbed the work of three earlier tools: superpowers, ponytail, and serena. This page is the provenance map — each adopted idea and exactly where it lives now — written both as credit and as a migration reference.
If you run any of the three, you no longer need to. Procoder replaces superpowers and ponytail outright, and replaces serena for the languages it indexes — that section has the detail. Running them alongside Procoder means two sets of instructions competing for the same agent, which is worse than either alone.
From superpowers
| Concept | Where it lives in Procoder |
|---|---|
| Plans written for an engineer with zero context: Files, exact Interfaces, test-first steps, no placeholders (from its writing-plans skill) | procoder plan + /procoder:plan — the quality chain's middle link, with a controller that blocks what the original only advised against |
| Classify before designing: spike / bounded / architectural, with a one-way ratchet and an approval gate that never scales down (from brainstorming) | /procoder:spec's opening classification |
| No completion claims without fresh verification evidence; the red-green proof for regression tests; an agent's "done" is a claim (from verification-before-completion) | /procoder:todo's evidence rules — enforced by todo close, which refuses instead of reminding |
| Root cause before any fix; one hypothesis at a time; three failed fixes means the architecture is wrong (from systematic-debugging) | /procoder:debug |
| Red before green with mandatory evidence; every test names the break it catches; the mutation check; mock discipline (from test-driven-development and its writing-good-tests reference) | /procoder:tdd |
| Verify review feedback before implementing; ask when any comment is unclear; facts instead of gratitude (from receiving-code-review) | /procoder:merge's review-receiving rules |
| Re-inject the meta-instructions at every session start so context loss cannot erase them | the principles SessionStart hook |
From ponytail
| Concept | Where it lives in Procoder |
|---|---|
| The build ladder — does it need to exist → reuse → stdlib → platform → dependency → one line → minimum code — and "the ladder runs after you understand the problem, never instead of it" | procoder principles, the default AGENTS.md contract, and .procoder/PRINCIPLES.md (repo-overridable, configuration) |
| Deliberate corner-cuts carry a marker naming the ceiling and the revisit trigger; a command harvests the ledger and flags trigger-less rot | procoder debt and the debt: convention ([debt] in config.toml) — the maintainability domain's sibling discipline |
| The five-tag over-engineering review (delete / stdlib / native / yagni / shrink), a mandatory replacement per finding, and the null result "Lean already. Ship." when there is nothing to cut | /procoder:simplify |
| One canonical instruction file, thin per-host adapters, parity and drift checks — the architecture that serves twenty agents from one source | the whole universal agent layer, with the drift guards moved into the binary and riding the gate |
| Version-sync must also check the release tag (their v4.8.0 shipped every manifest stale together); content canaries pin load-bearing phrases | the docs domain's version and manifest pinning (domains, documentation section) |
| Never print a number you cannot derive; every claim carries its method in the same visual block; publish retractions | the README's "Honesty, by design" section, the perf domain's refusal to ship checks without measurement infrastructure, and this site's habit of stating tested-status per feature |
From serena
Serena is a different kind of tool from the other two: an MCP server that gives an agent language-server power — symbol-level navigation and symbol-level editing — instead of a set of skills. Procoder took the navigation half into the binary and deliberately refused the editing half.
| Concept | Where it lives in Procoder |
|---|---|
| Symbol-level navigation instead of grep: find a symbol, its references, a file's outline | procoder index find / refs / outline / callers — two tiers, universal-ctags broad and SCIP precise (the code index) |
| What implements this interface | procoder index impls (precise tier only, and it says so when the tier is missing) |
| Cross-file rename computed by the language's own engine rather than by pattern | procoder index rename <symbol> <new> — printed as a reviewable unified diff, Go via gopls. Nothing is written: you review and apply it, then verify with refs |
| Type errors the linter does not catch, because it never compiles the code | procoder lint --types — tsc --noEmit for TypeScript, pyright for Python |
| Onboarding: a first pass that learns an unfamiliar codebase | procoder audit and how to onboard an existing codebase |
| Project memories that survive a lost context | .procoder/ — specs, plans, ADRs, the lessons ledger. Committed Markdown a human reviews in a PR, not an opaque store only the agent can read |
| "Think about what you are doing" meta-tools that re-focus a drifting agent | the principles injected at every session start, and controllers that refuse rather than remind |
Where it applies. The precise tier covers the languages with a SCIP indexer; rename is computed by gopls and therefore answers for Go. A language without an engine gets the reference worksheet, labelled as such rather than presented as a rename. For those cases the index skill points at your host's own language-server tool, and back to the index for repo-wide sweeps.
What Procoder refused. Serena's symbol-level editing tools —
replace_symbol_body, insert_after_symbol and their siblings — write
to your code. That is precisely the line
P-CONTROL
draws: Procoder computes the change and hands it over; the agent
reviews it and writes it. A rename you never saw is a change nobody
reviewed.
Deliberately not adopted
Superpowers' subagent-orchestration machinery and branch-finishing flow (Procoder's own workflow supersedes them) and its visual-companion server; ponytail's benchmark scoreboard and its lite/full/ultra level system (a repo-editable principles file replaces modes); serena's symbol-level write tools and its always-on MCP server (Procoder is one binary the hooks call, with no process to keep running).
Escaped-finding lessons are a different ledger: those live in
.procoder/github/LESSONS.md and are enforced by procoder lessons —
see the quality chain.