Handoff → A runtime surface mapping
Handoff item
B contract (read-only)
A runtime surface
hand-wizard-runtime
Premium Wizard interactive runtime
docs/kb/data/premium_wizard.json
hand-enterprise-upload-runtime
Enterprise Upload + Hybrid Intake
docs/kb/data/enterprise_intake.json
docs/kb/data/source_mapping_engine.json
docs/kb/data/multi_source_intake.json
/runtime/enterprise-upload/ → open
(covered by enterprise-upload handoff)
Hybrid Intake workspace surface
docs/kb/data/hybrid_intake_workspace.json
/runtime/intake-workspace/ → open
hand-generated-assets-runtime
Generated Assets Navigator (SUB-1)
docs/kb/data/generated_assets.json
docs/kb/data/generated_assets_checklist.json
/runtime/generated-assets/ → open
hand-daily-possible-case-queue-runtime
Daily 07:00 possible-case queue
docs/kb/data/case_portal.json
docs/kb/data/ai_issue_analytics.json
docs/kb/data/alerting_model.json
Batch 2 addendum client-only interactive state · no server · no B write-back
Surface
Added in Batch 2
Storage · honesty
/runtime/wizard/
Step-nav buttons · progress bar · Save/Reset draft · click step card to activate
localStorage["ptt_wizard_draft_v1"] · browser-local · never sent
/runtime/generated-assets/
Per-card "📝 Claim review (local)" toggle · textarea reviewer note · Save/Clear · metadata line
localStorage["ptt_gen_review_notes_v1"] · does NOT write to B registry
/runtime/daily-queue/
Simulated live countdown per cell · pause/resume · reset baseline · intake-elapsed label
In-memory only · no persistence · no real cases · no real cron
Batch 2 preserves the Batch 1 invariants: contract-bound · no mutation path · no B write-back.
Intake-workspace + enterprise-upload scaffolds are unchanged in Batch 2 — both still render contract only.
Surgical fix 423c0e4 (Ops Portal strip · append-only) is logged as the first corrective step in Batch 2's commit record.
Batch 3 addendum Admin 2b hardening · FF 2b+ hardening · tenant rollout · hint system · append-first
Batch 3 is a local-dev hardening batch. No public endpoint changes · no write-back to B · no new main-console buttons.
Scope is explicit: deepen Admin 2b + FF 2b+ contract artefacts · stamp tenant rollout badge + contract-sourced hint panel on all 5 Batch-1 runtimes.
Deliverable
Added in Batch 3
Source · honesty
/runtime/admin-control-plane-service/ttl_examples.json
10 TTL evaluation examples · valid / near-expiry / just-expired / stale / not-applicable / unknown · prec-8 fail-safe documented
Contract-only · no TTL enforcer running · pairs with existing approval_examples.json
/runtime/feature-flags-service/phase_2b_plus_contract.json
Full 2b+ contract · delta_from_2b · 4 verification_modes · persistence_backend · cache_invalidation · policy_aware_sensitive_gating · rollout_visibility · 8-item deferred_matrix
No new runtime endpoint · artefact frozen for 2c migration parity
/runtime/feature-flags-service/cache_invalidation_contract.json
Channel ptt.ff.invalidate · key prefix ptt:ff: · 4 namespaces · 4 triggers · stampede protection strategy
NO cache in 2b+ · contract written for 2c Redis wiring
/runtime/feature-flags-service/jwt_verification_notes.json
5-priority resolution order · 4-mode matrix (verified / decode-only / dev-fallback / anonymous) · claim_expectation · security_bank
Decode-only runs in 2b+ · verified mode deferred to 2c (JWKS + aud=pty-feature-flags)
/runtime/feature-flags-service/persistence_backend_notes.json
Current file-backed state · planned Postgres schema (ff_flag / ff_tenant_override / ff_user_override / ff_audit) + Redis · 6-step 2c migration
No DB client · no alembic · no Redis in 2b+ — fully file-backed JSON
/planning/feature-flags-phase-2b-plus.html + /runtime/feature-flags-service/phase-2b-plus.html
Planning page (scope/non-scope/use cases/deferred) + runtime debug inspector (tabbed contract JSONs · 5 use-case cards · auto-rendered deferred matrix)
Read-only inspector · no endpoint calls · fetches 4 local contract JSONs
5 × Batch-1 runtimes
Tenant rollout card (tenant-zeroth · scope-tenant-only · FF candidate per surface) + hint guidance panel loaded from contract sources (not AI)
Contract-sourced · truncated strings · never hits Claude · appended before Honest Runtime Limits
Invariants preserved from Batch 1/2: contract-bound · no mutation path · no B write-back · no IA reshuffle.
Every surface keeps its existing Honest Runtime Limits block unchanged; Batch 3 only appends a rollout/hint section above it.
Batch 4 addendum infra-backed readiness · contract artefacts + planning pages · non-implementation
Batch 4 is a readiness-documentation pass for Phase 2c. Zero endpoints added. Zero code changes to app.py or policy_engine.py. Zero DB/Redis/JWKS wiring. What Batch 4 ships is the conformable target that FF 2c / Admin 2c must build against, plus the 42-item FF checklist and the 28-item Admin checklist that function as the cutover acceptance gate.
Deliverable set
New artefacts
Honesty
A · JWT / JWKS readiness (FF)
jwks_integration_notes.json · jwt_claim_examples.json (10 fixtures) · verification_mode_matrix.json (17 rows)
documented · not wired · verified mode remains decode-only in 2b+
B · Persistence schema + parity (FF + Admin)
FF persistence_schema.json · FF cutover_parity_matrix.json · Admin persistence_schema.json · Admin approval_store_examples.json (6 fixtures)
target DDL · no migration run · no schema in Postgres · file-backed remains authoritative
C · Redis / cache invalidation (FF)
cache_runtime_notes.json · redis_channel_examples.json (6 pub/sub kinds)
no Redis client wired · channel name reserved but no publisher / subscriber exists
D · Parity / cutover readiness (FF + Admin)
FF parity_test_matrix.json (17 vectors) · FF cutover_readiness_checklist.json (42 items) · Admin cutover_readiness_notes.json (28 items)
0 vectors executed · 0 items READY · checklists are the Phase 2c acceptance gate
E · Planning + coherence (discoverability)
planning/feature-flags-batch-4-readiness.html · planning/admin-control-plane-batch-4-readiness.html · Ops-Portal strip · index-catalog / appendix-catalog / fulltext-index / fulltext-sources updates
no new main-console button · no mutation path · append-only
Invariants preserved: no B write-back · no mutation path · no new endpoints · no IA reshuffle. All prior Batch 1/2/3 surfaces untouched (except the minimal Ops-Portal strip append and this addendum). The 5 Batch-1 runtimes still carry their Batch-3 Tenant rollout · Hint guidance block; Batch 4 does not re-enter those files.