Engagements and Releases
Wire uses a two-tier structure with precise terminology. Understanding these two concepts is essential before using the framework.
Engagement — a complete client engagement from start to finish. The engagement holds all context that spans the whole relationship with that client: the Statement of Work, call transcripts and meeting notes, org charts, stakeholder lists, and the current-state architecture of their systems.
Release — a scoped, time-boxed unit of delivery within an engagement. Every piece of work the team does for a client is a release. Releases have a type (discovery, full_platform, pipeline_only, etc.), a defined scope, a planned start and end date, and their own status.md tracking file.
An engagement typically contains several releases in sequence:
01-discovery ← Shape Up planning: what do we build and why?
02-data-foundation ← Pipeline + dbt: get data into the warehouse
03-reporting ← Dashboard extension: client-facing dashboards
04-enablement ← Training and documentation
The two-tier folder structure
Every Wire engagement uses this structure in the .wire/ directory:
.wire/
engagement/
context.md ← engagement overview, objectives, key stakeholders
sow.md ← statement of work (copied at engagement setup)
calls/ ← call transcripts and meeting notes
org/ ← org charts and roles/responsibilities
releases/
01-discovery/ ← discovery release type
status.md
planning/
problem_definition.md
pitch.md
release_brief.md
sprint_plan.md
02-data-foundation/ ← delivery release type (e.g. pipeline_only)
status.md
requirements/
design/
dev/
test/
deploy/
enablement/
research/
sessions/ ← persisted technical research (auto-populated)
Setting up a new engagement
Run /wire:new. The framework asks:
- Client and engagement name — for folder naming and status files
- Repo mode:
- Combined (default):
.wire/lives directly in the client's code repo - Dedicated delivery repo: this repo is exclusively for Wire artifacts; client code lives in a separate repo
- Combined (default):
- First release type — usually
discoveryfor a new engagement, or a delivery type if joining mid-stream - SOW path — optional; copied to
engagement/sow.md
To add a subsequent release to an existing engagement, run /wire:new again. The framework detects the existing engagement context and skips directly to asking for the new release type.
Repo mode: combined vs dedicated delivery
Option A is the default. Wire artifacts live in the same repo as the client's code.
Option B is for engagements where adding files directly to the client's code repo is not acceptable (regulated industries, multi-stakeholder repos) or where the client has several code repos. The delivery repo is typically named <client_name>-delivery.
Session lifecycle
As of v3.4.20, session state is managed automatically — no explicit session commands required.
The engagement-context skill fires automatically on the first message in any Wire repo. It locates the active release, reads status.md, and outputs a 4–6 line context summary before any work begins.
After each command completes, the framework writes its result to status.md and appends a row to execution_log.md.
For an optional structured planning ritual, use:
/wire:session-plan [release-folder]
Note:
/wire:session:startand/wire:session:endhave been deprecated as of v3.4.20.