@jaimevalasek/aioson 1.30.2 → 1.36.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/CHANGELOG.md +75 -0
- package/README.md +19 -6
- package/docs/en/1-understand/ecosystem-map.md +45 -29
- package/docs/en/1-understand/glossary.md +5 -5
- package/docs/en/1-understand/what-is-aioson.md +5 -5
- package/docs/en/2-start/existing-project.md +7 -7
- package/docs/en/2-start/first-project.md +32 -38
- package/docs/en/2-start/initial-decisions.md +18 -17
- package/docs/en/3-recipes/README.md +2 -2
- package/docs/en/3-recipes/continuity-between-sessions.md +2 -2
- package/docs/en/3-recipes/from-idea-to-prd-via-briefing.md +5 -2
- package/docs/en/3-recipes/full-feature-with-sheldon.md +327 -338
- package/docs/en/4-agents/README.md +28 -14
- package/docs/en/4-agents/discovery-design-doc.md +20 -8
- package/docs/en/4-agents/forge-run.md +3 -2
- package/docs/en/5-reference/cli-reference.md +51 -48
- package/docs/en/5-reference/executable-verification.md +10 -7
- package/docs/en/5-reference/parallel.md +2 -0
- package/docs/en/5-reference/qa-browser.md +2 -2
- package/docs/en/README.md +3 -3
- package/docs/pt/1-entender/glossario.md +4 -4
- package/docs/pt/1-entender/mapa-do-ecossistema.md +32 -21
- package/docs/pt/2-comecar/decisoes-iniciais.md +16 -16
- package/docs/pt/2-comecar/primeiro-projeto.md +1 -1
- package/docs/pt/3-receitas/README.md +1 -1
- package/docs/pt/3-receitas/app-saas-do-zero.md +35 -122
- package/docs/pt/3-receitas/feature-completa-com-sheldon.md +289 -338
- package/docs/pt/4-agentes/analyst.md +9 -5
- package/docs/pt/4-agentes/architect.md +9 -5
- package/docs/pt/4-agentes/dev.md +19 -7
- package/docs/pt/4-agentes/discovery-design-doc.md +25 -23
- package/docs/pt/4-agentes/orchestrator.md +164 -118
- package/docs/pt/4-agentes/pentester.md +5 -5
- package/docs/pt/4-agentes/pm.md +15 -7
- package/docs/pt/4-agentes/sheldon.md +166 -99
- package/docs/pt/4-agentes/ux-ui.md +7 -4
- package/docs/pt/5-referencia/agent-chain-continuity.md +14 -5
- package/docs/pt/5-referencia/comandos-cli.md +1 -1
- package/docs/pt/5-referencia/harness-retro.md +2 -1
- package/docs/pt/5-referencia/sdd-automation-scripts.md +6 -6
- package/docs/pt/5-referencia/sdd-framework.md +53 -16
- package/docs/pt/5-referencia/sdd-planos-e-estrutura.md +27 -15
- package/docs/pt/README.md +4 -4
- package/docs/pt/agentes.md +48 -50
- package/package.json +2 -2
- package/src/artifact-kinds.js +110 -0
- package/src/cli.js +82 -42
- package/src/commands/agent-epilogue.js +251 -186
- package/src/commands/agents.js +104 -48
- package/src/commands/audit-code.js +344 -0
- package/src/commands/classify.js +75 -13
- package/src/commands/feature-close.js +43 -18
- package/src/commands/harness-check.js +259 -175
- package/src/commands/harness-retro-promote.js +387 -0
- package/src/commands/live.js +24 -0
- package/src/commands/prototype-check.js +163 -0
- package/src/commands/review-feature.js +189 -0
- package/src/commands/runtime.js +81 -66
- package/src/commands/sync-agents-copy.js +115 -0
- package/src/commands/verification-plan.js +116 -0
- package/src/commands/verify-artifact.js +530 -0
- package/src/commands/verify-implementation.js +428 -0
- package/src/commands/workflow-execute.js +309 -309
- package/src/commands/workflow-next.js +361 -19
- package/src/commands/workflow-plan.js +5 -5
- package/src/constants.js +4 -0
- package/src/gateway-pointer-merge.js +7 -1
- package/src/handoff-contract.js +267 -172
- package/src/harness/contract-integrity-gate.js +172 -0
- package/src/harness/contract-integrity.js +111 -0
- package/src/harness/contract-schema.js +377 -332
- package/src/harness/detect-runtime-feature.js +90 -0
- package/src/harness/static-criteria.js +192 -0
- package/src/i18n/messages/en.js +8 -4
- package/src/i18n/messages/es.js +8 -4
- package/src/i18n/messages/fr.js +8 -4
- package/src/i18n/messages/pt-BR.js +8 -4
- package/src/install-wizard.js +8 -8
- package/src/installer.js +13 -6
- package/src/lib/retro/retro-render.js +10 -1
- package/src/lib/retro/retro-sources.js +45 -27
- package/src/lib/retro/verification-reports.js +230 -0
- package/src/parser.js +6 -0
- package/src/preflight-engine.js +12 -12
- package/src/runtime-store.js +13 -9
- package/src/verification/evidence-bundle.js +251 -0
- package/src/verification/ledger-store.js +221 -0
- package/src/verification/path-policy.js +74 -0
- package/src/verification/policy-engine.js +95 -0
- package/src/verification/prompt-package.js +314 -0
- package/src/verification/redaction.js +77 -0
- package/src/verification/report-parser.js +132 -0
- package/src/verification/report-store.js +97 -0
- package/src/verification/result.js +16 -0
- package/src/verification/runners/index.js +319 -0
- package/src/verification/runtime-telemetry.js +144 -0
- package/src/verification/schema.js +276 -0
- package/src/verification/source-discovery.js +153 -0
- package/src/verification-policy.js +398 -0
- package/src/version.js +52 -1
- package/template/.aioson/agents/analyst.md +9 -6
- package/template/.aioson/agents/architect.md +34 -5
- package/template/.aioson/agents/briefing-refiner.md +25 -0
- package/template/.aioson/agents/briefing.md +69 -12
- package/template/.aioson/agents/committer.md +2 -1
- package/template/.aioson/agents/copywriter.md +30 -21
- package/template/.aioson/agents/design-hybrid-forge.md +28 -15
- package/template/.aioson/agents/dev.md +28 -10
- package/template/.aioson/agents/deyvin.md +3 -2
- package/template/.aioson/agents/discover.md +12 -3
- package/template/.aioson/agents/discovery-design-doc.md +7 -2
- package/template/.aioson/agents/genome.md +19 -10
- package/template/.aioson/agents/neo.md +30 -30
- package/template/.aioson/agents/orache.md +20 -11
- package/template/.aioson/agents/orchestrator.md +84 -7
- package/template/.aioson/agents/pm.md +8 -8
- package/template/.aioson/agents/product.md +15 -11
- package/template/.aioson/agents/profiler-enricher.md +20 -11
- package/template/.aioson/agents/profiler-forge.md +20 -11
- package/template/.aioson/agents/profiler-researcher.md +20 -11
- package/template/.aioson/agents/qa.md +87 -17
- package/template/.aioson/agents/scope-check.md +19 -5
- package/template/.aioson/agents/setup.md +12 -1
- package/template/.aioson/agents/sheldon.md +92 -9
- package/template/.aioson/agents/site-forge.md +11 -2
- package/template/.aioson/agents/squad.md +20 -5
- package/template/.aioson/agents/ux-ui.md +4 -2
- package/template/.aioson/agents/validator.md +33 -1
- package/template/.aioson/config/verification.json +61 -0
- package/template/.aioson/config.md +13 -9
- package/template/.aioson/docs/LAYERS.md +2 -2
- package/template/.aioson/docs/autopilot-handoff.md +10 -10
- package/template/.aioson/docs/dev/execution-discipline.md +41 -0
- package/template/.aioson/docs/dev/phase-loop.md +47 -0
- package/template/.aioson/docs/feature-expansion-taxonomy.md +31 -3
- package/template/.aioson/docs/presets/workflow.config.full-merged.json +15 -0
- package/template/.aioson/docs/presets/workflow.config.lean.json +15 -0
- package/template/.aioson/docs/product/prd-contract.md +12 -12
- package/template/.aioson/docs/prototype-contract.md +98 -0
- package/template/.aioson/docs/reference-identity.md +94 -0
- package/template/.aioson/docs/sheldon/harness-contract.md +155 -28
- package/template/.aioson/docs/verification-config.md +82 -0
- package/template/.aioson/docs/verify-artifact-gates.md +91 -0
- package/template/.aioson/docs/workflow-lean-lane.md +129 -0
- package/template/.aioson/skills/design/interface-design/references/intent-and-domain.md +2 -0
- package/template/.aioson/skills/process/aioson-spec-driven/SKILL.md +16 -14
- package/template/.aioson/skills/process/aioson-spec-driven/references/approval-gates.md +2 -2
- package/template/.aioson/skills/process/aioson-spec-driven/references/classification-map.md +4 -4
- package/template/.aioson/skills/process/aioson-spec-driven/references/dev.md +15 -15
- package/template/.aioson/skills/process/briefing-expansion-scout/SKILL.md +25 -3
- package/template/.aioson/skills/process/design-hybrid-forge/SKILL.md +5 -3
- package/template/.aioson/skills/process/design-hybrid-forge/references/external-source-ingestion.md +89 -0
- package/template/.aioson/skills/process/product-scope-expansion/SKILL.md +29 -2
- package/template/.aioson/skills/process/prototype-forge/SKILL.md +98 -0
- package/template/.aioson/skills/process/reference-identity-extract/SKILL.md +164 -0
- package/template/.aioson/skills/process/sheldon-expansion-audit/SKILL.md +23 -2
- package/template/.aioson/skills/static/multi-agent-patterns.md +5 -5
- package/template/CLAUDE.md +15 -11
|
@@ -5,15 +5,15 @@
|
|
|
5
5
|
|
|
6
6
|
## When to use
|
|
7
7
|
|
|
8
|
-
Load this skill when:
|
|
9
|
-
- starting spec work for a new feature or project (any agent)
|
|
10
|
-
- deciding phase depth based on classification (MICRO / SMALL / MEDIUM)
|
|
11
|
-
- preparing a clean handoff to the next agent
|
|
12
|
-
- retaking work after a session break (check `last_checkpoint` + `phase_gates` first)
|
|
13
|
-
|
|
14
|
-
Do not load this skill for `@deyvin` activation-only recovery. A bare `@deyvin` activation is status recovery, not spec work; run Deyvin's fast path and stop before opening this file.
|
|
15
|
-
|
|
16
|
-
Do NOT load the entire `references/` folder. Load only the file matching your current need.
|
|
8
|
+
Load this skill when:
|
|
9
|
+
- starting spec work for a new feature or project (any agent)
|
|
10
|
+
- deciding phase depth based on classification (MICRO / SMALL / MEDIUM)
|
|
11
|
+
- preparing a clean handoff to the next agent
|
|
12
|
+
- retaking work after a session break (check `last_checkpoint` + `phase_gates` first)
|
|
13
|
+
|
|
14
|
+
Do not load this skill for `@deyvin` activation-only recovery. A bare `@deyvin` activation is status recovery, not spec work; run Deyvin's fast path and stop before opening this file.
|
|
15
|
+
|
|
16
|
+
Do NOT load the entire `references/` folder. Load only the file matching your current need.
|
|
17
17
|
|
|
18
18
|
## What phases exist
|
|
19
19
|
|
|
@@ -21,9 +21,9 @@ Do NOT load the entire `references/` folder. Load only the file matching your cu
|
|
|
21
21
|
|-------|----------------|---------------|-------|-------|--------|
|
|
22
22
|
| Specify | `prd*.md` | @product | lite | full | full |
|
|
23
23
|
| Research/Discuss | `sheldon-enrichment*.md` | @sheldon | optional | recommended | required |
|
|
24
|
-
| Requirements | `requirements-{slug}.md` | @analyst | skip | required | required |
|
|
25
|
-
| Alignment Check | `scope-check*.md` | @scope-check | skip |
|
|
26
|
-
| Design | `architecture.md`, `design-doc*.md` | @architect | skip | selective | required |
|
|
24
|
+
| Requirements | `requirements-{slug}.md` | @analyst | skip | required | required |
|
|
25
|
+
| Alignment Check | `scope-check*.md` | @scope-check (detour) | skip | opt-in detour | opt-in detour |
|
|
26
|
+
| Design | `architecture.md`, `design-doc*.md` | @architect | skip | selective | required |
|
|
27
27
|
| Tasks/Plan | `implementation-plan*.md` | @dev | optional | recommended | required |
|
|
28
28
|
| Execute | code, commits, spec updates | @dev, @deyvin | — | — | — |
|
|
29
29
|
| State/Resume | `spec*.md`, runtime | @dev, @deyvin | — | — | — |
|
|
@@ -31,8 +31,10 @@ Do NOT load the entire `references/` folder. Load only the file matching your cu
|
|
|
31
31
|
## Phase depth by classification
|
|
32
32
|
|
|
33
33
|
- **MICRO**: Specify (lite) + Execute. Skip Requirements, Design, Plan unless complexity warrants it.
|
|
34
|
-
- **SMALL**: Specify +
|
|
35
|
-
- **MEDIUM**:
|
|
34
|
+
- **SMALL**: lean by default — Specify (`@product`) + `@sheldon` as the single spec authority (requirements + ACs, design-doc + readiness, plan, and harness contract in one pass) → `@dev` → `@qa`. The heavier multi-agent chain (`@analyst` + selective Design + `@scope-check` detour) is an opt-in escape hatch.
|
|
35
|
+
- **MEDIUM**: `@orchestrator` maestro — `@product → @orchestrator → @dev → @pentester → @qa` (feature). `@orchestrator` is the single spec authority: it fans out to `@analyst` + `@architect` + `@pm` (+ `@ux-ui` when UI-heavy) as sub-agents, then consolidates/verifies/redoes their output into one gated spec package (requirements + spec[Gates A/B/C] + design-doc + readiness + implementation-plan + harness-contract) for `@dev` — the horizontal counterpart to `@sheldon`'s lean lane. `@analyst`, `@architect`, `@pm`, `@discovery-design-doc`, `@scope-check`, and `@ux-ui` are no longer default hops (sub-agents the orchestrator invokes) and remain opt-in detours; `@architect`'s merged mode survives only for the opt-in full-chain detour. The deterministic drift check (`spec:analyze`) runs at the `@dev`/`@qa` done gate, not as a separate scope-check hop. Implementation plan required.
|
|
36
|
+
|
|
37
|
+
**Lean lane (SMALL default; opt-in for MEDIUM):** `@product → @sheldon → @dev → @qa`, where `@sheldon` runs **Lean lane mode (RF-LEAN)** and produces the requirements/ACs, design-doc + readiness, implementation plan, and §2c runtime-gated harness contract in one pass — replacing the analyst/architect/discovery-design-doc/pm hops. SMALL runs this by default; MEDIUM opts in via `.aioson/context/workflow.config.json`. See `.aioson/docs/workflow-lean-lane.md`. The runtime smoke gate is mandatory in both lanes.
|
|
36
38
|
|
|
37
39
|
## References available
|
|
38
40
|
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
|
|
6
6
|
## Gate A — Requirements approval
|
|
7
7
|
|
|
8
|
-
**Before leaving @product / @analyst → @scope-check
|
|
8
|
+
**Before leaving @product / @analyst → @architect or @dev (`@scope-check` only when its opt-in detour is in the sequence)**
|
|
9
9
|
|
|
10
10
|
Required for the gate to pass:
|
|
11
11
|
- [ ] Objectives are clear and unambiguous
|
|
@@ -54,7 +54,7 @@ Required for the gate to pass:
|
|
|
54
54
|
Required for the gate to pass:
|
|
55
55
|
- [ ] Execution sequence is defined
|
|
56
56
|
- [ ] Checkpoints are listed with criteria of done
|
|
57
|
-
- [ ] Context package is listed as a short primary activation package plus phase-triggered loads (which files to read before each phase, and why)
|
|
57
|
+
- [ ] Context package is listed as a short primary activation package plus phase-triggered loads (which files to read before each phase, and why)
|
|
58
58
|
- [ ] Review / QA requirements are noted
|
|
59
59
|
- [ ] Decisions marked "pre-taken" are FINAL — @dev does not re-discuss
|
|
60
60
|
|
|
@@ -7,10 +7,10 @@
|
|
|
7
7
|
| Phase | MICRO (0–1) | SMALL (2–3) | MEDIUM (4–6) |
|
|
8
8
|
|-------|-------------|-------------|--------------|
|
|
9
9
|
| Specify (PRD) | 1 conversation, lite template | Full PRD conversation | Full PRD + `## Specify depth` section |
|
|
10
|
-
| Research (@sheldon) | Skip unless links/external sources provided |
|
|
11
|
-
| Requirements (@analyst) | Skip — go @product → @dev |
|
|
12
|
-
| Design (@architect) | Skip unless auth or external integration |
|
|
13
|
-
| Plan (implementation-plan) | Optional — suggest only if @dev asks | Recommended | Required — with gate approval + verification criteria |
|
|
10
|
+
| Research (@sheldon) | Skip unless links/external sources provided | Required — `@sheldon` is the single spec authority (lean default) | Required — folded into the `@orchestrator` maestro fan-out (consolidated, not a separate `@sheldon` hop) |
|
|
11
|
+
| Requirements (@analyst) | Skip — go @product → @dev | From `@sheldon` in the lean default; `@analyst` only on the full-chain detour | Required — produced via the `@orchestrator` maestro fan-out (`@analyst` sub-agent), with requirement IDs + ACs |
|
|
12
|
+
| Design (@architect) | Skip unless auth or external integration | From `@sheldon` in the lean default; `@architect` only on the full-chain detour | Required — produced via the `@orchestrator` maestro fan-out (`@architect` sub-agent), design-doc + `architecture.md` |
|
|
13
|
+
| Plan (implementation-plan) | Optional — suggest only if @dev asks | Recommended | Required — produced via the `@orchestrator` maestro fan-out (`@pm` sub-agent), with gate approval + verification criteria |
|
|
14
14
|
| Execute (@dev) | Direct from PRD | From requirements + spec | From approved plan only |
|
|
15
15
|
| State (@dev, @deyvin) | Minimal `spec.md` note | `spec-{slug}.md` with phase_gates | Full spec pack — phase_gates + checkpoints + maintenance notes |
|
|
16
16
|
|
|
@@ -2,15 +2,15 @@
|
|
|
2
2
|
|
|
3
3
|
> Router file. Do not duplicate logic from the generic references — load those directly.
|
|
4
4
|
|
|
5
|
-
## Which references to load for implementation
|
|
6
|
-
|
|
7
|
-
### Always load when this skill is active
|
|
8
|
-
|
|
9
|
-
- `maintenance-and-state.md` — use to write and update `spec-{slug}.md` correctly: `phase_gates`, `last_checkpoint`, `pending_review`, and `Key decisions` format
|
|
10
|
-
- `approval-gates.md` — Gate C (plan approval) must be checked before executing a significant batch; Gate D (execution verification) defines done criteria for each phase
|
|
11
|
-
- For SMALL/MEDIUM work, confirm `.aioson/context/design-doc*.md` and `.aioson/context/readiness*.md`
|
|
12
|
-
|
|
13
|
-
### Load when starting a new feature with classification context
|
|
5
|
+
## Which references to load for implementation
|
|
6
|
+
|
|
7
|
+
### Always load when this skill is active
|
|
8
|
+
|
|
9
|
+
- `maintenance-and-state.md` — use to write and update `spec-{slug}.md` correctly: `phase_gates`, `last_checkpoint`, `pending_review`, and `Key decisions` format
|
|
10
|
+
- `approval-gates.md` — Gate C (plan approval) must be checked before executing a significant batch; Gate D (execution verification) defines done criteria for each phase
|
|
11
|
+
- For SMALL/MEDIUM work, confirm `.aioson/context/design-doc*.md` and `.aioson/context/readiness*.md` exist before implementation starts — produced by `@orchestrator` (maestro mode) on MEDIUM, by `@sheldon` on the SMALL lean lane, or by `@architect` (merged mode) / `@discovery-design-doc` when those detours are in the sequence. Load them only when `dev-state.md`, readiness, the plan, or touched paths require their details.
|
|
12
|
+
|
|
13
|
+
### Load when starting a new feature with classification context
|
|
14
14
|
|
|
15
15
|
- `classification-map.md` — use to confirm whether an implementation plan is optional (MICRO), recommended (SMALL), or required (MEDIUM) before starting
|
|
16
16
|
|
|
@@ -35,7 +35,7 @@ At session start, after reading `spec-{slug}.md`:
|
|
|
35
35
|
3. If versions match: proceed normally
|
|
36
36
|
|
|
37
37
|
Additionally, at session start for SMALL/MEDIUM:
|
|
38
|
-
4. Run `aioson ac:test-audit . --feature={slug}` when a feature slug exists, or manually check that each `AC-*` from `requirements-{slug}.md` appears in a corresponding test file
|
|
38
|
+
4. Run `aioson ac:test-audit . --feature={slug}` when a feature slug exists, or manually check that each `AC-*` from `requirements-{slug}.md` appears in a corresponding test file
|
|
39
39
|
5. If coverage is < 50%:
|
|
40
40
|
> "⚠ AC coverage is low ({N}/{M} ACs have tests). Consider writing missing tests before adding new behavior."
|
|
41
41
|
This is informational, not blocking.
|
|
@@ -43,8 +43,8 @@ Additionally, at session start for SMALL/MEDIUM:
|
|
|
43
43
|
## Behavioral notes
|
|
44
44
|
|
|
45
45
|
- `spec-{slug}.md` must be updated at the end of every implementation session — see `maintenance-and-state.md` for format
|
|
46
|
-
- Gate C from `approval-gates.md` means the implementation plan is locked — do not re-discuss pre-taken decisions
|
|
47
|
-
- Treat `dev-state.md` as the primary activation package and `implementation-plan-{slug}.md` as the source for phase-triggered context loads
|
|
48
|
-
- Gate D verification must happen before marking a phase complete — not just "I think it works". The deterministic floor is `aioson ac:test-audit . --feature={slug}` plus the real test command.
|
|
49
|
-
- If `phase_gates.plan` is `pending` and classification is SMALL/MEDIUM, suggest generating an implementation plan before proceeding
|
|
50
|
-
- If `design-doc.md` or `readiness.md` is missing for SMALL/MEDIUM, route to `@discovery-design-doc`
|
|
46
|
+
- Gate C from `approval-gates.md` means the implementation plan is locked — do not re-discuss pre-taken decisions
|
|
47
|
+
- Treat `dev-state.md` as the primary activation package and `implementation-plan-{slug}.md` as the source for phase-triggered context loads
|
|
48
|
+
- Gate D verification must happen before marking a phase complete — not just "I think it works". The deterministic floor is `aioson ac:test-audit . --feature={slug}` plus the real test command.
|
|
49
|
+
- If `phase_gates.plan` is `pending` and classification is SMALL/MEDIUM, suggest generating an implementation plan before proceeding
|
|
50
|
+
- If `design-doc.md` or `readiness.md` is missing for SMALL/MEDIUM, route back to their producer instead of coding first — `@orchestrator` (maestro mode) on MEDIUM, `@sheldon` on the SMALL lean lane, or `@architect` (merged mode) / `@discovery-design-doc` when those detours are active
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: briefing-expansion-scout
|
|
3
|
-
description: "Briefing process skill for early feature expansion scouting. Use in @briefing or @briefing-refiner when an idea may have a rich surface and the user wants to explore whether it is worth pursuing before PRD: tools, workflows, generators, dashboards, editors, collaboration, automation, templates, media outputs, or Trello/CRM/Kanban-like systems."
|
|
3
|
+
description: "Briefing process skill for early feature expansion and operational surface scouting. Use in @briefing or @briefing-refiner when an idea may have a rich surface and the user wants to explore whether it is worth pursuing before PRD: tools, workflows, generators, dashboards, editors, collaboration, automation, templates, media outputs, workspace/board/card systems, operational CRUD, or Trello/CRM/Kanban-like systems."
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
# Briefing Expansion Scout
|
|
@@ -22,11 +22,25 @@ Also read existing expansion artifacts when present:
|
|
|
22
22
|
Run only when one is true:
|
|
23
23
|
|
|
24
24
|
- user asks to explore, expand, evaluate, or pressure-test an idea
|
|
25
|
-
- the idea has a rich surface: workflow, collaboration, editor/builder, generator, dashboard, automation, templates, media output, repeated operational use
|
|
25
|
+
- the idea has a rich surface: workflow, collaboration, editor/builder, generator, dashboard, automation, templates, media output, repeated operational use, workspaces, boards, operational CRUD, or admin/management surfaces
|
|
26
26
|
- briefing-refiner detects that an existing briefing feels too thin for team discussion
|
|
27
27
|
|
|
28
28
|
If the idea is a tiny bugfix or a one-field CRUD addition, skip and say the normal briefing path is enough.
|
|
29
29
|
|
|
30
|
+
## Operational Surface Scout
|
|
31
|
+
|
|
32
|
+
Before writing the artifact, build the Operational Surface Map from `.aioson/docs/feature-expansion-taxonomy.md`.
|
|
33
|
+
|
|
34
|
+
Treat this as discovery pressure, not committed PRD scope:
|
|
35
|
+
|
|
36
|
+
- Name the likely Core objects and their parent/owner relationships.
|
|
37
|
+
- For each Core object, identify the minimum management surface that must exist if the product ships.
|
|
38
|
+
- Flag missing create/edit/delete/archive/restore paths as gaps, not optional polish.
|
|
39
|
+
- For Trello/Kanban/CRM-style ideas, assume workspace/account home, board/list index, main work surface, item detail, empty states, and permission boundaries are relevant unless evidence says otherwise.
|
|
40
|
+
- Keep speculative objects in Recommended MVP / Optional / V2 buckets until the user approves them.
|
|
41
|
+
|
|
42
|
+
If the plan says "Trello-like", "board", "card", "workspace", "pipeline", "CRM", "dashboard", "admin", or "manage X", the scout must explicitly answer: where does the user create/manage each object, and what happens when there are none?
|
|
43
|
+
|
|
30
44
|
## Output
|
|
31
45
|
|
|
32
46
|
Write `.aioson/briefings/{slug}/expansion-scout.md`.
|
|
@@ -44,6 +58,13 @@ Use this structure:
|
|
|
44
58
|
| Lens | Useful possibilities | Why it matters | Risk |
|
|
45
59
|
|---|---|---|---|
|
|
46
60
|
|
|
61
|
+
## Operational Surface Map
|
|
62
|
+
| Object | Parent / owner | Lifecycle states | Required actions | Management surface | Empty / error states | Bucket |
|
|
63
|
+
|---|---|---|---|---|---|---|
|
|
64
|
+
|
|
65
|
+
## Missing Management Surfaces
|
|
66
|
+
- ...
|
|
67
|
+
|
|
47
68
|
## Likely MVP Shape
|
|
48
69
|
- Core:
|
|
49
70
|
- Recommended MVP:
|
|
@@ -67,6 +88,7 @@ Proceed to product definition? yes / no / only after questions.
|
|
|
67
88
|
- Mark assumptions explicitly.
|
|
68
89
|
- Separate attractive ideas from useful ideas.
|
|
69
90
|
- Prefer 3-7 high-signal possibilities over exhaustive lists.
|
|
91
|
+
- Do not let "simple MVP" mean "core object exists but cannot be managed."
|
|
92
|
+
- A Core object without add/edit/list/archive behavior is a blocking gap in the briefing, not a V2 suggestion.
|
|
70
93
|
- Do not approve V2 ideas; park them.
|
|
71
94
|
- Do not modify the PRD.
|
|
72
|
-
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: design-hybrid-forge
|
|
3
|
-
description: Process skill that creates project-local hybrid design skills by fusing exactly two primary AIOSON design
|
|
3
|
+
description: Process skill that creates project-local hybrid design skills by fusing exactly two primary design parents — each a local AIOSON design skill or an external DESIGN.md source (refero.design md-example or similar) — with optional limited modifiers. When activated, guides you through pair selection, identity synthesis, crossover spec, skill generation, preview creation, metadata, and optional promotion.
|
|
4
4
|
activation: |
|
|
5
5
|
You are now running the design-hybrid-forge process. Begin by asking the user for the names of the two primary AIOSON design skills they want to combine, then ask whether they want optional modifiers. Use up to two modifiers by default, or up to three only when the active variation preset or the user explicitly enables advanced mode. Follow the phases described in this skill.
|
|
6
6
|
---
|
|
@@ -88,8 +88,8 @@ Each phase must complete before the next begins. Do not skip phase 2 and 3 — t
|
|
|
88
88
|
## Input contract
|
|
89
89
|
|
|
90
90
|
```
|
|
91
|
-
primary_a: {skill-name} # e.g. "cognitive-core-ui"
|
|
92
|
-
primary_b: {skill-name} # e.g. "glassmorphism-ui"
|
|
91
|
+
primary_a: {skill-name} # local AIOSON skill (e.g. "cognitive-core-ui") OR external:{DESIGN.md} (e.g. "external:linear")
|
|
92
|
+
primary_b: {skill-name} # local AIOSON skill (e.g. "glassmorphism-ui") OR an external DESIGN.md source (refero.design md-example / similar)
|
|
93
93
|
modifiers: {optional 0..2} # e.g. ["bold-editorial-ui"] or ["threejs-spatial"]
|
|
94
94
|
# threejs-spatial is a special modifier: it layers WebGL/Three.js
|
|
95
95
|
# on any primary pair, adding particle/3D scene as visual substrate
|
|
@@ -130,6 +130,7 @@ The hybrid must satisfy ALL of the following:
|
|
|
130
130
|
| `references/output-contract.md` | Running phases 4 and 5 (file generation) |
|
|
131
131
|
| `references/naming-registry.md` | Naming the hybrid and checking for conflicts |
|
|
132
132
|
| `references/quality-gates.md` | Validating the hybrid before shipping (distribution / promotion gates) |
|
|
133
|
+
| `references/external-source-ingestion.md` | Ingesting an external DESIGN.md (refero.design md-example or similar) as a parent or modifier |
|
|
133
134
|
|
|
134
135
|
## Non-negotiable rules
|
|
135
136
|
|
|
@@ -145,3 +146,4 @@ The hybrid must satisfy ALL of the following:
|
|
|
145
146
|
10. Project-local generation goes to `.aioson/installed-skills/` by default. Promotion to core is a separate, explicit step.
|
|
146
147
|
11. `design-hybrid:options` creates a temporary preset in `.aioson/context/design-variation-preset.md`; after successful generation, archive or remove the active preset and preserve the history snapshot.
|
|
147
148
|
12. **`threejs-spatial` modifier rules:** It is NOT a primary parent. It layers WebGL/Three.js as a visual enhancement on the chosen primary pair. It does not own substrate (CSS gradient is still the base), does not own structure (HTML layout is CSS), and does not own tokens. Accent colors from primary parents MUST flow through Three.js parameters. Three.js CDN (no npm install) is the only supported delivery mode.
|
|
149
|
+
13. **External DESIGN.md sources:** A primary parent or modifier may be an external DESIGN.md (refero.design md-example or similar). Normalize it to parent DNA via `references/external-source-ingestion.md`, record its provenance under `sources[]` in `.skill-meta.json`, and keep the anti-clone rule — the hybrid is a new identity: never reproduce the source's brand, logo, trademark, or exact palette 1:1, and never name the hybrid after the source.
|
package/template/.aioson/skills/process/design-hybrid-forge/references/external-source-ingestion.md
ADDED
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
# External Source Ingestion
|
|
2
|
+
|
|
3
|
+
> Load this reference when a primary parent or a modifier is an **external DESIGN.md source**
|
|
4
|
+
> (a refero.design md-example, or a similar portable design spec extracted from a real site)
|
|
5
|
+
> instead of a local AIOSON design skill.
|
|
6
|
+
|
|
7
|
+
The hybrid model is unchanged: **exactly 2 primary parents**, optional modifiers. This reference only
|
|
8
|
+
widens where a parent can come from — a parent may now be local (an AIOSON design skill) or external
|
|
9
|
+
(a DESIGN.md source). Everything downstream (crossover protocol, output contract, quality gates) runs the
|
|
10
|
+
same, operating on the normalized DNA produced here.
|
|
11
|
+
|
|
12
|
+
## What an external DESIGN.md is
|
|
13
|
+
|
|
14
|
+
A DESIGN.md is a portable, prose+token description of a real product's visual system — e.g. refero.design
|
|
15
|
+
publishes curated examples (Apple, Linear, Stripe, Mercury, Superhuman, Raycast, …). It typically carries:
|
|
16
|
+
|
|
17
|
+
- color palette
|
|
18
|
+
- typography
|
|
19
|
+
- spacing / layout rhythm
|
|
20
|
+
- component patterns
|
|
21
|
+
- overall visual tone / feel
|
|
22
|
+
|
|
23
|
+
It is the "system behind the screenshot", meant to be **pasted as context**, not copied pixel for pixel.
|
|
24
|
+
|
|
25
|
+
## Accepted forms
|
|
26
|
+
|
|
27
|
+
Take the source in whichever form the user has:
|
|
28
|
+
|
|
29
|
+
1. **Pasted content** — the user pastes the DESIGN.md text into the conversation.
|
|
30
|
+
2. **Local file** — the user saved it at `.aioson/context/design-sources/{source}.design.md`.
|
|
31
|
+
3. **URL** — the user gives a link (refero.design or similar). Fetch it; if the page is JS-heavy or the
|
|
32
|
+
fetch returns little, ask the user to paste the DESIGN.md text instead. Never block on a flaky fetch.
|
|
33
|
+
|
|
34
|
+
## Normalize to parent DNA
|
|
35
|
+
|
|
36
|
+
Map the source onto the same DNA dimensions the crossover protocol expects from a local parent:
|
|
37
|
+
|
|
38
|
+
| Dimension | Pull from the source |
|
|
39
|
+
|---|---|
|
|
40
|
+
| Substrate / background model | base background, surface model, depth/elevation approach |
|
|
41
|
+
| Structure / layout | layout rhythm, density, grid/spacing scale |
|
|
42
|
+
| Tokens | color palette, typography, spacing, radius, shadow/depth |
|
|
43
|
+
| Components | the component patterns described (buttons, cards, nav, inputs, …) |
|
|
44
|
+
| Motion / feel | transitions, easing, the stated tone/feel |
|
|
45
|
+
| Signature | the one or two moves that make it recognizable |
|
|
46
|
+
|
|
47
|
+
If a dimension is missing in the source, mark it `not provided` — the **other** (local) parent or the
|
|
48
|
+
modifiers fill it. Do not invent brand-specific detail the source did not state.
|
|
49
|
+
|
|
50
|
+
## Eligibility: primary parent vs modifier
|
|
51
|
+
|
|
52
|
+
- **Primary parent** requires at least: a clear substrate/background model **and** a token system
|
|
53
|
+
(color + typography) **and** a handful of components.
|
|
54
|
+
- A source that only yields accent, motion, or typographic flavor is a **modifier**, not a primary parent
|
|
55
|
+
(modifiers never own substrate or structure — same rule as local modifiers).
|
|
56
|
+
|
|
57
|
+
## Provenance (mandatory)
|
|
58
|
+
|
|
59
|
+
Record every external source in `.skill-meta.json` under `sources[]`:
|
|
60
|
+
|
|
61
|
+
```json
|
|
62
|
+
"sources": [
|
|
63
|
+
{ "type": "local", "name": "cognitive-core-ui" },
|
|
64
|
+
{ "type": "external", "name": "linear", "url": "https://styles.refero.design/...",
|
|
65
|
+
"retrieved_at": "{ISO-date}", "license": "unspecified — reference only",
|
|
66
|
+
"note": "refero.design md-example; used as reference, not copied" }
|
|
67
|
+
]
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
refero.design and similar sites publish these as **references, not templates**, with no explicit license.
|
|
71
|
+
Treat them accordingly: use the system, attribute the source in metadata, do not redistribute the source
|
|
72
|
+
file as your own.
|
|
73
|
+
|
|
74
|
+
## Anti-clone (hard)
|
|
75
|
+
|
|
76
|
+
An external source contributes DNA exactly like a local parent — the crossover still synthesizes a
|
|
77
|
+
distinct third identity. Therefore:
|
|
78
|
+
|
|
79
|
+
- Never reproduce the source's brand name, logo, wordmark, or trademarked assets.
|
|
80
|
+
- Never copy the source's exact palette or type ramp 1:1 — the hybrid accent must be a genuine fusion
|
|
81
|
+
(the existing accent rule), not the source's accent.
|
|
82
|
+
- Never name the hybrid after the source brand (no `linear-hybrid`, no `stripe-core`).
|
|
83
|
+
- The hybrid's `## Hybrid DNA` section names the source as a parent and states what it contributed and
|
|
84
|
+
what is new — same explicitness required of local parents.
|
|
85
|
+
|
|
86
|
+
## Hand-off
|
|
87
|
+
|
|
88
|
+
Once normalized and validated, treat the external source as an ordinary parent/modifier and continue with
|
|
89
|
+
`references/crossover-protocol.md` (identity synthesis + crossover spec) exactly as for local parents.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: product-scope-expansion
|
|
3
|
-
description: "Product process skill for controlled scope expansion before writing or updating a PRD. Use in @product when a feature has a rich surface, when a briefing expansion scout exists,
|
|
3
|
+
description: "Product process skill for controlled scope expansion and operational completeness before writing or updating a PRD. Use in @product when a feature has a rich surface, when a briefing expansion scout exists, when the user asks for a more complete MVP, or when the product implies workspaces, boards, cards, pipelines, operational CRUD, admin/management surfaces, or Trello/CRM/Kanban-like behavior without turning the feature into an oversized V2."
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
# Product Scope Expansion
|
|
@@ -27,6 +27,23 @@ When the feature is not obviously rich, ask a short choice:
|
|
|
27
27
|
|
|
28
28
|
When a scout artifact exists or the user explicitly asks for richer product thinking, run the skill without re-asking unless expansion would materially change classification or timeline.
|
|
29
29
|
|
|
30
|
+
## Operational Completeness Gate
|
|
31
|
+
|
|
32
|
+
Before writing or updating the PRD, build the Operational Surface Map from `.aioson/docs/feature-expansion-taxonomy.md`.
|
|
33
|
+
|
|
34
|
+
This is not optional for rich-surface products. A Core object is incomplete until the PRD accounts for:
|
|
35
|
+
|
|
36
|
+
- parent/owner relationship
|
|
37
|
+
- lifecycle states
|
|
38
|
+
- create, list/view, edit, delete/archive, and restore behavior, or an explicit deferral
|
|
39
|
+
- the page, panel, modal, drawer, inline action, settings screen, or command where the user manages it
|
|
40
|
+
- first-use empty state and validation/error state
|
|
41
|
+
- basic role/permission boundary when ownership or collaboration exists
|
|
42
|
+
|
|
43
|
+
If any Core object lacks a management surface or add/edit path, do not finalize the PRD as-is. Either ask one owner-level decision, choose the smallest defensible default, or put the missing behavior in `## Open questions` and keep it out of "ready for dev" handoff.
|
|
44
|
+
|
|
45
|
+
For Trello/Kanban/CRM/workspace-like products, treat workspace/account home, board/pipeline index, main work surface, item detail, and empty/error surfaces as expected Core surfaces unless explicitly excluded.
|
|
46
|
+
|
|
30
47
|
## Output
|
|
31
48
|
|
|
32
49
|
Write `.aioson/context/features/{slug}/scope-expansion.md`.
|
|
@@ -51,6 +68,15 @@ Use this structure:
|
|
|
51
68
|
| V2 / Later | ... | ... | yes, future |
|
|
52
69
|
| Cut List | ... | ... | no |
|
|
53
70
|
|
|
71
|
+
## Operational Surface Map
|
|
72
|
+
| Object | Parent / owner | Lifecycle states | Required actions | Management surface | Empty / error states | PRD destination |
|
|
73
|
+
|---|---|---|---|---|---|---|
|
|
74
|
+
|
|
75
|
+
## Core Capability Closure
|
|
76
|
+
- Complete:
|
|
77
|
+
- Missing / needs decision:
|
|
78
|
+
- Explicitly deferred:
|
|
79
|
+
|
|
54
80
|
## Recommended Product Shape
|
|
55
81
|
- Include in PRD:
|
|
56
82
|
- Keep as optional:
|
|
@@ -71,4 +97,5 @@ Use this structure:
|
|
|
71
97
|
- Do not silently include Optional V1, Delight, or V2 items.
|
|
72
98
|
- If expansion raises classification, surface that before finalizing.
|
|
73
99
|
- Preserve "small project, small solution": a rich feature can still have a small first release.
|
|
74
|
-
|
|
100
|
+
- Core operational surfaces must appear in `## MVP scope`, `## User flows`, `## Out of scope`, or `## Open questions`; never leave them only in `scope-expansion.md`.
|
|
101
|
+
- Do not route to implementation while a Core object's create/manage flow is undefined.
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: prototype-forge
|
|
3
|
+
description: "Process skill for generating a clickable, self-contained HTML app-shell prototype from an operational surface map. Use in @briefing-refiner (optional visual refinement) when a rich-surface product — workspaces, boards, cards, pipelines, CRM/Kanban, dashboards, editors/builders, admin/management surfaces, repeated-use CRUD — needs its screens, navigation, and CRUD interactions validated before the PRD. Delegates all visual language to the selected design_skill; owns structure, behavior, and state."
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Prototype Forge
|
|
7
|
+
|
|
8
|
+
Generate a clickable, self-contained HTML **app-shell prototype** that materializes a product's
|
|
9
|
+
operational surface map — every screen, navigation path, and CRUD interaction — so completeness and
|
|
10
|
+
interaction are validated *visually* before the PRD, not discovered later as gaps in a broken first build.
|
|
11
|
+
|
|
12
|
+
This is an **app** prototype skill. It is not the landing-page guide
|
|
13
|
+
(`.aioson/skills/static/static-html-patterns.md`, which `skip_if: app dashboard, admin panel`).
|
|
14
|
+
|
|
15
|
+
## When to run
|
|
16
|
+
|
|
17
|
+
Optional and user-invoked, inside `@briefing-refiner`. Run when a rich-surface product would benefit
|
|
18
|
+
from seeing its screens and interactions before committing scope: workspaces, boards, cards, pipelines,
|
|
19
|
+
CRM/Kanban, dashboards, editors/builders, admin/management surfaces, repeated-use CRUD.
|
|
20
|
+
|
|
21
|
+
Skip for tiny single-screen features, one-field CRUD, or pure content/marketing pages.
|
|
22
|
+
|
|
23
|
+
## Division of labor (do not blur)
|
|
24
|
+
|
|
25
|
+
- **prototype-forge owns** structure + behavior + state: which screens exist, navigation/routing,
|
|
26
|
+
seeded mock data, client-side CRUD, and the empty/loading/error/permission state matrix.
|
|
27
|
+
- **The selected `design_skill` owns visuals**: tokens, component anatomy, page composition, motion.
|
|
28
|
+
Read `design_skill` from `.aioson/context/project.context.md` and compose from that skill's
|
|
29
|
+
components. Never invent a second visual system. (e.g. `cognitive-core-ui` already ships `modal`,
|
|
30
|
+
`table`, `list-detail`, `settings`, and a `CRM` dashboard preset — compose from those.)
|
|
31
|
+
|
|
32
|
+
The "add card doesn't work" and "no board-management screen" failures live in **this** skill's layer,
|
|
33
|
+
not in the design skill's.
|
|
34
|
+
|
|
35
|
+
## Inputs (read in this order)
|
|
36
|
+
|
|
37
|
+
1. The operational surface map: `.aioson/briefings/{slug}/solution-options.md` (the chosen shape) or
|
|
38
|
+
`.aioson/briefings/{slug}/expansion-scout.md`, falling back to the Operational Surface Map in
|
|
39
|
+
`.aioson/docs/feature-expansion-taxonomy.md`.
|
|
40
|
+
2. `.aioson/briefings/{slug}/briefings.md` for problem, users, and the chosen direction.
|
|
41
|
+
3. `design_skill` from `.aioson/context/project.context.md`; load that skill before any layout.
|
|
42
|
+
4. When `design_skill: interface-design`, resolve an `identity.md` — `.aioson/briefings/{slug}/identity.md`,
|
|
43
|
+
else `.aioson/context/identity.md`. If one exists it is the visual source of truth the engine **applies**:
|
|
44
|
+
tokens come from its `## Palette` / `## Typography` / `## Spacing & layout` / `## Radius & depth` /
|
|
45
|
+
`## Motion` sections, and its `## Component structure notes` augment the surface map (input 1) with
|
|
46
|
+
per-component regions, anatomy, and states. `identity.md` overlays the one engine — it is **not** a
|
|
47
|
+
second visual system. If none exists, `interface-design` runs intent-first.
|
|
48
|
+
|
|
49
|
+
If no operational surface map exists, build one first — it is the screen inventory, and without it the
|
|
50
|
+
prototype cannot be complete.
|
|
51
|
+
|
|
52
|
+
## Build contract (enforceable)
|
|
53
|
+
|
|
54
|
+
1. **Single self-contained file** — one `prototype.html`, inline CSS + JS, no build, no external
|
|
55
|
+
services, opens in a browser. (Mirrors `review.html`.)
|
|
56
|
+
2. **Seeded realistic mock state** — plausible data for every Core object (e.g. 2-3 workspaces, a few
|
|
57
|
+
boards, several cards), never lorem ipsum. Enough to look real *and* to toggle the empty state. When
|
|
58
|
+
the product is authenticated, seed the logged-in app chrome too: a working account/user menu
|
|
59
|
+
(profile, settings, switch account, sign out) and any always-present chrome (search, notifications)
|
|
60
|
+
the product implies — a bare avatar with no menu is incomplete.
|
|
61
|
+
3. **Navigational completeness** — every Core object in the surface map gets a reachable screen via
|
|
62
|
+
in-file routing (hash routes/tabs): a list/index surface, a detail surface, and its management
|
|
63
|
+
surface (page, panel, modal, drawer, or settings screen). A surface-map object with no reachable
|
|
64
|
+
screen is a **blocking gap**, not a backlog item.
|
|
65
|
+
4. **Real client-side CRUD** — create/edit/delete/archive/restore mutate in-memory state and re-render.
|
|
66
|
+
"Add card"-class actions must actually add and persist for the session. Use modals/drawers/toasts
|
|
67
|
+
for feedback. A button that does nothing is a failure. Never use native `alert()`/`confirm()`/
|
|
68
|
+
`prompt()` — every create/edit/delete and every confirmation is an in-system modal, drawer, or
|
|
69
|
+
inline form styled by the `design_skill` (a destructive confirm is a styled dialog, not `confirm()`).
|
|
70
|
+
Native browser dialogs break visual fidelity and leave @dev with no spec for that surface.
|
|
71
|
+
5. **State matrix** — empty, loading, error, populated, and permission-denied are each renderable and
|
|
72
|
+
toggleable, not only the happy path.
|
|
73
|
+
6. **Visual fidelity** — all look-and-feel comes from the `design_skill`; honor its quality and
|
|
74
|
+
stability gates (tokens first, no nested cards, responsive grid constraints, prefers-reduced-motion).
|
|
75
|
+
7. **Prototype as reference** — it is the downstream development reference. Record its lock status in
|
|
76
|
+
the manifest (`draft` until @product/@sheldon freeze scope, then re-synced and locked).
|
|
77
|
+
|
|
78
|
+
## Output
|
|
79
|
+
|
|
80
|
+
Write to `.aioson/briefings/{slug}/`:
|
|
81
|
+
|
|
82
|
+
- `prototype.html` — the clickable app-shell.
|
|
83
|
+
- `prototype-manifest.md` — the screen inventory (one row per Core object: screens + management
|
|
84
|
+
surface); a `## Core interactions` section listing every demonstrated interaction as a backtick token,
|
|
85
|
+
one per line (e.g. `` - `add card` — adds a card to a list ``), so `aioson prototype:check` can verify each
|
|
86
|
+
one is later echoed by an acceptance criterion; the `design_skill` used, an explicit
|
|
87
|
+
"mock only — refresh resets, no backend" note, and lock status (`draft` / `locked-at: {ref}`).
|
|
88
|
+
|
|
89
|
+
## Completeness gate (before handing back)
|
|
90
|
+
|
|
91
|
+
- Every Core object is reachable **and** manageable (create/list/edit/archive/restore, or an explicit defer).
|
|
92
|
+
- Every Core action named in the surface map works against mock state and re-renders.
|
|
93
|
+
- Empty and error states are visible, not implied.
|
|
94
|
+
- No action falls back to a native browser dialog; every create/edit/delete/confirm is an in-system surface.
|
|
95
|
+
- When the product is authenticated, the account/user menu is present and functional, not a dead avatar.
|
|
96
|
+
- The visual is faithful to the `design_skill`, not generic.
|
|
97
|
+
- If any Core object cannot be managed in the prototype, report it as a blocking gap — never hand back a
|
|
98
|
+
prototype that looks complete but cannot manage its own objects.
|
|
@@ -0,0 +1,164 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: reference-identity-extract
|
|
3
|
+
description: "Process skill that distills user-provided reference images — a brand/visual-identity set and an optional component/structure set — into a single text identity.md (token system + per-component structure notes) ONCE, so the build consumes text, not images. Use inside @briefing-refiner (or @setup for project-wide brand) when the user wants a specific, premium look driven by their own references instead of a fixed preset. Pairs with the interface-design engine: identity.md is the extracted-from-references form of its system.md. Owns extraction + the identity record; never owns the build."
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Reference Identity Extract
|
|
7
|
+
|
|
8
|
+
Turn **reference images** into a **text identity record** that the `interface-design` engine
|
|
9
|
+
applies. The user drops images — their brand, a product they admire, a screen they want — and this
|
|
10
|
+
skill reads them **once** (vision) and writes `identity.md`: real tokens (palette, type, spacing,
|
|
11
|
+
depth, motion, signature moves) plus per-component **structure notes**. Every later build reads the
|
|
12
|
+
**text**, never the images.
|
|
13
|
+
|
|
14
|
+
Why text, not images on every build: the build then runs on any harness (a vision-less harness still
|
|
15
|
+
reads the record), the user can **correct** the extracted palette, the record is **gateable**
|
|
16
|
+
(`verify:artifact --kind=identity`), and two extractions can't silently disagree — the frozen text is
|
|
17
|
+
the source of truth.
|
|
18
|
+
|
|
19
|
+
This generalizes what AIOSON already does when it extracts a real website into a token spec: same
|
|
20
|
+
idea, but the **source** is images and the **lifetime** is per-briefing (or per-project brand), not a
|
|
21
|
+
frozen preset.
|
|
22
|
+
|
|
23
|
+
## Division of labor (do not blur)
|
|
24
|
+
|
|
25
|
+
- **This skill owns** extraction + the `identity.md` record: tokens from identity images, structure
|
|
26
|
+
notes from component/screen images.
|
|
27
|
+
- **`interface-design` owns the build**: it *applies* `identity.md` as its identity source-of-truth.
|
|
28
|
+
`identity.md` is an INPUT that parameterizes the one engine — never a second design skill.
|
|
29
|
+
- **`prototype-forge` owns** screens/navigation/CRUD/state; it reads `identity.md`'s
|
|
30
|
+
`## Component structure notes` to seed its surface map.
|
|
31
|
+
|
|
32
|
+
## Two image roles (keep them separate)
|
|
33
|
+
|
|
34
|
+
| role | folder | feeds |
|
|
35
|
+
|---|---|---|
|
|
36
|
+
| **Visual identity** (brand: color, type, texture, feel) | `references/identity/` | the token sections |
|
|
37
|
+
| **Component / structure** (a board, a table, a screen) | `references/structure/` | `## Component structure notes` → the surface map |
|
|
38
|
+
|
|
39
|
+
Synthesis = **apply the identity to the structure**. A component image contributes layout/structure
|
|
40
|
+
*only* — its own colors/fonts are ignored; the look comes from the identity images.
|
|
41
|
+
|
|
42
|
+
## Scope & paths (resolve before writing)
|
|
43
|
+
|
|
44
|
+
- **Per-briefing (default):** record `.aioson/briefings/{slug}/identity.md`; images in
|
|
45
|
+
`.aioson/briefings/{slug}/references/identity/` and `.../references/structure/`.
|
|
46
|
+
- **Project brand:** record `.aioson/context/identity.md`; images in
|
|
47
|
+
`.aioson/context/brand-references/identity/` and `.../brand-references/structure/`.
|
|
48
|
+
|
|
49
|
+
Read order used by every consumer (`@ux-ui`, `prototype-forge`): per-briefing → project brand → none.
|
|
50
|
+
The **text record is canonical and committed**; the images are raw source and may be `.gitignore`d —
|
|
51
|
+
extraction is one-time, so the build never needs them again.
|
|
52
|
+
|
|
53
|
+
## Inputs (read in this order)
|
|
54
|
+
|
|
55
|
+
1. Scope + target path (briefing `{slug}`, or `brand`).
|
|
56
|
+
2. Every file under `references/identity/` and `references/structure/` for that scope.
|
|
57
|
+
3. `.aioson/context/project.context.md` for `design_skill` / domain (and to confirm interface-design).
|
|
58
|
+
|
|
59
|
+
## Build contract (enforceable)
|
|
60
|
+
|
|
61
|
+
1. **One vision pass, then text only.** Read each image once. Identity images →
|
|
62
|
+
palette/type/spacing/radius/depth/motion/signature/anti-goals. Structure images → one
|
|
63
|
+
`### {component}` block each (regions, anatomy, state matrix, interactions). After this pass the
|
|
64
|
+
build never touches images again.
|
|
65
|
+
2. **Real values, never placeholders.** Emit concrete hex, named font stacks, numeric scales. Do not
|
|
66
|
+
leave `#RRGGBB`, `{hex}`, `{token}`, `TODO`, `Lorem ipsum`, or any unfilled token — the gate
|
|
67
|
+
rejects them.
|
|
68
|
+
3. **Map to interface-design token families.** Palette → foreground/background/border/brand/semantic;
|
|
69
|
+
type → display/body/mono + scale; spacing/radius/depth → the engine's families. Pick **exactly one**
|
|
70
|
+
depth strategy (`borders-only` | `subtle-shadows` | `layered-surfaces`).
|
|
71
|
+
4. **Anti-sameness anchors are mandatory.** `## Design pillars` (2–3) and `## Signature moves` (1–3,
|
|
72
|
+
something that could only belong to THIS product) must be present and specific — they are what
|
|
73
|
+
defeat the generic look.
|
|
74
|
+
5. **Structure notes drive the surface map.** Each `### {component}` lists regions, anatomy, the
|
|
75
|
+
empty/loading/error/populated/permission states, and the interactions. If no structure images were
|
|
76
|
+
given, write `None — identity-only` under `## Component structure notes`.
|
|
77
|
+
6. **Self-gate before handing back.** Run
|
|
78
|
+
`aioson verify:artifact . --kind=identity --file=<path> --advisory 2>/dev/null || true` and fix any
|
|
79
|
+
reported gap before returning.
|
|
80
|
+
7. **Generic provenance.** `## Provenance` describes the sources by type only (e.g. "3 identity
|
|
81
|
+
images, 1 board screenshot"). Never name an external product, brand, site, or tool in any field.
|
|
82
|
+
|
|
83
|
+
## identity.md schema (write exactly these headers)
|
|
84
|
+
|
|
85
|
+
```markdown
|
|
86
|
+
---
|
|
87
|
+
kind: identity
|
|
88
|
+
scope: briefing # briefing | brand
|
|
89
|
+
slug: {slug} # briefing slug, or "project" for brand scope
|
|
90
|
+
source: references # references (from images) | intent (image-less fallback)
|
|
91
|
+
generated_by: reference-identity-extract
|
|
92
|
+
generated_at: {YYYY-MM-DD}
|
|
93
|
+
confidence: high # high | medium | low — how well the images pinned each token
|
|
94
|
+
theme: light-dark # light | dark | light-dark
|
|
95
|
+
base_unit: 4px
|
|
96
|
+
---
|
|
97
|
+
|
|
98
|
+
## Design pillars
|
|
99
|
+
- <2–3 specific pillars; the primary anti-sameness anchor>
|
|
100
|
+
|
|
101
|
+
## Palette
|
|
102
|
+
- foreground/primary: #RRGGBB ← real hex only
|
|
103
|
+
- foreground/secondary: #RRGGBB
|
|
104
|
+
- background/base: #RRGGBB
|
|
105
|
+
- background/surface: #RRGGBB
|
|
106
|
+
- border/default: rgba(…)
|
|
107
|
+
- brand/primary: #RRGGBB
|
|
108
|
+
- semantic/success | warning | danger | info: #…, #…, #…, #…
|
|
109
|
+
|
|
110
|
+
## Typography
|
|
111
|
+
- display / body / mono: "<family>", <fallback stack>
|
|
112
|
+
- scale: page <px/weight>, section <px/weight>, body <px/weight/line-height>, meta <px/weight>
|
|
113
|
+
|
|
114
|
+
## Spacing & layout
|
|
115
|
+
- base: 4px — scale: 4, 8, 12, 16, 24, 32
|
|
116
|
+
- breakpoints: mobile <px> / tablet <px> / desktop <px>
|
|
117
|
+
- grid: <cols>-col, gutter <px>
|
|
118
|
+
|
|
119
|
+
## Radius & depth
|
|
120
|
+
- radius ladder: sharp <px> / medium <px> / large <px>
|
|
121
|
+
- depth strategy: borders-only ← exactly ONE of borders-only | subtle-shadows | layered-surfaces
|
|
122
|
+
|
|
123
|
+
## Motion
|
|
124
|
+
- posture: <duration/easing>; entrances <description>
|
|
125
|
+
- reduced-motion: honor prefers-reduced-motion
|
|
126
|
+
|
|
127
|
+
## Signature moves
|
|
128
|
+
- <1–3 moves that could only belong to THIS product; second anti-sameness anchor>
|
|
129
|
+
|
|
130
|
+
## Anti-goals
|
|
131
|
+
- <3 generic defaults this identity explicitly replaces>
|
|
132
|
+
|
|
133
|
+
## Component structure notes
|
|
134
|
+
<one ### block per structure image, or "None — identity-only">
|
|
135
|
+
|
|
136
|
+
### Board
|
|
137
|
+
- regions: <…>
|
|
138
|
+
- anatomy: <…>
|
|
139
|
+
- states: empty, loading, error, populated, permission-denied
|
|
140
|
+
- interactions: <add / move / edit / archive / …>
|
|
141
|
+
|
|
142
|
+
## Provenance
|
|
143
|
+
- Generic only. e.g. "identity references: 3 images; structure references: 1 board screenshot."
|
|
144
|
+
```
|
|
145
|
+
|
|
146
|
+
## Image-less fallback (no references given)
|
|
147
|
+
|
|
148
|
+
Do **not** fabricate a palette. Either:
|
|
149
|
+
- **(default)** write nothing and let `interface-design` run its own Phase 0 (intent-first) — its
|
|
150
|
+
domain palette + signature move already defeat sameness; or
|
|
151
|
+
- if the user wants a **persisted** system anyway, run interface-design Phase 0 yourself and write
|
|
152
|
+
`identity.md` with `source: intent` and the same schema (still no placeholders).
|
|
153
|
+
|
|
154
|
+
## Cross-harness note
|
|
155
|
+
|
|
156
|
+
A vision-less harness cannot run the extraction pass. There, either run extraction once on a
|
|
157
|
+
vision-capable harness, or hand-author `identity.md` from the schema above — the gate then proves it
|
|
158
|
+
is complete. The build is identical in both cases because it only ever reads the text.
|
|
159
|
+
|
|
160
|
+
## Output
|
|
161
|
+
|
|
162
|
+
- The `identity.md` record at the resolved path (briefing or project scope).
|
|
163
|
+
- Nothing else. This skill never builds UI, never edits `briefings.md`, and never becomes canonical
|
|
164
|
+
feedback — it produces the identity record the build consumes.
|