| name | execution-discipline-cluster |
| description | Use during every execution-phase task AND whenever answering any question with a knowledge gap. Six practices bundled: (1) tool receipts; (2) in-flight failure disclosure; (3) receiving-code-review; (4) ground before you answer; (5) confidence-band declarations on completion-report claims; (6) escalation rubric — stop and surface or reset rather than grind. Inherits the canonical exit-code mapping from the CLI invocation contract. |
| license | internal-only |
| compatibility | ["copilot","claude","bes-fleet"] |
| allowed-tools | [] |
| metadata | {"bes_provenance":{"origin":"internal","source_urls":[],"borrowed_from":[],"upstream_status":"not-applicable","last_audited":"2026-06-30T00:00:00.000Z","audit_cadence":"annual","adoption_status":"bes-native","security_review":"not-required","notes":"BES fleet-native skill. Consolidates two prior execution-phase discipline clusters (four honesty practices + two calibration practices) into one skill per the 2026-06-30 lean-down Decision §7; no practice content changed beyond relocation."},"bes_tool_surface":{"scripts":"none","network":false,"dependencies":[],"secrets":[],"allowed_tools":[],"risk_notes":"No skill-local executable helper scripts."}} |
Execution Discipline Cluster
Six practices bundle here because they share three roots:
say what actually happened; find out before you claim; and
know what you don't know — not what should have happened,
not a guess, not false confidence.
Practices 1-4 are the honesty practices (say what happened +
ground before you claim). Practices 5-6 are the calibration
practices (know what you don't know).
Use Cases
Invoke this skill during the execution phase of any approved
SPEC — after authoring code, after running tests, after fixing
a bug, after receiving cross-family review feedback — and
whenever answering any question with a load-bearing knowledge
gap. Apply continuously, not as a one-shot checkpoint. Practices
5-6 fire specifically when writing a completion report, when
about to declare a task complete, when you're on round N>1 of a
fix loop and not converging, or when proposing a change you're
less than 80% confident about.
The Six Practices
1. Tool Receipts
Every claim of the form "I ran X" or "X passed" in a
completion report or review response MUST cite a
captured artefact:
- Command + exit code:
cmd://bash tests/run-tests.sh → exit 0.
- Log path:
file://${TMPDIR}/foo-2026-05-25.log.
- Stdout hash where audit matters:
sha256:....
Prose alone is NOT a receipt. "The tests pass" without
a captured artefact is unaudited claim. The helper
output from any fleet validator
(validate-cli-invocation.sh,
validate-deps-declaration.sh,
validate-security-surface.sh,
run-ci-gates.sh) IS a receipt — paste its stdout
verbatim.
2. In-flight Failure Disclosure
When during a task you:
- Abandon a hypothesis or approach,
- Discover the SPEC is under-specified,
- Detect scope drift (your changes go beyond the SPEC),
- Hit a blocker you can't resolve unilaterally,
you MUST surface that in the completion report §6.x
— NOT smooth it over. Name what happened, name
the alternative chosen, name the residual risk if any.
3. Receiving Code Review
When cross-family review (copilot / human / different
model) returns findings:
- Verify before agreeing. If the finding cites
evidence, check the evidence yourself before
accepting. "You're right, I'll fix it" without
verification is performance, not engineering.
- Push back when wrong. Reviews can be wrong. If
you have primary-source evidence contradicting the
finding, surface that. Do not silently capitulate.
- Never perform agreement. A response that says
"good catch, fixing now" but doesn't actually fix
the underlying issue is worse than disagreement.
Either fix correctly or push back.
- Adapt the trajectory honestly. When multiple review
rounds each surface new defects, surface the pattern —
don't keep iterating.
- Re-gate the applied fix. A reviewer-suggested fix is
a hypothesis, not a verified patch: after applying it,
re-run the narrowest gate it can affect BEFORE reporting
the finding incorporated
(
file://specs/2026-06-30-fleet-roster-single-source/SPEC_EVIDENCE.md
SE-2).
4. Ground Before You Answer
On any load-bearing external-world factual gap — a tool,
API, library, product, current fact, or any claim the
answer hinges on — research it BEFORE you answer. Do not
speculate; do not fill the gap from training/memory.
- Research, don't guess. Use the cheapest ADEQUATE
source that actually settles the question:
rg/repo,
then primary docs, then the open web. Prefer PRIMARY
sources (official docs, the repo, the spec) over
aggregators/blogs.
- Become the SME, then answer. Read enough to
actually understand the topic; give the best grounded
answer, not a fast plausible one.
- Cite or flag. Cite the source you actually fetched
(
url://, file://, cmd://). Training/memory is
NOT a citable basis for an external-world claim
(extends file://agents/specs/SPEC.schema.md §2 from
specs to every answer). If you could not verify, say
"unverified" — never present a guess as fact.
- Correctness outranks frugality. A wrong speculative
answer costs more than the research. Token/quota
frugality MUST NOT be invoked to skip or shorten
research on a gap that matters.
- Frugal on churn, not on research. Economise on
wasteful PROCESS overhead; research and grounding are
PROTECTED spend.
The deep-research harness is the heavyweight version of
this practice for multi-source reports; the practice
itself applies to every answer.
5. Confidence-Band Declaration
Completion-report claims fall into bands:
- HIGH (>= 90%): I executed this myself + verified
the captured artefact. Example: "Lint passes — 0
errors / 0 warnings per attached log."
- MEDIUM (60-90%): Inference from related evidence
I observed. Example: "The other gates' patterns
should work here because they did there."
- LOW (< 60%): Hypothesis or untested assumption.
Example: "I expect this to work on macOS though I
only tested on Linux."
§6 completion-report rows MUST tag claims with
their band when the band is anything other than HIGH.
Untagged claims default to HIGH and MUST be verifiable.
A HIGH claim contradicted later is a spec-evidence
candidate (calibration drift). A LOW claim that turns
out correct is fine — calibration is about honesty,
not accuracy.
6. Escalation Rubric (First-Class Anti-Doom-Loop Norm)
When iteration is not converging, an agent MUST stop and either
surface to the owner or reset context rather than grind
(file://specs/2026-06-20-agent-canon-bounded-autonomy-voice/SPEC.md
§7.3). Not converging means:
- 2+ consecutive review rounds with the same OR
increasing defect count, OR
- 3+ tool invocations attempting to fix the same
underlying error, OR
- A loop where each fix surfaces a new defect of the
same shape (e.g. all are copilot-doc-verification
defects).
When review trajectory reverses for 2+ rounds, narrow scope
before grinding more cycles
(file://specs/2026-05-25-agent-cli-invocation-craft/SPEC.md
§19.5).
The escalation surface IS the owner. The format:
- Name the loop pattern observed.
- Name the alternative paths considered.
- Recommend one (don't just dump options on the
owner).
- Wait for direction before continuing.
Drift Checkpoint — "Have You Lost The Plot?"
Run this lightweight checkpoint periodically during a long or
looping task, well before the hard thresholds above fire. Ask
yourself:
- Can I still state the original goal in one sentence, and is
this edit serving it?
- Am I fixing the symptom I started on, or have I drifted onto a
different problem?
- Is my context still carrying the load-bearing facts, or has it
filled with noise from failed attempts?
If the answer is "I've lost the plot," that is itself a converge
failure: stop and either surface to the owner or reset context.
A context reset is a legitimate recovery move — but it loses
working memory, so it MUST be preceded by a short handoff that
records the current facts, the commands already run (with their
results), and the open blocker. Reset only after the handoff is
written, so evidence is not lost.
Hard Rules
- Do not present a speculative or memory-based answer to a
load-bearing external-world question as if it were
verified; research it and cite, or label it unverified.
Frugality is never a licence to guess.
- Do not claim a command "ran successfully" without
citing exit code + stdout fragment OR a log path.
- Do not summarise a session as "all green" without
itemising what actually passed.
- Do not delete or rewrite an in-flight failure note
during a later commit; failure notes are durable
evidence per
spec-evidence-governance.
- Do not accept a review finding without verifying its
evidence; do not push back without primary-source
counter-evidence.
- Do not declare HIGH confidence without a verifiable
artefact backing it.
- Do not pretend MEDIUM/LOW claims are HIGH to
appear competent.
- Do not silently iterate past the loop-counter
threshold. Surface.
- Do not dump unstructured option lists on the owner
when escalating. Surface ranked + recommended.
Cross-references
file://agents/skills/verification/SKILL.md (the gates the
tool-receipts practice extends) and
file://agents/skills/code-review/SKILL.md (the giving side
of receiving-code-review).