Stand up the repository foundation described in docs/plan.md §14:
- CMake + vcpkg manifest mode (pinned baseline), presets for debug/release/asan/tsan/ci-release
- Release-build hardening module (§7.2): stack protector, libc++ hardening, CFI/CET
- Skeleton CPack packaging for all nine artifact formats (§12): .deb/.rpm/.tar.xz/.AppImage, .msi/.exe/.zip, .dmg/.pkg
- Linux integration: .desktop, hicolor icon, AppStream metainfo, man page, bash completion
- Empty-window Qt Widgets application shell with the §9 chrome layout
- Spike A harness: QPDF open → parse content streams → re-emit verbatim → save, measuring byte-identical round-trip rate over a corpus
- Pixel-diff harness scaffolding (§8.2 gate) with the spike-runner JSON contract
- Contract test pinning the spike-runner report format (dependency-free)
- Gitea Actions CI matrix (§13.3): build × {linux,macos,windows} × {debug,release,asan,tsan}, plus nightly packaging pipeline
- Tooling: clang-format, clang-tidy, gitleaks, REUSE config, pre-commit hooks, CODEOWNERS
- Governance: README, CONTRIBUTING, SECURITY, TRADEMARK, docs/plan.md, four M0 ADRs (§2.5, §4.4, §7.2, §2.1)
- REUSE-compliant SPDX headers and LICENSES/ directory (GPL-3.0-or-later)
No production parsing, rendering, or editing code yet — that lands in M1-M6.
The scaffolding is the hard-to-retrofit foundation: build system, packaging
pipeline, CI gates, governance, and the ADRs that fix the architectural
invariants before any code that depends on them is written.
Signed-off-by: ai-ad4 <ai-ad4@users.noreply.gitea.lm.je>
|
||
|---|---|---|
| .. | ||
| 0001-render-what-you-will-save.md | ||
| 0002-surgical-re-emission.md | ||
| 0003-memory-safety-posture.md | ||
| 0004-two-process-trust-boundary.md | ||
| README.md | ||
README.md
Architecture Decision Records
Architecture decision records (ADRs) live here, numbered, and immutable once
accepted (§13.4 of docs/plan.md). To change an accepted
decision, write a new ADR that supersedes the earlier one and reference it
from both files.
Format
Each ADR is a single Markdown file NNNN-short-title.md with:
- Status: Proposed | Accepted | Superseded by
NNNN| Withdrawn - Date: ISO 8601
- Context: why this decision is being made now
- Decision: what we decided
- Consequences: what follows — positive, negative, and neutral
- Alternatives considered: what we did not choose, and why
Seeded at M0
Per §13.4 and §14 step 9, the following ADRs exist from M0: