Skip to content

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

AspectBehavior
RoleThe Session Logger. Transforms scattered command outputs into a single-day narrative.
TargetA package or the monorepo root — determines the scope of the session file.
Cell scopeNone. /wbTrack never touches plan cells, never writes reports. It owns tracks/ exclusively.
Side effects allowedCreating the session file, appending §N sections, running /wbStandup as a sub-command for §0.
Side effects forbiddenModifying 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.

FormExampleMeaning
No argumentCommand: /wbTrackScope = monorepo root (core2/). Session file at core2/.agents/workflows/tracks/<date>/track_core2_<date>.md.
Package pathCommand: /wbTrack packages/wb-coreScope = wb-core. Session file at packages/wb-core/.agents/workflows/tracks/<date>/track_wb-core_<date>.md.
App pathCommand: /wbTrack apps/demo.wbc-ui.comScope = 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.

FlagShortcutPurpose
--finalize-fOn /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-sWhen 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 Exhaustive Simulation
First model starts the day/wbTrack packages/wb-core
> /wbTrack packages/wb-core
[SYSTEM] Scope: packages/wb-core
[CHECK] tracks/2026/05/04/track_wb-core_20260504.md → does not exist.
[CREATE] Initializing universal daily session file.
[SUB-COMMAND] Running /wbStandup wb-core (mandatory for §0)...
# Track: wb-core — 2026-05-04
> **Target:** packages/wb-core
> **Created by:** the AI agent via Antigravity
> **Started:** 2026-05-04 09:12
> **Status:** 🟢 ACTIVE
# §0 — Strategic Vision *(the AI agent — 09:12)*
## Current State
[Reads wb-core source, .agents/workflows/, past reports]
## Past Debt: /wbStandup wb-core output
[Full standup output pasted inline — not referenced, not summarized]
## My Recommendation
| Order | Command | Why | Recommended Models |
|---|---|---|---|
| 1 | /wbAudit packages/wb-core -P | tierEnforcement.js has parked tech debt | the agent 4 / the agent 4 |
| 2 | /wbWork --id="1" | JWT handshake is unblocked | the agent 4 |
...
[OK] Tracking ON. Every /wb* command will now append §N to this file.
⚠️ Note: Morning. the AI agent opens a session on `wb-core`. The file doesn't exist yet.

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

TriggerWhat /wbTrack does
/wbTrack packages/wb-core when already tracking core2Halt. ⚠️ Already tracking: core2. Run /wbStopTrack first.
/wbTrack with no scope twice (same model)Halt. Same — already tracking.
/wbStopTrack --finalize mid-dayProceeds 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 simultaneouslyFine. Model A tracks core2, Model B tracks wb-core. Different files, no collision.
Same model tracking the same scope it already stoppedFine. /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.