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 updatesCustom 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