@lvlup-sw/exarchos 2.7.1 → 2.8.0
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-plugin/plugin.json +3 -2
- package/agents/fixer.md +2 -1
- package/agents/implementer.md +2 -1
- package/agents/reviewer.md +2 -1
- package/agents/scaffolder.md +55 -0
- package/commands/discover.md +6 -0
- package/dist/exarchos.js +314 -335
- package/package.json +1 -1
- package/skills/claude/cleanup/SKILL.md +10 -4
- package/skills/claude/cleanup/references/merge-verification.md +8 -9
- package/skills/claude/debug/references/thorough-track.md +5 -2
- package/skills/claude/debug/references/troubleshooting.md +1 -1
- package/skills/claude/delegation/SKILL.md +4 -3
- package/skills/claude/delegation/references/agent-teams-saga.md +1 -3
- package/skills/claude/delegation/references/fixer-prompt.md +0 -1
- package/skills/claude/delegation/references/implementer-prompt.md +0 -1
- package/skills/claude/delegation/references/parallel-strategy.md +6 -11
- package/skills/claude/delegation/references/worked-example.md +3 -3
- package/skills/claude/delegation/references/workflow-steps.md +0 -2
- package/skills/claude/delegation/references/worktree-enforcement.md +1 -1
- package/skills/claude/discovery/SKILL.md +95 -0
- package/skills/claude/dogfood/SKILL.md +8 -2
- package/skills/claude/dogfood/references/report-template.md +4 -4
- package/skills/claude/oneshot-workflow/SKILL.md +9 -3
- package/skills/claude/prune-workflows/SKILL.md +6 -0
- package/skills/claude/quality-review/references/auto-transition.md +1 -1
- package/skills/claude/refactor/references/overhaul-track.md +1 -1
- package/skills/claude/shepherd/SKILL.md +14 -5
- package/skills/claude/shepherd/references/assess-checklist.md +7 -7
- package/skills/claude/shepherd/references/fix-strategies.md +4 -4
- package/skills/claude/synthesis/SKILL.md +27 -8
- package/skills/claude/synthesis/references/github-native-stacking.md +26 -30
- package/skills/claude/synthesis/references/merge-ordering.md +1 -1
- package/skills/claude/synthesis/references/synthesis-steps.md +6 -6
- package/skills/claude/synthesis/references/troubleshooting.md +11 -18
- package/skills/codex/cleanup/SKILL.md +10 -4
- package/skills/codex/cleanup/references/merge-verification.md +8 -9
- package/skills/codex/debug/references/thorough-track.md +5 -2
- package/skills/codex/debug/references/troubleshooting.md +1 -1
- package/skills/codex/delegation/SKILL.md +4 -3
- package/skills/codex/delegation/references/agent-teams-saga.md +1 -3
- package/skills/codex/delegation/references/fixer-prompt.md +0 -1
- package/skills/codex/delegation/references/implementer-prompt.md +0 -1
- package/skills/codex/delegation/references/parallel-strategy.md +6 -11
- package/skills/codex/delegation/references/worked-example.md +3 -3
- package/skills/codex/delegation/references/workflow-steps.md +0 -2
- package/skills/codex/delegation/references/worktree-enforcement.md +1 -1
- package/skills/codex/discovery/SKILL.md +95 -0
- package/skills/codex/dogfood/SKILL.md +8 -2
- package/skills/codex/dogfood/references/report-template.md +4 -4
- package/skills/codex/oneshot-workflow/SKILL.md +9 -3
- package/skills/codex/prune-workflows/SKILL.md +6 -0
- package/skills/codex/quality-review/references/auto-transition.md +1 -1
- package/skills/codex/refactor/references/overhaul-track.md +1 -1
- package/skills/codex/shepherd/SKILL.md +14 -5
- package/skills/codex/shepherd/references/assess-checklist.md +7 -7
- package/skills/codex/shepherd/references/fix-strategies.md +4 -4
- package/skills/codex/synthesis/SKILL.md +27 -8
- package/skills/codex/synthesis/references/github-native-stacking.md +26 -30
- package/skills/codex/synthesis/references/merge-ordering.md +1 -1
- package/skills/codex/synthesis/references/synthesis-steps.md +6 -6
- package/skills/codex/synthesis/references/troubleshooting.md +11 -18
- package/skills/copilot/cleanup/SKILL.md +10 -4
- package/skills/copilot/cleanup/references/merge-verification.md +8 -9
- package/skills/copilot/debug/references/thorough-track.md +5 -2
- package/skills/copilot/debug/references/troubleshooting.md +1 -1
- package/skills/copilot/delegation/SKILL.md +4 -3
- package/skills/copilot/delegation/references/agent-teams-saga.md +1 -3
- package/skills/copilot/delegation/references/fixer-prompt.md +0 -1
- package/skills/copilot/delegation/references/implementer-prompt.md +0 -1
- package/skills/copilot/delegation/references/parallel-strategy.md +6 -11
- package/skills/copilot/delegation/references/worked-example.md +3 -3
- package/skills/copilot/delegation/references/workflow-steps.md +0 -2
- package/skills/copilot/delegation/references/worktree-enforcement.md +1 -1
- package/skills/copilot/discovery/SKILL.md +95 -0
- package/skills/copilot/dogfood/SKILL.md +8 -2
- package/skills/copilot/dogfood/references/report-template.md +4 -4
- package/skills/copilot/oneshot-workflow/SKILL.md +9 -3
- package/skills/copilot/prune-workflows/SKILL.md +6 -0
- package/skills/copilot/quality-review/references/auto-transition.md +1 -1
- package/skills/copilot/refactor/references/overhaul-track.md +1 -1
- package/skills/copilot/shepherd/SKILL.md +14 -5
- package/skills/copilot/shepherd/references/assess-checklist.md +7 -7
- package/skills/copilot/shepherd/references/fix-strategies.md +4 -4
- package/skills/copilot/synthesis/SKILL.md +27 -8
- package/skills/copilot/synthesis/references/github-native-stacking.md +26 -30
- package/skills/copilot/synthesis/references/merge-ordering.md +1 -1
- package/skills/copilot/synthesis/references/synthesis-steps.md +6 -6
- package/skills/copilot/synthesis/references/troubleshooting.md +11 -18
- package/skills/cursor/cleanup/SKILL.md +10 -4
- package/skills/cursor/cleanup/references/merge-verification.md +8 -9
- package/skills/cursor/debug/references/thorough-track.md +5 -2
- package/skills/cursor/debug/references/troubleshooting.md +1 -1
- package/skills/cursor/delegation/SKILL.md +4 -3
- package/skills/cursor/delegation/references/agent-teams-saga.md +1 -3
- package/skills/cursor/delegation/references/fixer-prompt.md +0 -1
- package/skills/cursor/delegation/references/implementer-prompt.md +0 -1
- package/skills/cursor/delegation/references/parallel-strategy.md +6 -11
- package/skills/cursor/delegation/references/worked-example.md +3 -3
- package/skills/cursor/delegation/references/workflow-steps.md +0 -2
- package/skills/cursor/delegation/references/worktree-enforcement.md +1 -1
- package/skills/cursor/discovery/SKILL.md +95 -0
- package/skills/cursor/dogfood/SKILL.md +8 -2
- package/skills/cursor/dogfood/references/report-template.md +4 -4
- package/skills/cursor/oneshot-workflow/SKILL.md +9 -3
- package/skills/cursor/prune-workflows/SKILL.md +6 -0
- package/skills/cursor/quality-review/references/auto-transition.md +1 -1
- package/skills/cursor/refactor/references/overhaul-track.md +1 -1
- package/skills/cursor/shepherd/SKILL.md +14 -5
- package/skills/cursor/shepherd/references/assess-checklist.md +7 -7
- package/skills/cursor/shepherd/references/fix-strategies.md +4 -4
- package/skills/cursor/synthesis/SKILL.md +27 -8
- package/skills/cursor/synthesis/references/github-native-stacking.md +26 -30
- package/skills/cursor/synthesis/references/merge-ordering.md +1 -1
- package/skills/cursor/synthesis/references/synthesis-steps.md +6 -6
- package/skills/cursor/synthesis/references/troubleshooting.md +11 -18
- package/skills/generic/cleanup/SKILL.md +10 -4
- package/skills/generic/cleanup/references/merge-verification.md +8 -9
- package/skills/generic/debug/references/thorough-track.md +5 -2
- package/skills/generic/debug/references/troubleshooting.md +1 -1
- package/skills/generic/delegation/SKILL.md +4 -3
- package/skills/generic/delegation/references/agent-teams-saga.md +1 -3
- package/skills/generic/delegation/references/fixer-prompt.md +0 -1
- package/skills/generic/delegation/references/implementer-prompt.md +0 -1
- package/skills/generic/delegation/references/parallel-strategy.md +6 -11
- package/skills/generic/delegation/references/worked-example.md +3 -3
- package/skills/generic/delegation/references/workflow-steps.md +0 -2
- package/skills/generic/delegation/references/worktree-enforcement.md +1 -1
- package/skills/generic/discovery/SKILL.md +95 -0
- package/skills/generic/dogfood/SKILL.md +8 -2
- package/skills/generic/dogfood/references/report-template.md +4 -4
- package/skills/generic/oneshot-workflow/SKILL.md +9 -3
- package/skills/generic/prune-workflows/SKILL.md +6 -0
- package/skills/generic/quality-review/references/auto-transition.md +1 -1
- package/skills/generic/refactor/references/overhaul-track.md +1 -1
- package/skills/generic/shepherd/SKILL.md +14 -5
- package/skills/generic/shepherd/references/assess-checklist.md +7 -7
- package/skills/generic/shepherd/references/fix-strategies.md +4 -4
- package/skills/generic/synthesis/SKILL.md +27 -8
- package/skills/generic/synthesis/references/github-native-stacking.md +26 -30
- package/skills/generic/synthesis/references/merge-ordering.md +1 -1
- package/skills/generic/synthesis/references/synthesis-steps.md +6 -6
- package/skills/generic/synthesis/references/troubleshooting.md +11 -18
- package/skills/opencode/cleanup/SKILL.md +10 -4
- package/skills/opencode/cleanup/references/merge-verification.md +8 -9
- package/skills/opencode/debug/references/thorough-track.md +5 -2
- package/skills/opencode/debug/references/troubleshooting.md +1 -1
- package/skills/opencode/delegation/SKILL.md +4 -3
- package/skills/opencode/delegation/references/agent-teams-saga.md +1 -3
- package/skills/opencode/delegation/references/fixer-prompt.md +0 -1
- package/skills/opencode/delegation/references/implementer-prompt.md +0 -1
- package/skills/opencode/delegation/references/parallel-strategy.md +6 -11
- package/skills/opencode/delegation/references/worked-example.md +3 -3
- package/skills/opencode/delegation/references/workflow-steps.md +0 -2
- package/skills/opencode/delegation/references/worktree-enforcement.md +1 -1
- package/skills/opencode/discovery/SKILL.md +95 -0
- package/skills/opencode/dogfood/SKILL.md +8 -2
- package/skills/opencode/dogfood/references/report-template.md +4 -4
- package/skills/opencode/oneshot-workflow/SKILL.md +9 -3
- package/skills/opencode/prune-workflows/SKILL.md +6 -0
- package/skills/opencode/quality-review/references/auto-transition.md +1 -1
- package/skills/opencode/refactor/references/overhaul-track.md +1 -1
- package/skills/opencode/shepherd/SKILL.md +14 -5
- package/skills/opencode/shepherd/references/assess-checklist.md +7 -7
- package/skills/opencode/shepherd/references/fix-strategies.md +4 -4
- package/skills/opencode/synthesis/SKILL.md +27 -8
- package/skills/opencode/synthesis/references/github-native-stacking.md +26 -30
- package/skills/opencode/synthesis/references/merge-ordering.md +1 -1
- package/skills/opencode/synthesis/references/synthesis-steps.md +6 -6
- package/skills/opencode/synthesis/references/troubleshooting.md +11 -18
- package/skills/claude/delegation/references/pr-fixes-mode.md +0 -155
- package/skills/codex/delegation/references/pr-fixes-mode.md +0 -155
- package/skills/copilot/delegation/references/pr-fixes-mode.md +0 -155
- package/skills/cursor/delegation/references/pr-fixes-mode.md +0 -155
- package/skills/generic/delegation/references/pr-fixes-mode.md +0 -155
- package/skills/opencode/delegation/references/pr-fixes-mode.md +0 -155
package/package.json
CHANGED
|
@@ -11,6 +11,12 @@ metadata:
|
|
|
11
11
|
|
|
12
12
|
# Cleanup Skill
|
|
13
13
|
|
|
14
|
+
## VCS Provider
|
|
15
|
+
|
|
16
|
+
This skill uses VCS operations through Exarchos MCP actions (`list_prs`, `get_pr_comments`, etc.).
|
|
17
|
+
These actions automatically detect and route to the correct VCS provider (GitHub, GitLab, Azure DevOps).
|
|
18
|
+
No `gh`/`glab`/`az` commands needed — the MCP server handles provider dispatch.
|
|
19
|
+
|
|
14
20
|
## Overview
|
|
15
21
|
|
|
16
22
|
Resolve merged workflows to `completed` state in a single operation. Replaces the manual multi-step process of navigating HSM guards after PR stacks merge.
|
|
@@ -52,12 +58,12 @@ mcp__plugin_exarchos_exarchos__exarchos_view({ action: "pipeline" })
|
|
|
52
58
|
|
|
53
59
|
For each PR associated with the workflow, verify it is merged.
|
|
54
60
|
|
|
55
|
-
**Primary method** —
|
|
56
|
-
```
|
|
57
|
-
|
|
61
|
+
**Primary method** — VCS MCP action:
|
|
62
|
+
```typescript
|
|
63
|
+
exarchos_orchestrate({ action: "list_prs", state: "merged" })
|
|
58
64
|
```
|
|
59
65
|
|
|
60
|
-
|
|
66
|
+
For individual PR details, use `exarchos_orchestrate({ action: "get_pr_comments", prId: "<number>" })` or the VCS provider's native API.
|
|
61
67
|
|
|
62
68
|
Collect from merged PRs:
|
|
63
69
|
- `prUrl`: The PR URL (or array of URLs for stacked PRs)
|
|
@@ -10,22 +10,21 @@ The cleanup action trusts the `mergeVerified` flag — it does not query GitHub
|
|
|
10
10
|
|
|
11
11
|
## Verification Methods
|
|
12
12
|
|
|
13
|
-
###
|
|
13
|
+
### VCS MCP Action (Primary)
|
|
14
14
|
|
|
15
|
-
```
|
|
16
|
-
|
|
17
|
-
|
|
15
|
+
```typescript
|
|
16
|
+
// List PRs to check merge state
|
|
17
|
+
exarchos_orchestrate({ action: "list_prs", state: "merged" })
|
|
18
|
+
// Check: each PR's state is "MERGED" and mergedAt is not null
|
|
18
19
|
```
|
|
19
20
|
|
|
20
|
-
> Or use GitHub MCP `pull_request_read` if available for structured data.
|
|
21
|
-
|
|
22
21
|
### For Stacked PRs
|
|
23
22
|
|
|
24
23
|
When verifying a stacked PR set, check ALL PRs in the stack:
|
|
25
24
|
|
|
26
|
-
```
|
|
27
|
-
|
|
28
|
-
|
|
25
|
+
```typescript
|
|
26
|
+
// List PRs for the branch stack
|
|
27
|
+
exarchos_orchestrate({ action: "list_prs", head: "feature/*", state: "all" })
|
|
29
28
|
```
|
|
30
29
|
|
|
31
30
|
Collect from each merged PR:
|
|
@@ -121,8 +121,11 @@ git commit -m "fix: <issue summary>"
|
|
|
121
121
|
git push -u origin <branch-name>
|
|
122
122
|
|
|
123
123
|
# Create PR and enable auto-merge
|
|
124
|
-
|
|
125
|
-
|
|
124
|
+
```
|
|
125
|
+
|
|
126
|
+
```typescript
|
|
127
|
+
exarchos_orchestrate({ action: "create_pr", base: "main", head: "<branch-name>", title: "fix: <issue summary>", body: "<pr-body>" })
|
|
128
|
+
exarchos_orchestrate({ action: "merge_pr", prId: "<number>", strategy: "squash" })
|
|
126
129
|
```
|
|
127
130
|
|
|
128
131
|
Then update the PR description:
|
|
@@ -36,7 +36,7 @@ When Exarchos MCP tools are available, emit events throughout the debug workflow
|
|
|
36
36
|
1. **At workflow start (triage):** `mcp__plugin_exarchos_exarchos__exarchos_event` with `action: "append"` -> `workflow.started` with workflowType "debug", urgency
|
|
37
37
|
2. **On track selection:** `mcp__plugin_exarchos_exarchos__exarchos_event` with `action: "append"` -> `phase.transitioned` with selected track (hotfix/thorough)
|
|
38
38
|
3. **On each phase transition:** `mcp__plugin_exarchos_exarchos__exarchos_event` with `action: "append"` -> `phase.transitioned` from->to
|
|
39
|
-
4. **Thorough track stacking:** Handled by `/exarchos:synthesize` (PR creation via `
|
|
39
|
+
4. **Thorough track stacking:** Handled by `/exarchos:synthesize` (PR creation via `exarchos_orchestrate({ action: "create_pr" })`)
|
|
40
40
|
5. **Hotfix track commit:** Single `git commit -m "fix: <description>"` + `git push` -- no multi-branch stacking needed
|
|
41
41
|
6. **On complete:** `mcp__plugin_exarchos_exarchos__exarchos_event` with `action: "append"` -> `phase.transitioned` to "completed"
|
|
42
42
|
|
|
@@ -43,7 +43,7 @@ Rationalization patterns that violate this principle are catalogued in `referenc
|
|
|
43
43
|
|
|
44
44
|
**Auto-detection:** tmux + `CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS` present means `agent-team`. Otherwise `subagent`. Override with `/exarchos:delegate --mode subagent|agent-team`.
|
|
45
45
|
|
|
46
|
-
|
|
46
|
+
Use the `recommendedModel` from `prepare_delegation` task classifications when available. If no classification exists (e.g., fixer dispatch), omit `model` to inherit the session default.
|
|
47
47
|
|
|
48
48
|
### Pre-Dispatch Schema Discovery
|
|
49
49
|
|
|
@@ -262,7 +262,9 @@ Handles review failures instead of initial implementation. Uses `references/fixe
|
|
|
262
262
|
|
|
263
263
|
**Arguments:** `--fixes <state-file-path>` — state JSON containing review results in `.reviews.<taskId>.specReview` or `.reviews.<taskId>.qualityReview`.
|
|
264
264
|
|
|
265
|
-
For detailed fix-mode process, see `references/fix-mode.md`.
|
|
265
|
+
For detailed fix-mode process, see `references/fix-mode.md`.
|
|
266
|
+
|
|
267
|
+
> **Deprecated:** `--pr-fixes` has been superseded by `/exarchos:shepherd`. Use the shepherd skill for PR feedback workflows.
|
|
266
268
|
|
|
267
269
|
---
|
|
268
270
|
|
|
@@ -349,7 +351,6 @@ This is NOT a human checkpoint — the workflow continues autonomously.
|
|
|
349
351
|
| `references/testing-patterns.md` | Arrange/Act/Assert, naming, mocking conventions |
|
|
350
352
|
| `references/pbt-patterns.md` | Property-based testing patterns |
|
|
351
353
|
| `references/fix-mode.md` | Detailed fix-mode process |
|
|
352
|
-
| `references/pr-fixes-mode.md` | PR feedback fix workflows |
|
|
353
354
|
| `references/state-management.md` | State patterns and benchmark labeling |
|
|
354
355
|
| `references/troubleshooting.md` | Common failure modes and resolutions |
|
|
355
356
|
| `references/adaptive-orchestration.md` | Adaptive team composition |
|
|
@@ -103,7 +103,6 @@ exarchos_event append:
|
|
|
103
103
|
teammateName: {name}
|
|
104
104
|
worktreePath: {path}
|
|
105
105
|
assignedTaskIds: [{taskIds}]
|
|
106
|
-
model: "opus"
|
|
107
106
|
|
|
108
107
|
# Execute side effect
|
|
109
108
|
# Note: teammates inherit the lead's permission mode (per Claude Code docs).
|
|
@@ -112,7 +111,6 @@ Task:
|
|
|
112
111
|
subagent_type: "general-purpose"
|
|
113
112
|
team_name: {featureId}
|
|
114
113
|
name: {teammateName}
|
|
115
|
-
model: "opus"
|
|
116
114
|
prompt: {spawnPrompt} # See implementer-prompt.md template
|
|
117
115
|
```
|
|
118
116
|
|
|
@@ -199,7 +197,7 @@ If a compensating action itself fails after 3 retries, mark the workflow with `_
|
|
|
199
197
|
| **Permissions inherit from lead** | Do NOT set `mode` at spawn -- not respected. All teammates inherit the lead's permission mode. |
|
|
200
198
|
| **Teammates load MCP automatically** | Exarchos MCP tools are available without explicit instruction. The spawn prompt guides WHICH tools to use, not HOW to access them. |
|
|
201
199
|
|
|
202
|
-
**
|
|
200
|
+
**Model selection:** Teammates inherit the session model. Model is configured via `.exarchos.yml` and resolved by `prepare_delegation`. Use Task tool dispatch if you need per-task model override.
|
|
203
201
|
|
|
204
202
|
## Event Payload Conventions
|
|
205
203
|
|
|
@@ -21,8 +21,8 @@ Group B (depends on Group A):
|
|
|
21
21
|
|
|
22
22
|
```typescript
|
|
23
23
|
// CORRECT: Single message, parallel execution
|
|
24
|
-
Task({
|
|
25
|
-
Task({
|
|
24
|
+
Task({ description: "Task 001", prompt: "..." })
|
|
25
|
+
Task({ description: "Task 002", prompt: "..." })
|
|
26
26
|
|
|
27
27
|
// WRONG: Separate messages = sequential
|
|
28
28
|
```
|
|
@@ -59,7 +59,7 @@ Agent Teams supports one team per session. If you need more parallel groups than
|
|
|
59
59
|
| Parallel dispatch | Multiple `Task()` in one message | Named teammates in agent team |
|
|
60
60
|
| Waiting | `TaskOutput({ block: true })` | `TeammateIdle` hook (fires when teammate idle) |
|
|
61
61
|
| Visibility | None (background) | tmux split panes |
|
|
62
|
-
| Model control | `
|
|
62
|
+
| Model control | `recommendedModel` from config | Session model for all |
|
|
63
63
|
| Max parallelism | Unlimited | One team, N teammates |
|
|
64
64
|
| Resume on crash | Task results preserved | Teammates lost (worktrees survive) |
|
|
65
65
|
|
|
@@ -73,14 +73,9 @@ TaskOutput({ task_id: "task-002-id" })
|
|
|
73
73
|
|
|
74
74
|
## Model Selection Guide
|
|
75
75
|
|
|
76
|
-
|
|
77
|
-
|-----------|-------|--------|
|
|
78
|
-
| Code implementation | `opus` | Best quality for coding |
|
|
79
|
-
| Code review | `opus` | Thorough analysis |
|
|
80
|
-
| File search/exploration | (default) | Speed over quality |
|
|
81
|
-
| Simple queries | `haiku` | Fast, low cost |
|
|
76
|
+
Model selection is config-driven via `.exarchos.yml`. The `prepare_delegation` action returns a `recommendedModel` in each task classification based on the config cascade: per-agent override, then default-model, then fallback. Override per-task via the Task tool's `model` parameter when needed.
|
|
82
77
|
|
|
83
|
-
**Note:** When using Agent Teams, all teammates inherit the session's model. Use Task tool dispatch if you need per-task model
|
|
78
|
+
**Note:** When using Agent Teams, all teammates inherit the session's model. Model is resolved from `.exarchos.yml` config via `prepare_delegation`. Use Task tool dispatch if you need per-task model override.
|
|
84
79
|
|
|
85
80
|
## Agent Teams Dispatch Pattern
|
|
86
81
|
|
|
@@ -106,7 +101,7 @@ Each teammate receives the full implementer prompt including TDD requirements, f
|
|
|
106
101
|
| Cross-task deps | Orchestrator manages phases | Shared task list + unblocked task detection |
|
|
107
102
|
| Monitoring | `TaskOutput` polling | tmux panes + `TeammateIdle` hook |
|
|
108
103
|
| State updates | Orchestrator updates state | Hook auto-updates via state bridge |
|
|
109
|
-
| Model per task | Yes (`
|
|
104
|
+
| Model per task | Yes (`recommendedModel` per Task) | No (session model for all) |
|
|
110
105
|
| Quality gates | Manual via `post_delegation_check` action | Automatic via `TeammateIdle` hook |
|
|
111
106
|
| Recovery | Task results preserved | Worktrees survive, teammates lost |
|
|
112
107
|
|
|
@@ -41,13 +41,13 @@ Build two self-contained prompts from `implementer-prompt.md` and dispatch in a
|
|
|
41
41
|
|
|
42
42
|
```typescript
|
|
43
43
|
Task({
|
|
44
|
-
subagent_type: "general-purpose",
|
|
44
|
+
subagent_type: "general-purpose", run_in_background: true,
|
|
45
45
|
description: "Implement task-001: Email format validator",
|
|
46
46
|
prompt: `# Task: Email Format Validator\n\n## Working Directory\n/project/.worktrees/task-001\n\n[Full implementer prompt with TDD, file paths, acceptance criteria...]`
|
|
47
47
|
})
|
|
48
48
|
|
|
49
49
|
Task({
|
|
50
|
-
subagent_type: "general-purpose",
|
|
50
|
+
subagent_type: "general-purpose", run_in_background: true,
|
|
51
51
|
description: "Implement task-002: Domain MX check",
|
|
52
52
|
prompt: `# Task: Domain MX Check\n\n## Working Directory\n/project/.worktrees/task-002\n\n[Full implementer prompt with TDD, file paths, acceptance criteria...]`
|
|
53
53
|
})
|
|
@@ -86,7 +86,7 @@ Re-dispatch with fixer prompt in the same worktree:
|
|
|
86
86
|
|
|
87
87
|
```typescript
|
|
88
88
|
Task({
|
|
89
|
-
subagent_type: "general-purpose",
|
|
89
|
+
subagent_type: "general-purpose",
|
|
90
90
|
description: "Fix task-002: DNS mock missing",
|
|
91
91
|
prompt: `# Fix Task: DNS Mock Missing\n\n## Adversarial Verification Posture\nIndependently verify the failure...\n\n## Working Directory\n/project/.worktrees/task-002\n\n## Issue to Fix\n**File:** src/validators/domain.test.ts\n**Problem:** Missing vi.mock('dns') — test makes real network calls\n**Fix:** Add vi.mock('dns') with MX record stub\n\n## Verification\nRun: npm run test:run\nAll tests must pass without network access.`
|
|
92
92
|
})
|
|
@@ -40,7 +40,6 @@ TodoWrite({
|
|
|
40
40
|
// Launch multiple in single message for parallel execution
|
|
41
41
|
Task({
|
|
42
42
|
subagent_type: "general-purpose",
|
|
43
|
-
model: "opus",
|
|
44
43
|
run_in_background: true,
|
|
45
44
|
description: "Implement task 001",
|
|
46
45
|
prompt: "[Full implementer prompt]"
|
|
@@ -48,7 +47,6 @@ Task({
|
|
|
48
47
|
|
|
49
48
|
Task({
|
|
50
49
|
subagent_type: "general-purpose",
|
|
51
|
-
model: "opus",
|
|
52
50
|
run_in_background: true,
|
|
53
51
|
description: "Implement task 002",
|
|
54
52
|
prompt: "[Full implementer prompt]"
|
|
@@ -64,7 +64,7 @@ When using native isolation:
|
|
|
64
64
|
| Don't | Do Instead |
|
|
65
65
|
|-------|------------|
|
|
66
66
|
| Make subagents read plan files | Provide full task text in prompt |
|
|
67
|
-
| Use default model for coding |
|
|
67
|
+
| Use default model for coding | Use configured model from `prepare_delegation` |
|
|
68
68
|
| Send sequential Task calls | Batch parallel tasks in one message |
|
|
69
69
|
| Skip worktree for parallel work | Create isolated worktrees |
|
|
70
70
|
| Forget to track in TodoWrite | Update status for every task |
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: discovery
|
|
3
|
+
description: "Research and discovery workflow for document deliverables — competitive analyses, architecture comparisons, ADR scaffolding, literature reviews, vendor evaluations. No TDD requirement. Phases: gathering → synthesizing → completed. Triggers: 'discover', 'research', 'explore topic', or /exarchos:discover."
|
|
4
|
+
metadata:
|
|
5
|
+
author: exarchos
|
|
6
|
+
version: 1.0.0
|
|
7
|
+
mcp-server: exarchos
|
|
8
|
+
category: workflow
|
|
9
|
+
phase-affinity: gathering
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
# Discovery Workflow Skill
|
|
13
|
+
|
|
14
|
+
A workflow type for tasks whose deliverable is a **document, not code**. Explicitly
|
|
15
|
+
exempt from the Iron Law (no failing test requirement) because there is nothing to test.
|
|
16
|
+
|
|
17
|
+
## When to Use
|
|
18
|
+
|
|
19
|
+
- Competitive analyses and market research
|
|
20
|
+
- Architecture comparisons and ADR scaffolding
|
|
21
|
+
- Literature reviews and vendor evaluations
|
|
22
|
+
- Design research that does NOT feed into implementation planning
|
|
23
|
+
|
|
24
|
+
## When NOT to Use
|
|
25
|
+
|
|
26
|
+
- If the deliverable includes code changes → use `/exarchos:oneshot` or `/exarchos:ideate`
|
|
27
|
+
- If you need TDD enforcement → use any other workflow type
|
|
28
|
+
- If the research feeds directly into implementation → use `/exarchos:ideate` (which includes a design phase)
|
|
29
|
+
|
|
30
|
+
## Phases
|
|
31
|
+
|
|
32
|
+
### Phase 1: Gathering (initial)
|
|
33
|
+
|
|
34
|
+
Collect sources, references, and raw material for the deliverable.
|
|
35
|
+
|
|
36
|
+
1. Define the research question or deliverable scope
|
|
37
|
+
2. Identify and collect sources (URLs, documents, code references)
|
|
38
|
+
3. Record sources in workflow state:
|
|
39
|
+
|
|
40
|
+
```typescript
|
|
41
|
+
mcp__plugin_exarchos_exarchos__exarchos_workflow({
|
|
42
|
+
action: "set", featureId: "<id>",
|
|
43
|
+
updates: { "artifacts.sources": ["<source1>", "<source2>", "..."] }
|
|
44
|
+
})
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
4. Create an outline of the deliverable
|
|
48
|
+
|
|
49
|
+
**Transition:** When `artifacts.sources` is a non-empty array → `synthesizing`
|
|
50
|
+
|
|
51
|
+
### Phase 2: Synthesizing
|
|
52
|
+
|
|
53
|
+
Draft the deliverable document from gathered sources.
|
|
54
|
+
|
|
55
|
+
1. Write the document based on gathered sources and outline
|
|
56
|
+
2. Commit the document to the repo (typically under `docs/research/` or `docs/designs/`)
|
|
57
|
+
3. Record the report path:
|
|
58
|
+
|
|
59
|
+
```typescript
|
|
60
|
+
mcp__plugin_exarchos_exarchos__exarchos_workflow({
|
|
61
|
+
action: "set", featureId: "<id>",
|
|
62
|
+
updates: { "artifacts.report": "<path-to-document>" }
|
|
63
|
+
})
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
**Transition:** When `artifacts.report` is set → `completed`
|
|
67
|
+
|
|
68
|
+
### Optional: Escalation to Implementation
|
|
69
|
+
|
|
70
|
+
If discovery surfaces an implementation need:
|
|
71
|
+
|
|
72
|
+
1. Note the finding in the report
|
|
73
|
+
2. After completing the discovery workflow, start a new workflow:
|
|
74
|
+
```bash
|
|
75
|
+
/exarchos:ideate <implementation-topic>
|
|
76
|
+
```
|
|
77
|
+
Reference the discovery report as design input.
|
|
78
|
+
|
|
79
|
+
## Event Emissions
|
|
80
|
+
|
|
81
|
+
Optionally emit events at key moments for observability:
|
|
82
|
+
|
|
83
|
+
```typescript
|
|
84
|
+
mcp__plugin_exarchos_exarchos__exarchos_event({
|
|
85
|
+
action: "append", stream: "<featureId>",
|
|
86
|
+
event: { type: "discovery.sources_collected", data: { sourceCount: N } }
|
|
87
|
+
})
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
```typescript
|
|
91
|
+
mcp__plugin_exarchos_exarchos__exarchos_event({
|
|
92
|
+
action: "append", stream: "<featureId>",
|
|
93
|
+
event: { type: "discovery.report_committed", data: { path: "<report-path>" } }
|
|
94
|
+
})
|
|
95
|
+
```
|
|
@@ -10,6 +10,12 @@ metadata:
|
|
|
10
10
|
|
|
11
11
|
# Dogfood Skill
|
|
12
12
|
|
|
13
|
+
## VCS Provider
|
|
14
|
+
|
|
15
|
+
This skill uses VCS operations through Exarchos MCP actions (`create_issue`, etc.).
|
|
16
|
+
These actions automatically detect and route to the correct VCS provider (GitHub, GitLab, Azure DevOps).
|
|
17
|
+
No `gh`/`glab`/`az` commands needed — the MCP server handles provider dispatch.
|
|
18
|
+
|
|
13
19
|
## Overview
|
|
14
20
|
|
|
15
21
|
Retrospective analysis of Exarchos MCP tool usage. Uses the MCP server's own self-service capabilities as the primary diagnostic instrument — describe APIs, views, playbooks, and runbooks turned inward to diagnose failures.
|
|
@@ -144,8 +150,8 @@ Produce the report using the template from `references/report-template.md`. Incl
|
|
|
144
150
|
|
|
145
151
|
For findings in the **Code Bug** and **Documentation Issue** buckets, offer to create GitHub issues:
|
|
146
152
|
|
|
147
|
-
```
|
|
148
|
-
|
|
153
|
+
```typescript
|
|
154
|
+
exarchos_orchestrate({ action: "create_issue", title: "<type>: <summary>", body: "<issue body>", labels: ["bug"] })
|
|
149
155
|
```
|
|
150
156
|
|
|
151
157
|
Only file issues with user confirmation — present the draft first.
|
|
@@ -94,13 +94,13 @@ Issues discovered solely through debug trace (not visible in conversation errors
|
|
|
94
94
|
Ready-to-file issue bodies for Code Bugs and Documentation Issues:
|
|
95
95
|
|
|
96
96
|
#### Issue: [CB-1 title]
|
|
97
|
-
```
|
|
98
|
-
|
|
97
|
+
```typescript
|
|
98
|
+
exarchos_orchestrate({ action: "create_issue", title: "bug: [summary]", body: "...", labels: ["bug"] })
|
|
99
99
|
```
|
|
100
100
|
|
|
101
101
|
#### Issue: [DOC-1 title]
|
|
102
|
-
```
|
|
103
|
-
|
|
102
|
+
```typescript
|
|
103
|
+
exarchos_orchestrate({ action: "create_issue", title: "docs: [summary]", body: "...", labels: ["bug"] })
|
|
104
104
|
```
|
|
105
105
|
|
|
106
106
|
### Patterns & Trends
|
|
@@ -11,6 +11,12 @@ metadata:
|
|
|
11
11
|
|
|
12
12
|
# Oneshot Workflow Skill
|
|
13
13
|
|
|
14
|
+
## VCS Provider
|
|
15
|
+
|
|
16
|
+
This skill uses VCS operations through Exarchos MCP actions (`create_pr`, `merge_pr`, etc.) when the synthesize path is taken.
|
|
17
|
+
These actions automatically detect and route to the correct VCS provider (GitHub, GitLab, Azure DevOps).
|
|
18
|
+
No `gh`/`glab`/`az` commands needed — the MCP server handles provider dispatch.
|
|
19
|
+
|
|
14
20
|
A lean, four-phase workflow type for changes that are too small to justify the
|
|
15
21
|
full `feature` flow (`ideate → plan → plan-review → delegate → review → synthesize → completed`)
|
|
16
22
|
but still deserve event-sourced auditability and a planning step. The workflow is
|
|
@@ -103,7 +109,7 @@ pure functions of `state.oneshot.synthesisPolicy` and the
|
|
|
103
109
|
|---|---|---|
|
|
104
110
|
| `plan` | Lightweight one-page plan: goal, approach, files to touch, tests to add. No design doc. No subagent dispatch. | `artifacts.plan` set → transition to `implementing` |
|
|
105
111
|
| `implementing` | In-session TDD loop. Write a failing test, make it pass, refactor. Commit as you go. The TDD iron law applies — *no production code without a failing test first*. | Tests pass + typecheck clean + finalize_oneshot called |
|
|
106
|
-
| `synthesize` | Reached **only** when `synthesisOptedIn` is true. Hands off to the existing synthesis flow — see `@skills/synthesis/SKILL.md`. PR created via `
|
|
112
|
+
| `synthesize` | Reached **only** when `synthesisOptedIn` is true. Hands off to the existing synthesis flow — see `@skills/synthesis/SKILL.md`. PR created via `exarchos_orchestrate({ action: "create_pr" })`, auto-merge enabled, CI gates apply. | PR merged → `completed` |
|
|
107
113
|
| `completed` | Terminal. For direct-commit path, commits are already on the branch — there's nothing more to do. For synthesize path, the PR merge event terminates the workflow. | — |
|
|
108
114
|
|
|
109
115
|
`cancelled` is also reachable from any phase via the universal cancel
|
|
@@ -282,7 +288,7 @@ pipeline view.
|
|
|
282
288
|
|
|
283
289
|
If finalize resolved to `synthesize`, hand off to the standard synthesis
|
|
284
290
|
flow — see `@skills/synthesis/SKILL.md`. The same `prepare_synthesis` /
|
|
285
|
-
`validate_pr_body` / `
|
|
291
|
+
`validate_pr_body` / `create_pr` machinery used by the `feature`
|
|
286
292
|
workflow applies. After the PR merges, the workflow transitions
|
|
287
293
|
`synthesize → completed` via the existing `mergeVerified` guard, same as
|
|
288
294
|
every other workflow type.
|
|
@@ -351,7 +357,7 @@ Agent:
|
|
|
351
357
|
→ guard sees policy='on-request' + 1 synthesize.requested event
|
|
352
358
|
→ resolves to 'synthesize'
|
|
353
359
|
10. hands off to @skills/synthesis/SKILL.md → prepare_synthesis →
|
|
354
|
-
validate_pr_body →
|
|
360
|
+
validate_pr_body → create_pr → merge
|
|
355
361
|
```
|
|
356
362
|
|
|
357
363
|
### Example C — `synthesisPolicy: 'always'` (PR mandatory)
|
|
@@ -10,6 +10,12 @@ metadata:
|
|
|
10
10
|
|
|
11
11
|
# Prune Workflows Skill
|
|
12
12
|
|
|
13
|
+
## VCS Provider
|
|
14
|
+
|
|
15
|
+
This skill's safeguards use VCS operations internally (open PR detection).
|
|
16
|
+
The orchestrate handler manages VCS provider dispatch automatically.
|
|
17
|
+
No `gh`/`glab`/`az` commands needed — the MCP server handles provider dispatch.
|
|
18
|
+
|
|
13
19
|
## Overview
|
|
14
20
|
|
|
15
21
|
Bulk-cancel stale non-terminal workflows that have accumulated in the pipeline. Wraps the `prune_stale_workflows` orchestrate action with an interactive dry-run-then-confirm UX so the user always sees the candidate set before any state mutates.
|
|
@@ -34,7 +34,7 @@ Quality-review itself is NOT a human checkpoint — it auto-continues. However,
|
|
|
34
34
|
|
|
35
35
|
Gate events are automatically emitted by the orchestrate handlers — do NOT manually emit `gate.executed` events via `exarchos_event`.
|
|
36
36
|
|
|
37
|
-
1. **Read CI status** via `
|
|
37
|
+
1. **Read CI status** via `exarchos_orchestrate({ action: "check_ci", prId: "<number>" })`
|
|
38
38
|
2. **Gate events** — emitted automatically by `check_static_analysis`, `check_security_scan`, `check_context_economy`, `check_operational_resilience`, `check_workflow_determinism`, and `check_review_verdict` handlers
|
|
39
39
|
3. **Read unified status** via `exarchos_view` with `action: "tasks"`, `fields: ["taskId", "status", "title"]`, `limit: 20`
|
|
40
40
|
4. **Query convergence** via `exarchos_view` with `action: "convergence"`, `workflowId: "<featureId>"` for per-dimension gate results
|
|
@@ -161,7 +161,7 @@ Invoke `/exarchos:synthesize` skill:
|
|
|
161
161
|
Skill({ skill: "exarchos:synthesize", args: "<feature-name>" })
|
|
162
162
|
```
|
|
163
163
|
|
|
164
|
-
Creates PR via `
|
|
164
|
+
Creates PR via `exarchos_orchestrate({ action: "create_pr" })`, updates description via `gh pr edit --body`. **Human checkpoint:** Confirm merge.
|
|
165
165
|
|
|
166
166
|
> Or use GitHub MCP `update_pull_request` if available.
|
|
167
167
|
|
|
@@ -11,6 +11,12 @@ metadata:
|
|
|
11
11
|
|
|
12
12
|
# Shepherd Skill
|
|
13
13
|
|
|
14
|
+
## VCS Provider
|
|
15
|
+
|
|
16
|
+
This skill uses VCS operations through Exarchos MCP actions (`check_ci`, `list_prs`, `merge_pr`, `get_pr_comments`, `add_pr_comment`, etc.).
|
|
17
|
+
These actions automatically detect and route to the correct VCS provider (GitHub, GitLab, Azure DevOps).
|
|
18
|
+
No `gh`/`glab`/`az` commands needed — the MCP server handles provider dispatch.
|
|
19
|
+
|
|
14
20
|
Iterative loop that shepherds published PRs through CI checks and code reviews to merge readiness. Uses the `assess_stack` composite action for all PR health checks, fixing failures and addressing feedback until the stack is green.
|
|
15
21
|
|
|
16
22
|
> **Note:** Shepherd is not a separate HSM phase. It operates as a loop within the `synthesize` phase. The workflow phase remains `synthesize` throughout the shepherd iteration cycle. Events (`shepherd.iteration`, `ci.status`) and the `shepherd_status` view track loop progress without requiring a phase transition.
|
|
@@ -35,8 +41,8 @@ Activate when:
|
|
|
35
41
|
## Prerequisites
|
|
36
42
|
|
|
37
43
|
- Active workflow with PRs published (PR URLs in `synthesis.prUrl` or `artifacts.pr`)
|
|
38
|
-
- PRs created and pushed (`
|
|
39
|
-
-
|
|
44
|
+
- PRs created and pushed (`create_pr` already ran)
|
|
45
|
+
- Exarchos MCP tools available for VCS operations
|
|
40
46
|
|
|
41
47
|
## Process
|
|
42
48
|
|
|
@@ -126,7 +132,7 @@ These events feed `selfCorrectionRate` and `avgRemediationAttempts` metrics in C
|
|
|
126
132
|
| `ci-fix` | Read logs, reproduce locally, fix, commit to stack branch |
|
|
127
133
|
| `comment-reply` | Read context from `actionItem.context`, compose response, post via GitHub MCP |
|
|
128
134
|
| `review-address` | Fix code for CHANGES_REQUESTED, reply to each thread |
|
|
129
|
-
| `restack` | Run `git rebase origin/<base>`, verify with `
|
|
135
|
+
| `restack` | Run `git rebase origin/<base>`, verify with `exarchos_orchestrate({ action: "list_prs" })` |
|
|
130
136
|
| `escalate` | Consult `references/escalation-criteria.md` |
|
|
131
137
|
|
|
132
138
|
Every inline review comment must get a reply. The goal is that a human scanning the PR sees every thread has a response.
|
|
@@ -136,8 +142,11 @@ Every inline review comment must get a reply. The goal is that a human scanning
|
|
|
136
142
|
After fixes are applied, resubmit the stack:
|
|
137
143
|
```bash
|
|
138
144
|
git push --force-with-lease
|
|
139
|
-
|
|
140
|
-
|
|
145
|
+
```
|
|
146
|
+
|
|
147
|
+
Re-enable auto-merge if needed:
|
|
148
|
+
```typescript
|
|
149
|
+
exarchos_orchestrate({ action: "merge_pr", prId: "<number>", strategy: "squash" })
|
|
141
150
|
```
|
|
142
151
|
|
|
143
152
|
Return to Step 1 for the next iteration. Track iteration count against the limit (default 5). If the limit is reached without reaching `request-approval`, escalate per `references/escalation-criteria.md`.
|
|
@@ -11,9 +11,9 @@ mcp__plugin_exarchos_exarchos__exarchos_workflow({ action: "get", featureId: "<i
|
|
|
11
11
|
|
|
12
12
|
Extract PR numbers from URLs (e.g., `https://github.com/owner/repo/pull/123` → `123`).
|
|
13
13
|
|
|
14
|
-
If no PRs in state, check
|
|
15
|
-
```
|
|
16
|
-
|
|
14
|
+
If no PRs in state, check VCS:
|
|
15
|
+
```typescript
|
|
16
|
+
exarchos_orchestrate({ action: "list_prs", state: "open" })
|
|
17
17
|
```
|
|
18
18
|
|
|
19
19
|
## 2. CI Check Status
|
|
@@ -105,8 +105,8 @@ coderabbit: 5 total, 5 replied
|
|
|
105
105
|
## 5. Stack Health
|
|
106
106
|
|
|
107
107
|
Check the branch stack state:
|
|
108
|
-
```
|
|
109
|
-
|
|
108
|
+
```typescript
|
|
109
|
+
exarchos_orchestrate({ action: "list_prs", state: "open" })
|
|
110
110
|
```
|
|
111
111
|
|
|
112
112
|
Verify:
|
|
@@ -136,8 +136,8 @@ mcp__plugin_github_github__pull_request_read({
|
|
|
136
136
|
The response includes `autoMergeRequest` — if null, merge-when-ready is not set.
|
|
137
137
|
|
|
138
138
|
If `autoMergeRequest` is null, merge-when-ready is not set. Re-enable:
|
|
139
|
-
```
|
|
140
|
-
|
|
139
|
+
```typescript
|
|
140
|
+
exarchos_orchestrate({ action: "merge_pr", prId: "<number>", strategy: "squash" })
|
|
141
141
|
```
|
|
142
142
|
|
|
143
143
|
## 7. Aggregate and Report
|
|
@@ -8,7 +8,7 @@ How to address common issues found during shepherd assessment.
|
|
|
8
8
|
|-----------|----------|
|
|
9
9
|
| Single file, < 20 lines changed | Fix directly in the stack branch |
|
|
10
10
|
| Multiple files, contained concern | Fix directly if < 5 files |
|
|
11
|
-
| Cross-cutting or architectural |
|
|
11
|
+
| Cross-cutting or architectural | Route to `/exarchos:delegate --fixes` for subagent dispatch |
|
|
12
12
|
| Test changes needed | Fix directly (keep TDD cycle tight) |
|
|
13
13
|
|
|
14
14
|
**Default to fixing directly** — delegation adds overhead. Only delegate when the fix scope warrants it.
|
|
@@ -105,7 +105,7 @@ These events feed `selfCorrectionRate` and `avgRemediationAttempts` metrics in C
|
|
|
105
105
|
|
|
106
106
|
If a test passes locally but fails in CI:
|
|
107
107
|
1. Check if it's a known flaky test
|
|
108
|
-
2. Re-run CI: `
|
|
108
|
+
2. Re-run CI: `exarchos_orchestrate({ action: "check_ci", prId: "<number>" })` (or push an empty commit to retrigger)
|
|
109
109
|
3. If consistently flaky, fix the test or mark it with a skip annotation and create a follow-up issue
|
|
110
110
|
|
|
111
111
|
## Addressing Inline Review Comments
|
|
@@ -268,7 +268,7 @@ When making fixes to stack branches:
|
|
|
268
268
|
git push --force-with-lease
|
|
269
269
|
```
|
|
270
270
|
|
|
271
|
-
**IMPORTANT:** After pushing, verify auto-merge is still enabled: `gh pr view <number> --json autoMergeRequest
|
|
271
|
+
**IMPORTANT:** After pushing, verify auto-merge is still enabled: `gh pr view <number> --json autoMergeRequest` (no MCP equivalent yet — use VCS CLI directly).
|
|
272
272
|
|
|
273
273
|
## Responding on PRs
|
|
274
274
|
|
|
@@ -286,4 +286,4 @@ mcp__plugin_github_github__add_issue_comment({
|
|
|
286
286
|
body: "Addressed review feedback:\n- Fixed Sentry bug: ...\n- Replied to DI concern...\n\nAll inline review threads have replies."
|
|
287
287
|
})
|
|
288
288
|
```
|
|
289
|
-
Fallback (if MCP token lacks write scope): `
|
|
289
|
+
Fallback (if MCP token lacks write scope): `exarchos_orchestrate({ action: "add_pr_comment", prId: "<number>", body: "..." })`
|