Validation: docs: update docs/ for consolidation and codify sprint philosophy

validation-67-2026-06-23 Doc

validation pass

Verdict: PASS

Ticket

ldraney/paldocs#67 (board item #1571 on board-paldocs) — Update docs/ to reflect Rails schema ownership (post-consolidation) and create docs/sprint-philosophy.md codifying sprints as flat parallel batches.

Environment

Production: paldocs.tail5b443a.ts.net (Tailscale funnel). Repo content verified via git clone of main branch post-merge.

Checks

# Criterion How Verified Result Evidence
1 All internal doc links in README resolve (6 docs) Parsed README for <code>(docs/*.md)</code> links, checked each file exists on disk PASS 6/6 files exist: architecture.md, data-model.md, infrastructure.md, user-stories.md, auth-visibility-architecture.md, sprint-philosophy.md
2 No broken cross-references between docs Extracted markdown links from all docs/*.md files, verified targets exist PASS infrastructure.md -&gt; data-model.md (exists), architecture.md -&gt; data-model.md (exists)
3 Zero stale references to Alembic, pal-e-api, or FastAPI in docs <code>grep -rin "alembic\|pal-e-api\|fastapi" README.md docs/</code> PASS Zero matches
4 shared-database.md deleted Checked file existence on disk PASS File does not exist in docs/
5 sprint-philosophy.md created with correct content Verified file exists, 50 lines, opens with expected heading and definitions PASS File present, covers: definitions, core rules, DORA alignment, waves vs sprints, label convention
6 README no longer references shared-database.md <code>grep "shared-database" README.md</code> PASS Zero matches
7 All doc files reflect Rails as sole schema owner Verified key sections: data-model.md "Schema Ownership", architecture.md "Rails Role", infrastructure.md "Database Migration", auth-visibility "Context" PASS All sections correctly state Rails is sole migration authority; no Alembic/FastAPI/pal-e-api references

Route-Level Smoke Test

Route HTTP Status Result
GET / 200 PASS
GET /projects/paldocs 200 PASS
GET /boards/board-paldocs 200 PASS
GET /notes/project-paldocs 200 PASS
GET /up (health check) 200 PASS

Pipeline Status

Woodpecker pipeline #141 (merge commit for PR #70): FAILURE at bundle-install step. Root cause: Bundler version mismatch (CI image has Bundler 2.6.9, Gemfile.lock generated with Bundler 4.0.11). This is a pre-existing CI infrastructure issue unrelated to PR #70's docs-only changes. The update-kustomize-tag step succeeded, and the deployment is live and healthy. Pipeline #146 (subsequent PR #71 merge) shows the same failure pattern, confirming this is systemic.

Regression Check

All 5 critical routes from architecture.md return HTTP 200. Visual check via screenshot confirms the project listing page renders correctly. No regressions detected — this was a docs-only change with zero runtime impact.

Discovered Issues

CI pipeline is broken due to Bundler version mismatch (Bundler 2.6.9 in CI image vs 4.0.11 in Gemfile.lock). This affects all paldocs pipelines, not just PR #70. This is a pre-existing issue and should be tracked separately.

Validation Tier

Tier 3 only (content verification) — arch:docs label, docs-only change with no runtime impact.