/ws - Workstream Operations
SkillAI & modelsUse when attaching a session to a workstream, or scanning, finding, resuming, merging, branching, or untangling Lev workstreams.
Available today. Use it from your connected AI after setup.
No other account needed.
Connect ahel once, and every AI you use reads what you have installed.
Then ask your AI: use the /ws - Workstream Operations skill
What this skill tells your AI
The instructions your AI receives, as published by lev-os/agents in skills/ws/SKILL.md and read by ahel’s review.
Workstream YAML is the durable identity for lifecycle work until workstreams are
graph ops. /ws is the projection and repair surface around
.lev/pm/workstreams/*/state/workstream.yaml.
Entity Reconciliation
After authorized material progress, reconcile touched and causally affected artifacts before routing, handoff, or final response. Track entity ref, island/provider locator (a path for file storage), basis/evidence, and the reason/action due. Update through the verified owning CLI/adapter; use a write-authorized skill fallback only when that operation is unavailable. Record updated, no_change(reason), or blocked(reason), preserving unresolved refs. Reading or mentioning a path alone creates no update obligation. Read-only work reports pending changes only. Reminders grant no write authority; task status stays with the bound tracker. Update only artifacts whose content or evidence changed; do not rewrite every referenced document.
Work Link
Lifecycle lane: Router
Entity movement: unknown | stale | split -> routed | active | paused
Workstream: this skill resolves or updates workstream identity
Upstream: /work, any lifecycle skill missing workstream context
Downstream: /work, /capture, /propose, /exec, /handoff
Router: /work
HUD: end with 🧬 {ws} ⚡{exec_count} 📥{capture_count} ⏸️{paused_count} ✅{done_count} | 🚦{gate}={score} | ⏭️ {next} | 🔁{loop_state}
Commands
/ws # scan all workstreams
/ws list # same as /ws
/ws find <query> # search workstreams and projections
/ws show <id> # show one workstream state
/ws resume <id> # load state, recent projections, and next verb
/ws --attach [id] # identify/reuse a workstream and bind this session
/ws merge <a> <b> # combine lineages with conflicts called out
/ws branch <id> <name> # fork a workstream
/ws untangle # detangle agents/lane claims
Attach a Session
skill://ws --attach is skill syntax. It is not a claim that lev ws --attach
or equivalent SDK/Poly operations are implemented.
- Announce only
🧭 locating workstream...during orientation. Resolve the actual session identity, project root, existing binding and explicit target. - Reuse a matching workstream folder and its owned outcome/plan pointers. A pasted HUD or incidental filename is candidate evidence, not authorization to change the binding. If candidates remain ambiguous, ask for the choice. Create a workstream only when none fits and creation is within the request.
- Use the installed, authorized session-binding adapter or verified runtime operation. Inspect its help/contract first. Persist the session-to-workstream reference and read it back; report attached only after IDs and paths agree. If no binding writer is available, retain the selected reference and report attachment unavailable rather than inventing a CLI command.
- Reuse an existing Markdown context projection of relevant paths and summaries; create/update one only when requested. Keep workstream identity durable across commits, with commit/checkpoint references describing particular revisions. Emit available footer values only. An orientation attempt is not a successful attachment; record the actual outcome in the selected adapter.
When the Lev workstream CLI/SDK/Poly attachment work lands, replace the manual adapter step with its verified operation, preserve session/workstream identity, and test no-match, ambiguous, existing, and explicit-switch cases across surfaces. Keep this follow-up in the existing lifecycle/Entire plans; no parallel tracker.
Protocol
steps:
- id: read_state
action: Read matching workstream YAML files.
validation: "At least one state file was read, or no match is explicit."
on_failure: "Do not infer identity from memory only."
- id: associate_projection
action: Follow the current state's named artifact pointers. Search broadly for other projections only when a pointer is missing, stale, or contradictory.
validation: "Output separates durable state from projection files."
on_failure: "Show durable state only and mark projections unknown."
- id: reconcile_navigation
action: Reuse the saved outcome map, tracker binding, evidence revision, and rolling horizon when their inputs are unchanged. Reconcile only affected fields after a material change.
validation: "The horizon has at most ten stable-ID steps; steps 1-3 carry owner, prerequisites, permitted effects, check, and stop condition, or the missing field is an explicit blocker."
on_failure: "Load skill://lev recursive wayfinding; do not manufacture readiness."
- id: choose_next_verb
action: Recommend the lifecycle owner for the next entity movement.
validation: "Next owner is eligible for the saved entity state and active domain overlay, using the Next Routes table; read-only resume does not execute it."
on_failure: "Route back to skill://lev."
Next Routes
Preserve the saved frontier and select its owner; resolving identity does not
restart planning. Show only applicable choices as a numbered skill://<name>
table when uncertain; otherwise name the next route. Resume grants no new authority.
| Saved state or gap | Next owner |
|---|---|
| Uncaptured intent | skill://capture |
| Evidence stale or missing | skill://prior-art |
| Material decision open | skill://interview |
| Broad plan absent or incomplete | skill://lev-plan |
| Coding slice needs specification or revision | skill://propose |
| Authorized action ready with current scope and checks | skill://exec; non-coding may use its sufficient plan without proposal |
| Outcome verified, acceptance pending | skill://close |
| Pause or blocker remains | skill://handoff |
| Domain or transition unresolved | skill://lev |
Data Sources
Resolve artifact references using their declared base. For an unqualified local reference, check its exact project-root path and the referring artifact's directory within authorized scope. If both exist with different content, expose the ambiguity rather than choosing silently. If neither exists, use a bounded filename inventory; searching file contents for a filename does not establish that the file is absent. Report the locations actually checked and distinguish missing, unreadable and ambiguous references before declaring the frontier blocked.
.lev/pm/workstreams/*/state/workstream.yaml.lev/pm/workstreams/*/captures/*.lev/pm/tasks/*/{dna.yaml,execution.yaml}.lev/pm/handoffs/*.mdas projections.lev/pm/plans/*.md,.lev/pm/designs/*.md,.lev/pm/decisions/*.lev/mail/*when detangling
Rules
- Workstream YAML wins over handoff markdown.
- Persist outcome and map identity plus revision/event state in top-level
navigation_state; persist the ordered projection innext_10. Keep one tracker binding with config provenance. The tracker owns task status; the workstream stores identities and relationships, not a second status database. - Horizon positions may change while stable entity IDs remain fixed. Refresh after material evidence, decision, dependency, failure, or handoff changes; preserve later milestones and exclusions in the outcome map rather than crowding more than ten steps into the projection.
- Reuse compatible shared release, documentation, distribution, support, and marketing task identities from the bound tracker. Changing tracker backends requires an explicit migration and ID map.
- Merges preserve both lineages and flag conflicting objectives.
- Branches copy the parent state, set provenance to the parent, and clear session extensions.
- Resume reports what changed since the last projection and refreshes affected horizon steps before proposing a next verb. Resume grants no new authority.
Related
/workroutes after/wsresolves identity./handoffwrites end-of-session state./capturewrites workstream capture artifacts.
Signals
- GitHub stars
- 22
- Forks
- 2
- Last commit
- Sep 2026
Advanced
- Catalog kind
- skill
- Gateway key
ws- Source
- github.com/lev-os/agents