oh-my-copilot 4.13.2 → 4.13.21

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 (311) hide show
  1. package/.claude-plugin/marketplace.json +2 -2
  2. package/.claude-plugin/plugin.json +1 -1
  3. package/README.md +1 -1
  4. package/bridge/cli.cjs +2522 -949
  5. package/bridge/mcp-server.cjs +97 -9
  6. package/bridge/runtime-cli.cjs +1256 -133
  7. package/bridge/team.js +1241 -65
  8. package/dist/__tests__/auto-slash-aliases.test.js +91 -0
  9. package/dist/__tests__/auto-slash-aliases.test.js.map +1 -1
  10. package/dist/__tests__/hud/labels.test.d.ts +2 -0
  11. package/dist/__tests__/hud/labels.test.d.ts.map +1 -0
  12. package/dist/__tests__/hud/labels.test.js +158 -0
  13. package/dist/__tests__/hud/labels.test.js.map +1 -0
  14. package/dist/__tests__/hud/render-rate-limits-priority.test.js +26 -0
  15. package/dist/__tests__/hud/render-rate-limits-priority.test.js.map +1 -1
  16. package/dist/__tests__/hud-marketplace-resolution.test.js +34 -0
  17. package/dist/__tests__/hud-marketplace-resolution.test.js.map +1 -1
  18. package/dist/__tests__/installer-hud-skip.test.js +6 -0
  19. package/dist/__tests__/installer-hud-skip.test.js.map +1 -1
  20. package/dist/__tests__/installer-omc-reference.test.js +1 -1
  21. package/dist/__tests__/installer-omc-reference.test.js.map +1 -1
  22. package/dist/__tests__/mnemosyne/detector.test.js +2 -0
  23. package/dist/__tests__/mnemosyne/detector.test.js.map +1 -1
  24. package/dist/__tests__/notepad.test.js +2 -2
  25. package/dist/__tests__/notepad.test.js.map +1 -1
  26. package/dist/__tests__/pre-tool-enforcer.test.js +84 -1
  27. package/dist/__tests__/pre-tool-enforcer.test.js.map +1 -1
  28. package/dist/__tests__/ralph-prd-mandatory.test.js +11 -1
  29. package/dist/__tests__/ralph-prd-mandatory.test.js.map +1 -1
  30. package/dist/__tests__/ralph-prd.test.js +40 -2
  31. package/dist/__tests__/ralph-prd.test.js.map +1 -1
  32. package/dist/__tests__/skills.test.js +363 -4
  33. package/dist/__tests__/skills.test.js.map +1 -1
  34. package/dist/__tests__/state-root-resolution.test.js +56 -6
  35. package/dist/__tests__/state-root-resolution.test.js.map +1 -1
  36. package/dist/autoresearch/__tests__/runtime.test.js +225 -28
  37. package/dist/autoresearch/__tests__/runtime.test.js.map +1 -1
  38. package/dist/autoresearch/runtime.d.ts.map +1 -1
  39. package/dist/autoresearch/runtime.js +9 -5
  40. package/dist/autoresearch/runtime.js.map +1 -1
  41. package/dist/cli/autoresearch.d.ts +1 -1
  42. package/dist/cli/autoresearch.d.ts.map +1 -1
  43. package/dist/cli/autoresearch.js +4 -4
  44. package/dist/cli/commands/team.d.ts +1 -0
  45. package/dist/cli/commands/team.d.ts.map +1 -1
  46. package/dist/cli/commands/team.js +14 -2
  47. package/dist/cli/commands/team.js.map +1 -1
  48. package/dist/cli/index.js +3 -0
  49. package/dist/cli/index.js.map +1 -1
  50. package/dist/cli/team.d.ts +6 -0
  51. package/dist/cli/team.d.ts.map +1 -1
  52. package/dist/cli/team.js +23 -1
  53. package/dist/cli/team.js.map +1 -1
  54. package/dist/config/__tests__/loader.test.js.map +1 -1
  55. package/dist/features/boulder-state/constants.d.ts +1 -1
  56. package/dist/features/boulder-state/constants.d.ts.map +1 -1
  57. package/dist/features/builtin-skills/skills.d.ts.map +1 -1
  58. package/dist/features/builtin-skills/skills.js +11 -3
  59. package/dist/features/builtin-skills/skills.js.map +1 -1
  60. package/dist/features/builtin-skills/types.d.ts +7 -0
  61. package/dist/features/builtin-skills/types.d.ts.map +1 -1
  62. package/dist/features/magic-keywords.d.ts.map +1 -1
  63. package/dist/features/magic-keywords.js +30 -1
  64. package/dist/features/magic-keywords.js.map +1 -1
  65. package/dist/features/rate-limit-wait/tmux-detector.d.ts +4 -4
  66. package/dist/features/rate-limit-wait/tmux-detector.js +9 -9
  67. package/dist/features/rate-limit-wait/tmux-detector.js.map +1 -1
  68. package/dist/hooks/__tests__/bridge-routing.test.js +156 -0
  69. package/dist/hooks/__tests__/bridge-routing.test.js.map +1 -1
  70. package/dist/hooks/auto-slash-command/constants.d.ts.map +1 -1
  71. package/dist/hooks/auto-slash-command/constants.js +1 -0
  72. package/dist/hooks/auto-slash-command/constants.js.map +1 -1
  73. package/dist/hooks/auto-slash-command/executor.d.ts.map +1 -1
  74. package/dist/hooks/auto-slash-command/executor.js +29 -0
  75. package/dist/hooks/auto-slash-command/executor.js.map +1 -1
  76. package/dist/hooks/bridge.d.ts.map +1 -1
  77. package/dist/hooks/bridge.js +184 -1
  78. package/dist/hooks/bridge.js.map +1 -1
  79. package/dist/hooks/learner/detector.js +1 -1
  80. package/dist/hooks/mode-registry/__tests__/session-isolation.test.js +16 -0
  81. package/dist/hooks/mode-registry/__tests__/session-isolation.test.js.map +1 -1
  82. package/dist/hooks/notepad/index.d.ts +4 -1
  83. package/dist/hooks/notepad/index.d.ts.map +1 -1
  84. package/dist/hooks/notepad/index.js +7 -4
  85. package/dist/hooks/notepad/index.js.map +1 -1
  86. package/dist/hooks/persistent-mode/__tests__/ralph-verification-flow.test.js +70 -3
  87. package/dist/hooks/persistent-mode/__tests__/ralph-verification-flow.test.js.map +1 -1
  88. package/dist/hooks/persistent-mode/index.d.ts.map +1 -1
  89. package/dist/hooks/persistent-mode/index.js +10 -9
  90. package/dist/hooks/persistent-mode/index.js.map +1 -1
  91. package/dist/hooks/persistent-mode/stop-hook-blocking.test.js +64 -9
  92. package/dist/hooks/persistent-mode/stop-hook-blocking.test.js.map +1 -1
  93. package/dist/hooks/project-memory/__tests__/integration.test.js +117 -3
  94. package/dist/hooks/project-memory/__tests__/integration.test.js.map +1 -1
  95. package/dist/hooks/project-memory/__tests__/storage.test.js +11 -11
  96. package/dist/hooks/project-memory/__tests__/storage.test.js.map +1 -1
  97. package/dist/hooks/project-memory/index.d.ts.map +1 -1
  98. package/dist/hooks/project-memory/index.js +24 -12
  99. package/dist/hooks/project-memory/index.js.map +1 -1
  100. package/dist/hooks/ralph/index.d.ts +1 -1
  101. package/dist/hooks/ralph/index.d.ts.map +1 -1
  102. package/dist/hooks/ralph/index.js +1 -1
  103. package/dist/hooks/ralph/index.js.map +1 -1
  104. package/dist/hooks/ralph/loop.d.ts +6 -6
  105. package/dist/hooks/ralph/loop.d.ts.map +1 -1
  106. package/dist/hooks/ralph/loop.js +18 -18
  107. package/dist/hooks/ralph/loop.js.map +1 -1
  108. package/dist/hooks/ralph/prd.d.ts +23 -12
  109. package/dist/hooks/ralph/prd.d.ts.map +1 -1
  110. package/dist/hooks/ralph/prd.js +88 -42
  111. package/dist/hooks/ralph/prd.js.map +1 -1
  112. package/dist/hooks/session-end/__tests__/mode-state-cleanup.test.js +20 -0
  113. package/dist/hooks/session-end/__tests__/mode-state-cleanup.test.js.map +1 -1
  114. package/dist/hooks/session-end/index.d.ts +9 -0
  115. package/dist/hooks/session-end/index.d.ts.map +1 -1
  116. package/dist/hooks/session-end/index.js +67 -0
  117. package/dist/hooks/session-end/index.js.map +1 -1
  118. package/dist/hooks/skill-bridge.cjs +6 -5
  119. package/dist/hooks/skill-state/index.d.ts.map +1 -1
  120. package/dist/hooks/skill-state/index.js +1 -0
  121. package/dist/hooks/skill-state/index.js.map +1 -1
  122. package/dist/hud/__tests__/git-status.test.js +18 -0
  123. package/dist/hud/__tests__/git-status.test.js.map +1 -1
  124. package/dist/hud/elements/background.d.ts +3 -3
  125. package/dist/hud/elements/background.d.ts.map +1 -1
  126. package/dist/hud/elements/background.js +5 -4
  127. package/dist/hud/elements/background.js.map +1 -1
  128. package/dist/hud/elements/call-counts.d.ts +2 -2
  129. package/dist/hud/elements/call-counts.d.ts.map +1 -1
  130. package/dist/hud/elements/call-counts.js +7 -6
  131. package/dist/hud/elements/call-counts.js.map +1 -1
  132. package/dist/hud/elements/context.d.ts +3 -3
  133. package/dist/hud/elements/context.d.ts.map +1 -1
  134. package/dist/hud/elements/context.js +5 -4
  135. package/dist/hud/elements/context.js.map +1 -1
  136. package/dist/hud/elements/git.d.ts +2 -1
  137. package/dist/hud/elements/git.d.ts.map +1 -1
  138. package/dist/hud/elements/git.js +7 -6
  139. package/dist/hud/elements/git.js.map +1 -1
  140. package/dist/hud/elements/ralph.d.ts +2 -2
  141. package/dist/hud/elements/ralph.d.ts.map +1 -1
  142. package/dist/hud/elements/ralph.js +3 -2
  143. package/dist/hud/elements/ralph.js.map +1 -1
  144. package/dist/hud/elements/thinking.d.ts +2 -2
  145. package/dist/hud/elements/thinking.d.ts.map +1 -1
  146. package/dist/hud/elements/thinking.js +3 -2
  147. package/dist/hud/elements/thinking.js.map +1 -1
  148. package/dist/hud/elements/token-usage.d.ts +2 -2
  149. package/dist/hud/elements/token-usage.d.ts.map +1 -1
  150. package/dist/hud/elements/token-usage.js +3 -2
  151. package/dist/hud/elements/token-usage.js.map +1 -1
  152. package/dist/hud/render.d.ts.map +1 -1
  153. package/dist/hud/render.js +11 -10
  154. package/dist/hud/render.js.map +1 -1
  155. package/dist/hud/state.d.ts.map +1 -1
  156. package/dist/hud/state.js +18 -1
  157. package/dist/hud/state.js.map +1 -1
  158. package/dist/hud/types.d.ts +26 -0
  159. package/dist/hud/types.d.ts.map +1 -1
  160. package/dist/hud/types.js +58 -0
  161. package/dist/hud/types.js.map +1 -1
  162. package/dist/installer/__tests__/hud-cache-wrapper.test.d.ts +2 -0
  163. package/dist/installer/__tests__/hud-cache-wrapper.test.d.ts.map +1 -0
  164. package/dist/installer/__tests__/hud-cache-wrapper.test.js +235 -0
  165. package/dist/installer/__tests__/hud-cache-wrapper.test.js.map +1 -0
  166. package/dist/installer/__tests__/standalone-hook-reconcile.test.js +2 -0
  167. package/dist/installer/__tests__/standalone-hook-reconcile.test.js.map +1 -1
  168. package/dist/installer/index.d.ts.map +1 -1
  169. package/dist/installer/index.js +19 -7
  170. package/dist/installer/index.js.map +1 -1
  171. package/dist/lib/__tests__/worktree-paths.test.js +162 -39
  172. package/dist/lib/__tests__/worktree-paths.test.js.map +1 -1
  173. package/dist/lib/worktree-paths.d.ts +87 -9
  174. package/dist/lib/worktree-paths.d.ts.map +1 -1
  175. package/dist/lib/worktree-paths.js +209 -27
  176. package/dist/lib/worktree-paths.js.map +1 -1
  177. package/dist/team/__tests__/auto-merge-restart.test.d.ts +2 -0
  178. package/dist/team/__tests__/auto-merge-restart.test.d.ts.map +1 -0
  179. package/dist/team/__tests__/auto-merge-restart.test.js +128 -0
  180. package/dist/team/__tests__/auto-merge-restart.test.js.map +1 -0
  181. package/dist/team/__tests__/auto-merge.perf.test.d.ts +2 -0
  182. package/dist/team/__tests__/auto-merge.perf.test.d.ts.map +1 -0
  183. package/dist/team/__tests__/auto-merge.perf.test.js +85 -0
  184. package/dist/team/__tests__/auto-merge.perf.test.js.map +1 -0
  185. package/dist/team/__tests__/conflict-mailbox.test.d.ts +2 -0
  186. package/dist/team/__tests__/conflict-mailbox.test.d.ts.map +1 -0
  187. package/dist/team/__tests__/conflict-mailbox.test.js +238 -0
  188. package/dist/team/__tests__/conflict-mailbox.test.js.map +1 -0
  189. package/dist/team/__tests__/helpers/git-fixture.d.ts +72 -0
  190. package/dist/team/__tests__/helpers/git-fixture.d.ts.map +1 -0
  191. package/dist/team/__tests__/helpers/git-fixture.js +252 -0
  192. package/dist/team/__tests__/helpers/git-fixture.js.map +1 -0
  193. package/dist/team/__tests__/leader-inbox.test.d.ts +2 -0
  194. package/dist/team/__tests__/leader-inbox.test.d.ts.map +1 -0
  195. package/dist/team/__tests__/leader-inbox.test.js +152 -0
  196. package/dist/team/__tests__/leader-inbox.test.js.map +1 -0
  197. package/dist/team/__tests__/merge-orchestrator.test.d.ts +2 -0
  198. package/dist/team/__tests__/merge-orchestrator.test.d.ts.map +1 -0
  199. package/dist/team/__tests__/merge-orchestrator.test.js +779 -0
  200. package/dist/team/__tests__/merge-orchestrator.test.js.map +1 -0
  201. package/dist/team/__tests__/rebase-smoke.test.d.ts +2 -0
  202. package/dist/team/__tests__/rebase-smoke.test.d.ts.map +1 -0
  203. package/dist/team/__tests__/rebase-smoke.test.js +272 -0
  204. package/dist/team/__tests__/rebase-smoke.test.js.map +1 -0
  205. package/dist/team/__tests__/runtime-cli.test.js +9 -1
  206. package/dist/team/__tests__/runtime-cli.test.js.map +1 -1
  207. package/dist/team/__tests__/runtime-v2.dispatch.test.js +150 -1
  208. package/dist/team/__tests__/runtime-v2.dispatch.test.js.map +1 -1
  209. package/dist/team/__tests__/teardown-invariant.test.d.ts +2 -0
  210. package/dist/team/__tests__/teardown-invariant.test.d.ts.map +1 -0
  211. package/dist/team/__tests__/teardown-invariant.test.js +176 -0
  212. package/dist/team/__tests__/teardown-invariant.test.js.map +1 -0
  213. package/dist/team/__tests__/worker-commit-cadence.test.d.ts +2 -0
  214. package/dist/team/__tests__/worker-commit-cadence.test.d.ts.map +1 -0
  215. package/dist/team/__tests__/worker-commit-cadence.test.js +315 -0
  216. package/dist/team/__tests__/worker-commit-cadence.test.js.map +1 -0
  217. package/dist/team/__tests__/worktree-runtime-e2e.test.d.ts +2 -0
  218. package/dist/team/__tests__/worktree-runtime-e2e.test.d.ts.map +1 -0
  219. package/dist/team/__tests__/worktree-runtime-e2e.test.js +182 -0
  220. package/dist/team/__tests__/worktree-runtime-e2e.test.js.map +1 -0
  221. package/dist/team/conflict-mailbox.d.ts +49 -0
  222. package/dist/team/conflict-mailbox.d.ts.map +1 -0
  223. package/dist/team/conflict-mailbox.js +98 -0
  224. package/dist/team/conflict-mailbox.js.map +1 -0
  225. package/dist/team/leader-inbox.d.ts +28 -0
  226. package/dist/team/leader-inbox.d.ts.map +1 -0
  227. package/dist/team/leader-inbox.js +68 -0
  228. package/dist/team/leader-inbox.js.map +1 -0
  229. package/dist/team/merge-coordinator.d.ts +6 -0
  230. package/dist/team/merge-coordinator.d.ts.map +1 -1
  231. package/dist/team/merge-coordinator.js +6 -2
  232. package/dist/team/merge-coordinator.js.map +1 -1
  233. package/dist/team/merge-orchestrator.d.ts +41 -0
  234. package/dist/team/merge-orchestrator.d.ts.map +1 -0
  235. package/dist/team/merge-orchestrator.js +736 -0
  236. package/dist/team/merge-orchestrator.js.map +1 -0
  237. package/dist/team/runtime-cli.d.ts +1 -0
  238. package/dist/team/runtime-cli.d.ts.map +1 -1
  239. package/dist/team/runtime-cli.js +15 -2
  240. package/dist/team/runtime-cli.js.map +1 -1
  241. package/dist/team/runtime-flags.d.ts +5 -0
  242. package/dist/team/runtime-flags.d.ts.map +1 -0
  243. package/dist/team/runtime-flags.js +12 -0
  244. package/dist/team/runtime-flags.js.map +1 -0
  245. package/dist/team/runtime-v2.d.ts +7 -1
  246. package/dist/team/runtime-v2.d.ts.map +1 -1
  247. package/dist/team/runtime-v2.js +185 -8
  248. package/dist/team/runtime-v2.js.map +1 -1
  249. package/dist/team/worker-bootstrap.d.ts +4 -0
  250. package/dist/team/worker-bootstrap.d.ts.map +1 -1
  251. package/dist/team/worker-bootstrap.js +10 -1
  252. package/dist/team/worker-bootstrap.js.map +1 -1
  253. package/dist/team/worker-commit-cadence.d.ts +70 -0
  254. package/dist/team/worker-commit-cadence.d.ts.map +1 -0
  255. package/dist/team/worker-commit-cadence.js +271 -0
  256. package/dist/team/worker-commit-cadence.js.map +1 -0
  257. package/dist/tools/__tests__/memory-tools.test.js +4 -4
  258. package/dist/tools/__tests__/memory-tools.test.js.map +1 -1
  259. package/dist/tools/__tests__/state-tools.test.js +13 -1
  260. package/dist/tools/__tests__/state-tools.test.js.map +1 -1
  261. package/docs/GETTING-STARTED.md +415 -0
  262. package/docs/MIGRATION.md +66 -66
  263. package/docs/REFERENCE.md +21 -4
  264. package/docs/company-context-interface.md +5 -16
  265. package/docs/copilot-instructions.md +1 -1
  266. package/package.json +1 -1
  267. package/scripts/lib/hud-cache-wrapper.sh +122 -0
  268. package/scripts/plugin-setup.mjs +10 -1
  269. package/scripts/post-tool-verifier.mjs +118 -5
  270. package/scripts/pre-tool-enforcer.mjs +54 -6
  271. package/scripts/session-start.mjs +171 -3
  272. package/skills/AGENTS.md +22 -91
  273. package/skills/ai-slop-cleaner/SKILL.md +118 -120
  274. package/skills/ask/SKILL.md +6 -8
  275. package/skills/autopilot/SKILL.md +1 -28
  276. package/skills/autoresearch/SKILL.md +5 -5
  277. package/skills/cancel/SKILL.md +13 -13
  278. package/skills/cccg/SKILL.md +1 -0
  279. package/skills/configure-notifications/SKILL.md +80 -215
  280. package/skills/debug/SKILL.md +3 -2
  281. package/skills/deep-dive/SKILL.md +20 -9
  282. package/skills/deep-interview/SKILL.md +32 -4
  283. package/skills/deepinit/SKILL.md +1 -0
  284. package/skills/external-context/SKILL.md +2 -1
  285. package/skills/hud/SKILL.md +22 -52
  286. package/skills/learner/SKILL.md +90 -57
  287. package/skills/mcp-setup/SKILL.md +45 -60
  288. package/skills/omc-doctor/SKILL.md +1 -1
  289. package/skills/omc-reference/SKILL.md +6 -6
  290. package/skills/omc-setup/SKILL.md +30 -74
  291. package/skills/omc-setup/phases/01-install-claude-md.md +97 -0
  292. package/skills/omc-setup/phases/02-configure.md +25 -40
  293. package/skills/omc-setup/phases/03-integrations.md +100 -69
  294. package/skills/omc-setup/phases/04-welcome.md +102 -44
  295. package/skills/omc-teams/SKILL.md +63 -26
  296. package/skills/plan/SKILL.md +11 -9
  297. package/skills/ralph/SKILL.md +42 -41
  298. package/skills/ralplan/SKILL.md +3 -10
  299. package/skills/release/SKILL.md +168 -57
  300. package/skills/remember/SKILL.md +2 -1
  301. package/skills/sciomc/SKILL.md +12 -11
  302. package/skills/self-improve/SKILL.md +4 -4
  303. package/skills/setup/SKILL.md +1 -0
  304. package/skills/skill/SKILL.md +21 -20
  305. package/skills/skillify/SKILL.md +34 -3
  306. package/skills/team/SKILL.md +62 -44
  307. package/skills/ultraqa/SKILL.md +1 -2
  308. package/skills/ultrawork/SKILL.md +28 -21
  309. package/skills/verify/SKILL.md +2 -1
  310. package/skills/writer-memory/SKILL.md +2 -1
  311. package/templates/hooks/pre-tool-use.mjs +144 -45
@@ -1,87 +1,198 @@
1
1
  ---
2
2
  name: release
3
- description: Automated release workflow for oh-my-copilot
3
+ description: Generic release assistant — analyzes repo release rules, caches them in .omcp/RELEASE_RULE.md, then guides the release
4
+ level: 3
4
5
  ---
5
6
 
6
7
  # Release Skill
7
8
 
8
- Automate the release process for oh-my-copilot.
9
+ A thin, repo-aware release assistant. On first run it inspects the project and CI to derive release rules, stores them in `.omcp/RELEASE_RULE.md` for future use, then walks you through a release using those rules.
9
10
 
10
11
  ## Usage
11
12
 
12
13
  ```
13
- /oh-my-copilot:release <version>
14
+ /oh-my-copilot:release [version]
14
15
  ```
15
16
 
16
- Example: `/oh-my-copilot:release 2.4.0` or `/oh-my-copilot:release patch` or `/oh-my-copilot:release minor`
17
+ - `version` is optional. If omitted the skill will ask. Accepts `patch`, `minor`, `major`, or an explicit semver like `2.4.0`.
18
+ - Add `--refresh` to force re-analysis of the repo even when a cached rule file exists.
17
19
 
18
- ## Release Checklist
20
+ ## Execution Flow
19
21
 
20
- Execute these steps in order:
22
+ ### Step 0 — Load or Build Release Rules
21
23
 
22
- ### 1. Version Bump
23
- Update version in all locations:
24
- - `package.json`
25
- - `src/installer/index.ts` (VERSION constant)
26
- - `src/__tests__/installer.test.ts` (expected version)
27
- - `.copilot-plugin/plugin.json`
28
- - `.copilot-plugin/marketplace.json` (both `plugins[0].version` and root `version`)
29
- - `docs/copilot-instructions.md` (`<!-- OMC:VERSION:X.Y.Z -->` marker)
30
- - `README.md` (version badge and title)
24
+ Check whether `.omcp/RELEASE_RULE.md` exists.
31
25
 
32
- ### 2. Run Tests
33
- ```bash
34
- npm run test:run
35
- ```
36
- All 231+ tests must pass before proceeding.
26
+ **If it does NOT exist (or `--refresh` was passed):** Run the full repo analysis below and write the file.
37
27
 
38
- ### 3. Commit Version Bump
39
- ```bash
40
- git add -A
41
- git commit -m "chore: Bump version to <version>"
42
- ```
28
+ **If it DOES exist:** Read the file. Then do a quick delta check — scan `.github/workflows/` (or equivalent CI dirs: `.circleci/`, `.travis.yml`, `Jenkinsfile`, `bitbucket-pipelines.yml`, `gitlab-ci.yml`) for any modifications newer than the `last-analyzed` timestamp in the rule file. If relevant workflow files changed, re-run the analysis for those sections and update the file. Report what changed.
43
29
 
44
- ### 4. Create & Push Tag
45
- ```bash
46
- git tag v<version>
47
- git push origin main
48
- git push origin v<version>
49
- ```
30
+ ---
31
+
32
+ ### Step 1 — Repo Analysis (first run or --refresh)
33
+
34
+ Inspect the repo and answer the following. Write answers into `.omcp/RELEASE_RULE.md`.
35
+
36
+ #### 1a. Version Sources
37
+
38
+ - Locate all files that contain a version string matching the current version in `package.json` / `pyproject.toml` / `Cargo.toml` / `build.gradle` / `VERSION` file / etc.
39
+ - List each file and the field or regex pattern used to find the version.
40
+ - Detect whether there is a release automation script (e.g. `scripts/release.*`, `Makefile release` target, `bump2version`, `release-it`, `semantic-release`, `changesets`, `goreleaser`).
41
+
42
+ #### 1b. Registry / Distribution
43
+
44
+ - npm (`package.json` with `publishConfig` or `npm publish` in CI), PyPI (`pyproject.toml` + `twine`/`flit`), Cargo (`Cargo.toml`), Docker (`Dockerfile` + push step), GitHub Packages, other.
45
+ - Is there a CI step that publishes automatically on tag push? Which workflow file and job?
46
+
47
+ #### 1c. Release Trigger
48
+
49
+ - Identify what starts the release: tag push (`v*`), manual dispatch (`workflow_dispatch`), merge to main/master, a release branch merge, a commit message pattern.
50
+
51
+ #### 1d. Test Gate
52
+
53
+ - Identify the test command and where it runs in CI.
54
+ - Are tests required to pass before publish? Note any bypass flags.
55
+
56
+ #### 1e. Release Notes / Changelog
57
+
58
+ - Does a `CHANGELOG.md` or `CHANGELOG.rst` exist?
59
+ - What convention is used: Keep a Changelog, Conventional Commits, GitHub auto-generated, none?
60
+ - Is there a release body file (e.g. `.github/release-body.md`) committed pre-tag?
50
61
 
51
- ### 5. Publish to npm
52
- ```bash
53
- npm publish --access public
62
+ #### 1f. First-Time User Check
63
+
64
+ - Does a release workflow exist in `.github/workflows/` (or equivalent)? If not, flag this and offer to scaffold one.
65
+ - Is there a `.gitignore` entry preventing build artifacts from being committed? If not, flag it.
66
+ - Are git tags being used? Run `git tag --list` to check. If no tags exist, flag and explain best practice.
67
+
68
+ ---
69
+
70
+ ### Step 2 — Write `.omcp/RELEASE_RULE.md`
71
+
72
+ Create or overwrite the file with this structure:
73
+
74
+ ```markdown
75
+ # Release Rules
76
+ <!-- last-analyzed: YYYY-MM-DDTHH:MM:SSZ -->
77
+
78
+ ## Version Sources
79
+ <!-- list of files + patterns -->
80
+
81
+ ## Release Trigger
82
+ <!-- what kicks off the release -->
83
+
84
+ ## Test Gate
85
+ <!-- command + CI job name -->
86
+
87
+ ## Registry / Distribution
88
+ <!-- npm, PyPI, Docker, etc. + CI job that publishes -->
89
+
90
+ ## Release Notes Strategy
91
+ <!-- convention + files -->
92
+
93
+ ## CI Workflow Files
94
+ <!-- paths to relevant workflow files -->
95
+
96
+ ## First-Time Setup Gaps
97
+ <!-- any missing pieces found during analysis, or "none" -->
54
98
  ```
55
99
 
56
- ### 6. Create GitHub Release
57
- ```bash
58
- gh release create v<version> --title "v<version> - <title>" --notes "<release notes>"
100
+ ---
101
+
102
+ ### Step 3 — Determine Version
103
+
104
+ If the user provided a version argument, use it. Otherwise:
105
+
106
+ 1. Show the current version (from the primary version file).
107
+ 2. Show what `patch`, `minor`, and `major` would produce.
108
+ 3. Ask the user which to use.
109
+
110
+ Validate the chosen version is a valid semver string.
111
+
112
+ ---
113
+
114
+ ### Step 4 — Pre-Release Checklist
115
+
116
+ Present a checklist derived from the release rules. At minimum:
117
+
118
+ - [ ] All changes intended for this release are committed and pushed
119
+ - [ ] CI is green on the target branch
120
+ - [ ] Tests pass locally (run the test gate command)
121
+ - [ ] Version bump applied to all version source files
122
+ - [ ] Release notes / changelog prepared (see Step 5)
123
+
124
+ Ask the user to confirm before proceeding, or run each step if they say "go ahead".
125
+
126
+ ---
127
+
128
+ ### Step 5 — Release Notes Guidance
129
+
130
+ Help the user write good release notes. Apply whichever convention the repo uses. Default guidance when no convention is detected:
131
+
132
+ **What makes a good release note:**
133
+ - Lead with **what changed for users**, not internal implementation details.
134
+ - Group by type: `New Features`, `Bug Fixes`, `Breaking Changes`, `Deprecations`, `Internal / Chores`.
135
+ - For each item: one sentence, link to the PR or issue, credit the author if external.
136
+ - **Breaking changes** go first and must include a migration path.
137
+ - Omit changes users never see (refactors, CI tweaks, test-only changes) unless they affect build reproducibility.
138
+
139
+ **Example entry format:**
140
+ ```
141
+ ### Bug Fixes
142
+ - Fix session drop on token expiry (#123) — @contributor
59
143
  ```
60
144
 
61
- ### 7. Verify
62
- - [ ] npm: https://www.npmjs.com/package/oh-my-copilot
63
- - [ ] GitHub: https://github.com/RobinNorberg/oh-my-copilot/releases
145
+ If the repo uses Conventional Commits, generate a draft changelog from `git log <prev-tag>..HEAD --no-merges --format="%s"` grouped by commit type. Show it to the user and let them edit.
64
146
 
65
- ## Version Files Reference
147
+ ---
148
+
149
+ ### Step 6 — Execute Release
150
+
151
+ Using the rules discovered, walk through:
152
+
153
+ 1. **Bump version** — apply to each version source file.
154
+ 2. **Run tests** — execute the test gate command.
155
+ 3. **Commit** — `git add <version files> CHANGELOG.md` and commit with `chore(release): bump version to vX.Y.Z`.
156
+ 4. **Tag** — `git tag -a vX.Y.Z -m "vX.Y.Z"` (annotated tags are preferred over lightweight).
157
+ 5. **Push** — `git push origin <branch> && git push origin vX.Y.Z`.
158
+ 6. **CI takes over** — if the release trigger is a tag push, remind the user that CI will handle the rest (publish, GitHub release creation). Show the expected CI workflow file.
159
+ 7. **Manual publish** — if no CI automation exists, list the manual publish command (e.g. `npm publish --access public`, `twine upload dist/*`).
160
+
161
+ ---
162
+
163
+ ### Step 7 — First-Time Setup Suggestions
164
+
165
+ If gaps were found in Step 1f, offer concrete help:
66
166
 
67
- | File | Field/Line |
68
- |------|------------|
69
- | `package.json` | `"version": "X.Y.Z"` |
70
- | `src/installer/index.ts` | `export const VERSION = 'X.Y.Z'` |
71
- | `src/__tests__/installer.test.ts` | `expect(VERSION).toBe('X.Y.Z')` |
72
- | `.copilot-plugin/plugin.json` | `"version": "X.Y.Z"` |
73
- | `.copilot-plugin/marketplace.json` | `plugins[0].version` + root `version` |
74
- | `docs/copilot-instructions.md` | `<!-- OMC:VERSION:X.Y.Z -->` |
75
- | `README.md` | Title + version badge |
167
+ **No release workflow:**
168
+ > Your repo doesn't have a release CI workflow. A GitHub Actions workflow triggered on `v*` tag push is the most common best practice. It can:
169
+ > - Run tests
170
+ > - Publish to npm/PyPI/etc.
171
+ > - Create a GitHub Release with your release notes
172
+ >
173
+ > Want me to scaffold a `.github/workflows/release.yml` for your stack?
76
174
 
77
- ## Semantic Versioning
175
+ **No git tags:**
176
+ > This appears to be the first release. Git tags let GitHub, npm, and other tools understand your version history. We'll create your first tag in Step 6.
78
177
 
79
- - **patch** (X.Y.Z+1): Bug fixes, minor improvements
80
- - **minor** (X.Y+1.0): New features, backward compatible
81
- - **major** (X+1.0.0): Breaking changes
178
+ **Build artifacts not gitignored:**
179
+ > Build artifacts are present in git history or not gitignored. This inflates repo size and creates merge conflicts. Want me to add them to `.gitignore`?
180
+
181
+ ---
182
+
183
+ ### Step 8 — Verify
184
+
185
+ After the push:
186
+ - Check CI status: `gh run list --workflow=<release workflow> --limit=3` (if `gh` is available).
187
+ - Check the registry (npm, PyPI) for the new version after a few minutes.
188
+ - Confirm a GitHub Release was created: `gh release view vX.Y.Z`.
189
+
190
+ Report success or flag any failures.
191
+
192
+ ---
82
193
 
83
194
  ## Notes
84
195
 
85
- - Always run tests before publishing
86
- - Create release notes summarizing changes
87
- - Plugin marketplace syncs automatically from GitHub releases
196
+ - This skill does **not** hardcode any project-specific version files or commands. Everything is derived from repo inspection.
197
+ - `.omcp/RELEASE_RULE.md` is a local cache. Commit it to your repo if you want to share the derived rules with your team, or add it to `.gitignore` if you prefer it stays local.
198
+ - For complex monorepos or multi-package workspaces, the skill will detect workspace patterns (npm workspaces, pnpm workspaces, Cargo workspace) and adapt accordingly.
@@ -14,7 +14,7 @@ Promote durable, reusable knowledge into the right memory surface instead of lea
14
14
  - **Project memory** — durable team/project knowledge
15
15
  - **Notepad priority** — short high-signal context for the next turns
16
16
  - **Notepad working** — temporary active-session notes
17
- - **Docs / AGENTS / COPILOT files** — durable instructions and conventions when they truly belong there
17
+ - **Docs / AGENTS / CLAUDE files** — durable instructions and conventions when they truly belong there
18
18
 
19
19
  ## Workflow
20
20
  1. Gather the relevant session findings.
@@ -38,3 +38,4 @@ Promote durable, reusable knowledge into the right memory surface instead of lea
38
38
  - What was stored
39
39
  - Where it was stored
40
40
  - Any duplicates/conflicts found
41
+
@@ -2,6 +2,7 @@
2
2
  name: sciomc
3
3
  description: Orchestrate parallel scientist agents for comprehensive analysis with AUTO mode
4
4
  argument-hint: <research goal>
5
+ level: 4
5
6
  ---
6
7
 
7
8
  # Research Skill
@@ -63,13 +64,13 @@ Fire independent stages in parallel via Task tool:
63
64
 
64
65
  ```
65
66
  // Stage 1 - Simple data gathering
66
- Task(subagent_type="oh-my-copilot:scientist", model="haiku", name="scientist-1", prompt="[RESEARCH_STAGE:1] Investigate...")
67
+ Task(subagent_type="oh-my-copilot:scientist", model="haiku", prompt="[RESEARCH_STAGE:1] Investigate...")
67
68
 
68
69
  // Stage 2 - Standard analysis
69
- Task(subagent_type="oh-my-copilot:scientist", model="sonnet", name="scientist-2", prompt="[RESEARCH_STAGE:2] Analyze...")
70
+ Task(subagent_type="oh-my-copilot:scientist", model="sonnet", prompt="[RESEARCH_STAGE:2] Analyze...")
70
71
 
71
72
  // Stage 3 - Complex reasoning
72
- Task(subagent_type="oh-my-copilot:scientist", model="opus", name="scientist-3", prompt="[RESEARCH_STAGE:3] Deep analysis of...")
73
+ Task(subagent_type="oh-my-copilot:scientist", model="opus", prompt="[RESEARCH_STAGE:3] Deep analysis of...")
73
74
  ```
74
75
 
75
76
  ### Smart Model Routing
@@ -99,7 +100,7 @@ After parallel execution completes, verify findings:
99
100
 
100
101
  ```
101
102
  // Cross-validation stage
102
- Task(subagent_type="oh-my-copilot:scientist", model="sonnet", name="scientist-1", prompt="
103
+ Task(subagent_type="oh-my-copilot:scientist", model="sonnet", prompt="
103
104
  [RESEARCH_VERIFICATION]
104
105
  Cross-validate these findings for consistency:
105
106
 
@@ -180,9 +181,9 @@ When stages analyze different data sources:
180
181
 
181
182
  ```
182
183
  // All fire simultaneously
183
- Task(subagent_type="oh-my-copilot:scientist", model="haiku", name="scientist-1", prompt="[STAGE:1] Analyze src/api/...")
184
- Task(subagent_type="oh-my-copilot:scientist", model="haiku", name="scientist-2", prompt="[STAGE:2] Analyze src/utils/...")
185
- Task(subagent_type="oh-my-copilot:scientist", model="haiku", name="scientist-3", prompt="[STAGE:3] Analyze src/components/...")
184
+ Task(subagent_type="oh-my-copilot:scientist", model="haiku", prompt="[STAGE:1] Analyze src/api/...")
185
+ Task(subagent_type="oh-my-copilot:scientist", model="haiku", prompt="[STAGE:2] Analyze src/utils/...")
186
+ Task(subagent_type="oh-my-copilot:scientist", model="haiku", prompt="[STAGE:3] Analyze src/components/...")
186
187
  ```
187
188
 
188
189
  ### Hypothesis Battery (Parallel)
@@ -191,9 +192,9 @@ When testing multiple hypotheses:
191
192
 
192
193
  ```
193
194
  // Test hypotheses simultaneously
194
- Task(subagent_type="oh-my-copilot:scientist", model="sonnet", name="scientist-1", prompt="[HYPOTHESIS:A] Test if caching improves...")
195
- Task(subagent_type="oh-my-copilot:scientist", model="sonnet", name="scientist-2", prompt="[HYPOTHESIS:B] Test if batching reduces...")
196
- Task(subagent_type="oh-my-copilot:scientist", model="sonnet", name="scientist-3", prompt="[HYPOTHESIS:C] Test if lazy loading helps...")
195
+ Task(subagent_type="oh-my-copilot:scientist", model="sonnet", prompt="[HYPOTHESIS:A] Test if caching improves...")
196
+ Task(subagent_type="oh-my-copilot:scientist", model="sonnet", prompt="[HYPOTHESIS:B] Test if batching reduces...")
197
+ Task(subagent_type="oh-my-copilot:scientist", model="sonnet", prompt="[HYPOTHESIS:C] Test if lazy loading helps...")
197
198
  ```
198
199
 
199
200
  ### Cross-Validation (Sequential)
@@ -205,7 +206,7 @@ When verification depends on all findings:
205
206
  [stages complete]
206
207
 
207
208
  // Then sequential verification
208
- Task(subagent_type="oh-my-copilot:scientist", model="opus", name="scientist-1", prompt="
209
+ Task(subagent_type="oh-my-copilot:scientist", model="opus", prompt="
209
210
  [CROSS_VALIDATION]
210
211
  Validate consistency across all findings:
211
212
  - Finding 1: ...
@@ -30,9 +30,9 @@ You are the **loop controller** for the self-improvement system. You manage the
30
30
 
31
31
  Self-improve artifacts live under a resolved root returned by `scripts/resolve-paths.mjs`.
32
32
 
33
- - New runs default to `.omc/self-improve/topics/default/`.
34
- - When the user provides a topic or slug, use `.omc/self-improve/topics/{topic_slug}/`.
35
- - Legacy single-track state at `.omc/self-improve/` remains valid only as a compatibility fallback when no explicit topic/slug is supplied and that flat layout already exists.
33
+ - New runs default to `.omcp/self-improve/topics/default/`.
34
+ - When the user provides a topic or slug, use `.omcp/self-improve/topics/{topic_slug}/`.
35
+ - Legacy single-track state at `.omcp/self-improve/` remains valid only as a compatibility fallback when no explicit topic/slug is supplied and that flat layout already exists.
36
36
 
37
37
  Treat `<self-improve-root>/` below as that resolved root:
38
38
 
@@ -115,7 +115,7 @@ Read these files at startup and at the beginning of each iteration:
115
115
  6. If goal not set → read `si-goal-clarifier.md` from this skill directory and run the 4-dimension Socratic interview directly in this context (Objective, Metric, Target, Scope). Write result to `<self-improve-root>/config/goal.md`.
116
116
  6. If benchmark not set → read `si-benchmark-builder.md` from this skill directory, spawn a custom Agent(model=opus) with its content as prompt. The agent surveys the repo, creates or wraps a benchmark, validates 3x, and records baseline.
117
117
  After benchmark is set, confirm the benchmark command with user:
118
- `"Benchmark command: {benchmark_command}. This will be run repeatedly during the loop. Confirm? [yes/no]"`
118
+ `"Benchmark command: {benchmark_command}. This will be run repeatedly during the loop. Confirm? [yes/no]"`
119
119
  If user declines: abort setup and exit.
120
120
  7. If harness not set → confirm default harness rules (H001/H002/H003) with user or customize.
121
121
  8. **Gate**: All of `si_setting_goal`, `si_setting_benchmark`, `si_setting_harness`, `trust_confirmed` must be true.
@@ -1,6 +1,7 @@
1
1
  ---
2
2
  name: setup
3
3
  description: Use first for install/update routing — sends setup, doctor, or MCP requests to the correct OMC setup flow
4
+ level: 2
4
5
  ---
5
6
 
6
7
  # Setup
@@ -2,6 +2,7 @@
2
2
  name: skill
3
3
  description: Manage local skills - list, add, remove, search, edit, setup wizard
4
4
  argument-hint: "<command> [args]"
5
+ level: 2
5
6
  ---
6
7
 
7
8
  # Skill Management CLI
@@ -28,7 +29,7 @@ BUILT-IN SKILLS (bundled with oh-my-copilot):
28
29
  | visual-verdict | Structured visual QA verdicts | built-in |
29
30
  | ralph | Persistence loop | built-in |
30
31
 
31
- USER SKILLS (~/.copilot/skills/omc-learned/):
32
+ USER SKILLS (~/.claude/skills/omc-learned/):
32
33
  | Name | Triggers | Quality | Usage | Scope |
33
34
  |-------------------|--------------------|---------|-------|-------|
34
35
  | error-handler | fix, error | 95% | 42 | user |
@@ -114,7 +115,7 @@ Triggers (comma-separated): log, logger, logging
114
115
  Argument hint (optional): <level> [message]
115
116
  Scope (user/project): user
116
117
 
117
- ✓ Created skill at ~/.copilot/skills/omc-learned/custom-logger/SKILL.md
118
+ ✓ Created skill at ~/.claude/skills/omc-learned/custom-logger/SKILL.md
118
119
  → Edit with: /skill edit custom-logger
119
120
  ```
120
121
 
@@ -126,7 +127,7 @@ Remove a skill by name.
126
127
 
127
128
  **Behavior:**
128
129
  1. **Search for skill** in both scopes:
129
- - `~/.copilot/skills/omc-learned/<name>/SKILL.md`
130
+ - `${COPILOT_CONFIG_DIR:-~/.copilot}/skills/omc-learned/<name>/SKILL.md`
130
131
  - `.omcp/skills/<name>/SKILL.md`
131
132
  2. **If found:**
132
133
  - Display skill info (name, description, scope)
@@ -144,7 +145,7 @@ Remove a skill by name.
144
145
  User: /skill remove old-logger
145
146
  Assistant: Found skill 'old-logger' in user scope:
146
147
  Description: Legacy logging utility
147
- Scope: user (~/.copilot/skills/omc-learned/)
148
+ Scope: user (~/.claude/skills/omc-learned/)
148
149
 
149
150
  Delete 'old-logger' skill? (yes/no)
150
151
 
@@ -260,13 +261,13 @@ Show detailed information about a skill.
260
261
 
261
262
  ```
262
263
  Skill: custom-logger
263
- Scope: user (~/.copilot/skills/omc-learned/custom-logger/)
264
+ Scope: user (~/.claude/skills/omc-learned/custom-logger/)
264
265
  Description: Enhanced logging with structured output
265
266
  Triggers: log, logger, logging
266
267
  Argument Hint: <level> [message]
267
268
  Quality: 95% (if available)
268
269
  Usage Count: 42 times (if available)
269
- File Path: /home/user/.copilot/skills/omc-learned/custom-logger/SKILL.md
270
+ File Path: /home/user/.claude/skills/omc-learned/custom-logger/SKILL.md
270
271
 
271
272
  --- FULL CONTENT ---
272
273
  [entire markdown content]
@@ -281,7 +282,7 @@ Assistant: Skill: custom-logger
281
282
  Scope: user
282
283
  Description: Enhanced logging with structured output
283
284
  Triggers: log, logger, logging
284
- File: ~/.copilot/skills/omc-learned/custom-logger/SKILL.md
285
+ File: ~/.claude/skills/omc-learned/custom-logger/SKILL.md
285
286
 
286
287
  --- CONTENT ---
287
288
  # Custom Logger Skill
@@ -369,7 +370,7 @@ First, check if skill directories exist and create them if needed:
369
370
 
370
371
  ```bash
371
372
  # Check and create user-level skills directory
372
- USER_SKILLS_DIR="${COPILOT_CONFIG_DIR:-${COPILOT_CONFIG_DIR:-$HOME/.copilot}}/skills/omc-learned"
373
+ USER_SKILLS_DIR="${COPILOT_CONFIG_DIR:-$HOME/.copilot}/skills/omc-learned"
373
374
  if [ -d "$USER_SKILLS_DIR" ]; then
374
375
  echo "User skills directory exists: $USER_SKILLS_DIR"
375
376
  else
@@ -393,15 +394,15 @@ Scan both directories and show a comprehensive inventory:
393
394
 
394
395
  ```bash
395
396
  # Scan user-level skills
396
- echo "=== USER-LEVEL SKILLS (~/.copilot/skills/omc-learned/) ==="
397
+ echo "=== USER-LEVEL SKILLS (~/.claude/skills/omc-learned/) ==="
397
398
  if [ -d "${COPILOT_CONFIG_DIR:-$HOME/.copilot}/skills/omc-learned" ]; then
398
- USER_COUNT=$(find "${COPILOT_CONFIG_DIR:-${COPILOT_CONFIG_DIR:-$HOME/.copilot}}/skills/omc-learned" -name "*.md" 2>/dev/null | wc -l)
399
+ USER_COUNT=$(find "${COPILOT_CONFIG_DIR:-$HOME/.copilot}/skills/omc-learned" -name "*.md" 2>/dev/null | wc -l)
399
400
  echo "Total skills: $USER_COUNT"
400
401
 
401
402
  if [ $USER_COUNT -gt 0 ]; then
402
403
  echo ""
403
404
  echo "Skills found:"
404
- find "${COPILOT_CONFIG_DIR:-${COPILOT_CONFIG_DIR:-$HOME/.copilot}}/skills/omc-learned" -name "*.md" -type f -exec sh -c '
405
+ find "${COPILOT_CONFIG_DIR:-$HOME/.copilot}/skills/omc-learned" -name "*.md" -type f -exec sh -c '
405
406
  FILE="$1"
406
407
  NAME=$(grep -m1 "^name:" "$FILE" 2>/dev/null | sed "s/name: //")
407
408
  DESC=$(grep -m1 "^description:" "$FILE" 2>/dev/null | sed "s/description: //")
@@ -467,7 +468,7 @@ Analyze the current conversation context to identify potential skill-worthy patt
467
468
  - Codebase-specific workarounds discovered
468
469
  - Error patterns that took time to resolve
469
470
 
470
- Report findings and ask if user wants to extract any as skills (invoke `/learner` if yes).
471
+ Report findings and ask if user wants to extract any as skills (invoke `/skillify`; `/learner` is deprecated compatibility).
471
472
 
472
473
  **Option 4: Import Skill**
473
474
 
@@ -476,7 +477,7 @@ Ask user to provide either:
476
477
  - **Paste content**: Paste skill markdown content directly
477
478
 
478
479
  Then ask for scope:
479
- - **User-level** (~/.copilot/skills/omc-learned/) - Available across all projects
480
+ - **User-level** (~/.claude/skills/omc-learned/) - Available across all projects
480
481
  - **Project-level** (.omcp/skills/) - Only for this project
481
482
 
482
483
  Validate the skill format and save to the chosen location.
@@ -711,7 +712,7 @@ How to work with this integration correctly:
711
712
  When invoked with an argument, skip the interactive wizard:
712
713
 
713
714
  - `/oh-my-copilot:skill list` - Show detailed skill inventory
714
- - `/oh-my-copilot:skill add` - Start skill creation (invoke learner)
715
+ - `/oh-my-copilot:skill add` - Start skill creation (invoke skillify)
715
716
  - `/oh-my-copilot:skill scan` - Scan both skill directories
716
717
 
717
718
  ### Interactive Mode
@@ -722,13 +723,13 @@ When invoked without arguments, run the full guided wizard.
722
723
 
723
724
  ## Benefits of Local Skills
724
725
 
725
- **Automatic Application**: Copilot detects triggers and applies skills automatically - no need to remember or search for solutions.
726
+ **Automatic Application**: Claude detects triggers and applies skills automatically - no need to remember or search for solutions.
726
727
 
727
728
  **Version Control**: Project-level skills (`.omcp/skills/`) are intended to be committed with your code so the whole team benefits. In linked worktrees, uncommitted skills remain local to that worktree and disappear if it is removed.
728
729
 
729
730
  **Evolving Knowledge**: Skills improve over time as you discover better approaches and refine triggers.
730
731
 
731
- **Reduced Token Usage**: Instead of re-solving the same problems, Copilot applies known patterns efficiently.
732
+ **Reduced Token Usage**: Instead of re-solving the same problems, Claude applies known patterns efficiently.
732
733
 
733
734
  **Codebase Memory**: Preserves institutional knowledge that would otherwise be lost in conversation history.
734
735
 
@@ -758,7 +759,7 @@ Good skills are:
758
759
 
759
760
  ## Related Skills
760
761
 
761
- - `/oh-my-copilot:learner` - Extract a skill from current conversation
762
+ - `/oh-my-copilot:skillify` - Extract a skill from current conversation (`/oh-my-copilot:learner` is a deprecated alias)
762
763
  - `/oh-my-copilot:note` - Save quick notes (less formal than skills)
763
764
  - `/oh-my-copilot:deepinit` - Generate AGENTS.md codebase hierarchy
764
765
 
@@ -770,7 +771,7 @@ Good skills are:
770
771
  > /oh-my-copilot:skill list
771
772
 
772
773
  Checking skill directories...
773
- ✓ User skills directory exists: ~/.copilot/skills/omc-learned/
774
+ ✓ User skills directory exists: ~/.claude/skills/omc-learned/
774
775
  ✓ Project skills directory exists: .omcp/skills/
775
776
 
776
777
  Scanning for skills...
@@ -811,7 +812,7 @@ What would you like to do?
811
812
  ## Tips for Users
812
813
 
813
814
  - Run `/oh-my-copilot:skill list` periodically to review your skill library
814
- - After solving a tricky bug, immediately run learner to capture it
815
+ - After solving a tricky bug, immediately run skillify to capture it
815
816
  - Use project-level skills for codebase-specific knowledge
816
817
  - Use user-level skills for general patterns that apply everywhere
817
818
  - Review and refine triggers over time to improve matching accuracy
@@ -831,7 +832,7 @@ What would you like to do?
831
832
 
832
833
  ## Related Skills
833
834
 
834
- - `/oh-my-copilot:learner` - Extract a skill from current conversation
835
+ - `/oh-my-copilot:skillify` - Extract a skill from current conversation (`/oh-my-copilot:learner` is a deprecated alias)
835
836
  - `/oh-my-copilot:note` - Save quick notes (less formal than skills)
836
837
  - `/oh-my-copilot:deepinit` - Generate AGENTS.md codebase hierarchy
837
838
 
@@ -1,5 +1,6 @@
1
1
  ---
2
2
  name: skillify
3
+ aliases: [learner]
3
4
  description: Turn a repeatable workflow from the current session into a reusable OMC skill draft
4
5
  ---
5
6
 
@@ -7,9 +8,19 @@ description: Turn a repeatable workflow from the current session into a reusable
7
8
 
8
9
  Use this skill when the current session uncovered a repeatable workflow that should become a reusable OMC skill.
9
10
 
11
+ > Compatibility: `/oh-my-copilot:learner` is a deprecated alias for this skill. Prefer `/oh-my-copilot:skillify` in docs, prompts, and new workflows. Internal implementation modules may still use the learner name.
12
+
10
13
  ## Goal
11
14
  Capture a successful multi-step workflow as a concrete skill draft instead of rediscovering it later.
12
15
 
16
+ ## Quality Gate
17
+ Before extracting a skill, all three should be true:
18
+ - "Could someone Google this in 5 minutes?" → No.
19
+ - "Is this specific to this codebase, project, or workflow?" → Yes.
20
+ - "Did this take real debugging, design, or operational effort to discover?" → Yes.
21
+
22
+ Prefer skills that encode decision-making heuristics, constraints, pitfalls, and verification steps. Avoid generic snippets, boilerplate, or library usage examples that belong in normal documentation.
23
+
13
24
  ## Workflow
14
25
  1. Identify the repeatable task the session accomplished.
15
26
  2. Extract:
@@ -17,22 +28,42 @@ Capture a successful multi-step workflow as a concrete skill draft instead of re
17
28
  - ordered steps
18
29
  - success criteria
19
30
  - constraints / pitfalls
31
+ - verification evidence
20
32
  - best target location for the skill
21
33
  3. Decide whether the workflow belongs as:
22
34
  - a repo built-in skill
23
35
  - a user/project learned skill
24
36
  - documentation only
25
- 4. Draft the SKILL.md content with clear triggers, steps, and success criteria.
26
- 5. Point out anything still too fuzzy to encode safely.
37
+ 4. When drafting a learned skill file, output a complete skill file that starts with YAML frontmatter.
38
+ - Never emit plain markdown-only skill files.
39
+ - Do **not** write plain markdown without frontmatter.
40
+ - Minimum frontmatter:
41
+ ```yaml
42
+ ---
43
+ name: <skill-name>
44
+ description: <one-line description>
45
+ triggers:
46
+ - <trigger-1>
47
+ - <trigger-2>
48
+ ---
49
+ ```
50
+ - Write learned/user/project skills to flat file-backed paths:
51
+ - `${COPILOT_CONFIG_DIR:-~/.copilot}/skills/omc-learned/<skill-name>.md`
52
+ - `.omcp/skills/<skill-name>.md`
53
+ - Remember that uncommitted skills are still worktree-local until committed or copied to a user-level directory.
54
+ 5. Draft the rest of the skill file with clear triggers, steps, success criteria, and pitfalls.
55
+ 6. Point out anything still too fuzzy to encode safely.
27
56
 
28
57
  ## Rules
29
58
  - Only capture workflows that are actually repeatable.
30
59
  - Keep the skill practical and scoped.
31
60
  - Prefer explicit success criteria over vague prose.
32
61
  - If the workflow still has unresolved branching decisions, note them before drafting.
62
+ - Keep `omc-learned` as the storage directory name for compatibility; do not present it as the public invocation name.
33
63
 
34
64
  ## Output
35
65
  - Proposed skill name
36
66
  - Target location
37
- - Draft workflow structure
67
+ - Draft workflow structure or complete skill file
68
+ - Verification or quality-gate notes
38
69
  - Open questions, if any