Validation: pal-e-api #255 — Audit and re-block legacy un-decomposed notes
Ticket
forgejo_admin/pal-e-api#255 — Audit and re-block legacy un-decomposed notes. PR #259 merged to main (commit
7737b91). Board item #969 on board-pal-e-docs.What was shipped: a one-time migration script that re-decomposes 34 legacy notes that had no block-level structure, converting monolithic html_content into typed blocks (heading, paragraph, table, code/mermaid, list).
Environment
Production cluster, pal-e-docs namespace. Validated via pal-e-docs MCP tools (get_note_toc, list_blocks) and kubectl.
Checks
This ticket has two validation phases: (A) script is deployed in image, (B) script has been executed against prod data.
| # | Criterion | How Verified | Result | Evidence |
|---|---|---|---|---|
| A1 | PR #259 merged to main | <code>git log --oneline main</code> in ~/pal-e-docs | PASS | Commit <code>7737b91 fix: reblock 34 legacy un-decomposed notes (#259)</code> is HEAD of main |
| A2 | CI pipeline green for merge commit | Woodpecker pipeline #91 | FAIL | Pipeline #91 failed: stale <code>Board</code> import in <code>alembic/env.py</code>. This is a pre-existing CI issue unrelated to the reblock script. Running pod image is <code>89f663b</code> (commit #244). Script is a one-time migration, not a runtime feature. |
| B1 | Canary note <code>arch-secrets-pipeline</code> returns headings via get_note_toc | <code>get_note_toc(slug="arch-secrets-pipeline")</code> | PASS | Returns 8 headings: Architecture Secrets Pipeline, Domain Map, Data Flow, Deployment Map, Secret Inventory (15), GPG Key, Procedures, Open Gaps, Related |
| B2 | Canary note has multiple block types via list_blocks | <code>list_blocks(slug="arch-secrets-pipeline")</code> | PASS | 20 blocks across 5 types: heading (8), paragraph (5), code/mermaid (3), table (1), list (3) |
| B3 | Other previously un-decomposed notes also have blocks | <code>get_note_toc</code> on <code>sop-secrets-management</code> and <code>convention-block-first-access</code> | PASS | <code>sop-secrets-management</code>: 16 headings. <code>convention-block-first-access</code>: 9 headings. Both were previously un-decomposed. |
Verdict
PASS — Both validation phases confirmed. The reblock migration script has been merged (Phase A) and executed against production data (Phase B). 34 legacy notes now have full block-level decomposition with correct block types. The
get_note_toc and list_blocks APIs return rich structured data for previously monolithic notes.Discovered Issues
- CI pipeline broken (pipeline #91, #92): Stale
Boardimport inalembic/env.pycausesImportErrorduring migration-test step. This blocks all future pal-e-api deployments. Running pod is 2 commits behind main (89f663bvs7737b91). Needs a Forgejo issue + board item.