oh-my-muse 0.1.1 → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +85 -47
- package/bin/lib.mjs +173 -440
- package/bin/omm.mjs +188 -229
- package/package.json +9 -18
- package/plugin/.muse-plugin/plugin.json +47 -0
- package/plugin/commands/omm-advisor.md +32 -0
- package/plugin/commands/omm-autopilot.md +31 -0
- package/plugin/commands/omm-pipeline.md +28 -0
- package/plugin/commands/omm-ralph.md +29 -0
- package/plugin/commands/omm-team.md +37 -0
- package/plugin/commands/omm-ultraqa.md +31 -0
- package/plugin/commands/omm-ultrawork.md +30 -0
- package/plugin/hooks/notify.mjs +352 -0
- package/plugin/skills/architect/SKILL.md +21 -0
- package/plugin/skills/critic/SKILL.md +21 -0
- package/plugin/skills/data-scientist/SKILL.md +21 -0
- package/plugin/skills/debugger/SKILL.md +21 -0
- package/plugin/skills/designer/SKILL.md +20 -0
- package/{pack → plugin}/skills/docs/SKILL.md +9 -3
- package/plugin/skills/docs-writer/SKILL.md +21 -0
- package/plugin/skills/file-picker/SKILL.md +19 -0
- package/{pack → plugin}/skills/harness/SKILL.md +10 -4
- package/plugin/skills/implementer/SKILL.md +21 -0
- package/plugin/skills/planner/SKILL.md +21 -0
- package/plugin/skills/refactorer/SKILL.md +21 -0
- package/plugin/skills/researcher/SKILL.md +20 -0
- package/plugin/skills/reviewer/SKILL.md +21 -0
- package/{pack → plugin}/skills/security/SKILL.md +7 -1
- package/plugin/skills/security-reviewer/SKILL.md +22 -0
- package/plugin/skills/tester/SKILL.md +22 -0
- package/{pack → plugin}/skills/verify/SKILL.md +7 -1
- package/hooks/notify.mjs +0 -133
- package/models.json +0 -38
- package/omm.jsonc +0 -25
- package/pack/agents/architect.ts +0 -26
- package/pack/agents/critic.ts +0 -26
- package/pack/agents/data-scientist.ts +0 -26
- package/pack/agents/debugger.ts +0 -26
- package/pack/agents/designer.ts +0 -25
- package/pack/agents/docs-writer.ts +0 -26
- package/pack/agents/file-picker.ts +0 -24
- package/pack/agents/implementer.ts +0 -26
- package/pack/agents/muse-advisor.ts +0 -63
- package/pack/agents/muse-autopilot.ts +0 -65
- package/pack/agents/muse-deep-interview.ts +0 -71
- package/pack/agents/muse-pipeline.ts +0 -49
- package/pack/agents/muse-ralph.ts +0 -48
- package/pack/agents/muse-ralplan.ts +0 -70
- package/pack/agents/muse-team.ts +0 -95
- package/pack/agents/muse-ultraqa.ts +0 -55
- package/pack/agents/muse-ultrawork.ts +0 -46
- package/pack/agents/planner.ts +0 -26
- package/pack/agents/refactorer.ts +0 -26
- package/pack/agents/researcher.ts +0 -25
- package/pack/agents/reviewer.ts +0 -26
- package/pack/agents/security-reviewer.ts +0 -27
- package/pack/agents/tester.ts +0 -27
- package/pack/skills/design/SKILL.md +0 -24
- package/pack/skills/tdd/SKILL.md +0 -24
- package/src/harness/DESIGN.md +0 -29
- package/src/harness/HARNESS.md +0 -42
- package/types/agent-definition.ts +0 -18
- package/types/orchestrator.ts +0 -37
package/README.md
CHANGED
|
@@ -5,96 +5,134 @@
|
|
|
5
5
|
[](LICENSE)
|
|
6
6
|
[](package.json)
|
|
7
7
|
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
8
|
+
Native [Muse Code](https://github.com/anthropics/muse-code) plugin:
|
|
9
|
+
18 specialist skills, 7 orchestrator commands, and turn/session-end
|
|
10
|
+
notifications. No tiers, no presets, no model routing — the model is chosen
|
|
11
|
+
per session (see below).
|
|
11
12
|
|
|
12
13
|
## Install
|
|
13
14
|
|
|
14
|
-
Requires Node.js `>= 20`
|
|
15
|
+
Requires Node.js `>= 20` and Muse Code `1.3.0+` with `muse` on `PATH`.
|
|
15
16
|
|
|
16
17
|
```sh
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
18
|
+
npm install -g oh-my-muse
|
|
19
|
+
omm install
|
|
20
|
+
omm install --scope user # or: --scope project
|
|
20
21
|
```
|
|
21
22
|
|
|
22
|
-
|
|
23
|
+
`omm install` resolves the shipped `plugin/` directory from the installed
|
|
24
|
+
package (never from the cwd) and runs `muse plugins install <plugin-dir>`.
|
|
25
|
+
It then prints a pending step it deliberately does **not** execute:
|
|
23
26
|
|
|
24
27
|
```sh
|
|
25
|
-
|
|
26
|
-
node /absolute/path/to/oh-my-muse/bin/omm.mjs install --dir /absolute/path/to/project
|
|
27
|
-
node /absolute/path/to/oh-my-muse/bin/omm.mjs doctor --dir /absolute/path/to/project
|
|
28
|
+
muse plugins approve oh-my-muse
|
|
28
29
|
```
|
|
29
30
|
|
|
30
|
-
|
|
31
|
+
Run that yourself to trust and enable the plugin. Verify any time with:
|
|
31
32
|
|
|
32
33
|
```sh
|
|
33
|
-
|
|
34
|
-
omm
|
|
35
|
-
omm install --dir /absolute/path/to/project
|
|
34
|
+
omm validate # both real validators: skills, then plugin
|
|
35
|
+
omm doctor # node, muse in PATH, muse version, validation
|
|
36
36
|
```
|
|
37
37
|
|
|
38
|
-
##
|
|
38
|
+
## Choosing the model
|
|
39
39
|
|
|
40
|
-
|
|
40
|
+
There are no tiers or presets in 0.2.0. The session model applies to every
|
|
41
|
+
skill and command. Pick it per invocation or persistently:
|
|
41
42
|
|
|
42
43
|
```sh
|
|
43
|
-
|
|
44
|
-
omm list --json --dir /absolute/path/to/project
|
|
44
|
+
muse --model muse-spark-1.3-contributor
|
|
45
45
|
```
|
|
46
46
|
|
|
47
|
-
|
|
48
|
-
in `models.json`):
|
|
47
|
+
or in `${XDG_CONFIG_HOME:-$HOME/.config}/muse/settings.json`:
|
|
49
48
|
|
|
50
|
-
```
|
|
51
|
-
|
|
52
|
-
omm preset reason --apply planner --dir /absolute/path/to/project
|
|
49
|
+
```json
|
|
50
|
+
{ "schema_version": 1, "model": "muse-spark-1.3-contributor" }
|
|
53
51
|
```
|
|
54
52
|
|
|
55
|
-
|
|
53
|
+
(A tier-driven `muse exec` wrapper is deferred to a later version.)
|
|
54
|
+
|
|
55
|
+
## Use
|
|
56
|
+
|
|
57
|
+
Commands (each loads `workflow-authoring` and runs its wave plan + gate):
|
|
58
|
+
|
|
59
|
+
| Command | Orchestration |
|
|
60
|
+
| ---------------- | --------------------------------------------------------- |
|
|
61
|
+
| `/omm-team` | Parallel research, serialized same-file edits, reviewer loop |
|
|
62
|
+
| `/omm-autopilot` | One driver owns the change, helpers support it |
|
|
63
|
+
| `/omm-ultrawork` | Maximum parallelism for independent steps |
|
|
64
|
+
| `/omm-pipeline` | Strict sequence with a verify-command gate per step |
|
|
65
|
+
| `/omm-ultraqa` | Parallel checks under a zero-failure gate |
|
|
66
|
+
| `/omm-ralph` | One unfinished step per loop iteration, pass/fail check |
|
|
67
|
+
| `/omm-advisor` | Three independent advisors reconciled into one decision |
|
|
68
|
+
|
|
69
|
+
Skills (loaded by the model, `user-invocable: false`): `architect`,
|
|
70
|
+
`critic`, `data-scientist`, `debugger`, `designer`, `docs-writer`,
|
|
71
|
+
`file-picker`, `implementer`, `planner`, `refactorer`, `researcher`,
|
|
72
|
+
`reviewer`, `security-reviewer`, `tester`, plus `harness`, `verify`,
|
|
73
|
+
`docs`, `security`.
|
|
74
|
+
|
|
75
|
+
Notifications: the single `omm-notify-stop` hook (`Stop`,
|
|
76
|
+
`plugin/hooks/notify.mjs`, self-contained, node builtins only) reads
|
|
77
|
+
**only** `$HOME/.config/oh-my-muse/notify.json` (`XDG_CONFIG_HOME` is
|
|
78
|
+
NOT used). It is silent unless that file sets a channel:
|
|
56
79
|
|
|
57
80
|
```sh
|
|
58
|
-
omm
|
|
59
|
-
|
|
60
|
-
omm
|
|
81
|
+
omm notify setup --channel file --file omm-notify.log \
|
|
82
|
+
--message "turn done in {{projectName}}"
|
|
83
|
+
omm notify test # send one notification using the file
|
|
61
84
|
```
|
|
62
85
|
|
|
63
|
-
|
|
86
|
+
Message templates support `{{projectName}}` (session cwd basename),
|
|
87
|
+
`{{event}}`, `{{date}}`, `{{model}}`, `{{sessionId}}`. With
|
|
88
|
+
`includeAssistantMessage: true` the turn's last assistant message is
|
|
89
|
+
appended (truncated to 500 chars, redacted).
|
|
90
|
+
|
|
91
|
+
Two warnings, both verified on this machine:
|
|
92
|
+
|
|
93
|
+
- Muse **filters the hook environment**: only `HOME`, `LANG`, `PATH`,
|
|
94
|
+
etc. reach the hook — no `OMM_*`, no `XDG_CONFIG_HOME`. That is why
|
|
95
|
+
secrets live in the file, never in env. For CLI use (`omm notify`)
|
|
96
|
+
`OMM_*` variables still override the file.
|
|
97
|
+
- `Stop` fires at the end of **every turn** (also under `muse exec`),
|
|
98
|
+
not once per session.
|
|
99
|
+
|
|
100
|
+
The file must stay owner-only (mode `0600`, directory `0700`):
|
|
101
|
+
`setup` writes it that way; a group/other-readable file makes the hook
|
|
102
|
+
send nothing and `omm doctor` fail. Telegram needs `botToken` +
|
|
103
|
+
`chatId`; Discord/Slack need `webhookUrl` (https + provider host
|
|
104
|
+
allowlist enforced; secrets redacted from every diagnostic and never
|
|
105
|
+
printed by `setup`/`doctor`). File-channel notes land inside the
|
|
106
|
+
payload `cwd` unless `allowExternalFile` is set. On-demand, without a
|
|
107
|
+
file:
|
|
64
108
|
|
|
65
109
|
```sh
|
|
66
|
-
omm
|
|
67
|
-
omm notify --channel file --message "deploy done" --file /absolute/path/to/notify.log
|
|
68
|
-
omm update --dir /absolute/path/to/project
|
|
69
|
-
omm uninstall --dir /absolute/path/to/project
|
|
110
|
+
omm notify --channel file --message "deploy done" --file ./notify.log
|
|
70
111
|
```
|
|
71
112
|
|
|
72
|
-
|
|
113
|
+
An explicit `--file` opts out of root confinement; file/env-driven
|
|
114
|
+
paths stay confined unless `allowExternalFile` /
|
|
115
|
+
`OMM_NOTIFY_ALLOW_EXTERNAL=1`. `omm doctor` reports the config file,
|
|
116
|
+
its mode, and its channel (never secrets).
|
|
73
117
|
|
|
74
|
-
|
|
75
|
-
| ---------- | -------------------- | ------------------- |
|
|
76
|
-
| `budget` | `muse-spark-fast` | fast, low-cost chat |
|
|
77
|
-
| `balanced` | `muse-spark` | general coding work |
|
|
78
|
-
| `premium` | `muse-spark-reasoning` | deep reasoning |
|
|
118
|
+
## Uninstall
|
|
79
119
|
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
120
|
+
```sh
|
|
121
|
+
omm uninstall # muse plugins remove oh-my-muse
|
|
122
|
+
```
|
|
83
123
|
|
|
84
124
|
## Development
|
|
85
125
|
|
|
86
126
|
```sh
|
|
87
|
-
npm
|
|
88
|
-
npm test # node --test test/
|
|
89
|
-
node test/smoke.mjs # agent shape validation
|
|
127
|
+
npm test # node --test test/ (validators skip cleanly when muse is absent)
|
|
90
128
|
```
|
|
91
129
|
|
|
92
130
|
See [CONTRIBUTING.md](CONTRIBUTING.md), [CHANGELOG.md](CHANGELOG.md),
|
|
131
|
+
[docs/PARITY.md](docs/PARITY.md), [docs/OPEN-QUESTIONS.md](docs/OPEN-QUESTIONS.md),
|
|
93
132
|
and [SECURITY.md](SECURITY.md).
|
|
94
133
|
|
|
95
134
|
## Attribution
|
|
96
135
|
|
|
97
136
|
Built for the Muse Spark ecosystem. This is a community project and is
|
|
98
137
|
**not affiliated with Meta**. "Muse" and "Muse Spark" model names belong
|
|
99
|
-
to their respective owners
|
|
100
|
-
by the provider, including OpenRouter-routed models.
|
|
138
|
+
to their respective owners.
|