@arthai/agents 1.0.0 → 1.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (88) hide show
  1. package/README.md +86 -105
  2. package/VERSION +1 -1
  3. package/compiler.sh +69 -10
  4. package/dist/plugins/canvas/.claude-plugin/plugin.json +4 -2
  5. package/dist/plugins/canvas/{skills/planning/SKILL.md → commands/planning.md} +0 -2
  6. package/dist/plugins/compass/.claude-plugin/plugin.json +4 -2
  7. package/dist/plugins/compass/{skills/planning/SKILL.md → commands/planning.md} +0 -2
  8. package/dist/plugins/counsel/.claude-plugin/plugin.json +4 -2
  9. package/dist/plugins/counsel/{skills/client-discovery/SKILL.md → commands/client-discovery.md} +0 -2
  10. package/dist/plugins/{prime/skills/consulting/SKILL.md → counsel/commands/consulting.md} +0 -2
  11. package/dist/plugins/{prime/skills/deliverable-builder/SKILL.md → counsel/commands/deliverable-builder.md} +0 -2
  12. package/dist/plugins/counsel/{skills/engagement-tracker/SKILL.md → commands/engagement-tracker.md} +0 -2
  13. package/dist/plugins/{prime/skills/market-research/SKILL.md → counsel/commands/market-research.md} +0 -2
  14. package/dist/plugins/{prime/skills/opportunity-map/SKILL.md → counsel/commands/opportunity-map.md} +0 -2
  15. package/dist/plugins/{prime/skills/pitch-generator/SKILL.md → counsel/commands/pitch-generator.md} +0 -2
  16. package/dist/plugins/counsel/{skills/roi-calculator/SKILL.md → commands/roi-calculator.md} +0 -2
  17. package/dist/plugins/counsel/{skills/share/SKILL.md → commands/share.md} +0 -2
  18. package/dist/plugins/{prime/skills/solution-architect/SKILL.md → counsel/commands/solution-architect.md} +0 -2
  19. package/dist/plugins/{prime/skills/templates/SKILL.md → counsel/commands/templates.md} +0 -2
  20. package/dist/plugins/{prime/skills/welcome/SKILL.md → counsel/commands/welcome.md} +0 -2
  21. package/dist/plugins/{prime/skills/wizard/SKILL.md → counsel/commands/wizard.md} +0 -2
  22. package/dist/plugins/cruise/.claude-plugin/plugin.json +4 -2
  23. package/dist/plugins/cruise/{skills/autopilot/SKILL.md → commands/autopilot.md} +0 -2
  24. package/dist/plugins/forge/.claude-plugin/plugin.json +4 -2
  25. package/dist/plugins/{prime/skills/implement/SKILL.md → forge/commands/implement.md} +0 -2
  26. package/dist/plugins/{prime/skills/planning/SKILL.md → forge/commands/planning.md} +0 -2
  27. package/dist/plugins/forge/{skills/pr/SKILL.md → commands/pr.md} +0 -1
  28. package/dist/plugins/{prime/skills/precheck/SKILL.md → forge/commands/precheck.md} +0 -2
  29. package/dist/plugins/forge/{skills/qa/SKILL.md → commands/qa.md} +0 -2
  30. package/dist/plugins/{prime/skills/review-pr/SKILL.md → forge/commands/review-pr.md} +0 -2
  31. package/dist/plugins/prime/.claude-plugin/plugin.json +4 -2
  32. package/dist/plugins/prime/{skills/arth/SKILL.md → commands/arth.md} +0 -2
  33. package/dist/plugins/prime/{skills/autopilot/SKILL.md → commands/autopilot.md} +0 -2
  34. package/dist/plugins/prime/{skills/calibrate/SKILL.md → commands/calibrate.md} +0 -2
  35. package/dist/plugins/prime/{skills/ci-fix/SKILL.md → commands/ci-fix.md} +0 -2
  36. package/dist/plugins/prime/{skills/client-discovery/SKILL.md → commands/client-discovery.md} +0 -2
  37. package/dist/plugins/{counsel/skills/consulting/SKILL.md → prime/commands/consulting.md} +0 -2
  38. package/dist/plugins/prime/{skills/custom-domain/SKILL.md → commands/custom-domain.md} +0 -2
  39. package/dist/plugins/{counsel/skills/deliverable-builder/SKILL.md → prime/commands/deliverable-builder.md} +0 -2
  40. package/dist/plugins/prime/{skills/discord-ops/SKILL.md → commands/discord-ops.md} +0 -1
  41. package/dist/plugins/prime/{skills/engagement-tracker/SKILL.md → commands/engagement-tracker.md} +0 -2
  42. package/dist/plugins/prime/{skills → commands}/explore.md +0 -1
  43. package/dist/plugins/prime/{skills/fix/SKILL.md → commands/fix.md} +0 -2
  44. package/dist/plugins/{forge/skills/implement/SKILL.md → prime/commands/implement.md} +0 -2
  45. package/dist/plugins/prime/{skills/incident/SKILL.md → commands/incident.md} +0 -2
  46. package/dist/plugins/prime/{skills/issue/SKILL.md → commands/issue.md} +0 -1
  47. package/dist/plugins/{counsel/skills/market-research/SKILL.md → prime/commands/market-research.md} +0 -2
  48. package/dist/plugins/{spark/skills/onboard/SKILL.md → prime/commands/onboard.md} +0 -2
  49. package/dist/plugins/{counsel/skills/opportunity-map/SKILL.md → prime/commands/opportunity-map.md} +0 -2
  50. package/dist/plugins/{counsel/skills/pitch-generator/SKILL.md → prime/commands/pitch-generator.md} +0 -2
  51. package/dist/plugins/{forge/skills/planning/SKILL.md → prime/commands/planning.md} +0 -2
  52. package/dist/plugins/prime/{skills/pr/SKILL.md → commands/pr.md} +0 -1
  53. package/dist/plugins/{forge/skills/precheck/SKILL.md → prime/commands/precheck.md} +0 -2
  54. package/dist/plugins/{prism/skills/qa-incident/SKILL.md → prime/commands/qa-incident.md} +0 -2
  55. package/dist/plugins/{prism/skills/qa-learn/SKILL.md → prime/commands/qa-learn.md} +0 -2
  56. package/dist/plugins/prime/{skills/qa/SKILL.md → commands/qa.md} +0 -2
  57. package/dist/plugins/{sentinel/skills/restart/SKILL.md → prime/commands/restart.md} +0 -2
  58. package/dist/plugins/{forge/skills/review-pr/SKILL.md → prime/commands/review-pr.md} +0 -2
  59. package/dist/plugins/prime/{skills/roi-calculator/SKILL.md → commands/roi-calculator.md} +0 -2
  60. package/dist/plugins/prime/{skills/scan/SKILL.md → commands/scan.md} +0 -2
  61. package/dist/plugins/prime/{skills/setup/SKILL.md → commands/setup.md} +0 -2
  62. package/dist/plugins/prime/{skills/share/SKILL.md → commands/share.md} +0 -2
  63. package/dist/plugins/{counsel/skills/solution-architect/SKILL.md → prime/commands/solution-architect.md} +0 -2
  64. package/dist/plugins/prime/{skills/sre/SKILL.md → commands/sre.md} +0 -2
  65. package/dist/plugins/prime/{skills/sync/SKILL.md → commands/sync.md} +0 -1
  66. package/dist/plugins/{counsel/skills/templates/SKILL.md → prime/commands/templates.md} +0 -2
  67. package/dist/plugins/{counsel/skills/welcome/SKILL.md → prime/commands/welcome.md} +0 -2
  68. package/dist/plugins/{counsel/skills/wizard/SKILL.md → prime/commands/wizard.md} +0 -2
  69. package/dist/plugins/prism/.claude-plugin/plugin.json +4 -2
  70. package/dist/plugins/{prime/skills/qa-incident/SKILL.md → prism/commands/qa-incident.md} +0 -2
  71. package/dist/plugins/{prime/skills/qa-learn/SKILL.md → prism/commands/qa-learn.md} +0 -2
  72. package/dist/plugins/prism/{skills/qa/SKILL.md → commands/qa.md} +0 -2
  73. package/dist/plugins/scalpel/.claude-plugin/plugin.json +4 -2
  74. package/dist/plugins/scalpel/{skills/ci-fix/SKILL.md → commands/ci-fix.md} +0 -2
  75. package/dist/plugins/scalpel/{skills/fix/SKILL.md → commands/fix.md} +0 -2
  76. package/dist/plugins/scalpel/{skills/issue/SKILL.md → commands/issue.md} +0 -1
  77. package/dist/plugins/sentinel/.claude-plugin/plugin.json +4 -2
  78. package/dist/plugins/sentinel/{skills/incident/SKILL.md → commands/incident.md} +0 -2
  79. package/dist/plugins/{prime/skills/restart/SKILL.md → sentinel/commands/restart.md} +0 -2
  80. package/dist/plugins/sentinel/{skills/sre/SKILL.md → commands/sre.md} +0 -2
  81. package/dist/plugins/shield/.claude-plugin/plugin.json +4 -2
  82. package/dist/plugins/spark/.claude-plugin/plugin.json +4 -2
  83. package/dist/plugins/spark/{skills/calibrate/SKILL.md → commands/calibrate.md} +0 -2
  84. package/dist/plugins/{prime/skills/onboard/SKILL.md → spark/commands/onboard.md} +0 -2
  85. package/dist/plugins/spark/{skills/scan/SKILL.md → commands/scan.md} +0 -2
  86. package/dist/plugins/spark/{skills/setup/SKILL.md → commands/setup.md} +0 -2
  87. package/package.json +1 -1
  88. package/skills/publish/SKILL.md +218 -0
package/README.md CHANGED
@@ -1,123 +1,104 @@
1
- # Claude Agents
1
+ # @arthai/agents
2
2
 
3
- A portable toolkit of 18 AI agents, 18 skills, and 13 hooks for [Claude Code](https://docs.anthropic.com/en/docs/claude-code). Install once at `~/.claude-agents/`, symlink into any project — all projects stay in sync automatically.
3
+ AI development toolkit for Claude Code agents, skills, and hooks organized into installable bundles.
4
4
 
5
- ## Quick Start
5
+ ## Install
6
6
 
7
7
  ```bash
8
- # 1. Clone + license
9
- git clone git@github.com:ArthTech-AI/claude-agents.git ~/.claude-agents
10
- ~/.claude-agents/install.sh --key ARTH-XXXX-XXXX-XXXX-XXXX
8
+ # Install a bundle into your project
9
+ npx @arthai/agents install forge .
11
10
 
12
- # 2. Install into your project
13
- ~/.claude-agents/install.sh /path/to/project
11
+ # Install multiple bundles
12
+ npx @arthai/agents install forge spark shield .
13
+
14
+ # See all available bundles
15
+ npx @arthai/agents list
16
+
17
+ # Show what's in a bundle
18
+ npx @arthai/agents info forge
19
+ ```
20
+
21
+ ## Bundles
22
+
23
+ Pick what you need. Each bundle is a self-contained set of agents, skills, and hooks.
24
+
25
+ ### Development
26
+
27
+ | Bundle | Command | What you get |
28
+ |--------|---------|-------------|
29
+ | **forge** | `npx @arthai/agents install forge .` | Full dev workflow: `/planning`, `/implement`, `/qa`, `/pr`, `/precheck`, `/review-pr` + 6 agents (architect, PM, backend, frontend, QA, code-reviewer) + triage router hook |
30
+ | **scalpel** | `npx @arthai/agents install scalpel .` | Bug fixing: `/fix`, `/ci-fix`, `/issue` + code-reviewer agent + edit guard hook |
31
+ | **spark** | `npx @arthai/agents install spark .` | Project setup: `/onboard`, `/calibrate`, `/scan`, `/setup` + setup and explore agents |
32
+
33
+ ### Operations
34
+
35
+ | Bundle | Command | What you get |
36
+ |--------|---------|-------------|
37
+ | **sentinel** | `npx @arthai/agents install sentinel .` | SRE + ops: `/sre`, `/incident`, `/restart` + SRE and ops agents + deploy health + git state hooks |
38
+ | **prism** | `npx @arthai/agents install prism .` | Deep QA: `/qa`, `/qa-learn`, `/qa-incident` + 6 QA agents (qa, e2e, domain, challenger, baseline, promoter) |
39
+ | **shield** | `npx @arthai/agents install shield .` | Safety guardrails: bash guard, edit guard, session bootstrap, triage router hooks (no skills — hooks only) |
40
+
41
+ ### Strategy
42
+
43
+ | Bundle | Command | What you get |
44
+ |--------|---------|-------------|
45
+ | **canvas** | `npx @arthai/agents install canvas .` | Design: `/planning` + design-studio agents (think, create, critique) + frontend agent |
46
+ | **compass** | `npx @arthai/agents install compass .` | Product: `/planning` + PM, GTM, user researcher, content strategist agents |
47
+ | **counsel** | `npx @arthai/agents install counsel .` | Consulting: 13 skills (client-discovery, proposals, deliverables, ROI, etc.) + 4 consulting agents |
48
+
49
+ ### Power
50
+
51
+ | Bundle | Command | What you get |
52
+ |--------|---------|-------------|
53
+ | **cruise** | `npx @arthai/agents install cruise .` | Autonomous mode: `/autopilot` — picks up issues, implements, QAs, creates PRs. Auto-installs forge + scalpel + sentinel. |
54
+ | **prime** | `npx @arthai/agents install prime .` | Everything. All 25 agents, 37 skills, 16 hooks. |
55
+
56
+ ## Workflows
57
+
58
+ After installing, use skills in Claude Code:
59
+
60
+ **Start a new project:**
61
+ ```
62
+ /onboard # get project briefing
63
+ /calibrate # auto-configure toolkit for your codebase
64
+ /planning my-feature # design the feature with architect + PM agents
65
+ /implement my-feature # build with parallel agent team
14
66
  ```
15
67
 
16
- Open Claude Code — agents, skills, and hooks are active. Auto-syncs on every session start.
17
-
18
- First session: type `/calibrate` to deep-learn your project (reads source code, recommends agents, skills, MCP servers).
19
-
20
- ### Other Install Modes
21
-
22
- | Command | When to use |
23
- |---------|-------------|
24
- | `install.sh --assess .` | See what you have vs the toolkit (read-only) |
25
- | `install.sh --setup .` | Change category selections |
26
- | `install.sh --upgrade .` | Upgrade existing project (converts stale files) |
27
- | `install.sh --convert .` | Migrate from copy-based install |
28
- | `install.sh --status .` | Show what's linked/overridden/missing |
29
-
30
- ## What You Get
31
-
32
- **18 Agents** — specialized AI workers Claude delegates to automatically:
33
-
34
- | Tier | Model | Cost | Agents |
35
- |------|-------|------|--------|
36
- | Cheap | Haiku | 1x | explore-light, ops, qa-baseline-updater, qa-test-promoter |
37
- | Mid | Sonnet | 10x | frontend, python-backend, sre, qa, qa-domain, qa-e2e, qa-challenger, code-reviewer, design-studio:think, design-studio:critique |
38
- | Expensive | Opus | 60x | architect, product-manager, gtm-expert, design-studio:create |
39
-
40
- **19 Skills** — invoke with `/name` in Claude Code:
41
-
42
- | Skill | What it does |
43
- |-------|-------------|
44
- | `/calibrate` | Deep-learn project, recommend + install MCP servers, agents, skills, workflows, knowledge base |
45
- | `/onboard` | Session start — project briefing + work prioritization |
46
- | `/planning <feature>` | Spawn planning team (PM + Architect + optional Design/GTM) |
47
- | `/implement <feature>` | Spawn implementation team from plan |
48
- | `/pr` | QA + PR creation + post-merge cleanup |
49
- | `/qa [full\|staging\|prod]` | Run QA checks at different levels |
50
- | `/ci-fix [ci\|staging\|prod]` | Auto-remediate CI/CD failures (3 retries) |
51
- | `/issue <title>` | GitHub issue management |
52
- | `/explore <query>` | Fast codebase search (Haiku) |
53
- | `/scan` | Auto-populate CLAUDE.md from codebase |
54
- | `/sync` | Sync toolkit, check status, contribute back |
55
- | `/restart` | Kill and restart local dev servers |
56
- | `/sre <cmd>` | SRE operations: status, health, logs, debug |
57
- | `/qa-incident` | Log a QA incident |
58
- | `/qa-learn` | Review QA knowledge base |
59
- | `/discord-ops` | Discord ChatOps reference |
60
- | `/superpowers` | Advanced operations |
61
- | `/autopilot [issue]` | Autonomous work loop — assess, plan, implement, QA, PR |
62
- | `/railway` | Railway-specific ops (needs `--railway` flag) |
63
-
64
- **13 Hooks** — run automatically on Claude Code events:
65
-
66
- | Hook | Event | Purpose |
67
- |------|-------|---------|
68
- | triage-router.sh | UserPromptSubmit | Cost-aware routing to cheaper agents |
69
- | session-bootstrap.sh | SessionStart | Compact project briefing |
70
- | sync-agents.sh | SessionStart | Auto-pull repo + re-sync |
71
- | pre-bash-guard.sh | PreToolUse | Blocks dangerous commands |
72
- | pre-edit-guard.sh | PreToolUse | Prevents edits to protected files |
73
- | pre-task-context.sh | PreToolUse | Injects CLAUDE.md into spawned agents |
74
- | post-test-summary.sh | PostToolUse | Summarizes test/lint output |
75
- | post-deploy-health.sh | PostToolUse | Health checks after deploys |
76
- | post-edit-lint.sh | PostToolUse | Lint check after file edits |
77
- | sync-worktree.sh | PostToolUse | Syncs config across worktrees |
78
- | sync-railway-worktree.sh | PostToolUse | Railway worktree sync |
79
- | post-git-state.sh | PostToolUse | Detects merges, resets autopilot phase |
80
- | session-start.sh | SessionStart | Legacy session start |
81
-
82
- ## Install Modes
83
-
84
- | Command | Purpose |
85
- |---------|---------|
86
- | `install.sh .` | Sync — create missing symlinks, skip existing files |
87
- | `install.sh --init .` | Greenfield — scaffold dirs + CLAUDE.md + settings.json + sync |
88
- | `install.sh --setup .` | Interactive — pick which categories to install |
89
- | `install.sh --convert .` | Migrate — replace matching copies with symlinks |
90
- | `install.sh --assess .` | Brownfield analysis — read-only, shows diffs |
91
- | `install.sh --upgrade .` | Brownfield upgrade — interactive per-file conversion |
92
- | `install.sh --status .` | Status report — what's linked, overridden, missing |
93
- | `install.sh --uninstall .` | Clean removal — restore backups, remove symlinks |
94
- | `install.sh --generate-config .` | Generate config from existing .claude/ contents |
95
- | `install.sh --key KEY` | Store license key |
96
-
97
- Flags: `--railway` (Railway skills), `--yes` (auto-approve upgrades), `--skip file1,file2` (exclude files)
98
-
99
- ## How It Works
100
-
101
- Symlinks from your project to `~/.claude-agents/`. Update the repo, all projects update.
68
+ **Fix a bug:**
69
+ ```
70
+ /fix #42 # root cause analysis + fix + regression tests
71
+ /ci-fix # auto-repair CI failures
72
+ ```
102
73
 
74
+ **Ship code:**
103
75
  ```
104
- your-project/.claude/agents/architect.md → ~/.claude-agents/agents/architect.md
76
+ /precheck # local CI in 30s
77
+ /qa commit # targeted QA on changed files
78
+ /pr # create PR with QA results
105
79
  ```
106
80
 
107
- **Override**: Replace any symlink with a regular file. Installer skips it forever.
108
- **Auto-sync**: `sync-agents.sh` hook pulls latest on every session start.
109
- **Auto-adapt**: `/calibrate` reads actual source code (not just config files) to tailor agents, skills, MCP servers, and workflows to your project.
110
- **Cost routing**: Triage router delegates to Haiku/Sonnet before using Opus.
81
+ **Autonomous mode:**
82
+ ```
83
+ /autopilot # picks up issues implements QAs creates PRs
84
+ ```
85
+
86
+ **Operations:**
87
+ ```
88
+ /sre status # health check all services
89
+ /incident # triage + parallel diagnosis
90
+ /restart # restart local dev servers
91
+ ```
111
92
 
112
- ## Docs
93
+ ## Also available as Claude Code plugin
113
94
 
114
- - **[GETTING-STARTED.md](GETTING-STARTED.md)** — Full user guide (install, usage, customization, contributing)
115
- - **[tests/README.md](tests/README.md)** Test suite quick start
116
- - **[tests/TESTING.md](tests/TESTING.md)** Full test guide (suites, fixtures, libraries, writing tests)
95
+ ```
96
+ /plugin marketplace add ArthTech-AI/arthai-marketplace
97
+ /plugin install forge@arthai-marketplace
98
+ ```
117
99
 
118
100
  ## Requirements
119
101
 
120
102
  - [Claude Code CLI](https://docs.anthropic.com/en/docs/claude-code)
121
- - `CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS=1` in settings
103
+ - Node.js 18+
122
104
  - License key (format: `ARTH-XXXX-XXXX-XXXX-XXXX`)
123
- - (Optional) [Railway CLI](https://docs.railway.app/guides/cli) for Railway skills
package/VERSION CHANGED
@@ -1 +1 @@
1
- 1.0.0
1
+ 1.0.2
package/compiler.sh CHANGED
@@ -153,6 +153,7 @@ for bundle_file in "${BUNDLE_FILES[@]}"; do
153
153
  mkdir -p "$PLUGIN_DIR/.claude-plugin"
154
154
  mkdir -p "$PLUGIN_DIR/agents"
155
155
  mkdir -p "$PLUGIN_DIR/skills"
156
+ mkdir -p "$PLUGIN_DIR/commands"
156
157
  mkdir -p "$PLUGIN_DIR/hooks"
157
158
 
158
159
  # ── 1. Write plugin.json ──────────────────────────────────────────────────
@@ -163,8 +164,7 @@ for bundle_file in "${BUNDLE_FILES[@]}"; do
163
164
  --arg name "$NAME" \
164
165
  --arg description "$DESC" \
165
166
  --arg version "$VERSION" \
166
- --arg author "Arth AI" \
167
- '{"name": $name, "description": $description, "version": $version, "author": $author}' \
167
+ '{"name": $name, "description": $description, "version": $version, "author": {"name": "Arth AI"}}' \
168
168
  > "$PLUGIN_DIR/.claude-plugin/plugin.json"
169
169
 
170
170
  # ── 2. Determine agents/skills/hooks lists ────────────────────────────────
@@ -223,19 +223,73 @@ for bundle_file in "${BUNDLE_FILES[@]}"; do
223
223
  ((AGENT_COUNT++)) || true
224
224
  done
225
225
 
226
- # ── 4. Copy skills ────────────────────────────────────────────────────────
226
+ # ── 4. Copy skills → commands/ (user-invocable) or skills/ (agent-invoked) ──
227
+ #
228
+ # Claude Code plugin system:
229
+ # commands/*.md → slash commands users type (/plugin:name)
230
+ # skills/*/SKILL.md → context skills Claude auto-invokes
231
+ #
232
+ # We detect user-invocable skills by checking for "user-invocable: true"
233
+ # in SKILL.md frontmatter. These become flat .md files in commands/.
234
+ # Custom frontmatter fields (user-invocable, arguments) are stripped
235
+ # since Claude Code doesn't recognize them.
227
236
 
228
237
  SKILL_COUNT=0
238
+ CMD_COUNT=0
229
239
  for skill_path in "${SKILL_PATHS[@]:-}"; do
230
240
  [ -z "$skill_path" ] && continue
231
241
  src="$SCRIPT_DIR/$skill_path"
232
- if [ -d "$src" ]; then
233
- # Use -P to avoid following symlinks (prevents cycles from install.sh artifacts)
234
- cp -rP "$src" "$PLUGIN_DIR/skills/"
235
- ((SKILL_COUNT++)) || true
242
+ if [ -d "$src" ] && [ -f "$src/SKILL.md" ]; then
243
+ # Check if this is a user-invocable skill goes to commands/
244
+ if grep -q 'user-invocable:.*true' "$src/SKILL.md" 2>/dev/null; then
245
+ # Copy SKILL.md to commands/<name>.md, stripping custom fields
246
+ skill_name=$(basename "$src")
247
+ sed '/^user-invocable:/d; /^arguments:/d' "$src/SKILL.md" \
248
+ > "$PLUGIN_DIR/commands/$skill_name.md"
249
+ # Copy any supporting files (references, scripts) alongside
250
+ find "$src" -maxdepth 1 -not -name SKILL.md -not -name "$(basename "$src")" -not -type l -not -path "$src" | while IFS= read -r extra; do
251
+ if [ -d "$extra" ]; then
252
+ rsync -a --no-links "$extra" "$PLUGIN_DIR/commands/"
253
+ elif [ -f "$extra" ]; then
254
+ cp "$extra" "$PLUGIN_DIR/commands/"
255
+ fi
256
+ done
257
+ ((CMD_COUNT++)) || true
258
+ else
259
+ # Agent-invoked skill → stays in skills/
260
+ rsync -a --no-links "$src" "$PLUGIN_DIR/skills/"
261
+ ((SKILL_COUNT++)) || true
262
+ fi
263
+ elif [ -d "$src" ]; then
264
+ # Directory without SKILL.md — check for nested skills (container dir)
265
+ if find "$src" -mindepth 2 -name "SKILL.md" -print -quit 2>/dev/null | grep -q .; then
266
+ # Container dir — process each sub-skill
267
+ for sub_skill in "$src"/*/; do
268
+ [ -f "$sub_skill/SKILL.md" ] || continue
269
+ if grep -q 'user-invocable:.*true' "$sub_skill/SKILL.md" 2>/dev/null; then
270
+ sub_name=$(basename "$sub_skill")
271
+ sed '/^user-invocable:/d; /^arguments:/d' "$sub_skill/SKILL.md" \
272
+ > "$PLUGIN_DIR/commands/$sub_name.md"
273
+ ((CMD_COUNT++)) || true
274
+ else
275
+ rsync -a --no-links "$sub_skill" "$PLUGIN_DIR/skills/"
276
+ ((SKILL_COUNT++)) || true
277
+ fi
278
+ done
279
+ else
280
+ rsync -a --no-links "$src" "$PLUGIN_DIR/skills/"
281
+ ((SKILL_COUNT++)) || true
282
+ fi
236
283
  elif [ -f "$src" ]; then
237
- cp "$src" "$PLUGIN_DIR/skills/"
238
- ((SKILL_COUNT++)) || true
284
+ # Flat .md file (e.g., explore.md)
285
+ if grep -q 'user-invocable:.*true' "$src" 2>/dev/null; then
286
+ sed '/^user-invocable:/d; /^arguments:/d' "$src" \
287
+ > "$PLUGIN_DIR/commands/$(basename "$src")"
288
+ ((CMD_COUNT++)) || true
289
+ else
290
+ cp "$src" "$PLUGIN_DIR/skills/"
291
+ ((SKILL_COUNT++)) || true
292
+ fi
239
293
  else
240
294
  echo " WARNING: Skill not found: $src" >&2
241
295
  ((ERRORS++)) || true
@@ -292,7 +346,12 @@ for bundle_file in "${BUNDLE_FILES[@]}"; do
292
346
  echo "$HOOKS_JSON" | jq '.' > "$PLUGIN_DIR/hooks/hooks.json"
293
347
  fi
294
348
 
295
- echo " agents=$AGENT_COUNT skills=$SKILL_COUNT hooks=$HOOK_COUNT"
349
+ # Remove empty directories
350
+ rmdir "$PLUGIN_DIR/commands" 2>/dev/null || true
351
+ rmdir "$PLUGIN_DIR/skills" 2>/dev/null || true
352
+ rmdir "$PLUGIN_DIR/hooks" 2>/dev/null || true
353
+
354
+ echo " agents=$AGENT_COUNT commands=$CMD_COUNT skills=$SKILL_COUNT hooks=$HOOK_COUNT"
296
355
  ((COMPILED++)) || true
297
356
  done
298
357
 
@@ -1,6 +1,8 @@
1
1
  {
2
2
  "name": "canvas",
3
3
  "description": "Design-driven development — adversarial design critique + frontend",
4
- "version": "1.0.0",
5
- "author": "Arth AI"
4
+ "version": "1.0.2",
5
+ "author": {
6
+ "name": "Arth AI"
7
+ }
6
8
  }
@@ -1,8 +1,6 @@
1
1
  ---
2
2
  name: planning
3
3
  description: "Spin up an adversarial planning team for a feature. Usage: /planning <feature-name> [--design] [--gtm] [--fast] [--lite] [-- <brief>]"
4
- user-invocable: true
5
- arguments: "<feature-name> <--design> <--gtm> <--fast> <--lite> <-- brief>"
6
4
  ---
7
5
 
8
6
  # Planning Team Skill
@@ -1,6 +1,8 @@
1
1
  {
2
2
  "name": "compass",
3
3
  "description": "Product strategy — PM, GTM, user research, content strategy",
4
- "version": "1.0.0",
5
- "author": "Arth AI"
4
+ "version": "1.0.2",
5
+ "author": {
6
+ "name": "Arth AI"
7
+ }
6
8
  }
@@ -1,8 +1,6 @@
1
1
  ---
2
2
  name: planning
3
3
  description: "Spin up an adversarial planning team for a feature. Usage: /planning <feature-name> [--design] [--gtm] [--fast] [--lite] [-- <brief>]"
4
- user-invocable: true
5
- arguments: "<feature-name> <--design> <--gtm> <--fast> <--lite> <-- brief>"
6
4
  ---
7
5
 
8
6
  # Planning Team Skill
@@ -1,6 +1,8 @@
1
1
  {
2
2
  "name": "counsel",
3
3
  "description": "AI consulting toolkit — client discovery, proposals, deliverables",
4
- "version": "1.0.0",
5
- "author": "Arth AI"
4
+ "version": "1.0.2",
5
+ "author": {
6
+ "name": "Arth AI"
7
+ }
6
8
  }
@@ -1,8 +1,6 @@
1
1
  ---
2
2
  name: client-discovery
3
3
  description: "Client discovery and AI readiness assessment. Usage: /client-discovery <client-name> [-- <brief>]"
4
- user-invocable: true
5
- arguments: "<client-name> [-- brief]"
6
4
  ---
7
5
 
8
6
  # Client Discovery & AI Readiness Assessment
@@ -1,8 +1,6 @@
1
1
  ---
2
2
  name: consulting
3
3
  description: "Run a full AI consulting engagement. Usage: /consulting <client-name> [--phase discovery|assess|propose|design|deliver|track] [-- <brief>]"
4
- user-invocable: true
5
- arguments: "<client-name> [--phase] [-- brief]"
6
4
  ---
7
5
 
8
6
  # AI Consulting Engagement Orchestrator
@@ -1,8 +1,6 @@
1
1
  ---
2
2
  name: deliverable-builder
3
3
  description: "Build client-ready consulting deliverables. Usage: /deliverable-builder <client-name> [--type final-report|status-update|board-deck|implementation-guide|training-plan|change-management|data-strategy]"
4
- user-invocable: true
5
- arguments: "<client-name> [--type]"
6
4
  ---
7
5
 
8
6
  # Deliverable Builder Skill
@@ -1,8 +1,6 @@
1
1
  ---
2
2
  name: engagement-tracker
3
3
  description: "Track consulting engagement progress and milestones. Usage: /engagement-tracker <client-name> [--action status|update|milestone]"
4
- user-invocable: true
5
- arguments: "<client-name> [--action status|update|milestone]"
6
4
  ---
7
5
 
8
6
  # Engagement Tracker Skill
@@ -1,8 +1,6 @@
1
1
  ---
2
2
  name: market-research
3
3
  description: "Research industry AI adoption, competitors, and trends. Usage: /market-research <client-name> [--focus industry|competitors|trends]"
4
- user-invocable: true
5
- arguments: "<client-name> [--focus industry|competitors|trends]"
6
4
  ---
7
5
 
8
6
  # Market Research Skill
@@ -1,8 +1,6 @@
1
1
  ---
2
2
  name: opportunity-map
3
3
  description: "Map AI opportunities by ROI and effort, recommend target orgs. Usage: /opportunity-map <client-name>"
4
- user-invocable: true
5
- arguments: "<client-name>"
6
4
  ---
7
5
 
8
6
  # AI Opportunity Mapping
@@ -1,8 +1,6 @@
1
1
  ---
2
2
  name: pitch-generator
3
3
  description: "Generate consulting proposals and pitch documents. Usage: /pitch-generator <client-name> [--format proposal|exec-summary|deck-outline]"
4
- user-invocable: true
5
- arguments: "<client-name> [--format proposal|exec-summary|deck-outline]"
6
4
  ---
7
5
 
8
6
  # Consulting Pitch & Proposal Generator
@@ -1,8 +1,6 @@
1
1
  ---
2
2
  name: roi-calculator
3
3
  description: "Calculate ROI for AI initiatives with sensitivity analysis. Usage: /roi-calculator <client-name> [--initiative <name>]"
4
- user-invocable: true
5
- arguments: "<client-name> [--initiative <name>]"
6
4
  ---
7
5
 
8
6
  # AI Initiative ROI Calculator
@@ -1,8 +1,6 @@
1
1
  ---
2
2
  name: share
3
3
  description: "Format plans and strategies for sharing. Adds attribution, cleans sensitive info, outputs shareable format. Usage: /share <plan-name> <--format md|slack|twitter>"
4
- user-invocable: true
5
- arguments: "<plan-name> <--format md|slack|twitter>"
6
4
  ---
7
5
 
8
6
  # Share Skill — Shareable Artifact Generator
@@ -1,8 +1,6 @@
1
1
  ---
2
2
  name: solution-architect
3
3
  description: "Design AI solutions for consulting engagements. Usage: /solution-architect <client-name> [--initiative <name>]"
4
- user-invocable: true
5
- arguments: "<client-name> [--initiative <name>]"
6
4
  ---
7
5
 
8
6
  # Solution Architect Skill
@@ -1,8 +1,6 @@
1
1
  ---
2
2
  name: templates
3
3
  description: "Generate structured deliverables from templates. Usage: /templates <type> <topic>"
4
- user-invocable: true
5
- arguments: "<type> <topic>"
6
4
  ---
7
5
 
8
6
  Provides structured templates for common non-engineering deliverables. Each template
@@ -1,8 +1,6 @@
1
1
  ---
2
2
  name: welcome
3
3
  description: "Role-aware welcome for non-engineers. Presents intent-based menu instead of blank terminal. Usage: /welcome"
4
- user-invocable: true
5
- arguments: ""
6
4
  ---
7
5
 
8
6
  # Welcome Skill — Role-Based Intent Router
@@ -1,8 +1,6 @@
1
1
  ---
2
2
  name: wizard
3
3
  description: "Guided step-by-step workflows for non-engineers. Role-based flows that walk you through common tasks. Usage: /wizard <role> <step>"
4
- user-invocable: true
5
- arguments: "<role> <step>"
6
4
  ---
7
5
 
8
6
  Guided workflows that walk non-engineers through multi-step processes. Each workflow is designed
@@ -1,6 +1,8 @@
1
1
  {
2
2
  "name": "cruise",
3
3
  "description": "Autopilot mode — autonomous task execution (requires forge+scalpel+sentinel)",
4
- "version": "1.0.0",
5
- "author": "Arth AI"
4
+ "version": "1.0.2",
5
+ "author": {
6
+ "name": "Arth AI"
7
+ }
6
8
  }
@@ -1,8 +1,6 @@
1
1
  ---
2
2
  name: autopilot
3
3
  description: "Autonomous work loop — picks up issues, implements, QAs, PRs. Stops for merge approval."
4
- user-invocable: true
5
- arguments: "<issue_number> <--dry-run>"
6
4
  ---
7
5
 
8
6
  # Autopilot Skill — Autonomous Junior Engineer
@@ -1,6 +1,8 @@
1
1
  {
2
2
  "name": "forge",
3
3
  "description": "Full development workflow — plan, build, test, ship",
4
- "version": "1.0.0",
5
- "author": "Arth AI"
4
+ "version": "1.0.2",
5
+ "author": {
6
+ "name": "Arth AI"
7
+ }
6
8
  }
@@ -1,8 +1,6 @@
1
1
  ---
2
2
  name: implement
3
3
  description: "Spin up an implementation team from a plan. Usage: /implement <feature-name> [--frontend-only] [--backend-only] [--no-redteam] [--redteam-once] [--redteam-strict]"
4
- user-invocable: true
5
- arguments: "<feature-name> <--frontend-only> <--backend-only> <--no-redteam> <--redteam-once> <--redteam-strict>"
6
4
  ---
7
5
 
8
6
  # Implementation Team Skill
@@ -1,8 +1,6 @@
1
1
  ---
2
2
  name: planning
3
3
  description: "Spin up an adversarial planning team for a feature. Usage: /planning <feature-name> [--design] [--gtm] [--fast] [--lite] [-- <brief>]"
4
- user-invocable: true
5
- arguments: "<feature-name> <--design> <--gtm> <--fast> <--lite> <-- brief>"
6
4
  ---
7
5
 
8
6
  # Planning Team Skill
@@ -1,7 +1,6 @@
1
1
  ---
2
2
  name: pr
3
3
  description: Run QA, create a GitHub PR, and manage post-merge workflow. Never push directly to main.
4
- user-invocable: true
5
4
  ---
6
5
 
7
6
  # /pr — Ship Code Safely
@@ -1,8 +1,6 @@
1
1
  ---
2
2
  name: precheck
3
3
  description: "Run local tests before pushing. Catches CI failures locally in 30s instead of 4min round-trip. Usage: /precheck"
4
- user-invocable: true
5
- arguments: ""
6
4
  ---
7
5
 
8
6
  # /precheck — Local CI Before Push
@@ -1,8 +1,6 @@
1
1
  ---
2
2
  name: qa
3
3
  description: "Run QA checks. Usage: /qa (commit), /qa full (comprehensive), /qa staging (deployed), /qa prod (read-only)."
4
- user-invocable: true
5
- arguments: "<mode>"
6
4
  ---
7
5
 
8
6
  # Universal QA Framework
@@ -1,8 +1,6 @@
1
1
  ---
2
2
  name: review-pr
3
3
  description: "Differentiated PR review — bug fix vs feature. Scope compliance, regression tests, behavior contract, knowledge base lookup. Uses built-in code review + project-specific checks. Usage: /review-pr <#N|branch> <--type bug|feature>"
4
- user-invocable: true
5
- arguments: "<#N|branch> <--type bug|feature>"
6
4
  ---
7
5
 
8
6
  # /review-pr — Differentiated PR Review
@@ -1,6 +1,8 @@
1
1
  {
2
2
  "name": "prime",
3
3
  "description": "Everything — all agents, skills, and hooks in one plugin",
4
- "version": "1.0.0",
5
- "author": "Arth AI"
4
+ "version": "1.0.2",
5
+ "author": {
6
+ "name": "Arth AI"
7
+ }
6
8
  }
@@ -1,8 +1,6 @@
1
1
  ---
2
2
  name: arth
3
3
  description: "Manage Arth services (engine, dashboard, DB) and register projects. Usage: /arth [restart|add|status|fix]"
4
- user-invocable: true
5
- arguments: "<command>"
6
4
  ---
7
5
 
8
6
  # Arth Operations Skill
@@ -1,8 +1,6 @@
1
1
  ---
2
2
  name: autopilot
3
3
  description: "Autonomous work loop — picks up issues, implements, QAs, PRs. Stops for merge approval."
4
- user-invocable: true
5
- arguments: "<issue_number> <--dry-run>"
6
4
  ---
7
5
 
8
6
  # Autopilot Skill — Autonomous Junior Engineer