|
| 1 | +# ABCA Plugin for Claude Code |
| 2 | + |
| 3 | +A Claude Code plugin that provides guided workflows for setting up, deploying, operating, and troubleshooting the ABCA (Autonomous Background Coding Agents on AWS) platform. |
| 4 | + |
| 5 | +## Installation |
| 6 | + |
| 7 | +```bash |
| 8 | +claude --plugin-dir abca-plugin |
| 9 | +``` |
| 10 | + |
| 11 | +Or add to your project's `.claude/settings.json`: |
| 12 | + |
| 13 | +```json |
| 14 | +{ |
| 15 | + "plugins": ["./abca-plugin"] |
| 16 | +} |
| 17 | +``` |
| 18 | + |
| 19 | +## What's Included |
| 20 | + |
| 21 | +### Skills (slash commands) |
| 22 | + |
| 23 | +| Skill | Trigger | Description | |
| 24 | +|-------|---------|-------------| |
| 25 | +| `/setup` | First-time setup, prerequisites | Walk through prerequisites, toolchain, and first deployment | |
| 26 | +| `/deploy` | Deploy, diff, destroy | Deploy, diff, or destroy the CDK stack | |
| 27 | +| `/onboard-repo` | Add a repository | Onboard a GitHub repo via Blueprint CDK construct | |
| 28 | +| `/submit-task` | Submit a coding task | Submit tasks with prompt quality guidance and cost controls | |
| 29 | +| `/troubleshoot` | Debug, errors, failures | Diagnose build, deployment, auth, and task execution issues | |
| 30 | +| `/abca-status` | Status, health check | Check stack health, running tasks, and recent history | |
| 31 | +| `/abca-submit` | Quick submit | Shortcut for rapid task submission | |
| 32 | + |
| 33 | +### Agents |
| 34 | + |
| 35 | +| Agent | Model | Description | |
| 36 | +|-------|-------|-------------| |
| 37 | +| `cdk-expert` | Sonnet | AWS CDK infrastructure expert for construct design, handler implementation, and stack modifications | |
| 38 | +| `agent-debugger` | Sonnet | Read-only debugging specialist for task failures, preflight errors, and CloudWatch log analysis | |
| 39 | + |
| 40 | +### Hooks |
| 41 | + |
| 42 | +- **SessionStart** — Injects ABCA project context (directory structure, key commands, task types, available skills/agents) into every Claude Code session. |
| 43 | + |
| 44 | +## Plugin Structure |
| 45 | + |
| 46 | +``` |
| 47 | +abca-plugin/ |
| 48 | + plugin.json # Plugin manifest |
| 49 | + agents/ |
| 50 | + cdk-expert.md # CDK infrastructure agent |
| 51 | + agent-debugger.md # Runtime debugging agent |
| 52 | + hooks/ |
| 53 | + hooks.json # SessionStart context injection |
| 54 | + skills/ |
| 55 | + setup/SKILL.md # First-time setup workflow |
| 56 | + deploy/SKILL.md # CDK deployment management |
| 57 | + onboard-repo/SKILL.md # Repository onboarding |
| 58 | + submit-task/SKILL.md # Task submission workflow |
| 59 | + troubleshoot/SKILL.md # Troubleshooting guide |
| 60 | + abca-status/SKILL.md # Platform status checks |
| 61 | + abca-submit/SKILL.md # Quick task submission |
| 62 | +``` |
| 63 | + |
| 64 | +## Testing |
| 65 | + |
| 66 | +This plugin is markdown and configuration only (no executable code), so traditional unit tests don't apply. Instead, a **4-layer validation strategy** verifies correctness: |
| 67 | + |
| 68 | +| Layer | What it checks | |
| 69 | +|-------|---------------| |
| 70 | +| **1. Structural** | `plugin.json` fields, file discovery, JSON/YAML validity, no orphaned files | |
| 71 | +| **2. Agent Config** | Frontmatter fields (`model`, `tools`, `description`), valid tool names, file path accuracy, capability alignment with examples | |
| 72 | +| **3. Content Integrity** | All repo paths exist, all `mise run` commands are valid tasks, all `bgagent` CLI flags match actual help output, skill cross-references resolve, AWS CLI syntax is correct | |
| 73 | +| **4. Hooks** | `hooks.json` structure, supported event names, skills/agents listed in hook content all exist, no sensitive data | |
| 74 | + |
| 75 | +### Running the tests |
| 76 | + |
| 77 | +From the repo root with Claude Code: |
| 78 | + |
| 79 | +``` |
| 80 | +claude --plugin-dir abca-plugin |
| 81 | +``` |
| 82 | + |
| 83 | +Then ask Claude to validate the plugin: |
| 84 | + |
| 85 | +``` |
| 86 | +Validate the abca-plugin using the plugin-validator agent, then verify |
| 87 | +all command references and file paths in the skills are accurate. |
| 88 | +``` |
| 89 | + |
| 90 | +Or run the checks manually: |
| 91 | + |
| 92 | +```bash |
| 93 | +# Layer 1: Structural — valid JSON |
| 94 | +python3 -c "import json; json.load(open('abca-plugin/plugin.json')); print('plugin.json OK')" |
| 95 | +python3 -c "import json; json.load(open('abca-plugin/hooks/hooks.json')); print('hooks.json OK')" |
| 96 | + |
| 97 | +# Layer 3: Content — mise tasks exist |
| 98 | +MISE_EXPERIMENTAL=1 mise tasks --all 2>/dev/null | grep -E '(build|install|compile|test|deploy|destroy|diff|synth|bootstrap)' |
| 99 | + |
| 100 | +# Layer 3: Content — CLI flags match |
| 101 | +cd cli && node lib/bin/bgagent.js submit --help && node lib/bin/bgagent.js list --help |
| 102 | +``` |
| 103 | + |
| 104 | +Full test results are documented in [`TESTING.md`](./TESTING.md). |
| 105 | + |
| 106 | +## Development |
| 107 | + |
| 108 | +To modify the plugin: |
| 109 | + |
| 110 | +1. Edit the relevant `.md` file under `skills/`, `agents/`, or `hooks/` |
| 111 | +2. Re-validate using the testing strategy above |
| 112 | +3. Ensure any new file paths or commands you reference actually exist in the repo |
| 113 | +4. Keep the `SessionStart` hook prompt in sync if you add/remove/rename skills or agents |
0 commit comments