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_annotator MUST suppress auto task=True when settings.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.