alterlab-recommendation-letters — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited alterlab-recommendation-letters (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
The faculty task this skill owns is writing about someone else: the letter a professor sends to an admissions committee, a hiring chair, a tenure case, or a fellowship panel. It is the mirror image of alterlab-academic-career, which helps the candidate write their own CV and statements. Here the author is the recommender, the subject is a third party, and the failure mode is not modesty but fabrication — the warm letter full of superlatives that an evaluator cannot act on because nothing is anchored to evidence.
This skill turns a structured dossier (what the recommender actually knows) into a letter whose every strong claim is earned by a specific, checkable example, with specificity and register calibrated to the letter type.
Use this skill when the request is to draft, revise, or evidence-check a letter written about a candidate by a recommender:
The skill always treats the recommender as the author of record: it produces a draft for them to verify, edit, sign, and submit, never a letter it claims to send or to vouch for on its own authority.
| The request is really… | Route to | Why |
|---|---|---|
| The candidate's own CV, research/teaching statement, cover letter, tenure dossier, promotion narrative | alterlab-academic-career | Self-authored career documents, not a third party writing about the candidate |
| A peer-review report judging a manuscript's quality with an accept/revise/reject verdict | alterlab-peer-review | Editorial quality judgment of a paper, not a personal reference for a person |
| A structured peer review of a full manuscript (core-pipeline reviewer) | alterlab-paper-reviewer | Section-by-section manuscript critique, not a recommendation about a candidate |
| Türkiye doçentlik eligibility / point computation for an associate-professor case | alterlab-docentlik-eligibility | ÜAK criteria scoring, not a prose reference letter |
| Academic-incentive (akademik teşvik) point computation | alterlab-akademik-tesvik | YÖK incentive points, not a letter |
| Checking that the citations in a letter or dossier actually exist | alterlab-citation-verifier | Bibliographic existence verification, not letter-claim evidence-anchoring |
| Designing a course, rubric, or syllabus for the student | alterlab-teaching-design | Course/instructional design, not a reference about the student |
| Writing a grant proposal or post-award report | alterlab-research-grants / alterlab-grant-reporting | Funding documents, not personal references |
If the candidate is writing about themselves, stop and hand off to alterlab-academic-career. The two skills are deliberately disjoint.
Each type has a different reader, decision, and register. The scaffold script keys off this taxonomy. Full per-type guidance, openings, and worked structure live in references/letter_types.md.
| Type | Reader / decision | Calibration |
|---|---|---|
| Graduate admission | Admissions committee deciding fit for a program | Potential + trajectory; compare against the cohort the recommender has taught; concrete classroom/research moments |
| Faculty hiring | Search committee / department deciding a colleague | Independence, research program, collegiality, teaching; position within the subfield |
| Tenure / promotion external review | P&T committee + administration weighing a permanent decision | Arms-length, evaluative, often comparative against named peers at career stage; assess impact and standing, not advocacy |
| Fellowship | Selection panel awarding a competitive named award | Distinctiveness vs a strong applicant pool; why this candidate, this award |
| Award nomination | Awards committee citing achievement | Citation-style; the single defining contribution and its significance |
The external-review letter is the one most often miswritten as an advocacy letter. It is not: tenure reviewers are asked to evaluate, and a letter that only praises reads as uninformative. references/letter_types.md spells out the register shift and the standard "would this person get tenure here?" prompt.
Every adjective must be cashed out by a specific example. The pattern:
Claim → Evidence → Significance. "She is an unusually independent researcher" (claim) "— in her second year she reframed the project after a null result, designed the follow-up assay herself, and that pivot became the paper's central finding" (evidence) "— work I would expect from a senior postdoc, not a second-year student" (significance / calibration).
A claim with no evidence in the dossier is the single most common defect. The no-fabrication guard (scripts/claim_guard.py) lints a draft for exactly this: unsupported superlatives ("the best student I have ever had"), unanchored rankings ("top 1%"), and evaluative adjectives that no nearby sentence backs with a concrete instance. It does not invent the missing evidence — it flags the claim and asks the recommender to supply the example or soften the claim.
Calibrated specificity is the companion rule: superlatives and rankings are allowed and valuable — but only when the recommender can ground them ("top 2 of the ~40 PhD students I have advised in 18 years"). An ungrounded "top 1%" is weaker than a grounded "the strongest of the six students in this year's lab." See references/evidence_and_specificity.md for the claim taxonomy, the ranking grammar, and the rhetoric of comparison.
This skill writes only from the supplied dossier. It must never:
not provide;
When the dossier is thin, the correct output is a draft with bracketed gaps ([recommender: a specific example of independence here]) plus a short list of the facts the recommender must supply — not a fluent letter that papers over the holes with plausible fiction. A letter is a signed personal attestation; inventing its content is a research-integrity problem, not a style choice.
Ask for, or extract from what was provided: letter type; candidate name + role; target (program/position/award + institution); relationship (capacity and duration the recommender knew the candidate); the candidate's accomplishments (with any metrics, artifacts, anecdotes); the specific qualities the target asks to be addressed; and deadline / length norms. references/intake_checklist.md is the full prompt list; missing fields become bracketed gaps, never invented content.
uv run python skills/faculty-life/alterlab-recommendation-letters/scripts/letter_scaffold.py \
--type tenure-external \
--candidate "Dr. A. Yılmaz" \
--relationship "external reviewer; known through the field since 2016" \
--out letter_skeleton.mdThe scaffold emits a type-appropriate section skeleton — opening that states the relationship and basis for assessment, body sections matched to the type's evaluation dimensions (e.g. independence/impact/standing for external review; potential/trajectory/fit for admission), and a calibrated closing. Each section carries an inline reminder of the Claim → Evidence → Significance pattern. Pass --list-types to see the five supported types. The script is stdlib-only.
Fill each section using only dossier facts. Lead every evaluative claim with the specific example that earns it. Match the register to the type (advocacy for admission/fellowship; arms-length evaluation for external review).
uv run python skills/faculty-life/alterlab-recommendation-letters/scripts/claim_guard.py \
letter_draft.md --jsonIt returns each flagged sentence with a reason (unsupported-superlative, unanchored-ranking, evidence-free-claim) and a fix prompt. Resolve every flag by adding the recommender's evidence or softening the claim — never by inventing support. Re-run until clean (exit 0).
Present the draft plus: the list of bracketed gaps the recommender must fill, the guard's residual flags, and a one-line reminder that the recommender must verify every factual claim and sign/submit it themselves.
concrete, dossier-sourced instance — or it is bracketed for the recommender.
is absent from the supplied dossier.
admission/fellowship reads as grounded advocacy.
explicit (how, how long, in what capacity).
alterlab-academic-career; hand it off.
references/letter_types.md — per-type readers, openings, structure, and theexternal-review register shift.
references/evidence_and_specificity.md — Claim → Evidence → Significance,the claim taxonomy, ranking grammar, and comparison rhetoric.
references/intake_checklist.md — the structured dossier intake prompt and howthin fields become bracketed gaps.
Part of the AlterLab Academic Skills suite.
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.