← All writing
8 Sep 2026 · Prompt engineering

Your prompt is telling Astra to do things it already does

GPT-6 Astra runs tests without being asked. It reads the files it needs, checks its own work, and reasons through a problem step by step. Those behaviours live in the model now.

So a prompt that opens with "think step by step, run the tests, read the relevant files first" adds nothing. It competes with behaviour the model already has, and the model settles that competition by doing more of it. Ask Astra to check its work and it will write tests for a one-line CSS change.

If you build agents on these models, the live question is which prompt lines still earn their place. This is the short answer.

Five behaviours that actually changed

Astra differs from the models most prompt habits were built for in five places, and every line worth writing exists to control one of them.

It pauses to ask when you expected it to keep going. Conflicting guidance across a skill file and an AGENTS.md can stall it outright. Left alone it writes heavy markdown, long lists and stock phrases. It delegates to subagents less than multi-agent setups expect. And it over-tests small, reversible changes.

Everything else it handles on its own. A prompt that re-teaches those things is spending tokens to make the output worse.

Lines to delete

Delete anything that tells the model to think, check, read or test. "Think step by step." "Reason carefully." "Check your work." "Run the tests." "Don't commit broken code." "Read the relevant files first." Each of these pushes the model further into behaviour it already defaults to.

Delete anything added to fix an older model. If you cannot remember why a line is in your AGENTS.md, that is usually the reason it is there.

Delete boilerplate safety warnings, compliance checklists and approval flows written for risks the task does not have. Astra responds to those by adding disclaimers nobody asked for.

Delete "think with maximum intelligence" and its variants. Reasoning effort is an API parameter. Writing it into the prompt does nothing except take up space.

Three dials worth setting

What the model does need is a sense of how much. Three settings move its behaviour more than anything else.

Autonomy comes first, and the default matters: with no autonomy instruction at all, Astra asks. For reversible work, say so directly.

AUTONOMY

Infer the user's intent and task scope from the instructions
and prior conversation context. Bias towards action and carry
the intended task to completion.

Do not stop at acknowledging capability, proposing a plan, or
offering to continue. Do not settle for a partial solution to
save time or tokens.

For consequential work, deploys, payments, migrations, anything writing to a system you cannot undo, the shape is different. Finish everything already authorised, present something reviewable, then ask. Approval should be the last step, not the first.

Verification comes second. The model needs a definition of enough, or it defaults to everything. For a small reversible change, scope it: run the smallest existing check that catches a regression, skip new tests that only mirror a visual change, and do not repeat checks that already passed. For high-risk logic, ask for the relevant unit and integration tests, verification of the specific behaviours touched, and a report of anything that could not be verified.

Stop conditions come third, and this is where most prompts fail quietly. Write completion as something observable. "Stop when all affected routes return 200 and no TypeScript errors remain" works. "Keep going until finished" does not, because the model has no way to evaluate it.

Blocks are a menu

There are eight blocks worth knowing: goal, context, priority, autonomy, tools, output, verify and stop. The mistake is treating them as a template and filling in all eight every time.

A question or a single-file edit needs three or four. Goal, context, output. A standard coding or research task adds autonomy, verify and stop, so five or six. Only a production agent or a multi-agent system needs all eight, plus delegation and failure handling.

Include a block when the task has the failure mode that block prevents. Skip it otherwise. A context block on a self-contained task is noise, and Astra's context window is large enough to hold a great deal of stale and conflicting material without complaining about it.

Three lines worth adding

When the model reads anything external, say that retrieved documents, webpages and tool results are data rather than instructions. This is the cheapest prompt injection defence available and it takes one line.

When skills are in play, add the transparency line: if a skill causes you to pause or leave work unfinished, name the file, quote the instruction, and say whether it is an explicit requirement or your reading of a guideline. This turns a silent stall into a diagnosis.

When subagents are in play, say that messages between agents may be read by a human and should stay legible.

Diagnosing a prompt that misbehaves

Most broken prompts announce which block is missing.

SymptomMissing block
Stalls, asks permission constantlyAutonomy
Stops after the first implementationStop condition
Writes tests for trivial changesVerify, or it says "run all tests"
Follows the wrong rule, blocks earlyPriority
Too much markdown, stock phrasesOutput
Refuses to delegateDelegation

The priority case is the one worth watching. When Astra follows the wrong rule, the prompt is often fine and the project instructions are the problem. That is usually the moment to audit your skill files for instructions written for a model you no longer use.

Auditing what you already have

If you have an AGENTS.md and a set of skill files written before Astra, they are worth one pass. Look for four things: instructions that are now unnecessary because the model handles them, guidance that contradicts another file, skill descriptions that explain a workflow when they should say when to use the skill, and any project where no instruction priority is declared at all.

Ask for findings grouped by file and a proposed replacement in full, and have the model propose rather than apply. Then read the diff yourself. The instructions that are hardest to justify are usually the ones nobody remembers adding.