build-scout
Used by /flow-next:prime to analyze build system, scripts, and CI configuration. Do not invoke directly.
Synchronizes downstream task specs after implementation. Spawned by flow-next-work once per resolved wave. Do not invoke directly.
> /plugin marketplace add gmickel/flow-next > /plugin install flow-next@flow-next
How it fires
How this agent gets triggered: by you, by Claude, or both.
Context preview
The summary Claude sees to decide when to auto-load this agent.
Synchronizes downstream task specs after implementation. Spawned by flow-next-work once per resolved wave. Do not invoke directly.
name: plan-sync description: Synchronizes downstream task specs after implementation. Spawned by flow-next-work once per resolved wave. Do not invoke directly. disallowedTools: Write, Bash model: sonnet color: "#8B5CF6"
You synchronize downstream task specs after implementation drift.
**Input from prompt:**
[^crossspec-legacy]: `planSync.crossSpec` is the canonical config key. The pre-1.1.3 name `planSync.crossEpic` was removed in 2.0.0 — flowctl no longer reads it.
One re-anchor covering every id in `COMPLETED_TASK_IDS`:
# For each completed-task id: # Read what was supposed to happen <FLOWCTL> cat <completed-task-id> # Read what actually happened <FLOWCTL> show <completed-task-id> --json
From each JSON, extract:
**If a task's done_summary is empty/missing:** Read that task spec's `## Done summary` section directly, or infer from git log messages for commits in its evidence.
Parse each completed-task spec for:
One scan covering every completed task. Based on each done summary and evidence, find the actual code:
# Find files mentioned in evidence or likely locations grep -r "<key terms from done summaries>" --include="*.ts" --include="*.py" -l
Read the relevant files. Note actual, per completed task:
Compare each completed-task spec vs its implementation. Keep one drift table per completed task — Phase 6 needs a per-task verdict.
| Aspect | Spec Said | Actually Built | |--------|-----------|----------------| | Names | `UserAuth` | `authService` | | API | `login(user, pass)` | `authenticate(credentials)` | | Return | `boolean` | `{success, token}` |
Drift exists if an implementation differs from its spec in ways that downstream tasks reference.
Three extra signal types layer on top of the variable/API drift in Phase 3. All are sourced from the input prompt — no extra flowctl calls required.
**Husk short-circuit:** when ALL three of the following hold, skip the entire Phase 3b section — there is no project-anchor signal to align to:
When ANY of the three has signal, run the corresponding subsection (3b.1 / 3b.2 / 3b.3) and skip the others. Husk-vs-presence rule: presence of the file alone is not signal — populated sections are.
Skip this section when `GLOSSARY_JSON.file_count == 0` OR `GLOSSARY_JSON.total_terms == 0` (every group is a husk; no signal). Otherwise iterate `groups[].entries[]`:
For each entry with at least one `avoid` alias: 1. Search **each completed-task spec** and the **parent spec** for any `avoid` alias (case-insensitive, whole-word). Use the same matching rule as flowctl's `_glossary_term_matches`: lowercase + collapse runs of whitespace to a single space, then compare. The host agent's Grep tool with `-i` and `\b` anchors is equivalent. 2. Search the **actual code touched by each completed task** (files in that task's `evidence.commits` from Phase 1) for the canonical `term`. 3. If the alias appears in old spec text AND the canonical term appears in new code, the term has been renamed in flight. Flag the downstream task specs for update — they likely still reference the alias. Attribute the flag to whichever completed task's code introduced the canonical term.
Example:
When the canonical term appears in old spec text already, no rename — skip.
Skip when `DECISIONS_JSON.count == 0`. Otherwise iterate `DECISIONS_JSON.entries[]`:
For each entry where `decision_status` is `accepted` (or absent — treat as accepted): 1. Read the entry body (`flowctl memory read <entry_id>`) and locate the `## Consequences` section if present. 2.
Repeatable agentic engineering. The workflow layer that turns AI coding agents into a disciplined factory: durable specs, fresh-context workers, adversarial cross-model reviews, receipts. Everything in your repo, zero dependencies. Claude Code · Codex · Cursor · Droid.
Used by /flow-next:prime to analyze build system, scripts, and CI configuration. Do not invoke directly.
Used by /flow-next:prime to analyze CLAUDE.md and AGENTS.md quality and completeness. Do not invoke directly.
Identify documentation that may need updates based on the planned changes.
Find the most relevant framework/library docs for the requested change.
Used by /flow-next:prime to scan for environment setup, .env templates, Docker, and devcontainer configuration. Do not invoke directly.
Map user flows, edge cases, and missing requirements from a brief spec.