Skip to content

Cover letters on layered v2 + make layered the template standard#68

Merged
DemchaAV merged 3 commits into
developfrom
feat/coverletter-v2-and-layered-standard
May 28, 2026
Merged

Cover letters on layered v2 + make layered the template standard#68
DemchaAV merged 3 commits into
developfrom
feat/coverletter-v2-and-layered-standard

Conversation

@DemchaAV

Copy link
Copy Markdown
Owner

Summary

Two-commit feature establishing the layered cv.v2 / coverletter.v2 architecture as the canonical template-authoring standard.

1. feat(coverletter-v2) — migrate 14 cover letters to the layered architecture

  • New coverletter/v2/{data,components,presets}: CoverLetterDocument (reuses CvIdentity so a CV and its paired letter share one identity), shared LetterBody (the SectionDispatcher analog), and 14 thin-orchestrator presets that read CvTheme.<brand>() and mirror each paired CV's masthead — each letter reads as a matched set with its CV.
  • CoverLetterV2SmokeTest (parametrized) + CoverLetterV2VisualParityTest (14 blessed baselines), 14 Cv*LetterV2Example mains, PdfRasterizer review 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 the cv.v2 / coverletter.v2 replacement. Warn, not remove — existing callers keep working.
  • Repoint the CV + cover-letter showcase galleries and CvFileExample to the polished cv.v2 / coverletter.v2 (canonical cv-<id>.pdf / cover-letter-<id>.pdf slugs); fix the duplicate cv-modern-professional ShowcaseMetadata key; refresh committed previews; drop stale cv-tech-lead / cv-product-leader.
  • README + docs lead with the layered surface; fix dead migration-guide links; add ADR 0015 (layered architecture), mark ADR 0011 superseded.

Test plan

  • Full canonical suite — 990/990 green
  • Cover-letter v2: 14 smoke + 14 pixel-parity baselines pass
  • Examples compile; CV + cover-letter galleries render the polished v2 set
  • No public API removed (Gen-2 deprecated only); cv.v2 / coverletter.v2 / BusinessTheme / builtins untouched

DemchaAV added 3 commits May 28, 2026 14:34
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.
PanelLetter's class Javadoc linked {@link #widthAnchor}, a private
method of the inner Template class — unresolvable from the outer class,
which broke `javadoc:javadoc` on the JDK 17 CI matrix. Switch it to a
plain {@code widthAnchor} reference.
@DemchaAV DemchaAV merged commit 612badb into develop May 28, 2026
9 checks passed
@DemchaAV DemchaAV deleted the feat/coverletter-v2-and-layered-standard branch May 28, 2026 14:04
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant