Skip to content

Record-plane Kinds

Record-plane Kinds are queryable data rows (SDLC work items, research, evidence, audit log, …) — first-class documents you query/count rather than fold into a prompt.

Generated from the registered Kinds

Introspected from Kernel.auto() by scripts/gen_kinds_docs.py. Each Kind's spec fields come from its own schema().

ADR

  • Alias: sdlc-adr
  • apiVersion: github.com/ruinosus/dna/sdlc/v1
  • Plane: record

An ADR captures ONE architectural decision with its context, rationale, and consequences. Convention: one ADR per file, immutable once accepted (subsequent decisions supersede). Follows Nygard / MADR template — Adopt on ThoughtWorks Tech Radar. Studio renders these as the decision log of the project; PMs/architects can scan rationale without reading code.

Spec fields

Field Type Required Description
alternatives_considered array Other options weighed and rejected, with brief why-not.
body string Optional full markdown body (ADR.md). When present, takes precedence over the structured fields above for rendering. Useful when the ADR predates this schema.
consequences string What follows from this decision — positive AND negative. Future readers need to see the trade-offs, not just the wins.
context string yes WHY we needed to decide. What forces are in play? What constraints (technical, business, team) shape the choice? 1-3 paragraphs.
covers_features array Feature names this decision affects.
created_at string
date string Date the decision was accepted (ISO-8601).
deciders array Actor names who participated in the decision.
decision string yes WHAT we decided. Active voice: 'We will X' or 'We chose X over Y'. 1-2 paragraphs.
narrative_origin string When extracted from a Narrative.decisions[] entry during Phase 2.2 migration, this points to the source Narrative slug for provenance.
status string yes Lifecycle: proposed → accepted → deprecated|superseded. Use superseded (not deprecated) when a newer ADR replaces this one — link via superseded_by.
superseded_by string ADR slug that supersedes this one (when status=superseded).
supersedes array ADR slugs this one replaces.
tags array Free-form tags (e.g. 'persistence', 'auth', 'ui').
title string yes Decision headline — start with imperative verb.
updated_at string

AgentSession

  • Alias: sdlc-agent-session
  • apiVersion: github.com/ruinosus/dna/sdlc/v1
  • Plane: record

A AgentSession captures a developer↔AI coding conversation as a versioned project artifact. Tool-agnostic: works for Claude Code, Cursor, Cline, Codex, Aider via per-tool adapters. Schema is the LCD (lowest-common-denominator) of the major tools' export formats.

Spec fields

Field Type Required Description
applied_commits array Git SHA refs touched in-session.
body string Rendered transcript markdown (stored in SESSION.md).
cost_usd number
ended_at string
file_changes array Repo-relative paths edited during session.
journey_phase string Universal journey phase. AgentSessions usually live in discover (brainstorming chats) or build (execution chats). The agent stamps this on capture.
model string AI model identifier (e.g. claude-opus-4-7, gpt-5-codex).
participants array Actor names (humans + agent identities).
produced_artifacts array Refs to docs created/modified during session.
raw_source string Provenance pointer — tool-native source path or URL (JSONL file path, sqlite URI, etc). Required for re-derivation.
session_id string yes Tool-native session identifier (UUID/sqlite-rowid/etc).
started_at string yes
summary string
title string yes Human-readable session title (Jira-style summary).
token_usage object {input, output, cache_*} — adapter-specific shape.
tool string yes Provenance — which AI coding tool produced this session. claude-code | cursor | cline | codex | aider | specstory | other.
tool_specific object Escape hatch for per-tool extras (Cline checkpoints, CC git snapshots, etc).
tool_version string
workspace_path string

ArchiveProposal

  • Alias: sdlc-archive-proposal
  • apiVersion: github.com/ruinosus/dna/sdlc/v1
  • Plane: record

Spec fields

Field Type Required Description
evidence string yes Plain-text justification. E.g. 'Unreferenced by any WorkflowEvent.methodology_artifact in 91 entries scanned. Last touch 73 days ago.'
proposed_at string Auto-stamped on creation.
proposed_by string yes Oracle slug (typically 'cleanup-suggestions') or 'user'.
reason string yes Why prune. orphan = no inbound refs; superseded = newer doc replaces; stale = no touch beyond threshold; contradicted = newer doc disagrees; duplicate = identical.
review_deadline string yes Spec §15: default proposed_at + 14d. Stale proposals past this date should be re-evaluated (not auto-vetoed).
reviewer string Auto-stamped on approve/veto. Username or 'system'.
reviewer_note string Optional note explaining approval/veto reasoning.
status string yes proposed → approved → executed (moves target to _forgotten/) OR proposed → vetoed (target stays).
target_kind string yes Any Kind name (e.g. 'Plan', 'Story', 'Issue', 'Spec'). Self-references rejected at execution time.
target_name string yes Slug of the doc being proposed for forgetting.

AuditLog

  • Alias: audit-auditlog
  • apiVersion: github.com/ruinosus/dna/audit/v1
  • Plane: record

Immutable record of a role-gated HTTP endpoint invocation. Captures actor, roles claimed, operation, target Kind/name, scope/tenant, request_id, outcome, and timestamp. Used by compliance auditors + admins to answer 'who did what when' without parsing application logs.

Spec fields

Field Type Required Description
actor string yes Identity that made the request. From claims.email > claims.sub. 'dev-user' in dev-bypass, 'test-user' in test-header mode.
captured_at string yes UTC ISO-8601 timestamp.
detail object Free-form context: which required roles failed, body size, durations, errors. Defensive about PII — don't include request bodies verbatim.
operation string yes HTTP method + path template, e.g. 'PUT /scopes/{scope}/docs/Agent/{name}' or 'POST /assessments/{name}/run'.
outcome string yes success = decorator + handler ran clean. denied = 403 from require_role. error = handler raised (500/422/...).
remote_ip string Best-effort client IP (X-Forwarded-For aware).
request_id string Correlation ID (UUIDv4) — joins logs.
roles array yes Roles claimed at request time (from JWT or DNA_DEV_ROLES). Snapshot — does NOT reflect later role revocations.
target_kind string Kind of doc affected (when applicable). Null for non-doc ops like POST /sync/replicate.
target_name string Name of doc affected, when applicable.
target_scope string Scope of doc affected, when applicable.
target_tenant string | null Tenant the operation routed to (claims.tenant + overrides resolved). Null = base layer write.
user_agent string HTTP User-Agent header.

Automation

  • Alias: dna-automation
  • apiVersion: github.com/ruinosus/dna/automation/v1
  • Plane: record

An Automation declares background work as data — on picks the trigger (cron = 5-field schedule; hook = a kernel lifecycle hook name from KNOWN_HOOK_NAMES; tool = an async dispatch tool the host exposes to the model), runner picks what executes (an Agent or a Tool by name), plus the shared agent_directive / input / result templating / spoken copy / safety block. Adding or retargeting an automation is writing one YAML, zero deploy. The SDK validates and lists (see dna.extensions.automation.query.automations_for); the HOST executes — the runner contract is an extension point, documented in docs/concepts/builtin-kinds.md.

Spec fields

Field Type Required Description
agent_directive string Dispatch instruction sent to an agent runner (with {arg} placeholders). Optional — a tool runner needs none.
description string
done_message string Spoken/UI copy attached to the finished run. Supports {placeholders} from the args.
enabled boolean Disabled automations stay declared but hosts must not fire them (automations_for filters them out by default).
input object Structured input the host resolves into the runner's context. Hosts may support tokens such as {scope}, {now}, {utc_date}.
labels array
on object yes The trigger. type=cron → scheduled (5-field cron expression, validated at write); type=hook → a kernel lifecycle hook name (KNOWN_HOOK_NAMES vocabulary, validated at write); type=tool → an async dispatch tool the host exposes to the model.
result_kind string Kind the automation output should be persisted as (e.g. Research, Doc) when the runner produces a document.
result_spec_template object Deterministic persist template — when an agent runner synthesizes but does not persist a doc itself, the host creates a result_kind doc from this template ({arg} fills from the args, {output} from the agent synthesis).
runner object yes
running_message string Spoken/UI copy returned at dispatch (tool trigger).
safety object Loop-safety the HOST enforces for this automation. All fields optional — an absent field falls back to the host default.

Bug

  • Alias: sdlc-bug
  • apiVersion: github.com/ruinosus/dna/sdlc/v1
  • Plane: record

A Bug captures a factual defect: repro_steps, severity, environment, status. Distinct from Postmortem (incident — sev1-sev5 outage analysis) e Issue umbrella (enhancement/question/other).

Spec fields

Field Type Required Description
actual string
body string
created_at string
description string
environment string
expected string
fix_adr string
fix_summary string
found_at string
labels array
owner string
priority string
produces array Artifacts this work item produced — any Kind (hub).
related_feature string
related_finding string
related_story string
reporter string
repro_steps array
resolved_at string
root_cause string
severity string yes
status string yes
timeline array Append-only activity log. Auto-stamped by the CLI on every status flip / groom / artifact write; populated by AgentSession capture for decision + artifact_produced events. Render in Studio as activity stream.
title string yes
updated_at string

Changelog

  • Alias: sdlc-changelog
  • apiVersion: github.com/ruinosus/dna/sdlc/v1
  • Plane: record

A Changelog records release notes per semver version per Keep a Changelog 1.1.0 convention. Six sections: Added, Changed, Deprecated, Removed, Fixed, Security. Latest entry at top (reverse chronological). [Unreleased] section tracks work in flight.

Spec fields

Field Type Required Description
body string Optional full markdown CHANGELOG.md.
created_at string
description string
title string yes Project name typically.
updated_at string
versions array Reverse-chronological list of versions.

CognitivePolicy

  • Alias: sdlc-cognitive-policy
  • apiVersion: github.com/ruinosus/dna/sdlc/v1
  • Plane: record

Spec fields

Field Type Required Description
affect object Affect vocabulary for the memory/affect engine (ex-AffectPalette). The active palette steers engraphy affect tags.
allocation object Engram allocation (dedup/archival) knobs (ex-AllocationPolicy).
created_at string
decay object Memory retention/forgetting knobs (ex-DecayPolicy).
embedding object Embedding model + dimension + search weights (ex-EmbeddingProfile). ONLY meaningful on the _lib doc — the embedding space is intrinsically global (stored vectors and every query must share one model+dimension); kernel.embedding_profile reads _lib directly and never a scope override. recall.calibrated_for points back here.
engram_strength object Initial-strength rules per engraphy trigger (ex-EngramStrengthPolicy).
generation object Operational params for the memory-gen engines (the ORIGINAL CognitivePolicy body, now one section among peers).
memory object Agent-memory governance (ex-MemoryPolicy). Each entry in policies keeps the old multi-doc matcher semantics — merged most-specific-wins by dna_shared.cognitive.memory_policy.
owner string
pagination object REST list pagination defaults/caps (ex-PaginationPolicy). Data-plane ownership — read by dna_shared.pagination_policy, not the cognitive engines.
recall object Recall-tuning knobs for the ecphory engine (ex-RecallPolicy).
updated_at string

Doc

  • Alias: dna-doc
  • apiVersion: github.com/ruinosus/dna/doc/v1
  • Plane: record

A Doc is one page of in-product documentation. The marker is docs/<name>/DOC.md — YAML frontmatter (icon, subtitle, summary, order, locale, enabled, kind_of, category, tags) plus a markdown body that lands in spec.body. The page title is metadata.description. kind_of follows Diátaxis (tutorial/how_to/reference/explanation); category groups the sidebar; locale lets one corpus serve multiple languages. This is the Kind behind dna docs list/show.

Spec fields

Field Type Required Description
body string yes Markdown body of the page — the DOC.md content below the frontmatter.
category string | null Free-form sidebar grouping (e.g. "Getting started"). Null falls back to a flat list.
enabled boolean If false, the page is hidden from listings.
icon string Emoji or short string shown next to the title.
kind_of enum Diátaxis classification (learning- / task- / information- / understanding-oriented). Null = uncategorized.
locale string Content locale (e.g. pt-BR, en). dna docs filters on it.
order integer Sort order in the sidebar (ascending).
subtitle string One-line subtitle shown under the title.
summary string 1-2 sentences for the topic header card / previews.
tags array Free-form labels for filtering and search.

Epic

  • Alias: sdlc-epic
  • apiVersion: github.com/ruinosus/dna/sdlc/v1
  • Plane: record

An Epic groups Features under a single business goal (Jira/ADO terminology). May optionally carry a target_date + target_package + target_version when the Epic is also a dated release; otherwise it's a pure aggregation umbrella. status moves through planning → in-progress → done.

Spec fields

Field Type Required Description
business_value number
cancelled_reason string
closed_at string
created_at string
definition_of_done array
description string
features array
journey_phase string Universal journey phase (discover → specify → plan → build → reflect). Additive layer over Story/Feature/Epic status, Spec phase, etc. Lets the journey ledger pin this doc to one of five universal phases compatible with Superpowers / BMAD / Spec Kit / Kiro.
labels array
priority string
produces array Artifacts this work item produced — any Kind (hub).
reporter string
status string yes
target_date string
target_package string owner/name reference to a Genome
target_version string Semver to match Genome.spec.version when done
timeline array Append-only activity log. Auto-stamped by the CLI on every status flip / groom / artifact write; populated by AgentSession capture for decision + artifact_produced events. Render in Studio as activity stream.
title string Human-readable display name (Jira 'summary'). Falls back to description, then to metadata.name slug.
updated_at string
watchers array

EvalBaseline

  • Alias: eval-eval-baseline
  • apiVersion: github.com/ruinosus/dna/eval/v1
  • Plane: record

An EvalBaseline pins one EvalRun as the "known good" reference for an EvalSuite. dna eval run <suite> --baseline <name> compares the fresh run against the pinned run and reports regressions (passed → now failing), improvements and unchanged cases — with an exit code a user's CI can gate on. Pin with dna eval pin <run>.

Spec fields

Field Type Required Description
label string Human note on why this run is the reference.
pinned_at string
run_name string yes Name of the pinned EvalRun document.
suite string yes Name of the EvalSuite this baseline belongs to.

EvalCase

  • Alias: eval-eval-case
  • apiVersion: github.com/ruinosus/dna/eval/v1
  • Plane: record

An EvalCase is one declarative evaluation scenario. It names a target (default = the kernel's own prompt composition via build_prompt, deterministic and offline; custom targets such as a live LLM are host-registered EvalTargetPorts) and a list of deterministic checks (contains/regex/equals/length) applied to the text the target produced. Grouped by an EvalSuite; executed by the local runner (dna eval run), which persists an EvalRun.

Spec fields

Field Type Required Description
checks array yes Deterministic assertions applied to the text the target produced. ALL checks must pass for the case to pass.
description string What this case verifies (one line).
expected string Human-readable note of the expected outcome (shown in reports; not machine-checked).
input string Free-form input for custom targets (e.g. the user message an LLM target sends). The prompt target ignores it.
skip boolean Declared but not executed (reported as skipped).
skip_reason string
tags array
target object What to evaluate. Omitted → the suite's target → {type = prompt}. type=prompt composes the agent's system prompt via build_prompt (deterministic, offline); any other type must be registered by the host as an EvalTargetPort.

EvalRun

  • Alias: eval-eval-run
  • apiVersion: github.com/ruinosus/dna/eval/v1
  • Plane: record

An EvalRun is the persisted result of one local execution of an EvalSuite — pass/fail/error/skip counts, timestamps, the resolved target, and per-case results with the outcome of every declared check. Written by dna eval run --save; compared against a pinned EvalBaseline to detect regressions (dna eval run --baseline).

Spec fields

Field Type Required Description
errored integer
failed integer yes
finished_at string
passed integer yes
results array yes Per-case outcomes, in execution order.
skipped integer
started_at string
suite string yes Name of the EvalSuite that was executed.
target object The suite-level target the run resolved (per-case overrides are recorded on each result row).
total integer yes

EvalSuite

  • Alias: eval-eval-suite
  • apiVersion: github.com/ruinosus/dna/eval/v1
  • Plane: record

An EvalSuite groups EvalCase documents and configures how the local runner executes them — the case list (empty = all cases in the scope), a default target the cases inherit, and stop_on_fail. Run it with dna eval run <suite>; each execution can be persisted as an EvalRun and compared against a pinned EvalBaseline.

Spec fields

Field Type Required Description
cases array EvalCase names to run, in order. Empty/omitted = every EvalCase in the scope.
description string What this suite evaluates (one line).
labels array
stop_on_fail boolean Stop executing remaining cases after the first failed/errored case. Default false.
target object Default target for cases that do not declare their own (same shape as EvalCase.target).

Evidence

  • Alias: evidence-evidence
  • apiVersion: github.com/ruinosus/dna/evidence/v1
  • Plane: record

An Evidence document is an immutable audit event record. Captures the event type, SHA-256 hash of the referenced content, timestamp, author, and optional snapshot. Used by the GAIA report pipeline to provide a verifiable audit trail.

Spec fields

Field Type Required Description
author string
captured_at string
created_at string
document_ref string
event_type string yes
notes string
payload object
sha256 string
snapshot object
source_kind string
source_name string
suite string

Feature

  • Alias: sdlc-feature
  • apiVersion: github.com/ruinosus/dna/sdlc/v1
  • Plane: record

A Feature is a shippable unit. It implements one or more UseCases, decomposes into Stories, and is owned by an Actor. Its status reflects the development pipeline: discovery → in-development → done.

Spec fields

Field Type Required Description
acceptance_criteria array Feature-level AC (parent of Story-level AC).
as_a string Role: 'As a '. INVEST/user-story format slot.
blocked_reason string
business_value number
closed_at string
created_at string
definition_of_done array
description string yes
epic string Parent Epic name
estimate string T-shirt size or story points (free-form)
i_want string Goal: 'I want '. INVEST/user-story format slot.
journey_phase string Universal journey phase (discover → specify → plan → build → reflect). Additive layer over Story/Feature/Epic status, Spec phase, etc. Lets the journey ledger pin this doc to one of five universal phases compatible with Superpowers / BMAD / Spec Kit / Kiro.
labels array
mockups array
narrative_line string One-sentence agent-curated prose summary of what this Feature has been DOING (past-tense, semantic) — shown next to the Feature in Studio's narrative swimlane. Updated by the working agent as scope evolves. Distinct from description (intent / problem statement, written once at file-time).
owner string Actor name
priority string
produces array Artifacts this work item produced — any Kind (hub).
release_target string
reporter string
so_that string Benefit: 'so that '. INVEST/user-story format slot.
sprint_ref string
status string yes
stories array
time_tracking object
timeline array Append-only activity log. Auto-stamped by the CLI on every status flip / groom / artifact write; populated by AgentSession capture for decision + artifact_produced events. Render in Studio as activity stream.
title string Human-readable display name (Jira 'summary').
updated_at string
use_cases array
watchers array

Forecast

  • Alias: sdlc-forecast
  • apiVersion: github.com/ruinosus/dna/sdlc/v1
  • Plane: record

Forecast = falseable hypothesis. would_change predictions are verified at outcome_check_at by the cognitive/verification.py loop. Authored by oracles or user. Pair with SynthesisRun (oneiric artefact, non-falseable processing).

Spec fields

Field Type Required Description
drafted_at string
evidence_from_present array yes
forecaster string yes Author — oracle slug or 'user'.
generated_by string
lens string Optional perspective tag (optimism|risk|friction|opportunity|neutral).
outcome_check_at string yes
resolved_at string
scenario string yes Prose framing of the hypothesis.
scope_ref string yes
source_oracle string
status string yes
timeframe string yes
verifications array Audit trail appended by verification loop.
would_change array yes Predictions checked by verification.py.

Initiative

  • Alias: sdlc-initiative
  • apiVersion: github.com/ruinosus/dna/sdlc/v1
  • Plane: record

An Initiative is a strategic investment unit (1-2 quarters) that groups Epics under a measurable outcome. Sits between Theme/OKR (annual) and Epic (multi-sprint). For enterprise roadmaps where Theme→Epic skip loses too much resolution.

Spec fields

Field Type Required Description
body string
business_value number
created_at string
description string
epics array Epic names this initiative groups.
horizon_end string
horizon_start string
labels array
outcome_metric string What KR/metric this initiative is targeted at.
owner string Actor name (PM / Product Lead).
priority string
status string yes
target_value string e.g. '+30% MAU' or '<200ms p95'.
theme_ref string Optional Theme/OKR Objective slug.
title string yes
updated_at string

Insight

  • Alias: sdlc-insight
  • apiVersion: github.com/ruinosus/dna/sdlc/v1
  • Plane: record

An Insight binds a perpetual question to a target UA (oracle-X). The UA owns the persona + heuristics + LLM selection. The runner iterates active Insights and dispatches each to its target_ua, which emits an StatusReport via create_status_report tool.

Spec fields

Field Type Required Description
active boolean False to disable without deleting.
cadence_hours integer How often the runner re-dispatches the target_ua. 0 disables auto-run (manual only via /agent endpoint).
description string Optional 1-2 sentence human description of what this oracle answers. The INSIGHT.md body.
evidence_kinds array Hint of which Kinds the target_ua should read. Informational — the UA itself decides via its tools.
icon string Single emoji shown next to the oracle.
question string yes The perpetual question this oracle pursues.
tags array
target_ua string yes Slug of the Agent that runs this oracle (e.g. 'oracle-health'). The UA owns the persona, tools, and LLM config — Insight only points.

Issue

  • Alias: sdlc-issue
  • apiVersion: github.com/ruinosus/dna/sdlc/v1
  • Plane: record

An Issue is a human-authored ticket — bug, enhancement, question, or task. Tracked across open → triaged → in-progress → resolved. Optional links to a parent Feature (work it belongs to) and a related Finding (eval-detected origin).

Spec fields

Field Type Required Description
actual_behavior string
closed_at string
created_at string
description string yes
expected_behavior string
github_number integer GitHub issue number this doc is bridged to.
github_state string Last observed GitHub-side state.
github_synced_at string When the GitHub side was last observed/synced.
github_url string Canonical https URL of the GitHub issue.
journey_phase string Universal journey phase (discover → specify → plan → build → reflect). Additive layer over Story/Feature/Epic status, Spec phase, etc. Lets the journey ledger pin this doc to one of five universal phases compatible with Superpowers / BMAD / Spec Kit / Kiro.
labels array
owner string Actor name
priority string
produces array Artifacts this work item produced — any Kind (hub).
related_feature string Feature name
related_finding string Finding name
reporter string
reproduction_steps array
resolution string
severity string yes
status string yes
timeline array Append-only activity log. Auto-stamped by the CLI on every status flip / groom / artifact write; populated by AgentSession capture for decision + artifact_produced events. Render in Studio as activity stream.
title string Human-readable display name (Jira 'summary').
type string yes
updated_at string
watchers array

Kaizen

  • Alias: sdlc-kaizen
  • apiVersion: github.com/ruinosus/dna/sdlc/v1
  • Plane: record

A Kaizen is a continuous-improvement observation noticed while working on something else — a smell, friction, a manual step, a missing test — captured as a first-class doc WITHOUT derailing the task at hand. Arc: observed → routed (an Issue/Story tracks the fix) → resolved (fix shipped). Twin of the kaizen timeline event on the originating work item (which carries a ref back to this doc).

Spec fields

Field Type Required Description
actor string Who flagged it.
body string yes The kaizen observation (what could be better).
created_at string
issue string Issue/Story slug tracking the fix.
labels array Free-form theme tags (weighted into semantic-search source text).
status string yes Observation arc: observed (flagged) → routed (fix tracked in issue) → resolved (fix shipped).
updated_at string
work_item string Kind/slug of the work item where this was observed (polymorphic — Story/Spike/Issue).

LessonLearned

  • Alias: sdlc-lesson-learned
  • apiVersion: github.com/ruinosus/dna/sdlc/v1
  • Plane: record

Spec fields

Field Type Required Description
affect string yes Emotional tone. Evocative palette (Spec §15 decision): triumph, regret, surprise, wistful, ominous.
affect_evidence_refs array Concrete refs (rem-X, verdict-Y, Story/s-Z) that back the affect choice. Required for high-stakes affects so the LLM's claim is auditable against actual artifacts in the manifest.
affect_reason string Story s-remembrance-affect-reason-required. Concrete justification for the chosen affect — names specific slugs/SHAs/AC counts/state. NOT generic ('Story closed', 'shipped successfully'). Validator rejects writes that lack reason OR have boilerplate. Required for high-stakes affects (regret/ominous/surprise); optional for triumph/wistful but encouraged.
area string yes Scoped target: Feature/X, Epic/Y, or Roadmap/Z. The LessonLearned surfaces when this area is touched.
confidence_score number Semon engram intensity. Multiplies BM25 score in retrieval. Bumps when homophonic LessonsLearned (same area) are filed — engrams reinforce each other. Decays with surface_count for hygiene.
cues_history array Semon ecforia trace. Each time the LessonLearned is surfaced via remember(), the cue (query + actor + timestamp) is appended. History of WHY this memory kept getting recalled.
encoding_context object Snapshot of the conditions at engraphy. semon-recaller scores ecphory candidates by partial-match against this dict.
homophonic_links array Semon homophony — engrams sharing substrate features. Each link records target + resonance score + basis. semon-recaller propagates a small strength boost (+0.02) to neighbors on ecphory (resonance).
last_surfaced string Auto-stamped on each surfacing; null until first surface.
memory_type string CoALA taxonomy — ORTHOGONAL to the Semon EngramState (type vs state): episodic = what happened (instance/sequence); semantic = a generalized fact about the world/user; procedural = how to act (a skill/rule). Absent = untyped (legacy).
owner string ATTRIBUTION: which agent authored this memory (e.g. claude-code, jarvis). Orthogonal to scope + to tenant (tenant separates USERS, owner separates AGENTS). Recall AUDIENCE is governed by visibility, NOT by owner (s-agent-memory-phase-0-bridge, 2026-06-02 — supersedes the 2026-05-17 owner-implies-private semantics). When absent: an unowned/project lesson (shared).
relevance_decay_seed number Multiplicative decay factor applied per 24h. Default 0.95 (~30% relevance after 14 days).
revisions array Reconsolidation log (Nader 2000 / neo-Semon). Append-only when a recall reawakens the engram and the consumer updates the summary.
source_refs array yes Pointers to source artifacts (Narrative/X, WorkflowEvent/Y, etc.) that this memory derives from.
summary string yes 1-2 sentence 'Lembre-se de...' — the recalled essence.
superseded_by_memory string Name of the memory that invalidated this one (not superseded_by — that's an ADR dep_filter token). Pairs with valid_to for point-in-time audit.
surface_count integer Increments on each surface. Damps re-surfacing via scoring formula in retrieval.py.
surface_when array yes Triggers that surface this LessonLearned. Mirrors how human recall fires unbidden in context.
tags array
valid_from string World-time validity start (Zep bi-temporal). Default: created_at.
valid_to string World-time validity end. Set when superseded/contradicted — the memory is INVALIDATED, never hard-deleted. Default recall excludes valid_to<now.
visibility string Recall audience (the customization axis): shared = all agents in scope recall it (cross-agent knowledge, default); private = only owner recalls it (an agent's raw working memory); pinned = always injected into working memory at bootstrap, bypassing recall scoring (the Letta 'memory block'); archived = retained + auditable but excluded from default recall (soft-forget). Humans audit ALL regardless of visibility (audit != recall). Phase 0 (2026-06-02).

ModelProfile

  • Alias: modelreg-model-profile
  • apiVersion: github.com/ruinosus/dna/modelreg/v1
  • Plane: record

A ModelProfile records one LLM model's hard limits and capabilities (instruction_token_cap, context_window, tools_cap, modalities, cost). It is the single source of truth the prompt-budget write guard reads — never hardcode token caps in code; read them from the ModelProfile registry via kernel.model_profile().

Spec fields

Field Type Required Description
aliases array Alternate ids that resolve to this profile (deployment names, dated snapshots). kernel.model_profile() matches these on pass 2.
context_window integer Total context window in tokens.
cost_per_1m_input_usd number | null USD per 1M input tokens (informational).
cost_per_1m_output_usd number | null USD per 1M output tokens (informational).
deprecated boolean True when the model is scheduled for removal.
deprecated_message string | null Human guidance shown when a deprecated model is used.
family string | null Model family/lineage for grouping, e.g. 'gpt-realtime'.
instruction_token_cap integer | null Hard cap for the system-instruction/persona in tokens. Null = no cap known (the guard fails open). THE value the prompt-budget guard enforces — never hardcode it in code.
max_output_tokens integer | null Max completion/output tokens per response.
modalities array Supported modalities, e.g. [text], [text, audio], [text, image].
model_id string yes Canonical model identifier, e.g. 'gpt-realtime-2'. The doc name SHOULD equal the model_id; kernel.model_profile() matches on this field first.
notes string | null Free-form operator notes.
provider string yes Who serves the model — 'openai', 'anthropic', 'azure', a proxy alias, etc.
realtime boolean True for realtime voice models. STRICT marker: the prompt-budget guard VETOES an over-cap write against a realtime profile (voice sessions silently degrade past the cap); chat profiles only warn.
tools_cap integer | null Max number of tools the model accepts per session.

Narrative

  • Alias: sdlc-narrative
  • apiVersion: github.com/ruinosus/dna/sdlc/v1
  • Plane: record

A Narrative is a curated, human-readable summary of project activity. Stored as a NARRATIVE.md bundle with markdown body. Names usually encode the period (ISO date for daily, milestone slug for releases). Replaces ad-hoc 'what happened tonight?' chat scrolling — the agent stamps a Narrative at session end so future readers (CEO, customer, new-hire) can open one page and get the story.

Spec fields

Field Type Required Description
actor string Who wrote this narrative (Actor name, 'claude-code', 'human', etc.).
author_intent string What kind of narrative this is. Drives how the morning panel groups multiple narratives — daily stack on the timeline, releases pin as marquee, retros surface in a 'lessons' filter.
auto_generated boolean true = LLM-generated draft; false = human or agent-curated prose. Studio shows a small badge so readers know what they're reading.
body string yes Markdown body of the narrative (lives in NARRATIVE.md). Free-form — paragraphs, bullets, links to Stories/Features/commits. Should read like a human update, not a log dump.
covers_epics array Epic names this narrative discusses.
covers_features array Feature names this narrative discusses.
covers_session string AgentSession name this narrative was auto-derived from (Karpathy 'context ephemeral, files durable' pattern). Set by dna sdlc session capture when the post-capture narrative hook runs.
covers_stories array Story names this narrative discusses.
created_at string
decisions array Ratified decisions made during the period covered by this narrative. Each captures the WHY, not just the WHAT — the decision-extractor pattern.
journey_phase string Universal journey phase (discover → specify → plan → build → reflect). Additive layer over Story/Feature/Epic status, Spec phase, etc. Lets the journey ledger pin this doc to one of five universal phases compatible with Superpowers / BMAD / Spec Kit / Kiro.
open_items array Work that started but didn't close in this period. Studio's 'still open' section reads from this when present (otherwise computes heuristically from event diff).
paragraphs array Structured prose: list of past-tense paragraphs describing what shipped. Studio renders these as the hero block; falls back to body when empty.
period_end string End of the period (often the moment the narrative was written).
period_start string Start of the period this narrative covers (ISO-8601).
summary string Optional one-line tl;dr. When present, the Studio card shows this above the body for scanning.
tags array Free-form tags for filtering (daily, release, retro, ...).
title string yes Headline for this narrative. Shown above the body.
updated_at string

PatternInsight

  • Alias: cognitive-pattern-insight
  • apiVersion: github.com/ruinosus/dna/cognitive/v1
  • Plane: record

PatternInsight = output of a dream-interp engine. Multiple interpretations per SynthesisRun OK — engines are complementary lenses, not exclusive. Hill engine produces exploration/insight/action structure; Jung produces amplifications + archetypes; Gestalt produces identifications.

Spec fields

Field Type Required Description
action object Hill: stage 3 — what would you DO differently? May propose concrete docs (ArchiveProposal, Story, PreMortem) for HITL approval.
amplifications array Jung: each symbol expanded by association.
drafted_at string
dream_ref string yes Slug of the SynthesisRun being interpreted.
engine string yes Engine name from registry (e.g. 'hill-interp').
engine_params object Params passed to the engine.
exploration object Hill: stage 1 — re-reading, associations, trigger, affect layer.
framework string yes Interpretation school applied.
generated_by string
identifications array Gestalt: voice of each element as the dreamer.
individuation_question string Jung: integration question opening reflection.
insight object Hill: stage 2 — what does the dream MEAN? Level in {waking, phenomenological, past, parts-of-self}.
lens string Perspectiva da interpretação. Valores convencionais: 'hill', 'jung', 'gestalt', 'pattern', um slug de Agent (ex: 'jarvis', 'architect'), ou 'synthesis-by-' pra meta-synthesis. Pode coincidir com framework — lens é o ponto de vista, framework é a metodologia. Phase: cognitive-reflection.
owner string Slug reference to a Agent. When set, this PatternInsight is PRIVATE to that agent. When null, it is GENERAL. Phase: cognitive-reflection.
summary string yes 1-3 sentence overview of the interpretation.
synthesizes array PatternInsight IDs (names/slugs) que esta interpretação sintetiza. Vazia pra interpretações de 1ª camada (hill, jung, agent-interp). Não-vazia pra synthesis engines (agent-synthesis) que lêem N interps + SynthesisRun e produzem leitura final. Phase: cognitive-reflection.
tags array

Plan

  • Alias: sdlc-plan
  • apiVersion: github.com/ruinosus/dna/sdlc/v1
  • Plane: record

A Plan is a pointer to an implementation plan document on disk. Usually descends from a Spec (spec_ref). Pattern-agnostic — DNA tracks pointer + metadata + refs, not the structure of the plan itself.

Spec fields

Field Type Required Description
authors array
body string Markdown body (stored in PLAN.md).
date string yes
epic string
journey_phase string Universal journey phase. A Plan typically lives in plan (decomposition) and may transition to build once Stories start landing.
methodology string Which planning methodology produced this plan (superpowers | bmad | spec-kit | ...). Opt-in; lets the journey show the plan's origin honestly. The SDLC stays methodology-agnostic — this only records it.
origin string Optional audit-only origin path.
pattern string
spec_ref string Name of the Spec this plan implements.
status string yes
summary string
tags array
title string yes

Postmortem

  • Alias: sdlc-postmortem
  • apiVersion: github.com/ruinosus/dna/sdlc/v1
  • Plane: record

A Postmortem captures a factual analysis of an incident that happened — timeline, root cause, contributing factors, action items, lessons learned. Google SRE convention: blameless. Distinct from PreMortem (hypothetical) and Retrospective (recurring period summary).

Spec fields

Field Type Required Description
action_items array Concrete follow-ups to prevent recurrence.
blameless boolean Google SRE requirement — should always be true.
body string
contributing_factors array Secondary factors that worsened the incident.
created_at string
impact string Customer-facing impact in plain language (downtime, errors, etc.).
incident_at string yes When incident started.
lessons_learned array Insights that generalize beyond this incident.
related_features array
related_stories array Story slugs related to root cause or action items.
resolved_at string When incident was mitigated.
root_cause string yes Primary cause (1-3 paragraphs).
severity string yes Incident severity (sev1=full outage, sev5=cosmetic).
tags array
timeline array Chronological event log.
title string yes Short incident headline.
updated_at string
what_went_well array Detection / response things that worked.
what_went_wrong array Detection / response things that didn't work.

PreMortem

  • Alias: cognitive-pre-mortem
  • apiVersion: github.com/ruinosus/dna/cognitive/v1
  • Plane: record

A PreMortem rewinds a Story's history and asks what would have happened on the other branch. Generated by a deep-sleep hindsight hook after Stories ship/cancel. Verifiable: would_have_changed predictions are compared against current state at outcome_check_at — same verifier as SynthesisRun.

Spec fields

Field Type Required Description
alternative string yes Prose: 'If instead of , the Story had , then...'. 2-4 sentences.
divergence_point string yes Decision/event that branched the timeline. Cite a date or trigger event.
drafted_at string
evidence_against array Doc refs that complicate the counterfactual.
evidence_for array Doc refs supporting the counterfactual.
generated_by string
outcome_check_at string When to verify (same loop as SynthesisRun).
source_outcome string yes What ACTUALLY happened to source_story.
source_story string yes Slug of the Story being rewritten (e.g. 's-foo-bar').
status string
strength string
tags array
verifications array Verification trace (auto-populated by the verifier).
would_have_changed array yes Predictions same shape as SynthesisRun.would_change. Verifiable via same measure_metrics path.

PromptTemplate

  • Alias: sdlc-prompt-template
  • apiVersion: github.com/ruinosus/dna/sdlc/v1
  • Plane: record

A PromptTemplate is a versioned, overlayable user-prompt template owned by the kernel — the declarative answer to 'where does the user prompt live?'. Callers (typically Python helpers or HTTP endpoints) fetch the template by name and format() it with per-call variables. Tenants can override the template body without touching code. Templates can ship versioned with their consuming Kind (Narrative, StatusReport, etc.) so prompt-engineering changes are reviewable diffs, not commits to call sites.

Spec fields

Field Type Required Description
body string yes Template text with {var} placeholders.
default_locale string
description string
tags array
variables array Names of placeholders body expects.

Reference

  • Alias: sdlc-reference
  • apiVersion: github.com/ruinosus/dna/sdlc/v1
  • Plane: record

Spec fields

Field Type Required Description
cited_by array Auto-maintained by dna sdlc cite. Don't author by hand.
content_path string Optional path to rich-content sidecar (e.g. docs/superpowers/research/.md)
created_at string
fetched_at string
key_quotes array
kind_of string yes
owner string
relevance string Why this matters for THIS project.
summary string yes 1-2 sentence what this source says.
tags array
title string yes
updated_at string
url string

Retrospective

  • Alias: sdlc-retrospective
  • apiVersion: github.com/ruinosus/dna/sdlc/v1
  • Plane: record

A Retrospective captures lessons + action items from a period of work. Schema follows Atlassian 4 Ls (Loved/Loathed/Longed for/Learned) — what_went_well, what_didnt, action_items. Adopt for sprint retros, release retros, incident retros. For one architectural decision, use ADR. For one incident factual analysis, use Postmortem (Phase 3 — TBD).

Spec fields

Field Type Required Description
action_items array Concrete next-steps surfaced by the retro.
actor string Who wrote this retro (Actor name, 'claude-code', 'human', ...).
auto_generated boolean true = LLM-generated draft; false = human-curated.
body string Optional full markdown body (RETROSPECTIVE.md). Falls back from structured fields when present.
covers_epics array Epic names this retro discusses.
covers_features array Feature names this retro discusses.
covers_session string AgentSession name (Karpathy pattern).
covers_stories array Story names this retro discusses.
created_at string
intent string What kind of retro this is. Drives Studio grouping — daily stack on timeline, releases pin as marquee, incidents surface in alert filter.
learned array Learned — insights surfaced during the period. Atlassian 4 Ls bucket #4. Feeds future ADRs.
longed_for array Longed for — capabilities/conditions wished for but absent. Atlassian 4 Ls bucket #3.
narrative_origin string When extracted from a Narrative during Phase 2.2 migration, this points to the source Narrative slug for provenance.
open_items array Work that started but didn't close — carry-over to next period.
period_end string yes End of period covered.
period_start string yes Start of period covered (ISO-8601).
summary string Optional one-line tl;dr (shown above body in Studio card).
tags array Free-form tags.
title string yes Headline for this retrospective.
updated_at string
what_didnt array Loathed / Lacked — things that didn't work or caused friction. Atlassian 4 Ls bucket #2.
what_went_well array Loved / Liked — things that worked in this period. Atlassian 4 Ls bucket #1.

RiskRegister

  • Alias: sdlc-risk-register
  • apiVersion: github.com/ruinosus/dna/sdlc/v1
  • Plane: record

One risk entry per RiskRegister doc. PMBOK 7 + ISO 31000:2018 compliant schema: cause→event→consequence description, category, likelihood × impact scoring, mitigation actions, residual score, owner, status lifecycle. Studio aggregates all RiskRegister docs into a heatmap.

Spec fields

Field Type Required Description
body string
category string yes PMBOK 7 categorization.
created_at string
description string yes Risk in cause→event→consequence format. ISO 31000 convention: 'If , then may occur, resulting in '.
impact integer yes 1=negligible, 5=catastrophic.
inherent_score integer likelihood × impact (auto-derivable).
last_reviewed string
likelihood integer yes 1=rare, 5=almost certain.
mitigation_actions array
next_review_due string
owner string yes Actor name accountable for monitoring/mitigation.
related_epics array
related_features array
residual_impact integer
residual_likelihood integer Likelihood after mitigation.
residual_score integer
response string Strategy: avoid|transfer|mitigate|accept.
status string yes Lifecycle: identified → assessed → mitigated → (realized = risk happened) → closed.
tags array
title string Short risk name (used as doc name typically).
updated_at string

Roadmap

  • Alias: sdlc-roadmap
  • apiVersion: github.com/ruinosus/dna/sdlc/v1
  • Plane: record

A Roadmap groups Epics across time horizons (e.g. Q1 2026, Q2 2026). Pure organizational doc — no status of its own; the rolled-up status comes from the Epics it lists.

Spec fields

Field Type Required Description
description string yes
horizons array yes
journey_phase string Universal journey phase. Roadmaps typically live in discover or specify — they're the north star, not the build.
links array External URLs (Confluence, Notion, etc.)
owner_team string

SavedView

  • Alias: sdlc-saved-view
  • apiVersion: github.com/ruinosus/dna/sdlc/v1
  • Plane: record

Named view persisting filter + groupBy + sort + layout for a given Kind in a scope. Linear/Notion/Plane pattern — views as first-class entities (não só URL state). Load via ViewToolbar dropdown.

Spec fields

Field Type Required Description
body string
created_at string
description string
filters object Filter spec — map property → value. E.g. {feature: 'f-X', owner: 'alice', created_window: '7d'}.
group_by string Property to group by (status|feature|owner|priority|sprint|...).
is_default boolean Whether this view loads by default when opening the target Kind list.
layout string yes Visual layout pra render (board=group-by-status, list=flat, ...).
owner string Actor name (creator). Determines edit permission.
sort_by string Property to sort by.
sort_direction string
tags array
target_kind string yes Kind name this view targets (Story, Bug, Spike, ...).
title string yes Human label (e.g. 'My open Stories', 'This sprint blocked').
updated_at string
visibility string
visible_columns array Subset of properties shown (table layout). Empty = show all default columns.

Spec

  • Alias: sdlc-spec
  • apiVersion: github.com/ruinosus/dna/sdlc/v1
  • Plane: record

A Spec is a top-level design artifact. Cross-cutting by default (may drive multiple Features). Pattern-agnostic — superpowers, BMAD, droid, RFC, ADR, Spec Kit all work. status is ADR-style (draft → proposed → accepted → deprecated/superseded); phase is the orthogonal SDLC view (brainstorm → spec → plan_ready → implementing → done). Linkage to work is via Story.spec_refs[] (M:N), NOT via Spec.feature — the axis flip preserves Jira/Confluence semantics.

Spec fields

Field Type Required Description
authors array
body string Markdown body of the spec (stored in SPEC.md).
date string yes
epic string
journey_phase string Universal journey phase. A Spec typically lives in specify, but draft Specs may be discover and finalized ones referenced by Plans drift to plan. Coexists with phase (SDLC-view) — journey_phase is the methodology-agnostic layer.
origin string Optional audit trail — repo-relative path the body was harvested from (e.g. docs/superpowers/specs/X.md). Not used at runtime.
pattern string Spec-driven pattern this artifact follows (superpowers | bmad | droid | rfc | adr | spec-kit | custom).
phase string Where in the SDLC this spec's work sits. Orthogonal to status.
status string yes
summary string Short one-paragraph summary (auto-extracted).
supersedes string Name of the prior Spec this one replaces.
tags array
title string yes

Spike

  • Alias: sdlc-spike
  • apiVersion: github.com/ruinosus/dna/sdlc/v1
  • Plane: record

A Spike is a time-boxed technical investigation. ONE question + finite time budget + outcome handoff (findings → Story or ADR). Distinct from Story (work to ship) e ADR (decision já tomada).

Spec fields

Field Type Required Description
body string
completed_at string
created_at string
feature string
findings string
follow_up_adr string
follow_up_spec string
follow_up_story string
html_artifacts array HtmlArtifact names attached to this Spike (rendered mockups, diagrams, design comparisons).
labels array
logged_hours number
owner string
produces array Artifacts this work item produced — any Kind (hub).
question_to_answer string yes
recommendation string
references array Free-form Reference names (papers, blog posts, library docs cited mid-spike).
related_spikes array Sibling Spikes investigating overlapping questions.
research_refs array Research names this Spike consulted (curated syntheses with N References).
started_at string
status string yes
time_box_hours number
timeline array Append-only activity log. Auto-stamped by the CLI on every status flip / groom / artifact write; populated by AgentSession capture for decision + artifact_produced events. Render in Studio as activity stream.
title string yes
updated_at string

StatusReport

  • Alias: sdlc-status-report
  • apiVersion: github.com/ruinosus/dna/sdlc/v1
  • Plane: record

Spec fields

Field Type Required Description
ascended_from string If the previous verdict's confidence differs from this one, this is the previous level. Empty string when it's the first verdict.
bumped_remembrances array Phase 2B (squishy-jumping-nebula): audit trail written by oracle_cue_hook listing the LessonLearned slugs whose cue history was bumped because this report cited them. Bidirectional pairing with LessonLearned.cues_history. Empty when the run had nothing to bump (the field is omitted, not stored as []).
confidence string yes How firm the verdict is. insufficient = the heuristic didn't have enough data — the LLM was NOT called and the verdict is a stock message.
evidence_refs array Doc refs (Kind/name) cited as evidence for this verdict. Studio renders these as navigable links.
generated_at string
generated_by string Model + actor (e.g. 'claude-sonnet-4-6').
heuristic_explanation string Plain-text walkthrough of HOW the heuristic computed the metrics and decided the confidence. Transparency: a reader can audit the math.
insight string yes Name of the Insight that produced this report.
metrics object Deterministic numbers the heuristic computed (cycle counts, frequencies, averages). Free-form object — schema varies per oracle.
owner string Slug reference to a Agent. When set, this StatusReport is PRIVATE to that agent. When null, it is GENERAL. Phase: cognitive-reflection.
question string Echo of the oracle's question at run time.
rag_status string PMO-standard RAG status (Red/Amber/Green) for executive dashboards. Red = action needed; Amber = watch; Green = healthy. Optional — heuristics that map metrics → RAG should populate this.
thresholds object Self-describing thresholds the heuristic used (e.g. to_certain: 'pattern_freq > 0.9 AND n>=5'). Lets the reader know what would change the verdict.
verdict string yes Human-readable answer (1-3 sentences pt-BR). Synthesized by the LLM from the heuristic numbers.

Story

  • Alias: sdlc-story
  • apiVersion: github.com/ruinosus/dna/sdlc/v1
  • Plane: record

A Story is a granular task: one developer, one PR, one estimate. Lists acceptance criteria, dependencies (other Stories that must land first), and rolls up to a Feature.

Spec fields

Field Type Required Description
acceptance_criteria array Acceptance criteria. Legacy: list[str]. New (s-ac-dod-checklist-state): list[{text, done?, done_at?, done_by?}] for per-item state tracking.
as_a string Role: 'As a '. INVEST/user-story format slot.
blocked_reason string
business_value number WSJF-style scalar for relative prioritization.
closed_at string
created_at string
definition_of_done array Per-Story DoD. Same union shape as acceptance_criteria — legacy list[str] OR list[{text, done?, done_at?, done_by?}].
dependencies array Other Story names that must land first
description string yes
estimate number Fibonacci story points (1, 2, 3, 5, 8, 13, 21)
feature string Parent Feature name
i_want string Goal: 'I want '. INVEST/user-story format slot.
journey_phase string Universal journey phase (discover → specify → plan → build → reflect). Additive layer over Story/Feature/Epic status, Spec phase, etc. Lets the journey ledger pin this doc to one of five universal phases compatible with Superpowers / BMAD / Spec Kit / Kiro.
labels array Free-form tags for swim lanes / filters.
mockups array URLs/paths to design artifacts.
owner string Actor name
priority string Board priority. Jira-aligned.
produces array Artifacts this work item produced — any Kind (hub).
release_target string Epic name OR 'owner/pkg@semver' identifying the release this Story unblocks.
reporter string Actor who filed it (vs owner who works on it).
so_that string Benefit: 'so that '. INVEST/user-story format slot.
spec_refs array Spec docs (kind=Spec) this Story implements. M:N linkage between the planning axis (Story) and the design axis (Spec) — Jira/Confluence-shaped.
sprint_ref string Sprint identifier (free-form, e.g. '2026-Q2-S2').
status string yes
time_tracking object
timeline array Append-only activity log. Auto-stamped by the CLI on every status flip / groom / artifact write; populated by AgentSession capture for decision + artifact_produced events. Render in Studio as activity stream.
title string Human-readable display name (Jira 'summary').
updated_at string
watchers array Actor names subscribed to changes.

SynthesisRun

  • Alias: sdlc-synthesis-run
  • apiVersion: github.com/ruinosus/dna/sdlc/v1
  • Plane: record

SynthesisRun = oneiric artefact. Surreal recombination of project memory (fragments lifted from LessonLearned/Story/ArchiveProposal/WorkflowEvent) + impossible juxtapositions + dominant affect + one captured symbol. NOT falseable, NOT a prediction. Pair with Forecast for the predictive dimension.

Spec fields

Field Type Required Description
affect string yes Dominant emotional register of the dream.
belief_updates array Belief deltas the dream proposes. Each is a before/after pair with reasoning. Scribe downstream may apply, reject, or queue for human review.
confidence number Self-rated confidence in the dream's claims. 0.0 = pure imagination; 1.0 = ≥3 strong source_event_ids per claim + critic-pass clean. Used by ranker + clinical-guardrails.
contradictions array Detected contradictions between source_event_ids the dream surfaced. NOT auto-resolved — flagged for human or scribe arbitration.
drafted_at string
dreamer string yes Author — UA slug ('oneiric-scribe') or 'user'.
echo array Engram slugs activated (resonance, not analytic weight).
fragments array yes 3-5 pieces of real project memory that got recombined to form the dream. Like ecforia cues.
generated_by string
insight_candidates array Discrete proposals to promote into StatusReport / LessonLearned / Skill via downstream scribes. Each item is independently rankable + verifiable.
juxtapositions array Impossible / surreal combinations of fragments. Ex: 'rem-X encontra forget-Y e oferece uma troca.' Optional but encouraged.
lens string SynthesisRunLens.name used to frame this dream (e.g. 'hindsight-cf', 'future-projection', 'skill-extractor'). Null = generated from SynthesizerState voice alone.
owner string Slug reference to a Agent. When set, this SynthesisRun is PRIVATE to that agent (gerado a partir de LessonsLearned com mesmo owner). When null, the SynthesisRun is GENERAL. Phase: cognitive-reflection. S5 (dream-engines-v2): also matches a SynthesizerState.role when the dream came from hybrid-topn engine.
scenario string yes Imagistic prose, 3-6 sentences. The scene unfolding. Can have dialogue, surreal events, affect-loaded imagery. NOT a prediction or hedge.
skill_candidates array Voyager-style skill seeds. Each is a name + trigger condition + procedural sketch. skill-synthesis engine consumes these.
source_event_ids array Doc refs of the memories this dream is grounded in. Required for every claim in insight_candidates + belief_updates. Provenance for critic-pass + eval-suite.
source_oracle string
symbol string yes 1-line metaphor that captures the dream as a whole. Image-based, not analytic. Ex: 'A Feature corre por um corredor que se estreita sem fim.'
tags array
woke_thought string Optional. The single thought lingering on waking. Where reflection might begin, not a prediction.

SynthesizerState

  • Alias: sdlc-synthesizer-state
  • apiVersion: github.com/ruinosus/dna/sdlc/v1
  • Plane: record

SynthesizerState = persona contract for a dream-gen agent. Declares role + goal + backstory + method + voice_markers + non_goals + memory_policy + constitution + examples. Read by hybrid-topn engine to drive voice + memory routing. Pairs 1:1 with a Agent (scribe-engram, oracle-risk, ...). Multiple co-exist; SynthesisRunTriggerPolicy routes events.

Spec fields

Field Type Required Description
backstory string Narrative background (CrewAI pattern). 2-4 sentences. Anchors voice + perspective. Stored as bundle body so it can grow long.
constitution array Constitutional AI principles (DSI/Anthropic pattern). Ex: ['ground every claim in source_event_ids', 'mark speculation as such', 'prefer evidence over invention']. Critic-pass evaluates dream output against these.
drafted_at string
drafted_by string
dreamer_memory_stream_ref string | null Reference to this dreamer's persistent memory stream — coleção dos SynthesisRuns anteriores deste dreamer (cross-session continuity). Generative Agents (Park 2023) evidence: voz individuada emerge de memory stream + reflexão, NÃO de voice_markers adjetivos. Hybrid-topn engine deve injetar últimos N dreams + reflexões no prompt context. Format esperado: '/SynthesisRunCollection/' OR simples slug-name resolvido contra um SynthesisRunCollection Kind (a definir). Cross-synth ref: f-unique-voice-is-memory-not-prompt.
examples_negative array 2-3 anti-patterns. Critic-pass uses these as explicit negative examples (what to avoid).
examples_positive array 2-3 exemplary dreams in this dreamer's voice. Few-shot prompts to anchor style.
goal string yes What this dreamer is FOR. Ex: 'consolidate episódios em padrões reutilizáveis' (scribe), 'flag tail-risks antes que cristalizem em incidente' (oracle-risk).
linked_agent string Optional Agent slug this SynthesizerState pairs with (1:1 — same persona, two surfaces: agent runs synchronous, dreamer runs offline).
memory_policy object Routing hints for memory retrieval. Hybrid- topn engine respects these when assembling memory_subset. Empty dict = match-all.
method string yes How this dreamer reasons. analogical = compare-and-contrast; causal = chain of events; surreal = juxtaposition; structural = patterns/relations; narrative = arc; counterfactual = 'what if'; metaphorical = imagistic transfer.
non_goals array What this dreamer MUST NOT do. Used as explicit critic-pass guardrails. Ex: 'never make diagnostic claims', 'never name living people in dreams'.
role string yes Short label for this dreamer. Usually matches a Agent slug. Ex: 'scribe-engram', 'oracle-risk', 'narrative-historian'.
tags array
voice_markers array yes Words/structures/cadence that mark this dreamer's voice. Ex: ['vestígio', 'arquivo subterrâneo', 'frase nominal curta', 'metáfora geológica']. Used by ranker for voice fingerprint match (anti-drift).

Task

  • Alias: sdlc-task
  • apiVersion: github.com/ruinosus/dna/sdlc/v1
  • Plane: record

A Task is a granular work item (horas-dias) typically as sub-item of a Story. For multi-day deliverables use Story.

Spec fields

Field Type Required Description
blocked_reason string
body string
closed_at string
created_at string
description string
due string
estimate_hours number
labels array
logged_hours number
owner string
priority string
produces array Artifacts this work item produced — any Kind (hub).
status string yes
story_ref string
timeline array Append-only activity log. Auto-stamped by the CLI on every status flip / groom / artifact write; populated by AgentSession capture for decision + artifact_produced events. Render in Studio as activity stream.
title string yes
updated_at string

WorkflowEvent

  • Alias: sdlc-workflow-event
  • apiVersion: github.com/ruinosus/dna/sdlc/v1
  • Plane: record

Append-only journey ledger. One entry per (artifact, phase) pair. Read together as a sequence, they form the trail from discover → reflect for a Roadmap/Epic/Feature. DNA's methodology-agnostic layer — Superpowers / BMAD / Spec Kit all map onto it via the methodology field.

Spec fields

Field Type Required Description
actor string Who recorded the transition.
artifact_kind string Back-compat (deprecated): legacy Kind half of ref.
artifact_name string Back-compat (deprecated): legacy name half of ref.
auto_emitted_by string Back-compat (deprecated): legacy form of actor.
closes_cycle boolean True on a reflect entry that has been closed by journey close-cycle — marks the boundary where the next discover starts cycle N+1. Set automatically; client may use as the explicit cycle delimiter.
created_at string
cycle_index integer 1-based cycle number this entry belongs to. All entries within the same ouroboros loop share the same cycle_index. Incremented when journey close-cycle opens the next discover. Backend-explicit alternative to client-side heuristic cycle detection.
decision_text string Back-compat (deprecated): free-text decision on the entry.
decisions string Back-compat (deprecated): legacy decisions note on the entry.
ended_at string When the agent left this phase. Null while the phase is still active.
epic_ref string Back-compat (deprecated): legacy form of parent_ref (Epic).
feature_ref string Back-compat (deprecated): legacy form of parent_ref (Feature).
methodology string Which methodology the agent followed in this phase. ad-hoc is honest — Studio renders it with a 'no methodology' badge so we can spot where we cut corners.
methodology_artifact string Repo-relative path or URL to the methodology's external artifact, when applicable. E.g. docs/superpowers/plans/foo-plan.md for the Superpowers writing-plans output, .specify/foo/plan.md for Spec Kit, etc.
owner string Back-compat (deprecated): legacy owner of the entry.
parent_ref string Anchor doc grouping this entry with siblings. Typically Feature/<name> or Epic/<name> — everything in the journey of one Feature has the same parent_ref.
phase string yes Which of the five universal phases this entry represents.
rationale string Back-compat (deprecated): free-text rationale on the entry.
ref string Doc this entry pins. Format: Kind/name (e.g. Spec/foo, Plan/bar, AgentSession/vs-baz).
seed_from string Name of the prior cycle's reflect WorkflowEvent that seeded this entry. Set on discover entries created via dna sdlc journey close-cycle — the ouroboros bite, where reflect's lessons literally feed into the next discover. Distinct from transitioned_from: that's the immediate predecessor across phases; this is the cross-cycle inheritance link.
skipped_phases array Phases jumped over to get to this entry. E.g. discover → build means skipped ['specify', 'plan'] — Studio shows them in muted strikethrough so the trajectory stays honest.
started_at string
summary string 1-2 sentence note about what happened in this phase. Optional — rendered as the entry's tooltip in Studio.
tags array
timestamp string Back-compat (deprecated): legacy form of created_at.
transitioned_from string Name of the previous WorkflowEvent in this trajectory (forms a linked list). Optional for the first entry of a trajectory.