Skip to content

Feature: multi-host plugin layout and full-CLI agent skill - #1

Open
akshaysasidrn wants to merge 9 commits into
mainfrom
feature/agent-plugin-layout
Open

Feature: multi-host plugin layout and full-CLI agent skill#1
akshaysasidrn wants to merge 9 commits into
mainfrom
feature/agent-plugin-layout

Conversation

@akshaysasidrn

@akshaysasidrn akshaysasidrn commented Aug 7, 2026

Copy link
Copy Markdown
Contributor

📝 What this does

Turns the skills repo into a multi-host plugin and widens the skill from a deploy-only golden path to the whole CLI. Previously an agent went blind the moment a user asked for logs, a database, or why their app was crashing — every one of those commands already existed, the skill just never mentioned them.

🏗️ Architecture

One payload directory, three host catalogs pointing at it. This adds marketplace installs without breaking the host-agnostic one — verified before committing that the skills CLI still discovers a nested layout.

.claude-plugin/marketplace.json  ─┐
.cursor-plugin/marketplace.json  ─┼─→  plugins/stackdome/
.agents/plugins/marketplace.json ─┘      ├── three host manifests (version-locked)
                                         ├── hooks/  (PreToolUse auto-approve)
                                         └── skills/stackdome-deploy/SKILL.md

The hook exists because allowed-tools alone is not sufficient: an allow decision covers the whole Bash command, so stackdome status; rm -rf ~ and printf x # stackdome status both pass a naive prefix match. It strips quoted spans and escapes, refuses if any control metacharacter survives at top level, and requires a bare PATH binary. Everything else falls through to the normal prompt, which is the safe direction.

🔀 Changes

  • Restructured the repo into a plugin payload with catalogs for Claude Code, Cursor, and Codex.
  • Grew the skill from 73 to 185 lines: intent routing table, auth ladder, day-2 command tables, debugging recipes, destructive-operation rules.
  • Rewrote the skill description so it triggers on logs, secrets, databases, and crashes rather than only on deploys.
  • Scoped allowed-tools to the Stackdome CLI alone, and added a PreToolUse hook that auto-approves only single simple invocations.
  • Corrected the documented install and docs URLs to hosts that resolve, and required deploy --wait before any success claim.

🧪 How to test

  • Run the hook test suite and confirm every case passes.
  • Put a stackdome binary on PATH, then feed the hook a plain command and confirm it approves.
  • Feed it a chained command and confirm it defers.
  • Install the skill with the host-agnostic command and confirm it lands.
  • Add the repo as a plugin marketplace source in Claude Code and install from it.
  • Spot-check a few day-2 commands in the skill against stackdome <cmd> --help.

⚠️ Notes for review

  • The Codex manifest's interface field names are a best-effort schema guess — inert if wrong, worth checking against an authoritative schema.
  • No privacy-policy or terms URLs are set, because those pages do not exist yet. Omitted rather than invented.
  • The CLI install path stays gated until the CLI repo is public and tagged.

akshaysasidrn and others added 9 commits August 7, 2026 01:59
get.stackdome.com never resolves and docs.stackdome.io is unreachable
(custom domain not wired). Repoint the CLI install command at
stackdome.com and the docs base at the live stackdome.mintlify.app.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
`stackdome deploy` without --wait returns before the release reaches
a terminal state, so checking release.state == "Released" right after
is checking a value that's still pending/building.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Move the skill payload under plugins/stackdome/ with per-host manifests
(.claude-plugin, .cursor-plugin, .codex-plugin) and add root marketplace
catalogs for Claude Code, Cursor, and the open agents standard, so the
repo installs via `npx skills add`, `/plugin marketplace add`, or as a
Cursor/Codex plugin source.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Rewrites SKILL.md beyond day-1 deploy: adds an intent-routing table,
an auth ladder (whoami/signup/login/token), day-2 operation tables for
status, logs, releases, builds, secrets, Postgres addons, volumes, and
tokens, debugging recipes, and a dedicated destructive-operations rule.
Every command/flag is verified against cli-surface.md and the built
CLI's --help output. Bumps manifest version 0.1.0 -> 0.2.0 per AGENTS.md.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
The stackdome-deploy skill grants Bash(stackdome:*), but that's a
prefix/substring match against the whole command string, so it can't
tell "stackdome status" apart from "stackdome status; rm -rf ~". Add a
PreToolUse hook that approves only a single, simple `stackdome`
invocation with no shell metacharacters outside quotes, and defers to
the normal prompt for everything else.

Also updates the codex-plugin interface copy, which still described a
deploy-only skill even though the skill now covers the full CLI
(status, logs, debugging, secrets, databases, volumes, releases,
teardown), and bumps all three manifest versions per AGENTS.md.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
stackdome init no longer writes an AGENTS.md stanza — it duplicated
the deploy procedure (now in this skill) and the project facts (now
in ~/.stackdome/config.json, surfaced via `whoami`/`config view`).
Also removes a stale `--agents-md` flag reference; that flag was
already dropped from the CLI in an earlier commit.

Bumps the stackdome plugin manifests 0.3.0 -> 0.4.0 for the doc change.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
The hook approved any shape-valid single `stackdome` invocation,
including destroy and secret delete, with no human prompt. Add a verb
check on top of the existing command-shape defenses so only read-only
subcommands (status, logs, list/info/view/events-style reads) auto
approve; everything that mutates or destroys state, or mints/reveals a
credential, falls through to the normal permission prompt.

Bump plugin manifests to 0.5.0 per repo convention.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
The --help/-h check ran before verb resolution, so appending --help to
any destructive command (stackdome destroy -y --help) auto-approved
it. Not exploitable today only because the CLI's own flag parsing
short-circuits before running anything — the wrong place for this
hook's guarantee to depend on.

Resolve the verb first; approve on --help only when no verb was found
(bare `stackdome --help`) or the verb is already read-only. A verb
outside the allowlist defers regardless of --help.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Replace stackdome.mintlify.app references with the canonical
docs.stackdome.com domain across AGENTS.md, README.md, and the
stackdome-deploy skill. Bumps all three plugin manifests to 0.6.0
per this repo's versioning rule for skill content changes.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant