@jaimevalasek/aioson 1.33.1 → 1.37.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 +76 -0
- package/docs/en/1-understand/ecosystem-map.md +45 -29
- package/docs/en/1-understand/glossary.md +6 -6
- 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 +33 -39
- package/docs/en/2-start/initial-decisions.md +22 -19
- 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 +13 -3
- package/docs/en/3-recipes/full-feature-with-sheldon.md +329 -338
- package/docs/en/4-agents/README.md +33 -16
- package/docs/en/4-agents/briefing-refiner.md +146 -0
- 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/README.md +1 -0
- package/docs/en/5-reference/autopilot-handoff.md +286 -0
- package/docs/en/5-reference/cli-reference.md +57 -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 +5 -5
- package/docs/pt/1-entender/mapa-do-ecossistema.md +33 -22
- package/docs/pt/2-comecar/decisoes-iniciais.md +20 -18
- package/docs/pt/2-comecar/primeiro-projeto.md +2 -2
- 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/da-ideia-ao-prd-via-briefing.md +8 -1
- package/docs/pt/3-receitas/feature-completa-com-sheldon.md +291 -338
- package/docs/pt/4-agentes/README.md +13 -11
- package/docs/pt/4-agentes/analyst.md +9 -5
- package/docs/pt/4-agentes/architect.md +9 -5
- package/docs/pt/4-agentes/briefing-refiner.md +64 -40
- package/docs/pt/4-agentes/briefing.md +6 -1
- package/docs/pt/4-agentes/dev.md +38 -8
- package/docs/pt/4-agentes/deyvin.md +4 -0
- package/docs/pt/4-agentes/discover.md +4 -0
- package/docs/pt/4-agentes/discovery-design-doc.md +25 -23
- package/docs/pt/4-agentes/neo.md +4 -0
- package/docs/pt/4-agentes/orache.md +6 -0
- package/docs/pt/4-agentes/orchestrator.md +176 -118
- package/docs/pt/4-agentes/pentester.md +11 -5
- package/docs/pt/4-agentes/pm.md +15 -7
- package/docs/pt/4-agentes/product.md +19 -1
- package/docs/pt/4-agentes/qa.md +10 -2
- package/docs/pt/4-agentes/setup.md +3 -1
- package/docs/pt/4-agentes/sheldon.md +178 -99
- package/docs/pt/4-agentes/tester.md +6 -0
- package/docs/pt/4-agentes/ux-ui.md +9 -5
- package/docs/pt/5-referencia/README.md +1 -1
- package/docs/pt/5-referencia/agent-chain-continuity.md +14 -5
- package/docs/pt/5-referencia/autopilot-handoff.md +191 -74
- package/docs/pt/5-referencia/comandos-cli.md +16 -7
- 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/5-referencia/skills.md +2 -0
- package/docs/pt/README.md +4 -4
- package/docs/pt/agentes.md +50 -50
- package/package.json +2 -2
- package/src/agents.js +1 -1
- package/src/artifact-kinds.js +111 -0
- package/src/autopilot-signal.js +71 -0
- package/src/cli.js +112 -81
- package/src/commands/agent-epilogue.js +251 -186
- package/src/commands/agents.js +122 -50
- package/src/commands/audit-code.js +344 -0
- package/src/commands/briefing.js +337 -1
- package/src/commands/classify.js +389 -389
- package/src/commands/feature-close.js +122 -4
- package/src/commands/harness-check.js +259 -175
- package/src/commands/live.js +71 -11
- 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/update.js +5 -1
- package/src/commands/verification-plan.js +143 -0
- package/src/commands/verify-artifact.js +593 -0
- package/src/commands/workflow-execute.js +434 -316
- package/src/commands/workflow-next.js +193 -20
- package/src/commands/workflow-plan.js +5 -5
- package/src/constants.js +2 -0
- package/src/doctor.js +4 -2
- 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 +10 -5
- package/src/i18n/messages/es.js +10 -5
- package/src/i18n/messages/fr.js +10 -5
- package/src/i18n/messages/pt-BR.js +10 -5
- package/src/install-wizard.js +8 -8
- package/src/installer.js +13 -6
- package/src/lib/briefing-refiner/apply-feedback.js +18 -4
- package/src/lib/briefing-refiner/feedback-schema.js +73 -4
- package/src/lib/briefing-refiner/refinement-report.js +11 -0
- package/src/lib/briefing-refiner/review-html.js +388 -68
- package/src/parser.js +12 -0
- package/src/preflight-engine.js +12 -12
- package/src/verification/policy-engine.js +95 -95
- package/src/verification-policy.js +398 -0
- package/src/version.js +52 -1
- package/template/.aioson/agents/architect.md +34 -5
- package/template/.aioson/agents/briefing-refiner.md +91 -48
- package/template/.aioson/agents/briefing.md +4 -0
- package/template/.aioson/agents/committer.md +2 -1
- package/template/.aioson/agents/copywriter.md +30 -21
- package/template/.aioson/agents/design-hybrid-forge.md +10 -1
- package/template/.aioson/agents/dev.md +35 -23
- package/template/.aioson/agents/deyvin.md +4 -0
- package/template/.aioson/agents/discover.md +16 -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 +34 -30
- package/template/.aioson/agents/orache.md +24 -11
- package/template/.aioson/agents/orchestrator.md +100 -7
- package/template/.aioson/agents/pentester.md +4 -0
- package/template/.aioson/agents/pm.md +8 -8
- package/template/.aioson/agents/product.md +25 -1
- 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 +96 -31
- package/template/.aioson/agents/setup.md +12 -1
- package/template/.aioson/agents/sheldon.md +103 -13
- package/template/.aioson/agents/site-forge.md +11 -2
- package/template/.aioson/agents/squad.md +20 -5
- package/template/.aioson/agents/tester.md +4 -0
- package/template/.aioson/agents/ux-ui.md +2 -1
- 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/agent-help.md +126 -0
- package/template/.aioson/docs/autopilot-handoff.md +30 -20
- package/template/.aioson/docs/dev/execution-discipline.md +41 -0
- package/template/.aioson/docs/dev/phase-loop.md +50 -0
- package/template/.aioson/docs/play/llm-data-and-bindings.md +70 -7
- 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 +21 -4
- 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/SKILL.md +17 -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/prototype-forge/SKILL.md +6 -0
- package/template/.aioson/skills/process/reference-identity-extract/SKILL.md +164 -0
- package/template/.aioson/skills/static/multi-agent-patterns.md +5 -5
- package/template/AGENTS.md +36 -36
- package/template/CLAUDE.md +15 -11
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: "Artifact done-gates (verify:artifact) — build-free, model-agnostic completeness/integrity checks for the non-code artifacts the specialized agents produce before they register done."
|
|
3
|
+
agents: [setup, genome, profiler-researcher, profiler-enricher, profiler-forge, discover, orache, design-hybrid-forge, site-forge, copywriter, committer, squad]
|
|
4
|
+
task_types: [verification, configuration]
|
|
5
|
+
triggers: [verify:artifact, artifact gate, done gate, artifact done-gate, placeholder gate, kind=]
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# Artifact done-gates — `aioson verify:artifact`
|
|
9
|
+
|
|
10
|
+
The periphery analog of the code pipeline's `SG-*` / `RG-*` harness gates: a
|
|
11
|
+
build-free **"done = proven, not asserted"** check for the **non-code artifacts**
|
|
12
|
+
the specialized agents produce. Where `audit:code` scans code quality and the
|
|
13
|
+
harness contract gates a feature, `verify:artifact` proves a produced artifact is
|
|
14
|
+
complete and well-formed before the agent calls `agent:done`.
|
|
15
|
+
|
|
16
|
+
The failure mode it closes is the one the runtime smoke gate closed for code: an
|
|
17
|
+
agent self-declaring done with no proof — a `project.context.md` with an invalid
|
|
18
|
+
enum, a genome missing its manifest, a research report with an unfilled
|
|
19
|
+
`[Full Name]`, a generated site that never built.
|
|
20
|
+
|
|
21
|
+
```bash
|
|
22
|
+
aioson verify:artifact . --kind=<kind> [--slug=<slug>] [--file=<path>] [--advisory] [--strict]
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
A `kind` routes to either an **existing validator** or a declarative **SG-\***
|
|
26
|
+
**ruleset** over the shared static-criteria engine — pure `fs` + `RegExp` +
|
|
27
|
+
`JSON.parse` / `node --check` (no shell, no build, cross-platform by
|
|
28
|
+
construction). Adding a gate to a new agent is a registry entry plus one
|
|
29
|
+
done-gate line, not a bespoke implementation.
|
|
30
|
+
|
|
31
|
+
| kind | agent | backed by | default |
|
|
32
|
+
|---|---|---|---|
|
|
33
|
+
| `project-context` | `@setup` | `validateProjectContextFile` (required fields, enums, frontmatter parse) | blocking |
|
|
34
|
+
| `genome` | `@genome`, `@profiler-forge` | `genome:doctor` (manifest/references/anchor/Track-4.3 quality) | blocking |
|
|
35
|
+
| `research-report` | `@profiler-researcher` | ruleset (frontmatter + inventory/extracted/gaps sections, no template token) | blocking |
|
|
36
|
+
| `enriched-profile` | `@profiler-enricher` | ruleset (exec summary / psychometric / operational method / trait interactions) | blocking |
|
|
37
|
+
| `bootstrap` | `@discover` | ruleset (all 4 cold-start files exist with real frontmatter, no placeholder) | blocking |
|
|
38
|
+
| `orache-report` | `@orache` | ruleset, resolved via `--file` (7 dimensions + impact + source) | blocking |
|
|
39
|
+
| `hybrid-skill` | `@design-hybrid-forge` | ruleset (`.skill-meta.json` parses + sources, SKILL.md, both previews) | blocking |
|
|
40
|
+
| `site` | `@site-forge` | static floor + `npm run build` on the real stack | blocking |
|
|
41
|
+
| `copy` | `@copywriter` | ruleset (placeholder / Lorem / TODO / unfilled-token scan) | advisory |
|
|
42
|
+
| `commit-message` | `@committer` | subject heuristics (`--file` draft or HEAD commit) | advisory |
|
|
43
|
+
|
|
44
|
+
## Contract
|
|
45
|
+
|
|
46
|
+
- Every gate returns a uniform `{ ok, issues[], warnings[] }`, persists
|
|
47
|
+
`.aioson/context/verify-artifact-<kind>.json`, and sets **exit 1** on a hard
|
|
48
|
+
failure — **unless `--advisory`** (warn-only, always exit 0). `--strict`
|
|
49
|
+
promotes warnings to blocking issues.
|
|
50
|
+
- `--slug` resolves a slug-keyed artifact path; `--file` resolves a
|
|
51
|
+
caller-known / date-stamped path. A kind that needs one fails with a clean
|
|
52
|
+
usage error instead of probing a `null/` path.
|
|
53
|
+
- `--no-build` (kind=`site`) runs the static floor only — a fast mid-work
|
|
54
|
+
re-check that skips the `npm run build` runtime floor.
|
|
55
|
+
|
|
56
|
+
## Auto-fire at `agent:done`
|
|
57
|
+
|
|
58
|
+
These gates do not depend on each agent remembering to run its `## Done gate`
|
|
59
|
+
line. `aioson agent:done` resolves the calling agent to its artifact kind
|
|
60
|
+
(`src/artifact-kinds.js`) and runs the matching `verify:artifact --advisory`
|
|
61
|
+
itself — so the check fires at the one call every agent already makes at session
|
|
62
|
+
end (and rides on `agent:epilogue`, which wraps `agent:done`):
|
|
63
|
+
|
|
64
|
+
- **Self-resolving kinds** (`setup`→`project-context`, `discover`→`bootstrap`,
|
|
65
|
+
`committer`→`commit-message`) run with no extra input — fully deterministic,
|
|
66
|
+
no markdown dependency.
|
|
67
|
+
- **Locator-keyed kinds** run when the agent threads its locator into that same
|
|
68
|
+
call (`--slug` / `--file` / `--dir`, which the agent's Observability line now
|
|
69
|
+
carries); without it, `agent:done` surfaces a one-line hint naming the exact
|
|
70
|
+
command, so the gate is visible rather than silently skipped.
|
|
71
|
+
|
|
72
|
+
Always advisory at this layer: a failed or skipped check is surfaced but never
|
|
73
|
+
flips the session-end result. The explicit per-agent `## Done gate` stays as the
|
|
74
|
+
agent-facing "check and FIX" step; this is the deterministic engine net beneath
|
|
75
|
+
it — the periphery analog of how `audit:code` auto-fires in `agent:epilogue`.
|
|
76
|
+
|
|
77
|
+
## `@squad` is gated separately
|
|
78
|
+
|
|
79
|
+
A squad ships through its own `aioson squad:validate` (structural: manifest
|
|
80
|
+
schema, required files, every declared executor file exists, no duplicate slugs,
|
|
81
|
+
canonical paths) plus its source-grounded multi-model **eval-gate** — both
|
|
82
|
+
promoted from opt-in into the default `validate` step. See `@squad`'s Done gate.
|
|
83
|
+
|
|
84
|
+
## Why this shape
|
|
85
|
+
|
|
86
|
+
Same philosophy as the `audit_code` gate in `verification-config.md`: build-free,
|
|
87
|
+
model-agnostic, deterministic, and cheap enough to run at **every** agent's done
|
|
88
|
+
gate. It does not judge subjective quality (resonance, voice, persuasiveness) —
|
|
89
|
+
those stay with each agent's own checklist. It proves the artifact is *there*,
|
|
90
|
+
*structured*, and *not a placeholder*, which is exactly what self-asserted "done"
|
|
91
|
+
was silently skipping.
|
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: workflow-lean-lane
|
|
3
|
+
agents: [setup, product, sheldon, dev, qa, validator, neo, orchestrator]
|
|
4
|
+
modes: [planning]
|
|
5
|
+
task_types: [workflow, routing, configuration]
|
|
6
|
+
load_tier: trigger
|
|
7
|
+
triggers: [lean lane, workflow.config.json, fewer agents, menos é mais, lean pipeline]
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
# Workflow Lean Lane (SMALL default; opt-in for MEDIUM)
|
|
11
|
+
|
|
12
|
+
SMALL features now run the **lean chain by default**, and MEDIUM runs the **`@orchestrator` maestro lane**
|
|
13
|
+
(`@product → @orchestrator → @dev → @pentester → @qa`), where `@orchestrator` fans out to
|
|
14
|
+
`@analyst`/`@architect`/`@pm` (+ `@ux-ui` when UI-heavy) as sub-agents and consolidates one gated spec
|
|
15
|
+
package, with `@scope-check`, `@discovery-design-doc`, and `@ux-ui` available as opt-in detours. The older heavy chain (`product → analyst → scope-check → architect →
|
|
16
|
+
discovery-design-doc → pm → dev → qa`) is no longer a built-in default, but its spec hops can be opted
|
|
17
|
+
back in. The bottleneck was never "too few design documents", it was the absence of a gate that runs the
|
|
18
|
+
real app (now fixed: see `.aioson/docs/sheldon/harness-contract.md` §2c and `@qa`'s Runtime smoke gate).
|
|
19
|
+
|
|
20
|
+
The **lean lane** removes the intermediate hops and makes `@sheldon` the single spec authority:
|
|
21
|
+
|
|
22
|
+
```
|
|
23
|
+
product (PRD) → sheldon (enrich + ACs + design + plan + harness-contract) → dev → qa → (validator detour)
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
`@sheldon` runs in **Lean lane mode (RF-LEAN)** and produces, in one pass, what analyst/architect/
|
|
27
|
+
discovery-design-doc/pm would have produced (requirements + ACs, design-doc + readiness, implementation plan,
|
|
28
|
+
and the §2c runtime-gated harness contract). `@dev` implements from that plan using the project's design skill;
|
|
29
|
+
`@qa` runs the Runtime smoke gate; `@validator` runs as a detour when a harness contract exists.
|
|
30
|
+
|
|
31
|
+
## When to use which lane
|
|
32
|
+
|
|
33
|
+
| Use the **lean lane** when… | Opt into the **full chain** when… |
|
|
34
|
+
|---|---|
|
|
35
|
+
| Most features — bounded scope, a single product surface, a clear prototype | Genuinely large or multi-domain scope |
|
|
36
|
+
| You want velocity and one spec authority | Sensitive surface (money, multi-tenant ownership, regulated data) that wants independent architecture + scope-check + adversarial review as distinct gates |
|
|
37
|
+
| The team trusts `@sheldon` to own the bridge | You want the readiness/scope-check checkpoints to be separate agents |
|
|
38
|
+
|
|
39
|
+
The **runtime smoke gate is mandatory in both lanes** for every runtime surface the framework can prove from
|
|
40
|
+
local artifacts. The CLI blocks detectable runtime features (prototype manifest or migration/Prisma evidence)
|
|
41
|
+
without a valid `RG-*` contract; `@validator` still owns the target-app-only `has_api` judgment.
|
|
42
|
+
|
|
43
|
+
## How to opt in
|
|
44
|
+
|
|
45
|
+
SMALL already ships lean — no config needed. Use this preset to extend the lean shape to MEDIUM (or to pin it
|
|
46
|
+
explicitly). Drop this file at `.aioson/context/workflow.config.json` (the CLI's `readWorkflowConfig` merges it over the
|
|
47
|
+
built-in defaults — per-classification arrays replace the defaults). Then run `aioson workflow:next .` as usual.
|
|
48
|
+
|
|
49
|
+
A ready-to-copy preset lives at `.aioson/docs/presets/workflow.config.lean.json`:
|
|
50
|
+
|
|
51
|
+
```json
|
|
52
|
+
{
|
|
53
|
+
"version": 1,
|
|
54
|
+
"feature": {
|
|
55
|
+
"MICRO": ["product", "dev", "qa"],
|
|
56
|
+
"SMALL": ["product", "sheldon", "dev", "qa"],
|
|
57
|
+
"MEDIUM": ["product", "sheldon", "dev", "qa"]
|
|
58
|
+
},
|
|
59
|
+
"project": {
|
|
60
|
+
"MICRO": ["setup", "dev"],
|
|
61
|
+
"SMALL": ["setup", "product", "sheldon", "dev", "qa"],
|
|
62
|
+
"MEDIUM": ["setup", "product", "sheldon", "dev", "qa"]
|
|
63
|
+
},
|
|
64
|
+
"rules": { "required": ["dev"], "allowDetours": true }
|
|
65
|
+
}
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
`allowDetours: true` keeps `@validator` (harness contract present) and `@tester`/`@pentester` (fired by `@qa`'s
|
|
69
|
+
triggers) available as detours — they are not in the static sequence in either lane.
|
|
70
|
+
|
|
71
|
+
Autopilot (`auto_handoff: true`) drives only the **post-dev** cycle (`@dev → @qa → …`) in the lean lane:
|
|
72
|
+
`@product`/`@sheldon` always hand off manually (upstream-agent policy), so there is nothing to auto-chain before
|
|
73
|
+
`@dev`. This matches the MEDIUM maestro lane, whose `@product`/`@orchestrator` pre-dev handoffs are also manual —
|
|
74
|
+
so the lean lane loses no automation it was ever supposed to have.
|
|
75
|
+
|
|
76
|
+
Running the agents by hand (slash commands) is equivalent: activate `@product → @sheldon → @dev → @qa` and skip
|
|
77
|
+
analyst/architect/discovery-design-doc/pm. No config file is needed for the manual path.
|
|
78
|
+
|
|
79
|
+
## Full-merged chain (heavier, opt-in)
|
|
80
|
+
|
|
81
|
+
The lean/maestro defaults are enough for most work. When a project genuinely wants the heavier multi-agent
|
|
82
|
+
chain back — independent `@analyst`, `@architect`, and `@pm` as distinct gates — drop the **full-merged**
|
|
83
|
+
preset at `.aioson/context/workflow.config.json` (ready-to-copy at
|
|
84
|
+
`.aioson/docs/presets/workflow.config.full-merged.json`): it is that chain with `discovery-design-doc`
|
|
85
|
+
removed. On this full-merged detour, when the active sequence routes `@architect` → `@dev` while omitting
|
|
86
|
+
`@discovery-design-doc`, `@architect` runs in **merged mode** (see `agents/architect.md` → *Architect merged
|
|
87
|
+
mode*) and produces the design-doc + readiness + dev-state itself, then hands off to `@dev`. Merging `@architect` +
|
|
88
|
+
`@discovery-design-doc` keeps the readiness gate (the cheap, valuable part) while dropping the redundant
|
|
89
|
+
second file-level-plan hop; it is a velocity change, not a correctness one — the runtime gate is what
|
|
90
|
+
prevents the green-but-broken outcome.
|
|
91
|
+
|
|
92
|
+
```json
|
|
93
|
+
{
|
|
94
|
+
"version": 1,
|
|
95
|
+
"feature": {
|
|
96
|
+
"MICRO": ["product", "dev", "qa"],
|
|
97
|
+
"SMALL": ["product", "analyst", "scope-check", "architect", "dev", "qa"],
|
|
98
|
+
"MEDIUM": ["product", "analyst", "architect", "pm", "scope-check", "dev", "pentester", "qa"]
|
|
99
|
+
},
|
|
100
|
+
"project": {
|
|
101
|
+
"MICRO": ["setup", "dev"],
|
|
102
|
+
"SMALL": ["setup", "product", "analyst", "scope-check", "architect", "dev", "qa"],
|
|
103
|
+
"MEDIUM": ["setup", "product", "analyst", "architect", "ux-ui", "pm", "orchestrator", "scope-check", "dev", "qa"]
|
|
104
|
+
},
|
|
105
|
+
"rules": { "required": ["dev"], "allowDetours": true }
|
|
106
|
+
}
|
|
107
|
+
```
|
|
108
|
+
|
|
109
|
+
## What this does NOT change
|
|
110
|
+
|
|
111
|
+
- The override mechanism is unchanged — `readWorkflowConfig` still merges `workflow.config.json` over the
|
|
112
|
+
built-in defaults (per-classification arrays replace the defaults). Only the built-in default *shape* changed
|
|
113
|
+
(SMALL ships lean, MEDIUM ships the `@orchestrator` maestro lane); the lean lane stays a project-level config +
|
|
114
|
+
agent capability, not a different engine.
|
|
115
|
+
- The runtime safety gates are unchanged: `@qa`'s Runtime smoke gate, the §2c `RG-*` criteria, the CLI
|
|
116
|
+
contract-integrity backstop, and `@validator`'s target-app judgment apply identically in both lanes.
|
|
117
|
+
|
|
118
|
+
## What the lean lane DOES change about the gates
|
|
119
|
+
|
|
120
|
+
Removing `@analyst`/`@pm` removes the agents that produced `spec-{slug}.md` and approved the process gates
|
|
121
|
+
A (requirements), B (design) and C (plan). Those gates still fire under `aioson workflow:next` — `@dev`'s
|
|
122
|
+
completion checks **Gate C** against `spec-{slug}.md`, and `@qa`'s checks **Gate D** against the same file — so
|
|
123
|
+
the lean lane would dead-end at `@dev` if nothing produced them. In the lean lane **`@sheldon` owns that**: its
|
|
124
|
+
RF-LEAN pass writes `spec-{slug}.md` with `gate_requirements`/`gate_design`/`gate_plan: approved` and an
|
|
125
|
+
`implementation-plan-{slug}.md` with `status: approved` (the hops it collapsed, after the user confirms its
|
|
126
|
+
spec-authority output). Gate D / execution stays with `@qa`, which writes the `## QA sign-off` PASS into the same
|
|
127
|
+
file after the Runtime smoke gate. If you run the lane by hand (slash
|
|
128
|
+
commands, untracked), the gate frontmatter is informational — but writing it keeps the manual and tracked paths
|
|
129
|
+
identical.
|
|
@@ -28,6 +28,23 @@ It helps the agent make strong decisions when the user wants a deliberate, high-
|
|
|
28
28
|
- Do not combine it with any other design skill.
|
|
29
29
|
- Use it when the user wants strong design craft but has not asked for a very specific visual system.
|
|
30
30
|
|
|
31
|
+
## Identity resolution (run FIRST, before any visual decision)
|
|
32
|
+
|
|
33
|
+
Resolve an `identity.md` in this order: `.aioson/briefings/{slug}/identity.md` (feature scope) →
|
|
34
|
+
`.aioson/context/identity.md` (project brand) → none.
|
|
35
|
+
|
|
36
|
+
- **If one exists, it is the identity source of truth this engine APPLIES**: take palette,
|
|
37
|
+
typography, spacing/layout, radius & depth, motion, design pillars, and signature moves from it as
|
|
38
|
+
the token layer, and feed its `## Component structure notes` into component/screen decisions. It is
|
|
39
|
+
extracted **data** (from the user's reference images via `reference-identity-extract`) that
|
|
40
|
+
parameterizes this one engine — never a second design skill, and never a license to skip the
|
|
41
|
+
quality gates below.
|
|
42
|
+
- **If none exists**, run intent-first: choose the surface type, domain palette, and signature move
|
|
43
|
+
yourself per the references. Do not fabricate an `identity.md`.
|
|
44
|
+
|
|
45
|
+
Every consumer of this package (ux-ui, prototype-forge, dev builds) inherits this step by loading
|
|
46
|
+
this SKILL — see `.aioson/docs/reference-identity.md`.
|
|
47
|
+
|
|
31
48
|
## Loading guide
|
|
32
49
|
|
|
33
50
|
| Task | Load |
|
|
@@ -19,6 +19,8 @@ If `.interface-design/system.md` exists, treat it as the visual source of truth:
|
|
|
19
19
|
- Respect it unless the user explicitly wants a redesign.
|
|
20
20
|
- Update it when you introduce a reusable pattern, token rule, or layout decision.
|
|
21
21
|
|
|
22
|
+
If an `identity.md` exists (`.aioson/briefings/{slug}/identity.md`, else `.aioson/context/identity.md`), treat it as the visual source of truth too — it is the **extracted-from-references** form of `system.md`, distilled once from the user's own reference images (see `.aioson/docs/reference-identity.md`). Load its token sections and `## Component structure notes` before choosing a direction, and **apply** them rather than re-deriving a generic one. It is an input you apply, not a separate design system.
|
|
23
|
+
|
|
22
24
|
If the file does not exist and the task covers more than one screen or component family, create it with:
|
|
23
25
|
- Product context and UI intent
|
|
24
26
|
- Chosen design direction and anti-goals
|
|
@@ -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
|
|
@@ -39,6 +39,12 @@ not in the design skill's.
|
|
|
39
39
|
`.aioson/docs/feature-expansion-taxonomy.md`.
|
|
40
40
|
2. `.aioson/briefings/{slug}/briefings.md` for problem, users, and the chosen direction.
|
|
41
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.
|
|
42
48
|
|
|
43
49
|
If no operational surface map exists, build one first — it is the screen inventory, and without it the
|
|
44
50
|
prototype cannot be complete.
|
|
@@ -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.
|
|
@@ -28,11 +28,11 @@ When Evaluator finds issues:
|
|
|
28
28
|
|
|
29
29
|
### Session isolation
|
|
30
30
|
|
|
31
|
-
Each role should run from a compact operational handoff:
|
|
32
|
-
- Planner sessions: produce artifacts, then /compact for same-feature continuation
|
|
33
|
-
- Generator sessions: read spec pack + implement, then /compact for same-feature continuation
|
|
34
|
-
- Evaluator sessions: read code + spec + verify, then /compact for same-feature continuation
|
|
35
|
-
- Use /clear only for a hard reset, feature switch, polluted context, or security-sensitive reset
|
|
31
|
+
Each role should run from a compact operational handoff:
|
|
32
|
+
- Planner sessions: produce artifacts, then /compact for same-feature continuation
|
|
33
|
+
- Generator sessions: read spec pack + implement, then /compact for same-feature continuation
|
|
34
|
+
- Evaluator sessions: read code + spec + verify, then /compact for same-feature continuation
|
|
35
|
+
- Use /clear only for a hard reset, feature switch, polluted context, or security-sensitive reset
|
|
36
36
|
|
|
37
37
|
Cross-role communication happens through artifacts on disk, not conversation history.
|
|
38
38
|
|