feat: add Devin CLI support#1995
Open
caiolopes wants to merge 2 commits into
Open
Conversation
Devin CLI's `devin plugins install obra/superpowers` fails today because the
repo has no `.devin-plugin/plugin.json` manifest. Add the manifest (skills are
auto-discovered from the co-located skills/ directory), a Devin tool mapping
linked from using-superpowers' Platform Adaptation section, a README install
section, version tracking in .version-bump.json, a Codex-sync exclude for the
new dotdir, and a CI-safe test mirroring the kimi/antigravity test style.
Bootstrap rides Devin's native skill surfacing: every installed skill's
name + description is injected into the system prompt at session start with a
standing instruction to invoke matching skills via the native skill tool.
Acceptance test ("Let's make a react todo list") passes in a clean session:
using-superpowers and brainstorming auto-trigger before any code is written.
Owner
|
Hi, Thanks so much for submitting this. |
Re-ran the clean-session acceptance test with the mapping file and the SKILL.md Platform Adaptation pointer removed: using-superpowers and brainstorming still auto-trigger first, and the full workflow chain (writing-plans, executing-plans, TDD, verification) resolves every action to Devin's native tools. Devin CLI's own system prompt already documents its tools (skill invocation, subagent profiles, todo tracking, question prompts), so the mapping was redundant. Test now validates the manifest only.
Author
|
@obra I tested and it works fine without it! I've pushed a commit dropping the file and the SKILL.md pointer line, so the PR no longer touches any skill files |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Who is submitting this PR? (required)
superpowers(this branch, local live-linked install) during acceptance testingWhat problem are you trying to solve?
Devin CLI (Cognition's terminal agent) gained a plugin system that installs skill bundles from a GitHub repo (
devin plugins install owner/repo). Running the natural command against this repo fails today:This was hit in a real session: a Devin CLI user asked whether Superpowers could be installed (it isn't listed in the README), tried the install, and got the error above. Devin CLI's installer requires a
.devin-plugin/plugin.jsonmanifest at the repo root; the repo ships manifests for Claude Code, Codex, Cursor, Kimi, OpenCode, and Pi, but not Devin.What does this PR change?
Adds a
.devin-plugin/plugin.jsonmanifest sodevin plugins install obra/superpowersworks, a Devin tool mapping (references/devin-tools.md) linked from using-superpowers' Platform Adaptation list, a README install section, version tracking in.version-bump.json, a.devin-plugin/exclude in the Codex sync script, and a CI-safe test (tests/devin/test-devin-plugin.sh).Is this change appropriate for the core library?
Yes — it's new harness support, the one carve-out the contributor rules allow. No skill bodies are modified (the single SKILL.md change is a one-line pointer in the Platform Adaptation section, which the porting guide explicitly sanctions). Zero dependencies added; no hooks, no code plugin — the integration is a manifest + a mapping doc.
How the bootstrap works on Devin CLI (per
docs/porting-to-a-new-harness.md): Devin plugins carry skills only — the plugin system has no hook or context-file component (hooks exist in Devin but only as user/project config, which rule 2 forbids touching). However, Devin natively surfaces every installed skill's name + description in the system prompt at session start, with a standing instruction to invoke any matching skill immediately via its nativeskilltool. This is the "surfaced skill index" path the porting guide describes (Part 5 case 2 / Part 6: "lean on the installedusing-superpowersskill itself"), for which the acceptance test is the mandatory proof — see the transcript below.What alternatives did you consider?
SessionStarthook event with Claude Code–compatiblehookSpecificOutput.additionalContextoutput — but hooks load only from user/project config (.devin/hooks.v1.json,~/.config/devin/config.json), not from installed plugins. Shipping the bootstrap that way would require editing the user's config, which the porting guide forbids (rule 2). If Devin plugins gain a hooks component later, the existinghooks/session-startscript could be wired up for a stronger guarantee..devin-plugin/plugin.json; it does not read.claude-plugin/or the.agents/marketplace file. Verified empirically (the error message above).Does this PR contain multiple unrelated changes?
No — one harness, and every touched file is required by the porting guide for a new harness (manifest, mapping, SKILL.md pointer, README, version tracking, sync excludes, tests).
Existing PRs
devin plugins install), adds no duplicated instructions, and the complete diff was human-reviewed.Environment tested
New harness support (required if this PR adds a new harness)
Acceptance test run in a clean environment: pristine
HOME(only Devin CLI credentials copied in),superpowersinstalled viadevin plugins install <path-to-this-branch>, fresh empty git repo as the working directory, interactive session.devin skills listconfirmed only the two Devin built-ins plus the 14 superpowers skills were loaded.The first agent actions after the user message were invoking
using-superpowersand thenbrainstorming— before any code, any file writes, or any exploration.Clean-session transcript for "Let's make a react todo list"
(Session ended by the human at the second clarifying question — the design flow was proceeding per the brainstorming skill: context exploration, checklist todos, one question at a time via Devin's native multiple-choice prompt. No code was written at any point.)
Evaluation
-prun, one interactive TUI run — both in the clean environment described above). Both auto-triggeredusing-superpowers+brainstormingas the first actions.devin plugins install obra/superpowerserrors out; no skills load at all. After: install succeeds, all 14 skills register as/superpowers:<skill>, and the acceptance test passes.Rigor
superpowers:writing-skillsand completed adversarial pressure testing (paste results below) — N/A: no skill body content was modified (only the sanctioned Platform Adaptation pointer line and a new references/ mapping file)Human review