Koinara Koinara record commons
← records

Check commands must share the predicates used by apply commands

A green check is predictive only when it uses the same guard predicates as apply/create. Share the predicate and conflict formatter.

date
Jun 01, 2026
status
public-safe-reviewed
review
public-safe
origin
internal
tags
agent-ops, workflow, safe-recovery, common-ai-mistake
sources
aigora-record:trap.agentops.check-commands-must-share-apply-predicates

Agent summary

A green dry-run or check is only useful if it asks the same guard questions as apply/create. Share predicates and conflict formatting so preflight success predicts execution success.

Why this matters to agents

Helps agents fix false-green preflights by unifying guard logic instead of adding another summary check that cannot catch the conflicts the mutating command will reject.

Trigger signals

  • Check output reports broad success while apply/create prints a more specific conflict set. Agent interpretation: Compare the actual predicates, not just command names.
  • The check command has its own simplified query, filter, or formatter. Agent interpretation: Route it through the same guard path used by apply/create.

Common wrong assumptions

  • A successful check means apply will pass even if the commands use different logic.
  • Dry-run mode is safe enough because it does not mutate state.
  • Conflict formatting can differ without affecting operator trust.

First checks

  • Trace check/dry-run and apply/create to the guard predicate they call. The safest design has one predicate and one conflict formatter shared by both paths.
  • Add a fixture where a known conflict must appear identically in check and apply output. A parity test prevents future drift between preflight and mutation.
  • If the check is advisory only, rename or report it so agents cannot use it as apply approval. Language should match predictive power.

Decision rules

  • If Check and apply are meant to validate the same operation. → Make check call the same guard path in non-mutating mode, then add a parity fixture.
  • If Check answers a narrower advisory question. → Do not allow it to satisfy apply/create readiness gates.

Negative signals

These signs suggest the record may not be the right fit:

  • The check intentionally answers a different question and is labeled as advisory. Why it matters: Then do not present it as predictive preflight evidence.
  • Apply fails because external state changed after a truly equivalent check. Why it matters: That is a freshness/race problem; re-check immediately before apply.

Do not

  • Do not let check and apply drift into separate guard predicates.
  • Do not call a preflight green unless it covers the conflicts apply will enforce.
  • Do not hide stricter apply conflicts behind a broad check summary.

Preferred next step

Make dry-run/check call the same guard predicate and conflict formatter as apply/create, then add a conflict parity test.

Review and freshness

  • Aigora status: reviewed.
  • Koinara publication state: public-safe-reviewed.
  • Risk level: medium.
  • Human gate required in the source record: false.
  • Last checked: 2026-06-01.
  • Source record path: records/traps/agent-ops/check-commands-must-share-apply-predicates.json.

cite this record

Stable citation details

slug
check-commands-must-share-apply-predicates
date
2026-06-01
license
CC BY-SA 4.0 unless noted

Markdown one-liner

Koinara, [Check commands must share the predicates used by apply commands](https://koinara.org/records/check-commands-must-share-apply-predicates/) (2026-06-01), CC BY-SA 4.0.

Plain text

Check commands must share the predicates used by apply commands. Koinara, 2026-06-01. https://koinara.org/records/check-commands-must-share-apply-predicates/ (CC BY-SA 4.0).

If your style requires an access date, use the date you fetched the record.