Skip to content
Development
Command

/forge-stack-pack

Batch-forge Brian's entire stack as skills + MCP servers in one prompt; skips already-forged entries; applies automatic pruning when tool count >100

From plugin
heymegabyte-claude-skills
2153 skills27 agents53 commands
Install
> /plugin marketplace add heymegabyte/claude-skills

How it fires

How this command gets triggered: by you, by Claude, or both.

  • Fires itselfClaude auto-loads it when your prompt matches the work.
  • You can call itInvoke it directly when you want it.
  • Slash command/forge-stack-pack

Context preview

What this command does when you run it.

Batch-forge Brian's entire stack as skills + MCP servers in one prompt; skips already-forged entries; applies automatic pruning when tool count >100

Command definition

forge-stack-pack.md
description: Batch-forge Brian's entire stack as skills + MCP servers in one prompt; skips already-forged entries; applies automatic pruning when tool count >100
argument-hint: [--target=skill|mcp-server|both] [--dry-run] [--only=<api-name>]
allowed-tools: Bash, Read, Write, Edit, Glob

Batch-forge every API in Brian's stack that doesn't yet have a skill or MCP server. Runs `bin/forge-skill-from-openapi.mjs` for each eligible target, prunes oversized MCP servers, and emits a summary table.

**When to use** — fresh machine setup; after adding a new API; to fill gaps after `/audit-mcp-fleet`.

**Inputs** (all optional)

  • `--target=skill|mcp-server|both` — what to generate (default: `both`)
  • `--dry-run` — preview work plan without executing
  • `--only=<name>` — forge a single API (e.g. `--only=resend`)

---

Stack manifest (hardcoded)

API           | OpenAPI URL                                                                              | skill-dir                          | mcp-dir
--------------|------------------------------------------------------------------------------------------|-------------------------------------|-----------------------------------
stripe        | skip — already forged                                                                    | skills/stripe                       | mcp-servers/stripe-mcp
github        | skip — already forged                                                                    | skills/github                       | mcp-servers/github-mcp
square        | skip — already forged                                                                    | skills/square                       | mcp-servers/square-mcp
twilio        | skip — already forged                                                                    | skills/twilio                       | mcp-servers/twilio-mcp
resend        | https://raw.githubusercontent.com/resend/resend-api-docs/main/openapi.yaml               | skills/resend                       | mcp-servers/resend-mcp
bitwarden     | https://api.bitwarden.com/openapi.json                                                   | skills/bitwarden                    | mcp-servers/bitwarden-mcp
openai        | https://github.com/openai/openai-openapi/raw/master/openapi.yaml                         | skills/openai                       | mcp-servers/openai-mcp
anthropic     | skip — no public OpenAPI                                                                  | —                                   | —
posthog       | https://posthog.com/openapi.json                                                         | skills/posthog                      | mcp-servers/posthog-mcp
cloudflare    | skip — mcp-servers/cloudflare-mcp exists (partial batch 3)                               | skills/cloudflare                   | mcp-servers/cloudflare-mcp

**Curated prune allowlists** (auto-applied when tool count > 100 after forge):

  • **resend**: keep `send_email, send_batch_emails, create_broadcast, send_broadcast, get_email, list_emails, create_contact, update_contact, delete_contact, list_contacts, create_audience, list_audiences, get_domain, list_domains, cancel_email`
  • **bitwarden**: keep `list_items, get_item, create_item, edit_item, delete_item, lock, unlock, sync, generate, status, list_org_members, get_org_member, list_org_collections`
  • **openai**: keep `create_chat_completion, create_completion, create_embedding, create_image, create_moderation, list_models, get_model, create_file, list_files, delete_file, create_fine_tuning_job, list_fine_tuning_jobs`
  • **posthog**: keep `list_events, query, create_feature_flag, get_feature_flag, list_feature_flags, update_feature_flag, create_insight, list_insights, list_persons, create_experiment, list_experiments, create_cohort, list_dashboards`

---

Step 1 — Parse args + resolve targets

TARGET=$(echo "$ARGUMENTS" | grep -oP '(?<=--target=)\w+' || echo "both")
DRY_RUN=$(echo "$ARGUMENTS" | grep -q '\-\-dry-run' && echo "true" || echo "false")
ONLY=$(echo "$ARGUMENTS" | grep -oP '(?<=--only=)\S+' || echo "")

For each non-`skip` API in the manifest:

1. Check skill dir: `ls skills/<api-name> 2>/dev/null` 2. Check MCP dir: `ls mcp-servers/<api-name>-mcp 2>/dev/null` 3. Determine missing targets per `--target` flag. 4. If `--only=<name>` set, filter to that API; unknown name → error + stop.

Emit work plan:

Forge Stack Pack — work plan
══════════════════════════════════════════════════════════
API         skill exists  mcp exists  action
resend      ✗             ✗           forge skill + mcp-server
bitwarden   ✗             ✗           forge skill + mcp-server
openai      ✗             ✗           forge skill + mcp-server
posthog     ✗             ✗           forge skill + mcp-server
cloudflare  ✓             ✓           skip (already forged)
stripe      ✓             ✓           skip (already forged)
github      ✓             ✓           skip (already forged)
square      ✓             ✓           skip (already forged)
twilio      ✓             ✓           skip (already forged)
anthropic   —             —           skip (no public OpenAPI)
══════════════════════════════════════════════════════════
Total to forge: 4 APIs · 4 skills · 4 mcp-servers

If `--dry-run`: print table and stop.

---

Step 2 — Forge loop (per eligible API)

Process APIs **sequentially** (not parallel) to avoid wrangler + npm contention.

2a — Fetch + validate the OpenAPI spec

API_NAME="<api-name>"
SPEC_URL="<url-from-manifest>"
SPEC_FILE="/tmp/forge-stack-${API_NAME}-spec.json"

curl -fsSL "$SPEC_URL" -o "$SPEC_FILE" 2>&1
  • Fetch failure → emit `✗ <api-name> — spec fetch failed: <error>. Skipping.`, record `fetch_failed`, continue.
  • YAML spec (`.yaml`/`.yml` URL): convert to JSON first:
node -e "const y=require('js-yaml');const fs=require('fs');fs.writeFileSync('$SPEC_FILE'.replace('.json','-orig.yaml'),fs.readFileSync('$SPEC_FILE'));fs.writeFileSync('
Read more
Ships withheymegabyte-claude-skills

14-category autonomous product-building OS for 32+ AI coding tools. One-line prompts → deployed products.

Get the whole plugin

Other commands on heymegabyte-claude-skills.