Changes and workflow
Understand how proposals, worktrees, apply loops, acceptance, and merges fit together day to day.
Conflux becomes much easier to reason about when you treat each change as a small, auditable unit.
The change directory is the contract
In practice, each OpenSpec change gives Conflux a durable contract:
proposal.md: why the change existstasks.md: concrete implementation workspecs/.../spec.md: expected behavior or deltas
The orchestrator is strongest when these files are specific enough that an acceptance agent can judge the result without guessing the intent.
Daily loop
A typical operator loop looks like this:
- Create or refine a proposal.
- Commit the proposal so the repository is clean.
- Run
cflxorcflx run. - Inspect the resulting diff, logs, and acceptance verdict.
- Archive, resolve, or split the change depending on the outcome.
Why worktrees matter
Conflux uses git worktree to isolate changes. That has two practical benefits:
- Independent changes can move in parallel.
- A failed or noisy change does not have to corrupt the main workspace.
This is one of the main differences between Conflux and a single chat-driven coding session.
Practical rule
If two pieces of work would be painful to review together, they should probably be two separate OpenSpec changes and therefore two separate worktrees.
TUI versus headless execution
Use the TUI when you want to make execution decisions interactively.
cflxUse headless execution when you already know which change should run.
cflx run cflx run --change add-feature-xAcceptance is not optional polish
Conflux explicitly separates the implementation role from the acceptance role. This is not cosmetic. It changes the behavior of the system:
- the implementation agent can move fast,
- the acceptance agent can stay conservative,
- the final decision is less likely to collapse into self-confirmation.
Teams that skip this distinction often recreate the same blind spots as a single-agent workflow.
When to split a change
Split a change when:
tasks.mdcovers too many unrelated areas,- acceptance keeps failing for independent reasons,
- the review diff is large enough that a human cannot judge it comfortably,
- you want some work to finish and merge earlier than the rest.
Operational checkpoints
These checks keep runs boring in the good way:
| Check | Why it matters |
|---|---|
git status is clean | Prevent unrelated edits from leaking into a run |
| proposal is committed | Makes the run reproducible |
| tasks are concrete | Gives acceptance something objective to verify |
| change is scoped | Improves agent focus and review quality |
After a run
Once a run completes, ask these questions:
- Did the diff satisfy the proposal and tasks?
- Did acceptance fail for a real issue or because the scope is underspecified?
- Is this ready to archive and merge, or does it need a follow-up change?
That final triage step is where Conflux stops being a cool demo and becomes a real workflow.
Related guides
All guidesGetting started
6 minInstall Conflux, initialize a project, create the first change proposal, and complete the first run.
Next guideServer mode and Web UI
6 minRun Conflux as a daemon, expose the dashboard, and connect remote clients over HTTP and WebSocket.
Next guideConfiguration basics
5 minPick config locations, generate templates, and choose what should or should not be committed to git.
Next guide