dna-sdk 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (240) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +58 -0
  3. package/dist/adapters/embedding/onnx.d.ts +32 -0
  4. package/dist/adapters/embedding/onnx.js +51 -0
  5. package/dist/adapters/filesystem/cache.d.ts +16 -0
  6. package/dist/adapters/filesystem/cache.js +113 -0
  7. package/dist/adapters/filesystem/index.d.ts +2 -0
  8. package/dist/adapters/filesystem/index.js +2 -0
  9. package/dist/adapters/filesystem/source.d.ts +82 -0
  10. package/dist/adapters/filesystem/source.js +357 -0
  11. package/dist/adapters/postgres/index.d.ts +2 -0
  12. package/dist/adapters/postgres/index.js +2 -0
  13. package/dist/adapters/postgres/migrations.d.ts +14 -0
  14. package/dist/adapters/postgres/migrations.js +88 -0
  15. package/dist/adapters/postgres/source.d.ts +172 -0
  16. package/dist/adapters/postgres/source.js +569 -0
  17. package/dist/adapters/resolvers/github.d.ts +12 -0
  18. package/dist/adapters/resolvers/github.js +47 -0
  19. package/dist/adapters/resolvers/http.d.ts +22 -0
  20. package/dist/adapters/resolvers/http.js +145 -0
  21. package/dist/adapters/resolvers/index.d.ts +3 -0
  22. package/dist/adapters/resolvers/index.js +3 -0
  23. package/dist/adapters/resolvers/local.d.ts +24 -0
  24. package/dist/adapters/resolvers/local.js +132 -0
  25. package/dist/adapters/search/driver.d.ts +45 -0
  26. package/dist/adapters/search/driver.js +138 -0
  27. package/dist/adapters/search/migrations.d.ts +26 -0
  28. package/dist/adapters/search/migrations.js +58 -0
  29. package/dist/adapters/search/rrf.d.ts +23 -0
  30. package/dist/adapters/search/rrf.js +42 -0
  31. package/dist/adapters/search/sqlite-vec.d.ts +66 -0
  32. package/dist/adapters/search/sqlite-vec.js +294 -0
  33. package/dist/bootstrap.d.ts +45 -0
  34. package/dist/bootstrap.js +134 -0
  35. package/dist/extensions/agentskills/DOCS.md +18 -0
  36. package/dist/extensions/agentskills.d.ts +28 -0
  37. package/dist/extensions/agentskills.js +252 -0
  38. package/dist/extensions/agentsmd/DOCS.md +18 -0
  39. package/dist/extensions/agentsmd.d.ts +22 -0
  40. package/dist/extensions/agentsmd.js +170 -0
  41. package/dist/extensions/audit/kinds/audit-log.kind.yaml +148 -0
  42. package/dist/extensions/audit.d.ts +25 -0
  43. package/dist/extensions/audit.js +62 -0
  44. package/dist/extensions/automation/kinds/automation.kind.yaml +296 -0
  45. package/dist/extensions/automation/query.d.ts +49 -0
  46. package/dist/extensions/automation/query.js +77 -0
  47. package/dist/extensions/automation/write-guards.d.ts +59 -0
  48. package/dist/extensions/automation/write-guards.js +153 -0
  49. package/dist/extensions/automation.d.ts +41 -0
  50. package/dist/extensions/automation.js +54 -0
  51. package/dist/extensions/collab.d.ts +16 -0
  52. package/dist/extensions/collab.js +79 -0
  53. package/dist/extensions/doc/kinds/doc.kind.yaml +118 -0
  54. package/dist/extensions/doc.d.ts +25 -0
  55. package/dist/extensions/doc.js +10 -0
  56. package/dist/extensions/eval/kinds/eval-baseline.kind.yaml +65 -0
  57. package/dist/extensions/eval/kinds/eval-case.kind.yaml +140 -0
  58. package/dist/extensions/eval/kinds/eval-run.kind.yaml +134 -0
  59. package/dist/extensions/eval/kinds/eval-suite.kind.yaml +87 -0
  60. package/dist/extensions/eval.d.ts +24 -0
  61. package/dist/extensions/eval.js +31 -0
  62. package/dist/extensions/evidence/kinds/evidence.kind.yaml +92 -0
  63. package/dist/extensions/evidence.d.ts +17 -0
  64. package/dist/extensions/evidence.js +94 -0
  65. package/dist/extensions/federation.d.ts +22 -0
  66. package/dist/extensions/federation.js +173 -0
  67. package/dist/extensions/guardrails/DOCS.md +20 -0
  68. package/dist/extensions/guardrails.d.ts +31 -0
  69. package/dist/extensions/guardrails.js +228 -0
  70. package/dist/extensions/helix/DOCS-Actor.md +20 -0
  71. package/dist/extensions/helix/DOCS-Agent.md +20 -0
  72. package/dist/extensions/helix/DOCS-UseCase.md +20 -0
  73. package/dist/extensions/helix/layers.d.ts +12 -0
  74. package/dist/extensions/helix/layers.js +18 -0
  75. package/dist/extensions/helix/write-guards.d.ts +70 -0
  76. package/dist/extensions/helix/write-guards.js +172 -0
  77. package/dist/extensions/helix.d.ts +29 -0
  78. package/dist/extensions/helix.js +963 -0
  79. package/dist/extensions/helix_extras.d.ts +124 -0
  80. package/dist/extensions/helix_extras.js +328 -0
  81. package/dist/extensions/hooks.d.ts +31 -0
  82. package/dist/extensions/hooks.js +247 -0
  83. package/dist/extensions/kinddef/DOCS.md +24 -0
  84. package/dist/extensions/kinddef.d.ts +40 -0
  85. package/dist/extensions/kinddef.js +171 -0
  86. package/dist/extensions/lesson.d.ts +6 -0
  87. package/dist/extensions/lesson.js +194 -0
  88. package/dist/extensions/modelreg/kinds/model-profile.kind.yaml +155 -0
  89. package/dist/extensions/modelreg.d.ts +30 -0
  90. package/dist/extensions/modelreg.js +38 -0
  91. package/dist/extensions/recognizer.d.ts +34 -0
  92. package/dist/extensions/recognizer.js +272 -0
  93. package/dist/extensions/research.d.ts +32 -0
  94. package/dist/extensions/research.js +292 -0
  95. package/dist/extensions/safety.d.ts +33 -0
  96. package/dist/extensions/safety.js +230 -0
  97. package/dist/extensions/sdlc/kinds/adr.kind.yaml +136 -0
  98. package/dist/extensions/sdlc/kinds/archive-proposal.kind.yaml +107 -0
  99. package/dist/extensions/sdlc/kinds/changelog.kind.yaml +108 -0
  100. package/dist/extensions/sdlc/kinds/cognitive-policy.kind.yaml +470 -0
  101. package/dist/extensions/sdlc/kinds/forecast.kind.yaml +125 -0
  102. package/dist/extensions/sdlc/kinds/insight.kind.yaml +87 -0
  103. package/dist/extensions/sdlc/kinds/kaizen.kind.yaml +106 -0
  104. package/dist/extensions/sdlc/kinds/lesson-learned.kind.yaml +270 -0
  105. package/dist/extensions/sdlc/kinds/narrative.kind.yaml +189 -0
  106. package/dist/extensions/sdlc/kinds/pattern-insight.kind.yaml +204 -0
  107. package/dist/extensions/sdlc/kinds/postmortem.kind.yaml +168 -0
  108. package/dist/extensions/sdlc/kinds/pre-mortem.kind.yaml +145 -0
  109. package/dist/extensions/sdlc/kinds/prompt-template.kind.yaml +109 -0
  110. package/dist/extensions/sdlc/kinds/retrospective.kind.yaml +186 -0
  111. package/dist/extensions/sdlc/kinds/risk-register.kind.yaml +178 -0
  112. package/dist/extensions/sdlc/kinds/saved-view.kind.yaml +127 -0
  113. package/dist/extensions/sdlc/kinds/status-report.kind.yaml +129 -0
  114. package/dist/extensions/sdlc/kinds/synthesis-run.kind.yaml +279 -0
  115. package/dist/extensions/sdlc/kinds/synthesizer-state.kind.yaml +196 -0
  116. package/dist/extensions/sdlc/kinds/workflow-event.kind.yaml +195 -0
  117. package/dist/extensions/sdlc.d.ts +32 -0
  118. package/dist/extensions/sdlc.js +1318 -0
  119. package/dist/extensions/soulspec/DOCS.md +19 -0
  120. package/dist/extensions/soulspec.d.ts +22 -0
  121. package/dist/extensions/soulspec.js +287 -0
  122. package/dist/extensions/tenant.d.ts +6 -0
  123. package/dist/extensions/tenant.js +291 -0
  124. package/dist/extensions/testkit.d.ts +24 -0
  125. package/dist/extensions/testkit.js +211 -0
  126. package/dist/index.d.ts +80 -0
  127. package/dist/index.js +102 -0
  128. package/dist/kernel/_text.d.ts +28 -0
  129. package/dist/kernel/_text.js +42 -0
  130. package/dist/kernel/bundle-handle.d.ts +83 -0
  131. package/dist/kernel/bundle-handle.js +184 -0
  132. package/dist/kernel/capabilities.d.ts +157 -0
  133. package/dist/kernel/capabilities.js +109 -0
  134. package/dist/kernel/collaborator-ports.d.ts +91 -0
  135. package/dist/kernel/collaborator-ports.js +1 -0
  136. package/dist/kernel/composition-resolver.d.ts +215 -0
  137. package/dist/kernel/composition-resolver.js +558 -0
  138. package/dist/kernel/composition.d.ts +10 -0
  139. package/dist/kernel/composition.js +1 -0
  140. package/dist/kernel/descriptor-loader.d.ts +13 -0
  141. package/dist/kernel/descriptor-loader.js +48 -0
  142. package/dist/kernel/document.d.ts +43 -0
  143. package/dist/kernel/document.js +71 -0
  144. package/dist/kernel/embedding.d.ts +28 -0
  145. package/dist/kernel/embedding.js +78 -0
  146. package/dist/kernel/errors.d.ts +62 -0
  147. package/dist/kernel/errors.js +82 -0
  148. package/dist/kernel/events.d.ts +6 -0
  149. package/dist/kernel/events.js +21 -0
  150. package/dist/kernel/evidence-capture.d.ts +69 -0
  151. package/dist/kernel/evidence-capture.js +138 -0
  152. package/dist/kernel/fs.d.ts +20 -0
  153. package/dist/kernel/fs.js +128 -0
  154. package/dist/kernel/generic-rw.d.ts +33 -0
  155. package/dist/kernel/generic-rw.js +235 -0
  156. package/dist/kernel/hooks.d.ts +172 -0
  157. package/dist/kernel/hooks.js +256 -0
  158. package/dist/kernel/index.d.ts +624 -0
  159. package/dist/kernel/index.js +1638 -0
  160. package/dist/kernel/instance.d.ts +211 -0
  161. package/dist/kernel/instance.js +487 -0
  162. package/dist/kernel/kind-registry.d.ts +183 -0
  163. package/dist/kernel/kind-registry.js +710 -0
  164. package/dist/kernel/kind_base.d.ts +106 -0
  165. package/dist/kernel/kind_base.js +244 -0
  166. package/dist/kernel/layer-resolver.d.ts +48 -0
  167. package/dist/kernel/layer-resolver.js +284 -0
  168. package/dist/kernel/lock-manager.d.ts +21 -0
  169. package/dist/kernel/lock-manager.js +43 -0
  170. package/dist/kernel/lock.d.ts +38 -0
  171. package/dist/kernel/lock.js +115 -0
  172. package/dist/kernel/meta.d.ts +135 -0
  173. package/dist/kernel/meta.js +817 -0
  174. package/dist/kernel/models.d.ts +3089 -0
  175. package/dist/kernel/models.js +764 -0
  176. package/dist/kernel/navigator.d.ts +36 -0
  177. package/dist/kernel/navigator.js +132 -0
  178. package/dist/kernel/port-surface.d.ts +33 -0
  179. package/dist/kernel/port-surface.js +180 -0
  180. package/dist/kernel/preview.d.ts +60 -0
  181. package/dist/kernel/preview.js +54 -0
  182. package/dist/kernel/prompt-budget.d.ts +39 -0
  183. package/dist/kernel/prompt-budget.js +43 -0
  184. package/dist/kernel/prompt-builder.d.ts +25 -0
  185. package/dist/kernel/prompt-builder.js +237 -0
  186. package/dist/kernel/protocols.d.ts +751 -0
  187. package/dist/kernel/protocols.js +493 -0
  188. package/dist/kernel/reports.d.ts +26 -0
  189. package/dist/kernel/reports.js +215 -0
  190. package/dist/kernel/resolver.d.ts +146 -0
  191. package/dist/kernel/resolver.js +232 -0
  192. package/dist/kernel/resource.d.ts +57 -0
  193. package/dist/kernel/resource.js +97 -0
  194. package/dist/kernel/runtime.d.ts +16 -0
  195. package/dist/kernel/runtime.js +18 -0
  196. package/dist/kernel/safety-scanner.d.ts +38 -0
  197. package/dist/kernel/safety-scanner.js +228 -0
  198. package/dist/kernel/serialize-to-files.d.ts +29 -0
  199. package/dist/kernel/serialize-to-files.js +23 -0
  200. package/dist/kernel/spec-access.d.ts +23 -0
  201. package/dist/kernel/spec-access.js +40 -0
  202. package/dist/kernel/studio_ui.d.ts +88 -0
  203. package/dist/kernel/studio_ui.js +135 -0
  204. package/dist/kernel/templates.d.ts +77 -0
  205. package/dist/kernel/templates.js +116 -0
  206. package/dist/kernel/tool-registry.d.ts +52 -0
  207. package/dist/kernel/tool-registry.js +89 -0
  208. package/dist/kernel/write-pipeline.d.ts +65 -0
  209. package/dist/kernel/write-pipeline.js +271 -0
  210. package/dist/kernel/writer-helpers.d.ts +24 -0
  211. package/dist/kernel/writer-helpers.js +42 -0
  212. package/dist/memory/decay.d.ts +31 -0
  213. package/dist/memory/decay.js +97 -0
  214. package/dist/memory/ecphory.d.ts +25 -0
  215. package/dist/memory/ecphory.js +178 -0
  216. package/dist/memory/encodingContext.d.ts +21 -0
  217. package/dist/memory/encodingContext.js +62 -0
  218. package/dist/memory/index.d.ts +23 -0
  219. package/dist/memory/index.js +23 -0
  220. package/dist/memory/memoryType.d.ts +7 -0
  221. package/dist/memory/memoryType.js +24 -0
  222. package/dist/memory/policy.d.ts +35 -0
  223. package/dist/memory/policy.js +35 -0
  224. package/dist/memory/retrieval.d.ts +21 -0
  225. package/dist/memory/retrieval.js +145 -0
  226. package/dist/testing/index.d.ts +8 -0
  227. package/dist/testing/index.js +8 -0
  228. package/dist/testing/recordSearchConformance.d.ts +43 -0
  229. package/dist/testing/recordSearchConformance.js +147 -0
  230. package/dist/viz/ascii.d.ts +7 -0
  231. package/dist/viz/ascii.js +60 -0
  232. package/dist/viz/health.d.ts +8 -0
  233. package/dist/viz/health.js +161 -0
  234. package/dist/viz/index.d.ts +10 -0
  235. package/dist/viz/index.js +10 -0
  236. package/dist/viz/matrix.d.ts +8 -0
  237. package/dist/viz/matrix.js +84 -0
  238. package/dist/viz/mermaid.d.ts +38 -0
  239. package/dist/viz/mermaid.js +706 -0
  240. package/package.json +82 -0
@@ -0,0 +1,129 @@
1
+ # StatusReport — frozen snapshot of one Insight's run (record plane).
2
+ # Append-only ledger: each run writes a new report; confidence ascends or
3
+ # regresses as the project accumulates data. Schema mirrors AssessmentReport.
4
+ #
5
+ # F3 lote-2 (spec 2026-06-10-kinds-descriptor-f3): synthesized from this
6
+ # descriptor; the hand-written class twins were deleted. PARITY-CRITICAL
7
+ # package data — byte-identical mirror under packages/sdk-{py,ts};
8
+ # tests/test_descriptor_hash_parity.py enforces. Equivalence vs the extinct
9
+ # class frozen in tests/test_lote2_descriptor_equivalence.py (golden:
10
+ # tests/goldens/lote2/StatusReport.golden.json). Deltas intencionais (semântica
11
+ # canônica = port): summary curado substitui o eco whole-spec do KindBase
12
+ # default (list endpoints não usam kp.summary()); parse valida contra o
13
+ # schema (classe era pass-through); to_card morto não migrado.
14
+ apiVersion: github.com/ruinosus/dna/core/v1
15
+ kind: KindDefinition
16
+ metadata:
17
+ name: status-report
18
+ spec:
19
+ target_api_version: github.com/ruinosus/dna/sdlc/v1
20
+ target_kind: StatusReport
21
+ alias: sdlc-status-report
22
+ origin: github.com/ruinosus/dna/sdlc
23
+ tenant_scope: global
24
+ plane: record
25
+ prompt_target: false
26
+ flatten_in_context: false
27
+ prompt_target_priority: 0
28
+ storage:
29
+ type: yaml
30
+ container: status-reports
31
+ dep_filters:
32
+ insight: sdlc-insight
33
+ schema:
34
+ type: object
35
+ required:
36
+ - insight
37
+ - verdict
38
+ - confidence
39
+ properties:
40
+ insight:
41
+ type: string
42
+ description: Name of the Insight that produced this report.
43
+ question:
44
+ type: string
45
+ description: Echo of the oracle's question at run time.
46
+ verdict:
47
+ type: string
48
+ description: Human-readable answer (1-3 sentences pt-BR). Synthesized by the
49
+ LLM from the heuristic numbers.
50
+ confidence:
51
+ type: string
52
+ enum:
53
+ - certain
54
+ - guess
55
+ - insufficient
56
+ description: How firm the verdict is. `insufficient` = the heuristic didn't
57
+ have enough data — the LLM was NOT called and the verdict is a stock message.
58
+ rag_status:
59
+ type: string
60
+ enum:
61
+ - red
62
+ - amber
63
+ - green
64
+ description: PMO-standard RAG status (Red/Amber/Green) for executive dashboards.
65
+ Red = action needed; Amber = watch; Green = healthy. Optional — heuristics
66
+ that map metrics → RAG should populate this.
67
+ metrics:
68
+ type: object
69
+ description: Deterministic numbers the heuristic computed (cycle counts, frequencies,
70
+ averages). Free-form object — schema varies per oracle.
71
+ heuristic_explanation:
72
+ type: string
73
+ description: 'Plain-text walkthrough of HOW the heuristic computed the metrics
74
+ and decided the confidence. Transparency: a reader can audit the math.'
75
+ evidence_refs:
76
+ type: array
77
+ items:
78
+ type: string
79
+ description: Doc refs (Kind/name) cited as evidence for this verdict. Studio
80
+ renders these as navigable links.
81
+ generated_at:
82
+ type: string
83
+ format: date-time
84
+ generated_by:
85
+ type: string
86
+ description: Model + actor (e.g. 'claude-sonnet-4-6').
87
+ ascended_from:
88
+ type: string
89
+ enum:
90
+ - certain
91
+ - guess
92
+ - insufficient
93
+ - ''
94
+ description: If the previous verdict's confidence differs from this one, this
95
+ is the previous level. Empty string when it's the first verdict.
96
+ thresholds:
97
+ type: object
98
+ description: 'Self-describing thresholds the heuristic used (e.g. `to_certain:
99
+ ''pattern_freq > 0.9 AND n>=5''`). Lets the reader know what would change
100
+ the verdict.'
101
+ bumped_remembrances:
102
+ type: array
103
+ items:
104
+ type: string
105
+ description: 'Phase 2B (squishy-jumping-nebula): audit trail written by oracle_cue_hook
106
+ listing the LessonLearned slugs whose cue history was bumped because this
107
+ report cited them. Bidirectional pairing with LessonLearned.cues_history.
108
+ Empty when the run had nothing to bump (the field is omitted, not stored
109
+ as []).'
110
+ owner:
111
+ type: string
112
+ description: 'Slug reference to a Agent. When set, this StatusReport
113
+ is PRIVATE to that agent. When null, it is GENERAL. Phase: cognitive-reflection.'
114
+ summary:
115
+ insight: ''
116
+ verdict: ''
117
+ confidence: ''
118
+ generated_at: ''
119
+ owner: null
120
+ embed:
121
+ - verdict
122
+ - question
123
+ - heuristic_explanation
124
+ graph_style:
125
+ fill: '#A78BFA'
126
+ stroke: '#7C3AED'
127
+ text_color: '#fff'
128
+ ascii_icon: 📜
129
+ display_label: Insight Reports
@@ -0,0 +1,279 @@
1
+ # SynthesisRun — oneiric processing artefact (record plane). Surreal
2
+ # recombination of memory fragments + dominant affect + one captured symbol.
3
+ # NOT a prediction (that's Forecast) — synthesis processes, never predicts.
4
+ # Curated summary drops the extinct to_card's DERIVED counts
5
+ # (insight_count/belief_count/skill_count) — computed fields are not
6
+ # expressible as a declared projection and the to_card had zero consumers.
7
+ #
8
+ # F3 lote-2 (spec 2026-06-10-kinds-descriptor-f3): synthesized from this
9
+ # descriptor; the hand-written class twins were deleted. PARITY-CRITICAL
10
+ # package data — byte-identical mirror under packages/sdk-{py,ts};
11
+ # tests/test_descriptor_hash_parity.py enforces. Equivalence vs the extinct
12
+ # class frozen in tests/test_lote2_descriptor_equivalence.py (golden:
13
+ # tests/goldens/lote2/SynthesisRun.golden.json). Deltas intencionais (semântica
14
+ # canônica = port): summary curado substitui o eco whole-spec do KindBase
15
+ # default (list endpoints não usam kp.summary()); parse valida contra o
16
+ # schema (classe era pass-through); to_card morto não migrado.
17
+ apiVersion: github.com/ruinosus/dna/core/v1
18
+ kind: KindDefinition
19
+ metadata:
20
+ name: synthesis-run
21
+ spec:
22
+ target_api_version: github.com/ruinosus/dna/sdlc/v1
23
+ target_kind: SynthesisRun
24
+ alias: sdlc-synthesis-run
25
+ origin: github.com/ruinosus/dna/sdlc
26
+ tenant_scope: global
27
+ plane: record
28
+ prompt_target: false
29
+ flatten_in_context: false
30
+ prompt_target_priority: 0
31
+ storage:
32
+ type: bundle
33
+ container: synthesis-runs
34
+ marker: SYNTHESIS_RUN.md
35
+ body_field: body
36
+ schema:
37
+ type: object
38
+ required:
39
+ - dreamer
40
+ - affect
41
+ - symbol
42
+ - scenario
43
+ - fragments
44
+ properties:
45
+ dreamer:
46
+ type: string
47
+ description: Author — UA slug ('oneiric-scribe') or 'user'.
48
+ affect:
49
+ type: string
50
+ enum:
51
+ - anxiety
52
+ - longing
53
+ - triumph
54
+ - eerie
55
+ - vertigo
56
+ - wistful
57
+ - ominous
58
+ - dread
59
+ - wonder
60
+ description: Dominant emotional register of the dream.
61
+ symbol:
62
+ type: string
63
+ maxLength: 200
64
+ description: '1-line metaphor that captures the dream as a whole. Image-based,
65
+ not analytic. Ex: ''A Feature corre por um corredor que se estreita sem
66
+ fim.'''
67
+ scenario:
68
+ type: string
69
+ maxLength: 2000
70
+ description: Imagistic prose, 3-6 sentences. The scene unfolding. Can have
71
+ dialogue, surreal events, affect-loaded imagery. NOT a prediction or hedge.
72
+ fragments:
73
+ type: array
74
+ items:
75
+ type: object
76
+ required:
77
+ - source
78
+ properties:
79
+ source:
80
+ type: string
81
+ description: 'Doc ref: ''LessonLearned/rem-foo'', ''Story/s-bar'', etc.'
82
+ lifted:
83
+ type: string
84
+ description: Specific phrase or detail recombined into the dream.
85
+ minItems: 2
86
+ description: 3-5 pieces of real project memory that got recombined to form
87
+ the dream. Like ecforia cues.
88
+ juxtapositions:
89
+ type: array
90
+ items:
91
+ type: string
92
+ default: []
93
+ description: 'Impossible / surreal combinations of fragments. Ex: ''rem-X
94
+ encontra forget-Y e oferece uma troca.'' Optional but encouraged.'
95
+ echo:
96
+ type: array
97
+ items:
98
+ type: string
99
+ default: []
100
+ description: Engram slugs activated (resonance, not analytic weight).
101
+ woke_thought:
102
+ type: string
103
+ description: Optional. The single thought lingering on waking. Where reflection
104
+ might begin, not a prediction.
105
+ drafted_at:
106
+ type: string
107
+ format: date-time
108
+ generated_by:
109
+ type: string
110
+ source_oracle:
111
+ type: string
112
+ tags:
113
+ type: array
114
+ items:
115
+ type: string
116
+ default: []
117
+ owner:
118
+ type: string
119
+ description: 'Slug reference to a Agent. When set, this SynthesisRun
120
+ is PRIVATE to that agent (gerado a partir de LessonsLearned com mesmo owner).
121
+ When null, the SynthesisRun is GENERAL. Phase: cognitive-reflection. S5
122
+ (dream-engines-v2): also matches a SynthesizerState.role when the dream
123
+ came from hybrid-topn engine.'
124
+ lens:
125
+ type: string
126
+ description: SynthesisRunLens.name used to frame this dream (e.g. 'hindsight-cf',
127
+ 'future-projection', 'skill-extractor'). Null = generated from SynthesizerState
128
+ voice alone.
129
+ confidence:
130
+ type: number
131
+ minimum: 0.0
132
+ maximum: 1.0
133
+ description: Self-rated confidence in the dream's claims. 0.0 = pure imagination;
134
+ 1.0 = ≥3 strong source_event_ids per claim + critic-pass clean. Used by
135
+ ranker + clinical-guardrails.
136
+ source_event_ids:
137
+ type: array
138
+ items:
139
+ type: string
140
+ default: []
141
+ description: Doc refs of the memories this dream is grounded in. Required
142
+ for every claim in insight_candidates + belief_updates. Provenance for critic-pass
143
+ + eval-suite.
144
+ insight_candidates:
145
+ type: array
146
+ items:
147
+ type: object
148
+ required:
149
+ - claim
150
+ - evidence
151
+ properties:
152
+ claim:
153
+ type: string
154
+ maxLength: 500
155
+ description: 1-2 sentences. The proposed insight.
156
+ evidence:
157
+ type: array
158
+ items:
159
+ type: string
160
+ minItems: 1
161
+ description: source_event_ids supporting the claim.
162
+ confidence:
163
+ type: number
164
+ minimum: 0.0
165
+ maximum: 1.0
166
+ speculation:
167
+ type: boolean
168
+ default: false
169
+ description: True = goes beyond evidence. Marked for human review before
170
+ promotion.
171
+ default: []
172
+ description: Discrete proposals to promote into StatusReport / LessonLearned
173
+ / Skill via downstream scribes. Each item is independently rankable + verifiable.
174
+ belief_updates:
175
+ type: array
176
+ items:
177
+ type: object
178
+ required:
179
+ - before
180
+ - after
181
+ - reason
182
+ properties:
183
+ target_ref:
184
+ type: string
185
+ description: Optional Doc ref for the belief being updated (e.g. LessonLearned/X
186
+ or specific spec field path).
187
+ before:
188
+ type: string
189
+ maxLength: 400
190
+ description: Prior framing the dream challenges.
191
+ after:
192
+ type: string
193
+ maxLength: 400
194
+ description: Proposed new framing.
195
+ reason:
196
+ type: string
197
+ maxLength: 400
198
+ description: Why the shift — tie to source_event_ids.
199
+ confidence:
200
+ type: number
201
+ minimum: 0.0
202
+ maximum: 1.0
203
+ default: []
204
+ description: Belief deltas the dream proposes. Each is a before/after pair
205
+ with reasoning. Scribe downstream may apply, reject, or queue for human
206
+ review.
207
+ skill_candidates:
208
+ type: array
209
+ items:
210
+ type: object
211
+ required:
212
+ - name
213
+ - applies_when
214
+ properties:
215
+ name:
216
+ type: string
217
+ maxLength: 80
218
+ description: Short imperative skill name.
219
+ applies_when:
220
+ type: string
221
+ maxLength: 300
222
+ description: Trigger condition (Voyager-style).
223
+ script:
224
+ type: string
225
+ description: Procedural sketch (NOT executable). Voyager pattern — promote
226
+ to real Skill via skill-synthesis.
227
+ prerequisites:
228
+ type: array
229
+ items:
230
+ type: string
231
+ default: []
232
+ default: []
233
+ description: Voyager-style skill seeds. Each is a name + trigger condition
234
+ + procedural sketch. skill-synthesis engine consumes these.
235
+ contradictions:
236
+ type: array
237
+ items:
238
+ type: object
239
+ required:
240
+ - conflict
241
+ properties:
242
+ conflict:
243
+ type: string
244
+ maxLength: 500
245
+ description: What contradicts what.
246
+ refs:
247
+ type: array
248
+ items:
249
+ type: string
250
+ description: Doc refs on each side.
251
+ resolution_options:
252
+ type: array
253
+ items:
254
+ type: string
255
+ default: []
256
+ description: ≥2 ways to resolve, ranked.
257
+ default: []
258
+ description: Detected contradictions between source_event_ids the dream surfaced.
259
+ NOT auto-resolved — flagged for human or scribe arbitration.
260
+ summary:
261
+ dreamer: ''
262
+ affect: ''
263
+ symbol: ''
264
+ owner: null
265
+ lens: null
266
+ confidence: null
267
+ embed:
268
+ - scenario
269
+ - dreamer
270
+ graph_style:
271
+ fill: '#A78BFA'
272
+ stroke: '#7C3AED'
273
+ text_color: '#fff'
274
+ ascii_icon: 🔮
275
+ display_label: Sínteses
276
+ docs: SynthesisRun = oneiric artefact. Surreal recombination of project memory (fragments
277
+ lifted from LessonLearned/Story/ArchiveProposal/WorkflowEvent) + impossible juxtapositions
278
+ + dominant affect + one captured symbol. NOT falseable, NOT a prediction. Pair
279
+ with Forecast for the predictive dimension.
@@ -0,0 +1,196 @@
1
+ # SynthesizerState — persona contract for a dream-gen agent (record plane;
2
+ # role + goal + backstory + method + voice_markers + memory_policy +
3
+ # constitution + few-shots; read by the hybrid-topn engine — S2
4
+ # dream-engines-v2). Bundle: dreamers/<slug>/SYNTHESIZER.md, body=backstory.
5
+ #
6
+ # F3 lote-3 (spec 2026-06-10-kinds-descriptor-f3): the twin
7
+ # SynthesizerStateKind classes (Py+TS) were DELETED — this descriptor is
8
+ # the single source. PARITY-CRITICAL package data: byte-identical mirror
9
+ # under both runtimes' sdlc/kinds/ (tests/test_descriptor_hash_parity.py
10
+ # enforces). Equivalence frozen in test_lote3_descriptor_equivalence.py
11
+ # (golden: tests/goldens/lote3/SynthesizerState.golden.json).
12
+ #
13
+ # The DREAMER_METHODS enum was local to the extinct class (no other
14
+ # consumer in either runtime) — frozen here as the single source.
15
+ # summary is a curated projection (the dead to_card's elected fields:
16
+ # role/method/linked_agent) replacing the KindBase whole-spec echo.
17
+ apiVersion: github.com/ruinosus/dna/core/v1
18
+ kind: KindDefinition
19
+ metadata:
20
+ name: synthesizer-state
21
+ spec:
22
+ target_api_version: github.com/ruinosus/dna/sdlc/v1
23
+ target_kind: SynthesizerState
24
+ alias: sdlc-synthesizer-state
25
+ origin: github.com/ruinosus/dna/sdlc
26
+ tenant_scope: global
27
+ plane: record
28
+ prompt_target: false
29
+ flatten_in_context: false
30
+ prompt_target_priority: 0
31
+ storage:
32
+ type: bundle
33
+ container: synthesizers
34
+ marker: SYNTHESIZER.md
35
+ body_field: backstory
36
+ schema:
37
+ type: object
38
+ required:
39
+ - role
40
+ - goal
41
+ - method
42
+ - voice_markers
43
+ properties:
44
+ role:
45
+ type: string
46
+ description: 'Short label for this dreamer. Usually matches a Agent
47
+ slug. Ex: ''scribe-engram'', ''oracle-risk'', ''narrative-historian''.'
48
+ goal:
49
+ type: string
50
+ description: 'What this dreamer is FOR. Ex: ''consolidate episódios em padrões
51
+ reutilizáveis'' (scribe), ''flag tail-risks antes que cristalizem em incidente''
52
+ (oracle-risk).'
53
+ backstory:
54
+ type: string
55
+ description: Narrative background (CrewAI pattern). 2-4 sentences. Anchors
56
+ voice + perspective. Stored as bundle body so it can grow long.
57
+ method:
58
+ type: string
59
+ enum:
60
+ - analogical
61
+ - causal
62
+ - surreal
63
+ - structural
64
+ - narrative
65
+ - counterfactual
66
+ - metaphorical
67
+ description: How this dreamer reasons. analogical = compare-and-contrast;
68
+ causal = chain of events; surreal = juxtaposition; structural = patterns/relations;
69
+ narrative = arc; counterfactual = 'what if'; metaphorical = imagistic
70
+ transfer.
71
+ voice_markers:
72
+ type: array
73
+ items:
74
+ type: string
75
+ minItems: 1
76
+ description: 'Words/structures/cadence that mark this dreamer''s voice.
77
+ Ex: [''vestígio'', ''arquivo subterrâneo'', ''frase nominal curta'', ''metáfora
78
+ geológica'']. Used by ranker for voice fingerprint match (anti-drift).'
79
+ non_goals:
80
+ type: array
81
+ items:
82
+ type: string
83
+ default: []
84
+ description: 'What this dreamer MUST NOT do. Used as explicit critic-pass
85
+ guardrails. Ex: ''never make diagnostic claims'', ''never name living
86
+ people in dreams''.'
87
+ memory_policy:
88
+ type: object
89
+ default: {}
90
+ properties:
91
+ areas:
92
+ type: array
93
+ items:
94
+ type: string
95
+ description: LessonLearned.area values to prioritize.
96
+ source_kinds:
97
+ type: array
98
+ items:
99
+ type: string
100
+ description: Doc Kinds to prefer as memory sources.
101
+ affects:
102
+ type: array
103
+ items:
104
+ type: string
105
+ description: LessonLearned.affect values to prioritize.
106
+ min_confidence_score:
107
+ type: number
108
+ minimum: 0.0
109
+ maximum: 1.0
110
+ default: 0.0
111
+ additionalProperties: true
112
+ description: Routing hints for memory retrieval. Hybrid- topn engine respects
113
+ these when assembling memory_subset. Empty dict = match-all.
114
+ dreamer_memory_stream_ref:
115
+ type:
116
+ - string
117
+ - 'null'
118
+ default: null
119
+ description: 'Reference to this dreamer''s persistent memory stream — coleção
120
+ dos SynthesisRuns anteriores deste dreamer (cross-session continuity).
121
+ Generative Agents (Park 2023) evidence: voz individuada emerge de memory
122
+ stream + reflexão, NÃO de voice_markers adjetivos. Hybrid-topn engine
123
+ deve injetar últimos N dreams + reflexões no prompt context. Format esperado:
124
+ ''<scope>/SynthesisRunCollection/<dreamer-slug>'' OR simples slug-name
125
+ resolvido contra um SynthesisRunCollection Kind (a definir). Cross-synth
126
+ ref: f-unique-voice-is-memory-not-prompt.'
127
+ constitution:
128
+ type: array
129
+ items:
130
+ type: string
131
+ default: []
132
+ description: 'Constitutional AI principles (DSI/Anthropic pattern). Ex:
133
+ [''ground every claim in source_event_ids'', ''mark speculation as such'',
134
+ ''prefer evidence over invention'']. Critic-pass evaluates dream output
135
+ against these.'
136
+ examples_positive:
137
+ type: array
138
+ items:
139
+ type: object
140
+ required:
141
+ - scenario
142
+ properties:
143
+ scenario:
144
+ type: string
145
+ symbol:
146
+ type: string
147
+ why_good:
148
+ type: string
149
+ default: []
150
+ description: 2-3 exemplary dreams in this dreamer's voice. Few-shot prompts
151
+ to anchor style.
152
+ examples_negative:
153
+ type: array
154
+ items:
155
+ type: object
156
+ required:
157
+ - scenario
158
+ - why_bad
159
+ properties:
160
+ scenario:
161
+ type: string
162
+ why_bad:
163
+ type: string
164
+ default: []
165
+ description: 2-3 anti-patterns. Critic-pass uses these as explicit negative
166
+ examples (what to avoid).
167
+ linked_agent:
168
+ type: string
169
+ description: 'Optional Agent slug this SynthesizerState pairs with
170
+ (1:1 — same persona, two surfaces: agent runs synchronous, dreamer runs
171
+ offline).'
172
+ drafted_at:
173
+ type: string
174
+ format: date-time
175
+ drafted_by:
176
+ type: string
177
+ tags:
178
+ type: array
179
+ items:
180
+ type: string
181
+ default: []
182
+ summary:
183
+ role: ''
184
+ method: ''
185
+ linked_agent: ''
186
+ graph_style:
187
+ fill: '#C4B5FD'
188
+ stroke: '#7C3AED'
189
+ text_color: '#1E1B4B'
190
+ ascii_icon: 🌙
191
+ display_label: Sintetizadores
192
+ docs: SynthesizerState = persona contract for a dream-gen agent. Declares role
193
+ + goal + backstory + method + voice_markers + non_goals + memory_policy + constitution
194
+ + examples. Read by hybrid-topn engine to drive voice + memory routing. Pairs
195
+ 1:1 with a Agent (scribe-engram, oracle-risk, ...). Multiple co-exist;
196
+ SynthesisRunTriggerPolicy routes events.