@maestrofrontier/frontier 1.4.5 → 1.6.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 (51) 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/progress.cjs +138 -0
  17. package/frontier/run.cjs +201 -180
  18. package/frontier/schema.cjs +112 -112
  19. package/frontier/semaphore.cjs +49 -49
  20. package/frontier/synthesize.cjs +79 -79
  21. package/hooks/frontier-autorun.cjs +135 -120
  22. package/hooks/hooks.json +103 -103
  23. package/hooks/maestro-doctrine-guard.cjs +81 -81
  24. package/hooks/maestro-gate-reminder.cjs +22 -7
  25. package/hooks/maestro-gate-telemetry.cjs +79 -77
  26. package/hooks/maestro-phase-scope.cjs +118 -118
  27. package/hooks/maestro-statusline-sync.cjs +152 -152
  28. package/hooks/maestro-subagent-guard.cjs +148 -148
  29. package/hooks/maestro-terse-mode.cjs +189 -189
  30. package/hooks/maestro-toolbudget-advisory.cjs +127 -127
  31. package/integrations/README.md +111 -111
  32. package/integrations/cline/skills/frontier/SKILL.md +75 -75
  33. package/integrations/codex/prompts/frontier.md +70 -70
  34. package/integrations/codex/prompts/update.md +39 -39
  35. package/integrations/codex/skills/maestro-frontier/SKILL.md +122 -122
  36. package/integrations/codex/skills/maestro-settings/SKILL.md +55 -55
  37. package/integrations/codex/skills/maestro-terse/SKILL.md +58 -58
  38. package/integrations/codex/skills/maestro-update/SKILL.md +31 -31
  39. package/integrations/cursor/commands/frontier.md +63 -63
  40. package/integrations/cursor/commands/update.md +34 -34
  41. package/integrations/gemini/commands/frontier.toml +76 -76
  42. package/integrations/windsurf/workflows/frontier.md +70 -70
  43. package/package.json +59 -58
  44. package/scripts/install.cjs +1014 -1014
  45. package/settings/cli.cjs +140 -140
  46. package/settings/config.cjs +309 -309
  47. package/skills/maestro-frontier/SKILL.md +122 -122
  48. package/skills/maestro-settings/SKILL.md +55 -55
  49. package/skills/maestro-terse/SKILL.md +58 -58
  50. package/skills/maestro-update/SKILL.md +31 -31
  51. package/skills/terse/SKILL.md +74 -74
package/docs/codex.md CHANGED
@@ -1,167 +1,167 @@
1
- # Maestro on Codex
2
-
3
- Codex reads `AGENTS.md` natively, no adapter file needed. This page
4
- maps Maestro's concepts onto Codex specifics. All behavior below was
5
- verified against the official Codex docs
6
- ([AGENTS.md guide](https://developers.openai.com/codex/guides/agents-md),
7
- [config reference](https://developers.openai.com/codex/config-reference#configtoml),
8
- [plugin-bundled hooks](https://developers.openai.com/codex/hooks#plugin-bundled-hooks),
9
- [Automations](https://developers.openai.com/codex/app/automations.md),
10
- [Subagents](https://developers.openai.com/codex/subagents.md))
11
- on 2026-06-12.
12
-
13
- ## AGENTS.md semantics
14
-
15
- Codex discovers instruction files in this order:
16
-
17
- 1. **Global:** `~/.codex/AGENTS.override.md` if present, else
18
- `~/.codex/AGENTS.md`.
19
- 2. **Project:** walking from the Git root down to the current working
20
- directory, checking each level for `AGENTS.override.md`, then
21
- `AGENTS.md`.
22
-
23
- Files are concatenated root-down with blank lines between them; files
24
- closer to your current directory appear later in the combined prompt
25
- and therefore override earlier guidance. Codex skips empty files,
26
- discovers once per run, and stops adding files once the combined set
27
- hits `project_doc_max_bytes` (32 KiB by default).
28
-
29
- Practical consequences for Maestro:
30
-
31
- - **Placement:** put Maestro's `AGENTS.md` at the repository root. If
32
- you already have a project `AGENTS.md`, append Maestro's content to
33
- it (Codex concatenates by directory level, not by file).
34
- - **Budget:** Maestro's always-on kernel is ~8 KB, a quarter of the
35
- default 32 KiB cap, leaving room for your project instructions
36
- (the full S2-S6 protocol lives in `docs/orchestration.md`, read on
37
- demand). If you layer nested `AGENTS.md` files, watch the cap:
38
- Codex silently stops adding files beyond it.
39
- - **Global install:** putting Maestro in `~/.codex/AGENTS.md` applies
40
- the doctrine to every project; per-repo files then layer on top and
41
- win where they conflict.
42
-
43
- ## Config, hooks, and trust
44
-
45
- Codex user config lives at `~/.codex/config.toml`. Project overrides can
46
- live in `.codex/config.toml`, but Codex loads project-local config,
47
- hooks, and rules only for trusted projects. Untrusted projects skip
48
- those local surfaces.
49
-
50
- Codex also supports plugin-bundled lifecycle hooks. Enabled plugins can
51
- ship hooks alongside user, project, and managed hooks; the default plugin
52
- hook file is `hooks/hooks.json`, and manifests can reference `./` paths
53
- or inline hook definitions. Treat plugin hooks as executable code:
54
- review and trust the plugin before enabling them. Codex sets
55
- `PLUGIN_ROOT` and `PLUGIN_DATA` for plugin hooks, and also sets
56
- `CLAUDE_PLUGIN_ROOT` and `CLAUDE_PLUGIN_DATA` for compatibility.
57
-
58
- For Codex CLI/Desktop, install Maestro as a native Codex plugin:
59
-
60
- ```text
61
- codex plugin marketplace add mbanderas/maestro
62
- codex plugin add maestro@maestro
63
- ```
64
-
65
- The repo is a Codex marketplace because it ships
66
- `.agents/plugins/marketplace.json`; the plugin itself is described by
67
- `.codex-plugin/plugin.json`. That manifest points at the plugin-bundled Codex
68
- skills (`./skills/`); the hook bundle lives at Codex's default plugin hook path
69
- `./hooks/hooks.json`, so Codex can install the plugin without `npx`. Restart
70
- Codex or start a new thread after changing plugin installation/trust state,
71
- then review and trust the bundled hooks before expecting autorun.
72
-
73
- `maestro install --target codex` remains as a portable/manual fallback when
74
- you specifically want to copy files into a project instead of installing the
75
- Codex plugin.
76
-
77
- ## Multi-agent routing (S2-S6 mapping)
78
-
79
- Codex supports subagent workflows in the CLI and app, but current Codex
80
- docs specify that subagents spawn only when the user explicitly asks for
81
- them. Practical mapping for Maestro:
82
-
83
- - If the user did **not** explicitly ask for subagents, parallel
84
- agents, or delegation, emit the counted S1 verdict and continue
85
- single-agent even when the portable gate would otherwise route to
86
- S2-S6.
87
- - If the user explicitly asked for subagents/parallel work and the S1
88
- gate returns multi-agent, map Maestro's Planner, Specialists, and
89
- Staff Engineer to Codex subagents. Keep specialist prompts scoped and
90
- cap parallel groups at 4 as usual.
91
- - Claude Code agent teams do not transfer to Codex. Codex subagents are
92
- the only Codex-native mapping for Maestro specialists.
93
-
94
- ## Long-horizon operation (S10 mapping)
95
-
96
- Claude Code maps S10 to `/loop`, `/schedule`, and `ScheduleWakeup`.
97
- The Codex analog is **Automations** (Codex app, automations pane):
98
- recurring prompts that run in the background on minute-based, daily,
99
- weekly, or cron schedules.
100
-
101
- | Maestro S10 concept | Codex mechanism |
102
- |---|---|
103
- | Self-paced session loop | **Thread automations**, heartbeat-style recurring wake-up calls attached to the current thread, preserving conversation context |
104
- | Durable scheduled routine | **Standalone/project automations**, independent runs; findings land in the Triage inbox (auto-archived when there is nothing to report) |
105
- | Checkpoint artifact | Same convention: one `_<task>.md` in the repo root (gitignore `_*`), read first on every run, holding phase status, findings with sources, decisions with rationale |
106
- | Scripted/CI iteration | `codex exec "<prompt>"` non-interactive runs |
107
-
108
- S10 rules apply unchanged: hard caps on iterations, completion criteria
109
- declared up front, externalized state (the thread is not durable
110
- memory), and an explicit final report instead of a zombie loop. For
111
- project-scoped automations note the Codex requirement that the local
112
- app is running and the project is on disk.
113
-
114
- ## Frontier autorun and scope
115
-
116
- Frontier is off until you arm it. For Codex, the normal workflow is:
117
-
118
- ```text
119
- maestro frontier mode fusion --preset chatgpt-duo --scope codex-project
120
- maestro frontier mode fusion --preset frontier-trio --judge chatgpt --synth chatgpt --scope codex-project
121
- maestro frontier mode off --scope codex-project
122
- ```
123
-
124
- Once the Maestro Codex plugin hook is installed, enabled, and trusted,
125
- normal Codex prompts route through Frontier until you turn it off.
126
- `maestro frontier run "<prompt>" ...` remains available for advanced/debug
127
- one-offs, but it is not the everyday Codex flow.
128
-
129
- Project/workspace scope is the recommended default for repo installs:
130
- it keeps one repository's armed state from leaking into another. In a
131
- Codex plugin context Maestro resolves this automatically to a
132
- `codex-<8hex>` workspace scope. From a shell in the repo, pass
133
- `--scope codex-project` (or `codex-workspace`) to resolve the same project
134
- scope. Global/user scope is optional: choose an explicit name such as
135
- `--scope codex-global` only when you deliberately want the same state across
136
- projects.
137
-
138
- Use the same active scope for all lifecycle commands:
139
-
140
- ```text
141
- maestro frontier status --scope codex-project
142
- maestro frontier mode off --scope codex-project
143
- maestro frontier mode fusion --preset chatgpt-duo --scope codex-project
144
- maestro frontier mode fusion --preset frontier-trio --judge chatgpt --synth chatgpt --scope codex-project
145
- ```
146
-
147
- ## What differs from Claude Code
148
-
149
- Claude Code-specific UI such as the Maestro context bar does not apply:
150
- Codex CLI ships a native
151
- context-usage indicator (`/statusline` picker, or `context` in
152
- `[tui].status_line` in `~/.codex/config.toml`).
153
-
154
- ## Skills and the Frontier ON indicator
155
-
156
- Codex skills can live in personal `$HOME/.agents/skills`, repo
157
- `.agents/skills`, or installed plugins. The normal Codex path is the Maestro
158
- plugin, which bundles `maestro-frontier`, `maestro-settings`, `maestro-terse`,
159
- and `maestro-update` from `./skills/`. The portable
160
- `maestro install --target codex` fallback still installs those same skills to
161
- `.agents/skills/<name>/SKILL.md` for project installs or
162
- `~/.agents/skills/<name>/SKILL.md` for global/user installs.
163
-
164
- When `maestro frontier status --scope codex-project` reports mode != off,
165
- the `maestro-frontier` skill instructs Codex to lead its reply with
166
- `Maestro Frontier ON (<label>)` — `single · <model>` or `fusion · <preset>`. When
167
- mode is off, no indicator line appears.
1
+ # Maestro on Codex
2
+
3
+ Codex reads `AGENTS.md` natively, no adapter file needed. This page
4
+ maps Maestro's concepts onto Codex specifics. All behavior below was
5
+ verified against the official Codex docs
6
+ ([AGENTS.md guide](https://developers.openai.com/codex/guides/agents-md),
7
+ [config reference](https://developers.openai.com/codex/config-reference#configtoml),
8
+ [plugin-bundled hooks](https://developers.openai.com/codex/hooks#plugin-bundled-hooks),
9
+ [Automations](https://developers.openai.com/codex/app/automations.md),
10
+ [Subagents](https://developers.openai.com/codex/subagents.md))
11
+ on 2026-06-12.
12
+
13
+ ## AGENTS.md semantics
14
+
15
+ Codex discovers instruction files in this order:
16
+
17
+ 1. **Global:** `~/.codex/AGENTS.override.md` if present, else
18
+ `~/.codex/AGENTS.md`.
19
+ 2. **Project:** walking from the Git root down to the current working
20
+ directory, checking each level for `AGENTS.override.md`, then
21
+ `AGENTS.md`.
22
+
23
+ Files are concatenated root-down with blank lines between them; files
24
+ closer to your current directory appear later in the combined prompt
25
+ and therefore override earlier guidance. Codex skips empty files,
26
+ discovers once per run, and stops adding files once the combined set
27
+ hits `project_doc_max_bytes` (32 KiB by default).
28
+
29
+ Practical consequences for Maestro:
30
+
31
+ - **Placement:** put Maestro's `AGENTS.md` at the repository root. If
32
+ you already have a project `AGENTS.md`, append Maestro's content to
33
+ it (Codex concatenates by directory level, not by file).
34
+ - **Budget:** Maestro's always-on kernel is ~8 KB, a quarter of the
35
+ default 32 KiB cap, leaving room for your project instructions
36
+ (the full S2-S6 protocol lives in `docs/orchestration.md`, read on
37
+ demand). If you layer nested `AGENTS.md` files, watch the cap:
38
+ Codex silently stops adding files beyond it.
39
+ - **Global install:** putting Maestro in `~/.codex/AGENTS.md` applies
40
+ the doctrine to every project; per-repo files then layer on top and
41
+ win where they conflict.
42
+
43
+ ## Config, hooks, and trust
44
+
45
+ Codex user config lives at `~/.codex/config.toml`. Project overrides can
46
+ live in `.codex/config.toml`, but Codex loads project-local config,
47
+ hooks, and rules only for trusted projects. Untrusted projects skip
48
+ those local surfaces.
49
+
50
+ Codex also supports plugin-bundled lifecycle hooks. Enabled plugins can
51
+ ship hooks alongside user, project, and managed hooks; the default plugin
52
+ hook file is `hooks/hooks.json`, and manifests can reference `./` paths
53
+ or inline hook definitions. Treat plugin hooks as executable code:
54
+ review and trust the plugin before enabling them. Codex sets
55
+ `PLUGIN_ROOT` and `PLUGIN_DATA` for plugin hooks, and also sets
56
+ `CLAUDE_PLUGIN_ROOT` and `CLAUDE_PLUGIN_DATA` for compatibility.
57
+
58
+ For Codex CLI/Desktop, install Maestro as a native Codex plugin:
59
+
60
+ ```text
61
+ codex plugin marketplace add mbanderas/maestro
62
+ codex plugin add maestro@maestro
63
+ ```
64
+
65
+ The repo is a Codex marketplace because it ships
66
+ `.agents/plugins/marketplace.json`; the plugin itself is described by
67
+ `.codex-plugin/plugin.json`. That manifest points at the plugin-bundled Codex
68
+ skills (`./skills/`); the hook bundle lives at Codex's default plugin hook path
69
+ `./hooks/hooks.json`, so Codex can install the plugin without `npx`. Restart
70
+ Codex or start a new thread after changing plugin installation/trust state,
71
+ then review and trust the bundled hooks before expecting autorun.
72
+
73
+ `maestro install --target codex` remains as a portable/manual fallback when
74
+ you specifically want to copy files into a project instead of installing the
75
+ Codex plugin.
76
+
77
+ ## Multi-agent routing (S2-S6 mapping)
78
+
79
+ Codex supports subagent workflows in the CLI and app, but current Codex
80
+ docs specify that subagents spawn only when the user explicitly asks for
81
+ them. Practical mapping for Maestro:
82
+
83
+ - If the user did **not** explicitly ask for subagents, parallel
84
+ agents, or delegation, emit the counted S1 verdict and continue
85
+ single-agent even when the portable gate would otherwise route to
86
+ S2-S6.
87
+ - If the user explicitly asked for subagents/parallel work and the S1
88
+ gate returns multi-agent, map Maestro's Planner, Specialists, and
89
+ Staff Engineer to Codex subagents. Keep specialist prompts scoped and
90
+ cap parallel groups at 4 as usual.
91
+ - Claude Code agent teams do not transfer to Codex. Codex subagents are
92
+ the only Codex-native mapping for Maestro specialists.
93
+
94
+ ## Long-horizon operation (S10 mapping)
95
+
96
+ Claude Code maps S10 to `/loop`, `/schedule`, and `ScheduleWakeup`.
97
+ The Codex analog is **Automations** (Codex app, automations pane):
98
+ recurring prompts that run in the background on minute-based, daily,
99
+ weekly, or cron schedules.
100
+
101
+ | Maestro S10 concept | Codex mechanism |
102
+ |---|---|
103
+ | Self-paced session loop | **Thread automations**, heartbeat-style recurring wake-up calls attached to the current thread, preserving conversation context |
104
+ | Durable scheduled routine | **Standalone/project automations**, independent runs; findings land in the Triage inbox (auto-archived when there is nothing to report) |
105
+ | Checkpoint artifact | Same convention: one `_<task>.md` in the repo root (gitignore `_*`), read first on every run, holding phase status, findings with sources, decisions with rationale |
106
+ | Scripted/CI iteration | `codex exec "<prompt>"` non-interactive runs |
107
+
108
+ S10 rules apply unchanged: hard caps on iterations, completion criteria
109
+ declared up front, externalized state (the thread is not durable
110
+ memory), and an explicit final report instead of a zombie loop. For
111
+ project-scoped automations note the Codex requirement that the local
112
+ app is running and the project is on disk.
113
+
114
+ ## Frontier autorun and scope
115
+
116
+ Frontier is off until you arm it. For Codex, the normal workflow is:
117
+
118
+ ```text
119
+ maestro frontier mode fusion --preset chatgpt-duo --scope codex-project
120
+ maestro frontier mode fusion --preset frontier-trio --judge chatgpt --synth chatgpt --scope codex-project
121
+ maestro frontier mode off --scope codex-project
122
+ ```
123
+
124
+ Once the Maestro Codex plugin hook is installed, enabled, and trusted,
125
+ normal Codex prompts route through Frontier until you turn it off.
126
+ `maestro frontier run "<prompt>" ...` remains available for advanced/debug
127
+ one-offs, but it is not the everyday Codex flow.
128
+
129
+ Project/workspace scope is the recommended default for repo installs:
130
+ it keeps one repository's armed state from leaking into another. In a
131
+ Codex plugin context Maestro resolves this automatically to a
132
+ `codex-<8hex>` workspace scope. From a shell in the repo, pass
133
+ `--scope codex-project` (or `codex-workspace`) to resolve the same project
134
+ scope. Global/user scope is optional: choose an explicit name such as
135
+ `--scope codex-global` only when you deliberately want the same state across
136
+ projects.
137
+
138
+ Use the same active scope for all lifecycle commands:
139
+
140
+ ```text
141
+ maestro frontier status --scope codex-project
142
+ maestro frontier mode off --scope codex-project
143
+ maestro frontier mode fusion --preset chatgpt-duo --scope codex-project
144
+ maestro frontier mode fusion --preset frontier-trio --judge chatgpt --synth chatgpt --scope codex-project
145
+ ```
146
+
147
+ ## What differs from Claude Code
148
+
149
+ Claude Code-specific UI such as the Maestro context bar does not apply:
150
+ Codex CLI ships a native
151
+ context-usage indicator (`/statusline` picker, or `context` in
152
+ `[tui].status_line` in `~/.codex/config.toml`).
153
+
154
+ ## Skills and the Frontier ON indicator
155
+
156
+ Codex skills can live in personal `$HOME/.agents/skills`, repo
157
+ `.agents/skills`, or installed plugins. The normal Codex path is the Maestro
158
+ plugin, which bundles `maestro-frontier`, `maestro-settings`, `maestro-terse`,
159
+ and `maestro-update` from `./skills/`. The portable
160
+ `maestro install --target codex` fallback still installs those same skills to
161
+ `.agents/skills/<name>/SKILL.md` for project installs or
162
+ `~/.agents/skills/<name>/SKILL.md` for global/user installs.
163
+
164
+ When `maestro frontier status --scope codex-project` reports mode != off,
165
+ the `maestro-frontier` skill instructs Codex to lead its reply with
166
+ `Maestro Frontier ON (<label>)` — `single · <model>` or `fusion · <preset>`. When
167
+ mode is off, no indicator line appears.