@maestrofrontier/frontier 1.4.5 → 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.
Files changed (50) hide show
  1. package/.agents/plugins/marketplace.json +21 -21
  2. package/.codex-plugin/plugin.json +29 -29
  3. package/.cursorrules +197 -194
  4. package/AGENTS.md +3 -3
  5. package/README.md +368 -368
  6. package/bin/maestro.cjs +75 -75
  7. package/commands/compress.md +36 -36
  8. package/commands/frontier.md +124 -124
  9. package/commands/terse.md +23 -23
  10. package/docs/codex.md +167 -167
  11. package/docs/orchestration.md +168 -168
  12. package/frontier/cli.cjs +279 -252
  13. package/frontier/config.cjs +468 -468
  14. package/frontier/dispatch.cjs +267 -255
  15. package/frontier/judge.cjs +92 -92
  16. package/frontier/run.cjs +201 -180
  17. package/frontier/schema.cjs +112 -112
  18. package/frontier/semaphore.cjs +49 -49
  19. package/frontier/synthesize.cjs +79 -79
  20. package/hooks/frontier-autorun.cjs +127 -120
  21. package/hooks/hooks.json +103 -103
  22. package/hooks/maestro-doctrine-guard.cjs +81 -81
  23. package/hooks/maestro-gate-reminder.cjs +22 -7
  24. package/hooks/maestro-gate-telemetry.cjs +79 -77
  25. package/hooks/maestro-phase-scope.cjs +118 -118
  26. package/hooks/maestro-statusline-sync.cjs +152 -152
  27. package/hooks/maestro-subagent-guard.cjs +148 -148
  28. package/hooks/maestro-terse-mode.cjs +189 -189
  29. package/hooks/maestro-toolbudget-advisory.cjs +127 -127
  30. package/integrations/README.md +111 -111
  31. package/integrations/cline/skills/frontier/SKILL.md +75 -75
  32. package/integrations/codex/prompts/frontier.md +70 -70
  33. package/integrations/codex/prompts/update.md +39 -39
  34. package/integrations/codex/skills/maestro-frontier/SKILL.md +122 -122
  35. package/integrations/codex/skills/maestro-settings/SKILL.md +55 -55
  36. package/integrations/codex/skills/maestro-terse/SKILL.md +58 -58
  37. package/integrations/codex/skills/maestro-update/SKILL.md +31 -31
  38. package/integrations/cursor/commands/frontier.md +63 -63
  39. package/integrations/cursor/commands/update.md +34 -34
  40. package/integrations/gemini/commands/frontier.toml +76 -76
  41. package/integrations/windsurf/workflows/frontier.md +70 -70
  42. package/package.json +58 -58
  43. package/scripts/install.cjs +1014 -1014
  44. package/settings/cli.cjs +140 -140
  45. package/settings/config.cjs +309 -309
  46. package/skills/maestro-frontier/SKILL.md +122 -122
  47. package/skills/maestro-settings/SKILL.md +55 -55
  48. package/skills/maestro-terse/SKILL.md +58 -58
  49. package/skills/maestro-update/SKILL.md +31 -31
  50. package/skills/terse/SKILL.md +74 -74
@@ -1,122 +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.
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.
@@ -1,55 +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.
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.
@@ -1,58 +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.
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.
@@ -1,31 +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.
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.