Port of the PFVCluster gate to the global PreToolUse copy (all lanes):
prod-target remote.sh/remote-dns.sh invocations block without a filed
GLPI Change id (.crush/active-cr); dev-lane targets exempt; CR tooling
exempt. JSON error payload per house style. Functionally verified.
https://projects.knownelement.com/issues/767#note-4191
Machine-optimal global AGENTS.md (symlinked at ~/.config/AGENTS.md, picked
up by every crush lane) covering the alpha/beta/uat/prod doctrine
(prod = human release only), strict SDLC (red/green TDD, adversarial
review, code/tests/docs/ticket sync), gitea-redmine-discourse
cross-linking, and the 2026-08-31 rulings (no JOURNAL.md, sparse
STATUS.md, rolling table HUD).
Global enforcement layer: repo-scoped ticket-gate (crush PreToolUse,
all lanes) + universal git pre-commit/pre-push (core.hooksPath) that
delegate to repo-local check-rules.sh and chain installed .git/hooks.
Mechanically enforces ticket-governed work: blocks modifying operations
until an active ticket is set (echo '#NNN' > .crush/active-ticket).
Exempts read-only tools and management commands.
💘 Generated with Crush
Assisted-by: Crush:glm-5.2
Apply answers to questions-v1.md (Q1–Q5):
- Q4: Remove crush.json and hooks/ entirely. All enforcement is now portable
via git hooks (pre-commit/pre-push) + check-rules.sh + AGENTS.md prose.
Works under Crush, OpenWebUI, Hermes, or any agent framework.
- Q5: Remove docs/JOURNAL.md. Redmine is the system of record for work;
Discourse for docs. JOURNAL.md was a stopgap.
- Q3: Add mandatory Discourse pointer-header check to check-rules.sh. Any
non-exempt tracked .md without a Discourse URL FAILs. All projects, no
exceptions.
- Q2: Reference real CLI container invocation paths
(KNEL-AIMiddleware/{redmine,discourse}-cli/) in AGENTS.md instead of the
missing bin/ shortcuts.
- Q1: Note tea + docker login are preconfigured on TSYS workstations.
Also: make test default is now no-op pass so the template self-validates;
make validate now passes clean on the repo itself (17 PASS / 0 FAIL).
💘 Generated with Crush
Assisted-by: Crush via Crush <crush@charm.land>
Extract patterns from 18 projects across two machines (12 local infra +
6 remote personal/business via ssh survey). Ship a reusable Gitea template
with AGENTS.md, 5 Crush PreToolUse hooks, git pre-commit/pre-push, a
generalized rules engine, shared bash library, Makefile, lifecycle scripts,
and gardening loop. Includes the canonical BASELINE-PROMPT.md (13 sections)
and PATTERNS.md (standardization scorecard).
The repo self-applies: it passes its own shellcheck (zero info-level),
make fast, and all check-rules.sh checks.
💘 Generated with Crush
Assisted-by: Crush via Crush <crush@charm.land>