@lvlup-sw/exarchos 2.7.1 → 2.8.1
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 +5 -0
- package/commands/reload.md +0 -1
- package/commands/tdd.md +0 -1
- 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
|
@@ -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 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__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__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
|
+
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__exarchos__exarchos_event({
|
|
85
|
+
action: "append", stream: "<featureId>",
|
|
86
|
+
event: { type: "discovery.sources_collected", data: { sourceCount: N } }
|
|
87
|
+
})
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
```typescript
|
|
91
|
+
mcp__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: "..." })`
|
|
@@ -11,6 +11,12 @@ metadata:
|
|
|
11
11
|
|
|
12
12
|
# Synthesis Skill
|
|
13
13
|
|
|
14
|
+
## VCS Provider
|
|
15
|
+
|
|
16
|
+
This skill uses VCS operations through Exarchos MCP actions (`create_pr`, `merge_pr`, `list_prs`, `check_ci`, 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
|
Submit stacked PRs after review phase completes. The `prepare_synthesis` composite action consolidates readiness checks, stack verification, test validation, and quality signal analysis into a single call -- eliminating the multi-script coordination that historically caused synthesis failures.
|
|
@@ -105,20 +111,33 @@ mcp__exarchos__exarchos_orchestrate({
|
|
|
105
111
|
})
|
|
106
112
|
```
|
|
107
113
|
|
|
108
|
-
**Do NOT call `
|
|
114
|
+
**Do NOT call `create_pr` until validation passes.** If validation fails, fix the body and re-validate.
|
|
109
115
|
|
|
110
116
|
### Step 3: Submit and Merge
|
|
111
117
|
|
|
112
|
-
Create PRs using the validated body and enable auto-merge:
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
118
|
+
Create PRs using the validated body and enable auto-merge. For each branch in the stack (bottom-up):
|
|
119
|
+
|
|
120
|
+
```typescript
|
|
121
|
+
// Create PR via VCS MCP action
|
|
122
|
+
exarchos_orchestrate({
|
|
123
|
+
action: "create_pr",
|
|
124
|
+
base: "<parent-branch>",
|
|
125
|
+
head: "<branch>",
|
|
126
|
+
title: "<type>: <what>",
|
|
127
|
+
body: "<pr-body>"
|
|
128
|
+
})
|
|
129
|
+
|
|
130
|
+
// Enable auto-merge
|
|
131
|
+
exarchos_orchestrate({
|
|
132
|
+
action: "merge_pr",
|
|
133
|
+
prId: "<number>",
|
|
134
|
+
strategy: "squash"
|
|
135
|
+
})
|
|
117
136
|
```
|
|
118
137
|
|
|
119
138
|
After submission:
|
|
120
139
|
1. **Apply benchmark label** -- If `verification.hasBenchmarks` is true, apply label: `gh pr edit <number> --add-label has-benchmarks`
|
|
121
|
-
2. **Record PR URLs** -- Capture URLs
|
|
140
|
+
2. **Record PR URLs** -- Capture URLs via `exarchos_orchestrate({ action: "list_prs", state: "open" })`
|
|
122
141
|
3. **Update state:**
|
|
123
142
|
|
|
124
143
|
```typescript
|
|
@@ -135,7 +154,7 @@ For merge ordering strategy, see `references/merge-ordering.md`.
|
|
|
135
154
|
**Human checkpoint:** Output "Stacked PRs enqueued: [URLs]. Waiting for CI/merge queue." then **PAUSE for user input**: "Merge stack? (yes/no/feedback)"
|
|
136
155
|
|
|
137
156
|
- **'yes'** -- PRs merge; transition to completed via `cleanup`
|
|
138
|
-
- **'feedback'** -- Route to `
|
|
157
|
+
- **'feedback'** -- Route to `shepherd [PR_URL]` to address comments, then return here
|
|
139
158
|
- **'no'** -- Pause workflow; resume later with `rehydrate`
|
|
140
159
|
|
|
141
160
|
### Event Emissions (REQUIRED)
|
|
@@ -8,15 +8,15 @@ PR stacking creates a chain of dependent pull requests that merge bottom-up into
|
|
|
8
8
|
|
|
9
9
|
## 1. PR Chain Creation
|
|
10
10
|
|
|
11
|
-
Create PRs that chain together by setting each PR's
|
|
11
|
+
Create PRs that chain together by setting each PR's base to the previous branch:
|
|
12
12
|
|
|
13
|
-
```
|
|
14
|
-
|
|
15
|
-
|
|
13
|
+
```typescript
|
|
14
|
+
// First PR in chain targets main
|
|
15
|
+
exarchos_orchestrate({ action: "create_pr", base: "main", head: "feat/step-1", title: "feat: step 1", body: "..." })
|
|
16
16
|
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
17
|
+
// Subsequent PRs target the previous PR's branch
|
|
18
|
+
exarchos_orchestrate({ action: "create_pr", base: "feat/step-1", head: "feat/step-2", title: "feat: step 2", body: "..." })
|
|
19
|
+
exarchos_orchestrate({ action: "create_pr", base: "feat/step-2", head: "feat/step-3", title: "feat: step 3", body: "..." })
|
|
20
20
|
```
|
|
21
21
|
|
|
22
22
|
The resulting chain looks like:
|
|
@@ -72,15 +72,14 @@ After rebasing a mid-stack branch, all downstream branches in the stack must als
|
|
|
72
72
|
|
|
73
73
|
View the current PR chain and its state:
|
|
74
74
|
|
|
75
|
-
```
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
# 103: feat/step-2 <- feat/step-3 [OPEN]
|
|
75
|
+
```typescript
|
|
76
|
+
// List all open PRs with base/head branch relationships
|
|
77
|
+
exarchos_orchestrate({ action: "list_prs", state: "open" })
|
|
78
|
+
|
|
79
|
+
// Example output shows PR numbers, base/head branches, titles, and state:
|
|
80
|
+
// 101: main <- feat/step-1 [OPEN]
|
|
81
|
+
// 102: feat/step-1 <- feat/step-2 [OPEN]
|
|
82
|
+
// 103: feat/step-2 <- feat/step-3 [OPEN]
|
|
84
83
|
```
|
|
85
84
|
|
|
86
85
|
To validate stack integrity, use the `validate_pr_stack` action via orchestrate:
|
|
@@ -97,32 +96,29 @@ exarchos_orchestrate({
|
|
|
97
96
|
GitHub's native merge queue ensures PRs pass CI before merging:
|
|
98
97
|
|
|
99
98
|
- **Enable:** Repository Settings > Rules > Branch protection > Require merge queue
|
|
100
|
-
- **Auto-merge:** `
|
|
99
|
+
- **Auto-merge:** `exarchos_orchestrate({ action: "merge_pr", prId: "<number>", strategy: "squash" })` enables auto-merge once checks pass
|
|
101
100
|
- **For stacks:** Enable auto-merge on each PR, then merge bottom-up
|
|
102
101
|
|
|
103
|
-
```
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
# Merge the first PR to start the cascade
|
|
110
|
-
gh pr merge 101 --squash
|
|
102
|
+
```typescript
|
|
103
|
+
// Enable auto-merge on all PRs in the stack
|
|
104
|
+
exarchos_orchestrate({ action: "merge_pr", prId: "101", strategy: "squash" })
|
|
105
|
+
exarchos_orchestrate({ action: "merge_pr", prId: "102", strategy: "squash" })
|
|
106
|
+
exarchos_orchestrate({ action: "merge_pr", prId: "103", strategy: "squash" })
|
|
111
107
|
```
|
|
112
108
|
|
|
113
109
|
After PR 101 merges and its branch is deleted, GitHub retargets PR 102 to `main`. If auto-merge is enabled on PR 102, it merges automatically once CI passes.
|
|
114
110
|
|
|
115
|
-
## 7. Graphite to
|
|
111
|
+
## 7. Graphite to Exarchos MCP Equivalents
|
|
116
112
|
|
|
117
|
-
| Graphite Command |
|
|
113
|
+
| Graphite Command | Exarchos MCP Equivalent |
|
|
118
114
|
|---|---|
|
|
119
115
|
| `gt create <branch> -m "feat: ..."` | `git checkout -b <branch> && git commit -m "feat: ..." && git push -u origin <branch>` |
|
|
120
|
-
| `gt submit --no-interactive --publish --stack` | `
|
|
121
|
-
| `gt log` | `
|
|
116
|
+
| `gt submit --no-interactive --publish --stack` | `exarchos_orchestrate({ action: "create_pr", base: "<base>", title: "...", body: "..." })` (per PR) |
|
|
117
|
+
| `gt log` | `exarchos_orchestrate({ action: "list_prs", state: "open" })` |
|
|
122
118
|
| `gt modify -m "..."` | `git commit --amend -m "..." && git push --force-with-lease` |
|
|
123
119
|
| `gt sync` | `git fetch --prune && git rebase origin/main` |
|
|
124
120
|
| `gt restack` | `git rebase origin/<base-branch>` per branch in stack |
|
|
125
|
-
| `mcp__graphite__run_gt_cmd` | `
|
|
121
|
+
| `mcp__graphite__run_gt_cmd` | `exarchos_orchestrate` VCS actions |
|
|
126
122
|
|
|
127
123
|
## 8. Error Handling
|
|
128
124
|
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
## Overview
|
|
4
4
|
|
|
5
|
-
GitHub-native stacked PRs merge bottom-up: the base branch merges first, then each dependent branch in sequence. This ordering is enforced by creating PRs with correct base branches and enabling auto-merge (
|
|
5
|
+
GitHub-native stacked PRs merge bottom-up: the base branch merges first, then each dependent branch in sequence. This ordering is enforced by creating PRs with correct base branches and enabling auto-merge via `exarchos_orchestrate({ action: "merge_pr", prId: "<number>", strategy: "squash" })`.
|
|
6
6
|
|
|
7
7
|
## Stack Ordering Rules
|
|
8
8
|
|
|
@@ -74,7 +74,7 @@ The script queries GitHub's PR reviews API for each PR, filters for CodeRabbit r
|
|
|
74
74
|
**On `passed: true`:** All PRs are APPROVED or have no CodeRabbit review -- proceed to Step 5.
|
|
75
75
|
**On `passed: false`:** At least one PR has CHANGES_REQUESTED or PENDING. The output identifies which PRs need attention. Route to fix cycle:
|
|
76
76
|
```typescript
|
|
77
|
-
Skill({ skill: "exarchos:
|
|
77
|
+
Skill({ skill: "exarchos:shepherd", args: "[PR_URL]" })
|
|
78
78
|
```
|
|
79
79
|
After fixes are applied, return to Step 4 to re-check.
|
|
80
80
|
|
|
@@ -121,13 +121,13 @@ mcp__plugin_exarchos_exarchos__exarchos_orchestrate({
|
|
|
121
121
|
|
|
122
122
|
Create PRs for each branch in the stack (bottom-up) and enable auto-merge:
|
|
123
123
|
|
|
124
|
-
```
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
124
|
+
```typescript
|
|
125
|
+
// For each branch in the stack (bottom-up):
|
|
126
|
+
exarchos_orchestrate({ action: "create_pr", base: "<parent-branch>", head: "<branch>", title: "<type>: <what>", body: "<pr-body>" })
|
|
127
|
+
exarchos_orchestrate({ action: "merge_pr", prId: "<number>", strategy: "squash" })
|
|
128
128
|
```
|
|
129
129
|
|
|
130
|
-
After creation, use `
|
|
130
|
+
After creation, use `exarchos_orchestrate({ action: "list_prs", state: "open" })` to get the PR URLs for each stack entry.
|
|
131
131
|
|
|
132
132
|
## Step 7: Cleanup After Merge
|
|
133
133
|
|
|
@@ -21,7 +21,7 @@ If tests fail during synthesis (they passed in review):
|
|
|
21
21
|
### Merge Queue Rejection
|
|
22
22
|
|
|
23
23
|
If the merge queue rejects a PR:
|
|
24
|
-
1. Check CI status via `
|
|
24
|
+
1. Check CI status via `exarchos_orchestrate({ action: "check_ci", prId: "<number>" })`
|
|
25
25
|
2. Fix failing checks
|
|
26
26
|
3. Push fixes and re-enqueue
|
|
27
27
|
|
|
@@ -29,20 +29,13 @@ If the merge queue rejects a PR:
|
|
|
29
29
|
|
|
30
30
|
If the user receives PR review comments:
|
|
31
31
|
|
|
32
|
-
1.
|
|
32
|
+
1. Route to the shepherd skill:
|
|
33
33
|
```typescript
|
|
34
|
-
Skill({ skill: "exarchos:
|
|
34
|
+
Skill({ skill: "exarchos:shepherd", args: "[PR_URL]" })
|
|
35
35
|
```
|
|
36
36
|
|
|
37
|
-
2.
|
|
38
|
-
|
|
39
|
-
gh pr view <number> --json reviews,comments
|
|
40
|
-
```
|
|
41
|
-
> Or use GitHub MCP `pull_request_read` if available.
|
|
42
|
-
|
|
43
|
-
3. Creates fix tasks from review comments
|
|
44
|
-
4. After fixes, amend the commit with `git commit --amend -m "fix: <description>"` and push with `git push --force-with-lease`
|
|
45
|
-
5. Return to merge confirmation
|
|
37
|
+
2. Shepherd reads PR comments, assesses CI, and applies fixes directly
|
|
38
|
+
3. After fixes, return to merge confirmation
|
|
46
39
|
|
|
47
40
|
## Final Report Template
|
|
48
41
|
|
|
@@ -50,7 +43,7 @@ If the user receives PR review comments:
|
|
|
50
43
|
## Synthesis Complete
|
|
51
44
|
|
|
52
45
|
### Pull Requests
|
|
53
|
-
[PR URLs from
|
|
46
|
+
[PR URLs from list_prs action]
|
|
54
47
|
|
|
55
48
|
### Stack Branches
|
|
56
49
|
- task/001-types
|
|
@@ -88,11 +81,11 @@ If workflow state doesn't match git reality:
|
|
|
88
81
|
3. Update state via `mcp__plugin_exarchos_exarchos__exarchos_workflow` with `action: "set"` to match git truth
|
|
89
82
|
|
|
90
83
|
## PR Creation Failed
|
|
91
|
-
If `
|
|
84
|
+
If `create_pr` fails:
|
|
92
85
|
1. Check the error output for specific guidance
|
|
93
|
-
2. Run `
|
|
86
|
+
2. Run `exarchos_orchestrate({ action: "list_prs", state: "open" })` to verify the branch state
|
|
94
87
|
3. If rebase conflict: run `git rebase origin/<base>` to resolve
|
|
95
|
-
4. If authentication issue: check
|
|
88
|
+
4. If authentication issue: check VCS provider token permissions
|
|
96
89
|
|
|
97
90
|
## Stack Rebase Conflict
|
|
98
91
|
If `git rebase` encounters conflicts:
|
|
@@ -104,8 +97,8 @@ If `git rebase` encounters conflicts:
|
|
|
104
97
|
|
|
105
98
|
When Exarchos MCP tools are available:
|
|
106
99
|
|
|
107
|
-
1. **After stack submission:** Call `mcp__plugin_exarchos_exarchos__exarchos_event` with `action: "append"` with event type `stack.enqueued` including PR numbers from `
|
|
108
|
-
2. **Monitor merge status:** Use `
|
|
100
|
+
1. **After stack submission:** Call `mcp__plugin_exarchos_exarchos__exarchos_event` with `action: "append"` with event type `stack.enqueued` including PR numbers from `exarchos_orchestrate({ action: "list_prs", state: "open" })`
|
|
101
|
+
2. **Monitor merge status:** Use `exarchos_orchestrate({ action: "list_prs", state: "all" })` to check stack/PR status
|
|
109
102
|
3. **On successful merge:** Call `mcp__plugin_exarchos_exarchos__exarchos_event` with `action: "append"` with event type `phase.transitioned` to mark workflow complete
|
|
110
103
|
|
|
111
104
|
## Performance Notes
|
|
@@ -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__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)
|