@hailer/mcp 1.1.3 → 1.1.4
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/.context-watchdog.json +1 -0
- package/.opencode/agent/agent-code-simplifier.md +31 -0
- package/.opencode/agent/agent-igor-activity-mover-automation.md +46 -0
- package/.opencode/agent/agent-ivan-monolith.md +46 -0
- package/.opencode/agent/agent-marco-mockup-builder.md +42 -0
- package/.opencode/agent/agent-marcus-api-documenter.md +53 -0
- package/.opencode/agent/agent-permissions-handler.md +50 -0
- package/.opencode/agent/agent-simple-writer.md +45 -0
- package/.opencode/agent/agent-tanya-test-runner.md +57 -0
- package/.opencode/agent/agent-ui-designer.md +56 -0
- package/.opencode/agent/agent-web-search.md +42 -0
- package/.opencode/agent/agent-zara-zapier.md +53 -0
- package/.opencode/commands/app-squad.md +135 -0
- package/.opencode/commands/audit-squad.md +158 -0
- package/.opencode/commands/autoplan.md +563 -0
- package/.opencode/commands/cleanup-squad.md +98 -0
- package/.opencode/commands/config-squad.md +106 -0
- package/.opencode/commands/crud-squad.md +87 -0
- package/.opencode/commands/data-squad.md +97 -0
- package/.opencode/commands/debug-squad.md +303 -0
- package/.opencode/commands/doc-squad.md +65 -0
- package/.opencode/commands/handoff.md +137 -0
- package/.opencode/commands/health.md +49 -0
- package/.opencode/commands/help-agents.md +137 -20
- package/.opencode/commands/help-skills.md +7 -0
- package/.opencode/commands/help.md +13 -7
- package/.opencode/commands/hotfix-squad.md +112 -0
- package/.opencode/commands/integration-squad.md +82 -0
- package/.opencode/commands/janitor-squad.md +167 -0
- package/.opencode/commands/learn-auto.md +120 -0
- package/.opencode/commands/learn.md +120 -0
- package/.opencode/commands/mcp-list.md +27 -0
- package/.opencode/commands/onboard-squad.md +140 -0
- package/.opencode/commands/plan-workspace.md +732 -0
- package/.opencode/commands/prd.md +131 -0
- package/.opencode/commands/project-status.md +82 -0
- package/.opencode/commands/publish.md +138 -0
- package/.opencode/commands/recap.md +69 -0
- package/.opencode/commands/restore.md +64 -0
- package/.opencode/commands/review-squad.md +152 -0
- package/.opencode/commands/save.md +24 -0
- package/.opencode/commands/stats.md +19 -0
- package/.opencode/commands/swarm.md +210 -0
- package/.opencode/commands/tool-builder.md +17 -5
- package/.opencode/commands/ws-pull.md +37 -12
- package/.opencode/commands/yolo-off.md +17 -0
- package/.opencode/commands/yolo.md +82 -0
- package/inbox/usage.jsonl +1 -0
- package/package.json +1 -1
- package/.opencode/agent/nora.md +0 -47
- package/.opencode/commands/install-plugin.md +0 -16
- package/.opencode/commands/list-plugins.md +0 -9
- package/.opencode/commands/marketplace-setup.md +0 -9
- package/.opencode/commands/publish-plugin.md +0 -19
- package/.opencode/commands/uninstall-plugin.md +0 -16
- /package/.opencode/agent/{ada.md → agent-ada-skill-builder.md} +0 -0
- /package/.opencode/agent/{alejandro.md → agent-alejandro-function-fields.md} +0 -0
- /package/.opencode/agent/{bjorn.md → agent-bjorn-config-audit.md} +0 -0
- /package/.opencode/agent/{builder.md → agent-builder-agent-creator.md} +0 -0
- /package/.opencode/agent/{dmitri.md → agent-dmitri-activity-crud.md} +0 -0
- /package/.opencode/agent/{giuseppe.md → agent-giuseppe-app-builder.md} +0 -0
- /package/.opencode/agent/{gunther.md → agent-gunther-mcp-tools.md} +0 -0
- /package/.opencode/agent/{helga.md → agent-helga-workflow-config.md} +0 -0
- /package/.opencode/agent/{ingrid.md → agent-ingrid-doc-templates.md} +0 -0
- /package/.opencode/agent/{kenji.md → agent-kenji-data-reader.md} +0 -0
- /package/.opencode/agent/{lars.md → agent-lars-code-inspector.md} +0 -0
- /package/.opencode/agent/{marketplace-publisher.md → agent-marketplace-publisher.md} +0 -0
- /package/.opencode/agent/{marketplace-reviewer.md → agent-marketplace-reviewer.md} +0 -0
- /package/.opencode/agent/{svetlana.md → agent-svetlana-code-review.md} +0 -0
- /package/.opencode/agent/{viktor.md → agent-viktor-sql-insights.md} +0 -0
- /package/.opencode/agent/{yevgeni.md → agent-yevgeni-discussions.md} +0 -0
|
@@ -0,0 +1,210 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Orchestrator-driven parallel swarm for large-scale tasks
|
|
3
|
+
argument-hint: "description of what to do across many items"
|
|
4
|
+
allowed-tools: Task, Bash, Read, Glob
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Swarm
|
|
8
|
+
|
|
9
|
+
Orchestrator-driven parallel execution: analyze the task, discover work items, pick agents, split into chunks, dispatch workers, aggregate results.
|
|
10
|
+
|
|
11
|
+
**Goal:** $ARGUMENTS
|
|
12
|
+
|
|
13
|
+
## Protocol
|
|
14
|
+
|
|
15
|
+
### Step 1: Analyze the Task
|
|
16
|
+
|
|
17
|
+
Read `$ARGUMENTS` and determine:
|
|
18
|
+
|
|
19
|
+
- **What needs to be done?** (review, edit, check, migrate, update, clean up)
|
|
20
|
+
- **What are the work items?** (files, activities, workflows, agents, skills, configs)
|
|
21
|
+
- **What scope?** (explicit path/glob from user, or infer from task description)
|
|
22
|
+
|
|
23
|
+
If the scope is unclear, use Glob or Bash to discover items:
|
|
24
|
+
|
|
25
|
+
```
|
|
26
|
+
# Files
|
|
27
|
+
Glob("src/**/*.ts")
|
|
28
|
+
Glob(".claude/agents/*.md")
|
|
29
|
+
Glob("workspace/*/fields.ts")
|
|
30
|
+
|
|
31
|
+
# Activities (use Kenji to count/list)
|
|
32
|
+
Task(subagent_type="agent-kenji-data-reader", prompt="Count and list activity IDs for [workflow]")
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
If fewer than 5 items are discovered, **abort swarm** and suggest running a regular squad or single agent instead. Swarm is for scale.
|
|
36
|
+
|
|
37
|
+
### Step 2: Pick Agent(s)
|
|
38
|
+
|
|
39
|
+
Based on the task type, select the right agent(s):
|
|
40
|
+
|
|
41
|
+
| Task Type | Agent | Examples |
|
|
42
|
+
|-----------|-------|---------|
|
|
43
|
+
| Code review, security audit | **Svetlana** | "review for bugs", "security check", "find vulnerabilities" |
|
|
44
|
+
| Dead code, unused imports, type errors | **Lars** | "find dead code", "check types", "unused imports" |
|
|
45
|
+
| Small edits, string replacements, rule additions | **Simple Writer** | "add header to each file", "replace X with Y", "update rule" |
|
|
46
|
+
| Code cleanup, simplification | **Code Simplifier** | "clean up", "simplify", "refactor for clarity" |
|
|
47
|
+
| Config audit, structure validation | **Bjorn** | "check config", "validate structure", "audit settings" |
|
|
48
|
+
| Data state checks, field validation | **Kenji** | "check all activities", "verify field values", "find missing data" |
|
|
49
|
+
| Query patterns, data analysis | **Viktor** | "analyze patterns", "find anomalies across workflows" |
|
|
50
|
+
| Activity updates, bulk mutations | **Dmitri** | "update all activities", "move to phase", "set field values" |
|
|
51
|
+
|
|
52
|
+
**Multi-agent swarms:** If the task spans multiple domains, assign different agent types to different items. For example, "clean up the project" might use Lars for `.ts` files, Bjorn for config files, and Code Simplifier for app components.
|
|
53
|
+
|
|
54
|
+
### Step 3: Calculate Workers
|
|
55
|
+
|
|
56
|
+
```
|
|
57
|
+
items_count = total discovered items
|
|
58
|
+
items_per_worker = 10 (default)
|
|
59
|
+
max_workers = 5
|
|
60
|
+
|
|
61
|
+
worker_count = min(ceil(items_count / items_per_worker), max_workers)
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
Split items into `worker_count` chunks. Try to keep chunks roughly equal size.
|
|
65
|
+
|
|
66
|
+
For multi-agent swarms, group items by agent type first, then chunk within each type.
|
|
67
|
+
|
|
68
|
+
### Step 4: Dispatch Workers
|
|
69
|
+
|
|
70
|
+
Launch all workers in parallel using multiple Task tool calls in a single message. All workers run in background (`run_in_background: true`).
|
|
71
|
+
|
|
72
|
+
Each worker gets:
|
|
73
|
+
|
|
74
|
+
```
|
|
75
|
+
Task(subagent_type="[selected-agent]",
|
|
76
|
+
run_in_background: true,
|
|
77
|
+
prompt="SWARM WORKER [N] of [TOTAL]
|
|
78
|
+
|
|
79
|
+
TASK: [User's description from $ARGUMENTS]
|
|
80
|
+
|
|
81
|
+
YOUR ITEMS ([count]):
|
|
82
|
+
- [item 1]
|
|
83
|
+
- [item 2]
|
|
84
|
+
- [item 3]
|
|
85
|
+
...
|
|
86
|
+
|
|
87
|
+
Process each item and report results in this format:
|
|
88
|
+
|
|
89
|
+
RESULTS:
|
|
90
|
+
- [item]: [status] - [details]
|
|
91
|
+
- [item]: [status] - [details]
|
|
92
|
+
|
|
93
|
+
SUMMARY:
|
|
94
|
+
- Processed: [count]
|
|
95
|
+
- Passed: [count]
|
|
96
|
+
- Issues found: [count]
|
|
97
|
+
- Failed: [count]")
|
|
98
|
+
```
|
|
99
|
+
|
|
100
|
+
Tell the user:
|
|
101
|
+
```
|
|
102
|
+
Launched [worker_count] workers across [items_count] items.
|
|
103
|
+
Running in background - what else do you want to work on?
|
|
104
|
+
```
|
|
105
|
+
|
|
106
|
+
### Step 5: Collect Results
|
|
107
|
+
|
|
108
|
+
When workers complete (check via Read on output files or TaskOutput), aggregate all results.
|
|
109
|
+
|
|
110
|
+
If any worker failed or timed out:
|
|
111
|
+
- Report which items were in the failed worker's batch
|
|
112
|
+
- Offer to retry just those items
|
|
113
|
+
|
|
114
|
+
### Step 6: Report
|
|
115
|
+
|
|
116
|
+
```markdown
|
|
117
|
+
## Swarm Report
|
|
118
|
+
|
|
119
|
+
### Task
|
|
120
|
+
[User's description]
|
|
121
|
+
|
|
122
|
+
### Execution
|
|
123
|
+
- **Items:** [total count]
|
|
124
|
+
- **Workers:** [worker count] x [agent type(s)]
|
|
125
|
+
- **Duration:** [time from dispatch to last worker completion]
|
|
126
|
+
|
|
127
|
+
---
|
|
128
|
+
|
|
129
|
+
### Results by Worker
|
|
130
|
+
|
|
131
|
+
#### Worker 1 ([agent type]) - [X items]
|
|
132
|
+
- [item]: [status] - [details]
|
|
133
|
+
- [item]: [status] - [details]
|
|
134
|
+
...
|
|
135
|
+
|
|
136
|
+
#### Worker 2 ([agent type]) - [X items]
|
|
137
|
+
...
|
|
138
|
+
|
|
139
|
+
---
|
|
140
|
+
|
|
141
|
+
### Aggregate Summary
|
|
142
|
+
|
|
143
|
+
| Status | Count |
|
|
144
|
+
|--------|-------|
|
|
145
|
+
| Passed / Clean | X |
|
|
146
|
+
| Issues Found | X |
|
|
147
|
+
| Failed / Error | X |
|
|
148
|
+
|
|
149
|
+
### Issues Found
|
|
150
|
+
[Grouped and deduplicated list of all issues across all workers]
|
|
151
|
+
|
|
152
|
+
1. **[item]**: [issue description]
|
|
153
|
+
2. **[item]**: [issue description]
|
|
154
|
+
...
|
|
155
|
+
|
|
156
|
+
### Failed Items
|
|
157
|
+
[If any workers failed, list their items for retry]
|
|
158
|
+
|
|
159
|
+
### Next Steps
|
|
160
|
+
- [Suggested follow-up based on results]
|
|
161
|
+
- [If issues found: suggest /hotfix-squad or Simple Writer to fix]
|
|
162
|
+
- [If edits made: suggest /review-squad to verify]
|
|
163
|
+
```
|
|
164
|
+
|
|
165
|
+
## Options
|
|
166
|
+
|
|
167
|
+
| Flag | Effect |
|
|
168
|
+
|------|--------|
|
|
169
|
+
| `--workers=N` | Override worker count (default: auto-calculated, max 5) |
|
|
170
|
+
| `--dry-run` | Show what would be dispatched without actually running |
|
|
171
|
+
| `--no-bg` | Run workers in foreground (wait for all to complete) |
|
|
172
|
+
|
|
173
|
+
## Examples
|
|
174
|
+
|
|
175
|
+
```
|
|
176
|
+
# Review all source files for security
|
|
177
|
+
/swarm "review all TypeScript files in src/ for security vulnerabilities"
|
|
178
|
+
→ Discovers 47 .ts files, spawns 5 Svetlana workers
|
|
179
|
+
|
|
180
|
+
# Bulk edit agent files
|
|
181
|
+
/swarm "add a '## Version History' section to every agent file"
|
|
182
|
+
→ Discovers 27 agent .md files, spawns 3 Simple Writer workers
|
|
183
|
+
|
|
184
|
+
# Validate workspace configs
|
|
185
|
+
/swarm "check all workflow field definitions for missing descriptions"
|
|
186
|
+
→ Discovers 12 fields.ts files, spawns 2 Kenji workers
|
|
187
|
+
|
|
188
|
+
# Multi-agent cleanup
|
|
189
|
+
/swarm "clean up the entire apps/ directory"
|
|
190
|
+
→ Discovers 34 files: 20 .tsx → Code Simplifier, 8 .ts → Lars, 6 configs → Bjorn
|
|
191
|
+
→ Spawns 5 workers across 3 agent types
|
|
192
|
+
|
|
193
|
+
# Data validation
|
|
194
|
+
/swarm "verify all Customer activities have a valid email field"
|
|
195
|
+
→ Kenji counts 200 customers, spawns 5 Kenji workers (40 each)
|
|
196
|
+
|
|
197
|
+
# Dry run to preview
|
|
198
|
+
/swarm "update all skills to use consistent headers" --dry-run
|
|
199
|
+
→ Shows: "Would dispatch 4 Simple Writer workers across 32 skill files"
|
|
200
|
+
```
|
|
201
|
+
|
|
202
|
+
## Notes
|
|
203
|
+
|
|
204
|
+
- Minimum 5 items to trigger swarm (below that, use a regular agent)
|
|
205
|
+
- Default max 5 workers to avoid overwhelming the system
|
|
206
|
+
- Workers run in background by default so user can keep working
|
|
207
|
+
- Multi-agent swarms naturally emerge from the orchestrator's routing logic
|
|
208
|
+
- For write operations (Dmitri, Simple Writer), consider running --dry-run first
|
|
209
|
+
- Swarm vs Squad: Swarm is raw parallel execution without quality gates. Workers operate independently. Squads have convergence, synthesis, and loops. Use swarm for bulk independent items, squads for coordinated workflows.
|
|
210
|
+
- Swarm + squad can combine: `/swarm "review src/"` finds issues, then user can run `/hotfix-squad` on results. This is a manual handoff - user confirms.
|
|
@@ -1,10 +1,15 @@
|
|
|
1
1
|
---
|
|
2
|
-
description:
|
|
2
|
+
description: Activate tool-builder mode to implement a new MCP tool
|
|
3
3
|
---
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
# Tool Builder Mode
|
|
6
|
+
|
|
7
|
+
Loading `tool-builder` skill for MCP tool patterns...
|
|
8
|
+
|
|
9
|
+
**What tool should I build?**
|
|
10
|
+
|
|
11
|
+
Please provide:
|
|
6
12
|
|
|
7
|
-
Ask the user for:
|
|
8
13
|
- **Tool Name**: `tool_name` (snake_case)
|
|
9
14
|
- **Purpose**: What does it do?
|
|
10
15
|
- **API Endpoint**: `v3.endpoint.method`
|
|
@@ -13,7 +18,9 @@ Ask the user for:
|
|
|
13
18
|
- **Target File**: Which file in `src/mcp/tools/`?
|
|
14
19
|
- **Tool Group**: READ | WRITE | PLAYGROUND
|
|
15
20
|
|
|
16
|
-
|
|
21
|
+
---
|
|
22
|
+
|
|
23
|
+
**Example:**
|
|
17
24
|
```
|
|
18
25
|
Tool Name: list_insights
|
|
19
26
|
Purpose: List all insights in workspace
|
|
@@ -24,4 +31,9 @@ Target File: insight.ts
|
|
|
24
31
|
Tool Group: PLAYGROUND
|
|
25
32
|
```
|
|
26
33
|
|
|
27
|
-
|
|
34
|
+
I'll:
|
|
35
|
+
1. Load tool-builder skill
|
|
36
|
+
2. Read existing patterns in target file
|
|
37
|
+
3. Implement the tool
|
|
38
|
+
4. Register in src/app.ts
|
|
39
|
+
5. Report what was created
|
|
@@ -1,19 +1,44 @@
|
|
|
1
1
|
---
|
|
2
|
-
description: Pull workspace configuration from Hailer
|
|
2
|
+
description: Pull workspace configuration from Hailer (READ-ONLY)
|
|
3
3
|
---
|
|
4
4
|
|
|
5
|
-
Pull workspace configuration from Hailer.
|
|
5
|
+
Pull the current workspace configuration from Hailer and save it locally.
|
|
6
6
|
|
|
7
|
-
|
|
8
|
-
|
|
7
|
+
**What this does:**
|
|
8
|
+
- Downloads workflows, insights, teams, groups, and phases from Hailer workspace
|
|
9
|
+
- Saves configuration as JSON files to the `WORKSPACE_CONFIG_PATH` directory
|
|
10
|
+
- READ-ONLY operation - does not modify anything on Hailer
|
|
11
|
+
- Safe to run anytime
|
|
9
12
|
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
```
|
|
13
|
+
**Requirements:**
|
|
14
|
+
- Must have `WORKSPACE_CONFIG_PATH` set in `.env.local`
|
|
15
|
+
- Hailer credentials must be configured
|
|
14
16
|
|
|
15
|
-
|
|
16
|
-
- `workspace/enums.ts` - field and phase IDs
|
|
17
|
-
- List `workspace/` to see workflows
|
|
17
|
+
**Instructions for Claude:**
|
|
18
18
|
|
|
19
|
-
|
|
19
|
+
1. Read `.env.local` file to get `WORKSPACE_CONFIG_PATH`
|
|
20
|
+
2. Run: `cd "$WORKSPACE_CONFIG_PATH" && npm run pull`
|
|
21
|
+
3. **AUTOMATICALLY read the generated files to load context:**
|
|
22
|
+
- Read `workspace/enums.ts` (complete file - contains ALL field and phase IDs)
|
|
23
|
+
- List `workspace/` directory to see all workflow folders
|
|
24
|
+
- Read 1-2 example workflow configs (main.ts, fields.ts, phases.ts) to understand structure
|
|
25
|
+
4. Provide summary of what workflows were pulled and confirm context is loaded
|
|
26
|
+
|
|
27
|
+
**What gets downloaded:**
|
|
28
|
+
- `workspace/enums.ts` - Type-safe field and phase ID enums for ALL workflows
|
|
29
|
+
- `workspace/workflows.ts` - Main workflows export
|
|
30
|
+
- `workspace/insights.ts` - SQL insight definitions
|
|
31
|
+
- `workspace/teams.ts` - Team structures
|
|
32
|
+
- `workspace/groups.ts` - User groups
|
|
33
|
+
- `workspace/<workflow_name>/` - Individual workflow configs (main.ts, fields.ts, phases.ts)
|
|
34
|
+
|
|
35
|
+
**Why automatic reading matters:**
|
|
36
|
+
- Loads all field/phase IDs into conversation context immediately
|
|
37
|
+
- Enables local-first strategy without manual file reads
|
|
38
|
+
- Saves 75% of API calls and hundreds of tokens on subsequent operations
|
|
39
|
+
- You'll know the workspace structure instantly
|
|
40
|
+
|
|
41
|
+
**Common use cases:**
|
|
42
|
+
- Backup current workspace configuration
|
|
43
|
+
- Review workflow structures locally
|
|
44
|
+
- Prepare for making configuration changes
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Disable yolo mode and restore normal permissions
|
|
3
|
+
---
|
|
4
|
+
# Disable Yolo Mode
|
|
5
|
+
|
|
6
|
+
Run this command to disable yolo mode:
|
|
7
|
+
|
|
8
|
+
```bash
|
|
9
|
+
node .claude/scripts/yolo-toggle.cjs off
|
|
10
|
+
```
|
|
11
|
+
|
|
12
|
+
This will:
|
|
13
|
+
- Remove the permissive permissions added by yolo mode
|
|
14
|
+
- Restore normal confirmation prompts
|
|
15
|
+
- Delete the .yolo-mode marker file
|
|
16
|
+
|
|
17
|
+
Confirm when done: "Normal mode restored. Permission prompts re-enabled."
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Run autonomously without asking permission
|
|
3
|
+
argument-hint: <task to complete>
|
|
4
|
+
---
|
|
5
|
+
# AUTONOMOUS MODE
|
|
6
|
+
|
|
7
|
+
Execute the following task without stopping to ask questions:
|
|
8
|
+
|
|
9
|
+
**Task:** $ARGUMENTS
|
|
10
|
+
|
|
11
|
+
## Step 1: Enable yolo mode
|
|
12
|
+
|
|
13
|
+
Run this command to find and execute yolo-toggle:
|
|
14
|
+
```bash
|
|
15
|
+
node .claude/scripts/yolo-toggle.cjs on
|
|
16
|
+
```
|
|
17
|
+
|
|
18
|
+
## Step 2: Create restore point (if git available)
|
|
19
|
+
|
|
20
|
+
If this is a git repository, run `/save "Before YOLO: $ARGUMENTS"` to create a restore point.
|
|
21
|
+
If no git, skip this step silently.
|
|
22
|
+
|
|
23
|
+
## Step 3: Gather context first
|
|
24
|
+
|
|
25
|
+
Before writing any code:
|
|
26
|
+
1. Read DEVELOPMENT.md to understand project state
|
|
27
|
+
2. Read relevant PRD if one exists for this task
|
|
28
|
+
3. Check workspace/ files if this is a Hailer project
|
|
29
|
+
4. Understand existing patterns before creating new ones
|
|
30
|
+
|
|
31
|
+
**Don't skip context gathering** - autonomous doesn't mean blind.
|
|
32
|
+
|
|
33
|
+
## Step 4: Execute the task
|
|
34
|
+
|
|
35
|
+
**Rules:**
|
|
36
|
+
1. Make decisions yourself - don't ask for preferences
|
|
37
|
+
2. Choose the most sensible option when multiple approaches exist
|
|
38
|
+
3. Proceed through errors - try to fix them, only stop if truly stuck
|
|
39
|
+
4. Complete the entire task before reporting back
|
|
40
|
+
5. Use your best judgment for code style, naming, structure
|
|
41
|
+
6. **ALWAYS delegate to agents** - Kenji reads, Dmitri writes, Giuseppe builds apps, etc.
|
|
42
|
+
Yolo = "agents work without permission prompts", NOT "orchestrator does everything".
|
|
43
|
+
The delegation-reminder hook ENFORCES this - it blocks direct tool use in yolo mode.
|
|
44
|
+
|
|
45
|
+
**Boundaries:**
|
|
46
|
+
- ONLY edit/create/delete files in the CURRENT PROJECT FOLDER
|
|
47
|
+
- You MAY read other projects for reference/context
|
|
48
|
+
- You MAY NOT edit, write, or modify anything outside this project
|
|
49
|
+
|
|
50
|
+
**Still requires confirmation:**
|
|
51
|
+
- Push commands (npm run push, fields-push, etc.) - safety hooks still active
|
|
52
|
+
|
|
53
|
+
## Step 5: Context management
|
|
54
|
+
|
|
55
|
+
The **context-watchdog hook** monitors context automatically during yolo mode. It will:
|
|
56
|
+
- Warn you at ~20 agent calls (early heads-up)
|
|
57
|
+
- Warn urgently at ~35 agent calls (save progress now)
|
|
58
|
+
- Inject handoff instructions when auto-compaction fires (context IS full)
|
|
59
|
+
- Block you from stopping after compaction until handoff is written
|
|
60
|
+
|
|
61
|
+
**When you see a watchdog warning**, follow its instructions:
|
|
62
|
+
1. Update DEVELOPMENT.md with current progress
|
|
63
|
+
2. Write SESSION-HANDOFF.md with full state and next steps
|
|
64
|
+
3. Run `/save` with progress description
|
|
65
|
+
4. Tell user: "Context getting full. Run `/yolo` again to continue."
|
|
66
|
+
|
|
67
|
+
**Don't wait for the watchdog** if you notice the task is large - save progress proactively at natural breakpoints.
|
|
68
|
+
|
|
69
|
+
## Step 6: When complete
|
|
70
|
+
|
|
71
|
+
1. Update DEVELOPMENT.md with what was done
|
|
72
|
+
2. If implementing a PRD, update its status (Draft → Complete) and check off completed items
|
|
73
|
+
3. Run `/save` with completion description
|
|
74
|
+
4. Disable yolo mode:
|
|
75
|
+
```bash
|
|
76
|
+
node .claude/scripts/yolo-toggle.cjs off
|
|
77
|
+
```
|
|
78
|
+
5. Report summary of what was accomplished
|
|
79
|
+
|
|
80
|
+
---
|
|
81
|
+
|
|
82
|
+
GO. Do the task end-to-end, then report what you did.
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"ts":"2026-02-13T08:23:26.264Z","agent":"general-purpose","status":"unknown","project":"hailer-mcp","description":"Convert new agents to OpenCode"}
|
package/package.json
CHANGED
package/.opencode/agent/nora.md
DELETED
|
@@ -1,47 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
description: Creates workflow nameFunction configurations for dynamic activity naming
|
|
3
|
-
mode: subagent
|
|
4
|
-
model: anthropic/claude-haiku-4-5
|
|
5
|
-
tools:
|
|
6
|
-
read: true
|
|
7
|
-
glob: true
|
|
8
|
-
edit: true
|
|
9
|
-
bash: true
|
|
10
|
-
write: false
|
|
11
|
-
---
|
|
12
|
-
|
|
13
|
-
I am Nora, Finnish name function specialist. Every activity deserves a meaningful name. SDK v0.8.4. Output JSON. Full stop.
|
|
14
|
-
|
|
15
|
-
**EXCLUSIVE DOMAIN:** I am the ONLY agent who handles nameField, nameFunction, and nameFunctionVariables.
|
|
16
|
-
|
|
17
|
-
## Handles
|
|
18
|
-
- Add nameFunction to workflow main.ts files
|
|
19
|
-
- Configure nameFunctionVariables with field dependencies
|
|
20
|
-
- Enable/disable dynamic activity naming
|
|
21
|
-
|
|
22
|
-
## Rules
|
|
23
|
-
1. **NEVER FABRICATE** - Must call tools.
|
|
24
|
-
2. **CRITICAL** - Pull OVERWRITES local changes. Push before pulling.
|
|
25
|
-
3. Edit main.ts in workspace/[Workflow]_[id]/ directory.
|
|
26
|
-
4. **NEVER run workflows-push** - Return command for orchestrator.
|
|
27
|
-
5. Use enums from enums.ts - Never hardcode field IDs.
|
|
28
|
-
6. **JSON ONLY** - Output closing brace, then STOP.
|
|
29
|
-
|
|
30
|
-
## Critical Syntax
|
|
31
|
-
nameFunction is ONLY the function BODY (what's between {}), NOT the full function!
|
|
32
|
-
- WRONG: "function(dep) { return 'value'; }"
|
|
33
|
-
- CORRECT: "return 'value'"
|
|
34
|
-
|
|
35
|
-
## Patterns
|
|
36
|
-
```javascript
|
|
37
|
-
// Simple field
|
|
38
|
-
nameFunctionVariables: { fieldName: { data: [FieldIds.field_name_abc], type: "=" } }
|
|
39
|
-
nameFunction: "return (dep.fieldName || 'Unnamed')"
|
|
40
|
-
|
|
41
|
-
// Linked field (forward link ">")
|
|
42
|
-
nameFunctionVariables: { clientName: { data: [FieldIds.client_link, ClientFieldIds.company_name], type: ">" } }
|
|
43
|
-
nameFunction: "return 'Project for ' + (dep.clientName || 'Unknown')"
|
|
44
|
-
```
|
|
45
|
-
|
|
46
|
-
## Protocol
|
|
47
|
-
Output: { "status": "ready_to_push|error", "result": { "name_function_added": true, "variables": 0 }, "commands": [], "summary": "" }
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
description: Install a plugin from local marketplace
|
|
3
|
-
---
|
|
4
|
-
|
|
5
|
-
Install plugin "$ARGUMENTS" from the marketplace.
|
|
6
|
-
|
|
7
|
-
Check if plugin exists:
|
|
8
|
-
!`ls -d hailer-marketplace/$ARGUMENTS 2>/dev/null && echo "Found" || echo "NOT FOUND"`
|
|
9
|
-
|
|
10
|
-
If found, copy files:
|
|
11
|
-
- Copy agents: `hailer-marketplace/$ARGUMENTS/agents/*.md` → `.claude/agents/`
|
|
12
|
-
- Copy skills: `hailer-marketplace/$ARGUMENTS/skills/*` → `.claude/skills/`
|
|
13
|
-
- Copy hooks: `hailer-marketplace/$ARGUMENTS/hooks/*.cjs` → `.claude/hooks/`
|
|
14
|
-
|
|
15
|
-
Run these copy commands and report what was installed.
|
|
16
|
-
Then remind user: "Restart Claude Code to load: `claude -c`"
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
description: List available plugins from local marketplace
|
|
3
|
-
---
|
|
4
|
-
|
|
5
|
-
List the available plugins from the marketplace:
|
|
6
|
-
|
|
7
|
-
!`cd hailer-marketplace && git pull origin main --quiet 2>/dev/null; jq -r '.plugins[] | " \(.name)@\(.version) - \(.description)"' .claude-plugin/marketplace.json`
|
|
8
|
-
|
|
9
|
-
Show the count and remind user they can install with `/install-plugin <name>`.
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
description: Clone or pull the Hailer marketplace repo
|
|
3
|
-
---
|
|
4
|
-
|
|
5
|
-
Set up the marketplace:
|
|
6
|
-
|
|
7
|
-
!`if [ -d "hailer-marketplace/.git" ]; then cd hailer-marketplace && git pull origin main && echo "Pulled latest"; else git clone git@github.com:Bdolf/Hailer-Marketplace.git hailer-marketplace && echo "Cloned marketplace"; fi`
|
|
8
|
-
|
|
9
|
-
Report the result.
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
description: Publish a plugin to the Hailer marketplace
|
|
3
|
-
---
|
|
4
|
-
|
|
5
|
-
Publish plugin "$ARGUMENTS" to the marketplace.
|
|
6
|
-
|
|
7
|
-
If argument is a path (contains `/`), use it as source.
|
|
8
|
-
If argument is a name, look for `.claude/agents/agent-$ARGUMENTS.md`.
|
|
9
|
-
|
|
10
|
-
Steps:
|
|
11
|
-
1. Validate plugin exists
|
|
12
|
-
2. Check marketplace for existing versions
|
|
13
|
-
3. Create branch `publish/$ARGUMENTS-vX.X.X`
|
|
14
|
-
4. Copy plugin files to `hailer-marketplace/$ARGUMENTS/`
|
|
15
|
-
5. Update `marketplace.json`
|
|
16
|
-
6. Commit and push
|
|
17
|
-
7. Create PR
|
|
18
|
-
|
|
19
|
-
Ask for version confirmation before proceeding.
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
description: Uninstall a plugin from .claude/ folder
|
|
3
|
-
---
|
|
4
|
-
|
|
5
|
-
Uninstall plugin "$ARGUMENTS".
|
|
6
|
-
|
|
7
|
-
If no argument provided, list installed plugins:
|
|
8
|
-
!`ls -1 .claude/agents/agent-*.md 2>/dev/null | xargs -I{} basename {} .md | sed 's/^agent-//' | sort -u`
|
|
9
|
-
|
|
10
|
-
If argument provided, remove:
|
|
11
|
-
- `.claude/agents/agent-$ARGUMENTS*.md`
|
|
12
|
-
- `.claude/skills/$ARGUMENTS/`
|
|
13
|
-
- `.claude/hooks/$ARGUMENTS*.cjs`
|
|
14
|
-
|
|
15
|
-
Report what was removed.
|
|
16
|
-
Then remind user: "Restart Claude Code: `claude -c`"
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|