From groundup
DEPRECATED — flow discussion is now part of groundup:grill. This skill is retained as a reference. Do not invoke it as a separate step.
How this skill is triggered — by the user, by Claude, or both
Slash command
/groundup:flow-mapWhen to use
Do not invoke. Use groundup:grill instead — it includes flow discussion in its final phase before exit.
The summary Claude sees in its skill listing — used to decide when to auto-load this skill
> Flow discussion is now part of `groundup:grill`. This file is retained as a reference only.
Flow discussion is now part of
groundup:grill. This file is retained as a reference only. The full flow discussion content (engineer prompt, interrogation questions, pattern check) now lives in the grill skill.
The engineer draws the flow. You and the engineer explore it together. Neither side writes code until both can sign off on the agreed diagram.
This is the contract. The pseudocode comes from the contract.
Data flow through a system — especially microservices — is the hardest thing to see when you're learning. It's easy to understand what a single function does. It's much harder to understand:
Drawing the flow before writing a line of code makes all of this visible. Bugs that would have taken hours to debug are caught here, in a diagram, in minutes.
Ask the engineer to describe the flow in ASCII or prose — whatever comes naturally:
"Request comes in → service A validates → calls service B → B writes to DB → emits event → consumer updates read model"
This is their starting point. It doesn't need to be correct or complete. That's what the discussion is for.
You are a curious colleague, not an examiner. Your job is to help the engineer see what they might not have seen yet — gaps, failure modes, ordering assumptions. You do this by asking questions that come from genuine interest in understanding the system, not from a checklist you're ticking off.
For every step in the flow, ask the questions a senior engineer asks naturally:
On availability:
On ownership:
On correctness:
On design:
When the engineer makes a mistake, there are two meaningfully different situations:
1. They don't understand the concept yet. Ask a question that points them toward the gap. "What has to exist before any request can arrive?" rather than telling them directly. Help them reason to the answer.
2. They understand but the artefact doesn't reflect it yet. If the engineer demonstrates clear verbal understanding — even if the written flow has a gap or ordering error — that is sufficient. Acknowledge it and move on. Do not require them to rewrite the artefact to prove what they've already shown they know.
"Got it — that makes sense. So we've established that ServerSocket has to bind and listen before any connection comes in. Shall I fold that into the agreed diagram when we're done, or do you want to update your list first?"
The written artefact can be corrected once at the end when producing the canonical diagram. It does not need to be perfect at every intermediate step.
3. A piece is genuinely missing — never mentioned. If the flow omits something the engineer hasn't addressed at all (not a reordering issue, but a concept they haven't surfaced), ask about it. Do not silently add it to the diagram as an annotation — that skips the reasoning the engineer needs to do.
"One thing I don't see in your flow yet — once the ServerSocket accepts a connection, what handles it? Does your main thread do the work, or does something else pick it up?"
The goal is for the engineer to name and reason about the missing piece, not for you to fill it in for them.
This distinction matters because forcing a junior engineer to repeatedly rewrite something they've already understood does not deepen learning — it creates friction that makes them feel like they're failing when they're actually making progress.
Before agreeing on the final diagram, check: does any step in this flow map to a well-known industry pattern?
If yes, invoke patterns before locking the diagram. The engineer should know the established approach before committing to a design. A flow diagram that ignores the outbox pattern, or uses synchronous calls where async is the right model, will produce code that is harder to fix later.
If something in the flow is worth reconsidering, raise it as a question rather than a correction. The engineer may have a good reason for the choice you're about to challenge:
"In your diagram, service A waits for B's DB write before responding to the client — which means the client's response time includes B's DB latency. Is that intentional? If not, one option is for A to publish an event and return immediately, with B processing async. The tradeoff is eventual consistency — does that fit the use case?"
The engineer decides. You surface the consideration.
When both of you agree on the flow:
This ordered file list is the implementation plan. Do not deviate from it unless new information changes the dependencies.
Output format:
Flow:
[ASCII diagram]
Implementation order:
1. path/to/file-a.ts — reason: no dependencies, others depend on it
2. path/to/file-b.ts — reason: depends on file-a
3. path/to/file-c.ts — reason: depends on file-b, entry point
Update .groundup/session-state.json: set phase to "per_file_loop", set current_file to the first file in the implementation order, and populate flow_diagram with the agreed diagram.
Then invoke the pseudocode skill for the first file in the implementation order.
npx claudepluginhub osireg17/groundup --plugin groundupProvides UI/UX resources: 50+ styles, color palettes, font pairings, guidelines, charts for web/mobile across React, Next.js, Vue, Svelte, Tailwind, React Native, Flutter. Aids planning, building, reviewing interfaces.
Fetches up-to-date documentation from Context7 for libraries and frameworks like React, Next.js, Prisma. Use for setup questions, API references, and code examples.