Skip to content

file the Codex GPT-6 prompt, which is not the GPT-5 one with a new name - #34

Merged
fengyat merged 1 commit into
mainfrom
prompt/codex-gpt-6-astra
Sep 5, 2026
Merged

file the Codex GPT-6 prompt, which is not the GPT-5 one with a new name#34
fengyat merged 1 commit into
mainfrom
prompt/codex-gpt-6-astra

Conversation

@fengyat

@fengyat fengyat commented Sep 5, 2026

Copy link
Copy Markdown
Member

Orca-Code-Review — push 1

Severity Count
P0 0
P1 0
P2 0
P3 0

✅ no blocking findings

prompt/CODEX/ held two prompts, gpt-5.6-sol and gpt-5.6-luna, both opening You are Codex, an agent based on GPT-5. This adds a third, gpt-6-astra-system-prompt.md at 21,269 bytes, which opens based on GPT-6 and reads as a rewrite rather than a revision.

The structure moved. It leads with "When to ask the user for permission" and "Autonomy and persistence", two sections neither GPT-5 prompt has, placed ahead of "Personality" — which is where both existing files start. sol carries its autonomy guidance far down, under "Rules for getting work done", and adds "File editing constraints" and "Destructive Actions" sections that this prompt drops entirely, folding the permission question into the opening instead. New on this side: "Apps (Connectors)", "Plugins", and a "Writing PR descriptions" subsection.

The tool surface moved with it. The prompt instructs batching through functions.exec with await Promise.allSettled([...]) and asks for clarification through functions.request_user_input_async — a JavaScript-shaped exec rather than the plain exec the two GPT-5 captures were recorded against.

Scrubbed, and checked rather than assumed: the skills list carries {{CODEX_HOME}} placeholders, and the file has no home directory, username, git identity, email, uuid, or long hex run left in it. LF endings and a trailing newline; .prettierignore excludes *.md, so fmt:check has nothing to say about it.

One gap, stated rather than papered over. The "What is here" table in capture/README.md gets no row here. Three of its columns — prompt as sent, tool count, prefix tokens — come from a capture's meta.json, and there is no capture folder behind this file. The README is explicit that the file on disk runs a few hundred characters shorter than the prompt as sent, so the byte count above is not that column's number, and writing it there would be wrong. The row goes in when the capture is rerun with node capture/capture.mjs codex --model gpt-6-astra.

Nothing reads prompt/ at runtime — it is the browsable collection, written by capture.mjs. mirrorPrompts repairs mirrors that have a capture behind them and leaves files without one alone rather than deleting them, so this sits safely until the table row lands.

What is missing, found after the first push

The file describes a section it does not contain, so the gap needs no comparison to establish. Line 130: Any skills available to you in the current session will be listed in the "## Skills" section under "### Available skills". There is no ## Skills heading anywhere in the file — the last heading is ## How to use plugins at line 163. Two more lines lean on that same absent catalog: line 132 explains what each of its entries holds (name, description, and a location for the SKILL.md), and line 148 says the catalog also carries the mapping from short aliases such as r0 to their filesystem roots.

Everything else in the file checks out on its own terms. It opens on the identity line, the heading tree descends without a skipped level, no XML-ish tag is left unclosed, and the last line ends on a complete sentence at the final bullet of "How to use plugins" — nothing is cut mid-word, and 21,269 bytes is not a truncation boundary.

The two neighbours say the same thing from outside: gpt-5.6-sol and gpt-5.6-luna are byte-identical through line 168 (17,767 bytes each) and diverge only in the session-injected tail — <skills_instructions> wrapping that skills catalog, then <permissions instructions> with sandbox_mode and the approval policy. That tail is 5,627 bytes on sol and 3,088 on luna, and this file has none of it.

What I cannot tell without the capture is why. The GPT-6 harness may send those blocks as a separate message rather than appending them to the system prompt, or they may have been lost on the way to this file. Settling it needs the capture's request.json — the same rerun that fills the README table row. The file is worth having either way; it is the static template, not a full recorded prompt, and the PR should be read that way.

🤖 Generated with Claude Code

https://claude.ai/code/session_01GnesN1z7KmCMggnbSc9joJ

`prompt/CODEX/` held two prompts, both opening *You are Codex, an agent based on
GPT-5*. This adds a third, `gpt-6-astra-system-prompt.md`, 21,269 bytes, which
opens *based on GPT-6* and is a rewrite rather than a revision:

- It leads with two sections neither GPT-5 prompt has -- "When to ask the user
  for permission" and "Autonomy and persistence" -- ahead of "Personality",
  which is where `sol` and `luna` start. `sol` carries autonomy far down, under
  "Rules for getting work done".
- It drops `sol`'s "File editing constraints" and "Destructive Actions"
  sections, folding the permission question into the opening instead.
- It adds "Apps (Connectors)", "Plugins", and "### Writing PR descriptions",
  none of which appear in either GPT-5 prompt.
- The tool surface moved. It instructs batching through `functions.exec` with
  `await Promise.allSettled([...])`, and asks for clarification through
  `functions.request_user_input_async` -- a JavaScript-shaped exec rather than
  the `exec` the GPT-5 captures were recorded against.

Scrubbed, and checked rather than assumed: the skills list carries
`{{CODEX_HOME}}` placeholders, and the file has no home directory, username,
git identity, email, uuid or hex run left in it. LF endings, trailing newline,
and `.prettierignore` excludes `*.md`, so `fmt:check` has nothing to say.

The "What is here" table in `capture/README.md` gets no row. Three of its
columns -- prompt as sent, tool count, prefix tokens -- come from a capture's
`meta.json`, and there is no capture folder behind this file. The README is
explicit that the size on disk is a few hundred characters short of the size as
sent, so the byte count above is not that column's number and writing it there
would be wrong. The row goes in when the capture is rerun.

Nothing reads `prompt/` at runtime. `capture.mjs` writes into it and
`mirrorPrompts` repairs files that have a capture behind them; a file without
one is left alone rather than deleted, so this sits safely until then.

Signed-off-by: fengyat <fengya.tian@continuum01.ai>

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01GnesN1z7KmCMggnbSc9joJ

@orcacode-review orcacode-review 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.

🐳 OrcaCode Review

No findings — nothing to flag in this PR. Great work!

OrcaCode Review — Route Smarter. Ship Safer. Spend Less.
Engine-reported: 131 calls · 3.8M tokens · 95% cached

❤️ Share · Install OrcaCode Review

Free on GitHub — the review runs on your own OrcaRouter key. If it helped, a shout-out goes a long way.

Share: X · Reddit · LinkedIn
Follow: X · Discord · LinkedIn · OrcaRouter

@fengyat
fengyat merged commit d04c8b4 into main Sep 5, 2026
5 checks passed
@fengyat
fengyat deleted the prompt/codex-gpt-6-astra branch September 5, 2026 09:42
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