@damian87/omp 0.1.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.
Files changed (166) hide show
  1. package/.github/agents/architect.md +25 -0
  2. package/.github/agents/code-reviewer.md +25 -0
  3. package/.github/agents/designer.md +26 -0
  4. package/.github/agents/executor.md +24 -0
  5. package/.github/agents/planner.md +26 -0
  6. package/.github/agents/researcher.md +26 -0
  7. package/.github/agents/verifier.md +26 -0
  8. package/.github/copilot-instructions.md +20 -0
  9. package/.github/plugin/marketplace.json +30 -0
  10. package/.github/skills/caveman/SKILL.md +20 -0
  11. package/.github/skills/code-review/SKILL.md +22 -0
  12. package/.github/skills/codebase-research/SKILL.md +20 -0
  13. package/.github/skills/create-skill/SKILL.md +78 -0
  14. package/.github/skills/create-skill/references/best-practices.md +449 -0
  15. package/.github/skills/create-skill/references/examples.md +69 -0
  16. package/.github/skills/create-skill/references/progressive-disclosure.md +25 -0
  17. package/.github/skills/create-skill/references/skill-structure.md +55 -0
  18. package/.github/skills/debug/SKILL.md +22 -0
  19. package/.github/skills/grill-me/SKILL.md +16 -0
  20. package/.github/skills/jira-ticket/SKILL.md +21 -0
  21. package/.github/skills/omp-autopilot/SKILL.md +20 -0
  22. package/.github/skills/prototype/SKILL.md +21 -0
  23. package/.github/skills/ralph/SKILL.md +20 -0
  24. package/.github/skills/ralplan/SKILL.md +21 -0
  25. package/.github/skills/self-evolve/SKILL.md +157 -0
  26. package/.github/skills/tdd/SKILL.md +19 -0
  27. package/.github/skills/team/SKILL.md +20 -0
  28. package/.github/skills/ultraqa/SKILL.md +20 -0
  29. package/.github/skills/ultrawork/SKILL.md +20 -0
  30. package/.github/skills/verify/SKILL.md +20 -0
  31. package/LICENSE +21 -0
  32. package/README.md +214 -0
  33. package/catalog/capabilities.json +729 -0
  34. package/catalog/skills-general.json +427 -0
  35. package/dist/src/catalog.d.ts +79 -0
  36. package/dist/src/catalog.js +113 -0
  37. package/dist/src/catalog.js.map +1 -0
  38. package/dist/src/cli.d.ts +9 -0
  39. package/dist/src/cli.js +475 -0
  40. package/dist/src/cli.js.map +1 -0
  41. package/dist/src/copilot/config.d.ts +7 -0
  42. package/dist/src/copilot/config.js +24 -0
  43. package/dist/src/copilot/config.js.map +1 -0
  44. package/dist/src/copilot/doctor.d.ts +18 -0
  45. package/dist/src/copilot/doctor.js +85 -0
  46. package/dist/src/copilot/doctor.js.map +1 -0
  47. package/dist/src/copilot/launch.d.ts +14 -0
  48. package/dist/src/copilot/launch.js +64 -0
  49. package/dist/src/copilot/launch.js.map +1 -0
  50. package/dist/src/copilot/list.d.ts +17 -0
  51. package/dist/src/copilot/list.js +82 -0
  52. package/dist/src/copilot/list.js.map +1 -0
  53. package/dist/src/copilot/paths.d.ts +21 -0
  54. package/dist/src/copilot/paths.js +36 -0
  55. package/dist/src/copilot/paths.js.map +1 -0
  56. package/dist/src/copilot/setup.d.ts +20 -0
  57. package/dist/src/copilot/setup.js +90 -0
  58. package/dist/src/copilot/setup.js.map +1 -0
  59. package/dist/src/copilot/version.d.ts +13 -0
  60. package/dist/src/copilot/version.js +34 -0
  61. package/dist/src/copilot/version.js.map +1 -0
  62. package/dist/src/jira.d.ts +149 -0
  63. package/dist/src/jira.js +492 -0
  64. package/dist/src/jira.js.map +1 -0
  65. package/dist/src/lint.d.ts +11 -0
  66. package/dist/src/lint.js +85 -0
  67. package/dist/src/lint.js.map +1 -0
  68. package/dist/src/mcp/server.d.ts +10 -0
  69. package/dist/src/mcp/server.js +44 -0
  70. package/dist/src/mcp/server.js.map +1 -0
  71. package/dist/src/mcp/tools/index.d.ts +9 -0
  72. package/dist/src/mcp/tools/index.js +15 -0
  73. package/dist/src/mcp/tools/index.js.map +1 -0
  74. package/dist/src/mcp/tools/notepad.d.ts +2 -0
  75. package/dist/src/mcp/tools/notepad.js +135 -0
  76. package/dist/src/mcp/tools/notepad.js.map +1 -0
  77. package/dist/src/mcp/tools/project-memory.d.ts +2 -0
  78. package/dist/src/mcp/tools/project-memory.js +91 -0
  79. package/dist/src/mcp/tools/project-memory.js.map +1 -0
  80. package/dist/src/mcp/tools/shared-memory.d.ts +2 -0
  81. package/dist/src/mcp/tools/shared-memory.js +148 -0
  82. package/dist/src/mcp/tools/shared-memory.js.map +1 -0
  83. package/dist/src/mcp/tools/state.d.ts +2 -0
  84. package/dist/src/mcp/tools/state.js +107 -0
  85. package/dist/src/mcp/tools/state.js.map +1 -0
  86. package/dist/src/mcp/tools/trace.d.ts +10 -0
  87. package/dist/src/mcp/tools/trace.js +102 -0
  88. package/dist/src/mcp/tools/trace.js.map +1 -0
  89. package/dist/src/mcp/types.d.ts +29 -0
  90. package/dist/src/mcp/types.js +7 -0
  91. package/dist/src/mcp/types.js.map +1 -0
  92. package/dist/src/mode-state/index.d.ts +4 -0
  93. package/dist/src/mode-state/index.js +5 -0
  94. package/dist/src/mode-state/index.js.map +1 -0
  95. package/dist/src/mode-state/paths.d.ts +5 -0
  96. package/dist/src/mode-state/paths.js +29 -0
  97. package/dist/src/mode-state/paths.js.map +1 -0
  98. package/dist/src/mode-state/ralph.d.ts +25 -0
  99. package/dist/src/mode-state/ralph.js +44 -0
  100. package/dist/src/mode-state/ralph.js.map +1 -0
  101. package/dist/src/mode-state/ultraqa.d.ts +26 -0
  102. package/dist/src/mode-state/ultraqa.js +51 -0
  103. package/dist/src/mode-state/ultraqa.js.map +1 -0
  104. package/dist/src/mode-state/ultrawork.d.ts +20 -0
  105. package/dist/src/mode-state/ultrawork.js +34 -0
  106. package/dist/src/mode-state/ultrawork.js.map +1 -0
  107. package/dist/src/project.d.ts +29 -0
  108. package/dist/src/project.js +101 -0
  109. package/dist/src/project.js.map +1 -0
  110. package/dist/src/skills.d.ts +17 -0
  111. package/dist/src/skills.js +61 -0
  112. package/dist/src/skills.js.map +1 -0
  113. package/dist/src/sync.d.ts +6 -0
  114. package/dist/src/sync.js +27 -0
  115. package/dist/src/sync.js.map +1 -0
  116. package/dist/src/team/api.d.ts +20 -0
  117. package/dist/src/team/api.js +55 -0
  118. package/dist/src/team/api.js.map +1 -0
  119. package/dist/src/team/heartbeat.d.ts +4 -0
  120. package/dist/src/team/heartbeat.js +27 -0
  121. package/dist/src/team/heartbeat.js.map +1 -0
  122. package/dist/src/team/idle-nudge.d.ts +27 -0
  123. package/dist/src/team/idle-nudge.js +60 -0
  124. package/dist/src/team/idle-nudge.js.map +1 -0
  125. package/dist/src/team/inbox.d.ts +3 -0
  126. package/dist/src/team/inbox.js +16 -0
  127. package/dist/src/team/inbox.js.map +1 -0
  128. package/dist/src/team/index.d.ts +11 -0
  129. package/dist/src/team/index.js +12 -0
  130. package/dist/src/team/index.js.map +1 -0
  131. package/dist/src/team/outbox.d.ts +14 -0
  132. package/dist/src/team/outbox.js +82 -0
  133. package/dist/src/team/outbox.js.map +1 -0
  134. package/dist/src/team/runtime.d.ts +84 -0
  135. package/dist/src/team/runtime.js +243 -0
  136. package/dist/src/team/runtime.js.map +1 -0
  137. package/dist/src/team/state-paths.d.ts +31 -0
  138. package/dist/src/team/state-paths.js +54 -0
  139. package/dist/src/team/state-paths.js.map +1 -0
  140. package/dist/src/team/task-store.d.ts +41 -0
  141. package/dist/src/team/task-store.js +153 -0
  142. package/dist/src/team/task-store.js.map +1 -0
  143. package/dist/src/team/tmux.d.ts +26 -0
  144. package/dist/src/team/tmux.js +87 -0
  145. package/dist/src/team/tmux.js.map +1 -0
  146. package/dist/src/team/types.d.ts +45 -0
  147. package/dist/src/team/types.js +2 -0
  148. package/dist/src/team/types.js.map +1 -0
  149. package/dist/src/team/worker-bootstrap.d.ts +8 -0
  150. package/dist/src/team/worker-bootstrap.js +52 -0
  151. package/dist/src/team/worker-bootstrap.js.map +1 -0
  152. package/docs/copilot-distribution.md +100 -0
  153. package/docs/general-skills.md +76 -0
  154. package/docs/jira.md +64 -0
  155. package/docs/self-evolve.md +22 -0
  156. package/hooks/hooks.json +74 -0
  157. package/package.json +58 -0
  158. package/plugin.json +14 -0
  159. package/scripts/error.mjs +31 -0
  160. package/scripts/lib/hook-output.mjs +30 -0
  161. package/scripts/lib/stdin.mjs +29 -0
  162. package/scripts/post-tool-use.mjs +31 -0
  163. package/scripts/pre-tool-use.mjs +30 -0
  164. package/scripts/prompt-submit.mjs +66 -0
  165. package/scripts/session-end.mjs +29 -0
  166. package/scripts/session-start.mjs +33 -0
@@ -0,0 +1,20 @@
1
+ ---
2
+ name: ralph
3
+ description: Single-owner execute-fix-verify loop for one clear task. Use with /ralph when one agent should keep going until evidence or blocker.
4
+ ---
5
+
6
+ # Ralph
7
+
8
+ Use `/ralph` when one owner should complete one clear task.
9
+
10
+ Do:
11
+ - Start from a plan or concrete task.
12
+ - Implement in small steps.
13
+ - Verify after each meaningful change.
14
+ - Fix failures before claiming done.
15
+ - Stop only with evidence or a blocker.
16
+
17
+ Output:
18
+ - `Done`
19
+ - `Evidence`
20
+ - `Known gaps`
@@ -0,0 +1,21 @@
1
+ ---
2
+ name: ralplan
3
+ description: Produce an implementation-ready plan with risks, acceptance criteria, and test shape. Use with /ralplan when edits need planning first.
4
+ ---
5
+
6
+ # Ralplan
7
+
8
+ Use `/ralplan` when the task needs planning before edits.
9
+
10
+ Do:
11
+ - Summarize target result and constraints.
12
+ - List implementation slices in order.
13
+ - Define acceptance criteria and tests.
14
+ - Call out risks and tradeoffs.
15
+ - Stop at a plan unless user asked to implement.
16
+
17
+ Output:
18
+ - `Plan`
19
+ - `Tests`
20
+ - `Risks`
21
+ - `Ready for` — `/team`, `/ralph`, `/ultrawork`, or direct edit.
@@ -0,0 +1,157 @@
1
+ ---
2
+ name: self-evolve
3
+ description: Capture user-correction patterns from this session and, when a pattern recurs, draft a new project skill. Use at end of session, when the user signals wrap-up, or when invoked directly.
4
+ ---
5
+
6
+ # Self-Evolve
7
+
8
+ Use `/self-evolve` to turn this session's mistakes into reusable project skills.
9
+
10
+ ## When to run
11
+
12
+ - User signals end-of-session ("done", "bye", "thanks", "/exit", "wrapping up", "ship it").
13
+ - You finish the user's last task with no pending todos and they have not requested follow-up.
14
+ - The user invokes `/self-evolve` directly.
15
+
16
+ **Skip if:** the session was fewer than 3 turns, or the session contained no user corrections.
17
+
18
+ ## What counts as a "correction"
19
+
20
+ A user message right after one of your responses that pushes back on what you did. Signal phrases (case-insensitive):
21
+
22
+ - explicit rejection: "no", "wrong", "that's wrong", "not what i asked", "undo", "revert"
23
+ - redirection: "wait", "stop", "actually", "instead", "rather"
24
+ - prohibition: "don't", "do not"
25
+
26
+ Ignore false positives ("no problem", "stop the server", "don't worry") by checking that the phrase rebukes your prior action.
27
+
28
+ ## The loop
29
+
30
+ ### 0. Once-per-session guard
31
+
32
+ Two checks. If **either** trips, stop immediately, say "self-evolve already ran this session", and do nothing else.
33
+
34
+ **Exception (both checks):** if the user explicitly retyped `/self-evolve` to force a re-run, skip both checks.
35
+
36
+ **Check A — conversation memory.** If you have already invoked `/self-evolve` in this conversation, stop.
37
+
38
+ **Check B — durable marker.** Read `.oh-my-copilot/self-evolve/.last-run-session` (single-line UUID, may not exist). Determine the current Copilot CLI session UUID via shell:
39
+
40
+ ```
41
+ ls -td ~/.copilot/session-state/*/ 2>/dev/null | head -1 | xargs -n1 basename
42
+ ```
43
+
44
+ If the marker file exists and its contents match the current session UUID, stop. (If `~/.copilot/session-state/` is empty or unreadable, skip Check B and rely on Check A alone.)
45
+
46
+ Check B survives session resume (`copilot --resume`) and conversation compaction, where Check A could miss the earlier invocation.
47
+
48
+ ### 1. Inspect this session
49
+
50
+ Walk back through the conversation and list every correction event. For each, record:
51
+
52
+ - **topic** — short kebab-case label (e.g. `trailing-newline-shell-output`, `python-string-quotes`, `unwanted-readme-edits`)
53
+ - **area** — file path or subsystem the correction touched, or `-` if none
54
+ - **summary** — one sentence: what you did wrong and what the user wanted instead
55
+
56
+ ### 2. Append to the ledger
57
+
58
+ The ledger lives at `.oh-my-copilot/self-evolve/log.md`. Create the directory and file if missing. Append one entry per correction in this exact shape:
59
+
60
+ ```
61
+ - YYYY-MM-DD | <topic> | <area> | <summary>
62
+ ```
63
+
64
+ Keep entries chronological. Never rewrite past entries.
65
+
66
+ ### 3. Count repeats
67
+
68
+ For each new topic from this session, grep the ledger for the same topic label. The count includes today's entries.
69
+
70
+ **Threshold: 3 occurrences.** Fewer → stop here.
71
+
72
+ ### 4. Check existing coverage
73
+
74
+ Before drafting, list:
75
+
76
+ - `.github/skills/*/SKILL.md` (project skills, including any previously promoted `learned-*`)
77
+ - `.oh-my-copilot/self-evolve/drafts/*/SKILL.md` (in-flight drafts not yet promoted)
78
+ - `~/.copilot/skills/*/SKILL.md` (user skills, if present)
79
+
80
+ **Match bar (high, not vague).** A skill counts as covering this topic only if:
81
+
82
+ - its frontmatter `description` explicitly names the exact behavior the user kept correcting, **OR**
83
+ - it contains a `Do` or `Don't` bullet that, applied literally, would have prevented every correction in the cluster.
84
+
85
+ Generic adjacency does **not** count. A "code quality" skill does not cover "respect Python quote style"; a "respect-quotes" skill does. When in doubt, treat as not covered.
86
+
87
+ **If clearly covered**, do not draft. Append one note to the ledger and stop:
88
+
89
+ ```
90
+ # covered-by: <existing-skill-name> | <topic>
91
+ ```
92
+
93
+ **If covered ambiguously** (some bullets are adjacent but none are a direct match), still draft — but add a line to the new draft's `Source` section noting the overlap, so a human reviewer can decide on merge or supersede:
94
+
95
+ ```
96
+ possible-duplicate-of: <existing-skill-name>
97
+ ```
98
+
99
+ Bias: when unsure, draft. Drafts live in `.oh-my-copilot/self-evolve/drafts/` and are inert until a human promotes them, so a stray draft costs nothing while a missed pattern wastes signal.
100
+
101
+ ### 5. Draft the new skill
102
+
103
+ **Path:** `.oh-my-copilot/self-evolve/drafts/<slug>/SKILL.md`
104
+
105
+ **This is outside `.github/skills/` on purpose.** Drafts must NOT live in the plugin's active skill root: anything under `.github/skills/` is loaded as an active skill on the next Copilot session, so a draft there would silently auto-arm before a human reviewed it. The `.oh-my-copilot/self-evolve/drafts/` location is never read by Copilot CLI; a human promotes a draft by moving its directory to `.github/skills/learned-<slug>/` (see `docs/self-evolve.md`).
106
+
107
+ - Slug rule: kebab-case of the topic, max 40 chars.
108
+ - The draft's frontmatter `name` should be `learned-<slug>` (matches the target dir name a human will promote it into).
109
+
110
+ Write the file with this exact frontmatter and body:
111
+
112
+ ```
113
+ ---
114
+ name: learned-<slug>
115
+ description: <one sentence — when this skill should fire>
116
+ status: draft
117
+ ---
118
+
119
+ # Learned: <human title>
120
+
121
+ Invoke `/learned-<slug>` when the trigger below applies.
122
+
123
+ ## Trigger
124
+ <one-line condition derived from the recurring corrections>
125
+
126
+ ## Do
127
+ <concrete instruction(s) that would have prevented the corrections>
128
+
129
+ ## Don't
130
+ <the wrong behaviour you kept doing>
131
+
132
+ ## Source
133
+ Drafted by /self-evolve from 3+ corrections in .oh-my-copilot/self-evolve/log.md.
134
+ Promote to active by moving this directory to .github/skills/learned-<slug>/.
135
+ ```
136
+
137
+ ### 6. Report to the user
138
+
139
+ State:
140
+
141
+ - how many corrections this session contributed to the ledger,
142
+ - whether any topic crossed the threshold,
143
+ - the path of any draft skill written,
144
+ - the path of the ledger.
145
+
146
+ ### 7. Persist the session marker
147
+
148
+ Before exiting, write the current Copilot CLI session UUID to `.oh-my-copilot/self-evolve/.last-run-session` (overwrite, no newline needed). Use the same shell line as Step 0 to determine it. Subsequent invocations within the same session will short-circuit via Check B in Step 0.
149
+
150
+ If `~/.copilot/session-state/` was empty or unreadable in Step 0, write the literal string `unknown-session` so the marker exists but cannot accidentally match a real UUID later.
151
+
152
+ ## Output discipline
153
+
154
+ - One ledger line per correction. Never batch into a paragraph.
155
+ - One draft skill per recurring topic. Never combine unrelated topics.
156
+ - Drafts always carry `status: draft`. A human promotes them by moving the draft directory from `.oh-my-copilot/self-evolve/drafts/<slug>/` into `.github/skills/learned-<slug>/` (and optionally deleting the `status: draft` line). Until that move, the draft is inert — Copilot CLI does not load it.
157
+ - If unsure whether something is a correction, skip it. False negatives are cheap; false positives pollute the loop.
@@ -0,0 +1,19 @@
1
+ ---
2
+ name: tdd
3
+ description: Red-green-refactor loop for behavior changes where tests are practical. Use with /tdd when a change can be specified by tests.
4
+ ---
5
+
6
+ # TDD
7
+
8
+ Use `/tdd` when a change can be specified by tests.
9
+
10
+ Loop:
11
+ 1. Write or identify a failing behavior test.
12
+ 2. Make it pass with minimal code.
13
+ 3. Refactor safely.
14
+ 4. Run related checks.
15
+
16
+ Rules:
17
+ - Test behavior through public surfaces.
18
+ - Avoid brittle implementation tests.
19
+ - If TDD is impractical, explain why and use `/verify`.
@@ -0,0 +1,20 @@
1
+ ---
2
+ name: team
3
+ description: Split an approved plan into parallel lanes for agents or humans. Use with /team when work has independent lanes.
4
+ ---
5
+
6
+ # Team
7
+
8
+ Use `/team` when work has independent lanes.
9
+
10
+ Do:
11
+ - Require a plan or clear task.
12
+ - Split into lanes with owners, files, and tests.
13
+ - Identify dependencies and conflict risks.
14
+ - Keep it as a coordination brief, not a runtime.
15
+
16
+ Output:
17
+ - `Lanes`
18
+ - `Shared files`
19
+ - `Order/dependencies`
20
+ - `Verification`
@@ -0,0 +1,20 @@
1
+ ---
2
+ name: ultraqa
3
+ description: Adversarial QA pass that tests behavior, failures, and regressions. Use with /ultraqa after implementation when shallow checks are not enough.
4
+ ---
5
+
6
+ # UltraQA
7
+
8
+ Use `/ultraqa` after implementation when shallow checks are not enough.
9
+
10
+ Do:
11
+ - Test happy paths, hostile cases, and fallbacks.
12
+ - Prefer runnable checks over inspection.
13
+ - Record exact failures.
14
+ - Route fixes back to `/ralph` or `/ultrawork`.
15
+
16
+ Output:
17
+ - `Scenarios`
18
+ - `Results`
19
+ - `Regressions`
20
+ - `Fix recommendations`
@@ -0,0 +1,20 @@
1
+ ---
2
+ name: ultrawork
3
+ description: High-throughput execution for many independent small tasks. Use with /ultrawork when work can be batched safely.
4
+ ---
5
+
6
+ # Ultrawork
7
+
8
+ Use `/ultrawork` when there are many independent, low-conflict work items.
9
+
10
+ Do:
11
+ - Batch independent tasks.
12
+ - Avoid shared-file collisions.
13
+ - Verify each batch.
14
+ - Escalate ambiguous or risky branches to `/ralplan`.
15
+
16
+ Output:
17
+ - `Batch`
18
+ - `Completed`
19
+ - `Failed/blockers`
20
+ - `Verification`
@@ -0,0 +1,20 @@
1
+ ---
2
+ name: verify
3
+ description: Prove completion claims with fresh evidence. Use with /verify before saying done.
4
+ ---
5
+
6
+ # Verify
7
+
8
+ Use `/verify` before saying done.
9
+
10
+ Do:
11
+ - State the claim.
12
+ - Run or inspect the smallest checks that prove it.
13
+ - Read outputs.
14
+ - Report gaps honestly.
15
+
16
+ Output:
17
+ - `PASS/FAIL`
18
+ - `Evidence`
19
+ - `Known gaps`
20
+ - `Stop condition`
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 Damian Borek
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md ADDED
@@ -0,0 +1,214 @@
1
+ # oh-my-copilot
2
+
3
+ [![License: MIT](https://img.shields.io/badge/License-MIT-green.svg)](https://opensource.org/licenses/MIT)
4
+
5
+ **Multi-agent orchestration for GitHub Copilot CLI. Zero learning curve.**
6
+
7
+ _Don't relearn Copilot. Just use omp._
8
+
9
+ [Quick Start](#quick-start) • [Features](#features) • [In-session shortcuts](#in-session-shortcuts) • [Roadmap](#roadmap) • [Documentation](#documentation)
10
+
11
+ ---
12
+
13
+ ## Quick Start
14
+
15
+ **Step 1: Install**
16
+
17
+ Two commands install all 17 omp skills as a Copilot CLI plugin:
18
+
19
+ ```bash
20
+ copilot plugin marketplace add damian87x/oh-my-copilot
21
+ copilot plugin install oh-my-copilot@oh-my-copilot
22
+ ```
23
+
24
+ Requires Copilot CLI v1.0.48+. After install, `/omp-autopilot`, `/ralplan`, `/code-review`, `/create-skill`, `/self-evolve`, and the rest are available inside any Copilot session.
25
+
26
+ If you prefer the npm path for the local runtime:
27
+
28
+ ```bash
29
+ npm i -g @damian87/omp
30
+ ```
31
+
32
+ **Step 2: Build something**
33
+
34
+ ```bash
35
+ # Bare-flag launch with permissions bypass (alias of copilot --yolo)
36
+ omp --madmax -p "build a REST API for managing tasks"
37
+
38
+ # Or via in-session skill
39
+ /omp-autopilot "build a REST API for managing tasks"
40
+ ```
41
+
42
+ That's it.
43
+
44
+ ---
45
+
46
+ ## Why oh-my-copilot?
47
+
48
+ - **Zero configuration** — works out of the box with sane defaults
49
+ - **Team-first orchestration** — staged pipelines on a shared task list
50
+ - **Bare-flag bypass** — `omp --madmax` injects `--yolo` so non-interactive runs never block on a permission prompt
51
+ - **Persistent execution** — Ralph, UltraQA, and Ultrawork keep going until the goal is verified
52
+ - **MCP-powered shared state** — workers swap typed messages over an outbox/inbox cursor instead of summarising each other's summaries
53
+ - **Lifecycle hooks** — `SessionStart`, `UserPromptSubmit`, `PreToolUse`, `PostToolUse`, `SessionEnd`, `Error`
54
+ - **Doctor included** — `omp doctor` verifies plugin manifest, skills discovery, hooks, and the underlying `copilot` CLI in one shot
55
+
56
+ ---
57
+
58
+ ## Features
59
+
60
+ ### Orchestration Modes
61
+
62
+ | Mode | What it is | Best for |
63
+ | -------------------- | ---------------------------------------------------------------- | ---------------------------------------------- |
64
+ | **Team** | tmux CLI workers on a shared task list with file-state outbox | Coordinated parallel work on one objective |
65
+ | **Autopilot** | Single-lead autonomous loop (`/omp-autopilot`) | End-to-end feature work with minimal ceremony |
66
+ | **Ralph** | Persistent verify/fix loop with explicit reviewer | Tasks that must complete fully (no partials) |
67
+ | **Ultrawork** | Maximum parallelism for fan-out tasks | Burst parallel fixes / refactors |
68
+ | **UltraQA** | QA cycling until tests/build/lint/typecheck all pass | Quality gates needing repeat diagnose/fix |
69
+ | **Ralplan** | Consensus planning step before any loop | Vague requests that need decomposition first |
70
+ | **Madmax (CLI)** | `omp --madmax …` — bypass permissions for non-interactive runs | Scripted / automated copilot invocations |
71
+
72
+ ### Intelligent Orchestration
73
+
74
+ - **7 specialized agents** — planner, architect, executor, verifier, code-reviewer, designer, researcher (all `--agent <name>` compatible with Copilot CLI)
75
+ - **17 in-session skills** auto-discovered from `.github/skills/`
76
+ - **Smart pipeline routing** — `/codebase-research` → `/ralplan` → `/team` / `/ralph` / `/ultrawork` → `/code-review` → `/ultraqa`
77
+
78
+ ### Developer Experience
79
+
80
+ - **MCP server** ships with `notepad`, `project-memory`, `shared-memory`, `state`, and `trace` tools out of the box
81
+ - **File-state coordination** — outbox JSONL + byte cursor, atomic `O_EXCL` task locks, optimistic CAS on claim
82
+ - **Idle nudge** — content-based pane idle detection that pokes stuck workers
83
+ - **Mode-state loops** — single source of truth per loop (Ralph/Ultrawork/UltraQA state files)
84
+
85
+ ---
86
+
87
+ ## In-session shortcuts
88
+
89
+ These run **inside a Copilot CLI session** after the plugin is installed.
90
+
91
+ | In-session form | Effect | Example |
92
+ | ----------------------- | --------------------------------------------------------- | ---------------------------------------------------- |
93
+ | `/omp-autopilot` | Full autonomous execution | `/omp-autopilot "build a todo app"` |
94
+ | `/ralph` | Persistence mode | `/ralph "refactor auth"` |
95
+ | `/ultrawork` | Maximum parallelism | `/ultrawork "fix all type errors"` |
96
+ | `/ultraqa` | QA cycling until goal met | `/ultraqa "build green, tests pass"` |
97
+ | `/ralplan` | Consensus planning | `/ralplan "plan this feature"` |
98
+ | `/team` | Coordinated multi-agent task list | `/team 3:executor "ship the migration"` |
99
+ | `/code-review` | Diff-focused reviewer | `/code-review` |
100
+ | `/codebase-research` | Map an area of the codebase | `/codebase-research "auth middleware"` |
101
+ | `/debug` | Disciplined diagnose-reproduce-fix loop | `/debug "flaky integration test"` |
102
+ | `/tdd` | Red-green-refactor cycle | `/tdd "add pagination to /users"` |
103
+ | `/verify` | Exercise a change end-to-end | `/verify` |
104
+ | `/create-skill` | Author a new skill | `/create-skill` |
105
+ | `/self-evolve` | Extract a learned skill from this session | `/self-evolve` |
106
+ | `/jira-ticket` | Render or apply a Jira ticket payload | `/jira-ticket` |
107
+ | `/prototype` | Throwaway prototype to flesh out a design | `/prototype "state shape"` |
108
+ | `/grill-me` | Stress-test a plan with Socratic questions | `/grill-me` |
109
+ | `/caveman` | Ultra-compressed communication mode | `/caveman` |
110
+
111
+ ---
112
+
113
+ ## Terminal CLI
114
+
115
+ ```bash
116
+ omp --help
117
+ omp version
118
+ omp doctor # verify install + copilot binary
119
+ omp list # show discovered skills and agents
120
+ omp setup [--dry-run] [--scope project|user]
121
+ omp launch -- [copilot flags…] # forward arbitrary args to copilot
122
+ omp --madmax -p "edit src/foo.ts" # bare-flag, maps to copilot --yolo
123
+ omp team 3:executor "fix all type errors" # spawn tmux workers
124
+ omp team status <name>
125
+ omp team shutdown <name>
126
+ omp ralph start "<task>" [--max-iterations N]
127
+ omp ultrawork start "<objective>" [--task-count N]
128
+ omp ultraqa start "<goal>" [--max-cycles N]
129
+ omp mcp # MCP server over stdio
130
+ omp catalog list | validate | capability <id>
131
+ omp jira render <plan-file>
132
+ omp jira apply <key-or-plan> --comment|--update|--transition|--link
133
+ ```
134
+
135
+ Environment overrides:
136
+
137
+ - `OMP_PLUGIN_ROOT` — path to the plugin checkout (with `OMC_PLUGIN_ROOT` accepted for back-compat)
138
+ - `OMP_COPILOT_BIN` — alternate `copilot` binary
139
+
140
+ ---
141
+
142
+ ## Roadmap
143
+
144
+ omp is intentionally small today and growing in vertical slices.
145
+
146
+ ### v0.2 — Notification gateways
147
+
148
+ Telegram, Discord, Slack, and generic webhook integration so long-running modes can ping you when they finish, fail, or stall. Tag with `--telegram` / `--discord` / `--slack` per invocation; configure once with `omp notify add`.
149
+
150
+ ### v0.3 — Checkpoints + rollback
151
+
152
+ Auto-snapshot the working tree before any tool-driven file edit. `omp rollback [id]` to revert a checkpoint. A safety net for autonomous loops that go wide before they go right.
153
+
154
+ ### v0.4 — Provider advisor (`omp ask`)
155
+
156
+ One command to consult an alternate provider CLI (`claude`, `codex`, `gemini`) and save the response as a markdown artifact under `.omp/artifacts/ask/`. Same surface in-session via `/ask`.
157
+
158
+ ### v0.5 — Scheduled tasks
159
+
160
+ Natural-language cron: `omp schedule "every weekday 9am run /code-review on main"`. Jobs can attach skills, deliver results to a notification gateway, and support pause/resume/edit. Built on the same mode-state primitives Ralph and UltraQA use.
161
+
162
+ ### v0.6 — Browser tool (MCP)
163
+
164
+ A first-class browser MCP tool: web search, page extraction, full automation (navigate, click, type, screenshot). For research skills that need fresh data instead of training-cutoff guesses.
165
+
166
+ ### v0.7 — HUD-lite statusline
167
+
168
+ Live orchestration metrics in the terminal: active mode, current task, worker count, tokens, cache hit rate, last error.
169
+
170
+ ### v0.8 — Provider routing
171
+
172
+ Fine-grained per-task provider selection — sorting, whitelists, priority ordering, cost-aware fallback. For mixed pipelines that want Opus for planning and Haiku for grunt work without manual model switching.
173
+
174
+ ### v0.9 — Skill learning
175
+
176
+ Extract repeating patterns from session transcripts into reusable skill files with strict quality gates. Auto-injects into context when relevant triggers fire.
177
+
178
+ ### v1.0 — Pre-built agent templates
179
+
180
+ One-shot deployable templates for common workflows: research, security audit, design-system migration, content automation. `omp template add <name>` drops a curated skill + agent pair into your project.
181
+
182
+ ---
183
+
184
+ ## Documentation
185
+
186
+ - [General skills](docs/general-skills.md) — slash-skill layout, capability IDs, portability rules
187
+ - [Copilot distribution](docs/copilot-distribution.md) — project/user skill installs and the case against GitHub App Extensions
188
+ - [Jira adapter](docs/jira.md) — configuration discovery, safe operations, dry-runs, fallback payloads
189
+ - [Self-evolve](docs/self-evolve.md) — extracting reusable skills from session transcripts
190
+
191
+ ## Layout
192
+
193
+ ```text
194
+ .github/agents/<name>.md # custom agents discoverable via --agent
195
+ .github/skills/<name>/SKILL.md # in-session slash skills
196
+ hooks/hooks.json # lifecycle hook manifest
197
+ scripts/*.mjs # hook implementations
198
+ src/ # omp CLI, MCP server, team runtime, mode-state loops
199
+ ```
200
+
201
+ Skills follow the [Copilot agent-skills docs](https://docs.github.com/en/copilot) — project skills live in `.github/skills/` and are invoked with `/skill-name`.
202
+
203
+ ---
204
+
205
+ ## Local development
206
+
207
+ ```bash
208
+ npm install
209
+ npm run build
210
+ npm test # 137 tests
211
+ npm run lint:skills
212
+ npm run sync:dry-run
213
+ npx tsx src/cli.ts skill install .github/skills/create-skill --dry-run
214
+ ```