Overview
Agent Teams Lite is storage-agnostic. Artifacts can be persisted in three different modes:engram(recommended default) — Persistent, repo-clean storage via Engramopenspec(file-based, optional) — File artifacts in project directorynone(ephemeral, no persistence) — No writes, artifacts exist only in conversation
The workflow engine is completely pluggable. All 9 sub-agent skills reference shared convention files to ensure consistent behavior across persistence modes.
Mode Resolution
The orchestrator passesartifact_store.mode with one of: engram | openspec | none.
Default Resolution Policy
When the orchestrator does not explicitly set a mode:- If Engram is available → use
engram - Otherwise → use
none
none, the system recommends the user enable engram or openspec for better results.
Quick Modes by Use Case
Recommended: Engram Mode
- Production workflows
- Team collaboration
- Long-running feature development
- Audit trails and lineage tracking
Privacy: None Mode
- Privacy-sensitive projects
- Exploratory work
- Quick prototypes
- When you don’t want any artifacts written
File-based: OpenSpec Mode
- When you explicitly want file artifacts
- Projects that prefer file-based specs
- When Engram is not available and you need persistence
- Audit trails in version control
Behavior Per Mode
| Mode | Read from | Write to | Project files |
|---|---|---|---|
engram | Engram (see Engram Convention) | Engram | Never |
openspec | Filesystem (see OpenSpec Convention) | Filesystem | Yes |
none | Orchestrator prompt context | Nowhere | Never |
Common Rules
Mode-Specific Rules
Mode-Specific Rules
Engram Mode
- DO NOT write any project files
- Persist all artifacts to Engram
- Return observation IDs in result envelope
- Use deterministic naming:
sdd/{change-name}/{artifact-type} - Always use two-step recovery:
mem_search→mem_get_observation
OpenSpec Mode
- Write files ONLY to paths defined in
openspec-convention.md - Create
openspec/directory structure - Update
tasks.mdin-place with[x]marks - Follow archive structure:
YYYY-MM-DD-{change-name}/
None Mode
- DO NOT create or modify any project files
- Return results inline only
- All artifacts exist only in conversation context
- No persistence between sessions
Engram Mode Deep Dive
Deterministic Artifact Naming
All SDD artifacts persisted to Engram MUST follow this naming convention:Artifact Types
| Artifact Type | Produced By | Description |
|---|---|---|
explore | sdd-explore | Exploration analysis |
proposal | sdd-propose | Change proposal |
spec | sdd-spec | Delta specifications (all domains concatenated) |
design | sdd-design | Technical design |
tasks | sdd-tasks | Task breakdown |
apply-progress | sdd-apply | Implementation progress (one per batch) |
verify-report | sdd-verify | Verification report |
archive-report | sdd-archive | Archive closure with lineage |
sdd-init uses sdd-init/{project-name} as both title and topic_key (it’s project-scoped, not change-scoped).
Example: Writing to Engram
Two-Step Recovery Protocol
mem_search results directly as the full artifact — they are truncated previews. ALWAYS call mem_get_observation to get the complete content.
Retrieving Multiple Artifacts
When a skill needs multiple artifacts (e.g., sdd-tasks needs proposal + spec + design):Loading Project Context
Browsing All Artifacts for a Change
Updating Artifacts
When updating an artifact you already retrieved (e.g., marking tasks complete):Why This Convention Exists
- Deterministic titles → recovery works by exact match, not fuzzy search
topic_key→ enables upserts (updating same artifact without creating duplicates)sdd/prefix → namespaces all SDD artifacts away from other Engram observations- Two-step recovery →
mem_searchpreviews are always truncated;mem_get_observationis the only way to get full content - Lineage → archive-report includes all observation IDs for complete traceability
OpenSpec Mode Deep Dive
Directory Structure
Whenopenspec mode is enabled, a change produces this structure:
Artifact File Paths
| Skill | Creates / Reads | Path |
|---|---|---|
| sdd-init | Creates | openspec/config.yaml, openspec/specs/, openspec/changes/, openspec/changes/archive/ |
| sdd-explore | Creates (optional) | openspec/changes/{change-name}/exploration.md |
| sdd-propose | Creates | openspec/changes/{change-name}/proposal.md |
| sdd-spec | Creates | openspec/changes/{change-name}/specs/{domain}/spec.md |
| sdd-design | Creates | openspec/changes/{change-name}/design.md |
| sdd-tasks | Creates | openspec/changes/{change-name}/tasks.md |
| sdd-apply | Updates | openspec/changes/{change-name}/tasks.md (marks [x]) |
| sdd-verify | Creates | openspec/changes/{change-name}/verify-report.md |
| sdd-archive | Moves | openspec/changes/{change-name}/ → openspec/changes/archive/YYYY-MM-DD-{change-name}/ |
| sdd-archive | Updates | openspec/specs/{domain}/spec.md (merges deltas into main specs) |
Reading Artifacts
Each skill reads its dependencies from the filesystem:Writing Rules
OpenSpec Writing Guidelines
OpenSpec Writing Guidelines
- ALWAYS create the change directory (
openspec/changes/{change-name}/) before writing artifacts - If a file already exists, READ it first and UPDATE it (don’t overwrite blindly)
- If the change directory already exists with artifacts, the change is being CONTINUED
- Use the
openspec/config.yamlrulessection to apply project-specific constraints per phase
Config File Reference
Archive Structure
When archiving, the change folder moves to:Detail Level Control
The orchestrator may also passdetail_level: concise | standard | deep.
This controls output verbosity but does NOT affect what gets persisted — always persist the full artifact.
Shared Convention Files
All skills reference these shared convention files for consistent behavior:| File | Purpose |
|---|---|
persistence-contract.md | Mode resolution rules — how engram, openspec, and none modes behave, what each mode reads/writes, and the fallback policy |
engram-convention.md | Deterministic artifact naming (sdd/{change-name}/{artifact-type}), two-step recovery protocol (search then get full content), and write/update patterns via topic_key upserts |
openspec-convention.md | Filesystem paths for each artifact, directory structure, config.yaml reference, and archive layout |
Why they exist: Previously each skill inlined its own persistence logic (~224 lines of duplication across 9 skills). Now each skill references the shared files for DRY principles and consistent behavior.
Choosing the Right Mode
Engram
Best for most teams
- Persistent across sessions
- No repo clutter
- Full audit trail
- Deterministic naming
OpenSpec
When you need files
- File-based workflow
- Version control integration
- Explicit artifact request
- Self-contained changes
None
Privacy first
- No persistence
- Ephemeral artifacts
- Quick exploration
- No file writes
Next Steps
Complete Workflow
Learn the full SDD workflow
Delta Specs
Understand how delta specs work