agentleFS
prPMDevprPMDev/my-portfolio-kit/.claude/skills/refresh/SKILL.md

refresh

Skill2 starsChanged 34 days agoMITView on GitHub

Keep an existing portfolio current. Add newly shipped work, update a changed title or fact, and re-check voice and likely-confidential details. Use in a portfolio folder for "update my portfolio", "I shipped something new", "my title changed to", "I changed jobs", or when something on the portfolio should be revealed or taken down. Not for résumés, LinkedIn profiles, release notes, or changelogs.

12 other projects use a version of this.

Adopted by

Most recently taken up by

The file

We split this skill into the rules it gives an agent

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

  • 0

    Common

    Most of the 10 edited versions we read keep these.

  • 3

    Distinctive

    This author's own choices. Worth a look.

  • 0

    Very specific

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

  • Common
  • Distinctive
  • Very specific
  1. Distinctive:

    Use it as a recurring habit, not a one-time task.

    line 12
  2. Distinctive:

    Ask what's new. Common cases:

    line 22
  3. Distinctive:

    Read the existing portfolio and find the affected section.

    line 30

“Common” is measured: kept by at least 6 in 10 of the 10 edited versions of this file we could read. “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

Refresh

The reason this kit exists. Portfolios are cheap to build and expensive to keep true — people build one, host it, and let it rot. This skill keeps it alive: every time the user ships something, changes roles, or a fact moves, it folds the change in correctly and on-voice, and flags likely-confidential details.

Use it as a recurring habit, not a one-time task.

Before you start

If CLAUDE.md is missing or isn't a # Portfolio Profile, stop: this isn't a portfolio folder. Point the user to setup in a new, empty folder. Read CLAUDE.md for Voice Profile, Contact, Source Material, and Privacy. Read the current portfolio content — the page (site/index.html) and the case studies (case-studies/) — so you know what already exists before changing anything. Also read ANONYMIZATION-LEDGER.md (if present) so you know exactly what was masked, where, and the original values — never rely on memory for this.

Process

1. Find out what changed

Ask what's new. Common cases:

  • Shipped something — a new project, launch, talk, article, release
  • Role/fact changed — new title, new company, updated numbers
  • Something became public — a client or project that was previously hidden is now in a press release, case study, or announcement
  • Something should come down — outdated, no longer representative

2. Locate where it lands

Read the existing portfolio and find the affected section. Don't append blindly — decide whether this is a new entry, an edit to an existing one, or a replacement.

3. Apply the right move

  • New work → run it through the story-adapter flow (STAR + built-in sensitivity scan, saved to case-studies/), then add it to the page.
  • Changed fact → find every place it appears (CLAUDE.md, case-studies/, site/index.html including its title and meta tags) and update consistently. Grep for the old value so nothing stale is left behind.
  • Became public → the one people forget: loosen the anonymization. Look the item up in ANONYMIZATION-LEDGER.md — it records the original value and exactly where it was hidden. Restore the original at that location, then search CLAUDE.md (## Hero, ## About), site/index.html and case-studies/ for its exact "In portfolio as" text — the page carries copies of the stand-in. Restore the hits in that story's case study and its work item; show any other hit to the user before changing it (the stand-in may be generic wording used elsewhere). Note the public source as proof it's safe, and mark the ledger row Revealed with the date. If the item is listed under CLAUDE.md → Privacy → Never name, remove it there and add it under OK to name (confirm first; leave "Never name: none" if the list empties) — otherwise assemble and story-adapter will mask it again. This is the entire reason the ledger exists: reversal you can trust instead of reversal you half-remember.
  • Take down → remove its work item from site/index.html and delete its case-studies/ file (ask first — no other copy is kept). Grep CLAUDE.md (## Hero, ## About), site/index.html (title and meta included) and case-studies/ for its title and key facts, and fix every hit. In source/ files, don't delete the user's raw words — mark the passage "(retired [date] — don't reuse)". Set its ledger rows' Status to Retired (still never shown). Voice Profile sample lines can stay — they show how the user writes and are never published.

4. Keep it on-voice and safe

Anything new or rewritten gets checked against the Voice Profile (sound like them) and run through the sensitivity rules (no colleague names, NDA details, exact confidential metrics, unreleased products). Both checks are built in — never skip them just because it's "only an update." Use the same confident defaults as story-adapter — keep public employers, generalize clients, ratios for metrics, remove unreleased/colleague/NDA — presented as recommendations the user can accept wholesale, not expert calls they must make. Anything you newly mask here gets its own row in the ledger with Status Masked — if the ledger doesn't exist, create it with the title # Anonymization Ledger — PRIVATE, never publish and columns | # | Original | In portfolio as | Where | Reason | Reveal when | Status |.

5. Show the diff

Summarize exactly what changed:

"Updated: added [project] to Work, changed title to [new], restored [client] name (now public per [source]). Voice: matched. PII: nothing flagged — skim it once before publishing."

If the page changed and CLAUDE.md lists a Live site, add: "Re-upload the site/ folder to [host] so the live page matches — on Netlify, use your site's Deploys tab so the URL stays the same." If it says "not yet", say the page in site/ is ready to publish whenever they are — and if they've already put it online themselves, to re-upload site/ so it matches (and share the URL so it's noted).

6. Set the cadence

Close by reinforcing the habit:

"Re-run refresh whenever you ship, change roles, or something goes public. That's what keeps this from going stale like every other portfolio."

Why this matters

A static copy of a portfolio is a depreciating asset — it's wrong within months. A maintained one compounds. This skill is the difference, and it's the thing a copied template can never give someone.

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.