Install
$ agentstack add skill-davidalecrim1-chameleon-init-cv ✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.
Verified badge
Passed review? Show it. Paste this badge into your README, it links to the public security report.
Reliability & compatibility
Declared compatibility
Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.
We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.
How agent discovery & health will work →About
/init-cv
Onboard a new master CV from a PDF or YAML file.
Usage
/init-cv
Examples:
/init-cv ~/Downloads/resume.pdf/init-cv ~/Documents/my_resume.yaml
Workflow
Follow these steps exactly in order:
Step 1 — Determine input type
Read the file at the provided path. Determine whether it is a PDF or a YAML file by its extension (.pdf vs .yaml / .yml).
If the file does not exist or the extension is unrecognised, report the error and stop.
Step 2 — Parse or validate
If PDF: Read the PDF content and extract all resume data. Produce a RenderCV-compliant YAML with the following structure:
cv:
name: "Full Name"
email: "email@example.com"
phone: "+1 555 000 0000"
location: "City, Country"
website: "https://..."
social_networks:
- network: LinkedIn
username: username
sections:
summary:
- "..."
experience:
- company: "..."
position: "..."
location: "..."
start_date: "YYYY-MM"
end_date: "YYYY-MM" # or "present"
highlights:
- "..."
education:
- institution: "..."
area: "..."
degree: "..."
start_date: "YYYY"
end_date: "YYYY"
skills:
- label: "Category"
details: "Skill 1, Skill 2, Skill 3"
design:
theme: classic
typography:
line_spacing: 0.8em
font_size:
body: 9.5pt
headline: 9.5pt
connections: 9.5pt
page:
show_footer: false
show_top_note: false
header:
connections:
phone_number_format: international
section_titles:
space_above: 0.8cm
entries:
date_and_location_width: 3cm
highlights:
space_above: 0.2cm
sections:
show_time_spans_in: []
space_between_regular_entries: 0.2cm
templates:
experience_entry:
main_column: "**COMPANY**, POSITION — LOCATION\nSUMMARY\nHIGHLIGHTS\n"
date_and_location_column: "DATE"
education_entry:
main_column: "**INSTITUTION**, DEGREE in AREA — LOCATION\nSUMMARY\nHIGHLIGHTS"
degree_column: null
date_and_location_column: "DATE"
normal_entry:
main_column: "**NAME**\nSUMMARY\nHIGHLIGHTS\n"
date_and_location_column: ""
Follow RenderCV entry type rules:
- Use
companyfield for experience entries (ExperienceEntry) - Use
institutionfield for education entries (EducationEntry) - Use
namefield for project entries (NormalEntry) - Use
labelfield for one-line entries (OneLineEntry) - Do not mix entry types within a section
- Write
cv.sections.summaryin standard resume style with implied first person: noI,he,him,she,her,they, or similar pronouns.
Follow layout rules (see Layout Rules section below).
If YAML: Read the file and validate it conforms to RenderCV structure. Check that:
- Top-level keys include
cvand optionallydesignandsettings cv.nameis present- Each section uses a consistent entry type
- Dates follow YYYY-MM or YYYY format
- If
cv.sections.summaryexists, flag first-person or third-person pronouns in summary bullets and normalize them to standard resume style before saving. - If
settings.bold_keywordsexists, remove it or set it to an empty list before saving. This repo does not use global keyword auto-bolding because it affects fixed sections like certifications.
Report any structural issues found. If the YAML is valid, proceed to Step 3.
Step 3 — Confirm overwrite if needed
Check whether templates/_cv.yaml already exists (where `` is the person's name, lowercased, spaces replaced by underscores).
If it does, ask the user to confirm before overwriting: > templates/_cv.yaml already exists. Overwrite it? (yes/no)
Do not proceed until the user confirms.
Step 4 — Save the master CV
Save the parsed or validated YAML to templates/_cv.yaml, where ` is the person's name from the CV, lowercased, with spaces replaced by underscores (e.g., templates/davidalecrimcv.yaml`).
Step 5 — Verify it renders
Use the Makefile render target, which delegates to scripts/render.py to handle rendering cross-platform — output always lands in ./output/:
make render FILE=templates/_cv.yaml
If the render succeeds, report the path to the generated PDF and confirm setup is complete.
If the render fails, show the error output and list what needs to be fixed. Do not delete the saved master_cv.yaml — let the user fix and re-run.
Layout Rules
These rules prevent common rendering issues in the classic theme and must be applied when producing YAML from a PDF or validating an existing YAML:
Experience entries:
- Use the
summaryfield for a one-line company description (rendered as italic text under the position). Do not put the company description inhighlights. - Do not add "Stack:" or "Technologies:" bullets to
highlights. Technology context belongs in theskillssection. - Keep each highlight to 1–2 lines of text. Overly long bullets break column alignment.
Education entries:
- Keep
degreeshort: use abbreviations likeBSc,MSc,Specialization,PhD. areaholds the field of study (e.g.,Computer Science,Software Engineering).- Always include the
design.templates.education_entryblock to prevent degree column overflow and hyphenation. Thedegree_column: nullmovesDEGREEinline into the main column, and location is placed inline via the main_column template:
``yaml design: theme: classic templates: education_entry: main_column: "**INSTITUTION**, DEGREE in AREA — LOCATION\nSUMMARY\nHIGHLIGHTS" degree_column: null date_and_location_column: "DATE" ``
Typography defaults:
- Keep the default compact typography block in this repo unless the user asks otherwise:
``yaml design: theme: classic typography: line_spacing: 0.8em font_size: body: 9.5pt headline: 9.5pt connections: 9.5pt sections: show_time_spans_in: [] space_between_regular_entries: 0.2cm ``
Project entries:
- Use plain text for
namevalues. Do not use Markdown links in project names. - Do not include
start_date,end_date, ordatefields. Project sections should not show a time window. - Include the
design.templates.normal_entryblock:
``yaml design: theme: classic templates: normal_entry: main_column: "**NAME**\nSUMMARY\nHIGHLIGHTS\n" date_and_location_column: "" ``
Skills entries:
- Keep each
detailsvalue under ~80 characters. Long comma-separated lists wrap badly. - Split into multiple
labelentries rather than cramming everything into one line. - Avoid parenthetical expansions like
AWS (EKS, RDS, S3, ...)inline — list the services separately if needed.
Summary entries:
- Keep summary bullets in resume style: concise noun-led or verb-led statements with no personal pronouns.
- Do not write the summary in first person (
I ...) or third person (he ...,she ...,they ...).
Certifications:
- Use one
OneLineEntryper certification.labelis the full cert name;detailsis the date (required by RenderCV):
```yaml
- label: "AWS Certified Solutions Architect – Professional"
details: "May 2024"
- label: "Certified Kubernetes Administrator (CKA) – CNCF"
details: "Aug 2023" ```
- Do not group by issuer. Full cert names as proper nouns are clearer and avoid awkward comma-separated lists.
Notes
- The output YAML under
templates/becomes the source of truth for all future/chameleonruns. - If
rendercvis not installed, tell the user to runmake install-toolsbefore retrying Step 5.
Source & license
This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.
- Author: davidalecrim1
- Source: davidalecrim1/chameleon
- License: MIT
Install and usage instructions live in the source repository linked above.
Reviews
No reviews yet, be the first.
Write a review
Versions
- v0.1.0 Imported from the upstream source.