moflo 4.8.24 → 4.8.26

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (260) hide show
  1. package/.claude/agents/browser/browser-agent.yaml +182 -182
  2. package/.claude/agents/core/coder.md +265 -265
  3. package/.claude/agents/core/planner.md +167 -167
  4. package/.claude/agents/core/researcher.md +189 -189
  5. package/.claude/agents/core/reviewer.md +325 -325
  6. package/.claude/agents/core/tester.md +318 -318
  7. package/.claude/agents/database-specialist.yaml +21 -21
  8. package/.claude/agents/dual-mode/codex-coordinator.md +224 -224
  9. package/.claude/agents/dual-mode/codex-worker.md +211 -211
  10. package/.claude/agents/dual-mode/dual-orchestrator.md +291 -291
  11. package/.claude/agents/github/code-review-swarm.md +537 -537
  12. package/.claude/agents/github/github-modes.md +172 -172
  13. package/.claude/agents/github/issue-tracker.md +318 -318
  14. package/.claude/agents/github/multi-repo-swarm.md +552 -552
  15. package/.claude/agents/github/pr-manager.md +190 -190
  16. package/.claude/agents/github/project-board-sync.md +508 -508
  17. package/.claude/agents/github/release-manager.md +366 -366
  18. package/.claude/agents/github/release-swarm.md +582 -582
  19. package/.claude/agents/github/repo-architect.md +397 -397
  20. package/.claude/agents/github/swarm-issue.md +572 -572
  21. package/.claude/agents/github/swarm-pr.md +427 -427
  22. package/.claude/agents/github/sync-coordinator.md +451 -451
  23. package/.claude/agents/github/workflow-automation.md +634 -634
  24. package/.claude/agents/goal/code-goal-planner.md +445 -445
  25. package/.claude/agents/hive-mind/collective-intelligence-coordinator.md +129 -129
  26. package/.claude/agents/hive-mind/queen-coordinator.md +202 -202
  27. package/.claude/agents/hive-mind/scout-explorer.md +241 -241
  28. package/.claude/agents/hive-mind/swarm-memory-manager.md +192 -192
  29. package/.claude/agents/hive-mind/worker-specialist.md +216 -216
  30. package/.claude/agents/index.yaml +17 -17
  31. package/.claude/agents/neural/safla-neural.md +73 -73
  32. package/.claude/agents/project-coordinator.yaml +15 -15
  33. package/.claude/agents/python-specialist.yaml +21 -21
  34. package/.claude/agents/reasoning/goal-planner.md +72 -72
  35. package/.claude/agents/security-auditor.yaml +20 -20
  36. package/.claude/agents/swarm/adaptive-coordinator.md +395 -395
  37. package/.claude/agents/swarm/hierarchical-coordinator.md +326 -326
  38. package/.claude/agents/swarm/mesh-coordinator.md +391 -391
  39. package/.claude/agents/templates/migration-plan.md +745 -745
  40. package/.claude/agents/typescript-specialist.yaml +21 -21
  41. package/.claude/checkpoints/1767754460.json +8 -8
  42. package/.claude/commands/agents/agent-spawning.md +28 -28
  43. package/.claude/commands/github/github-modes.md +146 -146
  44. package/.claude/commands/github/github-swarm.md +121 -121
  45. package/.claude/commands/github/issue-tracker.md +291 -291
  46. package/.claude/commands/github/pr-manager.md +169 -169
  47. package/.claude/commands/github/release-manager.md +337 -337
  48. package/.claude/commands/github/repo-architect.md +366 -366
  49. package/.claude/commands/github/sync-coordinator.md +300 -300
  50. package/.claude/commands/memory/neural.md +47 -47
  51. package/.claude/commands/sparc/analyzer.md +51 -51
  52. package/.claude/commands/sparc/architect.md +53 -53
  53. package/.claude/commands/sparc/ask.md +97 -97
  54. package/.claude/commands/sparc/batch-executor.md +54 -54
  55. package/.claude/commands/sparc/code.md +89 -89
  56. package/.claude/commands/sparc/coder.md +54 -54
  57. package/.claude/commands/sparc/debug.md +83 -83
  58. package/.claude/commands/sparc/debugger.md +54 -54
  59. package/.claude/commands/sparc/designer.md +53 -53
  60. package/.claude/commands/sparc/devops.md +109 -109
  61. package/.claude/commands/sparc/docs-writer.md +80 -80
  62. package/.claude/commands/sparc/documenter.md +54 -54
  63. package/.claude/commands/sparc/innovator.md +54 -54
  64. package/.claude/commands/sparc/integration.md +83 -83
  65. package/.claude/commands/sparc/mcp.md +117 -117
  66. package/.claude/commands/sparc/memory-manager.md +54 -54
  67. package/.claude/commands/sparc/optimizer.md +54 -54
  68. package/.claude/commands/sparc/orchestrator.md +131 -131
  69. package/.claude/commands/sparc/post-deployment-monitoring-mode.md +83 -83
  70. package/.claude/commands/sparc/refinement-optimization-mode.md +83 -83
  71. package/.claude/commands/sparc/researcher.md +54 -54
  72. package/.claude/commands/sparc/reviewer.md +54 -54
  73. package/.claude/commands/sparc/security-review.md +80 -80
  74. package/.claude/commands/sparc/sparc-modes.md +174 -174
  75. package/.claude/commands/sparc/sparc.md +111 -111
  76. package/.claude/commands/sparc/spec-pseudocode.md +80 -80
  77. package/.claude/commands/sparc/supabase-admin.md +348 -348
  78. package/.claude/commands/sparc/swarm-coordinator.md +54 -54
  79. package/.claude/commands/sparc/tdd.md +54 -54
  80. package/.claude/commands/sparc/tester.md +54 -54
  81. package/.claude/commands/sparc/tutorial.md +79 -79
  82. package/.claude/commands/sparc/workflow-manager.md +54 -54
  83. package/.claude/commands/sparc.md +166 -166
  84. package/.claude/commands/swarm/analysis.md +95 -95
  85. package/.claude/commands/swarm/development.md +96 -96
  86. package/.claude/commands/swarm/examples.md +168 -168
  87. package/.claude/commands/swarm/maintenance.md +102 -102
  88. package/.claude/commands/swarm/optimization.md +117 -117
  89. package/.claude/commands/swarm/research.md +136 -136
  90. package/.claude/commands/swarm/testing.md +131 -131
  91. package/.claude/commands/workflows/development.md +77 -77
  92. package/.claude/commands/workflows/research.md +62 -62
  93. package/.claude/guidance/moflo-bootstrap.md +126 -126
  94. package/.claude/guidance/shipped/agent-bootstrap.md +143 -131
  95. package/.claude/guidance/shipped/guidance-memory-strategy.md +262 -262
  96. package/.claude/guidance/shipped/memory-strategy.md +204 -204
  97. package/.claude/guidance/shipped/moflo.md +675 -668
  98. package/.claude/guidance/shipped/task-swarm-integration.md +441 -441
  99. package/.claude/helpers/intelligence.cjs +207 -207
  100. package/.claude/helpers/statusline.cjs +851 -851
  101. package/.claude/skills/fl/SKILL.md +583 -583
  102. package/.claude/skills/flo/SKILL.md +583 -583
  103. package/.claude/skills/github-code-review/SKILL.md +1140 -1140
  104. package/.claude/skills/github-multi-repo/SKILL.md +874 -874
  105. package/.claude/skills/github-project-management/SKILL.md +1277 -1277
  106. package/.claude/skills/github-release-management/SKILL.md +1081 -1081
  107. package/.claude/skills/github-workflow-automation/SKILL.md +1065 -1065
  108. package/.claude/skills/hive-mind-advanced/SKILL.md +712 -712
  109. package/.claude/skills/hooks-automation/SKILL.md +1201 -1201
  110. package/.claude/skills/performance-analysis/SKILL.md +563 -563
  111. package/.claude/skills/sparc-methodology/SKILL.md +1115 -1115
  112. package/.claude/skills/swarm-advanced/SKILL.md +973 -973
  113. package/.claude/workflow-state.json +5 -5
  114. package/LICENSE +21 -21
  115. package/README.md +685 -698
  116. package/bin/cli.js +0 -0
  117. package/bin/gate-hook.mjs +50 -50
  118. package/bin/gate.cjs +138 -138
  119. package/bin/generate-code-map.mjs +937 -775
  120. package/bin/hook-handler.cjs +83 -83
  121. package/bin/hooks.mjs +696 -656
  122. package/bin/index-guidance.mjs +892 -892
  123. package/bin/index-tests.mjs +709 -709
  124. package/bin/lib/process-manager.mjs +256 -243
  125. package/bin/lib/registry-cleanup.cjs +41 -41
  126. package/bin/prompt-hook.mjs +72 -72
  127. package/bin/semantic-search.mjs +472 -472
  128. package/bin/session-start-launcher.mjs +238 -238
  129. package/bin/setup-project.mjs +250 -252
  130. package/package.json +123 -123
  131. package/src/@claude-flow/cli/README.md +452 -452
  132. package/src/@claude-flow/cli/bin/cli.js +180 -180
  133. package/src/@claude-flow/cli/bin/preinstall.cjs +2 -2
  134. package/src/@claude-flow/cli/dist/src/commands/completions.js +409 -409
  135. package/src/@claude-flow/cli/dist/src/commands/doctor.js +2 -18
  136. package/src/@claude-flow/cli/dist/src/commands/embeddings.js +25 -25
  137. package/src/@claude-flow/cli/dist/src/commands/github.js +61 -61
  138. package/src/@claude-flow/cli/dist/src/commands/hive-mind.js +90 -90
  139. package/src/@claude-flow/cli/dist/src/commands/hooks.js +9 -9
  140. package/src/@claude-flow/cli/dist/src/commands/init.js +8 -3
  141. package/src/@claude-flow/cli/dist/src/commands/ruvector/import.js +14 -14
  142. package/src/@claude-flow/cli/dist/src/commands/ruvector/setup.js +624 -624
  143. package/src/@claude-flow/cli/dist/src/config/moflo-config.d.ts +0 -3
  144. package/src/@claude-flow/cli/dist/src/config/moflo-config.js +91 -101
  145. package/src/@claude-flow/cli/dist/src/index.d.ts +0 -5
  146. package/src/@claude-flow/cli/dist/src/index.js +0 -44
  147. package/src/@claude-flow/cli/dist/src/init/claudemd-generator.d.ts +29 -29
  148. package/src/@claude-flow/cli/dist/src/init/claudemd-generator.js +43 -45
  149. package/src/@claude-flow/cli/dist/src/init/executor.js +453 -453
  150. package/src/@claude-flow/cli/dist/src/init/helpers-generator.js +482 -482
  151. package/src/@claude-flow/cli/dist/src/init/moflo-init.d.ts +30 -30
  152. package/src/@claude-flow/cli/dist/src/init/moflo-init.js +144 -200
  153. package/src/@claude-flow/cli/dist/src/init/statusline-generator.js +876 -876
  154. package/src/@claude-flow/cli/dist/src/mcp-tools/hooks-tools.js +11 -5
  155. package/src/@claude-flow/cli/dist/src/memory/memory-initializer.js +371 -371
  156. package/src/@claude-flow/cli/dist/src/runtime/headless.js +28 -28
  157. package/src/@claude-flow/cli/dist/src/services/daemon-lock.d.ts +0 -14
  158. package/src/@claude-flow/cli/dist/src/services/daemon-lock.js +1 -1
  159. package/src/@claude-flow/cli/dist/src/services/headless-worker-executor.js +84 -84
  160. package/src/@claude-flow/cli/package.json +1 -1
  161. package/src/@claude-flow/guidance/README.md +1195 -1195
  162. package/src/@claude-flow/guidance/package.json +198 -198
  163. package/src/@claude-flow/memory/README.md +587 -587
  164. package/src/@claude-flow/memory/dist/agentdb-backend.js +26 -26
  165. package/src/@claude-flow/memory/dist/auto-memory-bridge.test.js +27 -27
  166. package/src/@claude-flow/memory/dist/sqljs-backend.js +26 -26
  167. package/src/@claude-flow/memory/package.json +44 -44
  168. package/src/@claude-flow/shared/README.md +323 -323
  169. package/src/@claude-flow/shared/dist/events/event-store.js +31 -31
  170. package/src/README.md +493 -493
  171. package/.claude/agents/flow-nexus/app-store.md +0 -88
  172. package/.claude/agents/flow-nexus/authentication.md +0 -69
  173. package/.claude/agents/flow-nexus/challenges.md +0 -81
  174. package/.claude/agents/flow-nexus/neural-network.md +0 -88
  175. package/.claude/agents/flow-nexus/payments.md +0 -83
  176. package/.claude/agents/flow-nexus/sandbox.md +0 -76
  177. package/.claude/agents/flow-nexus/swarm.md +0 -76
  178. package/.claude/agents/flow-nexus/user-tools.md +0 -96
  179. package/.claude/agents/flow-nexus/workflow.md +0 -84
  180. package/.claude/agents/payments/agentic-payments.md +0 -126
  181. package/.claude/agents/sona/sona-learning-optimizer.md +0 -74
  182. package/.claude/agents/sublinear/consensus-coordinator.md +0 -338
  183. package/.claude/agents/sublinear/matrix-optimizer.md +0 -185
  184. package/.claude/agents/sublinear/pagerank-analyzer.md +0 -299
  185. package/.claude/agents/sublinear/performance-optimizer.md +0 -368
  186. package/.claude/agents/sublinear/trading-predictor.md +0 -246
  187. package/.claude/agents/v3/adr-architect.md +0 -184
  188. package/.claude/agents/v3/aidefence-guardian.md +0 -282
  189. package/.claude/agents/v3/claims-authorizer.md +0 -208
  190. package/.claude/agents/v3/collective-intelligence-coordinator.md +0 -993
  191. package/.claude/agents/v3/ddd-domain-expert.md +0 -220
  192. package/.claude/agents/v3/injection-analyst.md +0 -236
  193. package/.claude/agents/v3/memory-specialist.md +0 -995
  194. package/.claude/agents/v3/performance-engineer.md +0 -1233
  195. package/.claude/agents/v3/pii-detector.md +0 -151
  196. package/.claude/agents/v3/reasoningbank-learner.md +0 -213
  197. package/.claude/agents/v3/security-architect-aidefence.md +0 -410
  198. package/.claude/agents/v3/security-architect.md +0 -867
  199. package/.claude/agents/v3/security-auditor.md +0 -771
  200. package/.claude/agents/v3/sparc-orchestrator.md +0 -182
  201. package/.claude/agents/v3/swarm-memory-manager.md +0 -157
  202. package/.claude/agents/v3/v3-integration-architect.md +0 -205
  203. package/.claude/commands/analysis/COMMAND_COMPLIANCE_REPORT.md +0 -54
  204. package/.claude/commands/analysis/README.md +0 -9
  205. package/.claude/commands/analysis/bottleneck-detect.md +0 -162
  206. package/.claude/commands/analysis/performance-bottlenecks.md +0 -59
  207. package/.claude/commands/analysis/performance-report.md +0 -25
  208. package/.claude/commands/analysis/token-efficiency.md +0 -45
  209. package/.claude/commands/analysis/token-usage.md +0 -25
  210. package/.claude/commands/automation/README.md +0 -9
  211. package/.claude/commands/automation/auto-agent.md +0 -122
  212. package/.claude/commands/automation/self-healing.md +0 -106
  213. package/.claude/commands/automation/session-memory.md +0 -90
  214. package/.claude/commands/automation/smart-agents.md +0 -73
  215. package/.claude/commands/automation/smart-spawn.md +0 -25
  216. package/.claude/commands/automation/workflow-select.md +0 -25
  217. package/.claude/commands/monitoring/README.md +0 -9
  218. package/.claude/commands/monitoring/agent-metrics.md +0 -25
  219. package/.claude/commands/monitoring/agents.md +0 -44
  220. package/.claude/commands/monitoring/real-time-view.md +0 -25
  221. package/.claude/commands/monitoring/status.md +0 -46
  222. package/.claude/commands/monitoring/swarm-monitor.md +0 -25
  223. package/.claude/commands/optimization/README.md +0 -9
  224. package/.claude/commands/optimization/auto-topology.md +0 -62
  225. package/.claude/commands/optimization/cache-manage.md +0 -25
  226. package/.claude/commands/optimization/parallel-execute.md +0 -25
  227. package/.claude/commands/optimization/parallel-execution.md +0 -50
  228. package/.claude/commands/optimization/topology-optimize.md +0 -25
  229. package/.claude/guidance/shipped/task-icons.md +0 -42
  230. package/.claude/helpers/gate-hook.mjs +0 -50
  231. package/.claude/helpers/gate.cjs +0 -138
  232. package/.claude/helpers/hook-handler.cjs +0 -76
  233. package/.claude/helpers/prompt-hook.mjs +0 -72
  234. package/.claude/scripts/build-embeddings.mjs +0 -549
  235. package/.claude/scripts/generate-code-map.mjs +0 -776
  236. package/.claude/scripts/hooks.mjs +0 -656
  237. package/.claude/scripts/index-guidance.mjs +0 -893
  238. package/.claude/scripts/index-tests.mjs +0 -710
  239. package/.claude/scripts/semantic-search.mjs +0 -473
  240. package/.claude/scripts/session-start-launcher.mjs +0 -238
  241. package/.claude/settings.local.json +0 -18
  242. package/.claude/skills/pair-programming/SKILL.md +0 -1202
  243. package/.claude/skills/stream-chain/SKILL.md +0 -563
  244. package/.claude/skills/v3-cli-modernization/SKILL.md +0 -872
  245. package/.claude/skills/v3-core-implementation/SKILL.md +0 -797
  246. package/.claude/skills/v3-ddd-architecture/SKILL.md +0 -442
  247. package/.claude/skills/v3-integration-deep/SKILL.md +0 -241
  248. package/.claude/skills/v3-mcp-optimization/SKILL.md +0 -777
  249. package/.claude/skills/v3-memory-unification/SKILL.md +0 -174
  250. package/.claude/skills/v3-performance-optimization/SKILL.md +0 -390
  251. package/.claude/skills/v3-security-overhaul/SKILL.md +0 -82
  252. package/.claude/skills/v3-swarm-coordination/SKILL.md +0 -340
  253. package/src/@claude-flow/cli/dist/src/services/container-worker-pool.d.ts +0 -197
  254. package/src/@claude-flow/cli/dist/src/services/container-worker-pool.js +0 -584
  255. package/src/@claude-flow/memory/dist/hybrid-backend.d.ts +0 -245
  256. package/src/@claude-flow/memory/dist/hybrid-backend.js +0 -569
  257. package/src/@claude-flow/memory/dist/hybrid-backend.test.d.ts +0 -8
  258. package/src/@claude-flow/memory/dist/hybrid-backend.test.js +0 -320
  259. package/src/@claude-flow/memory/dist/sqlite-backend.d.ts +0 -121
  260. package/src/@claude-flow/memory/dist/sqlite-backend.js +0 -572
@@ -1,428 +1,428 @@
1
- ---
2
- name: swarm-pr
3
- description: Pull request swarm management agent that coordinates multi-agent code review, validation, and integration workflows with automated PR lifecycle management
4
- type: development
5
- color: "#4ECDC4"
6
- tools:
7
- - mcp__github__get_pull_request
8
- - mcp__github__create_pull_request
9
- - mcp__github__update_pull_request
10
- - mcp__github__list_pull_requests
11
- - mcp__github__create_pr_comment
12
- - mcp__github__get_pr_diff
13
- - mcp__github__merge_pull_request
14
- - mcp__moflo__swarm_init
15
- - mcp__moflo__agent_spawn
16
- - mcp__moflo__task_orchestrate
17
- - mcp__moflo__memory_usage
18
- - mcp__moflo__coordination_sync
19
- - TodoWrite
20
- - TodoRead
21
- - Bash
22
- - Grep
23
- - Read
24
- - Write
25
- - Edit
26
- hooks:
27
- pre:
28
- - "Initialize PR-specific swarm with diff analysis and impact assessment"
29
- - "Analyze PR complexity and assign optimal agent topology"
30
- - "Store PR metadata and diff context in swarm memory"
31
- post:
32
- - "Update PR with comprehensive swarm review results"
33
- - "Coordinate merge decisions based on swarm analysis"
34
- - "Generate PR completion metrics and learnings"
35
- ---
36
-
37
- # Swarm PR - Managing Swarms through Pull Requests
38
-
39
- ## Overview
40
- Create and manage AI swarms directly from GitHub Pull Requests, enabling seamless integration with your development workflow through intelligent multi-agent coordination.
41
-
42
- ## Core Features
43
-
44
- ### 1. PR-Based Swarm Creation
45
- ```bash
46
- # Create swarm from PR description using gh CLI
47
- gh pr view 123 --json body,title,labels,files | npx ruv-swarm swarm create-from-pr
48
-
49
- # Auto-spawn agents based on PR labels
50
- gh pr view 123 --json labels | npx ruv-swarm swarm auto-spawn
51
-
52
- # Create swarm with PR context
53
- gh pr view 123 --json body,labels,author,assignees | \
54
- npx ruv-swarm swarm init --from-pr-data
55
- ```
56
-
57
- ### 2. PR Comment Commands
58
- Execute swarm commands via PR comments:
59
-
60
- ```markdown
61
- <!-- In PR comment -->
62
- /swarm init mesh 6
63
- /swarm spawn coder "Implement authentication"
64
- /swarm spawn tester "Write unit tests"
65
- /swarm status
66
- ```
67
-
68
- ### 3. Automated PR Workflows
69
-
70
- ```yaml
71
- # .github/workflows/swarm-pr.yml
72
- name: Swarm PR Handler
73
- on:
74
- pull_request:
75
- types: [opened, labeled]
76
- issue_comment:
77
- types: [created]
78
-
79
- jobs:
80
- swarm-handler:
81
- runs-on: ubuntu-latest
82
- steps:
83
- - uses: actions/checkout@v3
84
- - name: Handle Swarm Command
85
- run: |
86
- if [[ "${{ github.event.comment.body }}" == /swarm* ]]; then
87
- npx ruv-swarm github handle-comment \
88
- --pr ${{ github.event.pull_request.number }} \
89
- --comment "${{ github.event.comment.body }}"
90
- fi
91
- ```
92
-
93
- ## PR Label Integration
94
-
95
- ### Automatic Agent Assignment
96
- Map PR labels to agent types:
97
-
98
- ```json
99
- {
100
- "label-mapping": {
101
- "bug": ["debugger", "tester"],
102
- "feature": ["architect", "coder", "tester"],
103
- "refactor": ["analyst", "coder"],
104
- "docs": ["researcher", "writer"],
105
- "performance": ["analyst", "optimizer"]
106
- }
107
- }
108
- ```
109
-
110
- ### Label-Based Topology
111
- ```bash
112
- # Small PR (< 100 lines): ring topology
113
- # Medium PR (100-500 lines): mesh topology
114
- # Large PR (> 500 lines): hierarchical topology
115
- npx ruv-swarm github pr-topology --pr 123
116
- ```
117
-
118
- ## PR Swarm Commands
119
-
120
- ### Initialize from PR
121
- ```bash
122
- # Create swarm with PR context using gh CLI
123
- PR_DIFF=$(gh pr diff 123)
124
- PR_INFO=$(gh pr view 123 --json title,body,labels,files,reviews)
125
-
126
- npx ruv-swarm github pr-init 123 \
127
- --auto-agents \
128
- --pr-data "$PR_INFO" \
129
- --diff "$PR_DIFF" \
130
- --analyze-impact
131
- ```
132
-
133
- ### Progress Updates
134
- ```bash
135
- # Post swarm progress to PR using gh CLI
136
- PROGRESS=$(npx ruv-swarm github pr-progress 123 --format markdown)
137
-
138
- gh pr comment 123 --body "$PROGRESS"
139
-
140
- # Update PR labels based on progress
141
- if [[ $(echo "$PROGRESS" | grep -o '[0-9]\+%' | sed 's/%//') -gt 90 ]]; then
142
- gh pr edit 123 --add-label "ready-for-review"
143
- fi
144
- ```
145
-
146
- ### Code Review Integration
147
- ```bash
148
- # Create review agents with gh CLI integration
149
- PR_FILES=$(gh pr view 123 --json files --jq '.files[].path')
150
-
151
- # Run swarm review
152
- REVIEW_RESULTS=$(npx ruv-swarm github pr-review 123 \
153
- --agents "security,performance,style" \
154
- --files "$PR_FILES")
155
-
156
- # Post review comments using gh CLI
157
- echo "$REVIEW_RESULTS" | jq -r '.comments[]' | while read -r comment; do
158
- FILE=$(echo "$comment" | jq -r '.file')
159
- LINE=$(echo "$comment" | jq -r '.line')
160
- BODY=$(echo "$comment" | jq -r '.body')
161
-
162
- gh pr review 123 --comment --body "$BODY"
163
- done
164
- ```
165
-
166
- ## Advanced Features
167
-
168
- ### 1. Multi-PR Swarm Coordination
169
- ```bash
170
- # Coordinate swarms across related PRs
171
- npx ruv-swarm github multi-pr \
172
- --prs "123,124,125" \
173
- --strategy "parallel" \
174
- --share-memory
175
- ```
176
-
177
- ### 2. PR Dependency Analysis
178
- ```bash
179
- # Analyze PR dependencies
180
- npx ruv-swarm github pr-deps 123 \
181
- --spawn-agents \
182
- --resolve-conflicts
183
- ```
184
-
185
- ### 3. Automated PR Fixes
186
- ```bash
187
- # Auto-fix PR issues
188
- npx ruv-swarm github pr-fix 123 \
189
- --issues "lint,test-failures" \
190
- --commit-fixes
191
- ```
192
-
193
- ## Best Practices
194
-
195
- ### 1. PR Templates
196
- ```markdown
197
- <!-- .github/pull_request_template.md -->
198
- ## Swarm Configuration
199
- - Topology: [mesh/hierarchical/ring/star]
200
- - Max Agents: [number]
201
- - Auto-spawn: [yes/no]
202
- - Priority: [high/medium/low]
203
-
204
- ## Tasks for Swarm
205
- - [ ] Task 1 description
206
- - [ ] Task 2 description
207
- ```
208
-
209
- ### 2. Status Checks
210
- ```yaml
211
- # Require swarm completion before merge
212
- required_status_checks:
213
- contexts:
214
- - "swarm/tasks-complete"
215
- - "swarm/tests-pass"
216
- - "swarm/review-approved"
217
- ```
218
-
219
- ### 3. PR Merge Automation
220
- ```bash
221
- # Auto-merge when swarm completes using gh CLI
222
- # Check swarm completion status
223
- SWARM_STATUS=$(npx ruv-swarm github pr-status 123)
224
-
225
- if [[ "$SWARM_STATUS" == "complete" ]]; then
226
- # Check review requirements
227
- REVIEWS=$(gh pr view 123 --json reviews --jq '.reviews | length')
228
-
229
- if [[ $REVIEWS -ge 2 ]]; then
230
- # Enable auto-merge
231
- gh pr merge 123 --auto --squash
232
- fi
233
- fi
234
- ```
235
-
236
- ## Webhook Integration
237
-
238
- ### Setup Webhook Handler
239
- ```javascript
240
- // webhook-handler.js
241
- const { createServer } = require('http');
242
- const { execSync } = require('child_process');
243
-
244
- createServer((req, res) => {
245
- if (req.url === '/github-webhook') {
246
- const event = JSON.parse(body);
247
-
248
- if (event.action === 'opened' && event.pull_request) {
249
- execSync(`npx ruv-swarm github pr-init ${event.pull_request.number}`);
250
- }
251
-
252
- res.writeHead(200);
253
- res.end('OK');
254
- }
255
- }).listen(3000);
256
- ```
257
-
258
- ## Examples
259
-
260
- ### Feature Development PR
261
- ```bash
262
- # PR #456: Add user authentication
263
- npx ruv-swarm github pr-init 456 \
264
- --topology hierarchical \
265
- --agents "architect,coder,tester,security" \
266
- --auto-assign-tasks
267
- ```
268
-
269
- ### Bug Fix PR
270
- ```bash
271
- # PR #789: Fix memory leak
272
- npx ruv-swarm github pr-init 789 \
273
- --topology mesh \
274
- --agents "debugger,analyst,tester" \
275
- --priority high
276
- ```
277
-
278
- ### Documentation PR
279
- ```bash
280
- # PR #321: Update API docs
281
- npx ruv-swarm github pr-init 321 \
282
- --topology ring \
283
- --agents "researcher,writer,reviewer" \
284
- --validate-links
285
- ```
286
-
287
- ## Metrics & Reporting
288
-
289
- ### PR Swarm Analytics
290
- ```bash
291
- # Generate PR swarm report
292
- npx ruv-swarm github pr-report 123 \
293
- --metrics "completion-time,agent-efficiency,token-usage" \
294
- --format markdown
295
- ```
296
-
297
- ### Dashboard Integration
298
- ```bash
299
- # Export to GitHub Insights
300
- npx ruv-swarm github export-metrics \
301
- --pr 123 \
302
- --to-insights
303
- ```
304
-
305
- ## Security Considerations
306
-
307
- 1. **Token Permissions**: Ensure GitHub tokens have appropriate scopes
308
- 2. **Command Validation**: Validate all PR comments before execution
309
- 3. **Rate Limiting**: Implement rate limits for PR operations
310
- 4. **Audit Trail**: Log all swarm operations for compliance
311
-
312
- ## Integration with Claude Code
313
-
314
- When using with Claude Code:
315
- 1. Claude Code reads PR diff and context
316
- 2. Swarm coordinates approach based on PR type
317
- 3. Agents work in parallel on different aspects
318
- 4. Progress updates posted to PR automatically
319
- 5. Final review performed before marking ready
320
-
321
- ## Advanced Swarm PR Coordination
322
-
323
- ### Multi-Agent PR Analysis
324
- ```bash
325
- # Initialize PR-specific swarm with intelligent topology selection
326
- mcp__moflo__swarm_init { topology: "mesh", maxAgents: 8 }
327
- mcp__moflo__agent_spawn { type: "coordinator", name: "PR Coordinator" }
328
- mcp__moflo__agent_spawn { type: "reviewer", name: "Code Reviewer" }
329
- mcp__moflo__agent_spawn { type: "tester", name: "Test Engineer" }
330
- mcp__moflo__agent_spawn { type: "analyst", name: "Impact Analyzer" }
331
- mcp__moflo__agent_spawn { type: "optimizer", name: "Performance Optimizer" }
332
-
333
- # Store PR context for swarm coordination
334
- mcp__moflo__memory_usage {
335
- action: "store",
336
- key: "pr/#{pr_number}/analysis",
337
- value: {
338
- diff: "pr_diff_content",
339
- files_changed: ["file1.js", "file2.py"],
340
- complexity_score: 8.5,
341
- risk_assessment: "medium"
342
- }
343
- }
344
-
345
- # Orchestrate comprehensive PR workflow
346
- mcp__moflo__task_orchestrate {
347
- task: "Execute multi-agent PR review and validation workflow",
348
- strategy: "parallel",
349
- priority: "high",
350
- dependencies: ["diff_analysis", "test_validation", "security_review"]
351
- }
352
- ```
353
-
354
- ### Swarm-Coordinated PR Lifecycle
355
- ```javascript
356
- // Pre-hook: PR Initialization and Swarm Setup
357
- const prPreHook = async (prData) => {
358
- // Analyze PR complexity for optimal swarm configuration
359
- const complexity = await analyzePRComplexity(prData);
360
- const topology = complexity > 7 ? "hierarchical" : "mesh";
361
-
362
- // Initialize swarm with PR-specific configuration
363
- await mcp__claude_flow__swarm_init({ topology, maxAgents: 8 });
364
-
365
- // Store comprehensive PR context
366
- await mcp__claude_flow__memory_usage({
367
- action: "store",
368
- key: `pr/${prData.number}/context`,
369
- value: {
370
- pr: prData,
371
- complexity,
372
- agents_assigned: await getOptimalAgents(prData),
373
- timeline: generateTimeline(prData)
374
- }
375
- });
376
-
377
- // Coordinate initial agent synchronization
378
- await mcp__claude_flow__coordination_sync({ swarmId: "current" });
379
- };
380
-
381
- // Post-hook: PR Completion and Metrics
382
- const prPostHook = async (results) => {
383
- // Generate comprehensive PR completion report
384
- const report = await generatePRReport(results);
385
-
386
- // Update PR with final swarm analysis
387
- await updatePRWithResults(report);
388
-
389
- // Store completion metrics for future optimization
390
- await mcp__claude_flow__memory_usage({
391
- action: "store",
392
- key: `pr/${results.number}/completion`,
393
- value: {
394
- completion_time: results.duration,
395
- agent_efficiency: results.agentMetrics,
396
- quality_score: results.qualityAssessment,
397
- lessons_learned: results.insights
398
- }
399
- });
400
- };
401
- ```
402
-
403
- ### Intelligent PR Merge Coordination
404
- ```bash
405
- # Coordinate merge decision with swarm consensus
406
- mcp__moflo__coordination_sync { swarmId: "pr-review-swarm" }
407
-
408
- # Analyze merge readiness with multiple agents
409
- mcp__moflo__task_orchestrate {
410
- task: "Evaluate PR merge readiness with comprehensive validation",
411
- strategy: "sequential",
412
- priority: "critical"
413
- }
414
-
415
- # Store merge decision context
416
- mcp__moflo__memory_usage {
417
- action: "store",
418
- key: "pr/merge_decisions/#{pr_number}",
419
- value: {
420
- ready_to_merge: true,
421
- validation_passed: true,
422
- agent_consensus: "approved",
423
- final_review_score: 9.2
424
- }
425
- }
426
- ```
427
-
1
+ ---
2
+ name: swarm-pr
3
+ description: Pull request swarm management agent that coordinates multi-agent code review, validation, and integration workflows with automated PR lifecycle management
4
+ type: development
5
+ color: "#4ECDC4"
6
+ tools:
7
+ - mcp__github__get_pull_request
8
+ - mcp__github__create_pull_request
9
+ - mcp__github__update_pull_request
10
+ - mcp__github__list_pull_requests
11
+ - mcp__github__create_pr_comment
12
+ - mcp__github__get_pr_diff
13
+ - mcp__github__merge_pull_request
14
+ - mcp__moflo__swarm_init
15
+ - mcp__moflo__agent_spawn
16
+ - mcp__moflo__task_orchestrate
17
+ - mcp__moflo__memory_usage
18
+ - mcp__moflo__coordination_sync
19
+ - TodoWrite
20
+ - TodoRead
21
+ - Bash
22
+ - Grep
23
+ - Read
24
+ - Write
25
+ - Edit
26
+ hooks:
27
+ pre:
28
+ - "Initialize PR-specific swarm with diff analysis and impact assessment"
29
+ - "Analyze PR complexity and assign optimal agent topology"
30
+ - "Store PR metadata and diff context in swarm memory"
31
+ post:
32
+ - "Update PR with comprehensive swarm review results"
33
+ - "Coordinate merge decisions based on swarm analysis"
34
+ - "Generate PR completion metrics and learnings"
35
+ ---
36
+
37
+ # Swarm PR - Managing Swarms through Pull Requests
38
+
39
+ ## Overview
40
+ Create and manage AI swarms directly from GitHub Pull Requests, enabling seamless integration with your development workflow through intelligent multi-agent coordination.
41
+
42
+ ## Core Features
43
+
44
+ ### 1. PR-Based Swarm Creation
45
+ ```bash
46
+ # Create swarm from PR description using gh CLI
47
+ gh pr view 123 --json body,title,labels,files | npx ruv-swarm swarm create-from-pr
48
+
49
+ # Auto-spawn agents based on PR labels
50
+ gh pr view 123 --json labels | npx ruv-swarm swarm auto-spawn
51
+
52
+ # Create swarm with PR context
53
+ gh pr view 123 --json body,labels,author,assignees | \
54
+ npx ruv-swarm swarm init --from-pr-data
55
+ ```
56
+
57
+ ### 2. PR Comment Commands
58
+ Execute swarm commands via PR comments:
59
+
60
+ ```markdown
61
+ <!-- In PR comment -->
62
+ /swarm init mesh 6
63
+ /swarm spawn coder "Implement authentication"
64
+ /swarm spawn tester "Write unit tests"
65
+ /swarm status
66
+ ```
67
+
68
+ ### 3. Automated PR Workflows
69
+
70
+ ```yaml
71
+ # .github/workflows/swarm-pr.yml
72
+ name: Swarm PR Handler
73
+ on:
74
+ pull_request:
75
+ types: [opened, labeled]
76
+ issue_comment:
77
+ types: [created]
78
+
79
+ jobs:
80
+ swarm-handler:
81
+ runs-on: ubuntu-latest
82
+ steps:
83
+ - uses: actions/checkout@v3
84
+ - name: Handle Swarm Command
85
+ run: |
86
+ if [[ "${{ github.event.comment.body }}" == /swarm* ]]; then
87
+ npx ruv-swarm github handle-comment \
88
+ --pr ${{ github.event.pull_request.number }} \
89
+ --comment "${{ github.event.comment.body }}"
90
+ fi
91
+ ```
92
+
93
+ ## PR Label Integration
94
+
95
+ ### Automatic Agent Assignment
96
+ Map PR labels to agent types:
97
+
98
+ ```json
99
+ {
100
+ "label-mapping": {
101
+ "bug": ["debugger", "tester"],
102
+ "feature": ["architect", "coder", "tester"],
103
+ "refactor": ["analyst", "coder"],
104
+ "docs": ["researcher", "writer"],
105
+ "performance": ["analyst", "optimizer"]
106
+ }
107
+ }
108
+ ```
109
+
110
+ ### Label-Based Topology
111
+ ```bash
112
+ # Small PR (< 100 lines): ring topology
113
+ # Medium PR (100-500 lines): mesh topology
114
+ # Large PR (> 500 lines): hierarchical topology
115
+ npx ruv-swarm github pr-topology --pr 123
116
+ ```
117
+
118
+ ## PR Swarm Commands
119
+
120
+ ### Initialize from PR
121
+ ```bash
122
+ # Create swarm with PR context using gh CLI
123
+ PR_DIFF=$(gh pr diff 123)
124
+ PR_INFO=$(gh pr view 123 --json title,body,labels,files,reviews)
125
+
126
+ npx ruv-swarm github pr-init 123 \
127
+ --auto-agents \
128
+ --pr-data "$PR_INFO" \
129
+ --diff "$PR_DIFF" \
130
+ --analyze-impact
131
+ ```
132
+
133
+ ### Progress Updates
134
+ ```bash
135
+ # Post swarm progress to PR using gh CLI
136
+ PROGRESS=$(npx ruv-swarm github pr-progress 123 --format markdown)
137
+
138
+ gh pr comment 123 --body "$PROGRESS"
139
+
140
+ # Update PR labels based on progress
141
+ if [[ $(echo "$PROGRESS" | grep -o '[0-9]\+%' | sed 's/%//') -gt 90 ]]; then
142
+ gh pr edit 123 --add-label "ready-for-review"
143
+ fi
144
+ ```
145
+
146
+ ### Code Review Integration
147
+ ```bash
148
+ # Create review agents with gh CLI integration
149
+ PR_FILES=$(gh pr view 123 --json files --jq '.files[].path')
150
+
151
+ # Run swarm review
152
+ REVIEW_RESULTS=$(npx ruv-swarm github pr-review 123 \
153
+ --agents "security,performance,style" \
154
+ --files "$PR_FILES")
155
+
156
+ # Post review comments using gh CLI
157
+ echo "$REVIEW_RESULTS" | jq -r '.comments[]' | while read -r comment; do
158
+ FILE=$(echo "$comment" | jq -r '.file')
159
+ LINE=$(echo "$comment" | jq -r '.line')
160
+ BODY=$(echo "$comment" | jq -r '.body')
161
+
162
+ gh pr review 123 --comment --body "$BODY"
163
+ done
164
+ ```
165
+
166
+ ## Advanced Features
167
+
168
+ ### 1. Multi-PR Swarm Coordination
169
+ ```bash
170
+ # Coordinate swarms across related PRs
171
+ npx ruv-swarm github multi-pr \
172
+ --prs "123,124,125" \
173
+ --strategy "parallel" \
174
+ --share-memory
175
+ ```
176
+
177
+ ### 2. PR Dependency Analysis
178
+ ```bash
179
+ # Analyze PR dependencies
180
+ npx ruv-swarm github pr-deps 123 \
181
+ --spawn-agents \
182
+ --resolve-conflicts
183
+ ```
184
+
185
+ ### 3. Automated PR Fixes
186
+ ```bash
187
+ # Auto-fix PR issues
188
+ npx ruv-swarm github pr-fix 123 \
189
+ --issues "lint,test-failures" \
190
+ --commit-fixes
191
+ ```
192
+
193
+ ## Best Practices
194
+
195
+ ### 1. PR Templates
196
+ ```markdown
197
+ <!-- .github/pull_request_template.md -->
198
+ ## Swarm Configuration
199
+ - Topology: [mesh/hierarchical/ring/star]
200
+ - Max Agents: [number]
201
+ - Auto-spawn: [yes/no]
202
+ - Priority: [high/medium/low]
203
+
204
+ ## Tasks for Swarm
205
+ - [ ] Task 1 description
206
+ - [ ] Task 2 description
207
+ ```
208
+
209
+ ### 2. Status Checks
210
+ ```yaml
211
+ # Require swarm completion before merge
212
+ required_status_checks:
213
+ contexts:
214
+ - "swarm/tasks-complete"
215
+ - "swarm/tests-pass"
216
+ - "swarm/review-approved"
217
+ ```
218
+
219
+ ### 3. PR Merge Automation
220
+ ```bash
221
+ # Auto-merge when swarm completes using gh CLI
222
+ # Check swarm completion status
223
+ SWARM_STATUS=$(npx ruv-swarm github pr-status 123)
224
+
225
+ if [[ "$SWARM_STATUS" == "complete" ]]; then
226
+ # Check review requirements
227
+ REVIEWS=$(gh pr view 123 --json reviews --jq '.reviews | length')
228
+
229
+ if [[ $REVIEWS -ge 2 ]]; then
230
+ # Enable auto-merge
231
+ gh pr merge 123 --auto --squash
232
+ fi
233
+ fi
234
+ ```
235
+
236
+ ## Webhook Integration
237
+
238
+ ### Setup Webhook Handler
239
+ ```javascript
240
+ // webhook-handler.js
241
+ const { createServer } = require('http');
242
+ const { execSync } = require('child_process');
243
+
244
+ createServer((req, res) => {
245
+ if (req.url === '/github-webhook') {
246
+ const event = JSON.parse(body);
247
+
248
+ if (event.action === 'opened' && event.pull_request) {
249
+ execSync(`npx ruv-swarm github pr-init ${event.pull_request.number}`);
250
+ }
251
+
252
+ res.writeHead(200);
253
+ res.end('OK');
254
+ }
255
+ }).listen(3000);
256
+ ```
257
+
258
+ ## Examples
259
+
260
+ ### Feature Development PR
261
+ ```bash
262
+ # PR #456: Add user authentication
263
+ npx ruv-swarm github pr-init 456 \
264
+ --topology hierarchical \
265
+ --agents "architect,coder,tester,security" \
266
+ --auto-assign-tasks
267
+ ```
268
+
269
+ ### Bug Fix PR
270
+ ```bash
271
+ # PR #789: Fix memory leak
272
+ npx ruv-swarm github pr-init 789 \
273
+ --topology mesh \
274
+ --agents "debugger,analyst,tester" \
275
+ --priority high
276
+ ```
277
+
278
+ ### Documentation PR
279
+ ```bash
280
+ # PR #321: Update API docs
281
+ npx ruv-swarm github pr-init 321 \
282
+ --topology ring \
283
+ --agents "researcher,writer,reviewer" \
284
+ --validate-links
285
+ ```
286
+
287
+ ## Metrics & Reporting
288
+
289
+ ### PR Swarm Analytics
290
+ ```bash
291
+ # Generate PR swarm report
292
+ npx ruv-swarm github pr-report 123 \
293
+ --metrics "completion-time,agent-efficiency,token-usage" \
294
+ --format markdown
295
+ ```
296
+
297
+ ### Dashboard Integration
298
+ ```bash
299
+ # Export to GitHub Insights
300
+ npx ruv-swarm github export-metrics \
301
+ --pr 123 \
302
+ --to-insights
303
+ ```
304
+
305
+ ## Security Considerations
306
+
307
+ 1. **Token Permissions**: Ensure GitHub tokens have appropriate scopes
308
+ 2. **Command Validation**: Validate all PR comments before execution
309
+ 3. **Rate Limiting**: Implement rate limits for PR operations
310
+ 4. **Audit Trail**: Log all swarm operations for compliance
311
+
312
+ ## Integration with Claude Code
313
+
314
+ When using with Claude Code:
315
+ 1. Claude Code reads PR diff and context
316
+ 2. Swarm coordinates approach based on PR type
317
+ 3. Agents work in parallel on different aspects
318
+ 4. Progress updates posted to PR automatically
319
+ 5. Final review performed before marking ready
320
+
321
+ ## Advanced Swarm PR Coordination
322
+
323
+ ### Multi-Agent PR Analysis
324
+ ```bash
325
+ # Initialize PR-specific swarm with intelligent topology selection
326
+ mcp__moflo__swarm_init { topology: "mesh", maxAgents: 8 }
327
+ mcp__moflo__agent_spawn { type: "coordinator", name: "PR Coordinator" }
328
+ mcp__moflo__agent_spawn { type: "reviewer", name: "Code Reviewer" }
329
+ mcp__moflo__agent_spawn { type: "tester", name: "Test Engineer" }
330
+ mcp__moflo__agent_spawn { type: "analyst", name: "Impact Analyzer" }
331
+ mcp__moflo__agent_spawn { type: "optimizer", name: "Performance Optimizer" }
332
+
333
+ # Store PR context for swarm coordination
334
+ mcp__moflo__memory_usage {
335
+ action: "store",
336
+ key: "pr/#{pr_number}/analysis",
337
+ value: {
338
+ diff: "pr_diff_content",
339
+ files_changed: ["file1.js", "file2.py"],
340
+ complexity_score: 8.5,
341
+ risk_assessment: "medium"
342
+ }
343
+ }
344
+
345
+ # Orchestrate comprehensive PR workflow
346
+ mcp__moflo__task_orchestrate {
347
+ task: "Execute multi-agent PR review and validation workflow",
348
+ strategy: "parallel",
349
+ priority: "high",
350
+ dependencies: ["diff_analysis", "test_validation", "security_review"]
351
+ }
352
+ ```
353
+
354
+ ### Swarm-Coordinated PR Lifecycle
355
+ ```javascript
356
+ // Pre-hook: PR Initialization and Swarm Setup
357
+ const prPreHook = async (prData) => {
358
+ // Analyze PR complexity for optimal swarm configuration
359
+ const complexity = await analyzePRComplexity(prData);
360
+ const topology = complexity > 7 ? "hierarchical" : "mesh";
361
+
362
+ // Initialize swarm with PR-specific configuration
363
+ await mcp__claude_flow__swarm_init({ topology, maxAgents: 8 });
364
+
365
+ // Store comprehensive PR context
366
+ await mcp__claude_flow__memory_usage({
367
+ action: "store",
368
+ key: `pr/${prData.number}/context`,
369
+ value: {
370
+ pr: prData,
371
+ complexity,
372
+ agents_assigned: await getOptimalAgents(prData),
373
+ timeline: generateTimeline(prData)
374
+ }
375
+ });
376
+
377
+ // Coordinate initial agent synchronization
378
+ await mcp__claude_flow__coordination_sync({ swarmId: "current" });
379
+ };
380
+
381
+ // Post-hook: PR Completion and Metrics
382
+ const prPostHook = async (results) => {
383
+ // Generate comprehensive PR completion report
384
+ const report = await generatePRReport(results);
385
+
386
+ // Update PR with final swarm analysis
387
+ await updatePRWithResults(report);
388
+
389
+ // Store completion metrics for future optimization
390
+ await mcp__claude_flow__memory_usage({
391
+ action: "store",
392
+ key: `pr/${results.number}/completion`,
393
+ value: {
394
+ completion_time: results.duration,
395
+ agent_efficiency: results.agentMetrics,
396
+ quality_score: results.qualityAssessment,
397
+ lessons_learned: results.insights
398
+ }
399
+ });
400
+ };
401
+ ```
402
+
403
+ ### Intelligent PR Merge Coordination
404
+ ```bash
405
+ # Coordinate merge decision with swarm consensus
406
+ mcp__moflo__coordination_sync { swarmId: "pr-review-swarm" }
407
+
408
+ # Analyze merge readiness with multiple agents
409
+ mcp__moflo__task_orchestrate {
410
+ task: "Evaluate PR merge readiness with comprehensive validation",
411
+ strategy: "sequential",
412
+ priority: "critical"
413
+ }
414
+
415
+ # Store merge decision context
416
+ mcp__moflo__memory_usage {
417
+ action: "store",
418
+ key: "pr/merge_decisions/#{pr_number}",
419
+ value: {
420
+ ready_to_merge: true,
421
+ validation_passed: true,
422
+ agent_consensus: "approved",
423
+ final_review_score: 9.2
424
+ }
425
+ }
426
+ ```
427
+
428
428
  See also: [swarm-issue.md](./swarm-issue.md), [sync-coordinator.md](./sync-coordinator.md), [workflow-automation.md](./workflow-automation.md)