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
+12
View File
@@ -55,6 +55,14 @@ if [ -f "$_gf_lib" ] && git rev-parse --is-inside-work-tree >/dev/null 2>&1; the
fi
unset _gf_lib
# ── graphify threshold signal (BDR-097) ──
# Informs, never acts: one banner line when the repo holds ≥ 200 tracked code
# files and no graph. The user decides whether to build one.
GRAPHIFY_HINT=""
_gg_lib="$(dirname "${BASH_SOURCE[0]}")/../lib/graphify-gate.sh"
if [ -f "$_gg_lib" ]; then GRAPHIFY_HINT=$(bash "$_gg_lib" "$PWD" 2>/dev/null); fi
unset _gg_lib
# ── Toggle plugin detection ──
TOGGLE_ACTIVE=()
@@ -215,6 +223,10 @@ if [ -n "$GF_REFRESHED" ]; then
printf "│ 🪝 %-44s│\n" "${_gf_line:0:44}"
unset _gf_line
fi
if [ -n "$GRAPHIFY_HINT" ]; then
printf "│ 🕸️ %-44s│\n" "${GRAPHIFY_HINT:0:44}"
printf "│ %-40s│\n" "→ /graphify (AST, seconds) — you decide"
fi
# CLAUDE.global.md line-count guard (anti-regression). BDR-062 supersedes
# BDR-031's 275 target: 305 is the assumed reality (extraction done at
# job1; further compression costs clarity > token gain) — warn past 320.