Execute a Bounded Pipeline
Mereproduksi code-change run yang improvisasional, lalu mengubahnya menjadi Anvia pipeline yang eksplisit.
Failure pattern
Coding agent menentukan workflow sendiri: inspect file acak, edit code, run command luas, summarize dengan percaya diri, lalu stop. Kalau baseline sudah broken atau target failure belum pernah direproduksi, final answer tetap terdengar selesai.
Reproduce the failure
await agent.prompt("Fix invite acceptance and tell me when it is done.").send();
Tidak ada urutan wajib: work surface, preflight, reproduce failure, patch, verify, review packet.
Successful Anvia pattern
Gunakan PipelineBuilder untuk membuat workflow coding eksplisit.
import { PipelineBuilder } from "@anvia/core";
const codingPipeline = new PipelineBuilder<CodingTask>({
id: "invite-acceptance-fix",
name: "Invite acceptance fix pipeline",
})
.step(validateWorkSurface, { name: "Validate work surface" })
.step(runRepoPreflight, { name: "Run repo preflight" })
.step(reproduceTargetFailure, { name: "Reproduce target failure" })
.prompt(codingAgent, { name: "Prepare bounded patch" })
.step(runRequiredEvidence, { name: "Run required evidence" })
.step(buildReviewPacket, { name: "Build review packet" })
.build();
const result = await codingPipeline.run(task);
Why it succeeds
Pipeline mencegah urutan buruk: edit dulu, pahami belakangan. Agent tidak bisa skip target failure. Summary tidak menggantikan evidence.
Successful pattern
task
-> validate work surface
-> preflight repo
-> reproduce target failure
-> prepare bounded patch
-> run required checks
-> build review packet
Success check
Setiap stage menjawab satu pertanyaan: behavior apa yang active, apakah repo state diketahui, apakah failure terlihat sebelum patch, apakah patch tetap in-scope, evidence apa yang membuktikan perubahan, dan apa yang harus human reviewer inspect.