agentera 0.0.0 → 3.0.0-dev.1

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 (256) hide show
  1. package/README.md +6 -45
  2. package/bundle/.agentera-npx-bundle.json +4 -0
  3. package/bundle/references/adapters/cursor.md +213 -0
  4. package/bundle/references/adapters/opencode.md +530 -0
  5. package/bundle/references/adapters/package-manifest-interface-model.yaml +337 -0
  6. package/bundle/references/adapters/package-registry.yaml +247 -0
  7. package/bundle/references/adapters/package-surface-characterization.md +48 -0
  8. package/bundle/references/adapters/runtime-adapter-characterization.md +79 -0
  9. package/bundle/references/adapters/runtime-adapter-interface-model.yaml +200 -0
  10. package/bundle/references/adapters/runtime-adapter-registry.yaml +548 -0
  11. package/bundle/references/adapters/runtime-feature-parity.md +189 -0
  12. package/bundle/references/analysis/benchmark.md +267 -0
  13. package/bundle/references/analysis/startup-measurement-contract.yaml +424 -0
  14. package/bundle/references/artifacts/artifact-registry-interface-model.yaml +288 -0
  15. package/bundle/references/cli/agent-ready-state-contract.yaml +950 -0
  16. package/bundle/references/cli/app-lifecycle-vocabulary.yaml +241 -0
  17. package/bundle/references/cli/audience-namespace-cli-migration.yaml +355 -0
  18. package/bundle/references/cli/bundle-skill-vocabulary.yaml +278 -0
  19. package/bundle/references/cli/capability-instruction-contract.yaml +123 -0
  20. package/bundle/references/cli/capability-tool-classification.yaml +53 -0
  21. package/bundle/references/cli/routing-execution-vocabulary.yaml +281 -0
  22. package/bundle/references/cli/update-channels.yaml +147 -0
  23. package/bundle/references/cli/vocabulary-index.yaml +160 -0
  24. package/bundle/references/cli/vocabulary.md +566 -0
  25. package/bundle/references/meta/documentation-inventory.md +43 -0
  26. package/bundle/references/v1-section-mapping.md +47 -0
  27. package/bundle/registry.json +39 -0
  28. package/bundle/skills/agentera/.claude-plugin/plugin.json +27 -0
  29. package/bundle/skills/agentera/SKILL.md +470 -0
  30. package/bundle/skills/agentera/agents/dokumentera.toml +6 -0
  31. package/bundle/skills/agentera/agents/hej.toml +6 -0
  32. package/bundle/skills/agentera/agents/inspektera.toml +6 -0
  33. package/bundle/skills/agentera/agents/inspirera.toml +6 -0
  34. package/bundle/skills/agentera/agents/optimera.toml +6 -0
  35. package/bundle/skills/agentera/agents/orkestrera.toml +6 -0
  36. package/bundle/skills/agentera/agents/planera.toml +6 -0
  37. package/bundle/skills/agentera/agents/profilera.toml +6 -0
  38. package/bundle/skills/agentera/agents/realisera.toml +6 -0
  39. package/bundle/skills/agentera/agents/resonera.toml +6 -0
  40. package/bundle/skills/agentera/agents/visionera.toml +6 -0
  41. package/bundle/skills/agentera/agents/visualisera.toml +6 -0
  42. package/bundle/skills/agentera/capabilities/dokumentera/instructions.md +428 -0
  43. package/bundle/skills/agentera/capabilities/dokumentera/schemas/artifacts.yaml +73 -0
  44. package/bundle/skills/agentera/capabilities/dokumentera/schemas/exit.yaml +35 -0
  45. package/bundle/skills/agentera/capabilities/dokumentera/schemas/triggers.yaml +35 -0
  46. package/bundle/skills/agentera/capabilities/dokumentera/schemas/validation.yaml +139 -0
  47. package/bundle/skills/agentera/capabilities/hej/instructions.md +331 -0
  48. package/bundle/skills/agentera/capabilities/hej/schemas/artifacts.yaml +69 -0
  49. package/bundle/skills/agentera/capabilities/hej/schemas/exit.yaml +32 -0
  50. package/bundle/skills/agentera/capabilities/hej/schemas/triggers.yaml +58 -0
  51. package/bundle/skills/agentera/capabilities/hej/schemas/validation.yaml +55 -0
  52. package/bundle/skills/agentera/capabilities/inspektera/instructions.md +514 -0
  53. package/bundle/skills/agentera/capabilities/inspektera/schemas/artifacts.yaml +76 -0
  54. package/bundle/skills/agentera/capabilities/inspektera/schemas/exit.yaml +36 -0
  55. package/bundle/skills/agentera/capabilities/inspektera/schemas/triggers.yaml +38 -0
  56. package/bundle/skills/agentera/capabilities/inspektera/schemas/validation.yaml +113 -0
  57. package/bundle/skills/agentera/capabilities/inspirera/instructions.md +280 -0
  58. package/bundle/skills/agentera/capabilities/inspirera/schemas/artifacts.yaml +24 -0
  59. package/bundle/skills/agentera/capabilities/inspirera/schemas/exit.yaml +33 -0
  60. package/bundle/skills/agentera/capabilities/inspirera/schemas/triggers.yaml +34 -0
  61. package/bundle/skills/agentera/capabilities/inspirera/schemas/validation.yaml +58 -0
  62. package/bundle/skills/agentera/capabilities/optimera/instructions.md +437 -0
  63. package/bundle/skills/agentera/capabilities/optimera/schemas/artifacts.yaml +69 -0
  64. package/bundle/skills/agentera/capabilities/optimera/schemas/exit.yaml +35 -0
  65. package/bundle/skills/agentera/capabilities/optimera/schemas/triggers.yaml +39 -0
  66. package/bundle/skills/agentera/capabilities/optimera/schemas/validation.yaml +91 -0
  67. package/bundle/skills/agentera/capabilities/orkestrera/instructions.md +433 -0
  68. package/bundle/skills/agentera/capabilities/orkestrera/schemas/artifacts.yaml +64 -0
  69. package/bundle/skills/agentera/capabilities/orkestrera/schemas/exit.yaml +34 -0
  70. package/bundle/skills/agentera/capabilities/orkestrera/schemas/triggers.yaml +42 -0
  71. package/bundle/skills/agentera/capabilities/orkestrera/schemas/validation.yaml +107 -0
  72. package/bundle/skills/agentera/capabilities/planera/instructions.md +368 -0
  73. package/bundle/skills/agentera/capabilities/planera/schemas/artifacts.yaml +62 -0
  74. package/bundle/skills/agentera/capabilities/planera/schemas/exit.yaml +33 -0
  75. package/bundle/skills/agentera/capabilities/planera/schemas/triggers.yaml +34 -0
  76. package/bundle/skills/agentera/capabilities/planera/schemas/validation.yaml +61 -0
  77. package/bundle/skills/agentera/capabilities/profilera/instructions.md +419 -0
  78. package/bundle/skills/agentera/capabilities/profilera/schemas/artifacts.yaml +18 -0
  79. package/bundle/skills/agentera/capabilities/profilera/schemas/exit.yaml +34 -0
  80. package/bundle/skills/agentera/capabilities/profilera/schemas/triggers.yaml +45 -0
  81. package/bundle/skills/agentera/capabilities/profilera/schemas/validation.yaml +57 -0
  82. package/bundle/skills/agentera/capabilities/realisera/instructions.md +403 -0
  83. package/bundle/skills/agentera/capabilities/realisera/schemas/artifacts.yaml +80 -0
  84. package/bundle/skills/agentera/capabilities/realisera/schemas/exit.yaml +35 -0
  85. package/bundle/skills/agentera/capabilities/realisera/schemas/triggers.yaml +39 -0
  86. package/bundle/skills/agentera/capabilities/realisera/schemas/validation.yaml +110 -0
  87. package/bundle/skills/agentera/capabilities/resonera/instructions.md +329 -0
  88. package/bundle/skills/agentera/capabilities/resonera/schemas/artifacts.yaml +47 -0
  89. package/bundle/skills/agentera/capabilities/resonera/schemas/exit.yaml +35 -0
  90. package/bundle/skills/agentera/capabilities/resonera/schemas/triggers.yaml +46 -0
  91. package/bundle/skills/agentera/capabilities/resonera/schemas/validation.yaml +77 -0
  92. package/bundle/skills/agentera/capabilities/visionera/instructions.md +309 -0
  93. package/bundle/skills/agentera/capabilities/visionera/schemas/artifacts.yaml +57 -0
  94. package/bundle/skills/agentera/capabilities/visionera/schemas/exit.yaml +35 -0
  95. package/bundle/skills/agentera/capabilities/visionera/schemas/triggers.yaml +41 -0
  96. package/bundle/skills/agentera/capabilities/visionera/schemas/validation.yaml +74 -0
  97. package/bundle/skills/agentera/capabilities/visualisera/instructions.md +400 -0
  98. package/bundle/skills/agentera/capabilities/visualisera/schemas/artifacts.yaml +44 -0
  99. package/bundle/skills/agentera/capabilities/visualisera/schemas/exit.yaml +34 -0
  100. package/bundle/skills/agentera/capabilities/visualisera/schemas/triggers.yaml +33 -0
  101. package/bundle/skills/agentera/capabilities/visualisera/schemas/validation.yaml +80 -0
  102. package/bundle/skills/agentera/capability_schema_contract.yaml +385 -0
  103. package/bundle/skills/agentera/protocol.yaml +463 -0
  104. package/bundle/skills/agentera/references/contract.md +1039 -0
  105. package/bundle/skills/agentera/schemas/artifacts/changelog.yaml +60 -0
  106. package/bundle/skills/agentera/schemas/artifacts/decisions.yaml +461 -0
  107. package/bundle/skills/agentera/schemas/artifacts/design.yaml +55 -0
  108. package/bundle/skills/agentera/schemas/artifacts/docs.yaml +402 -0
  109. package/bundle/skills/agentera/schemas/artifacts/experiments.yaml +373 -0
  110. package/bundle/skills/agentera/schemas/artifacts/health.yaml +484 -0
  111. package/bundle/skills/agentera/schemas/artifacts/objective.yaml +399 -0
  112. package/bundle/skills/agentera/schemas/artifacts/plan.yaml +342 -0
  113. package/bundle/skills/agentera/schemas/artifacts/progress.yaml +325 -0
  114. package/bundle/skills/agentera/schemas/artifacts/todo.yaml +110 -0
  115. package/bundle/skills/agentera/schemas/artifacts/vision.yaml +262 -0
  116. package/bundle/skills/hej/.claude-plugin/plugin.json +6 -0
  117. package/bundle/skills/hej/SKILL.md +69 -0
  118. package/bundle/skills/hej/agents/hej.toml +11 -0
  119. package/bundle/skills/hej/agents/openai.yaml +8 -0
  120. package/dist/analytics/extractCorpus.js +1791 -0
  121. package/dist/analytics/extractCorpus.js.map +1 -0
  122. package/dist/analytics/usageStats.js +487 -0
  123. package/dist/analytics/usageStats.js.map +1 -0
  124. package/dist/bin/agentera.js +4 -0
  125. package/dist/bin/agentera.js.map +1 -0
  126. package/dist/cli/appContext.js +226 -0
  127. package/dist/cli/appContext.js.map +1 -0
  128. package/dist/cli/argvalidate.js +41 -0
  129. package/dist/cli/argvalidate.js.map +1 -0
  130. package/dist/cli/capabilityContext.js +2421 -0
  131. package/dist/cli/capabilityContext.js.map +1 -0
  132. package/dist/cli/commands/backfill.js +84 -0
  133. package/dist/cli/commands/backfill.js.map +1 -0
  134. package/dist/cli/commands/capability.js +44 -0
  135. package/dist/cli/commands/capability.js.map +1 -0
  136. package/dist/cli/commands/compact.js +148 -0
  137. package/dist/cli/commands/compact.js.map +1 -0
  138. package/dist/cli/commands/doctor.js +180 -0
  139. package/dist/cli/commands/doctor.js.map +1 -0
  140. package/dist/cli/commands/lint.js +179 -0
  141. package/dist/cli/commands/lint.js.map +1 -0
  142. package/dist/cli/commands/prime.js +544 -0
  143. package/dist/cli/commands/prime.js.map +1 -0
  144. package/dist/cli/commands/query.js +346 -0
  145. package/dist/cli/commands/query.js.map +1 -0
  146. package/dist/cli/commands/report.js +210 -0
  147. package/dist/cli/commands/report.js.map +1 -0
  148. package/dist/cli/commands/schema.js +306 -0
  149. package/dist/cli/commands/schema.js.map +1 -0
  150. package/dist/cli/commands/state.js +1012 -0
  151. package/dist/cli/commands/state.js.map +1 -0
  152. package/dist/cli/commands/upgrade.js +48 -0
  153. package/dist/cli/commands/upgrade.js.map +1 -0
  154. package/dist/cli/commands/validate.js +519 -0
  155. package/dist/cli/commands/validate.js.map +1 -0
  156. package/dist/cli/commands/verify.js +204 -0
  157. package/dist/cli/commands/verify.js.map +1 -0
  158. package/dist/cli/dispatch.js +958 -0
  159. package/dist/cli/dispatch.js.map +1 -0
  160. package/dist/cli/orientation.js +595 -0
  161. package/dist/cli/orientation.js.map +1 -0
  162. package/dist/cli/prime-blob.js +3 -0
  163. package/dist/cli/prime-blob.js.map +1 -0
  164. package/dist/cli/stateQuery.js +292 -0
  165. package/dist/cli/stateQuery.js.map +1 -0
  166. package/dist/cli/structured.js +18 -0
  167. package/dist/cli/structured.js.map +1 -0
  168. package/dist/core/difflib.js +274 -0
  169. package/dist/core/difflib.js.map +1 -0
  170. package/dist/core/git.js +43 -0
  171. package/dist/core/git.js.map +1 -0
  172. package/dist/core/paths.js +50 -0
  173. package/dist/core/paths.js.map +1 -0
  174. package/dist/core/pyjson.js +101 -0
  175. package/dist/core/pyjson.js.map +1 -0
  176. package/dist/core/sourceRoot.js +72 -0
  177. package/dist/core/sourceRoot.js.map +1 -0
  178. package/dist/core/toml.js +11 -0
  179. package/dist/core/toml.js.map +1 -0
  180. package/dist/core/yaml.js +25 -0
  181. package/dist/core/yaml.js.map +1 -0
  182. package/dist/eval/evalSkills.js +258 -0
  183. package/dist/eval/evalSkills.js.map +1 -0
  184. package/dist/eval/semanticEval.js +148 -0
  185. package/dist/eval/semanticEval.js.map +1 -0
  186. package/dist/eval/semanticFixtures.js +227 -0
  187. package/dist/eval/semanticFixtures.js.map +1 -0
  188. package/dist/hooks/common.js +160 -0
  189. package/dist/hooks/common.js.map +1 -0
  190. package/dist/hooks/compaction.js +935 -0
  191. package/dist/hooks/compaction.js.map +1 -0
  192. package/dist/hooks/cursorPreToolUse.js +19 -0
  193. package/dist/hooks/cursorPreToolUse.js.map +1 -0
  194. package/dist/hooks/cursorSessionStart.js +71 -0
  195. package/dist/hooks/cursorSessionStart.js.map +1 -0
  196. package/dist/hooks/sessionStart.js +209 -0
  197. package/dist/hooks/sessionStart.js.map +1 -0
  198. package/dist/hooks/sessionStop.js +212 -0
  199. package/dist/hooks/sessionStop.js.map +1 -0
  200. package/dist/hooks/validateArtifact.js +933 -0
  201. package/dist/hooks/validateArtifact.js.map +1 -0
  202. package/dist/registries/artifactRegistry.js +206 -0
  203. package/dist/registries/artifactRegistry.js.map +1 -0
  204. package/dist/registries/capabilityContract.js +310 -0
  205. package/dist/registries/capabilityContract.js.map +1 -0
  206. package/dist/registries/packageRegistry.js +641 -0
  207. package/dist/registries/packageRegistry.js.map +1 -0
  208. package/dist/registries/runtimeAdapterRegistry.js +315 -0
  209. package/dist/registries/runtimeAdapterRegistry.js.map +1 -0
  210. package/dist/setup/codex.js +1056 -0
  211. package/dist/setup/codex.js.map +1 -0
  212. package/dist/setup/copilot.js +227 -0
  213. package/dist/setup/copilot.js.map +1 -0
  214. package/dist/setup/cursor.js +127 -0
  215. package/dist/setup/cursor.js.map +1 -0
  216. package/dist/setup/doctor.js +1276 -0
  217. package/dist/setup/doctor.js.map +1 -0
  218. package/dist/state/installRoot.js +279 -0
  219. package/dist/state/installRoot.js.map +1 -0
  220. package/dist/state/progressCommit.js +289 -0
  221. package/dist/state/progressCommit.js.map +1 -0
  222. package/dist/state/startupAnalysis.js +1953 -0
  223. package/dist/state/startupAnalysis.js.map +1 -0
  224. package/dist/upgrade/appModel.js +189 -0
  225. package/dist/upgrade/appModel.js.map +1 -0
  226. package/dist/upgrade/channels.js +208 -0
  227. package/dist/upgrade/channels.js.map +1 -0
  228. package/dist/upgrade/compatibility.js +201 -0
  229. package/dist/upgrade/compatibility.js.map +1 -0
  230. package/dist/upgrade/doctor.js +373 -0
  231. package/dist/upgrade/doctor.js.map +1 -0
  232. package/dist/upgrade/migrateArtifactsV2ToV3.js +332 -0
  233. package/dist/upgrade/migrateArtifactsV2ToV3.js.map +1 -0
  234. package/dist/upgrade/runtimeMigration.js +484 -0
  235. package/dist/upgrade/runtimeMigration.js.map +1 -0
  236. package/dist/upgrade/upgradeCommands.js +36 -0
  237. package/dist/upgrade/upgradeCommands.js.map +1 -0
  238. package/dist/upgrade/upgradeOrchestrator.js +299 -0
  239. package/dist/upgrade/upgradeOrchestrator.js.map +1 -0
  240. package/dist/upgrade/versionResolution.js +179 -0
  241. package/dist/upgrade/versionResolution.js.map +1 -0
  242. package/dist/validate/appHomeContract.js +150 -0
  243. package/dist/validate/appHomeContract.js.map +1 -0
  244. package/dist/validate/capability.js +412 -0
  245. package/dist/validate/capability.js.map +1 -0
  246. package/dist/validate/crossCapability.js +145 -0
  247. package/dist/validate/crossCapability.js.map +1 -0
  248. package/dist/validate/lifecycleAdapters.js +772 -0
  249. package/dist/validate/lifecycleAdapters.js.map +1 -0
  250. package/dist/validate/selfAudit.js +107 -0
  251. package/dist/validate/selfAudit.js.map +1 -0
  252. package/package.json +28 -8
  253. package/LICENSE +0 -201
  254. package/bin/agentera.mjs +0 -50
  255. package/lib/exec.mjs +0 -116
  256. package/lib/resolve.mjs +0 -129
@@ -0,0 +1,400 @@
1
+ # VISUALISERA
2
+
3
+ **Visual Identity: Systematic Unified Aesthetic Language. Render, Establish, Articulate.**
4
+
5
+ The visual steward of DESIGN.md. Deep creation through codebase exploration, domain research, and Socratic challenge about aesthetics. Opinionated enough to enforce consistency, flexible enough to evolve, concrete enough for any agent to generate correct UI.
6
+
7
+ Three modes: **create**, **refine**, **audit**.
8
+
9
+ ---
10
+
11
+ ## Visual identity
12
+
13
+ Glyph: **◰** (protocol ref: SG11). Used in the mandatory exit marker.
14
+
15
+ ---
16
+
17
+ ## State artifacts
18
+
19
+ One file in `.agentera/`.
20
+
21
+ | Artifact | Purpose | Bootstrap |
22
+ |----------|---------|-----------|
23
+ | `DESIGN.md` | Visual identity. Colors, typography, spacing, constraints, components, themes. An agent-readable design system. | Created via deep design conversation. |
24
+
25
+ Use this prose plus `agentera describe --format json` and its `artifact_schemas` entry for `design` as the active design artifact specification; do not search Agentera directories manually. The design schema covers `<!-- design:X -->` marker syntax, standard sections, YAML token block format, and naming conventions.
26
+
27
+ ### Artifact path resolution
28
+
29
+ Before reading or writing any artifact, check if `.agentera/docs.yaml` exists. If it has an Artifact Mapping section, use the path specified for each canonical filename (.agentera/design.yaml, etc.). If `.agentera/docs.yaml` doesn't exist or has no mapping for a given artifact, use the default layout: TODO.md, CHANGELOG.md, and DESIGN.md at the project root; canonical VISION.md at `.agentera/vision.yaml`; other agent-facing artifacts at `.agentera/*.yaml`. This applies to all artifact references in this capability, including cross-capability reads (VISION.md, .agentera/decisions.yaml, PROFILE.md).
30
+
31
+ ### Contract values
32
+
33
+ Contract values are inlined where referenced. Visual tokens from protocol: severity arrows VT5-VT8, trend arrows VT12-VT13, progress bar VT18, inline separator VT16 (·), list item VT15 (▸), section divider VT14, flow/target VT17 (→). Skill glyph SG11 for the exit marker. Exit signals EX1-EX4 for the exit marker. Confidence scale CS1-CS5 for decision profile consumption.
34
+
35
+ `references/contract.md` (at the v2 skill location `skills/agentera/references/contract.md`) remains available as a full-spec reference for ambiguous cases or cross-checking.
36
+
37
+ ---
38
+
39
+ ## DESIGN.md format (condensed)
40
+
41
+ Standard Markdown with structured YAML blocks inside fenced code regions, delineated by HTML comment markers for machine parseability.
42
+
43
+ ```markdown
44
+ # [Project Name] Design System
45
+
46
+ ## Philosophy
47
+ [Human prose: design principles, aesthetic rationale, visual personality]
48
+
49
+ ## Colors
50
+ <!-- design:colors -->
51
+ ```yaml
52
+ brand-primary: oklch(50% 0.25 25)
53
+ brand-secondary: oklch(60% 0.15 250)
54
+ background: oklch(100% 0 0)
55
+ foreground: oklch(0% 0 0)
56
+ ```
57
+
58
+ ## Typography
59
+ <!-- design:typography -->
60
+ ```yaml
61
+ text-heading:
62
+ font-family: "Inter", sans-serif
63
+ font-weight: 700
64
+ text-body:
65
+ font-family: "Inter", sans-serif
66
+ font-weight: 400
67
+ ```
68
+
69
+ ## Constraints
70
+ <!-- design:constraints -->
71
+ ```yaml
72
+ aesthetic:
73
+ - property: box-shadow
74
+ rule: prohibited
75
+ reason: "Depth via borders and contrast, not shadows"
76
+ structural:
77
+ - pattern: arbitrary-values
78
+ rule: prohibited
79
+ scope: [colors, spacing]
80
+ ```
81
+
82
+ ```
83
+
84
+ Standard sections: `colors`, `font-sizes`, `fonts`, `typography`, `spacing`, `radius`, `shadows`, `theme`, `constraints`, `components`, `tw-merge-preserve`. All optional. Custom sections use the same `design:` prefix with any name.
85
+
86
+ Use this section and `skills/agentera/references/contract.md` as the active specification for token block formats, theme mappings, component contracts, naming conventions, and monorepo nesting rules.
87
+
88
+ ---
89
+
90
+ ## Step 0: Detect mode
91
+
92
+ **If DESIGN.md does NOT exist**: Proceed to **Create** mode (Step 1).
93
+
94
+ **If DESIGN.md exists**: Present the mode choice.
95
+
96
+ Narration voice (riff, don't script):
97
+
98
+ - "Design system's already in place. Evolve it, audit it, or start fresh?" · "Found your visual identity. Refine, check for mismatches, or clean slate?"
99
+
100
+ Offer:
101
+
102
+ > **Refine**: Evolve the existing design system based on what you've learned. Reads the current DESIGN.md, the codebase state, and recent progress to propose informed updates.
103
+ >
104
+ > **Audit**: Check the current design system for consistency, completeness, and mismatches with the codebase.
105
+ >
106
+ > **Replace**: Start fresh with a deep design conversation. Archives the current DESIGN.md and creates a new one from scratch.
107
+
108
+ If **Refine**, skip to Refine mode.
109
+ If **Audit**, skip to Audit mode.
110
+ If **Replace**, archive current DESIGN.md to `.agentera/archive/design-{date}.yaml`, then proceed to Create mode.
111
+
112
+ ---
113
+
114
+ ## Create mode
115
+
116
+ Step markers: display `── step N/7: verb` before each step.
117
+ Steps: explore, research, converse, audit, write, validate, next.
118
+
119
+ ### Step 1: Explore the codebase
120
+
121
+ If code exists, read deeply before asking questions. Arriving informed distinguishes visualisera from a blank-slate design interview.
122
+
123
+ 1. **Map the structure**: directory layout, UI components, pages
124
+ 2. **VISION.md Identity section**: declared personality, voice, emotional register. The visual system must cohere with this.
125
+ 3. **Existing theme/style files**: CSS properties, Tailwind config, color declarations, font imports, component libraries
126
+ 4. **Dependency manifests**: UI framework, component library, CSS approach (determines token format)
127
+ 5. **Parent DESIGN.md**: for monorepos, the inherited design system (nested overrides)
128
+ 6. **CLAUDE.md, AGENTS.md**: existing design instructions
129
+ 7. **Decision profile**: read `$PROFILERA_PROFILE_DIR/PROFILE.md` (default: `$XDG_DATA_HOME/agentera/PROFILE.md`) directly per protocol confidence scale (CS1-CS5) conventions. Aesthetic preferences inform the design conversation. If missing, proceed without persona grounding.
130
+ 8. `git log --oneline -20`: recent visual story
131
+
132
+ Synthesize: "The project uses X with Y. Palette is Z. Typography is A. Strongest patterns: B. Inconsistencies: C." If VISION.md Identity exists, connect it to the visual system.
133
+
134
+ Greenfield? Skip to Step 2.
135
+
136
+ ### Step 2: Research the domain
137
+
138
+ Search for design context that grounds the identity in what works:
139
+
140
+ 1. **Stack design systems**: Tailwind themes, shadcn/ui, Radix, Material Design. Defaults and customization points.
141
+ 2. **Similar projects**: competing tools, adjacent products, established patterns
142
+ 3. **State of the art**: recent trends, emerging patterns in similar domains
143
+ 4. **Stack constraints**: framework limitations, component library opinions
144
+
145
+ 3-5 targeted searches. Read promising results deeply. Synthesize: "Common approach is X. Opportunity to differentiate is Y."
146
+
147
+ ### Step 3: The conversation
148
+
149
+ Engage the user. Ask one question at a time through the runtime question tool
150
+ (`AskUserQuestion`, always include `Done` option).
151
+
152
+ **Personality**: the sharp colleague, here to design, not collect requirements. Exacting about details: "That's good, but what if the palette was braver?"
153
+
154
+ Follow a narrative arc, not a checklist. Adapt, but cover:
155
+
156
+ 1. **The philosophy**: "Based on what I see in the codebase [and the VISION.md Identity], here's the visual impression I'd expect: [synthesis]. What should this project FEEL like visually? If someone sees the UI for 3 seconds, what impression should they have? Brutalist? Playful? Clinical? Luxurious?"
157
+
158
+ If VISION.md Identity exists, propose defaults: "Your identity says 'bold and direct.' That suggests sharp edges, high contrast, no decorative shadows. Does that resonate?"
159
+
160
+ Push beyond generic: "'Clean and modern' is too vague. Apple-clean with whitespace, or Stripe-clean with dense information hierarchy? Very different."
161
+
162
+ 2. **The color strategy**: "What's the color philosophy? Monochrome with a single punctuation color? Rich and saturated? Muted and professional? What color means 'this is us'?"
163
+
164
+ Be specific: "Two-color with single accent, or multi-color with semantic meaning? What carries the brand: background or foreground?"
165
+
166
+ Reference existing code colors: "`#2563eb` as primary: intentional or inherited?"
167
+
168
+ 3. **The typography**: "How should text feel? Monospace for that developer-tool edge? Clean sans-serif for clarity? What's the hierarchy: how do you distinguish a label from a heading from body text?"
169
+
170
+ Push: "System fonts or custom? Geometric (Inter), humanist (Source Sans), industrial (JetBrains Mono)?"
171
+
172
+ 4. **The constraints**: "What should NEVER happen in this UI? Shadows? Rounded corners? Gradients? Arbitrary values? What are the bright lines?"
173
+
174
+ Maps to `<!-- design:constraints -->`. "Every constraint prevents a class of visual mismatch."
175
+
176
+ 5. **The components**: "What are the core UI building blocks? Buttons, cards, inputs. What variants does each need? What's the interaction pattern?"
177
+
178
+ Maps to `<!-- design:components -->`. Focus on contracts: "What props, variants, refusals? This becomes the contract agents build against."
179
+
180
+ ### Step 4: Pre-write self-audit
181
+
182
+ Pre-write self-audit: run `agentera lint --artifact <ARTIFACT> --text "<DRAFT>"` (or `--file <PATH>`; schema names such as `decisions` auto-resolve the artifact file when no input is given) on the draft entry to check verbosity overruns (per-artifact budget), abstraction creep (>=1 concrete anchor), and filler accumulation (banned patterns).
183
+ Max 3 revision attempts. Flag with [post-audit-flagged] if still failing.
184
+
185
+ Narration voice (riff, don't script):
186
+
187
+ - "Tightening this up..." · "Cutting the filler first..." · "One more pass..."
188
+
189
+ ### Step 5: Write DESIGN.md
190
+
191
+ Synthesize the conversation into a structured design system document.
192
+
193
+ **Tone**: prose sections opinionated and evocative (why tokens exist, how they relate); YAML blocks precise and machine-parseable.
194
+
195
+ **Structure**: follow the spec. Every section gets prose + YAML. At minimum:
196
+
197
+ - **Philosophy**: prose only, the aesthetic rationale
198
+ - **Colors**: `<!-- design:colors -->` with OKLCH/HSL values and semantic aliases
199
+ - **Typography**: `<!-- design:typography -->` with composite token definitions
200
+ - **Spacing**: `<!-- design:spacing -->` with a consistent scale (8pt grid recommended)
201
+ - **Constraints**: `<!-- design:constraints -->` with aesthetic and structural rules
202
+ - **Components**: `<!-- design:components -->` with variant contracts (if the project has UI)
203
+
204
+ Add `theme`, `radius`, `shadows`, `font-sizes`, `fonts` as warranted.
205
+
206
+ Use established scales: OKLCH for colors, 8pt grid for spacing, modular scale for type. No arbitrary values. Present draft, get explicit approval before writing.
207
+
208
+ Artifact writing follows contract Section 24 (Artifact Writing Conventions): banned verbosity patterns, 25-word sentence cap, preferred vocabulary, and lead-with-conclusion structure.
209
+
210
+ ### Step 6: Validate
211
+
212
+ Validate the written file against the `DESIGN.md` structure described in this capability. Agentera v2 does not ship a standalone design validator; fix malformed sections, missing token fields, or unresolved references before presenting.
213
+
214
+ ### Step 7: Next steps
215
+
216
+ ▸ **Set up enforcement**: propose project-local checks for tokens, component usage, and visual mismatches; no separate Agentera enforcement reference ships in v2
217
+ ▸ **Build to the spec**: use ⧉ realisera to implement UI that respects the design tokens
218
+ ▸ **Document it**: use ▤ dokumentera to add the design system to project documentation
219
+ ▸ **Refine later**: use ◰ visualisera again to evolve the design as the project matures
220
+
221
+ ---
222
+
223
+ ## Refine mode
224
+
225
+ Evolve an existing design system based on what's changed.
226
+
227
+ Step markers: display `── step N/4: verb` before each step.
228
+ Steps: read, propose, audit, update.
229
+
230
+ ### Step 1: Read current state
231
+
232
+ 1. Current DESIGN.md: all token blocks, constraints, prose
233
+ 2. Codebase: focused on changes since DESIGN.md was written (git log, new components)
234
+ 3. VISION.md Identity: has verbal identity evolved?
235
+ 4. PROGRESS.md: UI work and inline design decisions
236
+ 5. TODO.md: design-related issues
237
+
238
+ ### Step 2: Propose changes
239
+
240
+ > Here's what's changed since the design system was written:
241
+ >
242
+ > - New components [A, B] were built that aren't in the component contracts
243
+ > - The color palette is out of sync: [file:line] uses [value] not in the token set
244
+ > - VISION.md Identity now says [X], and the visual system [does/doesn't] reflect that
245
+ >
246
+ > I'd suggest updating:
247
+ >
248
+ > - [Section]: [what to change and why]
249
+
250
+ Brief conversation (2-4 exchanges) to refine proposed changes.
251
+
252
+ ### Step 3: Pre-write self-audit
253
+
254
+ Pre-write self-audit: run `agentera lint --artifact <ARTIFACT> --text "<DRAFT>"` (or `--file <PATH>`; schema names such as `decisions` auto-resolve the artifact file when no input is given) on the draft entry to check verbosity overruns (per-artifact budget), abstraction creep (>=1 concrete anchor), and filler accumulation (banned patterns).
255
+ Max 3 revision attempts. Flag with [post-audit-flagged] if still failing.
256
+
257
+ Narration voice (riff, don't script):
258
+
259
+ - "Tightening this up..." · "Cutting the filler first..." · "One more pass..."
260
+
261
+ ### Step 4: Update DESIGN.md
262
+
263
+ Show diff with rationale. Get approval. Run validation after writing.
264
+
265
+ Artifact writing follows contract Section 24 (Artifact Writing Conventions): banned verbosity patterns, 25-word sentence cap, preferred vocabulary, and lead-with-conclusion structure.
266
+
267
+ ---
268
+
269
+ ## Audit mode
270
+
271
+ Two-phase check: deterministic validation (script), then agent-driven code analysis.
272
+
273
+ Step markers: display `── step N/3: verb` before each step.
274
+ Steps: validate, check, report.
275
+
276
+ ### Step 1: Validate structure
277
+
278
+ Inspect `DESIGN.md` and report structural issues: malformed YAML blocks, missing sections, unresolved references, or token entries without category/name/value.
279
+
280
+ ### Step 2: Check adherence
281
+
282
+ Scan codebase for design mismatches:
283
+
284
+ 1. **Token usage**: undeclared colors, fonts, or spacing values in code
285
+ 2. **Constraint violations**: prohibited properties in use (e.g., shadows when banned)
286
+ 3. **Component mismatch**: undeclared variants or prohibited props
287
+ 4. **Consistency**: ad-hoc styling on similar elements
288
+
289
+ ### Step 3: Report
290
+
291
+ Categorize findings by severity (protocol refs: SF1-SF3 for finding severity):
292
+
293
+ - ⇶ **Critical** (VT5): tokens in code that don't exist in DESIGN.md (uncontrolled styling)
294
+ - ⇉ **Warning** (VT6): declared tokens not used anywhere (dead tokens), mild inconsistencies
295
+ - ⇢ **Info** (VT8): suggestions for new tokens or constraints based on observed patterns
296
+
297
+ Present with file:line references. For each finding, offer to:
298
+ ▸ **Fix DESIGN.md**: add missing tokens or constraints
299
+ ▸ **File to TODO.md**: if the code is wrong (design is right, code is out of sync)
300
+ ▸ **Skip**: intentional or not worth fixing
301
+
302
+ For framework-specific enforcement beyond audits, derive checks from the project's stack and record them directly in DESIGN.md or TODO.md.
303
+
304
+ ---
305
+
306
+ ## Safety rails
307
+
308
+ <critical>
309
+ - NEVER modify DESIGN.md without explicit user approval. Present drafts and get confirmation.
310
+ - NEVER write design tokens that conflict with VISION.md Identity. If the verbal identity says "warm and approachable" and the user wants a cold, brutalist palette, surface the tension explicitly and let the user resolve it.
311
+ - NEVER impose aesthetic preferences. The user's taste drives the design. Have opinions, push for specificity, but defer to the user's choices.
312
+ - NEVER skip the validation step after writing DESIGN.md. Inspect the structure and fix any errors before presenting the result.
313
+ - NEVER create arbitrary token values. Use established scales (8pt grid for spacing, modular type scale for font sizes, OKLCH for perceptual color uniformity). The design system must practice what it preaches.
314
+ - NEVER modify code files. Visualisera writes DESIGN.md; realisera implements it. The separation of declaration and implementation is fundamental.
315
+ - NEVER skip the codebase exploration (Step 1) when code exists. Arriving informed is what makes the conversation productive rather than generic.
316
+ </critical>
317
+
318
+ ---
319
+
320
+ ## Exit signals
321
+
322
+ Report one of these statuses at workflow completion (protocol refs: EX1-EX4).
323
+
324
+ Format: `◰ visualisera · <status>` followed by a summary sentence.
325
+ For flagged, stuck, and waiting: add `▸` (VT15) bullet details below the summary.
326
+
327
+ - **complete** (EX1): DESIGN.md was written (Create/Replace mode), updated (Refine mode), or audited with findings reported (Audit mode). Validation script ran without errors, and all changes had explicit user approval before writing.
328
+ - **flagged** (EX2): The design system was produced or audited but with issues worth surfacing. Possible causes: validation passed but with advisory warnings, the design mismatches VISION.md Identity in ways the user acknowledged, or audit findings were discovered that were neither fixed nor filed to TODO.md.
329
+ - **stuck** (EX3): Cannot write DESIGN.md because the user declined to approve the draft, the validation script reports errors that cannot be resolved without user input on the design intent, or the project's UI stack is inaccessible and token defaults cannot be reliably inferred.
330
+ - **waiting** (EX4): The visual identity direction is entirely undefined and the user has not engaged with the design conversation, or the project has no UI layer and DESIGN.md would serve no purpose without clarification of what is being designed.
331
+
332
+ ---
333
+
334
+ ## Cross-capability integration
335
+
336
+ Visualisera is part of a twelve-capability suite. It is the visual identity layer, the capability that defines how the project looks.
337
+
338
+ ### Visualisera reads visionera output
339
+
340
+ VISION.md's Identity section declares the verbal personality (bold, warm, playful, etc.). Visualisera reads this to propose visual tokens coherent with the declared identity. If Identity says "industrial and direct," visualisera proposes sharp edges and monospace type. Visionera reads DESIGN.md in return; neither writes the other's artifact.
341
+
342
+ ### Visualisera feeds realisera
343
+
344
+ DESIGN.md's tokens and constraints guide autonomous UI development. When realisera builds components or pages, it reads DESIGN.md to understand what colors, typography, spacing, and constraints to use. The design system prevents visual mismatches across cycles.
345
+
346
+ ### Visualisera is informed by dokumentera
347
+
348
+ DOCS.md tracks DESIGN.md in the artifact mapping. Dokumentera may document the design system as part of project documentation.
349
+
350
+ ### Visualisera is informed by inspektera
351
+
352
+ When inspektera audits architecture alignment or pattern consistency, design system adherence is a relevant dimension. Future integration may include design-specific audit dimensions.
353
+
354
+ ### Visualisera is informed by profilera
355
+
356
+ The decision profile captures aesthetic preferences, specifically the user's established patterns around visual design, typography choices, and UI conventions. Visualisera reads these as defaults during the create conversation.
357
+
358
+ ### Visualisera is informed by inspirera
359
+
360
+ When inspirera analyzes external design systems or visual patterns, the findings can feed into visualisera's research step or refine mode. External design references enrich the conversation.
361
+
362
+ ### Visualisera is informed by resonera
363
+
364
+ When design decisions require deliberation, suggest ❈ resonera before committing. Use it for competing aesthetics, brand evolution, or significant visual pivots.
365
+
366
+ ---
367
+
368
+ ## Getting started
369
+
370
+ ### New project: design before building
371
+
372
+ 1. ⛥ visionera: create VISION.md with Identity section (who the project IS)
373
+ 2. ◰ visualisera: create DESIGN.md (how it LOOKS), coherent with the Identity
374
+ 3. ⧉ realisera: build UI to the design spec
375
+
376
+ ### Existing project: capture the visual identity
377
+
378
+ 1. ◰ visualisera: reads existing styles, proposes tokens from what's already there
379
+ 2. Review and refine the generated DESIGN.md
380
+ 3. Set up enforcement from project-local checks
381
+
382
+ ### Audit existing design
383
+
384
+ ```
385
+
386
+ /agentera design
387
+
388
+ ```
389
+
390
+ Select "Audit" mode. Validates structure and scans code for mismatches.
391
+
392
+ ### Refine after evolution
393
+
394
+ ```
395
+
396
+ /agentera design
397
+
398
+ ```
399
+
400
+ Select "Refine" mode. Reviews what's changed and proposes design system updates.
@@ -0,0 +1,44 @@
1
+ ARTIFACTS:
2
+ 1:
3
+ id: A1
4
+ artifact_id: design
5
+ local_role: produces_and_consumes
6
+ description: >-
7
+ Visual identity system with design tokens, typography, colors,
8
+ spacing, constraints, and component contracts. Visualisera writes and
9
+ reads agent-readable YAML token blocks with HTML comment markers.
10
+ 2:
11
+ id: A2
12
+ artifact_id: vision
13
+ local_role: consumes
14
+ description: >-
15
+ Visualisera reads the Identity section to propose visual tokens
16
+ coherent with the declared verbal personality.
17
+ 3:
18
+ id: A3
19
+ artifact_id: progress
20
+ local_role: consumes
21
+ description: >-
22
+ Visualisera reads this during refine mode to identify UI work and
23
+ inline design decisions since the design system was written.
24
+ 4:
25
+ id: A4
26
+ artifact_id: todo
27
+ local_role: produces_and_consumes
28
+ description: >-
29
+ Visualisera reads this to check for design-related issues and files
30
+ code drift findings here during audit mode.
31
+ 5:
32
+ id: A5
33
+ artifact_id: docs
34
+ local_role: consumes
35
+ description: >-
36
+ Visualisera reads this first to resolve project-local artifact mappings
37
+ before accessing other artifacts.
38
+ 6:
39
+ id: A6
40
+ artifact_id: profile
41
+ local_role: consumes
42
+ description: >-
43
+ Visualisera reads aesthetic preferences from the profile as defaults
44
+ during the create conversation.
@@ -0,0 +1,34 @@
1
+ EXIT_CONDITIONS:
2
+ 1:
3
+ id: E1
4
+ condition: complete
5
+ description: >-
6
+ DESIGN.md was written (Create/Replace mode), updated (Refine mode),
7
+ or audited with findings reported (Audit mode). Validation script
8
+ ran without errors, and all changes had explicit user approval.
9
+ exit_signal: complete
10
+ 2:
11
+ id: E2
12
+ condition: flagged
13
+ description: >-
14
+ The design system was produced or audited but with issues worth
15
+ surfacing. Possible causes: validation passed with advisory warnings,
16
+ the design drifts from VISION.md Identity, or audit findings were
17
+ neither fixed nor filed.
18
+ exit_signal: flagged
19
+ 3:
20
+ id: E3
21
+ condition: stuck
22
+ description: >-
23
+ Cannot write DESIGN.md because the user declined to approve the
24
+ draft, the validation script reports unresolvable errors, or the
25
+ project's UI stack is inaccessible.
26
+ exit_signal: stuck
27
+ 4:
28
+ id: E4
29
+ condition: waiting
30
+ description: >-
31
+ The visual identity direction is undefined and the user has not
32
+ engaged with the design conversation, or the project has no UI
33
+ layer and DESIGN.md would serve no purpose without clarification.
34
+ exit_signal: waiting
@@ -0,0 +1,33 @@
1
+ TRIGGERS:
2
+ 1:
3
+ id: T1
4
+ description: >-
5
+ Direct invocation by name or slash command. Matches when the user
6
+ explicitly requests visualisera.
7
+ priority: high
8
+ patterns:
9
+ - "visualisera"
10
+ - "/visualisera"
11
+ 2:
12
+ id: T2
13
+ description: >-
14
+ Design system creation requests. Matches when the user wants to
15
+ create or set up a visual identity system or design tokens.
16
+ priority: medium
17
+ patterns:
18
+ - "create design system"
19
+ - "write DESIGN.md"
20
+ - "design tokens"
21
+ - "visual identity"
22
+ - "define the aesthetic"
23
+ - "set up design system"
24
+ 3:
25
+ id: T3
26
+ description: >-
27
+ Design system refinement and audit requests. Matches when the user
28
+ wants to evolve, check, or update an existing design system.
29
+ priority: medium
30
+ patterns:
31
+ - "audit design"
32
+ - "refine design system"
33
+ - "update DESIGN.md"
@@ -0,0 +1,80 @@
1
+ VALIDATION:
2
+ 1:
3
+ id: V1
4
+ rule: user_approval_required
5
+ description: >-
6
+ DESIGN.md MUST NOT be written or modified without explicit user
7
+ approval. Present drafts and get confirmation before writing.
8
+ This applies to Create, Refine, and Replace modes.
9
+ severity: critical
10
+ checks:
11
+ - "Draft presented to user before write"
12
+ - "Explicit approval received"
13
+ 2:
14
+ id: V2
15
+ rule: vision_identity_coherence
16
+ description: >-
17
+ Design tokens MUST NOT conflict with VISION.md Identity. If the
18
+ verbal identity says "warm and approachable" and the user wants a
19
+ cold brutalist palette, the tension MUST be surfaced explicitly
20
+ for the user to resolve.
21
+ severity: critical
22
+ checks:
23
+ - "Design tokens cohere with VISION.md Identity"
24
+ - "Tensions surfaced when detected"
25
+ 3:
26
+ id: V3
27
+ rule: structural_validation_required
28
+ description: >-
29
+ After writing DESIGN.md, structural validation MUST be performed.
30
+ Inspect required sections, token fields, and references; fix any
31
+ errors before presenting the result. This applies to Create,
32
+ Refine, and Replace modes.
33
+ severity: critical
34
+ checks:
35
+ - "DESIGN.md structure checked after write"
36
+ - "All validation errors fixed"
37
+ 4:
38
+ id: V4
39
+ rule: established_scales
40
+ description: >-
41
+ Token values MUST use established scales: OKLCH for colors,
42
+ 8pt grid for spacing, modular type scale for font sizes.
43
+ Arbitrary values are prohibited. The design system must
44
+ practice what it preaches.
45
+ severity: warning
46
+ checks:
47
+ - "Colors use OKLCH or standard color spaces"
48
+ - "Spacing follows a consistent scale"
49
+ 5:
50
+ id: V5
51
+ rule: no_code_modification
52
+ description: >-
53
+ Visualisera MUST NOT modify code files. It writes DESIGN.md only.
54
+ Realisera implements the design system in code. The separation
55
+ of declaration and implementation is fundamental.
56
+ severity: critical
57
+ checks:
58
+ - "No code files modified during visualisera invocation"
59
+ 6:
60
+ id: V6
61
+ rule: codebase_exploration_required
62
+ description: >-
63
+ When code exists, the codebase exploration step (Step 1) MUST NOT
64
+ be skipped. Arriving informed is what makes the conversation
65
+ productive rather than generic.
66
+ severity: critical
67
+ checks:
68
+ - "Codebase explored when code exists"
69
+ 7:
70
+ id: V7
71
+ rule: exit_marker_required
72
+ description: >-
73
+ Every visualisera invocation MUST emit an exit marker using the
74
+ canonical glyph ◰ (SG11) in the format ◰ visualisera · <status>
75
+ where status is one of EX1-EX4.
76
+ severity: critical
77
+ checks:
78
+ - "Exit marker present"
79
+ - "Exit marker uses glyph ◰ (SG11)"
80
+ - "Exit marker status is one of complete, flagged, stuck, waiting"