/wbStandup — Exhaustive Simulation ()
/wbStandup is the morning briefer. It reads — never writes to — plans, reports, and track files, then delivers a synthesized status snapshot. The central design constraint: read-only. Unlike /wbNext (which recommends and can auto-execute), /wbStandup simply reports. It tells you where things stand and lets you decide what to do about it.
Read this if you want to know how the briefing aggregates cross-package data and where the read-only boundary sits.
1. Role & target
| Aspect | Behavior |
|---|---|
| Role | The Project Manager. Reports current reality, never alters it. |
| Target | Plan files (plan_*.md), track reports (track_report.md), and git status — scoped by directory argument. |
| Cell scope | None. /wbStandup is strictly read-only. |
| Side effects allowed | None. Reading files is the only operation. |
| Side effects forbidden | Editing plans, running tests, modifying code, writing reports. |
The read-only constraint is load-bearing. /wbStandup gets called inside /wbTrack's §0 as a sub-command — its full output gets pasted inline. If it had side effects, the session initialization would mutate state as a byproduct of describing state. That would break the observer/actor separation that the whole framework relies on.
2. Argument resolution
| Form | Example | What /wbStandup reads |
|---|---|---|
| No argument | Command: /wbStandup | Current directory's plan + reports + tracks. |
| Package path | Command: /wbStandup packages/wb-core | wb-core's .agents/workflows/reports/ tree. |
| Comma-separated | Command: /wbStandup packages/wb-core,packages/wb-dataviewer | Both packages. Unified briefing showing cross-package dependencies. |
| Wildcard glob | Command: /wbStandup apps/* | All consumer apps. Sprint-level overview. |
The comma-separated form is the interesting one. When you brief on wb-core,wb-dataviewer together, the standup doesn't just concatenate two reports — it identifies cross-package dependencies. If wb-dataviewer's plan has a task that depends on wb-core's row 3, and row 3 is ⬜, that shows up as a cross-package blocker.
3. Flag matrix
| Flag | Shortcut | Purpose |
|---|---|---|
--act | -a | Independent and composable with --wbPlan. |
--wbPlan | -P | Independent and composable with --act. |
--archive | -A | Universal, and here it means the fleet-wide sweep: consolidate into every scope's newest file per category, then retire the superseded folders below the target. Defaults to --archive=all. The standup's own standups/ folder and every tracks/ folder are never swept. Previews first, and asks before applying. |
--dry-run | -n | With --archive: print the move list for every scope, move nothing. |
--snap | — | Universal. Pins this run's output into .wb/snaps/<YYYYMMDD>_<label>/. |
--next | — | Universal. Prints the /wbNext recommendation after the briefing. |
4. Pipelines (the agent-native scenarios)
/wbStandup packages/wb-core -f="blockers"> /wbStandup packages/wb-core -f="blockers"💠 Pipeline Morning kickoff with blocker triage
The developer starts the day and wants to know exactly what's blocking progress in wb-core:
💠 Pipeline Executive summary across all apps
Monday morning. The lead wants a high-level view of all consumer apps for management:
💠 Pipeline Deep standup on a package with stale data
The developer suspects yesterday's reports are outdated. They want the standup to also surface git diff evidence:
5. Edge cases & refusals
| Trigger | What /wbStandup does |
|---|---|
| No plan file in scope | Reports: ⚠️ No active plan found for <scope>. Run /wbContext followed by /wbPlan to generate one. |
**/* glob (too broad) | ❌ Too many scopes. Narrow to a specific directory or use apps/* or packages/*. |
| Empty plan (file exists, 0 rows) | ⚠️ Plan exists but contains 0 tasks. Run /wbAudit to generate findings, then /wbPlan. |
/wbStandup on a scope with no .agents/workflows/ | ⚠️ No workflow directory found. Run /wbContext <scope> to initialize. |
The pattern across all of these: /wbStandup never halts on missing data — it degrades gracefully. Missing track file? Skip the "yesterday" section. Missing plan? Suggest how to create one. Empty plan? Point to the audit command. The standup is the entry point for many sessions, so it can't be brittle. Compare to /wbWork, which halts aggressively on missing data — the worker can't guess what to implement, but the briefer can always summarize what exists.
