@jaimevalasek/aioson 1.3.0 → 1.4.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.
- package/README.md +19 -2
- package/docs/pt/README.md +62 -2
- package/docs/pt/advisor-spec.md +5 -5
- package/docs/pt/agentes-customizados.md +670 -0
- package/docs/pt/agentes.md +111 -13
- package/docs/pt/automacao-squads.md +407 -0
- package/docs/pt/cenarios.md +3 -3
- package/docs/pt/clientes-ai.md +62 -0
- package/docs/pt/comandos-cli.md +167 -17
- package/docs/pt/deyvin.md +115 -0
- package/docs/pt/genome-3.0-spec.md +11 -11
- package/docs/pt/inicio-rapido.md +45 -0
- package/docs/pt/memoria-contexto.md +255 -0
- package/docs/pt/output-strategy-delivery.md +655 -0
- package/docs/pt/profiler-system.md +17 -17
- package/docs/pt/runtime-observability.md +5 -1
- package/docs/pt/skills.md +175 -0
- package/docs/pt/{squad-genoma.md → squad-genome.md} +81 -75
- package/docs/testing/genome-2.0-rollout.md +1 -1
- package/package.json +3 -3
- package/src/agents.js +21 -5
- package/src/backup-provider.js +303 -0
- package/src/cli.js +178 -2
- package/src/commands/agents.js +22 -4
- package/src/commands/backup.js +533 -0
- package/src/commands/cloud.js +17 -17
- package/src/commands/context-pack.js +45 -0
- package/src/commands/implementation-plan.js +340 -0
- package/src/commands/learning.js +134 -0
- package/src/commands/live.js +1583 -0
- package/src/commands/runtime.js +833 -2
- package/src/commands/scan-project.js +288 -24
- package/src/commands/setup-context.js +23 -0
- package/src/commands/skill.js +558 -0
- package/src/commands/squad-agent-create.js +788 -0
- package/src/commands/squad-doctor.js +51 -1
- package/src/commands/squad-investigate.js +261 -0
- package/src/commands/squad-learning.js +209 -0
- package/src/commands/squad-pipeline.js +247 -1
- package/src/commands/squad-plan.js +329 -0
- package/src/commands/squad-status.js +1 -1
- package/src/commands/squad-validate.js +57 -1
- package/src/commands/test-agents.js +6 -1
- package/src/commands/workflow-next.js +8 -1
- package/src/commands/workflow-status.js +250 -0
- package/src/constants.js +80 -16
- package/src/context-memory.js +837 -0
- package/src/context-writer.js +2 -0
- package/src/delivery-runner.js +319 -0
- package/src/genome-files.js +1 -1
- package/src/genome-format.js +1 -1
- package/src/i18n/messages/en.js +206 -7
- package/src/i18n/messages/es.js +123 -6
- package/src/i18n/messages/fr.js +122 -5
- package/src/i18n/messages/pt-BR.js +205 -12
- package/src/installer.js +30 -2
- package/src/lib/genomes/compat.js +1 -1
- package/src/runtime-store.js +780 -42
- package/src/session-handoff.js +77 -0
- package/template/.aioson/agents/analyst.md +36 -9
- package/template/.aioson/agents/architect.md +20 -5
- package/template/.aioson/agents/dev.md +135 -15
- package/template/.aioson/agents/deyvin.md +166 -0
- package/template/.aioson/agents/discovery-design-doc.md +25 -1
- package/template/.aioson/agents/{genoma.md → genome.md} +20 -20
- package/template/.aioson/agents/orache.md +371 -0
- package/template/.aioson/agents/orchestrator.md +37 -2
- package/template/.aioson/agents/pair.md +5 -0
- package/template/.aioson/agents/pm.md +17 -5
- package/template/.aioson/agents/product.md +58 -22
- package/template/.aioson/agents/profiler-enricher.md +1 -1
- package/template/.aioson/agents/profiler-forge.md +9 -9
- package/template/.aioson/agents/profiler-researcher.md +1 -1
- package/template/.aioson/agents/qa.md +17 -5
- package/template/.aioson/agents/setup.md +81 -5
- package/template/.aioson/agents/squad.md +675 -28
- package/template/.aioson/agents/ux-ui.md +277 -34
- package/template/.aioson/config.md +175 -0
- package/template/.aioson/context/spec.md.template +17 -0
- package/template/.aioson/genomes/.gitkeep +0 -0
- package/template/.aioson/installed-skills/.gitkeep +0 -0
- package/template/.aioson/locales/en/agents/analyst.md +26 -4
- package/template/.aioson/locales/en/agents/architect.md +10 -0
- package/template/.aioson/locales/en/agents/dev.md +89 -4
- package/template/.aioson/locales/en/agents/deyvin.md +129 -0
- package/template/.aioson/locales/en/agents/{genoma.md → genome.md} +14 -14
- package/template/.aioson/locales/en/agents/orchestrator.md +36 -2
- package/template/.aioson/locales/en/agents/pair.md +5 -0
- package/template/.aioson/locales/en/agents/pm.md +7 -0
- package/template/.aioson/locales/en/agents/product.md +35 -17
- package/template/.aioson/locales/en/agents/qa.md +7 -0
- package/template/.aioson/locales/en/agents/setup.md +51 -5
- package/template/.aioson/locales/en/agents/squad.md +203 -15
- package/template/.aioson/locales/en/agents/ux-ui.md +375 -35
- package/template/.aioson/locales/es/agents/analyst.md +16 -4
- package/template/.aioson/locales/es/agents/architect.md +10 -0
- package/template/.aioson/locales/es/agents/dev.md +70 -2
- package/template/.aioson/locales/es/agents/deyvin.md +89 -0
- package/template/.aioson/locales/es/agents/{genoma.md → genome.md} +13 -13
- package/template/.aioson/locales/es/agents/orache.md +103 -0
- package/template/.aioson/locales/es/agents/orchestrator.md +36 -2
- package/template/.aioson/locales/es/agents/pair.md +5 -0
- package/template/.aioson/locales/es/agents/pm.md +7 -0
- package/template/.aioson/locales/es/agents/product.md +13 -3
- package/template/.aioson/locales/es/agents/qa.md +7 -0
- package/template/.aioson/locales/es/agents/setup.md +28 -5
- package/template/.aioson/locales/es/agents/squad.md +221 -15
- package/template/.aioson/locales/es/agents/ux-ui.md +26 -25
- package/template/.aioson/locales/fr/agents/analyst.md +16 -4
- package/template/.aioson/locales/fr/agents/architect.md +10 -0
- package/template/.aioson/locales/fr/agents/dev.md +70 -2
- package/template/.aioson/locales/fr/agents/deyvin.md +89 -0
- package/template/.aioson/locales/fr/agents/{genoma.md → genome.md} +7 -7
- package/template/.aioson/locales/fr/agents/orache.md +104 -0
- package/template/.aioson/locales/fr/agents/orchestrator.md +36 -2
- package/template/.aioson/locales/fr/agents/pair.md +5 -0
- package/template/.aioson/locales/fr/agents/pm.md +7 -0
- package/template/.aioson/locales/fr/agents/product.md +13 -3
- package/template/.aioson/locales/fr/agents/qa.md +7 -0
- package/template/.aioson/locales/fr/agents/setup.md +28 -5
- package/template/.aioson/locales/fr/agents/squad.md +216 -10
- package/template/.aioson/locales/fr/agents/ux-ui.md +26 -25
- package/template/.aioson/locales/pt-BR/agents/analyst.md +26 -4
- package/template/.aioson/locales/pt-BR/agents/architect.md +10 -0
- package/template/.aioson/locales/pt-BR/agents/dev.md +93 -4
- package/template/.aioson/locales/pt-BR/agents/deyvin.md +129 -0
- package/template/.aioson/locales/pt-BR/agents/{genoma.md → genome.md} +49 -49
- package/template/.aioson/locales/pt-BR/agents/orache.md +137 -0
- package/template/.aioson/locales/pt-BR/agents/orchestrator.md +36 -2
- package/template/.aioson/locales/pt-BR/agents/pair.md +5 -0
- package/template/.aioson/locales/pt-BR/agents/pm.md +7 -0
- package/template/.aioson/locales/pt-BR/agents/product.md +35 -17
- package/template/.aioson/locales/pt-BR/agents/qa.md +7 -0
- package/template/.aioson/locales/pt-BR/agents/setup.md +51 -5
- package/template/.aioson/locales/pt-BR/agents/squad.md +486 -47
- package/template/.aioson/locales/pt-BR/agents/ux-ui.md +361 -22
- package/template/.aioson/my-agents/.gitkeep +0 -0
- package/template/.aioson/rules/.gitkeep +0 -0
- package/template/.aioson/rules/squad/.gitkeep +0 -0
- package/template/.aioson/rules/squad/README.md +50 -0
- package/template/.aioson/schemas/genome-meta.schema.json +1 -1
- package/template/.aioson/schemas/genome.schema.json +1 -1
- package/template/.aioson/schemas/squad-blueprint.schema.json +11 -0
- package/template/.aioson/schemas/squad-manifest.schema.json +257 -1
- package/template/.aioson/skills/design/cognitive-core-ui/SKILL.md +157 -0
- package/template/.aioson/skills/design/cognitive-core-ui/references/components.md +407 -0
- package/template/.aioson/skills/design/cognitive-core-ui/references/dashboards.md +172 -0
- package/template/.aioson/skills/design/cognitive-core-ui/references/design-tokens.md +490 -0
- package/template/.aioson/skills/design/cognitive-core-ui/references/motion.md +237 -0
- package/template/.aioson/skills/design/cognitive-core-ui/references/patterns.md +289 -0
- package/template/.aioson/skills/design/cognitive-core-ui/references/websites.md +350 -0
- package/template/.aioson/skills/design/interface-design/SKILL.md +47 -0
- package/template/.aioson/skills/design/interface-design/references/components-and-states.md +105 -0
- package/template/.aioson/skills/design/interface-design/references/design-directions.md +101 -0
- package/template/.aioson/skills/design/interface-design/references/handoff-and-quality.md +71 -0
- package/template/.aioson/skills/design/interface-design/references/intent-and-domain.md +74 -0
- package/template/.aioson/skills/design/interface-design/references/tokens-and-depth.md +173 -0
- package/template/.aioson/skills/design/premium-command-center-ui/SKILL.md +62 -0
- package/template/.aioson/skills/design/premium-command-center-ui/references/operations.md +74 -0
- package/template/.aioson/skills/design/premium-command-center-ui/references/patterns.md +116 -0
- package/template/.aioson/skills/design/premium-command-center-ui/references/validation.md +47 -0
- package/template/.aioson/skills/design/premium-command-center-ui/references/visual-system.md +215 -0
- package/template/.aioson/skills/design-system/SKILL.md +92 -0
- package/template/.aioson/skills/design-system/cognitive-core-ui.skill +0 -0
- package/template/.aioson/skills/design-system/components/SKILL.md +274 -0
- package/template/.aioson/skills/design-system/components/SKILL.md:Zone.Identifier +0 -0
- package/template/.aioson/skills/design-system/dashboards/SKILL.md +184 -0
- package/template/.aioson/skills/design-system/dashboards/SKILL.md:Zone.Identifier +0 -0
- package/template/.aioson/skills/design-system/foundations/SKILL.md +250 -0
- package/template/.aioson/skills/design-system/foundations/SKILL.md:Zone.Identifier +0 -0
- package/template/.aioson/skills/design-system/motion/SKILL.md +197 -0
- package/template/.aioson/skills/design-system/motion/SKILL.md:Zone.Identifier +0 -0
- package/template/.aioson/skills/design-system/patterns/SKILL.md +231 -0
- package/template/.aioson/skills/design-system/patterns/SKILL.md:Zone.Identifier +0 -0
- package/template/.aioson/skills/squad/SKILL.md +58 -0
- package/template/.aioson/skills/squad/domains/.gitkeep +0 -0
- package/template/.aioson/skills/squad/formats/.gitkeep +0 -0
- package/template/.aioson/skills/squad/patterns/.gitkeep +0 -0
- package/template/.aioson/skills/squad/references/.gitkeep +0 -0
- package/template/.aioson/tasks/implementation-plan.md +288 -0
- package/template/.aioson/tasks/squad-create.md +1 -1
- package/template/.aioson/tasks/squad-execution-plan.md +279 -0
- package/template/.aioson/tasks/squad-export.md +1 -1
- package/template/.aioson/tasks/squad-investigate.md +44 -0
- package/template/.aioson/tasks/squad-learning-review.md +44 -0
- package/template/.aioson/tasks/squad-output-config.md +177 -0
- package/template/.aioson/tasks/squad-validate.md +1 -1
- package/template/.claude/commands/aioson/agent/deyvin.md +5 -0
- package/template/.claude/commands/aioson/agent/discovery-design-doc.md +5 -0
- package/template/.claude/commands/aioson/agent/genome.md +5 -0
- package/template/.claude/commands/aioson/agent/product.md +5 -0
- package/template/.claude/commands/aioson/agent/profiler-enricher.md +5 -0
- package/template/.claude/commands/aioson/agent/profiler-forge.md +5 -0
- package/template/.claude/commands/aioson/agent/profiler-researcher.md +5 -0
- package/template/.claude/commands/aioson/agent/squad.md +5 -0
- package/template/.gemini/GEMINI.md +2 -0
- package/template/.gemini/commands/aios-deyvin.toml +6 -0
- package/template/.gemini/commands/aios-pair.toml +6 -0
- package/template/AGENTS.md +34 -6
- package/template/CLAUDE.md +31 -4
- package/template/OPENCODE.md +6 -2
- package/template/squad-searches/.gitkeep +0 -0
- package/template/.aioson/skills/static/interface-design.md +0 -372
- package/template/.aioson/skills/static/premium-command-center-ui.md +0 -190
- /package/template/.aioson/{genomas → docs}/.gitkeep +0 -0
- /package/template/.claude/commands/aioson/{analyst.md → agent/analyst.md} +0 -0
- /package/template/.claude/commands/aioson/{architect.md → agent/architect.md} +0 -0
- /package/template/.claude/commands/aioson/{dev.md → agent/dev.md} +0 -0
- /package/template/.claude/commands/aioson/{orchestrator.md → agent/orchestrator.md} +0 -0
- /package/template/.claude/commands/aioson/{pm.md → agent/pm.md} +0 -0
- /package/template/.claude/commands/aioson/{qa.md → agent/qa.md} +0 -0
- /package/template/.claude/commands/aioson/{setup.md → agent/setup.md} +0 -0
- /package/template/.claude/commands/aioson/{ux-ui.md → agent/ux-ui.md} +0 -0
package/template/AGENTS.md
CHANGED
|
@@ -7,8 +7,7 @@ You operate as AIOSON — an AI development squad with specialized agents.
|
|
|
7
7
|
2. Check whether `.aioson/context/project.context.md` exists
|
|
8
8
|
- If missing: activate @setup agent immediately
|
|
9
9
|
- If present: read it before any action
|
|
10
|
-
3.
|
|
11
|
-
> "Project rules active: {n} rule(s) found in `.aioson/rules/`. Each agent will load applicable rules automatically."
|
|
10
|
+
3. If `.aioson/rules/` contains `.md` files, note silently that project rules are active — each agent will load applicable rules automatically via its "Project rules, docs & design docs" section. Do not alarm if the directory is absent or empty.
|
|
12
11
|
|
|
13
12
|
## How to invoke agents
|
|
14
13
|
|
|
@@ -17,7 +16,7 @@ Type `@agent-name` in the prompt. Codex will find the agent file and include its
|
|
|
17
16
|
The agent activates automatically — begin executing its instructions immediately.
|
|
18
17
|
Do not treat the included file as something to quote, summarize, or display back to the user unless the user explicitly asked to inspect the file itself.
|
|
19
18
|
|
|
20
|
-
Examples: `@setup`, `@dev`, `@squad`, `@
|
|
19
|
+
Examples: `@setup`, `@deyvin`, `@dev`, `@squad`, `@genome`, `@profiler-researcher`
|
|
21
20
|
|
|
22
21
|
**Option 2 — Natural language:**
|
|
23
22
|
Describe your intent. The agent system will match and execute.
|
|
@@ -28,14 +27,15 @@ Describe your intent. The agent system will match and execute.
|
|
|
28
27
|
| @discovery-design-doc | "prepare the discovery and design doc", "use the discovery design doc agent" |
|
|
29
28
|
| @analyst | "analyze the requirements", "use the analyst agent" |
|
|
30
29
|
| @architect | "design the architecture", "use the architect agent" |
|
|
31
|
-
| @ux-ui | "design the UI", "use the
|
|
30
|
+
| @ux-ui | "design the UI", "use the UI/UX agent" |
|
|
32
31
|
| @product | "define the product vision", "use the product agent", "start the product wizard" |
|
|
32
|
+
| @deyvin | "continue what we were doing", "use the deyvin agent", "let's fix this together" |
|
|
33
33
|
| @pm | "create the user stories", "use the pm agent" |
|
|
34
34
|
| @dev | "implement the feature", "use the dev agent" |
|
|
35
35
|
| @qa | "write the tests", "use the qa agent" |
|
|
36
36
|
| @orchestrator | "coordinate this session", "use the orchestrator agent" |
|
|
37
37
|
| @squad | "assemble a squad", "use the squad agent", "montar squad" |
|
|
38
|
-
| @
|
|
38
|
+
| @genome | "generate a genome", "use the genome agent", "gerar genome" |
|
|
39
39
|
| @profiler-researcher | "start the profiler research", "profile this person", "pesquisar DNA mental" |
|
|
40
40
|
| @profiler-enricher | "enrich this profile", "analyze this person's cognition", "consolidar perfil cognitivo" |
|
|
41
41
|
| @profiler-forge | "generate the advisor", "forge the genome 3.0", "gerar advisor da persona" |
|
|
@@ -43,6 +43,33 @@ Describe your intent. The agent system will match and execute.
|
|
|
43
43
|
When an agent file is included via @ or described via natural language, read the corresponding file and execute its instructions immediately from the first step.
|
|
44
44
|
Do not answer with "I will open/read/show the file" unless the user explicitly asked to inspect that file.
|
|
45
45
|
|
|
46
|
+
## Workflow enforcement
|
|
47
|
+
|
|
48
|
+
When AIOSON manages the session via `aioson workflow:next`, the CLI controls all routing, state, and event emission. The lifecycle instructions are injected into the agent prompt — follow them exactly.
|
|
49
|
+
|
|
50
|
+
When running Codex directly (without `aioson workflow:next`), these rules apply:
|
|
51
|
+
|
|
52
|
+
**Hard constraints — no exceptions:**
|
|
53
|
+
- For implementation requests (code changes, feature build, refactor, bugfix), default to workflow routing and execute via the next workflow stage agent (typically `@dev` after required upstream stages).
|
|
54
|
+
- Exception: if the user explicitly activates `@deyvin` (or the compatibility alias `@pair`), it may work directly only as a continuity / pair-programming agent for existing known context and a small validated slice. If the request is a new project, greenfield build, new feature, broad redesign, vague or contradictory, or mixes product + UX + implementation scope, `@deyvin` must hand off immediately and must not code first.
|
|
55
|
+
- Official workflow agents (`@setup`, `@product`, `@analyst`, `@architect`, `@ux-ui`, `@pm`, `@orchestrator`, `@dev`, `@qa`) must stay inside the workflow. Do not answer requests outside the current agent's scope.
|
|
56
|
+
- Between agent handoffs, your ONLY valid output is: which agent is next and why. Do not continue into that agent's work.
|
|
57
|
+
- If `project.context.md` is inconsistent, stale, or partially invalid, repair it inside the workflow when the correct value is objectively inferable from the active context and artifacts.
|
|
58
|
+
- If a context field is still uncertain, route back to `@setup` inside the workflow instead of offering direct execution as a workaround.
|
|
59
|
+
- Never silently bypass workflow after `@setup` or after collecting requirements.
|
|
60
|
+
|
|
61
|
+
**Tracked execution in external clients:**
|
|
62
|
+
- Runtime telemetry belongs to the AIOSON gateway, not to ad-hoc shell snippets inside the prompt.
|
|
63
|
+
- Use `aioson workflow:next . --tool=<tool>` for tracked workflow sessions.
|
|
64
|
+
- Use `aioson agent:prompt <agent> . --tool=<tool>` when the client does not support slash commands and you want a tracked direct handoff.
|
|
65
|
+
- Use `aioson live:start . --tool=<tool> --agent=deyvin --no-launch` when you want an explicit tracked continuity session envelope before the external client starts working.
|
|
66
|
+
- Inside an active live session, emit milestones via `aioson runtime:emit . --agent=<agent> --type=<event> --summary="..."` instead of opening a parallel `runtime:session:*` session.
|
|
67
|
+
- Use `aioson runtime:emit . --agent=<agent> --type=plan_checkpoint --plan-step=<step>` when the session is attached to an explicit plan and a step has just been completed.
|
|
68
|
+
- Use `aioson live:handoff . --agent=<agent> --to=<next-agent> --reason="..."` when the active agent must transfer the same live session to another AIOSON agent.
|
|
69
|
+
- Monitor active live sessions with `aioson live:status . --agent=<agent> --watch=2` and close them with `aioson live:close . --agent=<agent> --summary="..."`.
|
|
70
|
+
- Plain natural-language activation in external clients can execute agent instructions, but does not guarantee runtime records in the dashboard.
|
|
71
|
+
- Do not try to synthesize dashboard telemetry by emitting `aioson runtime-log` shell snippets from inside the session.
|
|
72
|
+
|
|
46
73
|
## Agent files
|
|
47
74
|
- @setup → `.aioson/agents/setup.md`
|
|
48
75
|
- @discovery-design-doc → `.aioson/agents/discovery-design-doc.md`
|
|
@@ -50,12 +77,13 @@ Do not answer with "I will open/read/show the file" unless the user explicitly a
|
|
|
50
77
|
- @architect → `.aioson/agents/architect.md`
|
|
51
78
|
- @ux-ui → `.aioson/agents/ux-ui.md`
|
|
52
79
|
- @product → `.aioson/agents/product.md`
|
|
80
|
+
- @deyvin → `.aioson/agents/deyvin.md` (`@pair` remains as a compatibility alias)
|
|
53
81
|
- @pm → `.aioson/agents/pm.md`
|
|
54
82
|
- @dev → `.aioson/agents/dev.md`
|
|
55
83
|
- @qa → `.aioson/agents/qa.md`
|
|
56
84
|
- @orchestrator → `.aioson/agents/orchestrator.md`
|
|
57
85
|
- @squad → `.aioson/agents/squad.md`
|
|
58
|
-
- @
|
|
86
|
+
- @genome → `.aioson/agents/genome.md`
|
|
59
87
|
- @profiler-researcher → `.aioson/agents/profiler-researcher.md`
|
|
60
88
|
- @profiler-enricher → `.aioson/agents/profiler-enricher.md`
|
|
61
89
|
- @profiler-forge → `.aioson/agents/profiler-forge.md`
|
package/template/CLAUDE.md
CHANGED
|
@@ -7,25 +7,52 @@ You operate as AIOSON.
|
|
|
7
7
|
2. Check whether `.aioson/context/project.context.md` exists
|
|
8
8
|
- If missing: run `/setup`
|
|
9
9
|
- If present: read it before any action
|
|
10
|
-
3.
|
|
11
|
-
> "Project rules active: {n} rule(s) found in `.aioson/rules/`. Each agent will load applicable rules automatically."
|
|
10
|
+
3. If `.aioson/rules/` contains `.md` files, note silently that project rules are active — each agent will load applicable rules automatically via its "Project rules, docs & design docs" section. Do not alarm if the directory is absent or empty.
|
|
12
11
|
|
|
13
12
|
## Agents
|
|
14
13
|
- /setup -> `.aioson/agents/setup.md`
|
|
15
14
|
- /discovery-design-doc -> `.aioson/agents/discovery-design-doc.md`
|
|
16
15
|
- /analyst -> `.aioson/agents/analyst.md`
|
|
17
16
|
- /architect -> `.aioson/agents/architect.md`
|
|
18
|
-
- /ux-ui -> `.aioson/agents/ux-ui.md`
|
|
17
|
+
- /ux-ui (UI/UX) -> `.aioson/agents/ux-ui.md`
|
|
19
18
|
- /product -> `.aioson/agents/product.md`
|
|
19
|
+
- /deyvin -> `.aioson/agents/deyvin.md`
|
|
20
|
+
- /pair -> `.aioson/agents/deyvin.md` (compatibility alias)
|
|
20
21
|
- /pm -> `.aioson/agents/pm.md`
|
|
21
22
|
- /dev -> `.aioson/agents/dev.md`
|
|
22
23
|
- /qa -> `.aioson/agents/qa.md`
|
|
23
24
|
- /orchestrator -> `.aioson/agents/orchestrator.md`
|
|
24
25
|
- /squad -> `.aioson/agents/squad.md`
|
|
25
|
-
- /
|
|
26
|
+
- /orache -> `.aioson/agents/orache.md`
|
|
27
|
+
- /genome -> `.aioson/agents/genome.md`
|
|
26
28
|
- /profiler-researcher -> `.aioson/agents/profiler-researcher.md`
|
|
27
29
|
- /profiler-enricher -> `.aioson/agents/profiler-enricher.md`
|
|
28
30
|
- /profiler-forge -> `.aioson/agents/profiler-forge.md`
|
|
29
31
|
|
|
32
|
+
## Workflow enforcement
|
|
33
|
+
|
|
34
|
+
When AIOSON manages the session via `aioson workflow:next`, the CLI controls all routing, state, and event emission. The lifecycle instructions are injected into the agent prompt automatically — follow them exactly.
|
|
35
|
+
|
|
36
|
+
When running Claude Code directly (without `aioson workflow:next`), these rules apply:
|
|
37
|
+
|
|
38
|
+
**Hard constraints — no exceptions:**
|
|
39
|
+
- You MUST NEVER implement code, produce UI specs, write PRDs, or answer technical tasks outside an activated agent.
|
|
40
|
+
- If the user explicitly activates `/deyvin` or `/pair`, it may act directly only for continuity on existing known context and a small validated slice. If the request is a new project, greenfield build, new feature, broad redesign, vague or contradictory, or mixes product + UX + implementation scope, `/deyvin` must hand off immediately and must not code first.
|
|
41
|
+
- Between agent handoffs, your ONLY valid output is: which agent is next and why. Do not continue into that agent's work.
|
|
42
|
+
- If the user sends an implementation request before setup is complete: do not implement. Tell them to activate `/setup` first.
|
|
43
|
+
- If the user insists on bypassing an agent stage: refuse and redirect. Urgency or complexity do not override this rule.
|
|
44
|
+
|
|
45
|
+
**Tracked execution in external clients:**
|
|
46
|
+
- Runtime telemetry belongs to the AIOSON gateway, not to ad-hoc shell snippets inside the prompt.
|
|
47
|
+
- Use `aioson workflow:next . --tool=claude` for tracked workflow sessions.
|
|
48
|
+
- Use `aioson agent:prompt <agent> . --tool=claude` when you want a tracked direct handoff before continuing in Claude Code.
|
|
49
|
+
- Use `aioson live:start . --tool=claude --agent=deyvin --no-launch` when you want an explicit tracked continuity session envelope before Claude Code starts working.
|
|
50
|
+
- Inside an active live session, emit milestones via `aioson runtime:emit . --agent=<agent> --type=<event> --summary="..."` instead of opening a parallel `runtime:session:*` session.
|
|
51
|
+
- Use `aioson runtime:emit . --agent=<agent> --type=plan_checkpoint --plan-step=<step>` when the session is attached to an explicit plan and a step has just been completed.
|
|
52
|
+
- Use `aioson live:handoff . --agent=<agent> --to=<next-agent> --reason="..."` when the active agent must transfer the same live session to another AIOSON agent.
|
|
53
|
+
- Monitor active live sessions with `aioson live:status . --agent=<agent> --watch=2` and close them with `aioson live:close . --agent=<agent> --summary="..."`.
|
|
54
|
+
- Plain slash-command activation can execute agent instructions, but does not guarantee runtime records in the dashboard by itself.
|
|
55
|
+
- Do not try to synthesize dashboard telemetry by emitting `aioson runtime-log` shell snippets from inside the session.
|
|
56
|
+
|
|
30
57
|
## Golden rule
|
|
31
58
|
Small project, small solution.
|
package/template/OPENCODE.md
CHANGED
|
@@ -7,15 +7,19 @@
|
|
|
7
7
|
|
|
8
8
|
## Available agents
|
|
9
9
|
- setup -> `.aioson/agents/setup.md`
|
|
10
|
+
- discovery-design-doc -> `.aioson/agents/discovery-design-doc.md`
|
|
10
11
|
- analyst -> `.aioson/agents/analyst.md`
|
|
11
12
|
- architect -> `.aioson/agents/architect.md`
|
|
12
|
-
- ux-ui -> `.aioson/agents/ux-ui.md`
|
|
13
|
+
- ux-ui (UI/UX) -> `.aioson/agents/ux-ui.md`
|
|
14
|
+
- product -> `.aioson/agents/product.md`
|
|
15
|
+
- deyvin -> `.aioson/agents/deyvin.md`
|
|
16
|
+
- pair -> `.aioson/agents/deyvin.md` (compatibility alias)
|
|
13
17
|
- pm -> `.aioson/agents/pm.md`
|
|
14
18
|
- dev -> `.aioson/agents/dev.md`
|
|
15
19
|
- qa -> `.aioson/agents/qa.md`
|
|
16
20
|
- orchestrator -> `.aioson/agents/orchestrator.md`
|
|
17
21
|
- squad -> `.aioson/agents/squad.md`
|
|
18
|
-
-
|
|
22
|
+
- genome -> `.aioson/agents/genome.md`
|
|
19
23
|
- profiler-researcher -> `.aioson/agents/profiler-researcher.md`
|
|
20
24
|
- profiler-enricher -> `.aioson/agents/profiler-enricher.md`
|
|
21
25
|
- profiler-forge -> `.aioson/agents/profiler-forge.md`
|
|
File without changes
|
|
@@ -1,372 +0,0 @@
|
|
|
1
|
-
# Interface Design — Craft Guide
|
|
2
|
-
|
|
3
|
-
> Read this in full before producing any UI/UX output.
|
|
4
|
-
> Correct ships. Crafted impresses. This guide closes the gap.
|
|
5
|
-
|
|
6
|
-
---
|
|
7
|
-
|
|
8
|
-
## The mandate
|
|
9
|
-
|
|
10
|
-
If another AI, given the same prompt, would produce substantially the same output — you have failed.
|
|
11
|
-
Generic is the enemy. Defaults disguise themselves as infrastructure. Every spacing value, every typeface choice, every depth strategy is a decision. Own every one of them.
|
|
12
|
-
|
|
13
|
-
---
|
|
14
|
-
|
|
15
|
-
## AIOS rule — design memory and continuity
|
|
16
|
-
|
|
17
|
-
If `.interface-design/system.md` exists, treat it as the visual source of truth:
|
|
18
|
-
- Load it before changing direction, tokens, or component patterns.
|
|
19
|
-
- Respect it unless the user explicitly wants a redesign.
|
|
20
|
-
- Update it when you introduce a reusable pattern, token rule, or layout decision.
|
|
21
|
-
|
|
22
|
-
If the file does not exist and the task covers more than one screen or component family, create it with:
|
|
23
|
-
- Product context and UI intent
|
|
24
|
-
- Chosen design direction and anti-goals
|
|
25
|
-
- Token decisions (color, type, spacing, radius, depth, motion)
|
|
26
|
-
- Core component patterns (navigation, card, table, form, modal, empty state)
|
|
27
|
-
- Open constraints or decisions still pending
|
|
28
|
-
|
|
29
|
-
The point is simple: one product should not look like it was designed from scratch on every screen.
|
|
30
|
-
|
|
31
|
-
---
|
|
32
|
-
|
|
33
|
-
## If the UI already exists
|
|
34
|
-
|
|
35
|
-
When refining an existing product:
|
|
36
|
-
- Identify the current visual direction before proposing a new one.
|
|
37
|
-
- Diagnose token drift first: off-grid spacing, repeated hardcoded colors, mixed radii, mixed depth strategies, missing interactive states.
|
|
38
|
-
- Improve consistency before re-theming.
|
|
39
|
-
- Replace the direction only when the current system blocks the product intent or the user explicitly asked for a redesign.
|
|
40
|
-
|
|
41
|
-
---
|
|
42
|
-
|
|
43
|
-
## Phase 0 — Intent first (mandatory, cannot skip)
|
|
44
|
-
|
|
45
|
-
Before touching layout or tokens, answer three questions with specificity:
|
|
46
|
-
|
|
47
|
-
1. **Who is this human?** — Actual person, actual context.
|
|
48
|
-
Bad: "a user." Good: "a finance manager reviewing budget reports at 8am before a board meeting."
|
|
49
|
-
2. **What must they accomplish?** — A specific verb, not a vague goal.
|
|
50
|
-
Bad: "manage their projects." Good: "approve or reject 15 expense requests before end of day."
|
|
51
|
-
3. **What should this feel like?** — Concrete texture, not an adjective.
|
|
52
|
-
Bad: "clean and modern." Good: "a Bloomberg terminal that doesn't exhaust you."
|
|
53
|
-
|
|
54
|
-
**If you cannot answer all three with specifics — stop. Ask. Do not guess. Do not default.**
|
|
55
|
-
|
|
56
|
-
---
|
|
57
|
-
|
|
58
|
-
## Phase 1 — Domain exploration (4 required outputs)
|
|
59
|
-
|
|
60
|
-
Before proposing any visual direction, produce:
|
|
61
|
-
|
|
62
|
-
1. **Domain concepts** — 5+ metaphors, patterns, or ideas from the product's world.
|
|
63
|
-
Example (clinic scheduling): appointment slots, patient flow, triage priority, clinical notes, white coat.
|
|
64
|
-
|
|
65
|
-
2. **Color world** — 5+ colors that exist naturally in that domain.
|
|
66
|
-
Example (clinic): antiseptic white, calm blue (trust, clinical), soft green (go/available), amber (warning/urgent), warm gray (neutral).
|
|
67
|
-
|
|
68
|
-
3. **Signature element** — One thing that could only belong to THIS product.
|
|
69
|
-
Example: a subtle "pulse" animation on available time slots, echoing a heartbeat.
|
|
70
|
-
|
|
71
|
-
4. **Defaults to avoid** — 3 obvious, generic choices that must be replaced.
|
|
72
|
-
Example: blue primary button → calm teal; card shadows → border-only depth; Inter font → IBM Plex Sans (clinical precision).
|
|
73
|
-
|
|
74
|
-
**The identity test:** Remove the product name. Could someone identify what this is for?
|
|
75
|
-
|
|
76
|
-
---
|
|
77
|
-
|
|
78
|
-
## Phase 2 — Pick a design direction
|
|
79
|
-
|
|
80
|
-
Choose ONE direction. Never mix. Mixing produces visual noise.
|
|
81
|
-
|
|
82
|
-
### Precision & Density
|
|
83
|
-
*For: dashboards, admin panels, developer tools, power-user interfaces.*
|
|
84
|
-
|
|
85
|
-
```
|
|
86
|
-
Foundation : Cool slate (borders-only depth)
|
|
87
|
-
Spacing : 4px base — scale: 4, 8, 12, 16, 24, 32
|
|
88
|
-
Colors : foreground=slate-900, secondary=slate-600, muted=slate-400,
|
|
89
|
-
faint=slate-200, border=rgba(0,0,0,0.08), accent=blue-600
|
|
90
|
-
Radius : 4px / 6px / 8px (sharp, technical)
|
|
91
|
-
Typography : system-ui, 11–18px, weights 400/500/600
|
|
92
|
-
monospace: SF Mono, Consolas (for data/code)
|
|
93
|
-
Components :
|
|
94
|
-
Button → 32px height, 8px/12px padding, 4px radius, 13px 500-weight
|
|
95
|
-
Card → 0.5px faint border, 12px padding, 6px radius, NO shadows
|
|
96
|
-
Table → 8px/12px cell padding, tabular-nums, 13px font, 1px bottom border
|
|
97
|
-
Rationale : borders-only maximizes density; compact sizing serves power users;
|
|
98
|
-
system fonts feel native and load instantly.
|
|
99
|
-
```
|
|
100
|
-
|
|
101
|
-
### Warmth & Approachability
|
|
102
|
-
*For: consumer apps, collaborative tools, onboarding flows, customer-facing products.*
|
|
103
|
-
|
|
104
|
-
```
|
|
105
|
-
Foundation : Warm stone (subtle shadows)
|
|
106
|
-
Spacing : 4px base — scale: 8, 12, 16, 24, 32, 48 (generous)
|
|
107
|
-
Colors : foreground=stone-900, secondary=stone-600, accent=orange-500,
|
|
108
|
-
surface=white on stone-50
|
|
109
|
-
Radius : 8px / 12px / 16px (rounded, friendly)
|
|
110
|
-
Typography : Inter, 13–24px, weights 400/500/600
|
|
111
|
-
Components :
|
|
112
|
-
Button → 40px height, 12px/20px padding, 8px radius
|
|
113
|
-
Card → 20px padding, 12px radius, white on stone-50
|
|
114
|
-
Input → 44px height, 12px/16px padding, 1.5px faint border
|
|
115
|
-
Rationale : subtle shadows add approachable depth; generous spacing enables
|
|
116
|
-
focused tasks; warm tones feel human and inviting.
|
|
117
|
-
```
|
|
118
|
-
|
|
119
|
-
### Sophistication & Trust
|
|
120
|
-
*For: fintech, enterprise SaaS, operational products where clarity and trust matter more than novelty.*
|
|
121
|
-
|
|
122
|
-
```
|
|
123
|
-
Foundation : Cool mineral (restrained layers)
|
|
124
|
-
Spacing : 4px base — scale: 4, 8, 12, 16, 24, 32
|
|
125
|
-
Colors : foreground=slate-950, secondary=slate-700, muted=slate-500,
|
|
126
|
-
surface=white, border=rgba(15,23,42,0.10), accent=blue-700
|
|
127
|
-
Radius : 8px / 10px / 12px (firm, not playful)
|
|
128
|
-
Typography : IBM Plex Sans or Public Sans, 12–20px, weights 400/500/600
|
|
129
|
-
Components :
|
|
130
|
-
Button → 38px height, 12px/18px padding, 10px radius
|
|
131
|
-
Card → 16px padding, 10px radius, subtle border, rare soft shadow
|
|
132
|
-
Table → 10px/14px cell padding, tabular-nums, quiet row dividers
|
|
133
|
-
Rationale : trust comes from control, not decoration; a restrained palette and
|
|
134
|
-
firm typography make the product feel expensive and dependable.
|
|
135
|
-
```
|
|
136
|
-
|
|
137
|
-
### Premium Dark Platform
|
|
138
|
-
*For: premium dashboards, media/catalog products, command surfaces, high-density apps with persistent navigation.*
|
|
139
|
-
|
|
140
|
-
```
|
|
141
|
-
Foundation : Graphite layers (borders-first)
|
|
142
|
-
Spacing : 4px base — scale: 4, 8, 12, 16, 24, 32
|
|
143
|
-
Colors : base=#0b1015, surface=#10161d, elevated=#151c24,
|
|
144
|
-
foreground=#f3f7fb, secondary=#b7c2cf, muted=#7f8b99,
|
|
145
|
-
border=rgba(255,255,255,0.08), accent=desaturated blue
|
|
146
|
-
Radius : 12px / 14px / 16px (premium, controlled)
|
|
147
|
-
Typography : Manrope, Geist, or IBM Plex Sans, 12–22px, weights 400/500/600
|
|
148
|
-
Components :
|
|
149
|
-
Button → 40px height, 12px/18px padding, 12px radius
|
|
150
|
-
Card → layered surfaces, 16px padding, 14px radius, no heavy glow
|
|
151
|
-
Sidebar → quiet active state, compact icon rhythm, clean section grouping
|
|
152
|
-
Rationale : premium dark works when contrast is controlled, surfaces are few,
|
|
153
|
-
and borders quietly separate the system without turning neon.
|
|
154
|
-
```
|
|
155
|
-
|
|
156
|
-
### Other directions (adapt token specs above)
|
|
157
|
-
- **Data & Analysis** — cool blue, high-density tables, monospace for numbers, minimal chrome
|
|
158
|
-
- **Editorial** — strong typographic hierarchy, generous white space, restrained color
|
|
159
|
-
- **Commerce** — aspirational photography support, high contrast CTAs, smooth transitions
|
|
160
|
-
- **Minimal & Calm** — near-monochrome, whitespace as design element, hairline borders only
|
|
161
|
-
- **Boldness & Clarity** — stronger accent, harder contrast, one dominant focal move
|
|
162
|
-
- **Utility & Function** — minimal decoration, maximum legibility, near-invisible chrome
|
|
163
|
-
|
|
164
|
-
---
|
|
165
|
-
|
|
166
|
-
## Phase 3 — Decision checkpoint before components
|
|
167
|
-
|
|
168
|
-
Before building any screen or component family, write a short checkpoint that locks:
|
|
169
|
-
- Depth strategy
|
|
170
|
-
- Surface levels
|
|
171
|
-
- Border recipe (including alpha)
|
|
172
|
-
- Spacing base
|
|
173
|
-
- Radius ladder
|
|
174
|
-
- Control height
|
|
175
|
-
- Typography anchor
|
|
176
|
-
- Motion posture
|
|
177
|
-
|
|
178
|
-
Example:
|
|
179
|
-
|
|
180
|
-
> Depth: borders-only • Surfaces: base / surface / elevated • Borders: rgba(15,23,42,0.08) • Spacing: 8px • Radius: 10/12 • Controls: 38px • Type: IBM Plex Sans 14/16/24 • Motion: 120ms ease-out
|
|
181
|
-
|
|
182
|
-
Premium dark example:
|
|
183
|
-
|
|
184
|
-
> Depth: borders-first • Surfaces: #0b1015 / #10161d / #151c24 • Borders: rgba(255,255,255,0.08) • Spacing: 8px • Radius: 12/14 • Controls: 40px • Type: Geist 14/16/28 • Motion: 140ms ease-out
|
|
185
|
-
|
|
186
|
-
If you cannot state the checkpoint clearly, the system is not ready to build.
|
|
187
|
-
|
|
188
|
-
---
|
|
189
|
-
|
|
190
|
-
## Token architecture (always define all levels)
|
|
191
|
-
|
|
192
|
-
### Color tokens
|
|
193
|
-
```
|
|
194
|
-
foreground/primary ← body text, labels, high-emphasis
|
|
195
|
-
foreground/secondary ← supporting text, placeholders
|
|
196
|
-
foreground/muted ← captions, disabled labels
|
|
197
|
-
foreground/faint ← decorative only, never critical
|
|
198
|
-
|
|
199
|
-
background/base ← page background
|
|
200
|
-
background/surface ← cards, panels
|
|
201
|
-
background/elevated ← modals, dropdowns (if shadow system)
|
|
202
|
-
background/sunken ← inputs, inset areas
|
|
203
|
-
|
|
204
|
-
border/default ← standard separator
|
|
205
|
-
border/strong ← focused inputs, active states
|
|
206
|
-
border/faint ← ultra-subtle dividers
|
|
207
|
-
|
|
208
|
-
brand/primary ← main CTA color
|
|
209
|
-
brand/secondary ← supporting brand accent
|
|
210
|
-
|
|
211
|
-
semantic/success ← green family
|
|
212
|
-
semantic/warning ← amber family
|
|
213
|
-
semantic/danger ← red family
|
|
214
|
-
semantic/info ← blue family
|
|
215
|
-
```
|
|
216
|
-
|
|
217
|
-
### Spacing — base × multiples only
|
|
218
|
-
Never use arbitrary values (17px, 22px, 37px). Every value must be a multiple of your base.
|
|
219
|
-
|
|
220
|
-
### Depth — pick ONE and commit
|
|
221
|
-
- **Borders only** — `border: 1px solid border/faint` — maximum density, zero visual noise
|
|
222
|
-
- **Subtle shadows** — `box-shadow: 0 1px 3px rgba(0,0,0,0.08)` — gentle, approachable
|
|
223
|
-
- **Layered** — background elevation with no shadows or borders — modern, minimal
|
|
224
|
-
|
|
225
|
-
**Never mix depth strategies on the same surface.**
|
|
226
|
-
|
|
227
|
-
---
|
|
228
|
-
|
|
229
|
-
## Component quality (mandatory for every component)
|
|
230
|
-
|
|
231
|
-
Define all six states before handing off to @dev:
|
|
232
|
-
|
|
233
|
-
| State | What to specify |
|
|
234
|
-
|---|---|
|
|
235
|
-
| Default | baseline appearance |
|
|
236
|
-
| Hover | subtle shift (background, border, or opacity) |
|
|
237
|
-
| Focus | visible ring — `outline: 2px solid brand/primary; outline-offset: 2px` |
|
|
238
|
-
| Active / pressed | slight scale or brightness change |
|
|
239
|
-
| Disabled | reduced opacity (0.4–0.5), no cursor pointer, no hover effect |
|
|
240
|
-
| Loading | skeleton or spinner — never block critical flow |
|
|
241
|
-
|
|
242
|
-
Also define for container components:
|
|
243
|
-
- **Empty state** — illustration or message + primary action
|
|
244
|
-
- **Error state** — clear message + recovery action
|
|
245
|
-
- **Success confirmation** — when relevant, transient (not permanent)
|
|
246
|
-
|
|
247
|
-
---
|
|
248
|
-
|
|
249
|
-
## Forms
|
|
250
|
-
|
|
251
|
-
- Labels outside placeholders. Placeholders are hints, not labels.
|
|
252
|
-
- Validate on blur (not on keystroke, not on submit only).
|
|
253
|
-
- Inline field errors directly below the field. One global summary for multi-field failures.
|
|
254
|
-
- Disable the submit button and show progress during async operations.
|
|
255
|
-
- Input height minimum: 40px (desktop), 44px (mobile/touch).
|
|
256
|
-
|
|
257
|
-
---
|
|
258
|
-
|
|
259
|
-
## Typography hierarchy
|
|
260
|
-
|
|
261
|
-
Size alone is never enough. Use weight + tracking + opacity to create layers:
|
|
262
|
-
|
|
263
|
-
```
|
|
264
|
-
Page title : largest size, 600-weight, tight tracking
|
|
265
|
-
Section title: medium-large, 500-weight, normal tracking
|
|
266
|
-
Body : base size, 400-weight, comfortable line-height (1.5–1.6)
|
|
267
|
-
Helper/meta : small, 400-weight, muted color
|
|
268
|
-
Data/mono : monospace for numbers in tables, code, metrics
|
|
269
|
-
```
|
|
270
|
-
|
|
271
|
-
---
|
|
272
|
-
|
|
273
|
-
## Layout and composition
|
|
274
|
-
|
|
275
|
-
- **Rhythm** — interfaces breathe unevenly: dense tool areas give way to open content. Same card size, same gaps everywhere = flatness = no one decided.
|
|
276
|
-
- **Proportions declare intent** — a 280px sidebar says "navigation serves content." A 360px sidebar says "these are peers." Know what your proportions are saying.
|
|
277
|
-
- **One focal point per screen** — the primary action dominates through size, position, contrast, or surrounding space. When everything competes equally, nothing wins.
|
|
278
|
-
- **Reading order** — 1. Page intent → 2. Primary action → 3. Supporting data. Never invert.
|
|
279
|
-
|
|
280
|
-
---
|
|
281
|
-
|
|
282
|
-
## Accessibility baseline (non-negotiable)
|
|
283
|
-
|
|
284
|
-
- Semantic HTML and proper landmarks (`<main>`, `<nav>`, `<header>`, `<aside>`)
|
|
285
|
-
- Full keyboard navigation — Tab order must match visual reading order
|
|
286
|
-
- Visible focus rings on all interactive elements
|
|
287
|
-
- Color contrast: 4.5:1 for body text, 3:1 for large text and UI components
|
|
288
|
-
- Never convey meaning through color alone — add icon, pattern, or text
|
|
289
|
-
- `aria-label` on icon-only buttons, `aria-live` on dynamic status regions
|
|
290
|
-
- `prefers-reduced-motion` fallback for all animations
|
|
291
|
-
|
|
292
|
-
---
|
|
293
|
-
|
|
294
|
-
## Motion rules
|
|
295
|
-
|
|
296
|
-
- Motion clarifies transitions, it does not decorate them.
|
|
297
|
-
- Duration: micro-interactions 100–150ms, page transitions 200–300ms.
|
|
298
|
-
- Easing: ease-out for entrances, ease-in for exits.
|
|
299
|
-
- Never animate properties that affect layout (width, height, padding). Animate transform and opacity only.
|
|
300
|
-
- Always provide `prefers-reduced-motion: reduce` fallback.
|
|
301
|
-
|
|
302
|
-
---
|
|
303
|
-
|
|
304
|
-
## Quality checks (run before delivering)
|
|
305
|
-
|
|
306
|
-
### Swap test
|
|
307
|
-
Would swapping the typeface or layout make the design look like a different product?
|
|
308
|
-
If yes — good. If no — the design has no identity.
|
|
309
|
-
|
|
310
|
-
### Squint test
|
|
311
|
-
Blur your eyes (or the screenshot). Does the visual hierarchy still read clearly?
|
|
312
|
-
If not — the hierarchy is too weak.
|
|
313
|
-
|
|
314
|
-
### Signature test
|
|
315
|
-
Can you point to five specific decisions where your craft appears?
|
|
316
|
-
If you cannot name five — you defaulted somewhere.
|
|
317
|
-
|
|
318
|
-
### Token test
|
|
319
|
-
Do your CSS variable names sound like they belong to THIS product?
|
|
320
|
-
Generic: `--color-primary`. Specific: `--slot-available`, `--urgency-amber`.
|
|
321
|
-
|
|
322
|
-
---
|
|
323
|
-
|
|
324
|
-
## Self-critique before delivery
|
|
325
|
-
|
|
326
|
-
Walk through each section before handing off:
|
|
327
|
-
|
|
328
|
-
1. **Composition** — Does the layout have rhythm? Are proportions intentional? Is there one clear focal point?
|
|
329
|
-
2. **Craft** — Is every spacing value on-grid? Does typography use weight + tracking + size (not size alone)? Do surfaces whisper hierarchy without thick borders or dramatic shadows?
|
|
330
|
-
3. **Content** — Does the spec tell one coherent story? Could a real person at a real company act on this?
|
|
331
|
-
4. **Structure** — Are there any hacks? Negative-margin workarounds? Arbitrary pixel values? Fix them.
|
|
332
|
-
|
|
333
|
-
**Ask yourself: "If a design lead reviewed this, what would they call out?" Fix that thing. Then ask again.**
|
|
334
|
-
|
|
335
|
-
---
|
|
336
|
-
|
|
337
|
-
## Update design memory
|
|
338
|
-
|
|
339
|
-
When the work introduces or changes reusable design decisions, update `.interface-design/system.md` with:
|
|
340
|
-
- Final direction and anti-goals
|
|
341
|
-
- Token block
|
|
342
|
-
- Component pattern notes
|
|
343
|
-
- New exceptions or constraints
|
|
344
|
-
|
|
345
|
-
This file is the continuity layer between screens, agents, and future sessions.
|
|
346
|
-
|
|
347
|
-
---
|
|
348
|
-
|
|
349
|
-
## Stack-specific notes
|
|
350
|
-
|
|
351
|
-
| Stack | Priority |
|
|
352
|
-
|---|---|
|
|
353
|
-
| Laravel + TALL | Flux UI / Livewire primitives first; custom only for signature moves |
|
|
354
|
-
| Filament | Built-in Filament components before any override |
|
|
355
|
-
| Next.js + shadcn/ui | shadcn primitives + Tailwind tokens; keep component boundaries clean |
|
|
356
|
-
| React + Tailwind | Design token CSS vars → Tailwind config → components |
|
|
357
|
-
| Vue + Nuxt | Nuxt UI or PrimeVue first; avoid mixing component libraries |
|
|
358
|
-
| Vanilla HTML | Define CSS custom properties at `:root`, semantic class names only |
|
|
359
|
-
|
|
360
|
-
---
|
|
361
|
-
|
|
362
|
-
## Handoff to @dev
|
|
363
|
-
|
|
364
|
-
The ui-spec.md must include:
|
|
365
|
-
- Design token block (fonts, colors, spacing, radius, depth strategy, motion)
|
|
366
|
-
- Per-screen layout notes with component names mapped to real library components
|
|
367
|
-
- Full state matrix (default/hover/focus/active/disabled/loading/empty/error/success)
|
|
368
|
-
- Responsive rules (mobile breakpoints first)
|
|
369
|
-
- Accessibility checklist items
|
|
370
|
-
- Any signature visual moves with implementation notes
|
|
371
|
-
|
|
372
|
-
**Keep the spec concise enough to code from directly. Not a design document — a build contract.**
|