Controlled vibe coding as a governed cycle
Vibe coding becomes an engineering workflow only when AI has bounded input, an allowed change area, a short feedback loop, and a human control point. The goal is not to obtain the largest diff, but to quickly test one hypothesis without losing traceability.
Before each iteration, record the task contract, affected paths, expected signal, and stop condition. If the model proposes a change outside the boundaries, adds unnecessary cleanup, or cannot explain the verification path, stop the cycle instead of expanding the prompt.
Small diff as a quality boundary
| Signal | Controlled variant | HOLD / stop |
|---|---|---|
| Scope | One behavior or one reviewable slice | Unexpected modules or redesign |
| Diff | Small related changes with an explanation | Mass cleanup or mixed concerns |
| Verification | Targeted check defined before editing | No oracle or result is Unknown |
| Decision | A human reviews the diff and next step | Automatic continuation without a checkpoint |
Iteration contract
# CONTROLLED_VIBE_CODING.md
Goal: implement one bounded change
Allowed paths: <explicit files or directories>
Expected diff: one behavior, no unrelated cleanup
Check: <targeted command or review step>
Stop when: scope expands, contract is unclear, or check is unavailable
Human gate: inspect diff and decide continue / revise / HOLD
Status: documented example; execution result: Unknown.Canonical lesson source · JavaRush
Open JavaRush material