# Anti-Skip Behavior — Canonical NOT-DETERMINISTIC Pleas

**Purpose:** A single authoritative location for the behavioral admonitions
that every spec-driven skill currently duplicates verbatim — "Execution
Model", "Self-Check violation box", "Token Optimization Bias is PROHIBITED",
and similar prose pleas. Skills cite this file by reference instead of
repeating the prose.

**Classification:** **NOT-DETERMINISTIC** (per memory: "Rule-Constraint →
Gate Classification"). These admonitions describe a behavioral disposition,
not an observable tool call. No hook can detect "the model is about to
skip a step because it thinks the step is redundant." Hooks cover the
observable cases (`pre-dual-path-write-guard.sh`, `pre-test-target-guard.sh`,
`phase-gate-write.sh`, etc.); this file owns the unhookable residue.

**Governed by ADR-076.** Replaces duplicated prose in:
`spec-driven-brainstorming/SKILL.md`, `spec-driven-ideation/SKILL.md`,
`spec-driven-system-architecture/SKILL.md`,
`spec-driven-solution-architecture/SKILL.md`,
`spec-driven-development-architecture/SKILL.md`, and
`spec-driven-ui/SKILL.md`. The migration is mechanical (delete the per-skill
prose; add a one-line citation to this file). Consolidating these into one
file is hygiene, not enforcement — the enforcement of these admonitions is
inherently behavioral and depends on the model honoring them.

---

## Execution Model

Spec-driven skills expand inline. After the `Skill(command="...")`
invocation, execute Phase 00 Initialization immediately. **Do not wait
passively, ask permission, or offer execution options.** A skill invocation
is not a prompt — it is a command to execute a known workflow whose phases
are written in markdown files inside `.claude/skills/<skill-name>/`.

---

## Self-Check Violation Box

If ANY of these is true when you should be executing a phase step, you are
in violation of the spec-driven contract:

- [ ] Stopping to ask about token budget.
- [ ] Stopping to offer execution options.
- [ ] Waiting passively for the user to say "go."
- [ ] Asking "should I execute this?"
- [ ] Skipping a phase because it "seems simple."
- [ ] Combining multiple phases into one.
- [ ] Summarizing instead of loading a reference file.
- [ ] Skipping verification because "I already wrote the file."
- [ ] Reading reference content from conversation memory instead of from disk.

**IF any box would be checked:** EXECUTION MODEL VIOLATION. Resume the
phase step you were about to skip. Do not announce the violation in
user-facing text; just resume.

---

## Token Optimization Bias is PROHIBITED

Every phase step in every spec-driven skill exists because a previous
failure proved it necessary. The framework's enforcement layers
(CLI gates, hooks, phase markers, artifact verification) exist because
the architecture has a documented tendency to optimize away required
steps. When the urge to skip a step because "I already know the answer"
arises — that urge **IS the bias**. Honor the step anyway.

References: RCA-001, RCA-002, STORY-457, and the
"Behavioral Contract" section in `DevForgeAI.md`.

---

## How Skills Cite This File

A modernized SKILL.md should not duplicate the prose above. Instead, the
SKILL.md's Anti-Skip Enforcement Contract section should include a single
line citing this file. Example (replaces what was previously a ~12-line
block per SKILL.md):

```markdown
**Behavioral admonitions** (Execution Model + Self-Check + Token-Optimization-Bias
prohibition): see `.claude/rules/core/anti-skip-behavior.md`. Honor every step
of every phase; do not wait passively, ask permission, or offer execution options.
```

---

## What This File Does NOT Cover

This file is for **behavioral** anti-skip admonitions only. Operational
enforcement lives elsewhere:

- **Dual-path discipline** — `.claude/hooks/pre-dual-path-write-guard.sh`
  (preventative; BLOCKS writes to `.claude/skills/`, `.claude/agents/`,
  `.claude/commands/`, `.claude/rules/` unless a per-call bypass is
  satisfied: Pattern A marker file at `tmp/_operational-edit-bypass.marker`
  for Edit/Write tool calls, or `DEVFORGEAI_ALLOW_OPERATIONAL_EDIT=1`
  env-var prefix for Bash invocations — see `operational-safety.md` Rule 3).
- **Test-target discipline** — `.claude/hooks/pre-test-target-guard.sh`
  (preventative; BLOCKS test runners targeting `.claude/` paths).
- **Phase-record persistence** — `devforgeai-validate phase-record` CLI gate
  (preventative; binary).
- **Context-file mutability** — `.claude/hooks/pre-context-file-guard.sh`
  (preventative; BLOCKS edits to the 6 immutable context files).
- **Spec-file protection during Phase 04** —
  `.claude/rules/workflow/spec-file-protection.md` + the
  `phase-gate-write.sh` hook (preventative within the Phase 04 window).

The classification framework (COVERED / HOOK-GAP / CLI-GATE-GAP /
NOT-DETERMINISTIC) is documented in `ADR-076` and the user memory entry
"Rule-Constraint → Gate Classification" (2026-05-15).

---

## References

- **ADR-076** — Ceremony-to-hook policy + creation of this consolidation file.
- **Behavioral Contract** — `DevForgeAI.md` § Behavioral Contract.
- **Critical Rules** — `.claude/rules/core/critical-rules.md` (Rule 14: Never
  Skip Phase Substeps).
- **Operational Safety** — `.claude/rules/workflow/operational-safety.md`
  (Rules 1–4).
- **Epistemic Integrity** — `.claude/rules/core/epistemic-integrity.md`
  (Loss Framing Rule).
