damngoodprompts

ChatGPT / GPT (OpenAI)

Prompting ChatGPT and GPT models

Current guidance for OpenAI's GPT-5.6 family and GPT-6 Astra across ChatGPT and the API, including when to use Sol, Terra, Luna, or Astra.

Last reviewed: September 14, 2026Official docswebmobileapicoding-agent
Tip

What this model is particularly good at:

  • Broad ecosystem and tool-integration maturity, including Structured Outputs, function calling, and the Responses API
  • A model ladder from GPT-5.6 Luna and Terra up through Sol and the higher-capability GPT-6 Astra for capability/cost routing
  • Strong general-purpose performance on well-specified professional, research, coding, and writing tasks

Current model routing

ModelStatusBest fitAPI ID
GPT-6 AstracurrentHardest reasoning and longest-horizon agentic work; gated to Pro/Business/Enterprise in Chat and to Plus in Work/Codexgpt-6-astra
GPT-5.6 SoldefaultHighest-capability professional work, hard synthesis, coding, and complex planninggpt-5.6-sol
GPT-5.6 TerracurrentBalanced intelligence and cost for everyday API workloadsgpt-5.6-terra
GPT-5.6 LunacurrentCost-sensitive, high-volume calls and simpler production tasksgpt-5.6-luna

Which model to choose

OpenAI’s model ladder runs GPT-5.6 Luna, Terra, and Sol for cost/capability routing in the official model list, topped by GPT-6 Astra for the hardest reasoning and longest agentic runs. Use Sol when quality matters most within the GPT-5.6 family, Terra for a balanced production default, Luna when volume or latency matters more than reasoning depth, and Astra when a task genuinely needs the extra capability and your plan or product surface has access to it.

Astra is not a drop-in swap for Sol. Its reasoning effort levels are low, medium, high, xhigh, and max, with no none option, and OpenAI’s migration guidance says tool calling requires the Responses API and that temperature, top_p, and logprob parameters are no longer accepted.

The important prompting shift is that “use a better model” and “ask the model to think harder” are no longer the same instruction. Model choice, reasoning settings, verbosity, tools, and structured-output mode belong in the product or API settings when those controls exist.

Prompting in ChatGPT

In the ChatGPT GUI, write for the task, not the API. Pick the strongest available model for complex planning, research synthesis, coding, or ambiguous decisions. Pick the faster option for routine drafting, summarization, and transformations. OpenAI’s ChatGPT help docs say GPT-5.6 Sol powers Instant, Medium, High, and Extra High on eligible paid plans, with GPT-5.6 Sol Pro on Pro; Free and Go users default to GPT-5.6 Luna. GPT-6 Astra shows up as GPT-6 Pro in the Chat model picker on Pro $100, Pro $200, Business, and Enterprise plans; Plus plans get GPT-6 Astra only in ChatGPT Work and Codex, not ordinary Chat, and Free/Go users don’t get it at all.

Do not paste API-shaped configuration into the chat box as if it were a control panel. A sentence like reasoning.effort: high is just text in the GUI; use the product’s native reasoning slider instead. State the outcome, context, constraints, and what a good answer must include.

For GUI prompts, this structure is a checklist, not a required template. Labels can help when the prompt is long, but a plain paragraph works when it naturally includes the same information:

Context: what the model needs to know.
Task: what you want done.
Constraints: length, audience, exclusions, sources, risk tolerance.
Output: the form you want back.

Prompting through the API

Through the API, separate prompt content from platform controls. Use the model ID for routing (the gpt-5.6 alias routes to Sol; gpt-6-astra is a separate model ID, not an alias), use structured outputs when you need parseable data, and use tools/function calling for external actions. OpenAI’s reasoning controls include reasoning.effort (up to max), reasoning.mode: "pro", persisted reasoning via reasoning.context, and text.verbosity for default answer detail. Use them as request settings, not prose.

GPT-6 Astra changes some of those defaults. OpenAI’s migration guidance says tool calling requires the Responses API, temperature/top_p/logprob parameters are no longer accepted, and the lowest reasoning effort is low rather than none. To raise or lower reasoning effort mid-conversation without invalidating the cached prompt prefix, send a configuration_update input item instead of rewriting the request; two configuration_update items can’t be adjacent, and the mechanism doesn’t work with automatic history compaction.

Keep stable instructions at the top when prompt caching matters, and put volatile per-request data near the end; caching activates automatically once the matching prefix reaches 1,024 tokens. Avoid repeating the same rule in multiple places: repeated instructions add tokens and can create conflicts when one copy drifts during maintenance.

Codex belongs in the same mental model, but not as one fixed model claim. OpenAI’s ChatGPT-plan documentation says workspace admins can configure default Codex model behavior, and the Codex model docs describe model and reasoning controls. Treat Codex as a coding-agent surface inside the broader ChatGPT/OpenAI ecosystem, then verify the model and effort shown in that surface before copying API guidance into it. GPT-6 Astra in Codex additionally requires Codex CLI 0.153.0 or newer; an older CLI won’t show it as an option even on a plan that includes it.

Current prompting guidance

  • Be explicit about the task, audience, constraints, and output form.
  • Ask for visible reasoning only when you need an auditable explanation. Do not use “think step by step” as a generic quality booster.
  • For structured data, use a schema-constrained response feature when available instead of prose-only JSON requests.
  • Give examples when the desired style or classification boundary is hard to describe. Do not add examples just because an old template included them.
  • Treat search, code execution, file reading, and tools as capabilities to configure or request clearly, not as magic implied by a role prompt.
  • Set default answer detail with text.verbosity instead of repeating “be concise” in prose.
  • GPT-6 Astra defaults toward longer, more list- and Markdown-heavy answers than GPT-5.6; state a plain-prose or length constraint explicitly when you don’t want that.
  • Astra leans toward asking clarifying questions and pausing for approval; if you want it to finish a task end-to-end, say so and state the assumptions it should make instead of asking.

Examples

GUI prompt:

Compare these two pricing pages for a startup doing about 10 million input tokens
and 2 million output tokens per month. Explain the cost difference, the operational
tradeoffs, and which one you would pick if reliability matters more than saving the
last 10 percent.

Use only the pasted pricing text below. If a needed number is missing, say that.

API request skeleton:

{
  "model": "gpt-5.6-terra",
  "input": [
    {
      "role": "developer",
      "content": "Extract support-ticket fields. Use null for missing values."
    },
    {
      "role": "user",
      "content": "{{ticket_text}}"
    }
  ],
  "text": {
    "format": {
      "type": "json_schema",
      "name": "support_ticket",
      "schema": {
        "type": "object",
        "properties": {
          "category": { "type": "string", "enum": ["billing", "technical", "account", "other"] },
          "urgency": { "type": "string", "enum": ["low", "medium", "high"] },
          "summary": { "type": "string" }
        },
        "required": ["category", "urgency", "summary"],
        "additionalProperties": false
      }
    }
  }
}

Prompt upgrade example:

Stale pattern: “Reasoning Effort Level: HIGH. Think step by step and explain every part of your reasoning before answering.”

Better pattern: “Give me the recommendation and the assumptions that would change it. Keep private reasoning internal unless a specific tradeoff needs to be explained.”

Source set