@hailer/mcp 1.0.29 → 1.1.3
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.
- package/.claude/.session-checked +1 -0
- package/.claude/agents/agent-ada-skill-builder.md +10 -2
- package/.claude/agents/agent-alejandro-function-fields.md +104 -37
- package/.claude/agents/agent-bjorn-config-audit.md +41 -21
- package/.claude/agents/agent-builder-agent-creator.md +13 -3
- package/.claude/agents/agent-code-simplifier.md +53 -0
- package/.claude/agents/agent-dmitri-activity-crud.md +126 -11
- package/.claude/agents/agent-giuseppe-app-builder.md +212 -22
- package/.claude/agents/agent-gunther-mcp-tools.md +7 -36
- package/.claude/agents/agent-helga-workflow-config.md +75 -10
- package/.claude/agents/agent-igor-activity-mover-automation.md +125 -0
- package/.claude/agents/agent-ingrid-doc-templates.md +164 -36
- package/.claude/agents/agent-ivan-monolith.md +154 -0
- package/.claude/agents/agent-kenji-data-reader.md +15 -8
- package/.claude/agents/agent-lars-code-inspector.md +56 -8
- package/.claude/agents/agent-marco-mockup-builder.md +110 -0
- package/.claude/agents/agent-marcus-api-documenter.md +323 -0
- package/.claude/agents/agent-marketplace-publisher.md +232 -72
- package/.claude/agents/agent-marketplace-reviewer.md +255 -79
- package/.claude/agents/agent-permissions-handler.md +208 -0
- package/.claude/agents/agent-simple-writer.md +48 -0
- package/.claude/agents/agent-svetlana-code-review.md +127 -14
- package/.claude/agents/agent-tanya-test-runner.md +333 -0
- package/.claude/agents/agent-ui-designer.md +100 -0
- package/.claude/agents/agent-viktor-sql-insights.md +19 -6
- package/.claude/agents/agent-web-search.md +55 -0
- package/.claude/agents/agent-yevgeni-discussions.md +7 -1
- package/.claude/agents/agent-zara-zapier.md +159 -0
- package/.claude/commands/app-squad.md +135 -0
- package/.claude/commands/audit-squad.md +158 -0
- package/.claude/commands/autoplan.md +563 -0
- package/.claude/commands/cleanup-squad.md +98 -0
- package/.claude/commands/config-squad.md +106 -0
- package/.claude/commands/crud-squad.md +87 -0
- package/.claude/commands/data-squad.md +97 -0
- package/.claude/commands/debug-squad.md +303 -0
- package/.claude/commands/doc-squad.md +65 -0
- package/.claude/commands/handoff.md +137 -0
- package/.claude/commands/health.md +49 -0
- package/.claude/commands/help.md +2 -1
- package/.claude/commands/help:agents.md +96 -16
- package/.claude/commands/help:commands.md +55 -11
- package/.claude/commands/help:faq.md +16 -1
- package/.claude/commands/help:skills.md +93 -0
- package/.claude/commands/hotfix-squad.md +112 -0
- package/.claude/commands/integration-squad.md +82 -0
- package/.claude/commands/janitor-squad.md +167 -0
- package/.claude/commands/learn-auto.md +120 -0
- package/.claude/commands/learn.md +120 -0
- package/.claude/commands/mcp-list.md +27 -0
- package/.claude/commands/onboard-squad.md +140 -0
- package/.claude/commands/plan-workspace.md +732 -0
- package/.claude/commands/prd.md +131 -0
- package/.claude/commands/project-status.md +82 -0
- package/.claude/commands/publish.md +138 -0
- package/.claude/commands/recap.md +69 -0
- package/.claude/commands/restore.md +64 -0
- package/.claude/commands/review-squad.md +152 -0
- package/.claude/commands/save.md +24 -0
- package/.claude/commands/stats.md +19 -0
- package/.claude/commands/swarm.md +210 -0
- package/.claude/commands/tool-builder.md +3 -1
- package/.claude/commands/ws-pull.md +1 -1
- package/.claude/commands/yolo-off.md +17 -0
- package/.claude/commands/yolo.md +82 -0
- package/.claude/hooks/_shared-memory.cjs +305 -0
- package/.claude/hooks/_utils.cjs +134 -0
- package/.claude/hooks/agent-failure-detector.cjs +164 -79
- package/.claude/hooks/agent-usage-logger.cjs +204 -0
- package/.claude/hooks/app-edit-guard.cjs +20 -4
- package/.claude/hooks/auto-learn.cjs +316 -0
- package/.claude/hooks/bash-guard.cjs +282 -0
- package/.claude/hooks/builder-mode-manager.cjs +183 -54
- package/.claude/hooks/bulk-activity-guard.cjs +283 -0
- package/.claude/hooks/context-watchdog.cjs +292 -0
- package/.claude/hooks/delegation-reminder.cjs +478 -0
- package/.claude/hooks/design-system-lint.cjs +283 -0
- package/.claude/hooks/post-scaffold-hook.cjs +16 -3
- package/.claude/hooks/prompt-guard.cjs +366 -0
- package/.claude/hooks/publish-template-guard.cjs +16 -0
- package/.claude/hooks/session-start.cjs +35 -0
- package/.claude/hooks/shared-memory-writer.cjs +147 -0
- package/.claude/hooks/skill-injector.cjs +140 -0
- package/.claude/hooks/skill-usage-logger.cjs +258 -0
- package/.claude/hooks/src-edit-guard.cjs +16 -1
- package/.claude/hooks/sync-marketplace-agents.cjs +53 -8
- package/.claude/scripts/yolo-toggle.cjs +142 -0
- package/.claude/settings.json +141 -14
- package/.claude/skills/SDK-activity-patterns/SKILL.md +428 -0
- package/.claude/skills/SDK-document-templates/SKILL.md +1033 -0
- package/.claude/skills/SDK-function-fields/SKILL.md +542 -0
- package/.claude/skills/SDK-generate-skill/SKILL.md +92 -0
- package/.claude/skills/SDK-init-skill/SKILL.md +127 -0
- package/.claude/skills/SDK-insight-queries/SKILL.md +787 -0
- package/.claude/skills/SDK-ws-config-skill/SKILL.md +1139 -0
- package/.claude/skills/agent-structure/SKILL.md +98 -0
- package/.claude/skills/api-documentation-patterns/SKILL.md +474 -0
- package/.claude/skills/chrome-mcp-reference/SKILL.md +370 -0
- package/.claude/skills/delegation-routing/SKILL.md +202 -0
- package/.claude/skills/frontend-design/SKILL.md +254 -0
- package/.claude/skills/hailer-activity-mover/SKILL.md +213 -0
- package/.claude/skills/hailer-api-client/SKILL.md +518 -0
- package/.claude/skills/hailer-app-builder/SKILL.md +939 -11
- package/.claude/skills/hailer-apps-pictures/SKILL.md +269 -0
- package/.claude/skills/hailer-design-system/SKILL.md +235 -0
- package/.claude/skills/hailer-monolith-automations/SKILL.md +686 -0
- package/.claude/skills/hailer-permissions-system/SKILL.md +121 -0
- package/.claude/skills/hailer-project-protocol/SKILL.md +488 -0
- package/.claude/skills/hailer-rest-api/SKILL.md +61 -0
- package/.claude/skills/hailer-rest-api/hailer-activities.md +184 -0
- package/.claude/skills/hailer-rest-api/hailer-admin.md +473 -0
- package/.claude/skills/hailer-rest-api/hailer-calendar.md +256 -0
- package/.claude/skills/hailer-rest-api/hailer-feed.md +249 -0
- package/.claude/skills/hailer-rest-api/hailer-insights.md +195 -0
- package/.claude/skills/hailer-rest-api/hailer-messaging.md +276 -0
- package/.claude/skills/hailer-rest-api/hailer-workflows.md +283 -0
- package/.claude/skills/insight-join-patterns/SKILL.md +3 -0
- package/.claude/skills/integration-patterns/SKILL.md +421 -0
- package/.claude/skills/json-only-output/SKILL.md +52 -12
- package/.claude/skills/lsp-setup/SKILL.md +160 -0
- package/.claude/skills/mcp-direct-tools/SKILL.md +153 -0
- package/.claude/skills/optional-parameters/SKILL.md +32 -23
- package/.claude/skills/publish-hailer-app/SKILL.md +76 -12
- package/.claude/skills/testing-patterns/SKILL.md +630 -0
- package/.claude/skills/tool-builder/SKILL.md +250 -0
- package/.claude/skills/tool-parameter-usage/SKILL.md +59 -45
- package/.claude/skills/tool-response-verification/SKILL.md +82 -48
- package/.claude/skills/zapier-hailer-patterns/SKILL.md +581 -0
- package/.env.example +26 -7
- package/CLAUDE.md +290 -224
- package/dist/CLAUDE.md +370 -0
- package/dist/app.d.ts +1 -1
- package/dist/app.js +101 -101
- package/dist/bot/bot-config.d.ts +26 -0
- package/dist/bot/bot-config.js +135 -0
- package/dist/bot/bot-manager.d.ts +40 -0
- package/dist/bot/bot-manager.js +137 -0
- package/dist/bot/bot.d.ts +127 -0
- package/dist/bot/bot.js +1328 -0
- package/dist/bot/operation-logger.d.ts +28 -0
- package/dist/bot/operation-logger.js +132 -0
- package/dist/bot/services/conversation-manager.d.ts +60 -0
- package/dist/bot/services/conversation-manager.js +246 -0
- package/dist/bot/services/index.d.ts +9 -0
- package/dist/bot/services/index.js +18 -0
- package/dist/bot/services/message-classifier.d.ts +42 -0
- package/dist/bot/services/message-classifier.js +228 -0
- package/dist/bot/services/message-formatter.d.ts +88 -0
- package/dist/bot/services/message-formatter.js +411 -0
- package/dist/bot/services/session-logger.d.ts +162 -0
- package/dist/bot/services/session-logger.js +724 -0
- package/dist/bot/services/token-billing.d.ts +78 -0
- package/dist/bot/services/token-billing.js +233 -0
- package/dist/bot/services/types.d.ts +169 -0
- package/dist/bot/services/types.js +12 -0
- package/dist/bot/services/typing-indicator.d.ts +23 -0
- package/dist/bot/services/typing-indicator.js +60 -0
- package/dist/bot/services/workspace-schema-cache.d.ts +122 -0
- package/dist/bot/services/workspace-schema-cache.js +506 -0
- package/dist/bot/tool-executor.d.ts +28 -0
- package/dist/bot/tool-executor.js +48 -0
- package/dist/bot/workspace-overview.d.ts +12 -0
- package/dist/bot/workspace-overview.js +94 -0
- package/dist/cli.d.ts +1 -8
- package/dist/cli.js +1 -253
- package/dist/config.d.ts +96 -3
- package/dist/config.js +148 -37
- package/dist/core.d.ts +5 -0
- package/dist/core.js +61 -8
- package/dist/lib/discussion-lock.d.ts +42 -0
- package/dist/lib/discussion-lock.js +110 -0
- package/dist/lib/logger.d.ts +0 -1
- package/dist/lib/logger.js +39 -23
- package/dist/lib/request-logger.d.ts +77 -0
- package/dist/lib/request-logger.js +147 -0
- package/dist/mcp/UserContextCache.js +16 -13
- package/dist/mcp/hailer-clients.js +18 -17
- package/dist/mcp/signal-handler.js +43 -13
- package/dist/mcp/tool-registry.d.ts +4 -15
- package/dist/mcp/tool-registry.js +94 -32
- package/dist/mcp/tools/activity.js +28 -69
- package/dist/mcp/tools/app-core.js +9 -4
- package/dist/mcp/tools/app-marketplace.js +22 -12
- package/dist/mcp/tools/app-member.js +5 -2
- package/dist/mcp/tools/app-scaffold.js +32 -18
- package/dist/mcp/tools/bot-config/constants.d.ts +23 -0
- package/dist/mcp/tools/bot-config/constants.js +94 -0
- package/dist/mcp/tools/bot-config/core.d.ts +253 -0
- package/dist/mcp/tools/bot-config/core.js +2456 -0
- package/dist/mcp/tools/bot-config/index.d.ts +10 -0
- package/dist/mcp/tools/bot-config/index.js +59 -0
- package/dist/mcp/tools/bot-config/tools.d.ts +7 -0
- package/dist/mcp/tools/bot-config/tools.js +15 -0
- package/dist/mcp/tools/bot-config/types.d.ts +50 -0
- package/dist/mcp/tools/bot-config/types.js +6 -0
- package/dist/mcp/tools/discussion.js +107 -77
- package/dist/mcp/tools/document.d.ts +11 -0
- package/dist/mcp/tools/document.js +741 -0
- package/dist/mcp/tools/file.js +5 -2
- package/dist/mcp/tools/insight.js +36 -12
- package/dist/mcp/tools/investigate.d.ts +9 -0
- package/dist/mcp/tools/investigate.js +254 -0
- package/dist/mcp/tools/user.d.ts +2 -4
- package/dist/mcp/tools/user.js +9 -50
- package/dist/mcp/tools/workflow.d.ts +1 -0
- package/dist/mcp/tools/workflow.js +164 -52
- package/dist/mcp/utils/hailer-api-client.js +26 -17
- package/dist/mcp/webhook-handler.d.ts +64 -3
- package/dist/mcp/webhook-handler.js +227 -9
- package/dist/mcp-server.d.ts +4 -0
- package/dist/mcp-server.js +237 -25
- package/dist/plugins/bug-fixer/index.d.ts +2 -0
- package/dist/plugins/bug-fixer/index.js +18 -0
- package/dist/plugins/bug-fixer/tools.d.ts +45 -0
- package/dist/plugins/bug-fixer/tools.js +1096 -0
- package/package.json +10 -10
- package/scripts/test-hal-tools.ts +154 -0
- package/.claude/agents/agent-nora-name-functions.md +0 -123
- package/.claude/assistant-knowledge.md +0 -23
- package/.claude/commands/install-plugin.md +0 -261
- package/.claude/commands/list-plugins.md +0 -42
- package/.claude/commands/marketplace-setup.md +0 -33
- package/.claude/commands/publish-plugin.md +0 -55
- package/.claude/commands/uninstall-plugin.md +0 -87
- package/.claude/hooks/interactive-mode.cjs +0 -87
- package/.claude/hooks/mcp-server-guard.cjs +0 -108
- package/.claude/skills/marketplace-publishing.md +0 -155
- package/dist/bot/chat-bot.d.ts +0 -31
- package/dist/bot/chat-bot.js +0 -357
- package/dist/mcp/tools/metrics.d.ts +0 -13
- package/dist/mcp/tools/metrics.js +0 -546
- package/dist/stdio-server.d.ts +0 -14
- package/dist/stdio-server.js +0 -114
|
@@ -1,120 +1,280 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: agent-marketplace-publisher
|
|
3
|
-
description: Publishes plugins to Hailer marketplace
|
|
4
|
-
model:
|
|
3
|
+
description: Publishes plugins to Hailer marketplace. Git workflows, registry updates, PR creation.
|
|
4
|
+
model: haiku
|
|
5
5
|
tools: Bash, Read, Write, Edit, Glob
|
|
6
|
+
skills:
|
|
7
|
+
- json-only-output
|
|
6
8
|
---
|
|
7
9
|
|
|
8
10
|
<identity>
|
|
9
|
-
I am the Marketplace Publisher. I
|
|
11
|
+
I am the Marketplace Publisher. I execute git workflows by running actual Bash commands.
|
|
12
|
+
|
|
13
|
+
CRITICAL: I MUST use the Bash tool for EVERY git/rsync/gh operation. I MUST NOT return JSON results without first running the actual commands. If I return a PR number, it MUST come from real `gh pr create` output. Returning fabricated results is a critical failure.
|
|
14
|
+
|
|
15
|
+
My workflow: Read inputs → Run bash commands → Capture real output → Return JSON with real values.
|
|
10
16
|
</identity>
|
|
11
17
|
|
|
12
18
|
<handles>
|
|
13
|
-
-
|
|
14
|
-
- Publish
|
|
15
|
-
- Publish
|
|
19
|
+
- **version_check** - Compare manifest.json with marketplace, show out-of-sync items
|
|
20
|
+
- **publish_plugin** - Publish single plugin to marketplace
|
|
21
|
+
- **publish_all** - Publish all out-of-sync plugins
|
|
16
22
|
- Create plugin.json metadata
|
|
17
23
|
- Update marketplace.json registry
|
|
18
24
|
- Version validation (block downgrades)
|
|
25
|
+
- Git branch, commit, push, PR creation
|
|
26
|
+
- Changelog generation
|
|
19
27
|
</handles>
|
|
20
28
|
|
|
29
|
+
<skills>
|
|
30
|
+
Core skills are auto-injected by SubagentStart hook — already in your context.
|
|
31
|
+
</skills>
|
|
32
|
+
|
|
21
33
|
<rules>
|
|
22
|
-
1. **
|
|
23
|
-
2. **
|
|
24
|
-
3. **
|
|
25
|
-
4. **
|
|
26
|
-
5. **JSON
|
|
34
|
+
1. **MUST EXECUTE COMMANDS** - Every workflow step with a bash command MUST be run via the Bash tool. NEVER return success/pr_created status without actually running git and gh commands.
|
|
35
|
+
2. **NEVER FABRICATE** - Must call tools to verify paths, check git status. Every PR number and URL in output must come from actual gh command output.
|
|
36
|
+
3. **VERSION CHECK** - If plugin exists, new version MUST be > existing version (semver).
|
|
37
|
+
4. **DUPLICATE CHECK** - Scan ALL plugins for same filename. Return needs_confirmation if found.
|
|
38
|
+
5. **JSON SAFETY** - Verify marketplace.json is valid JSON after edit.
|
|
39
|
+
6. **GIT CLEAN** - Check git status before commit.
|
|
40
|
+
7. **GIT TAG** - Always create tag: `plugin-name@version` after commit.
|
|
41
|
+
8. **CHANGELOG** - Always update plugin's CHANGELOG.md with version entry.
|
|
42
|
+
9. **JSON ONLY** - Output closing brace, then STOP. Zero prose after JSON.
|
|
27
43
|
</rules>
|
|
28
44
|
|
|
29
|
-
<
|
|
30
|
-
|
|
45
|
+
<manifest-versioning>
|
|
46
|
+
## Manifest-Based Version Tracking
|
|
47
|
+
|
|
48
|
+
The manifest.json tracks versions of all components:
|
|
49
|
+
|
|
50
|
+
```
|
|
51
|
+
.claude/manifest.json
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
Structure:
|
|
55
|
+
```json
|
|
56
|
+
{
|
|
57
|
+
"agents": { "agent-kenji-data-reader": "1.2.0", ... },
|
|
58
|
+
"skills": { "SDK-insight-queries": "1.1.0", ... },
|
|
59
|
+
"hooks": { "auto-learn": "1.0.0", ... }
|
|
60
|
+
}
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
**Usage:**
|
|
64
|
+
1. **version_check task**: Compare manifest with marketplace plugins, report mismatches
|
|
65
|
+
2. **publish_plugin**: Read version from manifest.json (source of truth), update plugin's plugin.json
|
|
66
|
+
|
|
67
|
+
**Version comparison flow:**
|
|
68
|
+
```bash
|
|
69
|
+
# Get manifest version
|
|
70
|
+
MANIFEST_VER=$(node -e "console.log(require('./.claude/manifest.json').agents['agent-kenji-data-reader'])")
|
|
71
|
+
|
|
72
|
+
# Get marketplace plugin version
|
|
73
|
+
PLUGIN_VER=$(node -e "console.log(require('./Hailer-Marketplace/agent-kenji-data-reader/.claude-plugin/plugin.json').version)")
|
|
74
|
+
|
|
75
|
+
# Compare
|
|
76
|
+
if [ "$MANIFEST_VER" != "$PLUGIN_VER" ]; then
|
|
77
|
+
echo "Out of sync: manifest=$MANIFEST_VER, plugin=$PLUGIN_VER"
|
|
78
|
+
fi
|
|
79
|
+
```
|
|
80
|
+
</manifest-versioning>
|
|
81
|
+
|
|
82
|
+
<duplicate-detection>
|
|
83
|
+
## Auto-detect duplicates before publishing
|
|
84
|
+
|
|
85
|
+
BEFORE creating/updating files, scan marketplace for the same filename:
|
|
86
|
+
|
|
87
|
+
```bash
|
|
88
|
+
cd Hailer-Marketplace
|
|
89
|
+
find . -name "agent-marco-mockup-builder.md" -o -name "SKILL.md" | grep -v node_modules
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
If file exists in MULTIPLE plugins:
|
|
93
|
+
1. List all plugins containing this file
|
|
94
|
+
2. Return `needs_confirmation` status with list of affected plugins
|
|
95
|
+
3. If user confirms `update_all: true`, update ALL plugins containing this file
|
|
96
|
+
4. Increment patch version for each affected plugin
|
|
97
|
+
5. Create separate git tags for each
|
|
98
|
+
</duplicate-detection>
|
|
99
|
+
|
|
100
|
+
<version-comparison>
|
|
101
|
+
Use node to compare semver:
|
|
102
|
+
```bash
|
|
103
|
+
node -e "const [a,b]=['1.0.0','1.1.0'].map(v=>v.split('.').map(Number)); console.log(a[0]<b[0]||(a[0]==b[0]&&(a[1]<b[1]||(a[1]==b[1]&&a[2]<b[2]))))"
|
|
104
|
+
```
|
|
31
105
|
|
|
32
|
-
|
|
33
|
-
|
|
106
|
+
If existing version found, BLOCK publish if new_version <= existing_version.
|
|
107
|
+
Return error: "Version 1.0.0 must be greater than existing 1.0.0"
|
|
108
|
+
</version-comparison>
|
|
109
|
+
|
|
110
|
+
<changelog-format>
|
|
111
|
+
# Changelog
|
|
112
|
+
|
|
113
|
+
## [1.1.0] - 2025-01-22
|
|
114
|
+
- Updated feature X
|
|
115
|
+
|
|
116
|
+
## [1.0.0] - 2025-01-15
|
|
117
|
+
- Initial release
|
|
118
|
+
|
|
119
|
+
Prepend new version at top. Get date with: `date +%Y-%m-%d`
|
|
120
|
+
If no changelog_message provided, use: "Version {version} release"
|
|
121
|
+
</changelog-format>
|
|
122
|
+
|
|
123
|
+
<git-tags>
|
|
124
|
+
After successful push:
|
|
125
|
+
```bash
|
|
126
|
+
git tag "plugin-name@1.0.0"
|
|
127
|
+
git push origin "plugin-name@1.0.0"
|
|
128
|
+
```
|
|
129
|
+
</git-tags>
|
|
130
|
+
|
|
131
|
+
<marketplace-structure>
|
|
132
|
+
Hailer-Marketplace/
|
|
133
|
+
├── .claude-plugin/
|
|
134
|
+
│ ├── marketplace.json # Registry - MUST add entry here
|
|
135
|
+
│ └── plugin.json # Root marketplace metadata
|
|
136
|
+
├── plugin-name/ # Each plugin at root level
|
|
137
|
+
│ ├── .claude-plugin/
|
|
138
|
+
│ │ └── plugin.json # Plugin metadata
|
|
139
|
+
│ └── agents/ # For agent plugins
|
|
140
|
+
│ └── agent-name.md
|
|
141
|
+
│ └── skills/ # For skill plugins
|
|
142
|
+
│ └── skill-name/
|
|
143
|
+
│ └── SKILL.md
|
|
144
|
+
│ └── hooks/ # For hook plugins
|
|
145
|
+
│ └── hooks.json
|
|
146
|
+
</marketplace-structure>
|
|
34
147
|
|
|
35
148
|
<workflow>
|
|
149
|
+
## publish_plugin task
|
|
150
|
+
|
|
36
151
|
1. cd to marketplace path
|
|
37
|
-
2.
|
|
38
|
-
3.
|
|
39
|
-
4. **
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
152
|
+
2. git checkout main && git pull origin main
|
|
153
|
+
3. **CREATE BRANCH**: `git checkout -b publish/{plugin-name}-{version}`
|
|
154
|
+
4. **DUPLICATE CHECK**: Search for same filename in ALL plugins
|
|
155
|
+
5. **VERSION CHECK**: If plugin exists, new version > existing version
|
|
156
|
+
6. Create/update plugin folder structure based on type
|
|
157
|
+
7. Create/update .claude-plugin/plugin.json with metadata
|
|
158
|
+
8. Write content file (agent.md, SKILL.md, hooks.json)
|
|
159
|
+
9. **CHANGELOG**: Create/update CHANGELOG.md
|
|
160
|
+
10. Update marketplace.json registry
|
|
161
|
+
11. Validate JSON: `node -e "JSON.parse(require('fs').readFileSync('file.json'))"`
|
|
162
|
+
12. git add -A && git commit
|
|
163
|
+
13. git push origin -u publish/{plugin-name}-{version}
|
|
164
|
+
14. **CREATE PR:**
|
|
165
|
+
```bash
|
|
166
|
+
PR_URL=$(gh pr create --repo Bdolf/Hailer-Marketplace --base main \
|
|
167
|
+
--head publish/{plugin-name}-{version} \
|
|
168
|
+
--title "Release {plugin-name}@{version}" \
|
|
169
|
+
--body "...")
|
|
170
|
+
PR_NUMBER=$(echo "$PR_URL" | grep -oE '[0-9]+$')
|
|
171
|
+
```
|
|
172
|
+
15. Return ACTUAL PR number and URL
|
|
173
|
+
|
|
174
|
+
## publish_all task
|
|
175
|
+
|
|
176
|
+
1. Run version_check to find out-of-sync items
|
|
177
|
+
2. Create single branch: `publish/batch-{date}`
|
|
178
|
+
3. For each out-of-sync plugin: copy, update plugin.json, changelog
|
|
179
|
+
4. Update marketplace.json (all entries)
|
|
180
|
+
5. git add -A && git commit && git push
|
|
181
|
+
6. Create single PR with all changes
|
|
182
|
+
7. Return PR number with all plugins and versions
|
|
54
183
|
</workflow>
|
|
55
184
|
|
|
56
|
-
<
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
"
|
|
60
|
-
"
|
|
61
|
-
"
|
|
62
|
-
"keywords": ["..."]
|
|
185
|
+
<protocol>
|
|
186
|
+
## version_check
|
|
187
|
+
Input: {
|
|
188
|
+
"task": "version_check",
|
|
189
|
+
"manifest_path": ".claude/manifest.json",
|
|
190
|
+
"marketplace_path": "Hailer-Marketplace"
|
|
63
191
|
}
|
|
64
|
-
</plugin-json-template>
|
|
65
192
|
|
|
66
|
-
|
|
193
|
+
Output: {
|
|
194
|
+
"status": "success",
|
|
195
|
+
"result": {
|
|
196
|
+
"total_components": 68,
|
|
197
|
+
"in_sync": 65,
|
|
198
|
+
"out_of_sync": [
|
|
199
|
+
{ "name": "agent-kenji-data-reader", "type": "agent", "manifest": "1.2.0", "marketplace": "1.1.0" }
|
|
200
|
+
],
|
|
201
|
+
"missing_in_marketplace": []
|
|
202
|
+
},
|
|
203
|
+
"summary": "1 item out of sync"
|
|
204
|
+
}
|
|
205
|
+
|
|
206
|
+
## publish_plugin
|
|
67
207
|
Input: {
|
|
68
|
-
"task": "
|
|
208
|
+
"task": "publish_plugin",
|
|
69
209
|
"plugin": {
|
|
70
210
|
"name": "string",
|
|
71
211
|
"type": "agent|skill|hook",
|
|
72
|
-
"description": "string",
|
|
73
212
|
"version": "string (semver)",
|
|
74
213
|
"author": "string",
|
|
75
|
-
"
|
|
214
|
+
"keywords": ["array"],
|
|
215
|
+
"content": "string - the actual file content",
|
|
216
|
+
"changelog_message": "string (optional)"
|
|
76
217
|
}
|
|
77
218
|
}
|
|
78
219
|
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
"
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
"
|
|
85
|
-
|
|
86
|
-
"trigger_review": {
|
|
87
|
-
"agent": "marketplace-reviewer:agent-marketplace-reviewer",
|
|
88
|
-
"input": { "task": "review", "branch": "publish/plugin-name-v1.0.0" }
|
|
89
|
-
},
|
|
90
|
-
"summary": "Branch pushed, triggering review"
|
|
220
|
+
## publish_all
|
|
221
|
+
Input: {
|
|
222
|
+
"task": "publish_all",
|
|
223
|
+
"changelog_message": "Batch release",
|
|
224
|
+
"plugins": [
|
|
225
|
+
{ "name": "agent-kenji-data-reader", "type": "agent", "source": "agents/agent-kenji-data-reader.md" }
|
|
226
|
+
]
|
|
91
227
|
}
|
|
92
228
|
|
|
93
|
-
|
|
94
|
-
|
|
229
|
+
## Standard output (PR created)
|
|
230
|
+
{
|
|
231
|
+
"status": "pr_created",
|
|
95
232
|
"result": {
|
|
96
|
-
"
|
|
97
|
-
"
|
|
98
|
-
"
|
|
99
|
-
"
|
|
233
|
+
"pr_number": 123,
|
|
234
|
+
"pr_url": "https://github.com/Bdolf/Hailer-Marketplace/pull/123",
|
|
235
|
+
"branch": "publish/agent-kenji-data-reader-1.0.2",
|
|
236
|
+
"plugins_updated": ["agent-kenji-data-reader"],
|
|
237
|
+
"versions": { "agent-kenji-data-reader": "1.0.2" }
|
|
100
238
|
},
|
|
101
|
-
"summary": "
|
|
239
|
+
"summary": "Created PR #123"
|
|
102
240
|
}
|
|
103
241
|
|
|
104
|
-
|
|
242
|
+
## Error output
|
|
105
243
|
{
|
|
106
|
-
"task": "publish",
|
|
107
|
-
"plugin": { ... },
|
|
108
|
-
"version": "1.0.1"
|
|
109
|
-
}
|
|
110
|
-
|
|
111
|
-
Output (version error): {
|
|
112
244
|
"status": "error",
|
|
113
245
|
"result": {
|
|
114
246
|
"error": "version_conflict",
|
|
115
247
|
"existing_version": "1.0.0",
|
|
116
|
-
"requested_version": "1.0.0"
|
|
248
|
+
"requested_version": "1.0.0",
|
|
249
|
+
"message": "Version must be greater than 1.0.0"
|
|
117
250
|
},
|
|
118
|
-
"summary": "Version
|
|
251
|
+
"summary": "Version conflict"
|
|
252
|
+
}
|
|
253
|
+
|
|
254
|
+
## Needs confirmation (duplicates)
|
|
255
|
+
{
|
|
256
|
+
"status": "needs_confirmation",
|
|
257
|
+
"result": {
|
|
258
|
+
"duplicates_found": true,
|
|
259
|
+
"file": "agent-marco-mockup-builder.md",
|
|
260
|
+
"found_in_plugins": [
|
|
261
|
+
{ "plugin": "marco", "version": "1.0.1" },
|
|
262
|
+
{ "plugin": "mockup-builder", "version": "1.0.0" }
|
|
263
|
+
],
|
|
264
|
+
"action_required": "Confirm update_all to update all plugins containing this file"
|
|
265
|
+
},
|
|
266
|
+
"summary": "Found in 2 plugins - confirm to update all"
|
|
119
267
|
}
|
|
120
268
|
</protocol>
|
|
269
|
+
|
|
270
|
+
<plugin-json-template>
|
|
271
|
+
{
|
|
272
|
+
"name": "plugin-name",
|
|
273
|
+
"description": "...",
|
|
274
|
+
"version": "1.0.0",
|
|
275
|
+
"author": { "name": "Author Name" },
|
|
276
|
+
"keywords": ["..."]
|
|
277
|
+
}
|
|
278
|
+
|
|
279
|
+
CRITICAL: author MUST be an object with "name" key, NOT a string!
|
|
280
|
+
</plugin-json-template>
|