Working with coding agents and chat models is not only about context and prompts. Language matters too, vocabulary to be specific. A large share of bad outcomes comes from vague instructions.

As security analysts and engineers we already use dense acronyms and abbreviations for IOC, TDS, SSRF, FP false positive. Agent workflows have their own shorthands too. It's worth learning it, we talk to that software increasingly more.

Here is how you can steer the models with fewer words and less rework. This post is a field guide to LLM's language. It covers meaning of useful phrases, why they change behaviour, and ready to paste asks you can use in Codex, ChatGPT, Cursor, Claude Code, or any other agentic harness.

Why vocabulary changes outcomes

Models respond to constraints more reliably than to vague instructions.

If you say "test it", the model may run one check, and do nothing useful. If you say "smoke test the main entrypoint, then run the regression harness", the target is clear: one shallow live check, then a structured comparison against known good output.

If you say "fix it carefully", the model may refactor half the module. If you say "minimal additive fix, small blast radius, do not change the public interface", the edit stays narrow.

The phrases below are examples of compressed and focused expressions models are trained to understand. Used well, they reduce ambiguity in the same way precise malware family names reduce ambiguity in intel work.

Core operating modes

These phrases set the rules of engagement before the task starts.

PhraseMeaningSay this
Read-onlyInspect and report. Do not edit files."Read-only pass. Do not change any code."
Plan firstDesign before coding. Wait for approval."Make a plan. Wait for my approval before editing."
ImplementMake the changes now."Implement the plan as specified."
Out of scopeExplicitly do not touch this area."Out of scope: parser, exporter, batch mode."
In scopeMust cover this."In scope: quiet mode and JSON output only."
Blast radiusHow much else a change could affect."Keep blast radius small."
AdditiveAdd behaviour. Do not rewrite existing paths."Additive only. Do not rename return fields."
Narrow fix / minimal fixSmallest change that solves the bug."Minimal fix. No refactor."
Follow-upExtra work after the main result."Any follow-ups needed?"
CleanupStop leftover processes and temp artifacts."Cleanup background processes when done."

Example ask:

Read-only pass.
Root cause for why the export file is not created when results are empty.
No fixes.
Concise verdict first.

Testing language

Testing phrases tell the model how deep to go and what "done" means.

PhraseMeaningSay this
Smoke testTiny sanity check that the system is alive."Do a smoke test: start the tool, run one sample input."
Thorough passBroad coverage across flags and options."Thorough pass of all CLI flags and config options."
Spot checkQuick look at a few important cases."Spot check one empty result and one hit result."
MatrixGrid of combinations to run."Run a flag matrix for timeout and recurse."
Happy pathNormal successful use."Verify the happy path still works."
Edge caseUnusual but valid input."Cover edge cases: empty body, denied response, redirects."
Negative pathBad input on purpose."Negative path: bad auth token, unsupported scheme, broken JSON."
RegressionSomething that used to work and now fails."Check for regressions against the baseline."
Diff / driftDifference from expected output."Diff against baseline. Report any drift."
Gate / verification gateCheck that must pass before continuing."Verification gate: baseline_check must pass."
HarnessScripts that drive the tool and compare results."Run the fixture harness."
BaselineSaved known-good output for later comparison."Compare to baseline before claiming success."
FixtureControlled fake site or sample data for tests."Test against the local fixture data."
PASS / FAILResult of one check."Report a PASS/FAIL matrix. Do not fix."
FlakyPasses sometimes, fails sometimes."Is that check flaky?"

Smoke test deserves a plain English explanation. The term comes from hardware: power the device on and see if smoke comes out. In software it means a short check after a change. Not exhaustive. Just: does the main path still respond.

Example asks:

Thorough pass of the CLI and config options.
Read-only.
Report PASS/FAIL.
Do not fix anything.
After the fix:
1. Smoke test the main entrypoint
2. Run the regression harness
3. Spot check one empty result and one hit result

Change and design language

Use these when you want controlled edits instead of opportunistic rewrites.

PhraseMeaningSay this
Wire / wiredA flag is parsed and actually used by runtime code."Is --depth wired, or parsed and ignored?"
SurfacePublic options and fields callers can see."Document the full public interface."
ContractAgreed shape of inputs and outputs."Do not break the public interface contract."
SchemaStructure of JSON or records."Did the output schema change?"
Side effectExtra behaviour change beyond the goal."List side effects before implementing."
Breaking changeExisting clients must update."Call out any breaking change."
Backwards compatibleOld clients still work."Keep it backwards compatible."
IdempotentDoing it twice equals doing it once."Make the export idempotent."
Dead code / dead rulePresent but never executes."Is that pattern dead at load time?"
StubMinimal placeholder output or record."Write a clean stub into the export file."
Gate behind a flagFeature stays off unless a flag enables it."Gate local targets behind --allow-local."
DefaultValue used when the option is omitted."What is the default for timeout?"
OverridePer-request value wins over startup default."Can the request override startup defaults?"
CoerceConvert a value into the expected type."Coerce string true/false to bool."
ClampForce a number into a min/max range."Clamp timeout to 1 to 300."
DefangMake URLs and IPs safe to display."Defang by default. Option to disable."
NormalizeStandardize messy input into a canonical form."Normalize hostnames to full URLs."

Example ask:

Plan a minimal fix for the two CLI output bugs.
Small blast radius.
Additive if possible.
Do not change parsing or export behaviour.
Think through side effects, then wait for approval.

Debugging and security language

These phrases keep investigation honest and scoped.

PhraseMeaningSay this
Root causeThe real reason it fails."Root cause only. No speculative fixes yet."
SymptomWhat you observe, not why."That is a symptom. Find the root cause."
ReproExact steps that recreate the bug."Give me a repro command."
IntermittentNot reproducible every run."Is it intermittent?"
False positiveAlert on benign activity."Too many false positives on the sample corpus."
False negativeMissed real malicious activity."Any false negatives from the size cap?"
NoiseLow-value alerts that bury signal."Reduce noise from low confidence rules."
CoverageHow much of the attack surface you actually check."Does recurse improve coverage?"
SSRFTricking a server into fetching internal hosts."Confirm private destinations are blocked on every hop."
ReDoSRegex that can hang via catastrophic backtracking."Any ReDoS risk in that pattern?"
TOCTOUTime of check versus time of use race."Document the resolve then connect limitation."
Validate / sanitizeReject or clean unsafe input."Validate URL scheme before fetch."
Auth asymmetrySome routes need auth, some do not."Document auth asymmetry for status check vs action route."

Example ask:

Read-only.
Root cause for quiet mode emptying JSON stdout.
Include the exact code path.
No edits.

Process language for agent sessions

Agent harnesses work better when you define the workflow explicitly.

PhraseMeaningSay this
Pass / roundOne cycle of work."Do a read-only pass first."
PlanWritten approach before edits."Build a solid plan. Give it a second pass for side effects."
ApprovalHuman must confirm before edits."Wait for approval before changing code."
Implement the planExecute the written plan, nothing else."Implement the plan as specified. Do not edit the plan file."
Mark todosTrack progress against a checklist."Mark todos in_progress as you work."
Do not stop untilFinish the whole checklist."Do not stop until all todos are completed."
ConciseShort answer."Be concise. No filler."
High densityMaximum facts, few words."High density technical notes."
VerdictBottom-line result up front."Start with the verdict."
No extrasDo not expand scope."No extras. No drive-by refactors."

Example ask:

Implement the plan as specified.
Do not edit the plan file.
Mark todos as you go.
Verify with smoke + harness.
No extras.

Runtime and operations language

Useful when the agent starts services, runs tools, or pipes output.

PhraseMeaningSay this
BackgroundKeep a process running while other work continues."Start the local service in the background."
PortTCP listen number such as 3000."Bind the service to the configured port."
BindAddress the service listens on."Bind to 127.0.0.1 only."
Localhost / loopbackThis machine only."Block loopback unless --allow-local."
TimeoutAbort after N seconds."Use timeout 10 for batch runs."
ProxySend traffic through another host."Negative path: unreachable proxy, no traceback."
Exit codeProcess return status. 0 usually means success."Confirm exit code 0. 143 means we killed it on purpose."
Stdout / stderrNormal output stream versus diagnostics stream."JSON on stdout. Warnings on stderr."
PipeChain one command into another."Pipe quiet JSON output into a JSON parse check."

Performance language

PhraseMeaningSay this
BottleneckThe slowest part of the path."Where is the bottleneck?"
Cap / ceilingHard upper limit."Keep the content size cap."
TruncateCut content that exceeds a limit."Report truncated true when capped."
CacheReuse expensive work."Cache decoded content per item."
PrecompileCompile once at load, reuse later."Precompile patterns at startup."
ThroughputHow many jobs per unit time."Optimise for throughput on the sample corpus."
LatencyTime for one request."Keep batch latency low."
LeverA dial that trades speed for coverage."Which lever helps most: skip recurse or size cap?"

Example ask:

Read-only.
Find the matching bottleneck.
Measure before proposing a fix.
No code changes yet.

Phrases people say that are too vague

Vague askClearer ask
Test itSmoke test the main entrypoint, or thorough pass of all flags
Check everythingMatrix of CLI flags and config options. Report PASS/FAIL
Make sure nothing brokeRegression check against baseline. Run the harness
Quick lookSpot check or smoke test
Fix it carefullyMinimal fix, small blast radius, additive if possible
Don't change other stuffOut of scope: parser, exporter, batch mode
Is it working?Happy path smoke: start the tool and run one sample
Test bad stuffNegative path: bad auth, unsupported scheme, broken JSON
Optimize itFind the bottleneck, measure, propose one lever
Clean this upNarrow refactor with explicit file list, or leave it out of scope

Ready-to-paste templates

Investigate

Read-only.
Root cause for <problem>.
No fixes.
Verdict first, then evidence.

Plan

Make a plan to fix <problem>.
Small blast radius.
Think through side effects on existing modules.
Wait for my approval before implementing.

Implement

Implement the plan as specified.
Do not edit the plan file.
Mark todos in_progress as you work.
Do not stop until all todos are completed.
Verify with smoke + harness.
No extras.

Test without fixing

Thorough pass of all CLI flags and config options.
Read-only.
Report a PASS/FAIL matrix.
Do not fix issues. Propose a plan only if asked.

Safe change

Minimal additive fix.
Do not change the public interface contract.
Run the regression gate after.
Report side effects explicitly.

Security review

Read-only security pass.
Check private destination controls, auth, and input validation.
List findings by severity.
No code changes.

Performance

Read-only.
Identify the bottleneck.
Measure before and after candidates if you propose a fix.
Prefer the smallest lever that recovers most latency.

Docs

Update docs to match actual behaviour.
Direct technical tone.
No marketing language.
High density.

Mini dialogues

Vague:

You: Can you check the auth module?
Model: Starts changing code, or runs one random request, or both.

Precise:

You: Read-only thorough pass of the CLI and config options.
Report PASS/FAIL.
Do not fix.

Model: Runs auth, validation, option coercion, private destination checks, happy path.
Returns a matrix. No edits.

Vague:

You: Fix the output bugs carefully.
Model: Refactors printers, quiet mode, reports, and maybe the exporter.

Precise:

You: Two failures only:
1. quiet mode empties JSON stdout
2. export file missing when results are empty
Minimal fix. Small blast radius.
Do not change parsing or export behaviour.
Plan first for approval.

How to adopt this without overdoing it

You do not need every term in every prompt.

Use three layers:

  1. Mode: read-only, plan, or implement
  2. Scope: in scope and out of scope
  3. Proof: smoke, harness, matrix, or repro

That alone removes most ambiguity.

Then add domain terms when the task needs them: SSRF, regression, contract, blast radius, defang, coerce, clamp.

If the model drifts, do not argue with it in prose. Reset the operating rules:

Stop.
You are outside scope.
Return to the plan.
No extras.
Show the verification commands you will run.

One takeaway

Better agent outcomes can result from better communication, not just bigger models. Here is my own example I paste into a prompt when I want a small fix without the risk of model destroying my own code. I always worry that because I write code differently, much differently than LLMs, agent may start to refactor my function immediately because its not in their style of writing. So I enter this:

Make sure the plan includes checks for regressions. Keep blast radius small.
Do a thorough pass and a smoke test of all features. Make it additive.
Do not change unnecessary functions. Minimal fix. Do not refactor.
Plan should include testing and checks for regressions against the baseline.

You may have noticed, I always ask to create a plan first! Then I review it carefully. I like to add this as well in my very own simple words:

Once written, look at your plan and think through it again,
give it another pass to consider any possible implications it may have on existing modules and dependencies.
I don't want anything to break or to be negatively affected by this implementation.

Learn a small set of these phrases, reuse the templates, and your sessions get shorter, cheaper, and more reliable. Always give it mode, scope, constraints, and a definition of done.