agentleFS
yunanwgyunanwg/brilliant-CV/template/AGENTS.md

brilliant-CV / template

AGENTS.md849 starsChanged 37 days agoApache-2.0View on GitHub

This folder is a CV and cover-letter workspace. It was created with typst init @preview/brilliant-cv. The package renders the documents. This folder and its content belong to the user. For a tailored application, keep one folder per job, for example applications/<company>/ with the posting, a cv.typ, and a letter.typ. Keep profile_<name>/ as the single source of truth and change facts there only. 1. Do not invent facts. Tailor by selecting, ordering, and rephrasing what the profile already contains. If a…

We split this AGENTS.md into the rules it gives an agent

3 rules. About 0 are common, 0 are distinctive, and 3 are very specific to this project.

  • ≈0

    Common · estimate

    Many files like this have a rule of this kind.

  • ≈0

    Distinctive · estimate

    This author's own choices. Worth a look.

  • 3

    Very specific

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

  • Common
  • Distinctive
  • Very specific
  1. Very specific:

    Keep profile_<name>/ as the single source of truth and change facts there only.

    line 18
  2. Very specific:

    Keep only the modules you need, or paste the chosen entries from profile_<name>/*.typ into this file.

    line 60
  3. Very specific:

    Verify with the commands in rule 4 from this folder, with --root ..

    line 66

≈ “Common” is an estimate: at least 1 in 5 of the 36,368 AGENTS.md 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
AGENTS.md

CV Workspace

This folder is a CV and cover-letter workspace. It was created with typst init @preview/brilliant-cv. The package renders the documents. This folder and its content belong to the user.

Layout

PathHolds
profile_<name>/metadata.tomlIdentity, contact data, and layout settings of one profile
profile_<name>/*.typCV content: education, experience, projects, skills
cv.typ, letter.typEntry points. --input profile=<name> selects the profile (default en)
assets/Photo, logos, signature, bibliography

For a tailored application, keep one folder per job, for example applications/<company>/ with the posting, a cv.typ, and a letter.typ. Keep profile_<name>/ as the single source of truth and change facts there only.

Rules

  1. Do not invent facts. Tailor by selecting, ordering, and rephrasing what the profile already contains. If a posting asks for something that the profile does not show, tell the user. Do not add it.
  2. Check the profile before you use it. Dates, degrees, locations, and header badges must agree with each other. Report a contradiction to the user instead of choosing a version yourself.
  3. Take the API from the installed package, not from memory. The #import "@preview/brilliant-cv:<version>" lines pin the version. The doc-comments in that version's src/lib.typ and src/cv.typ are the reference. Typst caches the package at <cache>/typst/packages/preview/brilliant-cv/<version>/, where <cache> is ~/Library/Caches (macOS), ~/.cache (Linux), or %LOCALAPPDATA% (Windows). The field reference for metadata.toml is metadata.toml.schema.json in this folder.
  4. Verify every change by compiling.
    • typst compile cv.typ --input profile=<name>
    • For a file in a subfolder that reads ../../profile_<name>/, add --root . and run from this folder: typst compile --root . applications/<company>/cv.typ
    • To check the page count without rendering (Typst 0.15+): typst eval --input brilliant-cv-query=1 'query(<brilliant-cv>).last().value.pages' --in cv.typ. On Typst 0.14, use typst query cv.typ '<brilliant-cv>' --field value --input brilliant-cv-query=1 and read pages from the last element. Each element also reports the page on which it ends, so you can list what spilled to page 2; the cv() doc-comment lists the fields.
    • To see the layout, compile to PNG, one file per page: typst compile --root . applications/<company>/cv.typ "applications/<company>/cv-{p}.png". Typst does not create a missing output folder.
  5. Keep personal data local. A scanned signature, a phone number, and application folders do not belong in a public repository. Before the first commit, add applications/, *.pdf, and assets/signature.* to a .gitignore in this folder.

Tailor a CV for one application

  1. Copy cv.typ and letter.typ to applications/<company>/. In both copies, change "profile_" to "../../profile_" and "assets/ to "../../assets/.
  2. Keep only the modules you need, or paste the chosen entries from profile_<name>/*.typ into this file. Do not edit the profile for one job.
  3. Override a profile value for this application only: #metadata.insert("header_quote", "…") before cv.with(metadata).
  4. In the letter copy, set recipient-name, recipient-address, subject, and a fixed date: (the default is today, so it changes on every compile).
  5. Verify with the commands in rule 4 from this folder, with --root ..

Useful patterns

  • To change the size, weight, style, color, or font of one kind of text, for example all section titles, set [layout.parts.<name>] in metadata.toml. metadata.toml.schema.json lists the part names. Do not copy or edit the package for a style change.
  • For a structural layout change that [layout] and [layout.parts] cannot make, copy the package to vendor/preview/brilliant-cv/<version>/, compile with --package-path vendor, and edit the copy. Record each change in vendor/CHANGES.md: the copy gets no fixes from new versions. Details: https://yunanwg.github.io/brilliant-CV/recipes/#change-the-layout-beyond-the-configuration
  • The cover-letter body is 12pt. [layout] font_size applies to the CV only.
  • To keep the closing, the signature, and the name together on one page, put them in #block(breakable: false)[…] at the end of the letter.
  • Letter addresses use small caps by default, which prints "ß" as "SS" and e-mail addresses in capitals. Pass address-style: "normal" to keep them as written.

Download now (ZIP)

  • Where files are headingNew AGENTS.md files have more rules about keeping secrets out of the code, and fewer about code style.

    Of the AGENTS.md files we read, the 28,693 first seen in the last six months, against the older ones: the kind of rule that gained most share, and the kind that lost most. About files like this in general, not this one, and an estimate, since a kind is a pattern in the words.

  • In this repository2 other files it gives its agents.

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.