agentleFS
erafaterafat/skills/cv-update-review/SKILL.md

cv-update-review

Skill17 starsChanged 28 days agoMITView on GitHub

Run a confirmation-gated CV update workflow for Word CV documents: set up a reusable profile, scan configured local activity sources plus public evidence such as PubMed through NCBI E-utilities and configured website/RSS feeds, prepare a CV update packet, ask the user to approve completed/public/accepted items, create a dated `.docx` copy, and update or verify the copy while preserving the existing CV's section-specific conventions. Use when asked to update a CV/resume, run a monthly CV review, gather publications/lectures/ professional activities, or create a public reusable CV updater for colleagues.

The file

Show its rules and text

We split this skill into the rules it gives an agent

48 rules. About 0 are common, 40 are distinctive, and 8 are very specific to this project.

  • ≈0

    Common · estimate

    Many files like this have a rule of this kind.

  • ≈40

    Distinctive · estimate

    This author's own choices. Worth a look.

  • 8

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Distinctive:

    Run a public, profile-driven CV update workflow.

    line 18
  2. Distinctive:

    Do not hard-code private file paths, employer details, author identities, or CV section names in this skill.

    line 27
  3. Distinctive:

    If no config exists, run setup:

    line 41
  4. Very specific:

    Use profiles/example.json as a public-safe example only.

    line 48
  5. Distinctive:

    Default eligibility is strict:

    line 53
  6. Distinctive:

    Use the system-local date for relative dates.

    line 73
  7. Very specific:

    Use review_schedule.cadence from the config when present.

    line 75
  8. Distinctive:

    start: first day of the prior completed calendar month

    line 79
  9. Distinctive:

    start: first day of the prior completed calendar quarter

    line 84
  10. Distinctive:

    ask the user for the target month or date range before scanning

    line 89
  11. Very specific:

    follow review_schedule.custom_cadence if it is concrete enough to resolve a date window.

    line 93
  12. Distinctive:

    If the user names a month or date range, use that exact range.

    line 96
  13. Very specific:

    Read .cv-update-review/config.json or the user-supplied config path.

    line 100
  14. Distinctive:

    If required fields are missing, run setup or ask for the missing values before scanning.

    line 114
  15. Very specific:

    If review_schedule.offer_automation is true and no automation exists yet, offer to configure one.

    line 117
  16. Distinctive:

    Use the smallest source set that can answer the request.

    line 125
  17. Distinctive:

    use configured profile/search URLs as a manual or browser verification source

    line 168
  18. Distinctive:

    do not build a fragile Scholar scraper into the required workflow

    line 170
  19. Distinctive:

    if a colleague configures a permitted third-party provider, record that as a profile-specific source and cite it in the packet

    line 171
  20. Distinctive:

    keep mentoring candidates separate from project-output candidates.

    line 182
  21. Distinctive:

    Before asking for private recall, show the user the actual candidate items found by source.

    line 188
  22. Distinctive:

    Keep the preview concise enough to scan.

    line 198
  23. Distinctive:

    Before finalizing the packet, classify each candidate by activity type:

    line 204
  24. Distinctive:

    Use the activity type to choose the CV section.

    line 213
  25. Distinctive:

    When two items share a similar title, keep them separate if their activity types differ.

    line 214
  26. Distinctive:

    If the same publication list appears in more than one CV location, inspect both locations and decide whether both need the new item to …

    line 220
  27. Distinctive:

    Before the recall prompt, ask whether configured collaboration projects include junior collaborators, trainees, students, residents, …

    line 226
  28. Distinctive:

    Do not insert mentoring entries until the user confirms the person, role, institution, supervision years, and wording.

    line 239
  29. Distinctive:

    Before finalizing the packet, ask:

    line 244
  30. Distinctive:

    If the user provides items, ask for enough evidence to classify them:

    line 250
  31. Distinctive:

    Do not include private recall items in the confirmed update list until the user supplies sufficient evidence or explicitly accepts a …

    line 259
  32. Distinctive:

    Create a dated Markdown packet before any Word edit:

    line 264
  33. Very specific:

    Use the packet shape in references/packet-template.md.

    line 277
  34. Distinctive:

    Stop after the packet unless the user has already approved specific entries in the current conversation.

    line 291
  35. Distinctive:

    Do not treat "looks good" as approval if the packet still contains unresolved section or wording questions.

    line 301
  36. Distinctive:

    Before editing a Word CV, inspect the current document's conventions near the target sections:

    line 306
  37. Distinctive:

    Do not globally normalize the CV unless the user explicitly asks.

    line 326
  38. Distinctive:

    Never edit the original CV directly.

    line 330
  39. Distinctive:

    Create a dated copy:

    line 332
  40. Distinctive:

    After a discovery run, return:

    line 356
  41. Distinctive:

    After an approved Word update, return:

    line 364
  42. Distinctive:

    If config is missing, run setup or ask for setup values.

    line 373
  43. Very specific:

    If PubMed is unavailable, continue with local/RSS/manual sources and mark PubMed unavailable in the packet.

    line 374
  44. Distinctive:

    If RSS parsing fails for one feed, continue with other feeds and record the failed feed.

    line 376
  45. Distinctive:

    If Google Scholar cannot be checked safely, leave it as a manual verification task in the packet.

    line 378
  46. Distinctive:

    If the CV document is missing, stop before packet application and report the missing path.

    line 380
  47. Very specific:

    If a dated copy already exists, create a suffix such as _v2 unless the user explicitly authorizes overwrite.

    line 382
  48. Distinctive:

    If visual verification cannot run, report the next best text extraction check.

    line 384

≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

CV Update Review

Overview

Run a public, profile-driven CV update workflow. The skill discovers candidate activities, drafts a review packet, requires explicit user approval, then edits only a dated copy of the Word CV.

This skill is intentionally confirm-first. It must never silently decide that an item belongs on the CV.

Public-First Design

Do not hard-code private file paths, employer details, author identities, or CV section names in this skill. Use a local config file instead.

Default config path:

.cv-update-review/config.json

Configs may use ${BASECAMP_ROOT} for vault-relative paths, especially when an iCloud/Obsidian vault lives under different usernames on different machines. The helper scripts resolve ${BASECAMP_ROOT} from the environment when set, or from the nearest vault containing START_HERE.md and AGENTS.md.

If no config exists, run setup:

python3 .agents/skills/cv-update-review/scripts/setup_config.py \
  --output .cv-update-review/config.json

Use profiles/example.json as a public-safe example only. Do not edit it with real personal data.

Eligibility Rule

Default eligibility is strict:

  • include only completed, public, or accepted activities
  • include PubMed-indexed or accepted publications
  • include public/accepted lectures, invited talks, presentations, public media, publicly released digital scholarship, and completed service/leadership items
  • exclude planned, drafted, submitted-but-not-accepted, internal-only, or speculative work
  • exclude routine recurring items unless the profile marks them as milestones

For podcasts, newsletters, websites, or recurring educational media, default to major milestones rather than every routine release unless the user explicitly changes the rule.

See references/eligibility-rules.md before resolving borderline items.

Monthly Workflow

1) Resolve the Window

Use the system-local date for relative dates.

Use review_schedule.cadence from the config when present.

Default monthly window:

  • start: first day of the prior completed calendar month
  • end: last day of the prior completed calendar month

Quarterly window:

  • start: first day of the prior completed calendar quarter
  • end: last day of the prior completed calendar quarter

Ad hoc only:

  • ask the user for the target month or date range before scanning

Custom cadence:

  • follow review_schedule.custom_cadence if it is concrete enough to resolve a date window; otherwise ask the user before scanning

If the user names a month or date range, use that exact range.

2) Load Configuration

Read .cv-update-review/config.json or the user-supplied config path.

Required fields:

  • cv_document
  • output_dir
  • at least one evidence source:
    • pubmed.author_queries
    • rss_feeds
    • website_urls
    • local_activity_paths
    • local_search_roots
    • manual_scholar_sources

If required fields are missing, run setup or ask for the missing values before scanning.

If review_schedule.offer_automation is true and no automation exists yet, offer to configure one. A CV automation must run in packet_only_until_user_approval mode: it may scan sources and prepare the review packet, but it must not create or edit a Word CV copy until the user approves exact entries, sections, wording, and evidence sufficiency.

3) Gather Evidence

Use the smallest source set that can answer the request.

Local sources:

  • configured activity logs
  • configured project/status files
  • configured journal or worklog paths
  • configured folders containing releases, talks, manuscripts, abstracts, or teaching artifacts

Optional helper:

python3 .agents/skills/cv-update-review/scripts/scan_local_activity.py \
  --config .cv-update-review/config.json \
  --start YYYY-MM-DD \
  --end YYYY-MM-DD \
  --output .cv-update-review/evidence/local_YYYY-MM.json

Public sources:

  • PubMed through NCBI E-utilities:
python3 .agents/skills/cv-update-review/scripts/scan_pubmed.py \
  --config .cv-update-review/config.json \
  --start YYYY-MM-DD \
  --end YYYY-MM-DD \
  --output .cv-update-review/evidence/pubmed_YYYY-MM.json
  • configured RSS/Atom feeds:
python3 .agents/skills/cv-update-review/scripts/scan_rss.py \
  --config .cv-update-review/config.json \
  --start YYYY-MM-DD \
  --end YYYY-MM-DD \
  --output .cv-update-review/evidence/rss_YYYY-MM.json
  • Google Scholar/profile checks:
    • use configured profile/search URLs as a manual or browser verification source
    • do not build a fragile Scholar scraper into the required workflow
    • if a colleague configures a permitted third-party provider, record that as a profile-specific source and cite it in the packet

Collaboration and mentoring sources:

  • scan configured project/status files for collaborator names, trainee roles, student/fellow/resident labels, observerships, mentoring language, and supervised deliverables
  • identify whether a project involved a junior collaborator or mentee who may belong under Mentoring Activities even if the project itself is not yet a completed CV work
  • keep mentoring candidates separate from project-output candidates; do not treat an unfinished project as CV-ready just because it reveals a mentoring relationship

4) Show Candidate Preview

Before asking for private recall, show the user the actual candidate items found by source. Do not provide only counts.

For each source, include:

  • short candidate label/title
  • activity type and proposed or provisional CV section
  • evidence pointer: URL, file path and line number, PMID, or feed name
  • eligibility status

Keep the preview concise enough to scan. Group clear duplicates or repeated project-status heartbeat lines when needed, but preserve enough evidence detail for the user to decide what is missing or wrongly included.

5) Category And Section Cross-Check

Before finalizing the packet, classify each candidate by activity type:

  • manuscript or journal publication
  • abstract or poster
  • talk, invited lecture, course/session lecture, or conference presentation
  • teaching aid, public media, website, software, or educational artifact
  • mentoring, supervision, observership, or trainee collaboration
  • service, committee, leadership, review, grant, or award

Use the activity type to choose the CV section. Titles alone are not enough. When two items share a similar title, keep them separate if their activity types differ. For example, a conference talk and a journal article with similar titles must be evaluated and placed independently: the talk belongs with talks or conference presentations, while the journal article belongs with manuscripts or published research articles.

If the same publication list appears in more than one CV location, inspect both locations and decide whether both need the new item to preserve the existing CV structure. Record that decision in the packet.

6) Collaboration/Mentee Review

Before the recall prompt, ask whether configured collaboration projects include junior collaborators, trainees, students, residents, fellows, visiting scholars, or observers who should be considered under Mentoring Activities.

Show any names and roles already found from project/status evidence. For each, include:

  • name
  • inferred role or level
  • project or activity source
  • proposed mentoring wording
  • confidence and what still needs confirmation

Do not insert mentoring entries until the user confirms the person, role, institution, supervision years, and wording.

7) Prompt For Private Recall

Before finalizing the packet, ask:

What completed, public, or accepted professional activities from <window> may be missing from public records or local files? Examples: accepted manuscripts, invited talks, delivered lectures, committee/service work, peer review, mentorship milestones, grants/awards, public media, or completed institutional activities.

If the user provides items, ask for enough evidence to classify them:

  • date
  • activity type
  • title/name
  • role
  • venue/institution/platform
  • public URL, acceptance notice, program, email, certificate, or local file path

Do not include private recall items in the confirmed update list until the user supplies sufficient evidence or explicitly accepts a low-evidence packet note.

8) Build The Review Packet

Create a dated Markdown packet before any Word edit:

python3 .agents/skills/cv-update-review/scripts/build_update_packet.py \
  --config .cv-update-review/config.json \
  --start YYYY-MM-DD \
  --end YYYY-MM-DD \
  --evidence .cv-update-review/evidence/local_YYYY-MM.json \
  --evidence .cv-update-review/evidence/pubmed_YYYY-MM.json \
  --evidence .cv-update-review/evidence/rss_YYYY-MM.json \
  --output <output-dir>/cv-update-packet_YYYY-MM-DD.md

Use the packet shape in references/packet-template.md.

Each candidate must show:

  • activity type
  • proposed CV section
  • draft wording
  • evidence
  • confidence
  • eligibility status
  • unresolved questions

9) Stop For Approval

Stop after the packet unless the user has already approved specific entries in the current conversation.

Require approval at entry level:

  • include/exclude
  • final CV section
  • final wording
  • whether evidence is sufficient

Do not treat "looks good" as approval if the packet still contains unresolved section or wording questions.

10) Extract CV Style Before Editing

Before editing a Word CV, inspect the current document's conventions near the target sections:

python3 .agents/skills/cv-update-review/scripts/extract_cv_style.py \
  --docx "/path/to/cv.docx" \
  --section "Published and Accepted Research Articles" \
  --section "Formal Teaching"

Match the existing CV, including:

  • author order and punctuation
  • journal abbreviations, years, volume/issue/pages, DOI style
  • abstract database wording
  • lecture title quotation style
  • venue/date/location order
  • mentorship table or list format
  • capitalization quirks already present in that section

Do not globally normalize the CV unless the user explicitly asks.

11) Create A Dated Word Copy

Never edit the original CV directly.

Create a dated copy:

python3 .agents/skills/cv-update-review/scripts/copy_dated_cv.py \
  --config .cv-update-review/config.json \
  --date YYYY-MM-DD

Then edit the dated copy only. Prefer the dedicated document-editing tools when available. If editing the .docx package directly, follow references/docx-editing-rules.md.

12) Verify The Updated Copy

After editing:

  • extract text from the dated copy and confirm approved entries appear exactly
  • confirm excluded entries do not appear
  • confirm original CV remains unchanged
  • render or visually inspect the Word/PDF output when possible
  • return a concise changelog with the dated copy path

Output Contract

After a discovery run, return:

  • packet path
  • source window
  • number of candidates by eligibility status
  • items requiring user confirmation
  • whether no Word document was edited

After an approved Word update, return:

  • dated CV copy path
  • entries inserted, grouped by section
  • verification performed
  • any residual uncertainty

Failure Handling

  • If config is missing, run setup or ask for setup values.
  • If PubMed is unavailable, continue with local/RSS/manual sources and mark PubMed unavailable in the packet.
  • If RSS parsing fails for one feed, continue with other feeds and record the failed feed.
  • If Google Scholar cannot be checked safely, leave it as a manual verification task in the packet.
  • If the CV document is missing, stop before packet application and report the missing path.
  • If a dated copy already exists, create a suffix such as _v2 unless the user explicitly authorizes overwrite.
  • If visual verification cannot run, report the next best text extraction check.

References

  • references/public-setup-guide.md: setup flow for colleagues
  • references/eligibility-rules.md: include/exclude decisions
  • references/packet-template.md: review packet structure
  • references/docx-editing-rules.md: Word copy and edit safety rules

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.