Skip to content

/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 ​

AspectBehavior
RoleThe Project Manager. Reports current reality, never alters it.
TargetPlan files (plan_*.md), track reports (track_report.md), and git status — scoped by directory argument.
Cell scopeNone. /wbStandup is strictly read-only.
Side effects allowedNone. Reading files is the only operation.
Side effects forbiddenEditing 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 ​

FormExampleWhat /wbStandup reads
No argumentCommand: /wbStandupCurrent directory's plan + reports + tracks.
Package pathCommand: /wbStandup packages/wb-corewb-core's .agents/workflows/reports/ tree.
Comma-separatedCommand: /wbStandup packages/wb-core,packages/wb-dataviewerBoth packages. Unified briefing showing cross-package dependencies.
Wildcard globCommand: /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 ​

FlagShortcutPurpose
--act-aIndependent and composable with --wbPlan.
--wbPlan-PIndependent and composable with --act.
--archive-AUniversal, 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-nWith --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 Exhaustive Simulation
Morning kickoff with blocker triage/wbStandup packages/wb-core -f="blockers"
> /wbStandup packages/wb-core -f="blockers"
[SYSTEM] Initiating Blocker Triage for packages/wb-core...
[READ] plan_wb-core_20260504.md (3 rows)
[FOCUS] Filtering for DAG blockages and validation failures.
# Standup: wb-core — Blocker Report
## Blocked Tasks
- **Row 3** (WBC.js decomposition) — ⬜ Pending
- Blocked by: nothing (Deps 1, 2 satisfied ✅)
- Actual status: **unblocked but untouched**
## Validation Gaps
- Row 1 (JWT handshake) — ✅ Done, ✅ Valid
- Row 2 (renderString escape) — ✅ Done, ✅ Valid
## Summary
No hard blockers. 1 unstarted task with satisfied deps.
**Recommendation:** Run `/wbWork --id="3"` to clear the queue.
⚠️ Note: The developer starts the day and wants to know exactly what's blocking progress in wb-core:

💠 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 ​

TriggerWhat /wbStandup does
No plan file in scopeReports: ⚠️ 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.