oh-my-codex 0.18.8 → 0.18.10
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/Cargo.lock +12 -12
- package/Cargo.toml +1 -1
- package/README.md +4 -0
- package/dist/autopilot/__tests__/deep-interview-gate.test.d.ts +2 -0
- package/dist/autopilot/__tests__/deep-interview-gate.test.d.ts.map +1 -0
- package/dist/autopilot/__tests__/deep-interview-gate.test.js +215 -0
- package/dist/autopilot/__tests__/deep-interview-gate.test.js.map +1 -0
- package/dist/autopilot/__tests__/fsm.test.js +3 -0
- package/dist/autopilot/__tests__/fsm.test.js.map +1 -1
- package/dist/autopilot/__tests__/ralplan-gate.test.js +148 -0
- package/dist/autopilot/__tests__/ralplan-gate.test.js.map +1 -1
- package/dist/autopilot/deep-interview-gate.d.ts.map +1 -1
- package/dist/autopilot/deep-interview-gate.js +140 -0
- package/dist/autopilot/deep-interview-gate.js.map +1 -1
- package/dist/autopilot/fsm.js +2 -2
- package/dist/autopilot/fsm.js.map +1 -1
- package/dist/cli/__tests__/auth.test.js +37 -2
- package/dist/cli/__tests__/auth.test.js.map +1 -1
- package/dist/cli/__tests__/codex-feature-probe.test.d.ts +2 -0
- package/dist/cli/__tests__/codex-feature-probe.test.d.ts.map +1 -0
- package/dist/cli/__tests__/codex-feature-probe.test.js +46 -0
- package/dist/cli/__tests__/codex-feature-probe.test.js.map +1 -0
- package/dist/cli/__tests__/codex-plugin-layout.test.js +1 -1
- package/dist/cli/__tests__/codex-plugin-layout.test.js.map +1 -1
- package/dist/cli/__tests__/doctor-warning-copy.test.js +2 -0
- package/dist/cli/__tests__/doctor-warning-copy.test.js.map +1 -1
- package/dist/cli/__tests__/index.test.js +288 -6
- package/dist/cli/__tests__/index.test.js.map +1 -1
- package/dist/cli/__tests__/launch-fallback.test.js +19 -5
- package/dist/cli/__tests__/launch-fallback.test.js.map +1 -1
- package/dist/cli/__tests__/package-bin-contract.test.js +39 -10
- package/dist/cli/__tests__/package-bin-contract.test.js.map +1 -1
- package/dist/cli/__tests__/question.test.js +26 -9
- package/dist/cli/__tests__/question.test.js.map +1 -1
- package/dist/cli/__tests__/resume.test.js +50 -1
- package/dist/cli/__tests__/resume.test.js.map +1 -1
- package/dist/cli/__tests__/setup-refresh.test.js +6 -2
- package/dist/cli/__tests__/setup-refresh.test.js.map +1 -1
- package/dist/cli/__tests__/sparkshell-packaging.test.js +45 -2
- package/dist/cli/__tests__/sparkshell-packaging.test.js.map +1 -1
- package/dist/cli/__tests__/team-decompose.test.js +10 -5
- package/dist/cli/__tests__/team-decompose.test.js.map +1 -1
- package/dist/cli/__tests__/team.test.js +45 -1
- package/dist/cli/__tests__/team.test.js.map +1 -1
- package/dist/cli/__tests__/ultragoal.test.js +75 -0
- package/dist/cli/__tests__/ultragoal.test.js.map +1 -1
- package/dist/cli/__tests__/update.test.js +214 -17
- package/dist/cli/__tests__/update.test.js.map +1 -1
- package/dist/cli/__tests__/windows-popup-loop-contract.test.js +1 -1
- package/dist/cli/auth.d.ts.map +1 -1
- package/dist/cli/auth.js +25 -1
- package/dist/cli/auth.js.map +1 -1
- package/dist/cli/codex-feature-probe.d.ts +5 -2
- package/dist/cli/codex-feature-probe.d.ts.map +1 -1
- package/dist/cli/codex-feature-probe.js +25 -9
- package/dist/cli/codex-feature-probe.js.map +1 -1
- package/dist/cli/index.d.ts +39 -5
- package/dist/cli/index.d.ts.map +1 -1
- package/dist/cli/index.js +184 -101
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/setup.d.ts.map +1 -1
- package/dist/cli/setup.js +9 -1
- package/dist/cli/setup.js.map +1 -1
- package/dist/cli/team.d.ts +4 -0
- package/dist/cli/team.d.ts.map +1 -1
- package/dist/cli/team.js +43 -4
- package/dist/cli/team.js.map +1 -1
- package/dist/cli/ultragoal.d.ts.map +1 -1
- package/dist/cli/ultragoal.js +29 -0
- package/dist/cli/ultragoal.js.map +1 -1
- package/dist/cli/update.d.ts +20 -3
- package/dist/cli/update.d.ts.map +1 -1
- package/dist/cli/update.js +265 -23
- package/dist/cli/update.js.map +1 -1
- package/dist/cli/version.d.ts.map +1 -1
- package/dist/cli/version.js +5 -9
- package/dist/cli/version.js.map +1 -1
- package/dist/compat/__tests__/doctor-contract.test.js +12 -1
- package/dist/compat/__tests__/doctor-contract.test.js.map +1 -1
- package/dist/hooks/__tests__/agents-overlay.test.js +1 -0
- package/dist/hooks/__tests__/agents-overlay.test.js.map +1 -1
- package/dist/hooks/__tests__/autopilot-skill-contract.test.js +15 -0
- package/dist/hooks/__tests__/autopilot-skill-contract.test.js.map +1 -1
- package/dist/hooks/__tests__/code-review-skill-contract.test.js +7 -3
- package/dist/hooks/__tests__/code-review-skill-contract.test.js.map +1 -1
- package/dist/hooks/__tests__/deep-interview-contract.test.js +46 -1
- package/dist/hooks/__tests__/deep-interview-contract.test.js.map +1 -1
- package/dist/hooks/__tests__/skill-guidance-contract.test.js +14 -5
- package/dist/hooks/__tests__/skill-guidance-contract.test.js.map +1 -1
- package/dist/hooks/agents-overlay.d.ts.map +1 -1
- package/dist/hooks/agents-overlay.js +2 -1
- package/dist/hooks/agents-overlay.js.map +1 -1
- package/dist/hooks/extensibility/__tests__/plugin-runner.test.js +112 -1
- package/dist/hooks/extensibility/__tests__/plugin-runner.test.js.map +1 -1
- package/dist/hooks/extensibility/plugin-runner-stdin.d.ts +2 -0
- package/dist/hooks/extensibility/plugin-runner-stdin.d.ts.map +1 -0
- package/dist/hooks/extensibility/plugin-runner-stdin.js +16 -0
- package/dist/hooks/extensibility/plugin-runner-stdin.js.map +1 -0
- package/dist/hooks/extensibility/plugin-runner.js +2 -4
- package/dist/hooks/extensibility/plugin-runner.js.map +1 -1
- package/dist/hud/__tests__/index.test.js +23 -2
- package/dist/hud/__tests__/index.test.js.map +1 -1
- package/dist/hud/__tests__/reconcile.test.js +387 -0
- package/dist/hud/__tests__/reconcile.test.js.map +1 -1
- package/dist/hud/__tests__/state.test.js +28 -0
- package/dist/hud/__tests__/state.test.js.map +1 -1
- package/dist/hud/__tests__/tmux.test.js +118 -7
- package/dist/hud/__tests__/tmux.test.js.map +1 -1
- package/dist/hud/index.d.ts +6 -1
- package/dist/hud/index.d.ts.map +1 -1
- package/dist/hud/index.js +12 -3
- package/dist/hud/index.js.map +1 -1
- package/dist/hud/reconcile.d.ts +6 -2
- package/dist/hud/reconcile.d.ts.map +1 -1
- package/dist/hud/reconcile.js +58 -28
- package/dist/hud/reconcile.js.map +1 -1
- package/dist/hud/state.d.ts.map +1 -1
- package/dist/hud/state.js +4 -18
- package/dist/hud/state.js.map +1 -1
- package/dist/hud/tmux.d.ts +14 -1
- package/dist/hud/tmux.d.ts.map +1 -1
- package/dist/hud/tmux.js +129 -15
- package/dist/hud/tmux.js.map +1 -1
- package/dist/question/__tests__/renderer.test.js +566 -1
- package/dist/question/__tests__/renderer.test.js.map +1 -1
- package/dist/question/renderer.d.ts +9 -1
- package/dist/question/renderer.d.ts.map +1 -1
- package/dist/question/renderer.js +246 -70
- package/dist/question/renderer.js.map +1 -1
- package/dist/ralplan/consensus-gate.js +9 -1
- package/dist/ralplan/consensus-gate.js.map +1 -1
- package/dist/scripts/__tests__/codex-native-hook.test.js +322 -15
- package/dist/scripts/__tests__/codex-native-hook.test.js.map +1 -1
- package/dist/scripts/__tests__/run-test-files.test.js +115 -1
- package/dist/scripts/__tests__/run-test-files.test.js.map +1 -1
- package/dist/scripts/codex-native-hook.d.ts.map +1 -1
- package/dist/scripts/codex-native-hook.js +94 -20
- package/dist/scripts/codex-native-hook.js.map +1 -1
- package/dist/scripts/notify-hook/team-worker-stop.d.ts.map +1 -1
- package/dist/scripts/notify-hook/team-worker-stop.js +54 -21
- package/dist/scripts/notify-hook/team-worker-stop.js.map +1 -1
- package/dist/scripts/run-test-files.js +218 -160
- package/dist/scripts/run-test-files.js.map +1 -1
- package/dist/state/__tests__/operations.test.js +463 -0
- package/dist/state/__tests__/operations.test.js.map +1 -1
- package/dist/team/__tests__/delivery-log.test.js +18 -0
- package/dist/team/__tests__/delivery-log.test.js.map +1 -1
- package/dist/team/__tests__/runtime.test.js +48 -0
- package/dist/team/__tests__/runtime.test.js.map +1 -1
- package/dist/team/__tests__/tmux-session.test.js +107 -0
- package/dist/team/__tests__/tmux-session.test.js.map +1 -1
- package/dist/team/__tests__/tmux-test-fixture.d.ts.map +1 -1
- package/dist/team/__tests__/tmux-test-fixture.js +14 -2
- package/dist/team/__tests__/tmux-test-fixture.js.map +1 -1
- package/dist/team/__tests__/tmux-test-fixture.test.js +1 -0
- package/dist/team/__tests__/tmux-test-fixture.test.js.map +1 -1
- package/dist/team/__tests__/worker-bootstrap.test.js +54 -1
- package/dist/team/__tests__/worker-bootstrap.test.js.map +1 -1
- package/dist/team/delivery-log.d.ts +1 -1
- package/dist/team/delivery-log.d.ts.map +1 -1
- package/dist/team/delivery-log.js.map +1 -1
- package/dist/team/repo-aware-decomposition.d.ts +4 -0
- package/dist/team/repo-aware-decomposition.d.ts.map +1 -1
- package/dist/team/repo-aware-decomposition.js.map +1 -1
- package/dist/team/runtime.d.ts.map +1 -1
- package/dist/team/runtime.js +78 -9
- package/dist/team/runtime.js.map +1 -1
- package/dist/team/tmux-session.d.ts +1 -0
- package/dist/team/tmux-session.d.ts.map +1 -1
- package/dist/team/tmux-session.js +16 -5
- package/dist/team/tmux-session.js.map +1 -1
- package/dist/team/ultragoal-context.d.ts +12 -0
- package/dist/team/ultragoal-context.d.ts.map +1 -1
- package/dist/team/ultragoal-context.js +32 -8
- package/dist/team/ultragoal-context.js.map +1 -1
- package/dist/utils/__tests__/paths.test.js +23 -0
- package/dist/utils/__tests__/paths.test.js.map +1 -1
- package/dist/utils/__tests__/platform-command.test.js +16 -1
- package/dist/utils/__tests__/platform-command.test.js.map +1 -1
- package/dist/utils/__tests__/version.test.d.ts +2 -0
- package/dist/utils/__tests__/version.test.d.ts.map +1 -0
- package/dist/utils/__tests__/version.test.js +51 -0
- package/dist/utils/__tests__/version.test.js.map +1 -0
- package/dist/utils/paths.d.ts +8 -1
- package/dist/utils/paths.d.ts.map +1 -1
- package/dist/utils/paths.js +20 -6
- package/dist/utils/paths.js.map +1 -1
- package/dist/utils/platform-command.d.ts +9 -0
- package/dist/utils/platform-command.d.ts.map +1 -1
- package/dist/utils/platform-command.js +15 -0
- package/dist/utils/platform-command.js.map +1 -1
- package/dist/utils/toml.d.ts +4 -0
- package/dist/utils/toml.d.ts.map +1 -0
- package/dist/utils/toml.js +75 -0
- package/dist/utils/toml.js.map +1 -0
- package/dist/utils/version.d.ts +7 -0
- package/dist/utils/version.d.ts.map +1 -0
- package/dist/utils/version.js +67 -0
- package/dist/utils/version.js.map +1 -0
- package/dist/verification/__tests__/ci-rust-gates.test.js +8 -0
- package/dist/verification/__tests__/ci-rust-gates.test.js.map +1 -1
- package/dist/verification/__tests__/dev-merge-issue-close-workflow.test.js +16 -2
- package/dist/verification/__tests__/dev-merge-issue-close-workflow.test.js.map +1 -1
- package/package.json +4 -3
- package/plugins/oh-my-codex/.codex-plugin/plugin.json +1 -1
- package/plugins/oh-my-codex/skills/autopilot/SKILL.md +3 -0
- package/plugins/oh-my-codex/skills/code-review/SKILL.md +2 -2
- package/plugins/oh-my-codex/skills/deep-interview/SKILL.md +85 -11
- package/plugins/oh-my-codex/skills/ultrawork/SKILL.md +32 -17
- package/skills/autopilot/SKILL.md +3 -0
- package/skills/code-review/SKILL.md +2 -2
- package/skills/deep-interview/SKILL.md +85 -11
- package/skills/ultrawork/SKILL.md +32 -17
- package/src/scripts/__tests__/codex-native-hook.test.ts +391 -26
- package/src/scripts/__tests__/run-test-files.test.ts +138 -2
- package/src/scripts/codex-native-hook.ts +99 -17
- package/src/scripts/notify-hook/team-worker-stop.ts +58 -18
- package/src/scripts/prepare-build.js +83 -0
- package/src/scripts/run-test-files.ts +229 -150
- package/templates/AGENTS.md +40 -199
- package/src/scripts/postinstall-bootstrap.js +0 -23
package/templates/AGENTS.md
CHANGED
|
@@ -14,15 +14,6 @@ When OMX is installed, load the installed prompt/skill/agent surfaces from `~/.c
|
|
|
14
14
|
|
|
15
15
|
<guidance_schema_contract>
|
|
16
16
|
Canonical guidance schema for this template is defined in `docs/guidance-schema.md`.
|
|
17
|
-
|
|
18
|
-
Required schema sections and this template's mapping:
|
|
19
|
-
- **Role & Intent**: title + opening paragraphs.
|
|
20
|
-
- **Operating Principles**: `<operating_principles>`.
|
|
21
|
-
- **Execution Protocol**: delegation/model routing/agent catalog/skills/team pipeline sections.
|
|
22
|
-
- **Constraints & Safety**: keyword detection, cancellation, and state-management rules.
|
|
23
|
-
- **Verification & Completion**: `<verification>` + continuation checks in `<execution_protocols>`.
|
|
24
|
-
- **Recovery & Lifecycle Overlays**: runtime/team overlays are appended by marker-bounded runtime hooks.
|
|
25
|
-
|
|
26
17
|
Keep runtime marker contracts stable and non-destructive when overlays are applied:
|
|
27
18
|
- `<!-- OMX:RUNTIME:START --> ... <!-- OMX:RUNTIME:END -->`
|
|
28
19
|
- `<!-- OMX:TEAM:WORKER:START --> ... <!-- OMX:TEAM:WORKER:END -->`
|
|
@@ -33,9 +24,8 @@ Keep runtime marker contracts stable and non-destructive when overlays are appli
|
|
|
33
24
|
- Delegate only when it materially improves quality, speed, or correctness.
|
|
34
25
|
- Keep progress short, concrete, and useful.
|
|
35
26
|
- Prefer evidence over assumption; verify before claiming completion.
|
|
36
|
-
- Use the lightest path that preserves quality: direct action, MCP, then delegation.
|
|
37
27
|
- Check official documentation before implementing with unfamiliar SDKs, frameworks, or APIs.
|
|
38
|
-
- Within
|
|
28
|
+
- Within one Codex session or team pane, use Codex native subagents for independent, bounded subtasks when that improves throughput.
|
|
39
29
|
<!-- OMX:GUIDANCE:OPERATING:START -->
|
|
40
30
|
- Default to outcome-first, quality-focused responses: identify the user's target result, success criteria, constraints, available evidence, expected output, and stop condition before adding process detail.
|
|
41
31
|
- Keep collaboration style short and direct. Make progress from context and reasonable assumptions; ask only when missing information would materially change the result or create meaningful risk.
|
|
@@ -62,91 +52,40 @@ Keep runtime marker contracts stable and non-destructive when overlays are appli
|
|
|
62
52
|
- Keep diffs small, reviewable, and reversible.
|
|
63
53
|
- Verify with lint, typecheck, tests, and static analysis after changes; final reports include changed files, simplifications, and remaining risks.
|
|
64
54
|
|
|
65
|
-
<lore_commit_protocol>
|
|
66
|
-
## Lore Commit Protocol
|
|
67
|
-
|
|
68
|
-
Every commit message must follow the Lore protocol: a concise decision record using git-native trailers.
|
|
69
|
-
|
|
70
|
-
### Format
|
|
71
|
-
|
|
72
|
-
```
|
|
73
|
-
<intent line: why the change was made, not what changed>
|
|
74
|
-
|
|
75
|
-
<optional concise body: constraints and approach rationale>
|
|
76
|
-
|
|
77
|
-
Constraint: <external constraint that shaped the decision>
|
|
78
|
-
Rejected: <alternative considered> | <reason for rejection>
|
|
79
|
-
Confidence: <low|medium|high>
|
|
80
|
-
Scope-risk: <narrow|moderate|broad>
|
|
81
|
-
Directive: <forward-looking warning for future modifiers>
|
|
82
|
-
Tested: <what was verified>
|
|
83
|
-
Not-tested: <known gaps in verification>
|
|
84
|
-
```
|
|
85
|
-
|
|
86
|
-
### Rules
|
|
87
|
-
|
|
88
|
-
- Intent line first; describe why, not what.
|
|
89
|
-
- Use trailers only when they add decision context.
|
|
90
|
-
- Use `Rejected:` for alternatives future agents should not re-explore.
|
|
91
|
-
- Use `Directive:` for warnings, `Constraint:` for external forces, and `Not-tested:` for known verification gaps.
|
|
92
|
-
- Teams may introduce domain-specific trailers without breaking compatibility.
|
|
93
|
-
</lore_commit_protocol>
|
|
94
|
-
|
|
95
|
-
---
|
|
96
55
|
|
|
97
56
|
<delegation_rules>
|
|
98
57
|
Default posture: work directly.
|
|
99
58
|
|
|
100
59
|
Choose the lane before acting:
|
|
101
|
-
- `$deep-interview` for unclear intent, missing boundaries, or explicit "don't assume" requests.
|
|
102
|
-
- `$ralplan` when requirements are clear enough but plan, tradeoff, or test-shape review is still needed.
|
|
103
|
-
- `$team` when
|
|
104
|
-
- `$ralph` when
|
|
105
|
-
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
60
|
+
- `$deep-interview` for unclear intent, missing boundaries, or explicit "don't assume" requests. It clarifies and hands off; it does not implement.
|
|
61
|
+
- `$ralplan` when requirements are clear enough but plan, tradeoff, architecture, or test-shape review is still needed.
|
|
62
|
+
- `$team` when an approved plan needs coordinated parallel execution across multiple lanes.
|
|
63
|
+
- `$ralph` when an approved plan needs a persistent single-owner completion and verification loop.
|
|
64
|
+
- Solo execute when the task is already scoped and one agent can finish and verify it directly.
|
|
65
|
+
- Outside active `team`/`swarm` mode, use `executor` for bounded implementation or review slices; do not invoke `worker` as a general-purpose role.
|
|
66
|
+
- Reserve `worker` strictly for active `team`/`swarm` sessions where the team runtime assigns a worker lane.
|
|
67
|
+
- `worker` is a team-runtime surface, not a general-purpose child role.
|
|
68
|
+
|
|
69
|
+
|
|
70
|
+
Use Codex native subagents for bounded implementation, research, review, or verification slices when they materially improve quality, speed, or safety. Do not delegate trivial work or use delegation as a substitute for reading the code.
|
|
112
71
|
</delegation_rules>
|
|
113
72
|
|
|
114
73
|
<child_agent_protocol>
|
|
115
|
-
Leader responsibilities:
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
Worker responsibilities:
|
|
121
|
-
1. Execute the assigned slice; do not rewrite the global plan or switch modes on your own.
|
|
122
|
-
2. Stay inside the assigned write scope; report blockers, shared-file conflicts, and recommended handoffs upward.
|
|
123
|
-
3. Ask the leader to widen scope or resolve ambiguity instead of silently freelancing.
|
|
124
|
-
|
|
125
|
-
Rules:
|
|
126
|
-
- Max 6 concurrent child agents.
|
|
127
|
-
- Child prompts stay under AGENTS.md authority.
|
|
128
|
-
- `worker` is a team-runtime surface, not a general-purpose child role.
|
|
129
|
-
- Child agents should report recommended handoffs upward.
|
|
130
|
-
- Child agents should finish their assigned role, not recursively orchestrate unless explicitly told to do so.
|
|
131
|
-
- Prefer inheriting the leader model by omitting `spawn_agent.model` unless a task truly requires a different model.
|
|
132
|
-
- Do not hardcode stale frontier-model overrides for Codex native child agents. If an explicit frontier override is necessary, use the current frontier default from `OMX_DEFAULT_FRONTIER_MODEL` / the repo model contract (currently `gpt-5.5`), not older values such as `gpt-5.2`.
|
|
133
|
-
- Prefer role-appropriate `reasoning_effort` over explicit `model` overrides when the only goal is to make a child think harder or lighter.
|
|
74
|
+
Leader responsibilities: choose the mode, delegate bounded verifiable subtasks, integrate results, and own final verification.
|
|
75
|
+
Worker responsibilities: execute the assigned slice, stay inside scope, and report blockers, shared-file conflicts, scope expansion, or recommended handoffs upward; child prompts should report recommended handoffs upward rather than recursively orchestrating.
|
|
76
|
+
Leader vs worker: leaders own mode selection, integration, verification, and stop/escalate calls; workers execute assigned slices and escalate from worker to leader for blockers, shared-file conflicts, scope expansion, missing authority, or mode mismatch.
|
|
77
|
+
Rules: max 6 concurrent child agents; child prompts remain under AGENTS.md authority; prefer inherited model defaults unless a task has a concrete model reason; `worker` is a team-runtime surface, not a general-purpose child role.
|
|
134
78
|
</child_agent_protocol>
|
|
135
79
|
|
|
80
|
+
|
|
136
81
|
<invocation_conventions>
|
|
137
|
-
- `$name` — invoke a workflow skill
|
|
138
|
-
- `/skills` — browse available skills
|
|
139
|
-
- Prefer skill invocation
|
|
82
|
+
- `$name` — invoke a workflow skill.
|
|
83
|
+
- `/skills` — browse available skills.
|
|
84
|
+
- Prefer explicit skill invocation for deterministic workflow routing.
|
|
140
85
|
</invocation_conventions>
|
|
141
86
|
|
|
142
87
|
<model_routing>
|
|
143
|
-
Match role to task shape:
|
|
144
|
-
- Low complexity: `explore`, `style-reviewer`, `writer`
|
|
145
|
-
- Research/discovery: `explore` for repo lookup, `researcher` for official docs/reference gathering, `dependency-expert` for SDK/API/package evaluation
|
|
146
|
-
- Standard: `executor`, `debugger`, `test-engineer`
|
|
147
|
-
- High complexity: `architect`, `executor`, `critic`
|
|
148
|
-
|
|
149
|
-
For Codex native child agents, model routing defaults to inheritance/current repo defaults unless the caller has a concrete reason to override it.
|
|
88
|
+
Match role to task shape: `explore` for repo lookup, `researcher` for official docs/reference gathering, `dependency-expert` for SDK/package decisions, `executor` for implementation, `debugger` for root cause, `architect`/`critic` for high-complexity review. Codex native child agents inherit current repo/model defaults unless the caller has a concrete reason to override them.
|
|
150
89
|
</model_routing>
|
|
151
90
|
|
|
152
91
|
<specialist_routing>
|
|
@@ -161,105 +100,45 @@ Leader/workflow routing contract:
|
|
|
161
100
|
<!-- OMX:GUIDANCE:SPECIALIST-ROUTING:END -->
|
|
162
101
|
</specialist_routing>
|
|
163
102
|
|
|
164
|
-
---
|
|
165
|
-
|
|
166
103
|
<agent_catalog>
|
|
167
|
-
Key roles: `explore`
|
|
168
|
-
|
|
169
|
-
Research/discovery specialists:
|
|
170
|
-
- `explore` — first-stop repository lookup and symbol/file mapping
|
|
171
|
-
- `researcher` — official docs, references, and external fact gathering
|
|
172
|
-
- `dependency-expert` — SDK/API/package evaluation before adopting or changing dependencies
|
|
173
|
-
|
|
174
|
-
Specialists remain available through the role catalog and native child-agent surfaces when the task clearly benefits from them.
|
|
104
|
+
Key roles: `explore`, `researcher`, `dependency-expert`, `planner`, `architect`, `debugger`, `executor`, `test-engineer`, `verifier`, and `critic`. Use the installed role catalog for full descriptions.
|
|
175
105
|
</agent_catalog>
|
|
176
106
|
|
|
177
|
-
---
|
|
178
|
-
|
|
179
107
|
<keyword_detection>
|
|
180
108
|
Keyword routing is implemented primarily by native `UserPromptSubmit` hooks and the generated keyword registry. Treat hook-injected routing context as authoritative for the current turn, then load the named `SKILL.md` or prompt file as instructed.
|
|
181
109
|
|
|
182
110
|
Fallback behavior when hook context is unavailable:
|
|
183
111
|
- Explicit `$name` invocations run left-to-right and override implicit keywords.
|
|
184
|
-
- Bare skill names do not activate skills by themselves; skill-name activation requires explicit `$skill` invocation. Natural-language routing phrases may still map to a workflow
|
|
185
|
-
- Keep the detailed keyword list in `src/hooks/keyword-registry.ts`; do not duplicate
|
|
186
|
-
|
|
187
|
-
Runtime availability gate:
|
|
188
|
-
- Treat `autopilot`, `ralph`, `ultrawork`, `ultraqa`, `team`/`swarm`, and `ecomode` as **OMX runtime workflows**, not generic prompt aliases.
|
|
189
|
-
- Auto-activate runtime workflows only when the current session is actually running under OMX CLI/runtime (for example, launched via `omx`, with OMX session overlay/runtime state available, or when the user explicitly asks to run `omx ...` in the shell).
|
|
190
|
-
- In Codex App or plain Codex sessions without OMX runtime, do **not** treat those keywords alone as activation. Explain that they require OMX CLI runtime support and are not directly available there, and continue with the nearest App-safe surface (`deep-interview`, `ralplan`, `plan`, or native subagents) unless the user explicitly wants you to launch OMX CLI from shell first.
|
|
191
|
-
- When deep-interview is active in attached-tmux OMX CLI/runtime, ask each interview round via `omx question` as a temporary popup-style renderer over the leader pane; after launching `omx question` in a background terminal, wait for that terminal to finish and read the JSON answer before continuing; preserve the leader pane with `OMX_QUESTION_RETURN_PANE=$TMUX_PANE` (or an explicit `%pane` value) when invoking it through Bash/tool paths, prefer `answers[0].answer` / `answers[]` from the response and use legacy `answer` only as fallback, and respect Stop-hook blocking while a deep-interview question obligation is pending. Deep-interview remains one question per round; do not batch multiple interview rounds into one `questions[]` form. Outside tmux or native surfaces that cannot render `omx question` should use the native structured question path when available, otherwise ask exactly one concise plain-text question and wait for the answer.
|
|
192
|
-
|
|
193
|
-
<triage_routing>
|
|
194
|
-
## Triage: advisory prompt-routing context
|
|
112
|
+
- Bare skill names do not activate skills by themselves; skill-name activation requires explicit `$skill` invocation. Natural-language routing phrases may still map to a workflow. Examples: `analyze` / `investigate` → `$analyze` for read-only deep analysis with ranked synthesis, explicit confidence, and concrete file references; `deep interview`, `interview`, `don't assume`, or `ouroboros` → `$deep-interview` for Socratic deep interview requirements clarification.
|
|
113
|
+
- Keep the detailed keyword list in `src/hooks/keyword-registry.ts`; do not duplicate it here.
|
|
195
114
|
|
|
196
|
-
|
|
115
|
+
Runtime workflows such as `autopilot`, `ralph`, `ultrawork`, `ultraqa`, `team`/`swarm`, and `ecomode` require OMX CLI runtime support. In Codex App, outside-tmux, or plain Codex sessions without OMX tmux runtime, explain that those workflows are not directly available there and continue with the nearest App-safe surface unless the user explicitly wants to launch OMX CLI from shell first.
|
|
116
|
+
- When deep-interview is active in attached-tmux OMX CLI/runtime, ask each interview round via `omx question`; after launching `omx question` in a background terminal, wait for that terminal to finish and read the JSON answer before continuing; preserve the leader pane with `OMX_QUESTION_RETURN_PANE=$TMUX_PANE` when invoking it through Bash/tool paths. Outside tmux or native surfaces that cannot render `omx question` should use the native structured question path when available; otherwise ask exactly one concise plain-text question and wait for the answer.
|
|
197
117
|
|
|
198
|
-
When active, triage emits **advisory prompt-routing context** — a developer-context string that the model may follow. It does not activate a skill or workflow by itself. It is a best-effort hint, not a guarantee.
|
|
199
|
-
|
|
200
|
-
Note: `explore`, `executor`, `designer`, and `researcher` are agent role-prompt files under `prompts/`, not workflow skills. `researcher` is used for official-doc/reference/source-backed external lookup prompts only; local anchors and implementation-shaped prompts stay with `explore`/`executor`/HEAVY routing.
|
|
201
|
-
|
|
202
|
-
Explicit keywords remain the deterministic control surface when you want explicit, guaranteed routing — use them whenever exact behavior matters.
|
|
203
|
-
|
|
204
|
-
To opt out per prompt with phrases such as `no workflow`, `just chat`, or `plain answer` — the triage layer will suppress context injection for that prompt.
|
|
205
|
-
</triage_routing>
|
|
206
|
-
|
|
207
|
-
Ralph / Ralplan execution gate:
|
|
208
|
-
- Enforce **ralplan-first** when ralph is active and planning is not complete.
|
|
209
|
-
- Planning is complete only after both `.omx/plans/prd-*.md` and `.omx/plans/test-spec-*.md` exist.
|
|
210
|
-
- Until complete, do not begin implementation or execute implementation-focused tools.
|
|
211
118
|
</keyword_detection>
|
|
212
119
|
|
|
213
|
-
---
|
|
214
|
-
|
|
215
120
|
<skills>
|
|
216
|
-
Skills are workflow commands.
|
|
121
|
+
Skills are workflow commands. Always load the relevant installed `SKILL.md` before following a skill-specific process. Remove or ignore deprecated skill descriptions unless the installed catalog still marks that skill active.
|
|
217
122
|
</skills>
|
|
218
123
|
|
|
219
|
-
---
|
|
220
|
-
|
|
221
124
|
<team_compositions>
|
|
222
125
|
Use explicit team orchestration for feature development, bug investigation, code review, UX audit, and similar multi-lane work when coordination value outweighs overhead.
|
|
223
126
|
</team_compositions>
|
|
224
127
|
|
|
225
|
-
---
|
|
226
|
-
|
|
227
128
|
<team_pipeline>
|
|
228
|
-
Team mode is the structured multi-agent surface.
|
|
229
|
-
Canonical pipeline:
|
|
230
|
-
`team-plan -> team-prd -> team-exec -> team-verify -> team-fix (loop)`
|
|
231
|
-
|
|
232
|
-
Use it when durable staged coordination is worth the overhead. Otherwise, stay direct.
|
|
233
|
-
Terminal states: `complete`, `failed`, `cancelled`.
|
|
129
|
+
Team mode is the structured multi-agent surface. Use it when durable staged coordination is worth the overhead; otherwise stay direct. Terminal states: `complete`, `failed`, `cancelled`.
|
|
234
130
|
</team_pipeline>
|
|
235
131
|
|
|
236
|
-
---
|
|
237
|
-
|
|
238
132
|
<team_model_resolution>
|
|
239
|
-
Team/Swarm
|
|
240
|
-
Model precedence:
|
|
241
|
-
1. Explicit model in `OMX_TEAM_WORKER_LAUNCH_ARGS`
|
|
242
|
-
2. Inherited leader `--model`
|
|
243
|
-
3. Low-complexity default model from `OMX_DEFAULT_SPARK_MODEL` (legacy alias: `OMX_SPARK_MODEL`)
|
|
244
|
-
|
|
245
|
-
Normalize model flags to one canonical `--model <value>` entry.
|
|
246
|
-
Do not guess frontier/spark defaults from model-family recency; use `OMX_DEFAULT_FRONTIER_MODEL` and `OMX_DEFAULT_SPARK_MODEL`.
|
|
133
|
+
Team/Swarm worker model precedence: explicit `OMX_TEAM_WORKER_LAUNCH_ARGS`, inherited leader `--model`, then low-complexity default from `OMX_DEFAULT_SPARK_MODEL` (legacy alias: `OMX_SPARK_MODEL`). Normalize model flags to one canonical `--model <value>` entry and use `OMX_DEFAULT_FRONTIER_MODEL` / `OMX_DEFAULT_SPARK_MODEL` rather than guessing defaults.
|
|
247
134
|
</team_model_resolution>
|
|
248
135
|
|
|
249
136
|
<!-- OMX:MODELS:START -->
|
|
250
137
|
<!-- Auto-generated by omx setup -->
|
|
251
138
|
<!-- OMX:MODELS:END -->
|
|
252
139
|
|
|
253
|
-
---
|
|
254
|
-
|
|
255
140
|
<verification>
|
|
256
141
|
Verify before claiming completion.
|
|
257
|
-
|
|
258
|
-
Sizing guidance:
|
|
259
|
-
- Small changes: lightweight verification
|
|
260
|
-
- Standard changes: standard verification
|
|
261
|
-
- Large or security/architectural changes: thorough verification
|
|
262
|
-
|
|
263
142
|
<!-- OMX:GUIDANCE:VERIFYSEQ:START -->
|
|
264
143
|
Verification loop: define the claim and success criteria, run the smallest validation that can prove it, read the output, then report with evidence. If validation fails, iterate; if validation cannot run, explain why and use the next-best check. Keep evidence summaries concise but sufficient.
|
|
265
144
|
|
|
@@ -273,29 +152,17 @@ Verification loop: define the claim and success criteria, run the smallest valid
|
|
|
273
152
|
<execution_protocols>
|
|
274
153
|
Mode selection: use `$deep-interview` for unclear intent/boundaries; `$ralplan` for consensus on architecture, tradeoffs, or tests; `$team` for approved multi-lane work; `$ralph` for persistent single-owner completion/verification loops; otherwise execute directly in solo mode. Switch modes only when evidence shows the current lane is mismatched or blocked.
|
|
275
154
|
|
|
276
|
-
Command routing:
|
|
277
|
-
|
|
278
|
-
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
Leader vs worker:
|
|
283
|
-
- The leader chooses the mode, keeps the brief current, delegates bounded work, and owns verification plus stop/escalate calls.
|
|
284
|
-
- Workers execute their assigned slice, do not re-plan the whole task or switch modes on their own, and report blockers or recommended handoffs upward.
|
|
285
|
-
- Workers escalate shared-file conflicts, scope expansion, or missing authority to the leader instead of freelancing.
|
|
155
|
+
Command routing: `omx explore` is deprecated and MUST NOT be recommended as the default surface for simple read-only repository lookup tasks. Use normal Codex repository inspection tools/subagents; use `omx sparkshell` only for explicit shell-native read-only evidence or bounded verification.
|
|
156
|
+
When to use what:
|
|
157
|
+
- Use normal Codex repository inspection tools/subagents for repository lookup and implementation context.
|
|
158
|
+
- Use `omx sparkshell --tmux-pane` only as an explicit opt-in operator aid for shell-native tmux evidence or bounded verification; it does not replace raw evidence capture.
|
|
159
|
+
- `USE_OMX_EXPLORE_CMD` is a compatibility-only override for deprecated `omx explore` routing and does not make `omx explore` preferred.
|
|
286
160
|
|
|
287
|
-
|
|
288
|
-
- Stop when the task is verified complete, the user says stop/cancel, or no meaningful recovery path remains.
|
|
289
|
-
- Escalate to the user only for irreversible, destructive, or materially branching decisions, or when required authority is missing.
|
|
290
|
-
- Escalate from worker to leader for blockers, scope expansion, shared ownership conflicts, or mode mismatch.
|
|
291
|
-
- `deep-interview` and `ralplan` stop at a clarified artifact or approved-plan handoff; they do not implement unless execution mode is explicitly switched.
|
|
161
|
+
Leader vs worker: leaders choose mode, delegate bounded work, integrate, and own verification; workers execute their slice and escalate blockers, scope expansion, shared-file conflicts, or mode mismatch upward. Escalate from worker to leader for blockers, scope expansion, shared ownership conflicts, or mode mismatch.
|
|
292
162
|
|
|
293
|
-
|
|
294
|
-
- Default update/final shape: current mode; action/result; evidence or blocker/next step.
|
|
295
|
-
- Keep rationale once; do not restate the full plan every turn.
|
|
296
|
-
- Expand only for risk, handoff, or explicit user request.
|
|
163
|
+
Stop / escalate: stop when the task is verified complete, the user says stop/cancel, or no meaningful recovery path remains. Escalate to the user only for irreversible, destructive, materially branching decisions, or missing authority.
|
|
297
164
|
|
|
298
|
-
|
|
165
|
+
Output contract: Default update/final shape: state current mode, action/result, and evidence or blocker/next step. Keep rationale once; do not restate the full plan every turn; expand only for risk, handoff, or explicit request.
|
|
299
166
|
|
|
300
167
|
Anti-slop workflow:
|
|
301
168
|
- Cleanup/refactor/deslop work still follows the same `$deep-interview` -> `$ralplan` -> `$team`/`$ralph` path; use `$ai-slop-cleaner` as a bounded helper inside the chosen execution lane, not as a competing top-level workflow.
|
|
@@ -305,43 +172,17 @@ Anti-slop workflow:
|
|
|
305
172
|
- Run lint, typecheck, tests, and static analysis before claiming completion.
|
|
306
173
|
- Keep writer/reviewer pass separation for cleanup plans and approvals; preserve writer/reviewer pass separation explicitly.
|
|
307
174
|
|
|
308
|
-
|
|
309
|
-
- For visual tasks, run `$visual-verdict` every iteration before the next edit.
|
|
310
|
-
- Persist verdict JSON in `.omx/state/{scope}/ralph-progress.json`.
|
|
311
|
-
|
|
312
|
-
Continuation:
|
|
313
|
-
Before concluding, confirm: no pending work, features working, tests passing, zero known errors, verification evidence collected. If not, continue.
|
|
314
|
-
|
|
315
|
-
Ralph planning gate:
|
|
316
|
-
If ralph is active, verify PRD + test spec artifacts exist before implementation work.
|
|
175
|
+
Continuation: before concluding, confirm no pending work remains, features work, tests pass or gaps are explicit, and verification evidence is collected. If not, continue.
|
|
317
176
|
</execution_protocols>
|
|
318
177
|
|
|
319
178
|
<cancellation>
|
|
320
|
-
Use the `cancel` skill to end execution modes.
|
|
321
|
-
Cancel when work is done and verified, when the user says stop, or when a hard blocker prevents meaningful progress.
|
|
322
|
-
Do not cancel while recoverable work remains.
|
|
179
|
+
Use the `cancel` skill to end active execution modes when work is done and verified, when the user says stop, or when a hard blocker prevents meaningful progress. Do not cancel while recoverable work remains.
|
|
323
180
|
</cancellation>
|
|
324
181
|
|
|
325
|
-
---
|
|
326
|
-
|
|
327
182
|
<state_management>
|
|
328
|
-
Hooks own normal skill-active and workflow-state persistence under `.omx/state/`.
|
|
329
|
-
|
|
330
|
-
OMX persists runtime state under `.omx/`:
|
|
331
|
-
- `.omx/state/` — mode state
|
|
332
|
-
- `.omx/notepad.md` — session notes
|
|
333
|
-
- `.omx/project-memory.json` — cross-session memory
|
|
334
|
-
- `.omx/plans/` — plans
|
|
335
|
-
- `.omx/logs/` — logs
|
|
336
|
-
|
|
337
|
-
Available MCP groups include state/memory tools, code-intel tools, and trace tools.
|
|
338
|
-
|
|
339
|
-
Agents may use OMX state/MCP tools for explicit lifecycle transitions, recovery, checkpointing, cancellation cleanup, or compaction resilience.
|
|
340
|
-
Do not manually duplicate hook-owned activation state unless recovering from missing or stale state.
|
|
183
|
+
Hooks own normal skill-active and workflow-state persistence under `.omx/state/`. OMX runtime state lives under `.omx/`; do not manually duplicate hook-owned activation state unless recovering from missing or stale state.
|
|
341
184
|
</state_management>
|
|
342
185
|
|
|
343
|
-
---
|
|
344
|
-
|
|
345
186
|
## Setup
|
|
346
187
|
|
|
347
188
|
Execute `omx setup` to install all components. Execute `omx doctor` to verify installation.
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
import { existsSync } from "node:fs";
|
|
2
|
-
import { dirname, join } from "node:path";
|
|
3
|
-
import { fileURLToPath, pathToFileURL } from "node:url";
|
|
4
|
-
|
|
5
|
-
const __filename = fileURLToPath(import.meta.url);
|
|
6
|
-
const __dirname = dirname(__filename);
|
|
7
|
-
const distScriptPath = join(__dirname, "..", "..", "dist", "scripts", "postinstall.js");
|
|
8
|
-
|
|
9
|
-
if (!existsSync(distScriptPath)) {
|
|
10
|
-
process.exit(0);
|
|
11
|
-
}
|
|
12
|
-
|
|
13
|
-
const moduleUrl = pathToFileURL(distScriptPath).href;
|
|
14
|
-
try {
|
|
15
|
-
const postinstallModule = await import(moduleUrl);
|
|
16
|
-
if (typeof postinstallModule.main === "function") {
|
|
17
|
-
await postinstallModule.main();
|
|
18
|
-
}
|
|
19
|
-
} catch (error) {
|
|
20
|
-
console.warn(
|
|
21
|
-
`[omx] Postinstall bootstrap skipped after a non-fatal error: ${error instanceof Error ? error.message : String(error)}`,
|
|
22
|
-
);
|
|
23
|
-
}
|