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.
- package/.claude-plugin/marketplace.json +2 -2
- package/.claude-plugin/plugin.json +1 -1
- package/README.md +1 -1
- package/bridge/cli.cjs +2522 -949
- package/bridge/mcp-server.cjs +97 -9
- package/bridge/runtime-cli.cjs +1256 -133
- package/bridge/team.js +1241 -65
- package/dist/__tests__/auto-slash-aliases.test.js +91 -0
- package/dist/__tests__/auto-slash-aliases.test.js.map +1 -1
- package/dist/__tests__/hud/labels.test.d.ts +2 -0
- package/dist/__tests__/hud/labels.test.d.ts.map +1 -0
- package/dist/__tests__/hud/labels.test.js +158 -0
- package/dist/__tests__/hud/labels.test.js.map +1 -0
- package/dist/__tests__/hud/render-rate-limits-priority.test.js +26 -0
- package/dist/__tests__/hud/render-rate-limits-priority.test.js.map +1 -1
- package/dist/__tests__/hud-marketplace-resolution.test.js +34 -0
- package/dist/__tests__/hud-marketplace-resolution.test.js.map +1 -1
- package/dist/__tests__/installer-hud-skip.test.js +6 -0
- package/dist/__tests__/installer-hud-skip.test.js.map +1 -1
- package/dist/__tests__/installer-omc-reference.test.js +1 -1
- package/dist/__tests__/installer-omc-reference.test.js.map +1 -1
- package/dist/__tests__/mnemosyne/detector.test.js +2 -0
- package/dist/__tests__/mnemosyne/detector.test.js.map +1 -1
- package/dist/__tests__/notepad.test.js +2 -2
- package/dist/__tests__/notepad.test.js.map +1 -1
- package/dist/__tests__/pre-tool-enforcer.test.js +84 -1
- package/dist/__tests__/pre-tool-enforcer.test.js.map +1 -1
- package/dist/__tests__/ralph-prd-mandatory.test.js +11 -1
- package/dist/__tests__/ralph-prd-mandatory.test.js.map +1 -1
- package/dist/__tests__/ralph-prd.test.js +40 -2
- package/dist/__tests__/ralph-prd.test.js.map +1 -1
- package/dist/__tests__/skills.test.js +363 -4
- package/dist/__tests__/skills.test.js.map +1 -1
- package/dist/__tests__/state-root-resolution.test.js +56 -6
- package/dist/__tests__/state-root-resolution.test.js.map +1 -1
- package/dist/autoresearch/__tests__/runtime.test.js +225 -28
- package/dist/autoresearch/__tests__/runtime.test.js.map +1 -1
- package/dist/autoresearch/runtime.d.ts.map +1 -1
- package/dist/autoresearch/runtime.js +9 -5
- package/dist/autoresearch/runtime.js.map +1 -1
- package/dist/cli/autoresearch.d.ts +1 -1
- package/dist/cli/autoresearch.d.ts.map +1 -1
- package/dist/cli/autoresearch.js +4 -4
- package/dist/cli/commands/team.d.ts +1 -0
- package/dist/cli/commands/team.d.ts.map +1 -1
- package/dist/cli/commands/team.js +14 -2
- package/dist/cli/commands/team.js.map +1 -1
- package/dist/cli/index.js +3 -0
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/team.d.ts +6 -0
- package/dist/cli/team.d.ts.map +1 -1
- package/dist/cli/team.js +23 -1
- package/dist/cli/team.js.map +1 -1
- package/dist/config/__tests__/loader.test.js.map +1 -1
- package/dist/features/boulder-state/constants.d.ts +1 -1
- package/dist/features/boulder-state/constants.d.ts.map +1 -1
- package/dist/features/builtin-skills/skills.d.ts.map +1 -1
- package/dist/features/builtin-skills/skills.js +11 -3
- package/dist/features/builtin-skills/skills.js.map +1 -1
- package/dist/features/builtin-skills/types.d.ts +7 -0
- package/dist/features/builtin-skills/types.d.ts.map +1 -1
- package/dist/features/magic-keywords.d.ts.map +1 -1
- package/dist/features/magic-keywords.js +30 -1
- package/dist/features/magic-keywords.js.map +1 -1
- package/dist/features/rate-limit-wait/tmux-detector.d.ts +4 -4
- package/dist/features/rate-limit-wait/tmux-detector.js +9 -9
- package/dist/features/rate-limit-wait/tmux-detector.js.map +1 -1
- package/dist/hooks/__tests__/bridge-routing.test.js +156 -0
- package/dist/hooks/__tests__/bridge-routing.test.js.map +1 -1
- package/dist/hooks/auto-slash-command/constants.d.ts.map +1 -1
- package/dist/hooks/auto-slash-command/constants.js +1 -0
- package/dist/hooks/auto-slash-command/constants.js.map +1 -1
- package/dist/hooks/auto-slash-command/executor.d.ts.map +1 -1
- package/dist/hooks/auto-slash-command/executor.js +29 -0
- package/dist/hooks/auto-slash-command/executor.js.map +1 -1
- package/dist/hooks/bridge.d.ts.map +1 -1
- package/dist/hooks/bridge.js +184 -1
- package/dist/hooks/bridge.js.map +1 -1
- package/dist/hooks/learner/detector.js +1 -1
- package/dist/hooks/mode-registry/__tests__/session-isolation.test.js +16 -0
- package/dist/hooks/mode-registry/__tests__/session-isolation.test.js.map +1 -1
- package/dist/hooks/notepad/index.d.ts +4 -1
- package/dist/hooks/notepad/index.d.ts.map +1 -1
- package/dist/hooks/notepad/index.js +7 -4
- package/dist/hooks/notepad/index.js.map +1 -1
- package/dist/hooks/persistent-mode/__tests__/ralph-verification-flow.test.js +70 -3
- package/dist/hooks/persistent-mode/__tests__/ralph-verification-flow.test.js.map +1 -1
- package/dist/hooks/persistent-mode/index.d.ts.map +1 -1
- package/dist/hooks/persistent-mode/index.js +10 -9
- package/dist/hooks/persistent-mode/index.js.map +1 -1
- package/dist/hooks/persistent-mode/stop-hook-blocking.test.js +64 -9
- package/dist/hooks/persistent-mode/stop-hook-blocking.test.js.map +1 -1
- package/dist/hooks/project-memory/__tests__/integration.test.js +117 -3
- package/dist/hooks/project-memory/__tests__/integration.test.js.map +1 -1
- package/dist/hooks/project-memory/__tests__/storage.test.js +11 -11
- package/dist/hooks/project-memory/__tests__/storage.test.js.map +1 -1
- package/dist/hooks/project-memory/index.d.ts.map +1 -1
- package/dist/hooks/project-memory/index.js +24 -12
- package/dist/hooks/project-memory/index.js.map +1 -1
- package/dist/hooks/ralph/index.d.ts +1 -1
- package/dist/hooks/ralph/index.d.ts.map +1 -1
- package/dist/hooks/ralph/index.js +1 -1
- package/dist/hooks/ralph/index.js.map +1 -1
- package/dist/hooks/ralph/loop.d.ts +6 -6
- package/dist/hooks/ralph/loop.d.ts.map +1 -1
- package/dist/hooks/ralph/loop.js +18 -18
- package/dist/hooks/ralph/loop.js.map +1 -1
- package/dist/hooks/ralph/prd.d.ts +23 -12
- package/dist/hooks/ralph/prd.d.ts.map +1 -1
- package/dist/hooks/ralph/prd.js +88 -42
- package/dist/hooks/ralph/prd.js.map +1 -1
- package/dist/hooks/session-end/__tests__/mode-state-cleanup.test.js +20 -0
- package/dist/hooks/session-end/__tests__/mode-state-cleanup.test.js.map +1 -1
- package/dist/hooks/session-end/index.d.ts +9 -0
- package/dist/hooks/session-end/index.d.ts.map +1 -1
- package/dist/hooks/session-end/index.js +67 -0
- package/dist/hooks/session-end/index.js.map +1 -1
- package/dist/hooks/skill-bridge.cjs +6 -5
- package/dist/hooks/skill-state/index.d.ts.map +1 -1
- package/dist/hooks/skill-state/index.js +1 -0
- package/dist/hooks/skill-state/index.js.map +1 -1
- package/dist/hud/__tests__/git-status.test.js +18 -0
- package/dist/hud/__tests__/git-status.test.js.map +1 -1
- package/dist/hud/elements/background.d.ts +3 -3
- package/dist/hud/elements/background.d.ts.map +1 -1
- package/dist/hud/elements/background.js +5 -4
- package/dist/hud/elements/background.js.map +1 -1
- package/dist/hud/elements/call-counts.d.ts +2 -2
- package/dist/hud/elements/call-counts.d.ts.map +1 -1
- package/dist/hud/elements/call-counts.js +7 -6
- package/dist/hud/elements/call-counts.js.map +1 -1
- package/dist/hud/elements/context.d.ts +3 -3
- package/dist/hud/elements/context.d.ts.map +1 -1
- package/dist/hud/elements/context.js +5 -4
- package/dist/hud/elements/context.js.map +1 -1
- package/dist/hud/elements/git.d.ts +2 -1
- package/dist/hud/elements/git.d.ts.map +1 -1
- package/dist/hud/elements/git.js +7 -6
- package/dist/hud/elements/git.js.map +1 -1
- package/dist/hud/elements/ralph.d.ts +2 -2
- package/dist/hud/elements/ralph.d.ts.map +1 -1
- package/dist/hud/elements/ralph.js +3 -2
- package/dist/hud/elements/ralph.js.map +1 -1
- package/dist/hud/elements/thinking.d.ts +2 -2
- package/dist/hud/elements/thinking.d.ts.map +1 -1
- package/dist/hud/elements/thinking.js +3 -2
- package/dist/hud/elements/thinking.js.map +1 -1
- package/dist/hud/elements/token-usage.d.ts +2 -2
- package/dist/hud/elements/token-usage.d.ts.map +1 -1
- package/dist/hud/elements/token-usage.js +3 -2
- package/dist/hud/elements/token-usage.js.map +1 -1
- package/dist/hud/render.d.ts.map +1 -1
- package/dist/hud/render.js +11 -10
- package/dist/hud/render.js.map +1 -1
- package/dist/hud/state.d.ts.map +1 -1
- package/dist/hud/state.js +18 -1
- package/dist/hud/state.js.map +1 -1
- package/dist/hud/types.d.ts +26 -0
- package/dist/hud/types.d.ts.map +1 -1
- package/dist/hud/types.js +58 -0
- package/dist/hud/types.js.map +1 -1
- package/dist/installer/__tests__/hud-cache-wrapper.test.d.ts +2 -0
- package/dist/installer/__tests__/hud-cache-wrapper.test.d.ts.map +1 -0
- package/dist/installer/__tests__/hud-cache-wrapper.test.js +235 -0
- package/dist/installer/__tests__/hud-cache-wrapper.test.js.map +1 -0
- package/dist/installer/__tests__/standalone-hook-reconcile.test.js +2 -0
- package/dist/installer/__tests__/standalone-hook-reconcile.test.js.map +1 -1
- package/dist/installer/index.d.ts.map +1 -1
- package/dist/installer/index.js +19 -7
- package/dist/installer/index.js.map +1 -1
- package/dist/lib/__tests__/worktree-paths.test.js +162 -39
- package/dist/lib/__tests__/worktree-paths.test.js.map +1 -1
- package/dist/lib/worktree-paths.d.ts +87 -9
- package/dist/lib/worktree-paths.d.ts.map +1 -1
- package/dist/lib/worktree-paths.js +209 -27
- package/dist/lib/worktree-paths.js.map +1 -1
- package/dist/team/__tests__/auto-merge-restart.test.d.ts +2 -0
- package/dist/team/__tests__/auto-merge-restart.test.d.ts.map +1 -0
- package/dist/team/__tests__/auto-merge-restart.test.js +128 -0
- package/dist/team/__tests__/auto-merge-restart.test.js.map +1 -0
- package/dist/team/__tests__/auto-merge.perf.test.d.ts +2 -0
- package/dist/team/__tests__/auto-merge.perf.test.d.ts.map +1 -0
- package/dist/team/__tests__/auto-merge.perf.test.js +85 -0
- package/dist/team/__tests__/auto-merge.perf.test.js.map +1 -0
- package/dist/team/__tests__/conflict-mailbox.test.d.ts +2 -0
- package/dist/team/__tests__/conflict-mailbox.test.d.ts.map +1 -0
- package/dist/team/__tests__/conflict-mailbox.test.js +238 -0
- package/dist/team/__tests__/conflict-mailbox.test.js.map +1 -0
- package/dist/team/__tests__/helpers/git-fixture.d.ts +72 -0
- package/dist/team/__tests__/helpers/git-fixture.d.ts.map +1 -0
- package/dist/team/__tests__/helpers/git-fixture.js +252 -0
- package/dist/team/__tests__/helpers/git-fixture.js.map +1 -0
- package/dist/team/__tests__/leader-inbox.test.d.ts +2 -0
- package/dist/team/__tests__/leader-inbox.test.d.ts.map +1 -0
- package/dist/team/__tests__/leader-inbox.test.js +152 -0
- package/dist/team/__tests__/leader-inbox.test.js.map +1 -0
- package/dist/team/__tests__/merge-orchestrator.test.d.ts +2 -0
- package/dist/team/__tests__/merge-orchestrator.test.d.ts.map +1 -0
- package/dist/team/__tests__/merge-orchestrator.test.js +779 -0
- package/dist/team/__tests__/merge-orchestrator.test.js.map +1 -0
- package/dist/team/__tests__/rebase-smoke.test.d.ts +2 -0
- package/dist/team/__tests__/rebase-smoke.test.d.ts.map +1 -0
- package/dist/team/__tests__/rebase-smoke.test.js +272 -0
- package/dist/team/__tests__/rebase-smoke.test.js.map +1 -0
- package/dist/team/__tests__/runtime-cli.test.js +9 -1
- package/dist/team/__tests__/runtime-cli.test.js.map +1 -1
- package/dist/team/__tests__/runtime-v2.dispatch.test.js +150 -1
- package/dist/team/__tests__/runtime-v2.dispatch.test.js.map +1 -1
- package/dist/team/__tests__/teardown-invariant.test.d.ts +2 -0
- package/dist/team/__tests__/teardown-invariant.test.d.ts.map +1 -0
- package/dist/team/__tests__/teardown-invariant.test.js +176 -0
- package/dist/team/__tests__/teardown-invariant.test.js.map +1 -0
- package/dist/team/__tests__/worker-commit-cadence.test.d.ts +2 -0
- package/dist/team/__tests__/worker-commit-cadence.test.d.ts.map +1 -0
- package/dist/team/__tests__/worker-commit-cadence.test.js +315 -0
- package/dist/team/__tests__/worker-commit-cadence.test.js.map +1 -0
- package/dist/team/__tests__/worktree-runtime-e2e.test.d.ts +2 -0
- package/dist/team/__tests__/worktree-runtime-e2e.test.d.ts.map +1 -0
- package/dist/team/__tests__/worktree-runtime-e2e.test.js +182 -0
- package/dist/team/__tests__/worktree-runtime-e2e.test.js.map +1 -0
- package/dist/team/conflict-mailbox.d.ts +49 -0
- package/dist/team/conflict-mailbox.d.ts.map +1 -0
- package/dist/team/conflict-mailbox.js +98 -0
- package/dist/team/conflict-mailbox.js.map +1 -0
- package/dist/team/leader-inbox.d.ts +28 -0
- package/dist/team/leader-inbox.d.ts.map +1 -0
- package/dist/team/leader-inbox.js +68 -0
- package/dist/team/leader-inbox.js.map +1 -0
- package/dist/team/merge-coordinator.d.ts +6 -0
- package/dist/team/merge-coordinator.d.ts.map +1 -1
- package/dist/team/merge-coordinator.js +6 -2
- package/dist/team/merge-coordinator.js.map +1 -1
- package/dist/team/merge-orchestrator.d.ts +41 -0
- package/dist/team/merge-orchestrator.d.ts.map +1 -0
- package/dist/team/merge-orchestrator.js +736 -0
- package/dist/team/merge-orchestrator.js.map +1 -0
- package/dist/team/runtime-cli.d.ts +1 -0
- package/dist/team/runtime-cli.d.ts.map +1 -1
- package/dist/team/runtime-cli.js +15 -2
- package/dist/team/runtime-cli.js.map +1 -1
- package/dist/team/runtime-flags.d.ts +5 -0
- package/dist/team/runtime-flags.d.ts.map +1 -0
- package/dist/team/runtime-flags.js +12 -0
- package/dist/team/runtime-flags.js.map +1 -0
- package/dist/team/runtime-v2.d.ts +7 -1
- package/dist/team/runtime-v2.d.ts.map +1 -1
- package/dist/team/runtime-v2.js +185 -8
- package/dist/team/runtime-v2.js.map +1 -1
- package/dist/team/worker-bootstrap.d.ts +4 -0
- package/dist/team/worker-bootstrap.d.ts.map +1 -1
- package/dist/team/worker-bootstrap.js +10 -1
- package/dist/team/worker-bootstrap.js.map +1 -1
- package/dist/team/worker-commit-cadence.d.ts +70 -0
- package/dist/team/worker-commit-cadence.d.ts.map +1 -0
- package/dist/team/worker-commit-cadence.js +271 -0
- package/dist/team/worker-commit-cadence.js.map +1 -0
- package/dist/tools/__tests__/memory-tools.test.js +4 -4
- package/dist/tools/__tests__/memory-tools.test.js.map +1 -1
- package/dist/tools/__tests__/state-tools.test.js +13 -1
- package/dist/tools/__tests__/state-tools.test.js.map +1 -1
- package/docs/GETTING-STARTED.md +415 -0
- package/docs/MIGRATION.md +66 -66
- package/docs/REFERENCE.md +21 -4
- package/docs/company-context-interface.md +5 -16
- package/docs/copilot-instructions.md +1 -1
- package/package.json +1 -1
- package/scripts/lib/hud-cache-wrapper.sh +122 -0
- package/scripts/plugin-setup.mjs +10 -1
- package/scripts/post-tool-verifier.mjs +118 -5
- package/scripts/pre-tool-enforcer.mjs +54 -6
- package/scripts/session-start.mjs +171 -3
- package/skills/AGENTS.md +22 -91
- package/skills/ai-slop-cleaner/SKILL.md +118 -120
- package/skills/ask/SKILL.md +6 -8
- package/skills/autopilot/SKILL.md +1 -28
- package/skills/autoresearch/SKILL.md +5 -5
- package/skills/cancel/SKILL.md +13 -13
- package/skills/cccg/SKILL.md +1 -0
- package/skills/configure-notifications/SKILL.md +80 -215
- package/skills/debug/SKILL.md +3 -2
- package/skills/deep-dive/SKILL.md +20 -9
- package/skills/deep-interview/SKILL.md +32 -4
- package/skills/deepinit/SKILL.md +1 -0
- package/skills/external-context/SKILL.md +2 -1
- package/skills/hud/SKILL.md +22 -52
- package/skills/learner/SKILL.md +90 -57
- package/skills/mcp-setup/SKILL.md +45 -60
- package/skills/omc-doctor/SKILL.md +1 -1
- package/skills/omc-reference/SKILL.md +6 -6
- package/skills/omc-setup/SKILL.md +30 -74
- package/skills/omc-setup/phases/01-install-claude-md.md +97 -0
- package/skills/omc-setup/phases/02-configure.md +25 -40
- package/skills/omc-setup/phases/03-integrations.md +100 -69
- package/skills/omc-setup/phases/04-welcome.md +102 -44
- package/skills/omc-teams/SKILL.md +63 -26
- package/skills/plan/SKILL.md +11 -9
- package/skills/ralph/SKILL.md +42 -41
- package/skills/ralplan/SKILL.md +3 -10
- package/skills/release/SKILL.md +168 -57
- package/skills/remember/SKILL.md +2 -1
- package/skills/sciomc/SKILL.md +12 -11
- package/skills/self-improve/SKILL.md +4 -4
- package/skills/setup/SKILL.md +1 -0
- package/skills/skill/SKILL.md +21 -20
- package/skills/skillify/SKILL.md +34 -3
- package/skills/team/SKILL.md +62 -44
- package/skills/ultraqa/SKILL.md +1 -2
- package/skills/ultrawork/SKILL.md +28 -21
- package/skills/verify/SKILL.md +2 -1
- package/skills/writer-memory/SKILL.md +2 -1
- package/templates/hooks/pre-tool-use.mjs +144 -45
package/skills/release/SKILL.md
CHANGED
|
@@ -1,87 +1,198 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: release
|
|
3
|
-
description:
|
|
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
|
-
|
|
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
|
|
14
|
+
/oh-my-copilot:release [version]
|
|
14
15
|
```
|
|
15
16
|
|
|
16
|
-
|
|
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
|
-
##
|
|
20
|
+
## Execution Flow
|
|
19
21
|
|
|
20
|
-
|
|
22
|
+
### Step 0 — Load or Build Release Rules
|
|
21
23
|
|
|
22
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
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
|
-
|
|
52
|
-
|
|
53
|
-
|
|
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
|
-
|
|
57
|
-
|
|
58
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
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
|
-
|
|
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
|
-
|
|
80
|
-
|
|
81
|
-
|
|
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
|
-
-
|
|
86
|
-
-
|
|
87
|
-
-
|
|
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.
|
package/skills/remember/SKILL.md
CHANGED
|
@@ -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 /
|
|
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
|
+
|
package/skills/sciomc/SKILL.md
CHANGED
|
@@ -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",
|
|
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",
|
|
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",
|
|
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",
|
|
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",
|
|
184
|
-
Task(subagent_type="oh-my-copilot:scientist", model="haiku",
|
|
185
|
-
Task(subagent_type="oh-my-copilot:scientist", model="haiku",
|
|
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",
|
|
195
|
-
Task(subagent_type="oh-my-copilot:scientist", model="sonnet",
|
|
196
|
-
Task(subagent_type="oh-my-copilot:scientist", model="sonnet",
|
|
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",
|
|
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 `.
|
|
34
|
-
- When the user provides a topic or slug, use `.
|
|
35
|
-
- Legacy single-track state at `.
|
|
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
|
-
|
|
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.
|
package/skills/setup/SKILL.md
CHANGED
package/skills/skill/SKILL.md
CHANGED
|
@@ -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 (~/.
|
|
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 ~/.
|
|
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
|
-
-
|
|
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 (~/.
|
|
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 (~/.
|
|
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/.
|
|
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: ~/.
|
|
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:-$
|
|
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 (~/.
|
|
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:-$
|
|
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:-$
|
|
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`
|
|
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** (~/.
|
|
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
|
|
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**:
|
|
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,
|
|
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:
|
|
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: ~/.
|
|
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
|
|
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:
|
|
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
|
|
package/skills/skillify/SKILL.md
CHANGED
|
@@ -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.
|
|
26
|
-
|
|
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
|