Releases: hrtips/cvx
Release list
CVX v1.5.0 — content sections + build --all
Nothing gets dropped
Four additive content sections so a CV keeps everything it should — the fix for the real dogfood gap where a senior profile silently lost half its credentials:
certifications.yaml,publications.yaml,languages.yaml- a generalized
links:array inpersonal.yaml(blog, portfolio, GitHub — alongside the existing LinkedIn/Facebook)
All render in both the designed two-column CV and the ATS variant. Absent files, single-item sections, and omitted optional fields all render cleanly.
cvx build --all
Validate, then produce both the designed and ATS PDFs in one command. Each variant renders in its own process, fixing a font-subset state leak in the PDF engine that could corrupt the ATS variant's text layer — invisible on screen, but exactly what ATS parsers read.
Compatibility
Fully additive under the schemaVersion: 1 promise — existing cv-content/ folders keep working unchanged. All local, no accounts, byte-reproducible.
CVX v1.4.0 — plug it into your agent
Any agent — Claude, Cursor, VS Code, or any MCP client — now drives CVX end to end, locally. And any chat assistant can take a CV from one pasted prompt.
New
- MCP server —
npx @hrtips/cvx mcpexposes four tools (get_schema,init_cv,validate_cv,build_pdf) wrapping the same engine as the CLI. No API keys, fully offline; the server teaches the model the edit→validate→build loop and the truthfulness rules. - One-command client setup —
cvx mcp init --client claude|claude-desktop|cursor|vscodewrites/merges the right config shape per client (version-pinned, never clobbers other servers). - The two-line front door — paste into any AI chat and you're done:
The docs carry the assistant the rest of the way: capability self-routing, the LinkedIn Save-to-PDF fallback, a non-technical handoff, and a review→brainstorm→preview step so nothing lands on your CV that you haven't seen.
Create my CV with https://github.com/hrtips/cvx — open that page and follow its instructions for AI assistants. Here is my LinkedIn profile: <your profile URL> (or attach your current CV and a photo instead). - Agent Skill —
skills/cvx/SKILL.mdships in the package for skill-capable agents.
Fixed
- Silent PDF corruption on forced pagination (found by dogfooding): a
page1ExperienceCountthat didn't fit compressed every text box into overlapping glyphs while the build reported success. Overflow now clips visibly at the page edge, andvalidate/build/build_pdfwarn with calibrated estimates and concrete fixes.build --jsonand the MCPbuild_pdftool now return awarningsarray. - Pagination semantics documented: entry N+1 starts page 2; automatic packing never overflows.
Quality gates
120 tests on ubuntu/macos/windows × Node 20/22/24; packaged E2E now includes an MCP initialize handshake against the packed tarball; reproducible builds stay byte-identical; install stays lean (tarball ~330 kB).
CVX v1.3.0 — it tells you what's wrong
The whole content model is now a contract: exact errors in your terminal, autocomplete in your editor, structured output for your agent.
New
cvx validate— checks every file incv-content/at once and reports exact errors with file + field paths and suggested fixes (unknown key "linkdin" — did you mean "linkedin"?). Unknown keys are warnings by default;--strict(recommended for agents/CI) treats them as errors.- Agent-legible CLI — every command accepts
--json(exactly one JSON object on stdout, logs on stderr) and uses semantic exit codes:0ok,2validation failed,3render failed,64usage error. cvx list [themes|layouts]— inventory of themes and layouts, including your custom layouts, with--json.- Canonical JSON Schema — every content file and
config.yamlis defined byschema/v1/; scaffolded files carry$schemaheaders, so editors with YAML support autocomplete keys and flag mistakes as you type. The previously undocumented rich-bullet form ({text, link: {href, label}, suffix}) is now part of the documented contract. cvx initscaffolds agent guidance —AGENTS.mdandCLAUDE.mdland in yourcv-content/with the edit→validate→build loop and truthfulness rules, so coding assistants drive CVX correctly out of the box.
Compatibility promise
config.yaml now carries schemaVersion: 1. Within a schema major version, your content files never break — cvx validate on today's files will still pass on every future 1.x release.
Quality gates
Tested on ubuntu/macos/windows × Node 20/22/24; the packaged E2E now exercises the full validate/build/list contract against the packed tarball; reproducible builds remain byte-identical; install stays lean (tarball ~320 kB).
CVX v1.2.1 — new name, same tool
makecv is now CVX — package @hrtips/cvx, command cvx.
npx @hrtips/cvx init
npx @hrtips/cvx buildChanges
- Renamed package to
@hrtips/cvx; the installed binary iscvx - CVX brand assets (logo, icons, lockups) in
assets/brand/; README leads with the new identity - PDF
Creator/Producermetadata is nowcvx— reproducible-build hashes change accordingly (builds remain byte-identical run-to-run) - All docs, prompts, and workflows updated; the old
makecvnpm package has been removed - Functionally identical to v1.2.0 otherwise
makecv v1.2.0 — the npx CLI debut
The first npm release (published as makecv, since renamed — see v1.2.1).
Highlights
- CLI:
initscaffolds a complete example CV (Bruce Wayne);build [--ats]renders designed / ATS-safe PDFs — no headless browser, no LaTeX, nothing but Node - Reproducible builds:
SOURCE_DATE_EPOCHmakes output byte-identical per platform + Node version (pinned CreationDate, seeded font-subset tags, serialized PDF object writes) with a runtime guard against upstream drift - Lean packaging: transform-only
lib/build; tarball 3.3 MB → ~305 kB with zero user content - Cross-platform fixes: case-sensitive-filesystem photo probe, Windows path handling
- AI/LLM-first docs: llms.txt, complete content schema (docs/cv-schema.md), AI guide with copy-paste prompt routes
- CI: Linux/macOS × Node 20/22/24 + Windows, packaged E2E, byte-identical reproducibility gate; releases publish with npm provenance
- Apache-2.0 licensed
makecv v1.1.0
makecv v1.1.0
Config-driven CV generator: write your content in YAML, pick a theme and layout, get pixel-perfect PDFs.
Highlights
- Project renamed to
makecv(formerly resume-cli) ahead of npm CLI distribution - ATS & AI-parser keywords — curated (
cv-content/keywords.yaml) + auto-derived keywords embedded in the PDF's Keywords metadata field, configurable viaconfig.yaml → atsKeywords(enabled/autoDerive/max), with comma-safe sanitisation and truthfulness-first defaults - Flexible profile photo — drop
profile.jpg|jpeg|png|webpintocv-content/images/; auto-detected identically by the browser preview and PDF export; CVs without a photo render cleanly - Layout correctness — single-page CVs no longer silently drop education / competencies / referees (continuation-sidebar sections fold into page 1)
- Test suite — Vitest with 24 unit tests (keyword building, page packing, sidebar resolution, photo picker, dependency-alignment guard) via
npm test - Dependency upgrades — @react-pdf/renderer 4.5.1 (fixes the upstream
keywordsmetadata prop), React 19.2.8, Vite 8.1.5; js-yaml aligned to a single 4.x across both YAML-loading paths - Docs — README overhauled: quick start, ATS-keywords guide, testing, updated structure
- Ships with fictional sample content (Bruce Wayne)
Commands
npm install
npm run dev # live preview
npm run pdf # designed two-column PDF
npm run pdf:ats # ATS-safe single-column PDF
npm test # unit testsNext up (v1.2.0): npx makecv init && npx makecv build — no clone needed.