Implement CE-WP-0001 Foundations: TS scaffold, lint boundaries, normalize v1, fixtures

T01 Toolchain — vite + pnpm 9.15 + React 18 + strict TS (ADR-0001).
T02 Folder layout — src/{shared,engine,anchor,source,binder,work,app}/
    mirroring the future subsystem split, with path aliases.
T03 Boundary lint — eslint-plugin-boundaries enforcing the dependency
    edges from wiki/DependencyMap.md §4; verified by a violating fixture.
T04 Canonical normalization v1 — src/shared/text/normalize.ts with
    NORMALIZE_VERSION=1; 10/10 vitest covering ligatures, CRLF, soft
    hyphens (including line-break reassembly), mixed whitespace.
T05 PDF fixture corpus — 7 user-supplied German PDFs in fixtures/pdfs/
    (gitignored binaries) plus a manifest with verbatim known-good
    quotes and page counts, ready for CE-WP-0002 selector tests.
T06 README upgrade — umbrella README points at wiki/docs/workplans
    and documents the dev workflow.
T07 ADR-0002..0006 stubs in docs/decisions/.

Toolchain end-to-end: pnpm install + lint + typecheck + test all green.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
2026-05-25 00:13:03 +02:00
parent 707620adfb
commit 2f25f99cae
32 changed files with 4756 additions and 9 deletions

35
.gitignore vendored
View File

@@ -174,3 +174,38 @@ cython_debug/
# PyPI configuration file
.pypirc
# ---> Node / Vite / pnpm (CE-WP-0001-T01)
node_modules/
.pnpm-store/
.pnpm-debug.log*
npm-debug.log*
yarn-debug.log*
yarn-error.log*
# Vite build output
dist-ssr/
*.local
# Vitest
coverage/
# TypeScript incremental build cache
*.tsbuildinfo
# Editor / IDE
.vscode/
!.vscode/extensions.json
.idea/
*.swp
*.swo
# OS
.DS_Store
Thumbs.db
# ---> PDF fixtures (CE-WP-0001-T05)
# Binaries stay local until per-file licensing is cleared in
# fixtures/pdfs/SOURCES.md. The manifest and SOURCES.md are committed;
# add `!fixtures/pdfs/<filename>.pdf` exceptions as files are cleared.
fixtures/pdfs/*.pdf