oh-my-codex 0.21.39 → 0.21.41
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 +6 -6
- package/Cargo.toml +1 -1
- package/dist/agents/native-config.d.ts +12 -0
- package/dist/agents/native-config.d.ts.map +1 -1
- package/dist/agents/native-config.js +12 -0
- package/dist/agents/native-config.js.map +1 -1
- package/dist/bin/__tests__/quality-gates-cli.test.d.ts +2 -0
- package/dist/bin/__tests__/quality-gates-cli.test.d.ts.map +1 -0
- package/dist/bin/__tests__/quality-gates-cli.test.js +110 -0
- package/dist/bin/__tests__/quality-gates-cli.test.js.map +1 -0
- package/dist/bin/quality-gates-cli.d.ts +18 -0
- package/dist/bin/quality-gates-cli.d.ts.map +1 -0
- package/dist/bin/quality-gates-cli.js +107 -0
- package/dist/bin/quality-gates-cli.js.map +1 -0
- package/dist/cli/__tests__/doctor-state-root-binding.test.js +18 -1
- package/dist/cli/__tests__/doctor-state-root-binding.test.js.map +1 -1
- package/dist/cli/__tests__/launch-fallback.test.js +11 -3
- package/dist/cli/__tests__/launch-fallback.test.js.map +1 -1
- package/dist/cli/doctor.d.ts.map +1 -1
- package/dist/cli/doctor.js +17 -4
- package/dist/cli/doctor.js.map +1 -1
- package/dist/cli/index.d.ts +2 -2
- package/dist/cli/index.d.ts.map +1 -1
- package/dist/cli/index.js +21 -1
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/session-search.js +1 -1
- package/dist/config/__tests__/quality-gates.test.d.ts +2 -0
- package/dist/config/__tests__/quality-gates.test.d.ts.map +1 -0
- package/dist/config/__tests__/quality-gates.test.js +369 -0
- package/dist/config/__tests__/quality-gates.test.js.map +1 -0
- package/dist/config/models.d.ts +4 -1
- package/dist/config/models.d.ts.map +1 -1
- package/dist/config/models.js +4 -1
- package/dist/config/models.js.map +1 -1
- package/dist/config/quality-gates.d.ts +97 -0
- package/dist/config/quality-gates.d.ts.map +1 -0
- package/dist/config/quality-gates.js +232 -0
- package/dist/config/quality-gates.js.map +1 -0
- package/dist/hooks/__tests__/code-review-skill-contract.test.js +2 -2
- package/dist/hooks/__tests__/code-review-skill-contract.test.js.map +1 -1
- package/dist/hooks/__tests__/session.test.js +311 -1
- package/dist/hooks/__tests__/session.test.js.map +1 -1
- package/dist/hooks/session.d.ts +9 -8
- package/dist/hooks/session.d.ts.map +1 -1
- package/dist/hooks/session.js +125 -32
- package/dist/hooks/session.js.map +1 -1
- package/dist/mcp/__tests__/state-paths.test.js +47 -0
- package/dist/mcp/__tests__/state-paths.test.js.map +1 -1
- package/dist/mcp/state-paths.d.ts +2 -2
- package/dist/mcp/state-paths.d.ts.map +1 -1
- package/dist/mcp/state-paths.js +4 -3
- package/dist/mcp/state-paths.js.map +1 -1
- package/dist/quality-gates/index.d.ts +7 -0
- package/dist/quality-gates/index.d.ts.map +1 -0
- package/dist/quality-gates/index.js +8 -0
- package/dist/quality-gates/index.js.map +1 -0
- package/dist/ralplan/__tests__/runtime.test.js +43 -1
- package/dist/ralplan/__tests__/runtime.test.js.map +1 -1
- package/dist/ralplan/runtime-contract.d.ts +22 -0
- package/dist/ralplan/runtime-contract.d.ts.map +1 -1
- package/dist/ralplan/runtime.d.ts +10 -1
- package/dist/ralplan/runtime.d.ts.map +1 -1
- package/dist/ralplan/runtime.js +83 -5
- package/dist/ralplan/runtime.js.map +1 -1
- package/package.json +1 -1
- package/plugins/oh-my-codex/.codex-plugin/plugin.json +1 -1
- package/plugins/oh-my-codex/skills/code-review/SKILL.md +12 -2
- package/plugins/oh-my-codex/skills/deep-interview/SKILL.md +11 -0
- package/plugins/oh-my-codex/skills/ralplan/SKILL.md +27 -7
- package/plugins/oh-my-codex/templates/AGENTS.md +17 -1
- package/skills/code-review/SKILL.md +12 -2
- package/skills/deep-interview/SKILL.md +11 -0
- package/skills/ralplan/SKILL.md +27 -7
- package/templates/AGENTS.md +17 -1
package/dist/ralplan/runtime.js
CHANGED
|
@@ -2,6 +2,7 @@ import { readModeState, readModeStateForExplicitSession, updateAutopilotPipeline
|
|
|
2
2
|
import { resolveWritableStateScope } from '../mcp/state-paths.js';
|
|
3
3
|
import { requirePersistedHandoffCarrier } from '../state/handoff-carrier.js';
|
|
4
4
|
import { readSubagentTrackingState, recordSubagentTurnForSession } from '../subagents/tracker.js';
|
|
5
|
+
import { getGatesForStage } from '../quality-gates/index.js';
|
|
5
6
|
import { administrativelyAbandonRalplanAdvisory, readCurrentRalplanAdvisory, } from './advisory.js';
|
|
6
7
|
export * from './runtime-contract.js';
|
|
7
8
|
export { isCompletedAdvisoryCatchRecovery } from './runtime-advisory-lifecycle.js';
|
|
@@ -75,6 +76,9 @@ async function hasCompletedNativeReviewEvidence(cwd, sessionId, architectReview,
|
|
|
75
76
|
const threads = (await readSubagentTrackingState(cwd)).sessions[sessionId]?.threads;
|
|
76
77
|
return Boolean(threads?.[architectReview.thread_id ?? '']?.completed_at && threads?.[criticReview.thread_id ?? '']?.completed_at);
|
|
77
78
|
}
|
|
79
|
+
export function __buildRalplanConsensusGateForTests(architectReviews, criticReviews, options) {
|
|
80
|
+
return buildRalplanConsensusGate(architectReviews, criticReviews, options);
|
|
81
|
+
}
|
|
78
82
|
function buildRalplanConsensusGate(architectReviews, criticReviews, options = {}) {
|
|
79
83
|
const latestArchitect = architectReviews.at(-1);
|
|
80
84
|
const latestCritic = criticReviews.at(-1);
|
|
@@ -92,7 +96,16 @@ function buildRalplanConsensusGate(architectReviews, criticReviews, options = {}
|
|
|
92
96
|
const ralplanCriticReview = latestCritic
|
|
93
97
|
? { ...latestCritic, agent_role: 'critic', session_id: options.sessionId, iteration: authoritativeCycle, review_cycle: authoritativeCycle, sequence_index: 2 }
|
|
94
98
|
: null;
|
|
95
|
-
const
|
|
99
|
+
const currentGateResults = (options.gateResults ?? []).filter((result) => result.iteration === authoritativeCycle);
|
|
100
|
+
const blockingGate = currentGateResults.find((result) => {
|
|
101
|
+
// A blocking gate blocks only on 'reject' or 'iterate' verdicts
|
|
102
|
+
// 'unavailable' (skill missing/executor unavailable) is a visible warning and is skipped
|
|
103
|
+
const mode = result.mode ?? 'blocking';
|
|
104
|
+
return (result.verdict === 'reject' || result.verdict === 'iterate') && mode === 'blocking';
|
|
105
|
+
});
|
|
106
|
+
const blockedReason = reviewBlocker(latestArchitect, latestCritic, options.requireNativeSubagents === true, options.nativeEvidenceComplete)
|
|
107
|
+
?? (blockingGate ? `quality_gate_not_approved:${blockingGate.skill}` : null)
|
|
108
|
+
?? (options.qualityGatesComplete === false ? 'quality_gate_reviews_pending' : null);
|
|
96
109
|
return {
|
|
97
110
|
required: true,
|
|
98
111
|
complete: blockedReason === null,
|
|
@@ -104,6 +117,10 @@ function buildRalplanConsensusGate(architectReviews, criticReviews, options = {}
|
|
|
104
117
|
architect_review: ralplanArchitectReview,
|
|
105
118
|
critic_review: ralplanCriticReview,
|
|
106
119
|
blocked_reason: blockedReason,
|
|
120
|
+
qualityGateResults: Object.fromEntries(currentGateResults.map((result) => [result.skill, {
|
|
121
|
+
verdict: result.verdict,
|
|
122
|
+
summary: result.summary,
|
|
123
|
+
}])),
|
|
107
124
|
};
|
|
108
125
|
}
|
|
109
126
|
function hasNativeSubagentEvidence(review) {
|
|
@@ -189,11 +206,14 @@ export async function runRalplanConsensus(executor, options) {
|
|
|
189
206
|
// same explicit scope instead of falling back to root-only discovery.
|
|
190
207
|
const runtimeSessionId = options.sessionId
|
|
191
208
|
?? (await resolveWritableStateScope(cwd)).sessionId;
|
|
192
|
-
const maxIterations = options.maxIterations ?? 5;
|
|
209
|
+
const maxIterations = Math.min(options.maxIterations ?? 5, 5);
|
|
210
|
+
const gateResults = [];
|
|
193
211
|
const gateOptions = {
|
|
194
212
|
cwd,
|
|
195
213
|
sessionId: runtimeSessionId,
|
|
196
214
|
requireNativeSubagents: options.requireNativeSubagents,
|
|
215
|
+
gateResults,
|
|
216
|
+
qualityGatesComplete: false,
|
|
197
217
|
get iteration() { return iteration; },
|
|
198
218
|
};
|
|
199
219
|
const drafts = [];
|
|
@@ -206,7 +226,7 @@ export async function runRalplanConsensus(executor, options) {
|
|
|
206
226
|
? await readModeStateForExplicitSession('ralplan', runtimeSessionId, cwd)
|
|
207
227
|
: await readModeState('ralplan', cwd);
|
|
208
228
|
const lifecycle = await createRalplanRuntimeLifecycle({ cwd, runtimeSessionId, maxIterations, options, existing });
|
|
209
|
-
const writeRalplanState = (updates) => updateRalplanState(cwd, updates, lifecycle.sessionId);
|
|
229
|
+
const writeRalplanState = (updates) => updateRalplanState(cwd, { ...updates, gateResults }, lifecycle.sessionId);
|
|
210
230
|
const snapshot = (consensusGate = buildRalplanConsensusGate(architectReviews, criticReviews, gateOptions), reviewHistory = buildReviewHistory(drafts, architectReviews, criticReviews)) => ({
|
|
211
231
|
iteration,
|
|
212
232
|
drafts,
|
|
@@ -219,6 +239,7 @@ export async function runRalplanConsensus(executor, options) {
|
|
|
219
239
|
});
|
|
220
240
|
try {
|
|
221
241
|
while (iteration <= maxIterations) {
|
|
242
|
+
gateOptions.qualityGatesComplete = false;
|
|
222
243
|
const reusableRoleLanes = {
|
|
223
244
|
architect: latestCompatibleRoleLane(architectReviews, 'architect', runtimeSessionId),
|
|
224
245
|
critic: latestCompatibleRoleLane(criticReviews, 'critic', runtimeSessionId),
|
|
@@ -230,6 +251,7 @@ export async function runRalplanConsensus(executor, options) {
|
|
|
230
251
|
priorDrafts: [...drafts],
|
|
231
252
|
architectReviews: [...architectReviews],
|
|
232
253
|
criticReviews: [...criticReviews],
|
|
254
|
+
gateResults: [...gateResults],
|
|
233
255
|
reusableRoleLanes,
|
|
234
256
|
};
|
|
235
257
|
await writeRalplanState({
|
|
@@ -365,6 +387,62 @@ export async function runRalplanConsensus(executor, options) {
|
|
|
365
387
|
summary: criticReview.summary,
|
|
366
388
|
preserveCompletionEvidence: true,
|
|
367
389
|
});
|
|
390
|
+
if (criticReview.verdict === 'approve') {
|
|
391
|
+
const normalizedGates = getGatesForStage('ralplan', undefined, cwd);
|
|
392
|
+
for (const gate of normalizedGates) {
|
|
393
|
+
let result;
|
|
394
|
+
try {
|
|
395
|
+
if (!executor.qualityGateReview)
|
|
396
|
+
throw new Error('Native quality gate executor is unavailable');
|
|
397
|
+
const review = await executor.qualityGateReview({
|
|
398
|
+
...iterationContext,
|
|
399
|
+
gateName: gate.skill,
|
|
400
|
+
gateModel: gate.model,
|
|
401
|
+
draft,
|
|
402
|
+
architectReview,
|
|
403
|
+
criticReview,
|
|
404
|
+
});
|
|
405
|
+
if (review.provenance_kind !== 'native_subagent' || !review.thread_id?.trim()) {
|
|
406
|
+
throw new Error('Quality gate requires native_subagent provenance and a thread_id');
|
|
407
|
+
}
|
|
408
|
+
if (!['approve', 'iterate', 'reject'].includes(review.verdict)) {
|
|
409
|
+
throw new Error('Quality gate returned an invalid verdict');
|
|
410
|
+
}
|
|
411
|
+
// Reject gate thread IDs that alias built-in reviewers
|
|
412
|
+
if (review.thread_id === architectReview.thread_id || review.thread_id === criticReview.thread_id) {
|
|
413
|
+
throw new Error('Quality gate thread ID conflicts with built-in reviewer');
|
|
414
|
+
}
|
|
415
|
+
result = {
|
|
416
|
+
skill: gate.skill,
|
|
417
|
+
iteration,
|
|
418
|
+
verdict: review.verdict,
|
|
419
|
+
summary: review.summary ?? '',
|
|
420
|
+
mode: gate.mode ?? 'blocking',
|
|
421
|
+
provenance_kind: review.provenance_kind,
|
|
422
|
+
thread_id: review.thread_id,
|
|
423
|
+
};
|
|
424
|
+
await recordRalplanSubagentTurn(cwd, runtimeSessionId, {
|
|
425
|
+
threadId: review.thread_id,
|
|
426
|
+
laneId: `quality-gate:${gate.skill}`,
|
|
427
|
+
scope: options.task,
|
|
428
|
+
summary: review.summary,
|
|
429
|
+
completed: true,
|
|
430
|
+
completionSource: 'ralplan-quality-gate',
|
|
431
|
+
});
|
|
432
|
+
}
|
|
433
|
+
catch (error) {
|
|
434
|
+
result = {
|
|
435
|
+
skill: gate.skill,
|
|
436
|
+
iteration,
|
|
437
|
+
verdict: 'unavailable',
|
|
438
|
+
summary: error instanceof Error ? error.message : String(error),
|
|
439
|
+
mode: gate.mode ?? 'blocking',
|
|
440
|
+
};
|
|
441
|
+
}
|
|
442
|
+
gateResults.push(result);
|
|
443
|
+
}
|
|
444
|
+
gateOptions.qualityGatesComplete = true;
|
|
445
|
+
}
|
|
368
446
|
const reviewHistory = buildReviewHistory(drafts, architectReviews, criticReviews);
|
|
369
447
|
const consensusGate = buildRalplanConsensusGate(architectReviews, criticReviews, {
|
|
370
448
|
...gateOptions,
|
|
@@ -379,11 +457,11 @@ export async function runRalplanConsensus(executor, options) {
|
|
|
379
457
|
ralplan_consensus_gate: consensusGate,
|
|
380
458
|
review_history: reviewHistory,
|
|
381
459
|
});
|
|
382
|
-
const advisoryCompleted = await lifecycle.completeApproved({
|
|
460
|
+
const advisoryCompleted = consensusGate.complete ? await lifecycle.completeApproved({
|
|
383
461
|
...snapshot(consensusGate, reviewHistory),
|
|
384
462
|
architectReview,
|
|
385
463
|
criticReview,
|
|
386
|
-
});
|
|
464
|
+
}) : null;
|
|
387
465
|
if (advisoryCompleted)
|
|
388
466
|
return advisoryCompleted;
|
|
389
467
|
if (consensusGate.complete) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runtime.js","sourceRoot":"","sources":["../../src/ralplan/runtime.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"runtime.js","sourceRoot":"","sources":["../../src/ralplan/runtime.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -33,7 +33,7 @@ git diff -- <scope>
|
|
|
33
33
|
|
|
34
34
|
1. Identify changed files and review boundaries; do not silently widen the scope.
|
|
35
35
|
2. Launch the `code-reviewer` and `architect` agents in parallel. Both lanes run in parallel on a clean context with explicit scope and artifacts. If either lane cannot be launched or does not return evidence, report `independent review unavailable`; do **not** substitute the current/authoring lane, and do **not** approve or mark the review merge-ready.
|
|
36
|
-
3. Respect the user's current model and reasoning/effort selection. Do not pass `model` or `reasoning_effort` overrides in review-lane calls.
|
|
36
|
+
3. Respect the user's current model and reasoning/effort selection. Do not pass `model` or `reasoning_effort` overrides in the built-in `code-reviewer` and `architect` review-lane calls. A configured custom quality gate may override its own subagent model as described below.
|
|
37
37
|
|
|
38
38
|
```text
|
|
39
39
|
task(
|
|
@@ -57,6 +57,12 @@ Scope: [scope and artifacts]"
|
|
|
57
57
|
)
|
|
58
58
|
```
|
|
59
59
|
|
|
60
|
+
## Custom code-review quality gates
|
|
61
|
+
|
|
62
|
+
After the built-in independent reviews, read `.omx-config.json` `qualityGates."code-review"` with `omx quality-gates list --stage code-review --json`. Each gate specifies `skill`, `mode` (`advisory` or `blocking`), and optional `model`; for example `{"qualityGates":{"code-review":[{"skill":"security-audit","mode":"blocking"}]}}`.
|
|
63
|
+
|
|
64
|
+
Spawn each configured gate skill as a separate subagent with the same scoped diff, requirements, validation evidence, and completed built-in reviews. Honor an optional `model` only for that custom gate. Await results before final synthesis; record each skill, mode, verdict, findings, and evidence in the review receipt. Advisory findings, including unavailable advisory reviews, remain visible but do not independently block approval. A blocking gate that does not approve or cannot return evidence forces **REQUEST CHANGES** and prevents merge-ready status or downstream clean-review progression. Re-review the corrected scope and re-run gates before clearing that blocker; the standalone review remains read-only. Custom gates never replace the required `code-reviewer` and `architect` lanes. An empty gate list preserves the existing review flow.
|
|
65
|
+
|
|
60
66
|
## Review taxonomy
|
|
61
67
|
|
|
62
68
|
- `code-reviewer` checks **Security**, **Code Quality**, **Performance**, **Best Practices**, and **Maintainability**.
|
|
@@ -85,7 +91,7 @@ Combine the `code-reviewer` recommendation and architect status. Approval requir
|
|
|
85
91
|
- Else if architect status is **WATCH**, final recommendation is **COMMENT**.
|
|
86
92
|
- Else final recommendation follows the `code-reviewer` lane.
|
|
87
93
|
|
|
88
|
-
Approval criteria: **APPROVE** only when `code-reviewer` returns APPROVE, architect status is `CLEAR`,
|
|
94
|
+
Approval criteria: **APPROVE** only when `code-reviewer` returns APPROVE, architect status is `CLEAR`, both independent lanes returned evidence, and every configured blocking quality gate passes. **REQUEST CHANGES** for a blocker, unresolved high/critical finding, unavailable lane, or non-passing/unavailable blocking quality gate. **COMMENT** may record non-blocking findings.
|
|
89
95
|
|
|
90
96
|
Do not self-review as a fallback. If the `code-reviewer` or `architect` path is missing, unavailable, skipped, or fails, block approval until independent lane evidence exists. On the supported `omx ralph` CLI compatibility path, findings may trigger automatic fix follow-up without another permission prompt; plain `code-review` itself remains read-only and does **not** promise auto-fix.
|
|
91
97
|
|
|
@@ -116,3 +122,7 @@ Stop when the scoped diff has two independent lane results and a deterministic f
|
|
|
116
122
|
recommendation. Report `APPROVE` only under the approval criteria; otherwise leave a
|
|
117
123
|
bounded `REQUEST CHANGES`, `COMMENT`, or unavailable-review result. Never claim
|
|
118
124
|
merge-ready without the required evidence.
|
|
125
|
+
|
|
126
|
+
## Quality Gates
|
|
127
|
+
|
|
128
|
+
Custom quality gates can be configured for the code-review stage via `.omx-config.json` under `qualityGates."code-review"`. See [Custom Quality Gates Configuration](https://github.com/Yeachan-Heo/oh-my-codex/blob/dev/docs/reference/omx-config-quality-gates.md).
|
|
@@ -365,6 +365,12 @@ Spec should include:
|
|
|
365
365
|
- Technical context findings
|
|
366
366
|
- Full or condensed transcript
|
|
367
367
|
|
|
368
|
+
### Final-spec quality gates
|
|
369
|
+
|
|
370
|
+
Before declaring the final spec ready or entering Phase 5, inspect `.omx-config.json` `qualityGates."deep-interview"` with `omx quality-gates list --stage deep-interview --json`. Gate entries can be plain skill-name strings (blocking mode) or objects with explicit `mode` and optional `model` override: `{"skill": "name", "mode": "blocking|advisory", "model": "claude-opus"}`.
|
|
371
|
+
|
|
372
|
+
Spawn each configured gate skill as a separate subagent with the crystallized spec, context snapshot, and relevant interview evidence. Use its optional model override only for that gate, and await every result before progressing. Record the skill, mode, verdict, findings, and evidence in the spec/handoff receipt. Advisory findings or unavailable advisory reviews are recorded as residual risks without blocking handoff. A blocking gate that does not approve or cannot return evidence prevents final-spec readiness and downstream handoff: refine the spec, ask only the necessary clarification question, then re-run gates on the revised artifact. If the interview hard cap is reached with a blocking gate unresolved, persist a blocked outcome rather than bypassing the gate with a residual-risk warning. With no configured gates, retain the existing readiness checks and handoff behavior. Custom gates do not replace ambiguity, non-goals, or decision-boundary checks.
|
|
373
|
+
|
|
368
374
|
### Autoresearch specialization
|
|
369
375
|
|
|
370
376
|
When the clarified task is specifically about `$autoresearch`, or the skill is invoked with `--autoresearch`, keep the interview domain-specific and emit skill-consumable artifacts without skipping clarification.
|
|
@@ -568,4 +574,9 @@ autopilot -> deep-interview -> ralplan -> ultragoal
|
|
|
568
574
|
- Stage 1 (deep-interview): ambiguity clearance and execution-ready requirements artifact
|
|
569
575
|
- Stage 2 (ralplan): feasibility, architecture, and consensus gate
|
|
570
576
|
- Stage 3 (ultragoal): durable execution, verification, and completion receipts
|
|
577
|
+
|
|
578
|
+
## Quality Gates
|
|
579
|
+
|
|
580
|
+
Custom quality gates can be configured for the deep-interview final-spec stage via `.omx-config.json` under `qualityGates."deep-interview"`. Gate entries support both plain strings (blocking mode) and objects with explicit `mode` and optional `model` override. See [Custom Quality Gates Configuration](https://github.com/Yeachan-Heo/oh-my-codex/blob/dev/docs/reference/omx-config-quality-gates.md) for complete details, mode behavior, and configuration examples.
|
|
581
|
+
|
|
571
582
|
</Advanced>
|
|
@@ -29,7 +29,7 @@ Advisory runs the same sequential Planner → Architect → Critic review lifecy
|
|
|
29
29
|
|
|
30
30
|
## Ontology-heavy review
|
|
31
31
|
|
|
32
|
-
For requirements semantics, taxonomy, prompt/spec design, policy distinctions, or category-risk architecture, cite the `architect` role agent's read-only review as advisory evidence. Its findings can inform the plan or follow-up evidence when explicitly used, but `$ralplan`
|
|
32
|
+
For requirements semantics, taxonomy, prompt/spec design, policy distinctions, or category-risk architecture, cite the `architect` role agent's read-only review as advisory evidence. Its findings can inform the plan or follow-up evidence when explicitly used, but `$ralplan` records Architect→Critic lifecycle evidence plus configured quality-gate results, and advisory review is never a durable execution authorization.
|
|
33
33
|
|
|
34
34
|
## Usage with interactive mode
|
|
35
35
|
|
|
@@ -63,14 +63,30 @@ The consensus workflow:
|
|
|
63
63
|
|
|
64
64
|
3. **Architect** reviews for architectural soundness and must provide the strongest steelman antithesis, at least one real tradeoff tension, and (when possible) synthesis — **await completion before step 4**. Launch this as a subsequent role-specific `Architect` subagent and pass the full task statement, context snapshot, PRD/test-spec paths, and relevant prior findings; do not substitute an unvalidated reviewer identity or a short improvised reviewer prompt. In deliberate mode, Architect should explicitly flag principle violations.
|
|
65
65
|
4. **Critic** evaluates against quality criteria — run only after step 3 completes. Launch this as a subsequent role-specific `Critic` subagent with the full task statement, context snapshot, PRD/test-spec paths, and the completed Architect review; do not ask the Architect subagent to perform the Critic gate and do not substitute an unvalidated reviewer identity or a short improvised reviewer prompt. Critic must enforce principle-option consistency, fair alternatives, risk mitigation clarity, testable acceptance criteria, and concrete verification steps. In deliberate mode, Critic must reject missing/weak pre-mortem or expanded test plan.
|
|
66
|
-
|
|
67
|
-
|
|
66
|
+
**Plan quality gates (after step 4):** Read `.omx-config.json` `qualityGates.ralplan` using `omx quality-gates list --stage ralplan --json`. After the Critic review completes, spawn each configured gate skill as a separate subagent with the current plan, task/context, and completed Architect→Critic reviews. Gates supplement rather than replace those sequential reviewers. Apply an optional `model` only to that custom gate subagent; otherwise inherit the current model. Await results before progressing. Record each gate's skill, mode, verdict, summary, and evidence in the planning receipt (`ralplan_consensus_gate.qualityGateResults` stores the per-skill verdict and summary). Advisory findings, including unavailable advisory reviews, are recorded without blocking progression. A blocking gate that does not approve or cannot return evidence feeds into the revise loop and prevents handoff until it passes on the revised plan.
|
|
67
|
+
|
|
68
|
+
Example `.omx-config.json` configuration (install the referenced custom skills first):
|
|
69
|
+
|
|
70
|
+
```json
|
|
71
|
+
{
|
|
72
|
+
"qualityGates": {
|
|
73
|
+
"ralplan": [
|
|
74
|
+
"design-audit",
|
|
75
|
+
{ "skill": "security-audit", "mode": "blocking" },
|
|
76
|
+
{ "skill": "compliance-check", "mode": "advisory", "model": "claude-opus" }
|
|
77
|
+
]
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
5. **Re-review loop** (max 5 iterations): Any non-`APPROVE` Critic verdict (`ITERATE` or `REJECT`) or non-passing blocking quality gate MUST run the same full closed loop:
|
|
83
|
+
a. Collect Architect, Critic, and quality-gate feedback
|
|
68
84
|
b. Revise the plan with Planner
|
|
69
85
|
c. Return to Architect review
|
|
70
86
|
d. Return to Critic evaluation
|
|
71
|
-
e.
|
|
72
|
-
f. If 5 iterations are reached without
|
|
73
|
-
6. On Critic approval, persist the execution-ready planning artifacts
|
|
87
|
+
e. Re-run the configured quality gates after Critic; repeat until Critic returns `APPROVE` and all blocking gates pass, or 5 iterations are reached
|
|
88
|
+
f. If 5 iterations are reached without approval and passing blocking gates, present the best version and unresolved blockers to the user without execution handoff
|
|
89
|
+
6. On Critic approval and passing blocking quality gates, persist the execution-ready planning artifacts, sequential Architect→Critic evidence, and quality-gate receipt. In standalone interactive Ralplan, present the requested future execution lane. Inside Autopilot, the existing explicit `$autopilot` invocation authorizes the supervised transition to its defining next stage, `$ultragoal`; persist an Autopilot-owned `ralplan_execution_handoff` bound to the same session and review cycle.
|
|
74
90
|
7. Record `ralplan_execution_handoff` with `{authorized: true, reason, authorized_at, session_id, review_cycle, source: "autopilot"|"user"}`. `source:"autopilot"` is valid only for a supervised active Autopilot run whose current phase is `ralplan`; it does not claim host-consensus authority.
|
|
75
91
|
8. Transition to `$ultragoal` after the durable plan, sequential approvals, and bound execution handoff exist. Do not implement directly inside Ralplan.
|
|
76
92
|
|
|
@@ -100,7 +116,7 @@ Before any Autopilot, Ultragoal, Team, or implementation handoff, persist a dura
|
|
|
100
116
|
- `ralplan_execution_handoff`: persist `{authorized: true, reason: "<rationale>", authorized_at: "<ISO timestamp>", session_id: "<current session>", review_cycle: <matching lifecycle cycle>, source: "autopilot"|"user"}`. Autopilot may issue this only for its own supervised `ralplan` phase; standalone Ralplan uses `source:"user"`.
|
|
101
117
|
- `ralplan_consensus_gate.complete` records lifecycle completion after the sequential Architect and Critic approvals. It is not a host-security claim. Locally authored JSON/env/prompt/tracker/transcript/receipt-shaped evidence must never be described as host-issued authority.
|
|
102
118
|
|
|
103
|
-
If Architect is missing/blocked, keep the workflow in Architect review or report that blocker. If Critic is missing/blocked/non-approving, keep the workflow in
|
|
119
|
+
If Architect is missing/blocked, keep the workflow in Architect review or report that blocker. If Critic is missing/blocked/non-approving or a blocking quality gate has not passed, keep the workflow in re-review or report the max-iteration outcome. After both reviews approve and all blocking quality gates pass, execution begins only when the matching `ralplan_execution_handoff` is durable. Existing plan/test-spec files alone are never permission to skip Ralplan or execute.
|
|
104
120
|
|
|
105
121
|
Follow the Plan skill's full documentation for consensus mode details.
|
|
106
122
|
|
|
@@ -147,3 +163,7 @@ Once Ralplan is active, preserve the planning/execution and consensus handoff re
|
|
|
147
163
|
**Good:** The user changes only the output shape or downstream delivery step (for example `make a PR`). Preserve earlier non-conflicting workflow constraints and apply the update locally.
|
|
148
164
|
|
|
149
165
|
**Bad:** The user says `continue`, and the workflow restarts discovery or stops before the missing verification/evidence is gathered.
|
|
166
|
+
|
|
167
|
+
## Quality Gates
|
|
168
|
+
|
|
169
|
+
Custom quality gates can be configured for the ralplan Architect→Critic review stage via `.omx-config.json` under `qualityGates.ralplan`. Gate entries can be plain skill-name strings (blocking mode) or objects with explicit `mode` and optional `model` override: `{"skill": "name", "mode": "blocking|advisory", "model": "claude-opus"}`. This is also used by `$plan` consensus mode. See [Custom Quality Gates Configuration](https://github.com/Yeachan-Heo/oh-my-codex/blob/dev/docs/reference/omx-config-quality-gates.md) for complete details and examples.
|
|
@@ -133,7 +133,23 @@ Team mode is the structured multi-agent surface. Use it when durable staged coor
|
|
|
133
133
|
</team_pipeline>
|
|
134
134
|
|
|
135
135
|
<team_model_resolution>
|
|
136
|
-
Team/Swarm worker model
|
|
136
|
+
Team/Swarm worker model selection (for worker roles only, NOT native Codex subagents):
|
|
137
|
+
|
|
138
|
+
- At launch, a per-worker `OMX_TEAM_WORKER_LAUNCH_ARGS --model` that differs from the inherited leader `--model` wins.
|
|
139
|
+
- Otherwise, `.omx-config.json` `agentModels[role]` or an applicable role `exactModel` pin is selected before the inherited leader model. Team worker `exactModel` pins apply regardless of provider.
|
|
140
|
+
- If neither a per-agent override nor an applicable exact pin applies, an inherited leader `--model` wins before the computed role fallback.
|
|
141
|
+
- When no inherited model is available, the role fallback resolves in this order:
|
|
142
|
+
1. `.omx-config.json` `agentModels[role]` override
|
|
143
|
+
2. Role ending in `-low` → spark chain
|
|
144
|
+
3. Role `exactModel` pin (`planner`/`architect`/`researcher` → `gpt-6-astra`); Team pins apply regardless of provider
|
|
145
|
+
4. `executor` special case → frontier/main chain
|
|
146
|
+
5. Otherwise by `modelClass`: `fast` → spark; `frontier` → main; `standard` → standard lane
|
|
147
|
+
|
|
148
|
+
Role defaults use `OMX_DEFAULT_FRONTIER_MODEL`, `OMX_DEFAULT_STANDARD_MODEL`, or `OMX_DEFAULT_SPARK_MODEL` as applicable; the legacy spark alias is `OMX_SPARK_MODEL`. The spark chain does not fall back to the `config.toml` root model.
|
|
149
|
+
|
|
150
|
+
For native Codex subagents, model selection is different: they inherit the active `config.toml`/provider model except for pinned roles (`planner`/`architect`/`researcher` with built-in providers) and per-agent `agentModels` overrides. Environment variables like `OMX_DEFAULT_FRONTIER_MODEL` do NOT set the native TOML `model` field or change native runtime model selection; they configure Team worker fallback and mode resolution and may be reflected in generated `resolved_model` or AGENTS.md model-table metadata.
|
|
151
|
+
|
|
152
|
+
Normalize model flags to one canonical `--model <value>` entry. Use `OMX_DEFAULT_FRONTIER_MODEL` / `OMX_DEFAULT_STANDARD_MODEL` / `OMX_DEFAULT_SPARK_MODEL` for Team worker defaults, not for native subagent configuration.
|
|
137
153
|
</team_model_resolution>
|
|
138
154
|
|
|
139
155
|
<!-- OMX:MODELS:START -->
|
|
@@ -33,7 +33,7 @@ git diff -- <scope>
|
|
|
33
33
|
|
|
34
34
|
1. Identify changed files and review boundaries; do not silently widen the scope.
|
|
35
35
|
2. Launch the `code-reviewer` and `architect` agents in parallel. Both lanes run in parallel on a clean context with explicit scope and artifacts. If either lane cannot be launched or does not return evidence, report `independent review unavailable`; do **not** substitute the current/authoring lane, and do **not** approve or mark the review merge-ready.
|
|
36
|
-
3. Respect the user's current model and reasoning/effort selection. Do not pass `model` or `reasoning_effort` overrides in review-lane calls.
|
|
36
|
+
3. Respect the user's current model and reasoning/effort selection. Do not pass `model` or `reasoning_effort` overrides in the built-in `code-reviewer` and `architect` review-lane calls. A configured custom quality gate may override its own subagent model as described below.
|
|
37
37
|
|
|
38
38
|
```text
|
|
39
39
|
task(
|
|
@@ -57,6 +57,12 @@ Scope: [scope and artifacts]"
|
|
|
57
57
|
)
|
|
58
58
|
```
|
|
59
59
|
|
|
60
|
+
## Custom code-review quality gates
|
|
61
|
+
|
|
62
|
+
After the built-in independent reviews, read `.omx-config.json` `qualityGates."code-review"` with `omx quality-gates list --stage code-review --json`. Each gate specifies `skill`, `mode` (`advisory` or `blocking`), and optional `model`; for example `{"qualityGates":{"code-review":[{"skill":"security-audit","mode":"blocking"}]}}`.
|
|
63
|
+
|
|
64
|
+
Spawn each configured gate skill as a separate subagent with the same scoped diff, requirements, validation evidence, and completed built-in reviews. Honor an optional `model` only for that custom gate. Await results before final synthesis; record each skill, mode, verdict, findings, and evidence in the review receipt. Advisory findings, including unavailable advisory reviews, remain visible but do not independently block approval. A blocking gate that does not approve or cannot return evidence forces **REQUEST CHANGES** and prevents merge-ready status or downstream clean-review progression. Re-review the corrected scope and re-run gates before clearing that blocker; the standalone review remains read-only. Custom gates never replace the required `code-reviewer` and `architect` lanes. An empty gate list preserves the existing review flow.
|
|
65
|
+
|
|
60
66
|
## Review taxonomy
|
|
61
67
|
|
|
62
68
|
- `code-reviewer` checks **Security**, **Code Quality**, **Performance**, **Best Practices**, and **Maintainability**.
|
|
@@ -85,7 +91,7 @@ Combine the `code-reviewer` recommendation and architect status. Approval requir
|
|
|
85
91
|
- Else if architect status is **WATCH**, final recommendation is **COMMENT**.
|
|
86
92
|
- Else final recommendation follows the `code-reviewer` lane.
|
|
87
93
|
|
|
88
|
-
Approval criteria: **APPROVE** only when `code-reviewer` returns APPROVE, architect status is `CLEAR`,
|
|
94
|
+
Approval criteria: **APPROVE** only when `code-reviewer` returns APPROVE, architect status is `CLEAR`, both independent lanes returned evidence, and every configured blocking quality gate passes. **REQUEST CHANGES** for a blocker, unresolved high/critical finding, unavailable lane, or non-passing/unavailable blocking quality gate. **COMMENT** may record non-blocking findings.
|
|
89
95
|
|
|
90
96
|
Do not self-review as a fallback. If the `code-reviewer` or `architect` path is missing, unavailable, skipped, or fails, block approval until independent lane evidence exists. On the supported `omx ralph` CLI compatibility path, findings may trigger automatic fix follow-up without another permission prompt; plain `code-review` itself remains read-only and does **not** promise auto-fix.
|
|
91
97
|
|
|
@@ -116,3 +122,7 @@ Stop when the scoped diff has two independent lane results and a deterministic f
|
|
|
116
122
|
recommendation. Report `APPROVE` only under the approval criteria; otherwise leave a
|
|
117
123
|
bounded `REQUEST CHANGES`, `COMMENT`, or unavailable-review result. Never claim
|
|
118
124
|
merge-ready without the required evidence.
|
|
125
|
+
|
|
126
|
+
## Quality Gates
|
|
127
|
+
|
|
128
|
+
Custom quality gates can be configured for the code-review stage via `.omx-config.json` under `qualityGates."code-review"`. See [Custom Quality Gates Configuration](https://github.com/Yeachan-Heo/oh-my-codex/blob/dev/docs/reference/omx-config-quality-gates.md).
|
|
@@ -365,6 +365,12 @@ Spec should include:
|
|
|
365
365
|
- Technical context findings
|
|
366
366
|
- Full or condensed transcript
|
|
367
367
|
|
|
368
|
+
### Final-spec quality gates
|
|
369
|
+
|
|
370
|
+
Before declaring the final spec ready or entering Phase 5, inspect `.omx-config.json` `qualityGates."deep-interview"` with `omx quality-gates list --stage deep-interview --json`. Gate entries can be plain skill-name strings (blocking mode) or objects with explicit `mode` and optional `model` override: `{"skill": "name", "mode": "blocking|advisory", "model": "claude-opus"}`.
|
|
371
|
+
|
|
372
|
+
Spawn each configured gate skill as a separate subagent with the crystallized spec, context snapshot, and relevant interview evidence. Use its optional model override only for that gate, and await every result before progressing. Record the skill, mode, verdict, findings, and evidence in the spec/handoff receipt. Advisory findings or unavailable advisory reviews are recorded as residual risks without blocking handoff. A blocking gate that does not approve or cannot return evidence prevents final-spec readiness and downstream handoff: refine the spec, ask only the necessary clarification question, then re-run gates on the revised artifact. If the interview hard cap is reached with a blocking gate unresolved, persist a blocked outcome rather than bypassing the gate with a residual-risk warning. With no configured gates, retain the existing readiness checks and handoff behavior. Custom gates do not replace ambiguity, non-goals, or decision-boundary checks.
|
|
373
|
+
|
|
368
374
|
### Autoresearch specialization
|
|
369
375
|
|
|
370
376
|
When the clarified task is specifically about `$autoresearch`, or the skill is invoked with `--autoresearch`, keep the interview domain-specific and emit skill-consumable artifacts without skipping clarification.
|
|
@@ -568,4 +574,9 @@ autopilot -> deep-interview -> ralplan -> ultragoal
|
|
|
568
574
|
- Stage 1 (deep-interview): ambiguity clearance and execution-ready requirements artifact
|
|
569
575
|
- Stage 2 (ralplan): feasibility, architecture, and consensus gate
|
|
570
576
|
- Stage 3 (ultragoal): durable execution, verification, and completion receipts
|
|
577
|
+
|
|
578
|
+
## Quality Gates
|
|
579
|
+
|
|
580
|
+
Custom quality gates can be configured for the deep-interview final-spec stage via `.omx-config.json` under `qualityGates."deep-interview"`. Gate entries support both plain strings (blocking mode) and objects with explicit `mode` and optional `model` override. See [Custom Quality Gates Configuration](https://github.com/Yeachan-Heo/oh-my-codex/blob/dev/docs/reference/omx-config-quality-gates.md) for complete details, mode behavior, and configuration examples.
|
|
581
|
+
|
|
571
582
|
</Advanced>
|
package/skills/ralplan/SKILL.md
CHANGED
|
@@ -29,7 +29,7 @@ Advisory runs the same sequential Planner → Architect → Critic review lifecy
|
|
|
29
29
|
|
|
30
30
|
## Ontology-heavy review
|
|
31
31
|
|
|
32
|
-
For requirements semantics, taxonomy, prompt/spec design, policy distinctions, or category-risk architecture, cite the `architect` role agent's read-only review as advisory evidence. Its findings can inform the plan or follow-up evidence when explicitly used, but `$ralplan`
|
|
32
|
+
For requirements semantics, taxonomy, prompt/spec design, policy distinctions, or category-risk architecture, cite the `architect` role agent's read-only review as advisory evidence. Its findings can inform the plan or follow-up evidence when explicitly used, but `$ralplan` records Architect→Critic lifecycle evidence plus configured quality-gate results, and advisory review is never a durable execution authorization.
|
|
33
33
|
|
|
34
34
|
## Usage with interactive mode
|
|
35
35
|
|
|
@@ -63,14 +63,30 @@ The consensus workflow:
|
|
|
63
63
|
|
|
64
64
|
3. **Architect** reviews for architectural soundness and must provide the strongest steelman antithesis, at least one real tradeoff tension, and (when possible) synthesis — **await completion before step 4**. Launch this as a subsequent role-specific `Architect` subagent and pass the full task statement, context snapshot, PRD/test-spec paths, and relevant prior findings; do not substitute an unvalidated reviewer identity or a short improvised reviewer prompt. In deliberate mode, Architect should explicitly flag principle violations.
|
|
65
65
|
4. **Critic** evaluates against quality criteria — run only after step 3 completes. Launch this as a subsequent role-specific `Critic` subagent with the full task statement, context snapshot, PRD/test-spec paths, and the completed Architect review; do not ask the Architect subagent to perform the Critic gate and do not substitute an unvalidated reviewer identity or a short improvised reviewer prompt. Critic must enforce principle-option consistency, fair alternatives, risk mitigation clarity, testable acceptance criteria, and concrete verification steps. In deliberate mode, Critic must reject missing/weak pre-mortem or expanded test plan.
|
|
66
|
-
|
|
67
|
-
|
|
66
|
+
**Plan quality gates (after step 4):** Read `.omx-config.json` `qualityGates.ralplan` using `omx quality-gates list --stage ralplan --json`. After the Critic review completes, spawn each configured gate skill as a separate subagent with the current plan, task/context, and completed Architect→Critic reviews. Gates supplement rather than replace those sequential reviewers. Apply an optional `model` only to that custom gate subagent; otherwise inherit the current model. Await results before progressing. Record each gate's skill, mode, verdict, summary, and evidence in the planning receipt (`ralplan_consensus_gate.qualityGateResults` stores the per-skill verdict and summary). Advisory findings, including unavailable advisory reviews, are recorded without blocking progression. A blocking gate that does not approve or cannot return evidence feeds into the revise loop and prevents handoff until it passes on the revised plan.
|
|
67
|
+
|
|
68
|
+
Example `.omx-config.json` configuration (install the referenced custom skills first):
|
|
69
|
+
|
|
70
|
+
```json
|
|
71
|
+
{
|
|
72
|
+
"qualityGates": {
|
|
73
|
+
"ralplan": [
|
|
74
|
+
"design-audit",
|
|
75
|
+
{ "skill": "security-audit", "mode": "blocking" },
|
|
76
|
+
{ "skill": "compliance-check", "mode": "advisory", "model": "claude-opus" }
|
|
77
|
+
]
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
5. **Re-review loop** (max 5 iterations): Any non-`APPROVE` Critic verdict (`ITERATE` or `REJECT`) or non-passing blocking quality gate MUST run the same full closed loop:
|
|
83
|
+
a. Collect Architect, Critic, and quality-gate feedback
|
|
68
84
|
b. Revise the plan with Planner
|
|
69
85
|
c. Return to Architect review
|
|
70
86
|
d. Return to Critic evaluation
|
|
71
|
-
e.
|
|
72
|
-
f. If 5 iterations are reached without
|
|
73
|
-
6. On Critic approval, persist the execution-ready planning artifacts
|
|
87
|
+
e. Re-run the configured quality gates after Critic; repeat until Critic returns `APPROVE` and all blocking gates pass, or 5 iterations are reached
|
|
88
|
+
f. If 5 iterations are reached without approval and passing blocking gates, present the best version and unresolved blockers to the user without execution handoff
|
|
89
|
+
6. On Critic approval and passing blocking quality gates, persist the execution-ready planning artifacts, sequential Architect→Critic evidence, and quality-gate receipt. In standalone interactive Ralplan, present the requested future execution lane. Inside Autopilot, the existing explicit `$autopilot` invocation authorizes the supervised transition to its defining next stage, `$ultragoal`; persist an Autopilot-owned `ralplan_execution_handoff` bound to the same session and review cycle.
|
|
74
90
|
7. Record `ralplan_execution_handoff` with `{authorized: true, reason, authorized_at, session_id, review_cycle, source: "autopilot"|"user"}`. `source:"autopilot"` is valid only for a supervised active Autopilot run whose current phase is `ralplan`; it does not claim host-consensus authority.
|
|
75
91
|
8. Transition to `$ultragoal` after the durable plan, sequential approvals, and bound execution handoff exist. Do not implement directly inside Ralplan.
|
|
76
92
|
|
|
@@ -100,7 +116,7 @@ Before any Autopilot, Ultragoal, Team, or implementation handoff, persist a dura
|
|
|
100
116
|
- `ralplan_execution_handoff`: persist `{authorized: true, reason: "<rationale>", authorized_at: "<ISO timestamp>", session_id: "<current session>", review_cycle: <matching lifecycle cycle>, source: "autopilot"|"user"}`. Autopilot may issue this only for its own supervised `ralplan` phase; standalone Ralplan uses `source:"user"`.
|
|
101
117
|
- `ralplan_consensus_gate.complete` records lifecycle completion after the sequential Architect and Critic approvals. It is not a host-security claim. Locally authored JSON/env/prompt/tracker/transcript/receipt-shaped evidence must never be described as host-issued authority.
|
|
102
118
|
|
|
103
|
-
If Architect is missing/blocked, keep the workflow in Architect review or report that blocker. If Critic is missing/blocked/non-approving, keep the workflow in
|
|
119
|
+
If Architect is missing/blocked, keep the workflow in Architect review or report that blocker. If Critic is missing/blocked/non-approving or a blocking quality gate has not passed, keep the workflow in re-review or report the max-iteration outcome. After both reviews approve and all blocking quality gates pass, execution begins only when the matching `ralplan_execution_handoff` is durable. Existing plan/test-spec files alone are never permission to skip Ralplan or execute.
|
|
104
120
|
|
|
105
121
|
Follow the Plan skill's full documentation for consensus mode details.
|
|
106
122
|
|
|
@@ -147,3 +163,7 @@ Once Ralplan is active, preserve the planning/execution and consensus handoff re
|
|
|
147
163
|
**Good:** The user changes only the output shape or downstream delivery step (for example `make a PR`). Preserve earlier non-conflicting workflow constraints and apply the update locally.
|
|
148
164
|
|
|
149
165
|
**Bad:** The user says `continue`, and the workflow restarts discovery or stops before the missing verification/evidence is gathered.
|
|
166
|
+
|
|
167
|
+
## Quality Gates
|
|
168
|
+
|
|
169
|
+
Custom quality gates can be configured for the ralplan Architect→Critic review stage via `.omx-config.json` under `qualityGates.ralplan`. Gate entries can be plain skill-name strings (blocking mode) or objects with explicit `mode` and optional `model` override: `{"skill": "name", "mode": "blocking|advisory", "model": "claude-opus"}`. This is also used by `$plan` consensus mode. See [Custom Quality Gates Configuration](https://github.com/Yeachan-Heo/oh-my-codex/blob/dev/docs/reference/omx-config-quality-gates.md) for complete details and examples.
|