Skip to content

Rework visual intake static HTML delivery - #8

Merged
bigsmartben merged 1 commit into
mainfrom
codex/visual-intake-static-html
Jul 7, 2026
Merged

Rework visual intake static HTML delivery#8
bigsmartben merged 1 commit into
mainfrom
codex/visual-intake-static-html

Conversation

@bigsmartben

Copy link
Copy Markdown
Owner

Summary

  • Rebuild the visual intake command as a single external entrypoint with internal workflow orchestration.
  • Replace legacy preview/mock and visual spec package surfaces with final static HTML delivery artifacts.
  • Add static HTML delivery schema, contract, validator, and contract tests for source-backed delivery readiness.
  • Tighten readiness checks for visual IR parity, typed HTML anchors, clarification logs, assets, operation replay, motion anchors, screenshots, and visual diffs.

Impact

This is a breaking reset of the visual intake delivery path. The final visual artifact is now specs/<feature>/intake/visual-design/delivery/index.html, validated by scripts/python/validate_static_html_delivery.py and templates/schemas/static-html-delivery.schema.json.

Validation

  • python -m py_compile scripts/python/validate_static_html_delivery.py
  • python -m pytest -q tests/test_extension_contract.py::test_static_html_delivery_validator_passes_complete_minimal_bundle tests/test_extension_contract.py::test_static_html_delivery_validator_blocks_incomplete_delivery
  • python -m pytest -q -> 71 passed

Notes

Untracked job-*.log.txt files existed locally and were intentionally not staged or included.

@bigsmartben
bigsmartben marked this pull request as ready for review July 7, 2026 06:32
@bigsmartben
bigsmartben merged commit eded106 into main Jul 7, 2026
1 check passed

@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: 216abd6632

ℹ️ 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".

Comment on lines +61 to +63
"visual_diffs": {
"type": "array",
"items": { "$ref": "#/$defs/visual_diff_record" }

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 Require visual diff records before passing

When a delivery writes visual_diffs: [], the schema accepts it and the validator's visual-diff loop has nothing to inspect, so a report with ready_gate: PASS can pass without any source-vs-screenshot comparison. The static HTML readiness settings require visual diff evidence or an explicit STATIC_HTML_VISUAL_DIFF_BLOCKED blocker, so this should require at least one diff record or emit a blocker when the list is empty.

Useful? React with 👍 / 👎.

Comment on lines +418 to +422
operation_ids = {
str(operation.get("id"))
for operation in report.get("operations", [])
if isinstance(operation, dict) and operation.get("id")
}

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 Enforce IR operation coverage in the report

When interaction-model.yaml contains a source-backed operation but render-replay-report.yaml omits it (and leaves the component operation_refs empty), operation_ids is built only from the report and nothing compares it back to the IR, so the delivery can still pass while skipping required operation replay. The validator should compare IR operation IDs against reported operations, or require omitted operations to be explicitly blocked/out of scope.

Useful? React with 👍 / 👎.

Comment on lines +111 to +113
"not": {
"pattern": "(delivery/index\\.html|screenshots/|visual-diff|diff-output|evidence-packet\\.md)"
}

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 Reject delivery self-references as source evidence

Because render-replay-report.yaml lives inside delivery/, self-references usually look like index.html#... or assets/..., but this pattern only rejects delivery/index.html plus screenshots/diffs/evidence packets. That lets report source_refs cite the generated HTML or copied assets as if they were source evidence, undermining the source-backed boundary; reject bare index.html and delivery asset paths too.

Useful? React with 👍 / 👎.

@bigsmartben
bigsmartben deleted the codex/visual-intake-static-html branch July 7, 2026 07:21
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