feat(graphify): threshold signal from 200 tracked code files, the banner informs and the user decides

lib/graphify-gate.sh counts tracked code files (graphify's AST extension set, vendored trees excluded) and, from 200 with no graphify-out/graph.json, prints one banner-sized line; session-start shows it with the /graphify hint. Nothing is built, installed or updated: the rule is the user's (BDR-097), grounded in the LRN-162 measurements (AST build 2.3 s, 0 tokens, a query 2 to 3k tokens). Doctrine section and plugin-advisor thresholds follow the same rule; graphify claude install stays rejected. Test: 11 checks. GRAPHIFY_MIN_CODE_FILES overrides the threshold.
This commit is contained in:
bastien
2026-09-24 12:12:16 +02:00
parent 76ad5bb8d5
commit c81b1731af
6 changed files with 127 additions and 4 deletions
+8
View File
@@ -7,6 +7,14 @@ Format follows [Keep a Changelog](https://keepachangelog.com/).
## [Unreleased]
### Added
- **graphify threshold signal** — `lib/graphify-gate.sh` counts tracked code
files (vendored trees excluded) and, from 200 with no
`graphify-out/graph.json`, the session-start banner shows one line
(`graphify? N code files ≥ 200, no graph`) plus the `/graphify` hint. It
informs, the user decides: nothing is built or installed. Doctrine and the
plugin-advisor thresholds follow the same rule; measured on a 295-file PHP
project: AST build 2.3 s, zero LLM tokens, one query 2 to 3k tokens.
Test `lib/tests/graphify-gate.test.sh` (11 checks).
- **Branch deletion guard** — `gitflow_delete` (also `gitflow.sh delete
<branch>`) is the only path that deletes a branch: it refuses `main` and
`develop` (rc 6) and any branch not merged into develop or main (rc 5),