Skip to content

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

Description

@williamthorsen

Problem

The /orchestrate-dev skill runs a single configuration: optional architecture/planning, fix all findings, opus holistic reviewer. For well-understood tasks (small features, bug fixes, straightforward refactors), this is over-provisioned — architecture and planning phases are skipped anyway, low-criticality findings consume review budget, and the holistic reviewer uses the most expensive model.

There is no way to select a lighter-weight orchestration profile without manually passing multiple -- arguments on every invocation.

Proposed solution

1. Mode system on /orchestrate-dev

Add a --mode=<vibe|strict> argument (default = no mode, preserving current behavior). Each mode is a preset bundle of settings:

Setting vibe (default) strict
architecture absent optional required
planning absent optional required
approval-threshold high low low
budget-threshold high low low
holistic_reviewer sonnet opus opus
max-review-rounds 1 3 4

Mode presets are defaults — any setting can be individually overridden via explicit CLI arguments (e.g., --mode=vibe --approval-threshold=medium).

2. Two-threshold model replacing --fix-low/--no-fix-low

Replace the boolean --fix-low/--no-fix-low with two orthogonal thresholds:

  • --approval-threshold=<low|medium|high>: Findings at this level or above must be fixed for code approval. Findings below are reported but don't block.
  • --budget-threshold=<low|medium|high>: Remaining review-round budget is spent only on findings at this level or above. Findings below this level are not fixed even if budget remains (unless they also meet the approval threshold).

Interaction:

criticality >= approval_threshold  →  MUST fix (blocks approval)
criticality >= budget_threshold    →  MAY fix (opportunistic, if budget remains)
criticality < both thresholds      →  report only

Backward compatibility: --fix-low--approval-threshold=low --budget-threshold=low; --no-fix-low--approval-threshold=medium --budget-threshold=medium.

3. Resolution cascade

For all mode-affected settings:

  1. Explicit CLI arg (highest priority)
  2. Mode preset (if --mode specified)
  3. orchestration.<key> in preferences.yaml
  4. Legacy alias (fix_low_findings → mapped to thresholds)
  5. Engine default

Files affected

File Change
packages/agents/content/skills/orchestrate-dev/SKILL.md Rewrite: add modes, per-mode pipeline tables, threshold arguments
packages/agents/content/skills/orchestrate/SKILL.md Edit: thresholds replace --fix-low, update resolution cascades, run-index.json schema
packages/agents/content/skills/orchestrate/modules/review-cycle.md Edit: threshold-based flow control in Phase 4 and Phase 4b
packages/agents/content/skills/orchestrate-review/SKILL.md Edit: threshold arguments (no mode support — fixed pipeline)
.agents/PROJECT.md Edit: document modes in orchestration entry points

Acceptance criteria

  • /orchestrate-dev accepts --mode=vibe and --mode=strict arguments
  • Default mode (no --mode) preserves identical behavior to the current /orchestrate-dev
  • vibe mode: pipeline has only implementation + review-cycle (no architecture, no planning); approval-threshold=high, budget-threshold=high, holistic_reviewer=sonnet, max-review-rounds=1
  • strict mode: pipeline has all four phases as required; max-review-rounds=4
  • --approval-threshold and --budget-threshold arguments are accepted by the engine and review-cycle module
  • Flow control in Phase 4 (parallel review) and Phase 4b (holistic review) uses the two-threshold model
  • --fix-low/--no-fix-low remain as backward-compatible aliases mapping to the appropriate threshold values
  • run-index.json config records approvalThreshold and budgetThreshold instead of fixLowFindings
  • Explicit CLI arguments override mode preset values
  • /orchestrate-review accepts the new threshold arguments (no mode support needed)
  • .agents/PROJECT.md documents the mode system

Metadata

Metadata

Labels

featureAdded or improved external functionalityscope:agents

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions