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.
Files changed (74) hide show
  1. package/Cargo.lock +6 -6
  2. package/Cargo.toml +1 -1
  3. package/dist/agents/native-config.d.ts +12 -0
  4. package/dist/agents/native-config.d.ts.map +1 -1
  5. package/dist/agents/native-config.js +12 -0
  6. package/dist/agents/native-config.js.map +1 -1
  7. package/dist/bin/__tests__/quality-gates-cli.test.d.ts +2 -0
  8. package/dist/bin/__tests__/quality-gates-cli.test.d.ts.map +1 -0
  9. package/dist/bin/__tests__/quality-gates-cli.test.js +110 -0
  10. package/dist/bin/__tests__/quality-gates-cli.test.js.map +1 -0
  11. package/dist/bin/quality-gates-cli.d.ts +18 -0
  12. package/dist/bin/quality-gates-cli.d.ts.map +1 -0
  13. package/dist/bin/quality-gates-cli.js +107 -0
  14. package/dist/bin/quality-gates-cli.js.map +1 -0
  15. package/dist/cli/__tests__/doctor-state-root-binding.test.js +18 -1
  16. package/dist/cli/__tests__/doctor-state-root-binding.test.js.map +1 -1
  17. package/dist/cli/__tests__/launch-fallback.test.js +11 -3
  18. package/dist/cli/__tests__/launch-fallback.test.js.map +1 -1
  19. package/dist/cli/doctor.d.ts.map +1 -1
  20. package/dist/cli/doctor.js +17 -4
  21. package/dist/cli/doctor.js.map +1 -1
  22. package/dist/cli/index.d.ts +2 -2
  23. package/dist/cli/index.d.ts.map +1 -1
  24. package/dist/cli/index.js +21 -1
  25. package/dist/cli/index.js.map +1 -1
  26. package/dist/cli/session-search.js +1 -1
  27. package/dist/config/__tests__/quality-gates.test.d.ts +2 -0
  28. package/dist/config/__tests__/quality-gates.test.d.ts.map +1 -0
  29. package/dist/config/__tests__/quality-gates.test.js +369 -0
  30. package/dist/config/__tests__/quality-gates.test.js.map +1 -0
  31. package/dist/config/models.d.ts +4 -1
  32. package/dist/config/models.d.ts.map +1 -1
  33. package/dist/config/models.js +4 -1
  34. package/dist/config/models.js.map +1 -1
  35. package/dist/config/quality-gates.d.ts +97 -0
  36. package/dist/config/quality-gates.d.ts.map +1 -0
  37. package/dist/config/quality-gates.js +232 -0
  38. package/dist/config/quality-gates.js.map +1 -0
  39. package/dist/hooks/__tests__/code-review-skill-contract.test.js +2 -2
  40. package/dist/hooks/__tests__/code-review-skill-contract.test.js.map +1 -1
  41. package/dist/hooks/__tests__/session.test.js +311 -1
  42. package/dist/hooks/__tests__/session.test.js.map +1 -1
  43. package/dist/hooks/session.d.ts +9 -8
  44. package/dist/hooks/session.d.ts.map +1 -1
  45. package/dist/hooks/session.js +125 -32
  46. package/dist/hooks/session.js.map +1 -1
  47. package/dist/mcp/__tests__/state-paths.test.js +47 -0
  48. package/dist/mcp/__tests__/state-paths.test.js.map +1 -1
  49. package/dist/mcp/state-paths.d.ts +2 -2
  50. package/dist/mcp/state-paths.d.ts.map +1 -1
  51. package/dist/mcp/state-paths.js +4 -3
  52. package/dist/mcp/state-paths.js.map +1 -1
  53. package/dist/quality-gates/index.d.ts +7 -0
  54. package/dist/quality-gates/index.d.ts.map +1 -0
  55. package/dist/quality-gates/index.js +8 -0
  56. package/dist/quality-gates/index.js.map +1 -0
  57. package/dist/ralplan/__tests__/runtime.test.js +43 -1
  58. package/dist/ralplan/__tests__/runtime.test.js.map +1 -1
  59. package/dist/ralplan/runtime-contract.d.ts +22 -0
  60. package/dist/ralplan/runtime-contract.d.ts.map +1 -1
  61. package/dist/ralplan/runtime.d.ts +10 -1
  62. package/dist/ralplan/runtime.d.ts.map +1 -1
  63. package/dist/ralplan/runtime.js +83 -5
  64. package/dist/ralplan/runtime.js.map +1 -1
  65. package/package.json +1 -1
  66. package/plugins/oh-my-codex/.codex-plugin/plugin.json +1 -1
  67. package/plugins/oh-my-codex/skills/code-review/SKILL.md +12 -2
  68. package/plugins/oh-my-codex/skills/deep-interview/SKILL.md +11 -0
  69. package/plugins/oh-my-codex/skills/ralplan/SKILL.md +27 -7
  70. package/plugins/oh-my-codex/templates/AGENTS.md +17 -1
  71. package/skills/code-review/SKILL.md +12 -2
  72. package/skills/deep-interview/SKILL.md +11 -0
  73. package/skills/ralplan/SKILL.md +27 -7
  74. package/templates/AGENTS.md +17 -1
@@ -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 blockedReason = reviewBlocker(latestArchitect, latestCritic, options.requireNativeSubagents === true, options.nativeEvidenceComplete);
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
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "oh-my-codex",
3
- "version": "0.21.39",
3
+ "version": "0.21.41",
4
4
  "description": "Multi-agent orchestration layer for OpenAI Codex CLI",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "oh-my-codex",
3
- "version": "0.21.39",
3
+ "version": "0.21.41",
4
4
  "description": "Multi-agent orchestration layer for OpenAI Codex CLI",
5
5
  "author": {
6
6
  "name": "Yeachan Heo",
@@ -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`, and both independent lanes returned evidence. **REQUEST CHANGES** for a blocker, unresolved high/critical finding, or unavailable lane. **COMMENT** may record non-blocking findings.
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` itself records Architect→Critic lifecycle evidence only, and advisory review is never a durable execution authorization.
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
- 5. **Re-review loop** (max 5 iterations): Any non-`APPROVE` Critic verdict (`ITERATE` or `REJECT`) MUST run the same full closed loop:
67
- a. Collect Architect and Critic feedback
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. Repeat this loop until Critic returns `APPROVE` or 5 iterations are reached
72
- f. If 5 iterations are reached without `APPROVE`, present the best version to the user
73
- 6. On Critic approval, persist the execution-ready planning artifacts and sequential Architect→Critic evidence. 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.
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 Critic/re-review or report the max-iteration outcome. After both reviews approve, 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.
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 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.
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`, and both independent lanes returned evidence. **REQUEST CHANGES** for a blocker, unresolved high/critical finding, or unavailable lane. **COMMENT** may record non-blocking findings.
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` itself records Architect→Critic lifecycle evidence only, and advisory review is never a durable execution authorization.
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
- 5. **Re-review loop** (max 5 iterations): Any non-`APPROVE` Critic verdict (`ITERATE` or `REJECT`) MUST run the same full closed loop:
67
- a. Collect Architect and Critic feedback
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. Repeat this loop until Critic returns `APPROVE` or 5 iterations are reached
72
- f. If 5 iterations are reached without `APPROVE`, present the best version to the user
73
- 6. On Critic approval, persist the execution-ready planning artifacts and sequential Architect→Critic evidence. 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.
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 Critic/re-review or report the max-iteration outcome. After both reviews approve, 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.
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.