Skip to content

Port #61/#62/#63: one-image icon prompt, honest seed provenance, size_class values - #129

Merged
CompleteDotTech merged 18 commits into
mainfrom
issue/61-scoped
Nov 1, 2026
Merged

CompleteDotTech merged 18 commits into
mainfrom
issue/61-scoped

Conversation

@CompleteDotTech

@CompleteDotTech CompleteDotTech commented Nov 1, 2026 •

Copy link
Copy Markdown
Contributor

What

Makes the repo-icon prompt honest for single-image generators, lists the valid size_class values in the error, and ports the epic review fixes that were still missing from main.

  • One-image icon prompt: no "four candidates" or "seed when supported" promises (E3.3.1 List allowed size_class values in the error and docs #62/E3.3.2 Reword the prompt and provenance block #63 contract). The Codex recipe (references/art-direction.md) now runs rule 7 as four single-image invocations with a per-slot empty/unreadable retry cap, exact returned paths and the first-readable-path fallback; the merged Document the Codex image-generation workflow and its pitfalls #64 four-candidate test pins are replaced by single-image invariants.
  • Provenance records what was actually requested, not a seed the generator ignored ("not supported" when absent).
  • An invalid size_class such as medium names the allowed values (WIDE, TALL, SQUARE, DIAGONAL) with their meanings.
  • Exact explicit contrast floors (the configured floor is measured on the exact colour, not the quantized bucket midpoint) and a bounded ground tolerance (out-of-range values are a usage error, exit 2, before any art path).
  • Docs: references/art-direction.md, references/content.md, SKILL.md, CHANGELOG.md.

Why

Resolves #61
Resolves #62
Resolves #63

Preserves the delivered #52/#57/#64 behavior.

Prior work

Searched open and closed PRs and issues for #61, #62, #63 and branch issue/61-scoped: no other PR covers this. Related merged work: #128 (#64 Codex recipe), #127 (#57), #126 (#52), #124 (#47). The original combined E3 candidate (baa3c02 / 71ffd4a) is kept as provenance only; this PR carries just the remaining scoped parts.

Tests and evidence (head 110387f352c855002d7d5834c5828605ef730a44, base main 3cb83c22ea9622e3b437d9a33d71e809d5cd99eb)

  • Exact-head VM: all four required commands (package tests, package validator, full pytest, quality validator) passed in the designated VM: 1290 passed, 11 skipped, 37 subtests passed (vm-110387f3...-result.json); whole-tree ruff passes.
  • Targeted acceptance on this head: all 7 icon assertions pass (configured contrast correct in both directions, legacy default unchanged, tolerance 0 and 12 accepted, 12.5/1000 a usage error with exit 2 and no output), and the actual recipe-guard run passes on this head and rejects the older contradictory 'one path' wording from 33bcb26.
  • Native Windows full suite (supplemental, owner log i61-r4 on this head): 1283 passed, 18 skipped.
  • Fixture: the previous production copy of the art-direction document used as a compatibility fixture was removed (it held real family palettes and asset paths); it is replaced by a 50-line synthetic legacy fixture (tests/fixtures/content/ART_DIRECTION.synthetic-legacy.md) that keeps only the old template syntax and the old four-candidate and seed wording. Both A/B compatibility assertions are kept. Original provenance stays in Git history.
  • Hosted CI on this exact head: all 14 required check runs (validate-package, pytest on ubuntu/windows/macos, validate; push and pull_request) completed with success; the PR is mergeable and clean against main with zero review threads.
  • Reviews on this exact head and base, all approve with zero findings and the source and issue criteria met: two independent Opus reviews (both claude-opus-5-5, native identities verified from the agent transcripts) and one Codex gpt-6.1-sol review at max effort (native Codex session verified; the lifecycle gates are coordinator-owned and were checked by the coordinator after the review). Earlier incomplete Sol attempts and the reviews on earlier heads (8f27ef1, 33bcb26, f2a0503) are history and were not used.
  • Limits: the VM checks exercise CLI, static and unit behaviour; they do NOT prove a new real image-generation run, and none was run for this candidate. Codex CLI help was verified on the host (read-only), not in a fresh VM image-generation run. The recipe wording is covered by static tests.
  • Non-blocking note: the references/art-direction.md tolerance sentence says the value must be finite and at least 0, while the CLI enforces 0 to 12; tracked as a wording nit, no behaviour impact.

🤖 Generated with Claude Code

CompleteDotTech and others added 5 commits November 1, 2026 01:32
Rewrite the icon generation recipe for single-image invocations:
pipeline rules 4 and 7, the option A template line, the Command notes
(CLI help does not prove generation), the image-path item 5, the
per-slot retry limits, sandbox item (c) and the provenance
"Images requested" line. Privacy, retrieval and $CODEX_HOME semantics
are unchanged. The Repository icon ground bullet is not changed.

Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com>
- size_class_help() lists WIDE, TALL, SQUARE and DIAGONAL with one-line meanings
- invalid SIZE_CLASS is recorded (needs-writer:SIZE_CLASS:invalid) and the error names the allowed values
- icon_prompt takes an explicit seed (--seed); without it the prompt and provenance say "not supported"
- prompt asks for one image; legacy four-candidate and "Use seed" phrases are rewritten
- output path is {repo}-1024.png

Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
…_class values

Replace the merged #64 four-candidate pins with single-image invariants;
add tests for size_class errors, --seed, and the legacy seed rewrite;
document in SKILL.md, references/content.md and CHANGELOG.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Nov 1, 2026 •

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review ⚠️ Failed 2026-11-01T05:55:47.754159Z
We couldn’t complete this review. Comment @codex review to try again.
8f27ef1 PR opened
🔒 Security Review ⚠️ Failed 2026-11-01T05:55:51.810208Z
We couldn’t complete this review. Comment @codex security review to try again.
8f27ef1 PR opened
ℹ️ 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" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@chatgpt-codex-connector

Copy link
Copy Markdown

You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard.
To continue using code reviews, add credits to your account and enable them for code reviews in your settings.

@chatgpt-codex-connector

Copy link
Copy Markdown

The account paying for this security review has reached its Codex usage limits. The payer can check the Codex usage dashboard. For personal accounts, using credits requires enabling “Use credits for security reviews” in Code review settings. If you do not manage the paying account, contact this repository's admins.

CompleteDotTech and others added 5 commits November 1, 2026 01:08
Item 5 and sandbox (c) now select the first readable path reported by the
same invocation, and count only runs with no readable path as empty.
Retry limits state the first-readable-path rule.

Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com>
…ance range

- icon_ground_tolerance: --ground-tolerance must be a finite dE from 0 to 12
  (CONTENT_DE); NaN, inf, negatives, bools and strings are usage errors.
  normalize_icon delegates to it; _cmd_icon validates before reading --in.
- icon_qa(exact_contrast=False): when set, the dominant ink is measured at the
  most common actual RGB in its 16-level bucket instead of the bucket midpoint.
  _cmd_icon sets it only when --min-contrast or icon_min_contrast is configured;
  the unconfigured default keeps the legacy midpoint measurement.
- Drop the now-unused math import.

Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
… range, first-readable-path recipe tests and docs

Tests reproduced on 8f27ef1: icon_qa(min_contrast=4.5) on solid #707070 over #F8FAFC measured the
bucket midpoint #787878 (4.22:1); --ground transparent --ground-tolerance 1000 gave icon-empty;
recipe item 5 and sandbox (c) dropped the readable fallback path.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
CompleteDotTech and others added 8 commits November 1, 2026 01:35
One invocation fills at most one candidate slot but may report several
paths; the candidate is the first readable reported path.

Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
… the recipe

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
…de compatibility

Rename the pre-#61 override compatibility test to use the minimal synthetic
legacy fixture (ART_DIRECTION.synthetic-legacy.md) instead of the full
production snapshot, and guard that the fixture stays synthetic and keeps
exactly one 'Produce four candidates.' line. Assertions are unchanged.

Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com>
Replaces the production-derived previous-bundled snapshot reference with a
minimal synthetic legacy template that keeps the old four-candidate and seed
wording. Original remains in git history (baa3c02, 71ffd4a).

Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com>
Remove the production-derived previous-bundled snapshot (kept in history at baa3c02/71ffd4a).

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

1 participant