@blundergoat/goat-flow
Version:
AI coding agent harness and local dashboard for Claude Code, OpenAI Codex, Google Antigravity, and GitHub Copilot - setup audits, guardrails, structured skills, deny hooks, and persistent learning loops.
85 lines (69 loc) • 3.57 kB
Markdown
# Prompt: Create or Seed .goat-flow/learning-loop/footguns/
Paste this into your coding agent to create or update the footguns file.
Footguns are codebase-specific traps where a local-looking change breaks a
different part of the system through hidden coupling or stale assumptions.
---
## The Prompt
```
Create or update `.goat-flow/learning-loop/footguns/` for this project.
Use category bucket files, not one giant log and not one file per trap.
Examples: `.goat-flow/learning-loop/footguns/hooks.md`, `.goat-flow/learning-loop/footguns/setup.md`,
`.goat-flow/learning-loop/footguns/auditor.md`.
IF .goat-flow/learning-loop/footguns/ already exists:
MERGE with it carefully. Keep existing confirmed entries unless newer
evidence shows the footgun is resolved. Prefer appending a Status note
over deleting history.
IF .goat-flow/learning-loop/footguns/ does NOT exist:
Create the directory and seed with category bucket files for real,
code-proven footguns.
WHAT TO LOOK FOR:
- Cross-domain coupling where changing file A silently breaks file B
- Contracts duplicated across docs, templates, parser/scanner layers, or APIs
- Shared configuration that multiple surfaces depend on differently
- Files that MUST change together even though the code does not enforce it
- Rename/move hazards, path assumptions, generated-output drift
- Multi-step setup or rendering flows where a second code path bypasses
the normal invariants
- Any trap proven by the repo itself, not by general best practice
FORMAT - create or update a category bucket file like this:
---
category: hooks
---
## Footgun: [descriptive title]
**Status:** active
**Created:** YYYY-MM-DD
**Evidence type:** ACTUAL_MEASURED
**Symptoms:** [what a human sees go wrong]
**Why it happens:** [the hidden coupling or drift]
**Evidence:**
- `path/to/file.ext` → [what this file contains that demonstrates the trap]
- `path/to/other.ext` → [what this file contains]
**Prevention:** [how to avoid or verify against it]
If the trap is no longer active but still matters as history, keep the
entry and add:
**Status:** RESOLVED - [short reason]
RULES:
- Every entry MUST include file path evidence pointing to REAL code. Use grep-friendly semantic anchors - function names, unique strings, section headings, or `(search: "pattern")` markers - NOT line numbers. Line numbers shift on every edit and silently go stale (see ADR-024).
- Do NOT invent hypothetical footguns
- Do NOT include generic advice like "write tests" or "review carefully"
- Every footgun must be SPECIFIC to THIS codebase
- New entries should describe the smallest useful trap, not a vague theme
- If two entries are actually the same trap, merge them instead of creating
near-duplicate titles
- Split a bucket when it grows too large (roughly >200 lines or >10 entries)
PROPAGATION:
After creating footguns, check if any map to specific directories.
If a directory has 2+ footgun entries, note this - a local CLAUDE.md
file may be needed for that directory (Layer 2 local context).
VERIFICATION:
- Verify .goat-flow/learning-loop/footguns/ exists
- Verify the bucket file has `category:` frontmatter
- Verify every entry has file path references under Evidence
- Verify every new entry has Status, Created, Evidence type, Symptoms,
Why it happens, and Prevention
- If merged with existing: verify no confirmed entry was removed without
an explicit reason
- Report the count of total entries and new entries added
- Report any directories with 2+ footgun entries as candidates for local
instruction files
```