fix: purge stale Crush references from all docs

Remove references to crush.json, hooks/, and Crush-specific enforcement
from README, AGENTS.md, BASELINE-PROMPT.md, and PATTERNS.md. Generalize
the commit footer to be harness-agnostic (<harness/tool> placeholder).
Update PATTERNS.md decisions and scorecard to reflect the reversal:
Crush hooks were studied but deliberately not shipped.

The only remaining Crush mention explicitly states it is avoided for
portability. The .crush/memory/ dir is kept as an optional Crush feature.

💘 Generated with Crush

Assisted-by: Crush via Crush <crush@charm.land>
This commit is contained in:
2026-08-07 12:11:10 -05:00
parent 4633300a99
commit 3d83b07f30
4 changed files with 16 additions and 20 deletions
+5 -9
View File
@@ -3,8 +3,8 @@
This repo serves two purposes at once:
1. **It is a Gitea template repository.** Create new projects from it to inherit
the full best-practices stack from the start (AGENTS.md, git hooks, Crush
hooks, rules engine, Makefile, lifecycle scripts, gardening).
the full best-practices stack from the start (AGENTS.md, git hooks, rules
engine, Discourse/Redmine SoR policy, Docker-first conventions).
2. **It is the design source** that maintains the global baseline prompt and the
cross-project pattern extraction. New projects can delete `BASELINE-PROMPT.md`
and `PATTERNS.md` if they don't want the authoring context — or keep them as
@@ -15,12 +15,10 @@ This repo serves two purposes at once:
```
<new-project>/
├── AGENTS.md ← fill in the bracketed fields, delete the rest
├── crush.json ← 5 Crush PreToolUse hooks (behavioral guardrails)
├── hooks/ ← block-todos, enforce-bash, enforce-rules, audit-before-git, exit-protocol
├── scripts/
│ ├── setup-hooks.sh ← install git hooks (run once: make setup)
│ ├── pre-commit / pre-push ← fast audit / full audit + clean-tree gate
│ ├── check-rules.sh ← rule audit engine (shellcheck, image pin, container naming, required files, freshness, hygiene, tests)
│ ├── check-rules.sh ← rule audit engine (shellcheck, image pin, container naming, Discourse pointers, freshness, hygiene, tests)
│ ├── docker-run.sh ← canonical ephemeral-container wrapper
│ ├── up.sh / down.sh ← docker-compose lifecycle wrappers
│ ├── garden.sh ← doc-sprawl / Discourse-migration report
@@ -29,11 +27,10 @@ This repo serves two purposes at once:
├── STATUS.md ← agent scratchpad (token-efficiency; has Inbox)
├── WORKING.md ← the only task tracker (todos tool banned)
├── questions-v1.md ← git-tracked question log for the human
├── docs/JOURNAL.md ← append-only decision & pattern log
├── docker-compose.yml.example ← lifecycle template (copy to docker-compose.yml)
├── .env.example ← secrets/config template
├── .gitignore
├── .crush/memory/operational.md ← per-session operational memory skeleton
├── .crush/memory/operational.md ← per-session operational memory skeleton (optional, Crush-only)
├── BASELINE-PROMPT.md ← the global working principles (delete if unwanted)
└── PATTERNS.md ← the pattern extraction analysis (delete if unwanted)
```
@@ -56,8 +53,7 @@ make fast # confirm baseline passes
| Layer | What | How |
|---|---|---|
| **Git hooks** | mechanical checks at commit/push | `scripts/pre-commit` (fast audit + hot-path bypass), `scripts/pre-push` (full audit + clean-tree gate) |
| **Crush hooks** | behavioral guardrails at tool-call time | `hooks/` wired in `crush.json`: ban todos, block banned commands + host language tools, block banned file types, audit before git ops, exit protocol |
| **Rules engine** | shellcheck, image pinning, container naming, required files, doc freshness, WORKING.md completion, CNW markers, hygiene, test suite | `scripts/check-rules.sh` (`--fast` for pre-commit, `--quiet` for pre-push) |
| **Rules engine** | shellcheck, image pinning, container naming, required files, doc freshness, Discourse pointers, WORKING.md completion, CNW markers, hygiene, test suite | `scripts/check-rules.sh` (`--fast` for pre-commit, `--quiet` for pre-push) |
| **Makefile** | standard verbs everywhere | `make setup/fast/validate/lint/test/garden/up/down/status/clean` |
Configurable via env without editing hooks: `PROJECT_BANNED_COMMANDS`,