/wbTrack — Exhaustive Simulation ()
/wbTrack is a toggle, not a one-shot. It activates session tracking for the current model — from that point, every /wb* command produces its normal report and appends a §N narrative section to a universal daily session file. The design decision that matters most: all models share one file per day per scope. There are no <model>/ subfolders.
Read this if you want to know what "universal daily file" means in practice, why the tracks/reports split exists, and how the multi-model contribution model prevents collisions.
1. Role & target
| Aspect | Behavior |
|---|---|
| Role | The Session Logger. Transforms scattered command outputs into a single-day narrative. |
| Target | A package or the monorepo root — determines the scope of the session file. |
| Cell scope | None. /wbTrack never touches plan cells, never writes reports. It owns tracks/ exclusively. |
| Side effects allowed | Creating the session file, appending §N sections, running /wbStandup as a sub-command for §0. |
| Side effects forbidden | Modifying reports, editing plans, altering code, running tests. |
The tracks/reports split is the core architectural decision. Reports are structured, machine-scannable outputs that /wbStandup and /wbPlan read. Tracks are human-readable narratives with commentary, model recommendations, and strategic analysis. The same /wbTest run produces a test report (in reports/) and a §N section (in tracks/) — two outputs, two audiences, zero overlap.
Why not just add commentary to the report? Because reports need to be append-only and schema-stable for downstream consumers. Commentary is free-form and model-specific — it would pollute the scan surface.
2. The argument grammar
/wbTrack accepts one optional positional argument: the scope.
| Form | Example | Meaning |
|---|---|---|
| No argument | Command: /wbTrack | Scope = monorepo root (core2/). Session file at core2/.agents/workflows/tracks/<date>/track_core2_<date>.md. |
| Package path | Command: /wbTrack packages/wb-core | Scope = wb-core. Session file at packages/wb-core/.agents/workflows/tracks/<date>/track_wb-core_<date>.md. |
| App path | Command: /wbTrack apps/demo.wbc-ui.com | Scope = demo app. Session file in the app's own .agents/workflows/tracks/. |
No glob, no comma-separated, no --id. The scope is always one directory. You track one thing at a time per model — this is a hard rule, not a missing feature. Parallel tracking would produce interleaved §N sections with no clear narrative order.
3. Flag matrix
/wbTrack has exactly two flags. The command's value is in the toggle behavior, not in configuration.
| Flag | Shortcut | Purpose |
|---|---|---|
--finalize | -f | On /wbStopTrack --finalize: extract derivative files (tips, warnings, importants, commentaries, all_commands, resume) from the session file. Without it, /wbStopTrack writes only the §STOP block. |
--scope | -s | When the model is already tracking, reports which scope is active. No mutation. |
The -f flag is intentionally on /wbStopTrack, not on /wbTrack itself. Extracting derivatives mid-session would produce partial summaries. The design forces you to finalize at session end — when all §N sections exist.
What /wbTrack doesn't have: --date, --merge, --dry-run. These exist on the agent's version but are absent here. the agent's /wbTrack doesn't need --date because you can't retroactively inject yourself into a past session — that's historical fabrication. --merge is implicit (Smart Merge always applies when the file exists). --dry-run is meaningless for a toggle.
4. Pipelines (the agent-native scenarios)
/wbTrack packages/wb-core> /wbTrack packages/wb-core💠 Pipeline First model starts the day
Morning. the AI agent opens a session on wb-core. The file doesn't exist yet.
💠 Pipeline Second model joins the same session
Afternoon. the AI agent opens a session on the same scope. The file already exists.
💠 Pipeline Cross-package work during a session
The model is tracking wb-core but runs a command on wb-dataviewer:
5. Edge cases & refusals
| Trigger | What /wbTrack does |
|---|---|
/wbTrack packages/wb-core when already tracking core2 | Halt. ⚠️ Already tracking: core2. Run /wbStopTrack first. |
/wbTrack with no scope twice (same model) | Halt. Same — already tracking. |
/wbStopTrack --finalize mid-day | Proceeds but prints a warning: ⚠️ Partial session. Derivatives will be incomplete — consider waiting until end of day. |
/wbTrack packages/wb-core when the folder doesn't have .agents/workflows/ | Creates the directory structure. Not a refusal — /wbTrack is allowed to bootstrap. |
| Two models tracking different scopes simultaneously | Fine. Model A tracks core2, Model B tracks wb-core. Different files, no collision. |
| Same model tracking the same scope it already stopped | Fine. /wbStopTrack just writes §STOP — /wbTrack can re-open and append a new contributor entry. |
The unifying principle: /wbTrack is a state toggle with single-scope enforcement per model. It doesn't have complex filter grammar because it doesn't need it — you're either tracking one thing or you're not. The complexity lives in the §N sections that accumulate during the session, not in the command's own argument parsing.
