Repository source: docs/plans/site_operations_page/site_operations_page_step3_development_plan.md
Debug mode: enabled
Effort study: railspike-effort / v3/site_operations_page; ledger. Standing P2 enrollment.
Extended estimates: enabled. Approval: Step 2 approved 2026-10-27; Step 3 drafted.
Follow-up to v3/high_traffic_toggle; intended branch reuse: feat/high-traffic-toggle.
Cycle estimate: 0.40
Completion Contract
Normal entry: Tools launcher or subnav → Operations (
/tools/operations/).End-to-end outcome: a manager signs enable/disable of high-traffic mode from Operations; state matches
./v3 high-traffic status. Non-managers see on/off read-only.Required recovery: short error with reload and
./v3 high-traffic restore; switch retryable by keyboard.Deployment/external: none; no production mode change, Apache, API or schema change.
Release condition: Feature Flags no longer has the row; Operations never cached by high-traffic/static paths; icons and layout verified in Word97/Chicago/Midnight plus light/dark at phone/desktop; runbook/CLI reference updated.
Key Risks
Caching of the new route: a private tools page served from high-traffic or static artifacts would leak stale/manager state. Validate in Stage 1 with the existing route allowlist/hint tests; mitigation: classify with the other tools routes, assert
hint('/tools/operations/')is false.Status exposure:
highTrafficStatus()errors can contain internal text. Validate in Stage 1 with a non-manager render; mitigation: pass only the effective mode to non-managers.Test coupling: browser and smoke tests reference the Feature Flags location. Move in Stage 1.
Stage 1
Estimate: 0.18
Goal: Operations page with the working high-traffic row, reachable from Tools, and the row removed from Feature Flags.
Dependencies: approved Step 2; branch reuse confirmed.
Expected changes:
ToolsPageSupportregistry:operationsentry (label “Operations”,/tools/operations/, one-line description).Application: GET route and access/route classification beside other tools.ToolsPageController::operations(): stringrenderingtemplates/pages/operations.phpwith tools nav, row (manager switch or disabled read-only switch with existing read-only hint), andhigh_traffic_control.jsonly for managers.feature_flags.php/featureFlags(): drop high-traffic row, data and script.Tests:
high_traffic_control.mjstargets Operations and asserts Feature Flags has no row;LocalAppSmokeTest/HighTrafficTestassert nav entry, active state, read-only render without error text and no cache hint.
Verification approach: browser test (signing on/off, failure, keyboard retry, unauthorized 403, 13 themes overflow);
php tests/run.php HighTrafficTest LocalAppSmokeTest FeatureFlagEvaluatorTest;feature_flags_toolbar.mjs; PHP lint.Estimate details: driver: new route/controller/template plus test moves; uncertainty: route classification lists spread across
Application.Risks or open questions:
Impact: page cached or status text leaked.
Early warning / validation: hint/allowlist and non-manager render assertions.
Mitigation: classify as private tools route; mode-only data for non-managers.
Canonical components/API contracts touched: tools registry/nav, Feature Flags row/switch styles,
high_traffic_control.js; prepare/finalize APIs unchanged.
Stage 2
Estimate: 0.07
Goal: Operations icon in the three icon themes and visual verification.
Dependencies: Stage 1.
Expected changes:
theme-nav-icons.cssicon (launcher and subnav selectors, plus the shared::beforesizing list); small layout CSS only if needed.Verification approach: real-browser screenshots of launcher, subnav and Operations row in Word97/Chicago/Midnight, light/dark at 375/1150px; inspect each icon.
Estimate details: driver: hand-drawn 16px SVG in existing style; uncertainty: icon legibility at small size.
Risks or open questions:
Impact: missing or misaligned icon in a theme.
Early warning / validation: per-theme screenshots.
Mitigation: follow existing icon pattern exactly.
Canonical components/API contracts touched:
theme-nav-icons.css.
Stage 3
Estimate: 0.05
Goal: documentation and closeout.
Dependencies: Stage 2.
Expected changes:
docs/runbooks/high_traffic_mode.mdUI path → Tools → Operations;docs/reference/v3_cli.mdmention if it names the UI location; UI copy audit checklist entry; Step 4 summary closeout and ledger.Verification approach: link/path checks,
git diff --check, grep for stale “Feature Flags → High-traffic” references.Estimate details: driver: doc edits; uncertainty: low.
Risks or open questions: stale references elsewhere; mitigation: repository grep.
Canonical components/API contracts touched: runbook, CLI reference.
Study checkpoint
Step 3 handoff, 2026-10-27 UTC: scope v1, start c462cc92, R1/P2, Claude Code single exposed rater. 0.40 projected total reaffirmed, independently judged. Stage-work originals S1 0.18, S2 0.07, S3 0.05; not summed. Additionally inspected Application tools routes, icon CSS and test references. No implementation or accepted outcome. Awaiting Approved Step 3; planning and ledger uncommitted.
— Claude Code · 2026-10-27 UTC · Model: claude-opus-5-5