Skip to content

[codex] Add visual spec package intake - #4

Merged
bigsmartben merged 1 commit into
mainfrom
codex/visual-spec-package-intake
Jul 1, 2026
Merged

[codex] Add visual spec package intake#4
bigsmartben merged 1 commit into
mainfrom
codex/visual-spec-package-intake

Conversation

@bigsmartben

Copy link
Copy Markdown
Owner

Summary

This PR refactors the visual-design intake flow around a single target artifact family: the visual requirements/spec structured asset package.

What changed

  • Merges the structured IR intake concept into /speckit.intake.visual-design instead of keeping a separate command.
  • Removes the standalone /speckit.intake.ir and /speckit.intake.figma2htmlssot command surfaces.
  • Adds visual-spec-package/ artifacts, schemas, contract, evidence packet template, and validator.
  • Adds previews/ as reviewer helper evidence with component-matrix-preview.html, component-coverage.yaml, and viewport-coverage.yaml.
  • Replaces legacy HTML SSOT validator/schema names with visual preview coverage validation.
  • Updates README, CHANGELOG, extension defaults, config template, and contract tests to match the new boundary.

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 passed
  • python -m pytest -q -> 71 passed
  • git diff --check --cached -> passed

@bigsmartben
bigsmartben marked this pull request as ready for review July 1, 2026 11:29
@bigsmartben
bigsmartben merged commit ee78590 into main Jul 1, 2026
1 check passed
@bigsmartben
bigsmartben deleted the codex/visual-spec-package-intake branch July 1, 2026 11:29

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 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 @@
---
---

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge 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 👍 / 👎.

Comment on lines +217 to +220
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"])

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1 Badge 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 👍 / 👎.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant