feat(plugins): add devstack, a skills-only sprint plugin (init, plan, ship)

Closed
HA
3h ago
+816-1

Links

Summary

  • Adds plugins/devstack, a first-party plugin with only skills, shipped through the marketplace. It has three skills: devstack:init, devstack:plan and devstack:ship.
  • plan and ship are generic versions of the repo-local create-plan, create-pr, ci-check and respond-to-pr-comments commands. Each repo sets its own values in .devstack/config.md.
  • Adds this repo's .devstack/config.md for dogfooding: checks from CI, PRs assigned to superset-home, codex as reviewer.

Why / Context

Paradev has the primitives (workspaces, agents, pages, automations, the MCP proxy) but no opinionated workflow that runs them in order. devstack is that workflow: Frame → Plan → Fan-out → Review → Verify → Ship → Watch → Retro. This PR is steps 0 and 1 of the research plan. It records the decisions and promotes the commands we already use. The wedge skills (fanout, review) and retro follow in their own PRs (see the Work units in the plan).

Step 0 decisions (recommendations for review)

  • Separate plugin, not part of the superset plugin. The superset plugin is managed and always on; an opinionated workflow should be opt-in and versioned on its own tag. devstack composes superset:orchestrate and superset:page by name.
  • Skill names drop dev-. Installed skills already carry the plugin name, so dev-plan would install as devstack-dev-plan. The names are now devstack:plan, devstack-plan, and so on.
  • Artifacts. .devstack/config.md holds YAML frontmatter for skills and prose for people. A plan is an ExecPlan-style markdown file with a ## Work units YAML block (id, title, depends_on, owns, acceptance, verify, role); fanout reads that block. Workers reuse orchestrate's SUPERSET_WORKER_DONE envelope.
  • Agent per role comes from roles in the config. With no setting, review uses a different agent than the author.
  • Works without the CLI. Units run in order in one checkout, and markdown files replace pages.
  • Linear first, with GitHub Issues as fallback. ship never merges.
  • The repo-local commands stay as they are until devstack is dogfooded.

How It Works

  • superset plugins create devstack --kind none scaffolded the plugin. I then fixed the scaffold output: its $schema pointed at localhost:3002 and its icon was not a built-in key, so the plugin now ships assets/icon.svg.
  • superset plugins publish devstack wrote the marketplace entry (0.1.0) and regenerated manifests.generated.ts.
  • Added a devstack entry to PLUGIN_CATALOG; index.test.ts needs one for every published manifest.

Testing

  • bun run check:plugins: All plugins are valid and published.
  • superset plugins validate plugins/devstack: no problems.
  • bun test in packages/shared/src/plugins (23 pass), packages/trpc plugins and organization-plugins (197 pass), and packages/cli/src/lib/plugins (54 pass).
  • Biome check on the changed files, and tsc for packages/shared.
  • Dogfood: a fresh agent followed devstack:plan on the retro unit. Its Work units YAML parsed and had every field. I fixed the gaps it found in the skill text: unanswered questions, who owns the plan file, research units, sub-plans, the timestamp, and defaults.

Known Limitations

  • I did not test a real install. plugins install and marketplace add are turned off in cloud sandboxes (sandbox: false), and this PR was made in one. Someone needs to run superset plugins install devstack on a desktop machine before release.
  • 0.1.0 becomes public on merge. Merging tags devstack@0.1.0, and the plugin then shows on the marketing marketplace page and in the desktop Plugins page with three of the eight skills. If we want to dogfood first, I can remove version from the marketplace entry. An unreleased entry stays out of the generated bundle.
  • No desktop PluginIcon built-in yet: before install the plugin shows the generic puzzle icon, and after install it shows the icon it ships.

Follow-ups

  • devstack:fanout + devstack:review (the wedge), then retro, then qa + watch.
  • Point create-plan / create-pr at the devstack skills once they are proven.

Summary by cubic

Adds plugins/devstack, a first-party skills-only plugin that runs an agent sprint: devstack:init writes a per-repo .devstack/config.md, devstack:plan writes a plan split into independent work units, and devstack:ship takes a branch to a green, reviewed PR — resuming an existing PR for the branch when one is open, then triaging CI and addressing review findings. It generalizes the repo-local create-plan, create-pr, ci-check and respond-to-pr-comments commands, and dogfoods the plugin with this repo's own .devstack/config.md. The plan in plans/20261110-1846-devstack.md records step 0 decisions and the remaining units (fanout, review, retro, qa, watch).

Known Limitations

  • Merging tags devstack@0.1.0 and makes the plugin public with three of the eight planned skills; removing version from the marketplace entry would keep it unreleased.
  • Install was not tested — plugins install and marketplace add are disabled in cloud sandboxes, so someone needs to run superset plugins install devstack on a desktop machine before release.

Summary by CodeRabbit

  • New Features
    • Added the Devstack plugin to the marketplace, with init, plan, and ship skills for configuring a repository, preparing an implementation plan, and taking a branch through checks and pull-request review.
    • Added Devstack’s layered icon to plugin listings.
  • Documentation
    • Added guidance for repository settings, planning and approval, checks, tracker integration, agent roles, and pull-request defaults. The shipping workflow covers existing pull requests, CI results, and review feedback.