Incognito-Wiki/docs/superpowers/specs/2026-08-03-pdf-publication-and-course-recovery-design.md
msa46 c590f77d96
Some checks failed
Deploy to GitHub Pages / build (push) Has been cancelled
Deploy to GitHub Pages / deploy (push) Has been cancelled
feat: publish legacy course archive
2026-08-03 15:12:11 +02:00

4.2 KiB

PDF Publication and Course Recovery Design

Summary

Publish the 332 recovered DokuWiki PDFs whose creator permissions the repository maintainer confirmed on 2026-08-03. Then crawl the previous live DokuWiki at https://msvincognito.nl/wiki/, compare its public course pages with the Astro Starlight wiki, and migrate course details that are present on the previous site but absent from the new site.

The work is deliberately sequenced. PDF publication must be complete and independently verified before course recovery starts.

PDF Publication

  • Move the byte-identical recovered files from the non-public staging area to public/media/legacy-dokuwiki/, preserving their DokuWiki namespace hierarchy.
  • Keep stable, URL-safe public paths derived from the original media IDs.
  • Add a Starlight archive page titled “Previous exams and documents,” grouped by programme and course namespace, with one link for every published PDF.
  • Add the archive to the main sidebar and link it from the Bachelor, Master AI, and Master DSDM programme overviews.
  • Record the maintainer's permission confirmation, public path, source URL, size, and SHA-256 checksum in the existing PDF inventory and publication records.
  • Treat duplicate-content files as legitimate separately named source records; do not silently collapse them.
  • Do not modify, optimize, rewrite, or combine PDF contents.

Course Recovery

  • Crawl the public previous DokuWiki by pinning msvincognito.nl to the known origin 185.104.29.94. The origin's expired certificate requires an explicit insecure TLS connection for this archival crawl only.
  • Enumerate pages recursively through DokuWiki's sitemap/index rather than relying on the 29-page selected filesystem export.
  • Include public course and programme pages below the Bachelor, Master AI, and Master DSDM study namespaces.
  • Exclude DokuWiki help pages, navigation/sidebar pages, administrative pages, member-only content, and non-course association content.
  • Compare canonical DokuWiki page IDs against existing Starlight routes and the original migration manifest.
  • Convert missing course details to maintainable Markdown with Starlight frontmatter, preserving headings, lists, tables, links, and the source meaning.
  • Add a standard historical-information warning to recovered pages because course structures and details may be outdated.
  • Preserve links to the newly published PDFs when a source page refers to those media IDs.
  • Add recovered pages to the appropriate manually configured sidebar section.

Audit Contract

The original migration manifest remains the immutable record of the selected 29-page filesystem export. Supplemental published content must not be falsely added to that manifest.

Create a separate supplemental-content registry for the PDF archive and live-recovered course pages. The content audit will accept only:

  1. destinations in the original migration manifest; or
  2. destinations explicitly declared in the supplemental registry with a source URL and content category.

The migration report will continue to describe the selected export. A separate live-course recovery report will list every live page inspected and classify it as migrated, already represented, excluded, empty, or failed.

Validation

PDF publication is complete when all 332 inventory records resolve to public files, every size and SHA-256 checksum matches, all files pass pdfinfo, the archive page links each file once, and no recovered PDF remains in the non-public staging folder.

Course recovery is complete when the recursive live crawl has no unexplained failures, every in-scope live course page has a recorded classification, every migrated page passes the content audit and Astro build, and internal links pass the rendered-site checks.

Run the complete npm run verify workflow after each phase. The final report must state the live-page totals and the exact number of pages added.

Safety and Provenance

  • Permission basis: the repository maintainer confirmed on 2026-08-03 that permission had been obtained from the document creators and that the PDFs may be exposed on the wiki.
  • The live crawl is read-only.
  • Existing user changes in the dirty working tree must be preserved.
  • No deployment, push, or external server mutation is part of this task.