Skip to content

Document the Codex image-generation workflow and its pitfalls (#64) - #128

Merged
CompleteDotTech merged 23 commits into
mainfrom
issue/64
Nov 1, 2026
Merged

CompleteDotTech merged 23 commits into
mainfrom
issue/64

Conversation

@CompleteDotTech

@CompleteDotTech CompleteDotTech commented Nov 1, 2026 •

Copy link
Copy Markdown
Contributor

Change and affected skills

Documents the Codex image-generation recipe for repo icons in references/art-direction.md (command, where to read the image, per-slot retry policy, privacy and sandbox notes, observed-runtime labelling, per-candidate contract), with a one-line references/content.md alignment and a CHANGELOG entry. Adds static wording guards in tests/test_art_direction_recipe.py. No script or action changes.

Resolves #64
Resolves #65
Resolves #66

Prior work

Searched open and closed PRs and issues for the Codex image-generation recipe: no other PR covers it. Related merged work: #14 to #19 and #126. #20 was already merged. Open #13 (the #7 badges PR) is unrelated.

Evidence (tested head 8a61eff, base d221e70)

  • Exact-head VM: all four required commands (package tests, package validator, full pytest, quality validator) passed in the designated VM: 1258 passed, 11 skipped, 37 subtests passed (vm-8a61efff...-result.json). These checks exercise the static wording tests and the repository suites. They are NOT a new real image-generation run.
  • Static acceptance of the four accepted P3 wording items on this exact commit passed (static-p3-acceptance-8a61efff...json).
  • Local (supplemental, owner worktree): full suite 1251 passed, 18 skipped, 37 subtests passed.
  • Hosted CI on this head: validate-package, pytest on ubuntu/windows/macos and validate, all completed with success.
  • Codex CLI documentation: CLI help verified on the host (read-only), not a fresh VM image-generation run. The generated_images location and sandbox behaviour are observed runtime notes, not documented OpenAI behaviour; no model id is invented.
  • Reviews on this exact head and base, all approve with zero findings and all acceptance met: two independent Opus reviews (both claude-opus-5-5) and one Codex gpt-6.1-sol review at max effort. Native identities were verified from the agent and Codex session logs.
  • Resolved earlier findings: Sol P2 (unreadable-only output now counts as an empty attempt against the per-slot budget) and four Opus P3 wording items (plural reported paths, rule-7 vs option A template, second-round slots, normalize from the scratch copy). Earlier heads (1e0bdee, 2bb3e3a, e4cdb39) and their approvals are history and are not relied on.
  • Non-blocking nits recorded, no change needed: backtick formatting of the normalize --in command in item 4, labelling the zero-to-four path bound as observed, and a CHANGELOG mention of the second-round slots.

Process note

Two Haiku workers each edited both files beyond their one-file assignment. The Sonnet owner adopted exactly one authoritative edit per file (doc worker 1aec4e3 for references/art-direction.md, test worker e22c56b for the test file), preserved both source commits and recorded the deviation.

Boundaries

Docs and tests only. Activation keys, consent, private assets, approval gates and specialist entry points are untouched. Only public facts go into prompts, per the recipe. No registry release, visibility change or live external action is implied.

Family consistency

No shared contract change; no sibling PRs affected.

🤖 Generated with Claude Code

CompleteDotTech and others added 17 commits October 30, 2026 11:01
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Add a documented Codex recipe to references/art-direction.md: the
codex exec command for content icon prompt output, how to read the
image path from the run output (never the newest file), and the retry
and attempt limits. Link it from references/content.md and note it in
the changelog. Doc and test only; no behaviour change.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
- Remove the unverified "a retry has succeeded" outcome claim from the
  retry bullet; state only why a retry is allowed.
- Add a test that the recipe section makes no verification claims.
- Remove the blank line that split the new CHANGELOG bullet from the
  other Unreleased > Added bullets, so the list stays tight.

Doc and test only; no behaviour change.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
- Local-path guard now also rejects POSIX absolute (/tmp, /var),
  home-relative (~/), Windows drive-rooted (C:\ and C:/) and UNC paths.
  Regression cases cover each form. The reviewer's /tmp and C:\ examples
  passed the old regex; they are now caught.
- Existing-content guard now pins the heading sequence, every table row
  and the provenance record template against the e54952a baseline, and
  checks the Family additions line. A renamed heading, a changed table
  row or an altered provenance template now fails.

Test only; no behaviour change.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Add Privacy and Sandbox subsections to the Codex image-generation recipe
in references/art-direction.md: only public facts go into prompts, private
repository content stays out, and images are read from the generated-images
folder and never committed raw. Extend the recipe tests to cover them.

Co-Authored-By: Claude Sonnet 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>
… candidate

Co-Authored-By: Claude Sonnet 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>
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
…andidate contract

Static wording tests (mock evidence, not an image-generation run) that assert
the observed-runtime labelling, exact returned-path rule, no-unverified-URL
rule, and per-slot candidate contract in references/art-direction.md.
Existing tests are unchanged.

Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com>
- Add codex exec flags (--sandbox, --output-last-message, stdin '-') and
  state codex-cli 0.166.0 at the time of writing.
- Record model id only as reported, or 'not exposed'; never invent one.
- Label generated_images and sandbox-lock facts as observed runtime notes,
  not OpenAI documentation; always use the exact path from the run output.
- Each distinct returned path is a candidate; empty runs are retried per
  candidate slot (max 3 attempts), same unchanged prompt.

Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com>
…t in #64 recipe

Docs and static wording tests only; no behaviour change.

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

Copy link
Copy Markdown

Codex Review Summary

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

Review Status Commit Review trigger
🔒 Security Review ⚠️ Failed 2026-11-01T04:45:54.140126Z
We couldn’t complete this review. Comment @codex security review to try again.
2bb3e3a 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

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.

Timothy Wayne Gregg and others added 6 commits November 1, 2026 00:53
Add a static wording test asserting that a run reporting only unreadable
paths is an empty run that fills no slot and counts against each unfilled
slot's 3-attempt budget, ending in art-fail. Also asserts the sandbox
item (c) wording no longer allows unbounded retries.

Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com>
Unreadable-only Codex output now counts as an empty run against every
unfilled slot, so the recipe has a bounded three-attempt stop and
cannot loop. Reworded the path, retry, unreadable-path and sandbox
rules to match. Prompt template line unchanged.

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

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Item 1 reads every reported image path, the retry bullet distinguishes pipeline rule 7 from the option A template, the second rule 7 round opens four new slots with the same per-slot cap, and item 4 normalizes a scratch copy. Adds one static test asserting all four (local evidence only).

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Haiku 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

Development

Successfully merging this pull request may close these issues.

E3.4.2 Add the privacy and sandbox notes E3.4.1 Write the recipe Document the Codex image-generation workflow and its pitfalls

1 participant