@maestrofrontier/frontier 1.4.4 → 1.5.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/.agents/plugins/marketplace.json +21 -0
- package/.codex-plugin/plugin.json +29 -0
- package/.cursorrules +197 -194
- package/AGENTS.md +214 -214
- package/CLAUDE.md +29 -29
- package/README.md +368 -278
- package/bin/maestro.cjs +75 -75
- package/commands/compress.md +36 -36
- package/commands/frontier.md +124 -124
- package/commands/terse.md +23 -23
- package/docs/codex.md +167 -98
- package/docs/orchestration.md +168 -168
- package/frontier/cli.cjs +279 -248
- package/frontier/config.cjs +468 -441
- package/frontier/dispatch.cjs +267 -255
- package/frontier/judge.cjs +92 -92
- package/frontier/run.cjs +201 -148
- package/frontier/schema.cjs +112 -112
- package/frontier/semaphore.cjs +49 -49
- package/frontier/synthesize.cjs +79 -79
- package/hooks/frontier-autorun.cjs +127 -124
- package/hooks/hooks.json +103 -103
- package/hooks/maestro-doctrine-guard.cjs +81 -81
- package/hooks/maestro-gate-reminder.cjs +22 -7
- package/hooks/maestro-gate-telemetry.cjs +79 -77
- package/hooks/maestro-phase-scope.cjs +118 -118
- package/hooks/maestro-statusline-sync.cjs +152 -152
- package/hooks/maestro-subagent-guard.cjs +148 -148
- package/hooks/maestro-terse-mode.cjs +189 -189
- package/hooks/maestro-toolbudget-advisory.cjs +127 -127
- package/integrations/README.md +111 -94
- package/integrations/cline/skills/frontier/SKILL.md +75 -75
- package/integrations/codex/prompts/frontier.md +70 -66
- package/integrations/codex/prompts/update.md +39 -36
- package/integrations/codex/skills/maestro-frontier/SKILL.md +122 -0
- package/integrations/codex/skills/{settings → maestro-settings}/SKILL.md +55 -46
- package/integrations/codex/skills/{terse → maestro-terse}/SKILL.md +58 -49
- package/integrations/codex/skills/maestro-update/SKILL.md +31 -0
- package/integrations/cursor/commands/frontier.md +63 -63
- package/integrations/cursor/commands/update.md +34 -34
- package/integrations/gemini/commands/frontier.toml +76 -76
- package/integrations/windsurf/workflows/frontier.md +70 -70
- package/package.json +58 -55
- package/scripts/install.cjs +1014 -605
- package/settings/cli.cjs +140 -140
- package/settings/config.cjs +309 -309
- package/skills/maestro-frontier/SKILL.md +122 -0
- package/skills/maestro-settings/SKILL.md +55 -0
- package/skills/maestro-terse/SKILL.md +58 -0
- package/skills/maestro-update/SKILL.md +31 -0
- package/skills/terse/SKILL.md +74 -0
- package/integrations/codex/skills/frontier/SKILL.md +0 -91
- package/integrations/codex/skills/update/SKILL.md +0 -29
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: maestro-frontier
|
|
3
|
+
description: Maestro Frontier local multi-CLI fusion engine - arm, disarm, inspect, or debug-run the panel
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
Drive the **Maestro Frontier** engine: a zero-dependency local multi-CLI fusion
|
|
7
|
+
engine where a parallel panel of local CLIs feeds a judge model's analysis and a
|
|
8
|
+
grounded synthesis.
|
|
9
|
+
|
|
10
|
+
When the Maestro Codex plugin hook is installed, enabled, and trusted, arming a
|
|
11
|
+
non-`off` mode makes normal later Codex prompts auto-run through Frontier until
|
|
12
|
+
you turn it off. Users should not need to type `maestro frontier run "<prompt>"`
|
|
13
|
+
for normal use.
|
|
14
|
+
|
|
15
|
+
Map the user's request to one engine CLI call and run it from the repo root.
|
|
16
|
+
Do not edit the engine's state file by hand.
|
|
17
|
+
|
|
18
|
+
## Command launcher
|
|
19
|
+
|
|
20
|
+
Use `maestro` when it is on `PATH`. If it is not, and this skill is loaded
|
|
21
|
+
from the Maestro Codex plugin, locate the plugin root by walking up from this
|
|
22
|
+
`SKILL.md` until `.codex-plugin/plugin.json` is present, then run:
|
|
23
|
+
|
|
24
|
+
```bash
|
|
25
|
+
node "<maestro-plugin-root>/bin/maestro.cjs" frontier ...
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
In the examples below, `maestro frontier ...` means either the bare command or
|
|
29
|
+
that plugin-root `node .../bin/maestro.cjs frontier ...` form.
|
|
30
|
+
|
|
31
|
+
## 1. Switch mode
|
|
32
|
+
|
|
33
|
+
Project/workspace scope is the default recommendation. Use `--scope
|
|
34
|
+
codex-project` from the repository root; the CLI expands it to the same
|
|
35
|
+
`codex-<8hex>` workspace scope the Codex plugin hook resolves from
|
|
36
|
+
`PLUGIN_ROOT` / `PLUGIN_DATA`. Default mode is `off`.
|
|
37
|
+
|
|
38
|
+
```bash
|
|
39
|
+
maestro frontier mode off --scope codex-project
|
|
40
|
+
maestro frontier mode single --model <model> --scope codex-project
|
|
41
|
+
maestro frontier mode fusion --preset chatgpt-duo --scope codex-project
|
|
42
|
+
maestro frontier mode fusion --preset frontier-trio --judge chatgpt --synth chatgpt --scope codex-project
|
|
43
|
+
maestro frontier mode fusion --preset custom --models <a,b,c> --scope codex-project
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
Models: `opus` (Claude Opus 4.8, needs `claude`), `gpt-5.5` (needs `codex`),
|
|
47
|
+
`gemini` (needs `gemini`). Presets: `opus-duo`, `opus-gpt`, `gpt-duo`,
|
|
48
|
+
`frontier-trio`, `custom`. Friendly aliases are accepted: `chatgpt` maps to
|
|
49
|
+
`gpt-5.5`, and `chatgpt-duo` maps to `gpt-duo`.
|
|
50
|
+
|
|
51
|
+
Judge + synth default to Opus except for presets with explicit stage defaults.
|
|
52
|
+
Override them for mixed panels with `--judge <model>` and `--synth <model>`;
|
|
53
|
+
for example, `--judge chatgpt --synth chatgpt`.
|
|
54
|
+
|
|
55
|
+
## 2. Show current mode/preset
|
|
56
|
+
|
|
57
|
+
```bash
|
|
58
|
+
maestro frontier status --scope codex-project
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
If you intentionally want one shared Codex state across unrelated repos, choose
|
|
62
|
+
an explicit global name such as `--scope codex-global`. Do not use global scope
|
|
63
|
+
unless that cross-repo behavior is what you want.
|
|
64
|
+
|
|
65
|
+
## 3. Normal use after arming
|
|
66
|
+
|
|
67
|
+
After mode is non-`off`, type ordinary Codex prompts. The trusted Codex hook
|
|
68
|
+
auto-runs Frontier and injects the synthesized answer as context for the live
|
|
69
|
+
reply. Turn it off with:
|
|
70
|
+
|
|
71
|
+
```bash
|
|
72
|
+
maestro frontier mode off --scope codex-project
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
## 4. Advanced/debug one-off run
|
|
76
|
+
|
|
77
|
+
Manual one-off execution remains available for debugging:
|
|
78
|
+
|
|
79
|
+
```bash
|
|
80
|
+
maestro frontier run "<prompt>" --scope codex-project
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
- `off`: prints a notice, spawns nothing.
|
|
84
|
+
- `single`: dispatches the one selected CLI, prints its answer.
|
|
85
|
+
- `fusion`: runs the panel in parallel, then judge, then synthesizer; prints
|
|
86
|
+
the final answer (a one-line run meta goes to stderr). Report stdout verbatim.
|
|
87
|
+
|
|
88
|
+
On error the engine prints `ERROR [<reason>]: <detail>` to stderr and exits
|
|
89
|
+
non-zero; relay the reason.
|
|
90
|
+
|
|
91
|
+
## Indicator instruction
|
|
92
|
+
|
|
93
|
+
<!-- INDICATOR INSTRUCTION - apply every turn while this skill is active -->
|
|
94
|
+
|
|
95
|
+
Before composing your first reply each turn, run:
|
|
96
|
+
|
|
97
|
+
```bash
|
|
98
|
+
maestro frontier status --scope codex-project
|
|
99
|
+
```
|
|
100
|
+
|
|
101
|
+
Parse the returned JSON `mode` field:
|
|
102
|
+
|
|
103
|
+
- If `mode` is not `off`, make the **first line** of your reply exactly:
|
|
104
|
+
`Maestro Frontier ON (<label>)`
|
|
105
|
+
where `<label>` is formed as follows:
|
|
106
|
+
- single mode -> `single - <model>` (e.g. `single - opus`)
|
|
107
|
+
- fusion mode -> `fusion - <preset>` (e.g. `fusion - frontier-trio`);
|
|
108
|
+
for a custom preset use `fusion - custom (<model1>, <model2>, ...)`
|
|
109
|
+
- If `mode` is `off`, output no indicator line.
|
|
110
|
+
|
|
111
|
+
<!-- END INDICATOR INSTRUCTION -->
|
|
112
|
+
|
|
113
|
+
## Notes
|
|
114
|
+
|
|
115
|
+
- Real `single`/`fusion` runs spawn local CLIs and cost tokens; `off` is free.
|
|
116
|
+
- The autorun hook no-ops when `FUSION_DEPTH >= 1`, so child `codex`, `claude`,
|
|
117
|
+
and `gemini` panel processes do not recursively run Frontier.
|
|
118
|
+
- Each model's CLI must be on `PATH`, or point at a specific build with
|
|
119
|
+
`MAESTRO_CLAUDE_BIN` / `MAESTRO_CODEX_BIN` / `MAESTRO_GEMINI_BIN`.
|
|
120
|
+
- Requires `node` on `PATH`. The bare `maestro` command is optional when the
|
|
121
|
+
skill is loaded from the Maestro Codex plugin; use the plugin-root launcher
|
|
122
|
+
above.
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: maestro-settings
|
|
3
|
+
description: View and change Maestro toggles (terse, frontier, context-bar) via the settings CLI
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
View or change **Maestro settings** for this project. The settings CLI manages
|
|
7
|
+
the three primary toggles: `terse`, `frontier`, and `context-bar`.
|
|
8
|
+
|
|
9
|
+
When the user invokes this skill, run the settings CLI from the repo root.
|
|
10
|
+
Do not edit settings files by hand.
|
|
11
|
+
|
|
12
|
+
## Command launcher
|
|
13
|
+
|
|
14
|
+
Use `node settings/cli.cjs` when Maestro is installed in the project root. If
|
|
15
|
+
that file is not present and this skill is loaded from the Maestro Codex
|
|
16
|
+
plugin, locate the plugin root by walking up from this `SKILL.md` until
|
|
17
|
+
`.codex-plugin/plugin.json` is present, then run:
|
|
18
|
+
|
|
19
|
+
```bash
|
|
20
|
+
node "<maestro-plugin-root>/settings/cli.cjs" ...
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
## Discover available commands
|
|
24
|
+
|
|
25
|
+
```bash
|
|
26
|
+
node settings/cli.cjs --help
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
If `settings/cli.cjs` is not present, use the plugin-root launcher above.
|
|
30
|
+
|
|
31
|
+
## Common operations
|
|
32
|
+
|
|
33
|
+
List current settings:
|
|
34
|
+
|
|
35
|
+
```bash
|
|
36
|
+
node settings/cli.cjs
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
Set a toggle:
|
|
40
|
+
|
|
41
|
+
```bash
|
|
42
|
+
node settings/cli.cjs terse <off|lite|full|ultra>
|
|
43
|
+
node settings/cli.cjs frontier <off|single|fusion>
|
|
44
|
+
node settings/cli.cjs context-bar <on|off>
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
If a subcommand name or argument differs from the above, follow the usage
|
|
48
|
+
printed by `--help` — do not guess flags.
|
|
49
|
+
|
|
50
|
+
## Notes
|
|
51
|
+
|
|
52
|
+
- Changes persist in Maestro's settings store and apply to subsequent agent
|
|
53
|
+
turns in this project.
|
|
54
|
+
- Requires `node` on `PATH`. A project-local Maestro install is optional when
|
|
55
|
+
the skill is loaded from the Maestro Codex plugin.
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: maestro-terse
|
|
3
|
+
description: Toggle Maestro terse output level (lite, full, ultra, off) via the settings CLI
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
Toggle the **Maestro terse** output level for this environment. Terse mode
|
|
7
|
+
condenses agent replies; levels range from `off` (default verbosity) through
|
|
8
|
+
`lite`, `full`, and `ultra` (most compressed).
|
|
9
|
+
|
|
10
|
+
When the user invokes this skill, run the settings CLI to read or change the
|
|
11
|
+
terse level. Do not edit settings files by hand.
|
|
12
|
+
|
|
13
|
+
## Command launcher
|
|
14
|
+
|
|
15
|
+
Use `node settings/cli.cjs` when Maestro is installed in the project root. If
|
|
16
|
+
that file is not present and this skill is loaded from the Maestro Codex
|
|
17
|
+
plugin, locate the plugin root by walking up from this `SKILL.md` until
|
|
18
|
+
`.codex-plugin/plugin.json` is present, then run:
|
|
19
|
+
|
|
20
|
+
```bash
|
|
21
|
+
node "<maestro-plugin-root>/settings/cli.cjs" ...
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
## Check current terse level
|
|
25
|
+
|
|
26
|
+
```bash
|
|
27
|
+
node settings/cli.cjs --help
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
Consult the help output for the exact read subcommand, then run it. If
|
|
31
|
+
`settings/cli.cjs` is not present, use the plugin-root launcher above.
|
|
32
|
+
|
|
33
|
+
## Set terse level
|
|
34
|
+
|
|
35
|
+
```bash
|
|
36
|
+
node settings/cli.cjs terse <level>
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
Valid levels: `off` | `lite` | `full` | `ultra`
|
|
40
|
+
|
|
41
|
+
Examples:
|
|
42
|
+
|
|
43
|
+
```bash
|
|
44
|
+
node settings/cli.cjs terse off
|
|
45
|
+
node settings/cli.cjs terse lite
|
|
46
|
+
node settings/cli.cjs terse full
|
|
47
|
+
node settings/cli.cjs terse ultra
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
If the CLI rejects an argument or the subcommand name differs, run
|
|
51
|
+
`node settings/cli.cjs --help` first and follow the printed usage.
|
|
52
|
+
|
|
53
|
+
## Notes
|
|
54
|
+
|
|
55
|
+
- The change persists in Maestro's settings store; it applies to subsequent
|
|
56
|
+
agent turns in this project.
|
|
57
|
+
- Requires `node` on `PATH`. A project-local Maestro install is optional when
|
|
58
|
+
the skill is loaded from the Maestro Codex plugin.
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: maestro-update
|
|
3
|
+
description: Update Maestro to the latest marketplace version for Codex
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
Update **Maestro** to the latest Codex marketplace code. This refreshes the
|
|
7
|
+
configured Git marketplace and reinstalls the Maestro plugin from it.
|
|
8
|
+
|
|
9
|
+
When the user invokes this skill, run:
|
|
10
|
+
|
|
11
|
+
```bash
|
|
12
|
+
codex plugin marketplace upgrade maestro
|
|
13
|
+
codex plugin add maestro@maestro
|
|
14
|
+
```
|
|
15
|
+
|
|
16
|
+
The update is idempotent. It will:
|
|
17
|
+
|
|
18
|
+
- Pull the latest Maestro source from the repository.
|
|
19
|
+
- Refresh the installed Maestro plugin cache.
|
|
20
|
+
- Refresh bundled Codex skills and hooks exposed by the plugin.
|
|
21
|
+
- Leave project-local configuration (state files, secrets) untouched.
|
|
22
|
+
|
|
23
|
+
## Notes
|
|
24
|
+
|
|
25
|
+
- Requires the Codex CLI on `PATH`.
|
|
26
|
+
- After reinstalling, restart the Codex session or open a new thread so updated
|
|
27
|
+
skills and hooks take effect.
|
|
28
|
+
- If the marketplace is not configured yet, run
|
|
29
|
+
`codex plugin marketplace add mbanderas/maestro` first.
|
|
30
|
+
- Portable/manual installs can still be refreshed with
|
|
31
|
+
`npx github:mbanderas/maestro install --target codex` from the project root.
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: terse
|
|
3
|
+
description: >
|
|
4
|
+
Token-efficient terse output mode. Cuts output tokens substantially
|
|
5
|
+
while keeping full technical accuracy. Levels: lite, full, ultra.
|
|
6
|
+
Use when the user invokes /maestro:terse, says "terse mode",
|
|
7
|
+
"be brief", or asks for less token usage.
|
|
8
|
+
argument-hint: "[lite|full|ultra|off]"
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
<!-- Ported from the Caveman skill (MIT,
|
|
12
|
+
github.com/JuliusBrussee/caveman) with attribution. Wenyan
|
|
13
|
+
levels and the commit/review sub-modes are intentionally dropped:
|
|
14
|
+
AGENTS.md S7.7 already covers terse commits/reviews — redundancy is
|
|
15
|
+
token cost. This file is the single source of truth for terse-mode
|
|
16
|
+
behavior; hooks/maestro-terse-mode.cjs reads and level-filters it at
|
|
17
|
+
SessionStart. Keep the table-row and example-line formats intact:
|
|
18
|
+
the hook filters on `| **level** |` and `- level:` prefixes. -->
|
|
19
|
+
|
|
20
|
+
Respond terse. All technical substance stay. Only fluff die.
|
|
21
|
+
|
|
22
|
+
## Persistence
|
|
23
|
+
|
|
24
|
+
ACTIVE EVERY RESPONSE. No revert after many turns. No filler drift. Still active if unsure. Off only: "stop terse" / "normal mode" / `/maestro:terse off`.
|
|
25
|
+
|
|
26
|
+
Switch: `/maestro:terse lite|full|ultra|off`.
|
|
27
|
+
|
|
28
|
+
Permanent default: set `{"terseLevel": "<level>"}` in the config file
|
|
29
|
+
(`%APPDATA%\maestro\config.json` on Windows;
|
|
30
|
+
`$XDG_CONFIG_HOME/maestro/config.json` or `~/.config/maestro/config.json`
|
|
31
|
+
on macOS/Linux). `MAESTRO_TERSE_LEVEL` env var overrides the file. The
|
|
32
|
+
file is never created automatically — off until it exists.
|
|
33
|
+
|
|
34
|
+
## Rules
|
|
35
|
+
|
|
36
|
+
Drop: articles (a/an/the), filler (just/really/basically/actually/simply), pleasantries (sure/certainly/of course/happy to), hedging. Fragments OK. Short synonyms (big not extensive, fix not "implement a solution for"). Technical terms exact. Code blocks unchanged. Errors quoted exact.
|
|
37
|
+
|
|
38
|
+
Pattern: `[thing] [action] [reason]. [next step].`
|
|
39
|
+
|
|
40
|
+
Not: "Sure! I'd be happy to help you with that. The issue you're experiencing is likely caused by..."
|
|
41
|
+
Yes: "Bug in auth middleware. Token expiry check use `<` not `<=`. Fix:"
|
|
42
|
+
|
|
43
|
+
## Intensity
|
|
44
|
+
|
|
45
|
+
| Level | What change |
|
|
46
|
+
|-------|------------|
|
|
47
|
+
| **lite** | No filler/hedging. Keep articles + full sentences. Professional but tight |
|
|
48
|
+
| **full** | Drop articles, fragments OK, short synonyms. Classic terse |
|
|
49
|
+
| **ultra** | Abbreviate (DB/auth/config/req/res/fn/impl), strip conjunctions, arrows for causality (X → Y), one word when one word enough |
|
|
50
|
+
|
|
51
|
+
Example — "Why React component re-render?"
|
|
52
|
+
- lite: "Your component re-renders because you create a new object reference each render. Wrap it in `useMemo`."
|
|
53
|
+
- full: "New object ref each render. Inline object prop = new ref = re-render. Wrap in `useMemo`."
|
|
54
|
+
- ultra: "Inline obj prop → new ref → re-render. `useMemo`."
|
|
55
|
+
|
|
56
|
+
Example — "Explain database connection pooling."
|
|
57
|
+
- lite: "Connection pooling reuses open connections instead of creating new ones per request. Avoids repeated handshake overhead."
|
|
58
|
+
- full: "Pool reuse open DB connections. No new connection per request. Skip handshake overhead."
|
|
59
|
+
- ultra: "Pool = reuse DB conn. Skip handshake → fast under load."
|
|
60
|
+
|
|
61
|
+
## Auto-Clarity
|
|
62
|
+
|
|
63
|
+
Drop terse for: security warnings, irreversible action confirmations, multi-step sequences where fragment order risks misread, user asks to clarify or repeats question. Resume terse after clear part done.
|
|
64
|
+
|
|
65
|
+
Example — destructive op:
|
|
66
|
+
> **Warning:** This will permanently delete all rows in the `users` table and cannot be undone.
|
|
67
|
+
> ```sql
|
|
68
|
+
> DROP TABLE users;
|
|
69
|
+
> ```
|
|
70
|
+
> Terse resume. Verify backup exist first.
|
|
71
|
+
|
|
72
|
+
## Boundaries
|
|
73
|
+
|
|
74
|
+
Code/commits/PRs: write normal. "stop terse" or "normal mode": revert. Level persist until changed or session end.
|
|
@@ -1,91 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: frontier
|
|
3
|
-
description: Maestro Frontier local multi-CLI fusion engine — switch mode, or run a prompt through the panel
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
Drive the **Maestro Frontier** engine — a zero-dependency local multi-CLI fusion
|
|
7
|
-
engine (a parallel panel of local CLIs → a judge model's analysis → a grounded
|
|
8
|
-
synthesis). It is the same engine the Claude Code plugin ships; here it runs
|
|
9
|
-
through the `maestro` CLI with `--scope codex`.
|
|
10
|
-
|
|
11
|
-
**This is a typing shortcut, not a prompt hook.** Codex has no automatic
|
|
12
|
-
prompt hook, so arming a mode does **not** auto-run the engine on later prompts —
|
|
13
|
-
it only persists the mode. To actually fuse a prompt, invoke `run` explicitly
|
|
14
|
-
(step 3).
|
|
15
|
-
|
|
16
|
-
Map the user's request to one engine CLI call and run it from the repo root.
|
|
17
|
-
Do not edit the engine's state file by hand.
|
|
18
|
-
|
|
19
|
-
## 1. Switch mode
|
|
20
|
-
|
|
21
|
-
Persists to `~/.config/maestro/frontier-state.codex.json`; default `off`.
|
|
22
|
-
`--scope codex` keeps Codex's armed mode independent from Claude Code, Cline,
|
|
23
|
-
Cursor, and Gemini on the same machine:
|
|
24
|
-
|
|
25
|
-
```bash
|
|
26
|
-
maestro frontier mode off --scope codex
|
|
27
|
-
maestro frontier mode single --model <model> --scope codex
|
|
28
|
-
maestro frontier mode fusion --preset <preset> --scope codex
|
|
29
|
-
maestro frontier mode fusion --preset custom --models <a,b,c> --scope codex
|
|
30
|
-
maestro frontier mode fusion --preset <preset> --judge <model> --synth <model> --scope codex
|
|
31
|
-
```
|
|
32
|
-
|
|
33
|
-
Models: `opus` (Claude Opus 4.8, needs `claude`), `gpt-5.5` (needs `codex`),
|
|
34
|
-
`gemini` (needs `gemini`). Presets: `opus-duo`, `opus-gpt`, `gpt-duo`,
|
|
35
|
-
`frontier-trio`, `custom`. Judge + synth default to Opus; `--judge`/`--synth`
|
|
36
|
-
override for any preset (e.g. `--judge opus --synth gpt-5.5`). `gpt-duo` runs
|
|
37
|
-
judge + synth on GPT-5.5 — a Codex-only fusion that needs no `claude`.
|
|
38
|
-
|
|
39
|
-
## 2. Show current mode/preset
|
|
40
|
-
|
|
41
|
-
```bash
|
|
42
|
-
maestro frontier status --scope codex
|
|
43
|
-
```
|
|
44
|
-
|
|
45
|
-
## 3. Run a prompt through the current mode
|
|
46
|
-
|
|
47
|
-
This is the action that actually fuses, since nothing auto-runs here. Set a
|
|
48
|
-
mode first (step 1), then:
|
|
49
|
-
|
|
50
|
-
```bash
|
|
51
|
-
maestro frontier run "<prompt>" --scope codex
|
|
52
|
-
```
|
|
53
|
-
|
|
54
|
-
- `off`: prints a notice, spawns nothing.
|
|
55
|
-
- `single`: dispatches the one selected CLI, prints its answer.
|
|
56
|
-
- `fusion`: runs the panel in parallel → judge → synthesizer; prints the final
|
|
57
|
-
answer (a one-line run meta goes to stderr). Report stdout verbatim.
|
|
58
|
-
|
|
59
|
-
On error the engine prints `ERROR [<reason>]: <detail>` to stderr and exits
|
|
60
|
-
non-zero — relay the reason.
|
|
61
|
-
|
|
62
|
-
## Indicator instruction
|
|
63
|
-
|
|
64
|
-
<!-- INDICATOR INSTRUCTION — apply every turn while this skill is active -->
|
|
65
|
-
|
|
66
|
-
Before composing your first reply each turn, run:
|
|
67
|
-
|
|
68
|
-
```bash
|
|
69
|
-
maestro frontier status --scope codex
|
|
70
|
-
```
|
|
71
|
-
|
|
72
|
-
Parse the returned JSON `mode` field:
|
|
73
|
-
|
|
74
|
-
- If `mode` is not `off`, make the **first line** of your reply exactly:
|
|
75
|
-
`Maestro Frontier ON (<label>)`
|
|
76
|
-
where `<label>` is formed as follows:
|
|
77
|
-
- single mode → `single · <model>` (e.g. `single · opus`)
|
|
78
|
-
- fusion mode → `fusion · <preset>` (e.g. `fusion · frontier-trio`);
|
|
79
|
-
for a custom preset use `fusion · custom (<model1>, <model2>, ...)`
|
|
80
|
-
- If `mode` is `off`, output no indicator line.
|
|
81
|
-
|
|
82
|
-
<!-- END INDICATOR INSTRUCTION -->
|
|
83
|
-
|
|
84
|
-
## Notes
|
|
85
|
-
|
|
86
|
-
- Real `single`/`fusion` runs spawn local CLIs and cost tokens; use small prompts.
|
|
87
|
-
`off` is free.
|
|
88
|
-
- Each model's CLI must be on `PATH`, or point at a specific build with
|
|
89
|
-
`MAESTRO_CLAUDE_BIN` / `MAESTRO_CODEX_BIN` / `MAESTRO_GEMINI_BIN`.
|
|
90
|
-
- Requires `maestro` on `PATH` (installed during Maestro setup). If it is
|
|
91
|
-
missing, install Maestro first.
|
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: update
|
|
3
|
-
description: Update Maestro to the latest version by re-running the installer for Codex
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
Update **Maestro** to the latest marketplace code. This re-runs the installer,
|
|
7
|
-
which pulls the current release and overwrites the local Maestro files in place.
|
|
8
|
-
|
|
9
|
-
When the user invokes this skill, run the installer from the repo root:
|
|
10
|
-
|
|
11
|
-
```bash
|
|
12
|
-
npx github:mbanderas/maestro install --target codex
|
|
13
|
-
```
|
|
14
|
-
|
|
15
|
-
The installer is idempotent — it is safe to re-run against an existing
|
|
16
|
-
installation. It will:
|
|
17
|
-
|
|
18
|
-
- Pull the latest Maestro source from the repository.
|
|
19
|
-
- Overwrite skills, hooks, and settings scaffolding with the new versions.
|
|
20
|
-
- Leave project-local configuration (state files, secrets) untouched.
|
|
21
|
-
|
|
22
|
-
## Notes
|
|
23
|
-
|
|
24
|
-
- Requires `node` and `npx` on `PATH`.
|
|
25
|
-
- Run from the project root so the installer targets the correct directory.
|
|
26
|
-
- After the installer completes, restart the Codex session (or reload the
|
|
27
|
-
project) so updated skills and hooks take effect.
|
|
28
|
-
- If `npx` is unavailable, clone `https://github.com/mbanderas/maestro`
|
|
29
|
-
manually and follow the repository's install instructions.
|