project-tiny-context-harness 0.8.0 → 0.8.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -21
- package/README.md +385 -383
- package/assets/README.md +559 -557
- package/assets/README.zh-CN.md +331 -329
- package/assets/agents/.gitkeep +1 -1
- package/assets/agents/AGENTS_CORE.md +68 -64
- package/assets/context_templates/architecture.md +33 -33
- package/assets/context_templates/area.md +39 -39
- package/assets/context_templates/context.toml +30 -30
- package/assets/context_templates/deployment.md +35 -35
- package/assets/context_templates/global.md +51 -51
- package/assets/context_templates/product-surface-contract.md +70 -70
- package/assets/context_templates/screen-contract.md +177 -177
- package/assets/context_templates/verification.md +32 -32
- package/assets/github/.gitkeep +1 -1
- package/assets/github/harness.yml +41 -41
- package/assets/make/.gitkeep +1 -1
- package/assets/make/ty-context.mk +48 -48
- package/assets/skills/context_development_engineer/SKILL.md +137 -135
- package/assets/skills/context_full_project_export/SKILL.md +70 -70
- package/assets/skills/context_harness_upgrade/SKILL.md +60 -60
- package/assets/skills/context_product_plan/SKILL.md +88 -88
- package/assets/skills/context_surface_contract/SKILL.md +191 -191
- package/assets/skills/context_uiux_design/SKILL.md +167 -153
- package/assets/skills/design-resource-authoring/SKILL.md +78 -78
- package/assets/skills/design-resource-authoring/references/downstream-handoff.md +125 -125
- package/assets/skills/design-resource-authoring/references/open-design-provider.md +114 -114
- package/assets/skills/design-resource-authoring/references/resource-selection.md +170 -170
- package/assets/skills/design-system-authoring/SKILL.md +57 -57
- package/assets/skills/design-system-authoring/agents/openai.yaml +6 -6
- package/assets/skills/design-system-authoring/references/authority-adoption.md +48 -48
- package/assets/skills/design-system-authoring/references/open-design-design-system-provider.md +110 -110
- package/assets/skills/long-task-workflow/SKILL.md +97 -97
- package/assets/skills/long-task-workflow/agents/openai.yaml +4 -4
- package/assets/skills/long-task-workflow/references/authority-lifecycle.md +76 -76
- package/assets/skills/long-task-workflow/references/contract-authoring.md +114 -114
- package/assets/skills/long-task-workflow/references/evidence-design.md +76 -76
- package/assets/skills/long-task-workflow/references/source-authoring.md +100 -100
- package/assets/skills/normal-long-task/SKILL.md +12 -12
- package/assets/skills/source-plan-authoring/SKILL.md +14 -14
- package/assets/tools/validate_context.py +442 -442
- package/dist/lib/design-md.js +5 -4
- package/dist/lib/design-resource-handoff-shape-primitives.js +1 -3
- package/dist/lib/doctor.js +2 -2
- package/dist/lib/long-task-counterfactual-sandbox.js +1 -2
- package/migrations/README.md +7 -7
- package/package.json +1 -1
- package/source-mappings.yaml +25 -25
|
@@ -1,136 +1,136 @@
|
|
|
1
|
-
# Design Resource Handoff And Proposal Reconciliation
|
|
2
|
-
|
|
3
|
-
Generated resources remain ordinary external Source. Preserve enough identity and meaning for downstream work without creating a Tiny Context pack, registry or authority lifecycle.
|
|
4
|
-
|
|
5
|
-
## Candidate, selection and authority are separate
|
|
6
|
-
|
|
7
|
-
- **Candidate:** provider output proposed for review; it authorizes no fidelity.
|
|
8
|
-
- **Selection:** an explicit user/team choice, or explicit delegation with known criteria; it permits proposal reconciliation and selected-source preparation.
|
|
9
|
-
- **Authority adoption:** a downstream development workflow reconciles selected Source with product/surface Context and `DESIGN.md` and binds implementation/verification to declared conditions.
|
|
10
|
-
|
|
11
|
-
This Skill may preserve an input already classified as `exact-target`; it may not promote its own candidate to one. Unknown coverage remains unknown.
|
|
12
|
-
|
|
13
|
-
## Development-scope coverage
|
|
14
|
-
|
|
15
|
-
For every material in-scope surface/flow/region/component/control condition, record selected existing Source, newly generated Source, `not-applicable`, `excluded-by-scope`, `decision-required` or `unavailable`. Include only necessary surrounding context and explicit exclusions. One larger addressable artifact may cover several items; a static frame covers only conditions it actually shows.
|
|
16
|
-
|
|
17
|
-
Design resources may show user-visible triggers, transitions, states, feedback and product-rule presentation. Business, data, permission and algorithmic rules remain owned by product/technical Source and must not be invented by visuals.
|
|
18
|
-
|
|
1
|
+
# Design Resource Handoff And Proposal Reconciliation
|
|
2
|
+
|
|
3
|
+
Generated resources remain ordinary external Source. Preserve enough identity and meaning for downstream work without creating a Tiny Context pack, registry or authority lifecycle.
|
|
4
|
+
|
|
5
|
+
## Candidate, selection and authority are separate
|
|
6
|
+
|
|
7
|
+
- **Candidate:** provider output proposed for review; it authorizes no fidelity.
|
|
8
|
+
- **Selection:** an explicit user/team choice, or explicit delegation with known criteria; it permits proposal reconciliation and selected-source preparation.
|
|
9
|
+
- **Authority adoption:** a downstream development workflow reconciles selected Source with product/surface Context and `DESIGN.md` and binds implementation/verification to declared conditions.
|
|
10
|
+
|
|
11
|
+
This Skill may preserve an input already classified as `exact-target`; it may not promote its own candidate to one. Unknown coverage remains unknown.
|
|
12
|
+
|
|
13
|
+
## Development-scope coverage
|
|
14
|
+
|
|
15
|
+
For every material in-scope surface/flow/region/component/control condition, record selected existing Source, newly generated Source, `not-applicable`, `excluded-by-scope`, `decision-required` or `unavailable`. Include only necessary surrounding context and explicit exclusions. One larger addressable artifact may cover several items; a static frame covers only conditions it actually shows.
|
|
16
|
+
|
|
17
|
+
Design resources may show user-visible triggers, transitions, states, feedback and product-rule presentation. Business, data, permission and algorithmic rules remain owned by product/technical Source and must not be invented by visuals.
|
|
18
|
+
|
|
19
19
|
Canonical implementation resources own exact code-expressible layout, visual, content, state, interaction, adaptation, motion, semantic and asset facts. The structured handoff is the residual semantic and index layer for scope, applicability and downstream binding: it indexes those facts through typed locators instead of manually duplicating their values, and it is not a second numeric/style source.
|
|
20
|
-
|
|
21
|
-
## Final proposal reconciliation
|
|
22
|
-
|
|
23
|
-
Keep a task-local buffer during candidate iteration:
|
|
24
|
-
|
|
25
|
-
```yaml
|
|
26
|
-
selection_basis: explicit user/team choice | explicit delegated selection
|
|
27
|
-
selected_resources:
|
|
28
|
-
- stable key, provider/project/run/entry, declared conditions, immutable digest/snapshot, editable upstream owner/locator/update method
|
|
29
|
-
accepted:
|
|
30
|
-
- decision, rationale and affected proposal section/stable keys
|
|
31
|
-
rejected:
|
|
32
|
-
- alternative and reason
|
|
33
|
-
unresolved:
|
|
34
|
-
- genuine remaining choice
|
|
35
|
-
impacts:
|
|
36
|
-
product_rules: []
|
|
37
|
-
information_hierarchy: []
|
|
38
|
-
surface_keys: []
|
|
39
|
-
control_keys: []
|
|
40
|
-
state_keys: []
|
|
41
|
-
interaction_rules: []
|
|
42
|
-
visual_constraints: []
|
|
43
|
-
```
|
|
44
|
-
|
|
45
|
-
This is an explanatory shape, not a schema or required file. Do not write during iteration. Once the direction is final:
|
|
46
|
-
|
|
47
|
-
1. confirm the selection basis and immutable resource identity;
|
|
48
|
-
2. consolidate duplicate/intermediate notes;
|
|
49
|
-
3. apply accepted decisions once while preserving all unaffected original requirements and source provenance;
|
|
50
|
-
4. exclude rejected and unresolved choices from requirements, keeping unresolved items visibly unresolved;
|
|
51
|
-
5. record selected resource keys, conditions, immutable locators/digests and editable upstream owner/locator/update method in the proposal where downstream consumers can recover and later change them;
|
|
52
|
-
6. make reruns idempotent—update the existing decision/reference instead of appending it again;
|
|
53
|
-
7. if the initial proposal has an authorized writable path, edit that file; otherwise return the full revised proposal in the response.
|
|
54
|
-
|
|
55
|
-
Never mutate a Source Plan, `project_context/**`, `DESIGN.md`, Delivery Contract, production code or tests. A small request may generate, select and reconcile in one turn; “once” describes final semantic writeback, not a required waiting phase.
|
|
56
|
-
|
|
57
|
-
If no selection occurs, return candidates plus a consolidated pending delta and leave the proposal unchanged.
|
|
58
|
-
|
|
59
|
-
## Intent-sized handoff
|
|
60
|
-
|
|
61
|
-
### Exploration
|
|
62
|
-
|
|
63
|
-
Return scope/intent, visible candidates, resource dispositions, obvious limitations, provider/artifact qualifiers and the sanity review performed. Do not require a pack, hash or validator for a throwaway unselected preview unless retrieval needs it.
|
|
64
|
-
|
|
65
|
-
### Implementation handoff
|
|
66
|
-
|
|
20
|
+
|
|
21
|
+
## Final proposal reconciliation
|
|
22
|
+
|
|
23
|
+
Keep a task-local buffer during candidate iteration:
|
|
24
|
+
|
|
25
|
+
```yaml
|
|
26
|
+
selection_basis: explicit user/team choice | explicit delegated selection
|
|
27
|
+
selected_resources:
|
|
28
|
+
- stable key, provider/project/run/entry, declared conditions, immutable digest/snapshot, editable upstream owner/locator/update method
|
|
29
|
+
accepted:
|
|
30
|
+
- decision, rationale and affected proposal section/stable keys
|
|
31
|
+
rejected:
|
|
32
|
+
- alternative and reason
|
|
33
|
+
unresolved:
|
|
34
|
+
- genuine remaining choice
|
|
35
|
+
impacts:
|
|
36
|
+
product_rules: []
|
|
37
|
+
information_hierarchy: []
|
|
38
|
+
surface_keys: []
|
|
39
|
+
control_keys: []
|
|
40
|
+
state_keys: []
|
|
41
|
+
interaction_rules: []
|
|
42
|
+
visual_constraints: []
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
This is an explanatory shape, not a schema or required file. Do not write during iteration. Once the direction is final:
|
|
46
|
+
|
|
47
|
+
1. confirm the selection basis and immutable resource identity;
|
|
48
|
+
2. consolidate duplicate/intermediate notes;
|
|
49
|
+
3. apply accepted decisions once while preserving all unaffected original requirements and source provenance;
|
|
50
|
+
4. exclude rejected and unresolved choices from requirements, keeping unresolved items visibly unresolved;
|
|
51
|
+
5. record selected resource keys, conditions, immutable locators/digests and editable upstream owner/locator/update method in the proposal where downstream consumers can recover and later change them;
|
|
52
|
+
6. make reruns idempotent—update the existing decision/reference instead of appending it again;
|
|
53
|
+
7. if the initial proposal has an authorized writable path, edit that file; otherwise return the full revised proposal in the response.
|
|
54
|
+
|
|
55
|
+
Never mutate a Source Plan, `project_context/**`, `DESIGN.md`, Delivery Contract, production code or tests. A small request may generate, select and reconcile in one turn; “once” describes final semantic writeback, not a required waiting phase.
|
|
56
|
+
|
|
57
|
+
If no selection occurs, return candidates plus a consolidated pending delta and leave the proposal unchanged.
|
|
58
|
+
|
|
59
|
+
## Intent-sized handoff
|
|
60
|
+
|
|
61
|
+
### Exploration
|
|
62
|
+
|
|
63
|
+
Return scope/intent, visible candidates, resource dispositions, obvious limitations, provider/artifact qualifiers and the sanity review performed. Do not require a pack, hash or validator for a throwaway unselected preview unless retrieval needs it.
|
|
64
|
+
|
|
65
|
+
### Implementation handoff
|
|
66
|
+
|
|
67
67
|
After final selection for implementation, add one project-native Markdown Source at an authorized repository path. It is ordinary Source, not a pack or Authority. Frozen canonical resources carry addressable implementation facts, while this residual handoff closes scope, applicability, uncovered meaning, product/technical semantics, blockers and downstream bindings. The file contains readable `ty-source-item:start/end` facts plus exactly one:
|
|
68
|
-
|
|
69
|
-
````markdown
|
|
70
|
-
```yaml design-resource-handoff-v1
|
|
71
|
-
...
|
|
72
|
-
```
|
|
73
|
-
````
|
|
74
|
-
|
|
75
|
-
The strict block includes:
|
|
76
|
-
|
|
77
|
-
- output/development scope, necessary context and exclusions;
|
|
78
|
-
- stable resource, subject, surface/control/state and target keys;
|
|
79
|
-
- selected exact-target/constraint/supporting classification; candidates and inspiration do not enter covered implementation rows;
|
|
80
|
-
- provider version, project/run, capability/template, agent/model and live design-system binding;
|
|
81
|
-
- each repository-local immutable resource path, media type and exact SHA-256;
|
|
68
|
+
|
|
69
|
+
````markdown
|
|
70
|
+
```yaml design-resource-handoff-v1
|
|
71
|
+
...
|
|
72
|
+
```
|
|
73
|
+
````
|
|
74
|
+
|
|
75
|
+
The strict block includes:
|
|
76
|
+
|
|
77
|
+
- output/development scope, necessary context and exclusions;
|
|
78
|
+
- stable resource, subject, surface/control/state and target keys;
|
|
79
|
+
- selected exact-target/constraint/supporting classification; candidates and inspiration do not enter covered implementation rows;
|
|
80
|
+
- provider version, project/run, capability/template, agent/model and live design-system binding;
|
|
81
|
+
- each repository-local immutable resource path, media type and exact SHA-256;
|
|
82
82
|
- for implementation Web/App targets, a canonical entry, complete declared dependency set and `acquisition: complete`; non-Web resources use `reference` and are not forced into HTML;
|
|
83
|
-
- editable upstream owner, locator and update/export method, or an explicit manual/external-update boundary when unavailable;
|
|
84
|
-
- declared platform, viewport, mode, state, content, input and full/reduced/not-applicable motion conditions;
|
|
83
|
+
- editable upstream owner, locator and update/export method, or an explicit manual/external-update boundary when unavailable;
|
|
84
|
+
- declared platform, viewport, mode, state, content, input and full/reduced/not-applicable motion conditions;
|
|
85
85
|
- typed, locally resolvable evidence locators (`html_selector`, `markdown_anchor`, `json_pointer`, `css_selector`, `css_custom_property` or bounded `whole_resource`) whose kinds distinguish frame/component variant/prototype state or transition/motion/responsive/input/accessibility/semantic/token/asset/annotation meaning;
|
|
86
|
-
- stable subjects grouped only when they truly share meaning;
|
|
87
|
-
- every declared scope surface represented by one unambiguous surface subject, with no stable key owned by two subjects;
|
|
86
|
+
- stable subjects grouped only when they truly share meaning;
|
|
87
|
+
- every declared scope surface represented by one unambiguous surface subject, with no stable key owned by two subjects;
|
|
88
88
|
- explicit target applicability for each subject and complete subject × target × condition × dimension coverage for `surface_flow`, `visual_content`, `component_control`, `state_interaction`, `motion`, `adaptation_input`, `accessibility` and `assets`;
|
|
89
89
|
- exactly one disposition per applicable cell: `covered`, `not_applicable`, `excluded_by_scope`, `decision_required` or `unavailable`;
|
|
90
90
|
- covered-cell same-target/same-condition evidence, Source-item refs and dimension-appropriate project verification methods; referenced design Source Items use `requirement`, `control` or `acceptance` markers;
|
|
91
|
-
- source-backed rationales for non-applicable/excluded rows; unresolved rows remain visible and make preflight fail;
|
|
92
|
-
- target-local acceptance blockers that downstream checks must bind rather than dismiss;
|
|
93
|
-
- selection basis, proposal reconciliation path/status and known limitations;
|
|
94
|
-
- outer review and separate provider/artifact/design qualifiers.
|
|
95
|
-
|
|
96
|
-
Unknown fields fail closed. A static frame may support only visible layout/visual/component facts for its shown condition; it cannot cover unseen interaction, motion, adaptation/input or accessibility. Run:
|
|
97
|
-
|
|
98
|
-
```text
|
|
99
|
-
ty-context design-resource preflight <handoff.md>
|
|
100
|
-
```
|
|
101
|
-
|
|
102
|
-
Do not call the handoff ready until it passes. Exploration, candidates and unselected previews still require no file, schema, hash sequence or validator. There is no fixed directory or one-file-per-control requirement.
|
|
103
|
-
|
|
104
|
-
## Recommended downstream routing
|
|
105
|
-
|
|
106
|
-
```text
|
|
107
|
-
initial proposal
|
|
108
|
-
-> design-resource-authoring
|
|
109
|
-
-> selected immutable resources
|
|
91
|
+
- source-backed rationales for non-applicable/excluded rows; unresolved rows remain visible and make preflight fail;
|
|
92
|
+
- target-local acceptance blockers that downstream checks must bind rather than dismiss;
|
|
93
|
+
- selection basis, proposal reconciliation path/status and known limitations;
|
|
94
|
+
- outer review and separate provider/artifact/design qualifiers.
|
|
95
|
+
|
|
96
|
+
Unknown fields fail closed. A static frame may support only visible layout/visual/component facts for its shown condition; it cannot cover unseen interaction, motion, adaptation/input or accessibility. Run:
|
|
97
|
+
|
|
98
|
+
```text
|
|
99
|
+
ty-context design-resource preflight <handoff.md>
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
Do not call the handoff ready until it passes. Exploration, candidates and unselected previews still require no file, schema, hash sequence or validator. There is no fixed directory or one-file-per-control requirement.
|
|
103
|
+
|
|
104
|
+
## Recommended downstream routing
|
|
105
|
+
|
|
106
|
+
```text
|
|
107
|
+
initial proposal
|
|
108
|
+
-> design-resource-authoring
|
|
109
|
+
-> selected immutable resources
|
|
110
110
|
+ complete canonical implementation resources
|
|
111
|
-
+ reconciled initial proposal
|
|
112
|
-
-> validated residual design-resource-handoff-v1
|
|
113
|
-
-> long-task-workflow (explicit long delivery)
|
|
114
|
-
OR current native Goal + default Workflow Contract (non-long delivery)
|
|
115
|
-
```
|
|
116
|
-
|
|
117
|
-
`source-plan-authoring` is not an intermediate stage. A legacy Source Plan remains valid ordinary Source if supplied, but design-resource authoring never creates or edits one.
|
|
118
|
-
|
|
119
|
-
### Default Workflow consumption
|
|
120
|
-
|
|
111
|
+
+ reconciled initial proposal
|
|
112
|
+
-> validated residual design-resource-handoff-v1
|
|
113
|
+
-> long-task-workflow (explicit long delivery)
|
|
114
|
+
OR current native Goal + default Workflow Contract (non-long delivery)
|
|
115
|
+
```
|
|
116
|
+
|
|
117
|
+
`source-plan-authoring` is not an intermediate stage. A legacy Source Plan remains valid ordinary Source if supplied, but design-resource authoring never creates or edits one.
|
|
118
|
+
|
|
119
|
+
### Default Workflow consumption
|
|
120
|
+
|
|
121
121
|
The consuming Goal brings the revised proposal, selected resources and residual handoff as ordinary Source. It reruns shared preflight before UI Authority Closure, opens affected exact/constraint resources before deciding, classifies coverage, decides `Context Delta`, and makes every adopted decision-relevant target Context-reachable through existing owners. It routes every covered Source Item and verification method through the production owner and real-entry checks. A later update creates a new immutable version rather than overwriting the adopted baseline.
|
|
122
|
-
|
|
123
|
-
### Long-Task consumption
|
|
124
|
-
|
|
122
|
+
|
|
123
|
+
### Long-Task consumption
|
|
124
|
+
|
|
125
125
|
The same revised proposal, selected resources and validated residual handoff enter `long-task-workflow`'s Source-bound Contract Draft loop immediately. The marked handoff is `task.source_paths`; each Contract design target's frozen `source_paths` and Check `verification_inputs` equal that handoff plus every declared resource path and condition. Covered Source Items map through `source_claims` to the root conformance Assertion. Every verification method maps to an independently failing Assertion carrying its relevant Source Claims; every blocker preserves its Source-item/method lineage into a target-local machine Claim or target-blocking External Confirmation. Authority Lock, Authority Revision and Final Gate remain the sole lifecycle. This Skill creates no Contract Draft, Outcome, Receipt, Check result or Gate.
|
|
126
|
-
|
|
127
|
-
## Forbidden inferences
|
|
128
|
-
|
|
129
|
-
Unless independently proven downstream, never infer that a generated resource:
|
|
130
|
-
|
|
131
|
-
- is selected, authoritative or accepted;
|
|
132
|
-
- covers unlisted states, viewports, modes, platforms or accessibility;
|
|
133
|
-
- is native implementation because an HTML/image preview renders;
|
|
126
|
+
|
|
127
|
+
## Forbidden inferences
|
|
128
|
+
|
|
129
|
+
Unless independently proven downstream, never infer that a generated resource:
|
|
130
|
+
|
|
131
|
+
- is selected, authoritative or accepted;
|
|
132
|
+
- covers unlisted states, viewports, modes, platforms or accessibility;
|
|
133
|
+
- is native implementation because an HTML/image preview renders;
|
|
134
134
|
- is complete because a preview, URL, metadata response, file hash or provider run exists; implementation handoff requires the declared entry/dependency closure and resolvable evidence;
|
|
135
|
-
- changed Context, `DESIGN.md`, a Source Plan, code or Contract;
|
|
136
|
-
- proves production fidelity, correctness, test completion or release readiness.
|
|
135
|
+
- changed Context, `DESIGN.md`, a Source Plan, code or Contract;
|
|
136
|
+
- proves production fidelity, correctness, test completion or release readiness.
|
|
@@ -1,91 +1,91 @@
|
|
|
1
|
-
# Open Design Provider Orchestration
|
|
2
|
-
|
|
3
|
-
Use Open Design as the generation engine. This Skill supplies a bounded product commission and retrieves results; it does not recreate the provider's prompts, template logic or catalogue.
|
|
4
|
-
|
|
5
|
-
## Execution priority
|
|
6
|
-
|
|
7
|
-
1. **Structured Open Design MCP** for discovery, project/run control and artifact retrieval.
|
|
8
|
-
2. **Open Design CLI or daemon API** when MCP is unavailable or cannot expose a required current capability but equivalent structured behavior is locally available.
|
|
9
|
-
3. **Browser/desktop interaction** only for bootstrap, unavoidable UI-only selection, signed-in provider interaction, visual preview inspection or recovery. Prefer browser-specific control over general Computer Use when both can operate the page.
|
|
10
|
-
|
|
11
|
-
Do not silently install an MCP server/plugin, alter the user's global Open Design/Codex configuration, sign in, create a paid-provider dependency or expand data disclosure. Explain the exact setup need and obtain separate authorization when persistence or a new disclosure path is required.
|
|
12
|
-
|
|
13
|
-
## Live capability discovery
|
|
14
|
-
|
|
15
|
-
Discover rather than remember:
|
|
16
|
-
|
|
17
|
-
- configured agents and models, including whether Open Design's inner agent is Codex CLI;
|
|
18
|
-
- functional skills and plugins;
|
|
19
|
-
- rendering templates or project types;
|
|
20
|
-
- design systems and their selected project binding;
|
|
1
|
+
# Open Design Provider Orchestration
|
|
2
|
+
|
|
3
|
+
Use Open Design as the generation engine. This Skill supplies a bounded product commission and retrieves results; it does not recreate the provider's prompts, template logic or catalogue.
|
|
4
|
+
|
|
5
|
+
## Execution priority
|
|
6
|
+
|
|
7
|
+
1. **Structured Open Design MCP** for discovery, project/run control and artifact retrieval.
|
|
8
|
+
2. **Open Design CLI or daemon API** when MCP is unavailable or cannot expose a required current capability but equivalent structured behavior is locally available.
|
|
9
|
+
3. **Browser/desktop interaction** only for bootstrap, unavoidable UI-only selection, signed-in provider interaction, visual preview inspection or recovery. Prefer browser-specific control over general Computer Use when both can operate the page.
|
|
10
|
+
|
|
11
|
+
Do not silently install an MCP server/plugin, alter the user's global Open Design/Codex configuration, sign in, create a paid-provider dependency or expand data disclosure. Explain the exact setup need and obtain separate authorization when persistence or a new disclosure path is required.
|
|
12
|
+
|
|
13
|
+
## Live capability discovery
|
|
14
|
+
|
|
15
|
+
Discover rather than remember:
|
|
16
|
+
|
|
17
|
+
- configured agents and models, including whether Open Design's inner agent is Codex CLI;
|
|
18
|
+
- functional skills and plugins;
|
|
19
|
+
- rendering templates or project types;
|
|
20
|
+
- design systems and their selected project binding;
|
|
21
21
|
- specialist paths such as collaborative design platforms, image, video or 3D/WebGL;
|
|
22
|
-
- supported project creation, run, cancellation, file and artifact operations.
|
|
23
|
-
|
|
24
|
-
Current structured tool names may include `list_agents`, `list_skills`, `list_plugins`, `create_project`, `get_project`, `get_active_context`, `start_run`, `get_run`, `cancel_run`, `list_files`, `get_file` and `get_artifact`. Feature-detect them; tool names and provider versions may evolve.
|
|
25
|
-
|
|
26
|
-
Functional skills and rendering templates are different registries. Finding `frontend-design` does not prove that a `mobile-app` or `wireframe-mobile-flow` template is installed, and a remembered template ID is not live capability evidence.
|
|
27
|
-
|
|
28
|
-
### Rendering-template discovery compatibility
|
|
29
|
-
|
|
30
|
-
Prefer, in order:
|
|
31
|
-
|
|
32
|
-
1. a live `list_design_templates`-style method/resource when the provider exposes one;
|
|
33
|
-
2. an explicit template ID supplied by the current project/user and validated by the provider;
|
|
34
|
-
3. a version-guarded structured daemon query that reads the provider's current registry;
|
|
35
|
-
4. provider UI inspection when no structured registry is exposed;
|
|
36
|
-
5. an honest `unavailable` or degraded-discovery result.
|
|
37
|
-
|
|
38
|
-
Never vendor a fallback template catalogue or guess a template ID from prior runs. Do not implement a transport helper unless the live host truly lacks a safe structured path; any helper may normalize metadata and transport only.
|
|
39
|
-
|
|
40
|
-
## Conditional Design Authority gate and binding
|
|
41
|
-
|
|
42
|
-
Before any style-bearing commission, read project `DESIGN.md` and its declared authored exact-value token source/generation direction. Style-bearing means the resource materially expresses visual fidelity, brand, typography/color/density, component visual treatment or a production-style prototype. Low-fidelity structure, IA/flow topology and semantics-only behavior/state studies are non-fidelity and do not require the gate.
|
|
43
|
-
|
|
44
|
-
If authority is absent, explicitly `unconfigured`, still a starter, style-only/inspiration-only, or lacks one authored token source/generation direction, stop before creating a project or run. Direct the user to explicitly invoke `$design-system-authoring`; never auto-run it. A combined explicit request authorizes the sequence.
|
|
45
|
-
|
|
46
|
-
For configured style-bearing work:
|
|
47
|
-
|
|
48
|
-
1. read the adopted Open Design design-system ID and digest/provenance from project Design Authority;
|
|
49
|
-
2. confirm `od://design-systems/<id>/DESIGN.md` is readable through MCP;
|
|
50
|
-
3. pass that ID as `designSystem` to `create_project`;
|
|
51
|
-
4. immediately call `get_project` and require `designSystemId` to match;
|
|
52
|
-
5. when reusing a project, check its binding before every new style-bearing run;
|
|
53
|
-
6. on missing/mismatch, prefer a new bounded project with the correct binding when MCP has no safe update method; otherwise feature-detect and verify the provider's structured update.
|
|
54
|
-
|
|
55
|
-
Never silently use the provider's default or a different system. A provider-side mismatch is a synchronization/rebinding issue; it does not erase the canonical project `DESIGN.md`.
|
|
56
|
-
|
|
57
|
-
## Structured commission sequence
|
|
58
|
-
|
|
59
|
-
1. Record provider version, selected agent/model, functional capability, rendering template, adopted design system and relevant plugin/export readiness as reported live.
|
|
60
|
-
2. Reuse an existing task-local project only when its scope, prior inputs and required design-system binding match; otherwise create a bounded project. For style-bearing work, pass `designSystem` and verify `get_project.designSystemId` before the run.
|
|
61
|
-
3. Start a run with the product-specific commission envelope and the provider-native capability identifier.
|
|
62
|
-
4. Poll with a bounded cadence. During a long run, report meaningful progress at least once per minute without flooding the user.
|
|
63
|
-
5. Preserve run IDs and the latest provider diagnostic. Support cancellation when the user requests it and the provider exposes it.
|
|
64
|
-
6. Resolve the actual entry explicitly, retrieve the artifact/source, inspect it according to intent and preserve its immutable identity before later iterations or handoff.
|
|
65
|
-
|
|
66
|
-
Open Design may launch Codex CLI as its configured inner agent. That is provider execution, not recursive invocation of this outer Skill. Do not hardcode a model when the provider can report the current configured model.
|
|
67
|
-
|
|
68
|
-
## Separate three kinds of state
|
|
69
|
-
|
|
70
|
-
### Provider execution state
|
|
71
|
-
|
|
72
|
-
Examples: queued, running, succeeded, failed, cancelled, timed out or unknown.
|
|
73
|
-
|
|
74
|
-
### Artifact readiness
|
|
75
|
-
|
|
76
|
-
Examples: missing, partial, corrupt, retrievable, rendered or snapshot-preserved.
|
|
77
|
-
|
|
78
|
-
### Design suitability
|
|
79
|
-
|
|
80
|
-
Examples: unreviewed, scope-sane, handoff-checked, human-selected or rejected.
|
|
81
|
-
|
|
82
|
-
Never collapse these into one “success.” A provider success does not prove a good design; a complete artifact can exist even when a provider run later fails.
|
|
83
|
-
|
|
84
|
-
Use these qualifiers when needed:
|
|
85
|
-
|
|
86
|
-
- `artifact-ready/run-unreconciled`: a complete retrievable artifact exists, but the provider run remains nonterminal or inconsistent;
|
|
87
|
-
- `artifact-ready/provider-failed`: the artifact remains complete and retrievable, but the provider later reports failure/timeout.
|
|
88
|
-
|
|
22
|
+
- supported project creation, run, cancellation, file and artifact operations.
|
|
23
|
+
|
|
24
|
+
Current structured tool names may include `list_agents`, `list_skills`, `list_plugins`, `create_project`, `get_project`, `get_active_context`, `start_run`, `get_run`, `cancel_run`, `list_files`, `get_file` and `get_artifact`. Feature-detect them; tool names and provider versions may evolve.
|
|
25
|
+
|
|
26
|
+
Functional skills and rendering templates are different registries. Finding `frontend-design` does not prove that a `mobile-app` or `wireframe-mobile-flow` template is installed, and a remembered template ID is not live capability evidence.
|
|
27
|
+
|
|
28
|
+
### Rendering-template discovery compatibility
|
|
29
|
+
|
|
30
|
+
Prefer, in order:
|
|
31
|
+
|
|
32
|
+
1. a live `list_design_templates`-style method/resource when the provider exposes one;
|
|
33
|
+
2. an explicit template ID supplied by the current project/user and validated by the provider;
|
|
34
|
+
3. a version-guarded structured daemon query that reads the provider's current registry;
|
|
35
|
+
4. provider UI inspection when no structured registry is exposed;
|
|
36
|
+
5. an honest `unavailable` or degraded-discovery result.
|
|
37
|
+
|
|
38
|
+
Never vendor a fallback template catalogue or guess a template ID from prior runs. Do not implement a transport helper unless the live host truly lacks a safe structured path; any helper may normalize metadata and transport only.
|
|
39
|
+
|
|
40
|
+
## Conditional Design Authority gate and binding
|
|
41
|
+
|
|
42
|
+
Before any style-bearing commission, read project `DESIGN.md` and its declared authored exact-value token source/generation direction. Style-bearing means the resource materially expresses visual fidelity, brand, typography/color/density, component visual treatment or a production-style prototype. Low-fidelity structure, IA/flow topology and semantics-only behavior/state studies are non-fidelity and do not require the gate.
|
|
43
|
+
|
|
44
|
+
If authority is absent, explicitly `unconfigured`, still a starter, style-only/inspiration-only, or lacks one authored token source/generation direction, stop before creating a project or run. Direct the user to explicitly invoke `$design-system-authoring`; never auto-run it. A combined explicit request authorizes the sequence.
|
|
45
|
+
|
|
46
|
+
For configured style-bearing work:
|
|
47
|
+
|
|
48
|
+
1. read the adopted Open Design design-system ID and digest/provenance from project Design Authority;
|
|
49
|
+
2. confirm `od://design-systems/<id>/DESIGN.md` is readable through MCP;
|
|
50
|
+
3. pass that ID as `designSystem` to `create_project`;
|
|
51
|
+
4. immediately call `get_project` and require `designSystemId` to match;
|
|
52
|
+
5. when reusing a project, check its binding before every new style-bearing run;
|
|
53
|
+
6. on missing/mismatch, prefer a new bounded project with the correct binding when MCP has no safe update method; otherwise feature-detect and verify the provider's structured update.
|
|
54
|
+
|
|
55
|
+
Never silently use the provider's default or a different system. A provider-side mismatch is a synchronization/rebinding issue; it does not erase the canonical project `DESIGN.md`.
|
|
56
|
+
|
|
57
|
+
## Structured commission sequence
|
|
58
|
+
|
|
59
|
+
1. Record provider version, selected agent/model, functional capability, rendering template, adopted design system and relevant plugin/export readiness as reported live.
|
|
60
|
+
2. Reuse an existing task-local project only when its scope, prior inputs and required design-system binding match; otherwise create a bounded project. For style-bearing work, pass `designSystem` and verify `get_project.designSystemId` before the run.
|
|
61
|
+
3. Start a run with the product-specific commission envelope and the provider-native capability identifier.
|
|
62
|
+
4. Poll with a bounded cadence. During a long run, report meaningful progress at least once per minute without flooding the user.
|
|
63
|
+
5. Preserve run IDs and the latest provider diagnostic. Support cancellation when the user requests it and the provider exposes it.
|
|
64
|
+
6. Resolve the actual entry explicitly, retrieve the artifact/source, inspect it according to intent and preserve its immutable identity before later iterations or handoff.
|
|
65
|
+
|
|
66
|
+
Open Design may launch Codex CLI as its configured inner agent. That is provider execution, not recursive invocation of this outer Skill. Do not hardcode a model when the provider can report the current configured model.
|
|
67
|
+
|
|
68
|
+
## Separate three kinds of state
|
|
69
|
+
|
|
70
|
+
### Provider execution state
|
|
71
|
+
|
|
72
|
+
Examples: queued, running, succeeded, failed, cancelled, timed out or unknown.
|
|
73
|
+
|
|
74
|
+
### Artifact readiness
|
|
75
|
+
|
|
76
|
+
Examples: missing, partial, corrupt, retrievable, rendered or snapshot-preserved.
|
|
77
|
+
|
|
78
|
+
### Design suitability
|
|
79
|
+
|
|
80
|
+
Examples: unreviewed, scope-sane, handoff-checked, human-selected or rejected.
|
|
81
|
+
|
|
82
|
+
Never collapse these into one “success.” A provider success does not prove a good design; a complete artifact can exist even when a provider run later fails.
|
|
83
|
+
|
|
84
|
+
Use these qualifiers when needed:
|
|
85
|
+
|
|
86
|
+
- `artifact-ready/run-unreconciled`: a complete retrievable artifact exists, but the provider run remains nonterminal or inconsistent;
|
|
87
|
+
- `artifact-ready/provider-failed`: the artifact remains complete and retrievable, but the provider later reports failure/timeout.
|
|
88
|
+
|
|
89
89
|
In both cases preserve the exact run locator, last update, failure diagnostic and artifact hash. Do not claim provider success or downstream acceptance. Retry only when the promised resource is incomplete/corrupt or the user requests another attempt; do not discard a useful independently inspected artifact merely because the terminal state differs.
|
|
90
90
|
|
|
91
91
|
## Implementation-level output profile
|
|
@@ -102,34 +102,34 @@ Open Design has demonstrated that a complex Web page can emit a machine-readable
|
|
|
102
102
|
|
|
103
103
|
A PNG may be a useful derived visual baseline, but it cannot be the sole source for implementation-level state, interaction, adaptation, accessibility or motion facts. Non-Web resources use the `reference` profile; do not manufacture HTML merely to satisfy this profile.
|
|
104
104
|
|
|
105
|
-
## Explicit entry and immutable identity
|
|
106
|
-
|
|
107
|
-
Provider project metadata may omit or stale its entry file. Resolve in this order:
|
|
108
|
-
|
|
109
|
-
1. validate an explicit project entry path when present;
|
|
110
|
-
2. enumerate project files;
|
|
111
|
-
3. identify the intended provider-native entry from the current run/output rather than guessing;
|
|
112
|
-
4. retrieve that exact file/artifact;
|
|
113
|
-
5. preserve an SHA-256 digest or immutable snapshot before selection/handoff.
|
|
114
|
-
|
|
115
|
-
A preview URL is mutable navigation, not immutable identity. It may be reported for convenience only beside project/run/entry provenance and a digest. If the user explicitly selects the resource for durable use, export or snapshot it to a user-approved location; never silently choose a repository path.
|
|
116
|
-
|
|
117
|
-
## Review proportional to intent
|
|
118
|
-
|
|
119
|
-
- **Exploration:** open/render the requested entry, confirm artifact count/scope and obvious corruption, then show it. Do not launch a packaging or validator sequence.
|
|
105
|
+
## Explicit entry and immutable identity
|
|
106
|
+
|
|
107
|
+
Provider project metadata may omit or stale its entry file. Resolve in this order:
|
|
108
|
+
|
|
109
|
+
1. validate an explicit project entry path when present;
|
|
110
|
+
2. enumerate project files;
|
|
111
|
+
3. identify the intended provider-native entry from the current run/output rather than guessing;
|
|
112
|
+
4. retrieve that exact file/artifact;
|
|
113
|
+
5. preserve an SHA-256 digest or immutable snapshot before selection/handoff.
|
|
114
|
+
|
|
115
|
+
A preview URL is mutable navigation, not immutable identity. It may be reported for convenience only beside project/run/entry provenance and a digest. If the user explicitly selects the resource for durable use, export or snapshot it to a user-approved location; never silently choose a repository path.
|
|
116
|
+
|
|
117
|
+
## Review proportional to intent
|
|
118
|
+
|
|
119
|
+
- **Exploration:** open/render the requested entry, confirm artifact count/scope and obvious corruption, then show it. Do not launch a packaging or validator sequence.
|
|
120
120
|
- **Handoff:** additionally perform the method-proportional source QA above, including relevant structure, states/transitions, viewport behavior, accessibility semantics, assets, obvious console/runtime errors and requested interaction hooks. State exactly what was and was not checked.
|
|
121
|
-
- **Selected-source preparation:** require explicit human selection basis, preserve identity/snapshot, and prepare downstream metadata. It still does not verify production behavior.
|
|
122
|
-
|
|
123
|
-
Provider self-checks, outer artifact sanity review and downstream project verification are separate evidence layers. Never claim native rendering, accessibility, responsive coverage, product correctness or acceptance unless the appropriate downstream project checks actually prove them.
|
|
124
|
-
|
|
121
|
+
- **Selected-source preparation:** require explicit human selection basis, preserve identity/snapshot, and prepare downstream metadata. It still does not verify production behavior.
|
|
122
|
+
|
|
123
|
+
Provider self-checks, outer artifact sanity review and downstream project verification are separate evidence layers. Never claim native rendering, accessibility, responsive coverage, product correctness or acceptance unless the appropriate downstream project checks actually prove them.
|
|
124
|
+
|
|
125
125
|
## Specialist paths
|
|
126
126
|
|
|
127
127
|
Figma, Penpot, OpenPencil, image, video, 3D/WebGL and other providers are optional upstream producers. Use one only when its collaboration/editability or native inspection value is material and its connector/auth/read/export path is operational. A listed plugin, URL, thumbnail or metadata response is not proof of usable native input. If a requested provider is unavailable, report the missing capability precisely, offer another artifact only when it preserves the requested design decision, and never relabel an export as native editable design. Every selected provider still emits repository-readable immutable resources through the same provider-neutral handoff.
|
|
128
|
-
|
|
129
|
-
## Failure and recovery
|
|
130
|
-
|
|
131
|
-
- Preserve provider diagnostics; do not replace failures with generated placeholders.
|
|
132
|
-
- Avoid unbounded polling or repeated blind reruns.
|
|
133
|
-
- Re-discover capability after provider upgrades or registry mismatches.
|
|
134
|
-
- If structured paths fail but a UI artifact exists, UI inspection may recover it while retaining the degraded-provider qualifier.
|
|
135
|
-
- If the provider is unavailable and no justified fallback exists, return `unavailable` with the minimum setup needed rather than generating with an unrelated image tool and calling it equivalent.
|
|
128
|
+
|
|
129
|
+
## Failure and recovery
|
|
130
|
+
|
|
131
|
+
- Preserve provider diagnostics; do not replace failures with generated placeholders.
|
|
132
|
+
- Avoid unbounded polling or repeated blind reruns.
|
|
133
|
+
- Re-discover capability after provider upgrades or registry mismatches.
|
|
134
|
+
- If structured paths fail but a UI artifact exists, UI inspection may recover it while retaining the degraded-provider qualifier.
|
|
135
|
+
- If the provider is unavailable and no justified fallback exists, return `unavailable` with the minimum setup needed rather than generating with an unrelated image tool and calling it equivalent.
|