Naming Rules
ALL SDD artifacts persisted to Engram MUST follow this deterministic naming:Artifact Types
These are the exact strings used for{artifact-type}:
| 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
Recovery Protocol (2 Steps — MANDATORY)
To retrieve an artifact, ALWAYS use this two-step process:Step 1: Search by Topic Key Pattern
Step 2: Get Full Content (REQUIRED)
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
Writing Artifacts
Standard Write (New Artifact)
Update Existing Artifact
When updating an artifact you already retrieved (e.g., marking tasks complete):mem_update when you have the exact observation ID. Use mem_save with the same topic_key for upserts (Engram deduplicates by topic_key).
Why This Convention Exists
Deterministic Titles
Recovery works by exact match, not fuzzy search. Every sub-agent knows exactly how to find artifacts.topic_key
Enables upserts (updating same artifact without creating duplicates). If you save with the same topic_key twice, Engram replaces the old one.
sdd/ Prefix
Namespaces all SDD artifacts away from other Engram observations. Prevents collision with user’s personal notes or other tools.
Two-Step Recovery
mem_search previews are always truncated. mem_get_observation is the only way to get full content. This is a limitation of the Engram tool.
Lineage
archive-report includes all observation IDs for complete traceability. You can trace the full history of a change from exploration to archive.
Example: Full Change Lifecycle
Concatenating Multi-Domain Specs
If a change touches multiple domains (e.g.,auth/ and payments/), the sdd-spec sub-agent concatenates all delta specs into a single artifact:
sdd/add-oauth/spec.
Related
- Persistence Contract — Mode resolution rules
- OpenSpec Convention — Filesystem alternative
- Result Contract — How sub-agents return observation IDs