Date: 2026-04-11 Scope: Daily development operating mode for human contributors and coding agents.
DEV MODE exists to maximize shipping speed while preserving strict WaveIL-first ownership guarantees.
Primary goals:
- Keep fast iteration for weekend project constraints.
- Prevent semantic regressions during runtime and policy work.
- Preserve a stable path to production OS capabilities.
- WaveIL-first ownership remains mandatory.
- No new Python policy branches for shell, input, explorer, or service orchestration decisions.
- Compatibility-first refactors only:
- Keep existing opcode names valid during transitions.
- Keep existing imports from WCM module stable.
- Never block feature work behind broad refactor-only phases.
- Full CI sweep is checkpoint validation, not every-change validation.
Intent:
- Python is a simulated chipset, not the OS.
- WaveIL is the OS control plane.
Python allowed surface (and only this surface):
- Substrate simulation and timing.
- Device ingress plumbing (keyboard, pointer, input queues, driver boundaries).
- Display egress plumbing (surface/frame output).
- Storage and HAL effect primitives.
- Runtime/interpreter plumbing that executes WaveIL instructions.
Python forbidden surface:
- Deciding shell policy outcomes.
- Deciding input route/focus semantics.
- Deciding explorer/file policy outcomes.
- Deciding service orchestration outcomes.
- Any fallback branch that changes behavior after WaveIL flow execution.
WaveIL mandatory ownership:
- Boot decisions and orchestration rules.
- Shell and window manager control semantics.
- Input routing and focus semantics.
- Explorer/file semantic operations.
- App policy and service policy decisions.
Static chipset ABI policy:
- Treat the Python chipset interface as production hardware contract.
- ABI changes are rare and expensive by default.
- New primitive opcodes require explicit justification and compatibility notes.
- Existing primitive behavior cannot silently change.
Change control for Python primitives:
- Additive changes preferred over mutating semantics.
- Any primitive behavior change must include:
- strict-waveil-first-gate pass,
- abi-smoke pass,
- ci-sweep checkpoint pass,
- migration note in PR summary.
- No convenience-only Python shortcuts that bypass WaveIL decision flow.
Depythonization posture:
- Convenience Python wrappers are transitional and should be removed over time.
- Every migrated behavior should move from Python decision logic to WaveIL flow logic.
- If uncertain, split the change into:
- WaveIL decides what should happen,
- Python primitive performs how it is applied.
Identity guardrail:
- The project target is a WaveIL-owned OS over a simulated chipset.
- The project must never drift into a Python OS with WaveIL as cosmetic layer.
Canonical source:
sdk_apps/system_policy/policy_registry.jsonis the source of truth for:
- boot-required package membership,
- app kind to package/bind/tick mappings,
- launcher metadata,
- policy tick runtime contracts.
Generated outputs:
sdk_apps/system_policy/package_index.jsonsdk_apps/system_policy/generated/policy_dispatch.jsonsdk_apps/system_policy/generated/opcode_aliases.jsonsdk_apps/system_policy/generated/launcher_catalog.json
Rules:
- Do not hand-edit generated JSON outputs.
- Do not hand-edit generator-owned routing in
sdk_apps/system_policy/wave.shell.wpk.json;policy_registry.py generatemay rewriteapp_create_flow,app_tick_dispatch_flow, and generated helper flows for untyped app-policy entries. - Package wiring changes should go through
installer.pyor a direct edit topolicy_registry.json, followed by regeneration. - Registry or installer changes must run
policy_registry.py checkbefore Tier A is considered complete.
Target runtime: about 20-90 seconds.
Commands:
- c:/Users/lukas/Desktop/WCM/.venv/Scripts/python.exe -m py_compile wcm.py main.py scenarios/scenario_runners.py scenarios/waveil_flow_gates.py
- c:/Users/lukas/Desktop/WCM/.venv/Scripts/python.exe main.py --scenario strict-waveil-first-gate --ticks 200
- For registry/installer/policy wiring changes also run: c:/Users/lukas/Desktop/WCM/.venv/Scripts/python.exe policy_registry.py check
Use when:
- Runtime dispatch edits
- WaveIL opcode handler changes
- Policy bridge updates
- Registry, installer, or generated policy wiring edits
Pass criteria:
- No syntax errors
- strict-waveil-first-gate final_ok is true
- python_owner_delta is 0
Target runtime: about 2-3 minutes.
Commands:
- c:/Users/lukas/Desktop/WCM/.venv/Scripts/python.exe main.py --scenario abi-smoke --ticks 250
- Plus one domain gate based on changed area:
- storage-backend-gate or storage-backends-gate for storage work
- waveil-explorer-flow for explorer/file flow work
- driver-kpi-gate for driver/input/perf-sensitive work
Use when:
- New feature slice is complete
- Behavior changed across subsystem boundary
Pass criteria:
- All selected checks final_ok true
Target runtime: about 5-7 minutes.
Command:
- c:/Users/lukas/Desktop/WCM/.venv/Scripts/python.exe main.py --scenario ci-sweep
Use when:
- Before commit
- Before long break
- After risky refactor
- End of day
Pass criteria:
- sweep_ok true
All coding agents should follow this order:
- Pick smallest safe change batch.
- Apply change.
- Run Tier A.
- If feature-level behavior changed, run Tier B.
- Defer Tier C to checkpoint moments.
- Report:
- Changed files
- Which tier ran
- Result summary
- Next smallest batch
If Tier A fails:
- Stop new feature work.
- Fix regression immediately.
If Tier C fails but Tier A and Tier B pass:
- Triage failing scenario and either:
- fix now if clear regression,
- or log as known pre-existing instability with evidence.
Purpose: manual click-around testing of real shell and desktop flows.
Primary interactive boot command:
- c:/Users/lukas/Desktop/WCM/.venv/Scripts/python.exe main.py --scenario desktop-live-strict --ticks 1200 --frame-ms 33 --live-stride 1
VS Code one-click task:
- Run Task -> Start Desktop (Strict)
Restore variant:
- c:/Users/lukas/Desktop/WCM/.venv/Scripts/python.exe main.py --scenario desktop-live-strict-restore --ticks 1600 --restore-tick 700 --frame-ms 33 --live-stride 1
VS Code one-click restore task:
- Run Task -> Start Desktop (Strict Restore)
Manual checklist for each interactive session:
- Launcher toggles and task focus changes work.
- Explorer actions complete (list, open, rename, move, delete/restore).
- Input routing remains responsive.
- No obvious desktop freeze or focus loss.
- Session exits cleanly.
Every manual bug found must produce:
- One reproducible artifact or trace.
- One new automated regression check in Tier B or Tier C.
Deliverables:
- Quick regression harness scenario that bundles Tier A plus selected Tier B checks.
- One command startup flow for interactive desktop countertesting.
- Optional VS Code task named Start Desktop (strict).
Exit criteria:
- Daily work can run quick checks in under 2 minutes.
- Interactive boot can be launched on demand in one command.
Deliverables:
- Validate package entrypoint and capabilities.
- Install and uninstall package lifecycle path.
- Launch, stop, restart executable process lifecycle.
- Capture launch and restart telemetry.
Exit criteria:
- At least one package can complete install, run, restart cycle deterministically.
- Capability denies remain enforced.
Deliverables:
- Explicit service dependency model and startup order assertions.
- Health state model (running, degraded, failed, restarting).
- Restart policy with bounded retries.
- Boot summary report surface.
Exit criteria:
- Injected fault cycles recover deterministically.
- Service dependency violations are visible in telemetry.
Deliverables:
- Capture interactive input traces from desktop sessions.
- Replay traces in deterministic test mode.
- Add replay-based medium gate to default feature loop.
Exit criteria:
- Manual countertests can be promoted into automated replay checks.
A feature slice is complete when:
- Tier A passes.
- Relevant Tier B checks pass.
- At least one short interactive sanity run passes for desktop-facing changes.
- No new ownership delta regressions.
- Any discovered bug has a follow-up automated check.
- Do not run ci-sweep after every minor change.
- Do not batch many unrelated refactors before validation.
- Do not remove legacy opcodes during compatibility transition phases.
- Do not add policy logic fallback branches in Python host layer.
- Start:
- Pull context and choose one narrow implementation target.
- During coding:
- Run Tier A often.
- Run Tier B per completed slice.
- Checkpoint:
- Run Tier C.
- Record outcomes and next priority.
- End of day:
- Ensure ci-sweep status is known.
- Leave clear next action for the next session.