Feature: multi-host plugin layout and full-CLI agent skill - #1
Open
akshaysasidrn wants to merge 9 commits into
Open
Feature: multi-host plugin layout and full-CLI agent skill#1akshaysasidrn wants to merge 9 commits into
akshaysasidrn wants to merge 9 commits into
Conversation
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>
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.
📝 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.
The hook exists because
allowed-toolsalone is not sufficient: an allow decision covers the whole Bash command, sostackdome status; rm -rf ~andprintf x # stackdome statusboth 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
allowed-toolsto the Stackdome CLI alone, and added a PreToolUse hook that auto-approves only single simple invocations.deploy --waitbefore any success claim.🧪 How to test
stackdomebinary on PATH, then feed the hook a plain command and confirm it approves.stackdome <cmd> --help.interfacefield names are a best-effort schema guess — inert if wrong, worth checking against an authoritative schema.