Skip to main content
The Engram Convention defines how SDD artifacts are named, stored, and retrieved from the Engram memory tool.

Naming Rules

ALL SDD artifacts persisted to Engram MUST follow this deterministic naming:

Artifact Types

These are the exact strings used for {artifact-type}: Exception: 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)

NEVER use 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):
Use 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:
This is stored as a single artifact with topic_key sdd/add-oauth/spec.