ExamplesLoop Config

Loop Config Examples

All three presets shown as complete, ready-to-use .loop/config.yaml files. Pick one and drop it in your repo root.

Minimal Preset

Total autonomy. The plugin only stops for hard safety-floor events (rule violations, hotfix detection). Ideal for repetitive tickets after a calibration period.

# .loop/config.yaml
autonomy:
  preset: minimal   # Plugin proceeds on all gates except the safety floor.
                    # Budget overruns: ignored up to the global cap.
                    # ADR conflicts: logged in the ADR, run continues.
                    # Self-healing exhausted: added to STATE, no interruption.
                    # Spec gaps: marked TBD, not asked.
                    # PR creation: draft PR opened automatically.
                    # Rule violations + hotfix: ALWAYS ask (non-configurable floor).

Ownership Preset

Human owns architectural and risk decisions; the plugin owns routine execution. Expect 3–5 interactions per development ticket, at the moments that matter.

# .loop/config.yaml
autonomy:
  preset: ownership # Human is consulted for:
                    #   - ADR conflicts with open PRs (adr_conflict_gate → ask)
                    #   - Self-healing exhausted after retries (self_healing_exhaust_gate → ask)
                    #   - PR ready to be created (pr_creation_gate → ask)
                    #   - Rule violations + hotfix (safety floor — always ask)
                    # Plugin proceeds autonomously for:
                    #   - Small budget deltas
                    #   - Verifier auto-fix for lint/type/test failures (2 retries)
                    #   - Spec gaps (marked TBD)
                    #   - Ticket status updates

Custom Preset

You define every gate explicitly. Every gate listed below is required — the plugin rejects partial custom configs at boot.

# .loop/config.yaml
autonomy:
  preset: custom    # ALL gates must be defined. Missing any → boot error.
 
gates:
  budget_gate:
    enabled: true
    threshold_usd: 2.00       # Ask if the plan estimates spending more than $2.00.
    threshold_tokens: 150000  # Ask if the plan estimates more than 150k tokens.
    on_exceed: ask            # ask | proceed | abort
 
  verifier_blocking_gate:
    enabled: true
    on_blocking: auto_fix     # ask | auto_fix | proceed_with_warnings | abort
    auto_fix_max_retries: 3   # 0–5. Values > 5 are rejected (infinite-loop prevention).
 
  adr_conflict_gate:
    enabled: true
    on_high_conflict: ask     # ask | proceed_with_record | abort
 
  adr_rule_violation_gate:
    enabled: true
    on_violation: ask         # ask | abort. "proceed" is REJECTED — rules are non-negotiable.
 
  spec_clarification_gate:
    enabled: true
    on_gaps: ask              # ask | use_defaults_and_flag | abort
    max_questions: 3          # 0–20. Values > 20 are rejected (friction cap).
 
  self_healing_exhaust_gate:
    enabled: true
    on_exhausted: ask         # ask | escalate_silent | abort
 
  ticket_status_update_gate:
    enabled: true
    on_complete: proceed      # ask | proceed | proceed_with_record | skip
 
  pr_creation_gate:
    enabled: true
    on_ready: ask             # ask | proceed (always draft) | skip
 
  notification_gate:
    enabled: true             # true | false
    on_complete: proceed      # proceed | skip