Local-Private Happy Path
Use this flow when the task starts as a local record under flow/state/tasks/.
First run
Section titled “First run”wap-flow install-hookswap-flow task local init --key <task-key> --title "<title>" --spec <path> --objective "<objective>" --scope-in "<in>" --scope-out "<out>" --acceptance "<criterion>" --validation "<command or evidence>"wap-flow start --task local:<task-key> --spec <path>wap-flow plan record --summary "<summary>" --step "<step>" --step "<step>"wap-flow checkwap-flow inspect issuewap-flow complete --evidence "<what passed>"task local init creates the authoritative local record and switches onto the expected task-<task-key>_... branch automatically.
Local-private closeout
Section titled “Local-private closeout”Local-private tasks can be accepted and finalized without promotion. Use --surface local for purely local findings or --surface issue when you want issue-style findings and resolution state to stay local-private.
wap-flow accept init --preset manual --profile local --surface <local|issue>wap-flow accept manual --by <name> --result pass --evidence "<what was reviewed>"wap-flow accept finalizeThis records local accepted/finalized state under flow/state/acceptance/. It does not open or close any GitHub issue, and it does not use the pr lifecycle. surface: issue is a real local-private path, not a promotion shim.
Promotion to GitHub-backed authority
Section titled “Promotion to GitHub-backed authority”Promote only when the task needs GitHub-backed PR lifecycle or GitHub-visible issue closure:
wap-flow task local promote --task local:<task-key> --repo <owner/name> --parent <number>wap-flow start --task github:<owner/name>#<issue> --spec <path>After promotion, the local task record is frozen and the GitHub-backed issue becomes authoritative.
Common guardrails
Section titled “Common guardrails”- Local tasks still need a canonical spec and a bound branch.
acceptdoes operate on local-private authority in v1.prdoes not operate on local-private authority in v1.- Recreate old local task records instead of trying to keep unsupported historical schemas alive.