Skip to content

CODY-115: Add mode system and two-threshold model to orchestrate-dev - #123

Merged
williamthorsen merged 3 commits into
mainfrom
115
Mar 2, 2026
Merged

CODY-115: Add mode system and two-threshold model to orchestrate-dev#123
williamthorsen merged 3 commits into
mainfrom
115

Conversation

@williamthorsen

Copy link
Copy Markdown
Owner

What

Adds a --mode=<vibe|strict> argument to /orchestrate-dev and replaces the boolean --fix-low/--no-fix-low flag with a two-threshold model (--approval-threshold and --budget-threshold). Each mode is a preset bundle that configures pipeline phases, review thresholds, model assignments, and review round limits. The threshold model gives finer-grained control over which findings block approval versus which consume review budget opportunistically.

Why

The orchestration system ran a single configuration for all tasks. Well-understood tasks (small features, bug fixes) were over-provisioned — architecture and planning phases ran unnecessarily, low-criticality findings consumed review budget, and the holistic reviewer always used the most expensive model. There was no way to select a lighter-weight profile without manually passing multiple arguments on every invocation. The boolean --fix-low was too coarse, offering only all-or-nothing control.

Details

Features

  • --mode=vibe: lightweight orchestration — skips architecture/planning, sets high approval/budget thresholds, uses sonnet for holistic review, limits to 1 review round
  • --mode=strict: thorough orchestration — all phases required, 4 review rounds
  • Default mode (no --mode) preserves identical behavior to the previous version
  • --approval-threshold=<low|medium|high>: findings at or above this level block code approval
  • --budget-threshold=<low|medium|high>: findings at or above this level consume review budget opportunistically
  • Five-rule threshold-based decision tree in Phase 4 and Phase 4b flow control
  • Resolution cascade: explicit CLI args > mode preset > preferences.yaml > legacy alias > engine default
  • --fix-low/--no-fix-low retained as backward-compatible aliases
  • run-index.json schema updated: fixLowFindings replaced with approvalThreshold and budgetThreshold

Test plan

  • Verify pnpm run ws typecheck passes in agents package
  • Verify pnpm run ws test passes in agents package
  • Trace default mode through flow control: confirm identical behavior to pre-change baseline
  • Trace vibe mode: confirm architecture/planning absent, approval_threshold=high, budget_threshold=high, max-review-rounds=1
  • Trace strict mode: confirm all phases required, max-review-rounds=4
  • Verify --fix-low/--no-fix-low backward-compatible aliases map correctly to threshold values
  • Verify run-index.json schema uses approvalThreshold/budgetThreshold instead of fixLowFindings
  • Cross-check threshold argument names and level values across all 4 skill files

Closes #115. Follow-up: #122 (minor wording refinements in review-cycle.md).

Add --mode=<vibe|strict> argument to orchestrate-dev with per-mode pipeline tables and preset bundles. Replace boolean --fix-low/--no-fix-low with --approval-threshold and --budget-threshold for finer-grained control over which findings block approval vs. get opportunistic budget. Update flow control in Phase 4 and Phase 4b to use the two-threshold model. Retain --fix-low/--no-fix-low as backward-compatible aliases. Update run-index.json schema (fixLowFindings -> approvalThreshold + budgetThreshold).
… model

Fix Phase 4b behavioral regression where low criticality with exhausted
budget exited as needs_manual_review instead of converged, breaking
backward compatibility with default mode. Remove mode preset step from
engine's threshold resolution cascade since mode resolution is the
wrapper's responsibility. Clarify holistic_reviewer naming convention
and update Phase 4a entry condition to use threshold-based language.
…flow control

Extend Phase 4a entry-condition description to cover the budget-exhausted path where criticality remains between thresholds but no review rounds remain. Remove the redundant standalone `none` bullet from Phase 4b flow control and absorb it into the `criticality < budget_threshold` rule, consistent with the Phase 4 pattern.
@williamthorsen williamthorsen self-assigned this Mar 2, 2026
@williamthorsen williamthorsen added feature Added or improved external functionality scope:agents labels Mar 2, 2026
@williamthorsen williamthorsen changed the title CODY-115 agents | feat: Add mode system and two-threshold model to orchestrate-dev CODY-115: Add mode system and two-threshold model to orchestrate-dev Mar 2, 2026
@williamthorsen
williamthorsen merged commit 5fa3f9d into main Mar 2, 2026
1 check passed
@williamthorsen
williamthorsen deleted the 115 branch March 2, 2026 13:49
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

feature Added or improved external functionality scope:agents

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Add mode system and two-threshold model to orchestrate-dev

1 participant