bible-v1915-v1916-r24-r13-framework-promotions
Bible v19.1.5 + v19.1.6 — R24 task gating + R13 no-hardcode idiom framework promotion
Summary: Two Bible bumps shipped in one multi-hour session, closing framework-level gaps discovered via live MCP CPU anomaly + CI drift-check failure.
v19.1.5 — R24 backend-conditional task gating
- Bible § 4.5.1 + § Check 12.3.1 mandate:
install_annotatorMUST suppress autotask=Truewhensettings.docket.url == "memory://". - Rationale: pydocket
Worker.run_forever()+ cancellation listener poll memory backend at 10-20 Hz with no possible dispatcher — ~4% idle CPU per server for zero functional benefit. - Measured reclaim: fivetran-mcp 3.63%→0.23% idle CPU, blue-mcp-v2 4.41%→0.17%.
- Runtime lint:
await mcp.get_tasks()MUST return[]on memory:// backend (no exemption).
v19.1.6 — R13 no-hardcode idiom (Sweep 7.1)
- Bible § Sweep 7.1 promotes
f"Bible {c.get('framework_version', 'unknown')}"from skill-only Pattern 3 into framework-mandated. - Replaces hardcoded
"Bible v<X>.<Y>.<Z>"literals scattered across server.py (4 in fivetran pre-fix), which bypass R13’s single-source-of-truth principle. - Grep-check CI gate:
grep -rn --include='*.py' -E '"Bible v[0-9]+\.[0-9]+\.[0-9]+"' src/rejects literals unless in docstrings or test fixtures. - Discovered via Fivetran PR #10 CI: contract.yaml bumped v19.1.3→v19.1.5 but 4 strings didn’t cascade, /health reported stale framework, declared-vs-live failed.
Meta-pattern (applicable beyond this Bible)
Skill-first, Bible-second promotion: a concrete code idiom first proves itself in a skill’s Pattern section (shipped on trusted path). Only after it’s exercised via real pair builds does it graduate to framework-mandate with CI enforcement. Prevents premature codification of patterns that haven’t battle-tested.
Framework-principle + framework-enforcement separation: R13 the principle existed since v19.1.2 but had no code-level enforcement. R13 + Sweep 7.1 grep-check is the first example where the Bible ships both. Pattern: every MUST-level mandate should have a matching automated check in 09_VERIFICATION_PROTOCOL.md.
Cross-agent applicability
Any agent building MCP pairs using fastmcp 3.x + pydocket: apply the R24 gate unconditionally for memory:// backends; wire the Sweep 7.1 grep-check into pair-repo CI. Both are upstream-mandated via Bible v19.1.6 now.