[codex] Add visual spec package intake - #4
Conversation
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 749c0ec305
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| @@ -1,4 +1,4 @@ | |||
| --- | |||
| --- | |||
There was a problem hiding this comment.
Remove BOM before the command front matter
This command template now starts with a UTF-8 BOM before the opening ---. In contexts that parse command metadata by checking for the front-matter delimiter at the start of the file, /speckit.intake.visual-design will be the only command in this extension whose description block is not recognized after installation, unlike the other command templates that begin directly with ---. Remove the BOM so the front matter starts at byte 0.
Useful? React with 👍 / 👎.
| if not components or missing_preview_refs: | ||
| blocker_codes.append(BLOCKERS["FIGMA_NODE_COVERAGE_INCOMPLETE"]) | ||
| if missing_records or missing_visual_spec_refs: | ||
| blocker_codes.append(BLOCKERS["COMPONENT_STATE_COVERAGE_INCOMPLETE"]) |
There was a problem hiding this comment.
Compare required dimensions before passing previews
This readiness gate only blocks when authors explicitly add missing records, but the schema does not enforce that every value in required_dimensions appears in covered. A component can declare required states such as default and hover, cover only default, leave missing: [], and still pass preview validation, even though the preview contract requires every required state/variant/viewport to be covered or recorded missing. Please derive the expected dimension coverage from required_dimensions and emit VISUAL_PREVIEW_COMPONENT_STATE_COVERAGE_INCOMPLETE for uncovered combinations.
Useful? React with 👍 / 👎.
Summary
This PR refactors the visual-design intake flow around a single target artifact family: the visual requirements/spec structured asset package.
What changed
/speckit.intake.visual-designinstead of keeping a separate command./speckit.intake.irand/speckit.intake.figma2htmlssotcommand surfaces.visual-spec-package/artifacts, schemas, contract, evidence packet template, and validator.previews/as reviewer helper evidence withcomponent-matrix-preview.html,component-coverage.yaml, andviewport-coverage.yaml.Why
The goal is high-fidelity visual/UI delivery from design-source evidence. The target deliverable should be a structured visual requirements/spec asset package, while preview HTML remains only a human review mirror for coverage completeness.
Impact
Downstream workflows now consume
visual-spec-package/as the structured target. Preview coverage can still support review, but it no longer acts as a target implementation artifact or source of truth.Validation
python -m pytest -q tests/test_extension_contract.py -k "visual_previews or visual_spec_package or manifest_loads or config_template"-> 30 passedpython -m pytest -q-> 71 passedgit diff --check --cached-> passed