Files
automaton/references/stop-hook-pattern.md
gitea 502f47eb21 Refactor: rename framework files to dot-prefixed lowercase, fix onboarding references, validate VRAM detection
- Rename AGENT.md -> .agent.md, RULES.md -> .rules.md, ONBOARDING.md -> .onboarding.md
- Rename BUG_REPORT.md -> .bug_report.md, ADVERSARIAL_BUG_REPORT.md -> .adversarial_bug_report.md, VERDICT.md -> .verdict.md
- Fix onboarding.md references to use new .onboarding.md path
- Fix stop-hook-pattern.md reference to use .onboarding.md
- Update README.md, config.md, install.sh, update.sh, prompts/*, references/*
- VRAM detection script validated and working
2026-06-12 12:40:15 -04:00

2.1 KiB

Stop-Hook Pattern (How to Enforce Task Completion)

This pattern prevents the agent from ending a session until the contract is satisfied, matching the article's recommendation.

Core Idea

Instead of relying on the agent to voluntarily output "CONTRACT_MET", the orchestration layer (you or a thin wrapper) only allows the session to terminate when the stop condition is met.

Implementation Options

Add this block to the end of implement.md, research.md, and any other phase that produces a deliverable:

## Stop Condition (MANDATORY)
You are not allowed to end this session until one of the following is true:
- You have produced the required output file(s) AND output the exact phrase "CONTRACT_MET"
- You have explicitly stated that the contract cannot be met and explained why

Until then, continue working or ask clarifying questions.

Option 2: Contract File as Gate

Every task folder must contain a {task-name}_CONTRACT.md.

The agent is instructed:

  • Read the contract at the start of the session
  • Only output "CONTRACT_MET" after every item in the contract has been verified (tests pass, files exist, acceptance criteria checked)

Option 3: External Orchestrator Hook (Strongest)

If using a thin wrapper script around the agent CLI:

# Example pseudo-wrapper
while true; do
  agent run --prompt "$(render_prompt implement.md)"
  if grep -q "CONTRACT_MET" last_output.txt; then
    break
  fi
  # Otherwise feed the failure back into the same session or new one
done

After the verdict or implementation, add:

## Final Gate
Before finishing, re-read the CONTRACT.md (if present) and confirm every line item is satisfied.
Only then output "CONTRACT_MET".

Files to Update

  • Add the stop condition block to:
    • prompts/implement.md
    • prompts/research.md
    • prompts/bug_finder.md (optional)
  • Update .onboarding.md to document this pattern under "Define Clear End States"

This turns the voluntary "CONTRACT_MET" into a hard mechanical requirement.