Cover letters on layered v2 + make layered the template standard#68
Merged
Conversation
Port all 14 cover-letter presets to the layered cv.v2 model under
coverletter/v2: a CoverLetterDocument (reusing CvIdentity so a CV and
its paired letter share one identity), a shared LetterBody renderer
(the SectionDispatcher analog), and thin-orchestrator presets that read
palette / typography from the paired CvTheme.<brand>() and mirror the
CV's masthead -- so each letter reads as a matched set with its CV.
- coverletter/v2/{data,components,presets} + package-infos
- CoverLetterV2SmokeTest (parametrized) + CoverLetterV2VisualParityTest
with 14 blessed baselines (coverletter-v2-layered)
- 14 Cv*LetterV2Example mains + PdfRasterizer review utility
- ExampleDataFactory.sample{CvIdentity,CoverLetterDocument}V2
- TextOrnaments.joinPipe shared helper (dedups masthead meta lines)
Establish the layered cv.v2 / coverletter.v2 surface as the canonical template-authoring standard and steer authors off the superseded Gen-2 (CvSpec / CoverLetterSpec / BusinessTheme) surface -- deprecated, not removed (existing callers keep working). Deprecate (warn, don't remove): - @deprecated(since="1.7.0", forRemoval=true) on the Gen-2 CV + cover- letter presets, builders, specs, layouts, dead data specs, and their package-infos, each pointing to the cv.v2 / coverletter.v2 replacement. - Fix the misleading "this is the v2 architecture" package-info prose; drop the cv.v2 "not a replacement yet" hedge. Showcase -> polished v2: - Repoint the CV + cover-letter gallery examples and CvFileExample to cv.v2 / coverletter.v2 (canonical cv-<id>.pdf / cover-letter-<id>.pdf slugs); fix the duplicate cv-modern-professional ShowcaseMetadata key. - Refresh committed README previews to v2; drop stale cv-tech-lead / cv-product-leader (deleted V1 names). Docs: - README and examples docs lead with the layered surface; mark Gen-2 deprecated. Fix dead authoring + gallery links in the migration guide. - Add ADR 0015 (layered template architecture); mark ADR 0011 superseded.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Two-commit feature establishing the layered
cv.v2/coverletter.v2architecture as the canonical template-authoring standard.1.
feat(coverletter-v2)— migrate 14 cover letters to the layered architecturecoverletter/v2/{data,components,presets}:CoverLetterDocument(reusesCvIdentityso a CV and its paired letter share one identity), sharedLetterBody(theSectionDispatcheranalog), and 14 thin-orchestrator presets that readCvTheme.<brand>()and mirror each paired CV's masthead — each letter reads as a matched set with its CV.CoverLetterV2SmokeTest(parametrized) +CoverLetterV2VisualParityTest(14 blessed baselines), 14Cv*LetterV2Examplemains,PdfRasterizerreview utility,TextOrnaments.joinPipe.2.
refactor(templates)— make layered v2 the standard; deprecate Gen-2@Deprecated(since="1.7.0", forRemoval=true)on the Gen-2 CV + cover-letter presets / builders / specs / layouts + dead data specs + package-infos, each pointing to thecv.v2/coverletter.v2replacement. Warn, not remove — existing callers keep working.CvFileExampleto the polishedcv.v2/coverletter.v2(canonicalcv-<id>.pdf/cover-letter-<id>.pdfslugs); fix the duplicatecv-modern-professionalShowcaseMetadatakey; refresh committed previews; drop stalecv-tech-lead/cv-product-leader.Test plan
cv.v2/coverletter.v2/BusinessTheme/ builtins untouched