From gh-profile
Headless refresh for a gh-profile-managed profile repo — rewrite the summaries sidecar (.github/profile-summaries.json) from real commit and release data so the activity and shipped sections carry one-line summaries, re-render the marker sections, refresh prose when activity warrants it, and push one commit. Use when running inside the profile repo's scheduled Claude workflow (profile-claude-refresh.yml) or when asked to refresh profile summaries.
How this skill is triggered — by the user, by Claude, or both
Slash command
/gh-profile:refreshThis skill is limited to the following tools:
The summary Claude sees in its skill listing — used to decide when to auto-load this skill
The daily CI pass for a profile repo the **gh-profile** skill composed. The
The daily CI pass for a profile repo the gh-profile skill composed. The
committed Python updater owns the numbers (every marker interior, refreshed
mechanically every 6 hours); this pass owns the words: the one-line
summaries that turn Pushed to [cc-review] into
Pushed to [cc-review] — built the realtime inline-comment web UI, plus the
prose outside the markers. Non-interactive by design — never ask questions,
never wait for confirmation; if a step can't proceed, print why and stop.
This skill is a thin wrapper over the repo-summaries plugin's refresh
skill: the sidecar choreography and its hard rules — style core, flattery
law, reuse-before-rewrite, deterministic bytes, never invent — live in
/repo-summaries:refresh; this wrapper supplies gh-profile's config and the
profile-specific steps (prose pass, taste budget, commit). The worked section
markup lives in this plugin
(${CLAUDE_PLUGIN_ROOT}/skills/gh-profile/reference/blueprint.md). The
profile repo's PROFILE_GUIDE.md, if present, holds only per-user overrides
and wins over the defaults.
Work the steps in order.
The cwd must be a profile-repo checkout: README.md exists, its line 1 is a
<!-- gh-profile:meta {...} --> comment, it contains
<!-- gh-profile:start: markers, and .github/scripts/update_profile.py
exists. Anything missing → print what and stop; this skill never bootstraps.
Apply the /repo-summaries:refresh choreography — read its SKILL.md and
follow steps 1–5 (the commit stays here, step 4 below). If the repo-summaries
plugin isn't installed, this marketplace ships it alongside gh-profile: read
the sibling skill at
${CLAUDE_PLUGIN_ROOT}/../repo-summaries/skills/refresh/SKILL.md.
The config: .github/summaries.config.json if the repo has one, else this
plugin's template at
${CLAUDE_PLUGIN_ROOT}/skills/gh-profile/templates/github/summaries.config.json
(repos composed before gh-profile 0.3.0 don't carry the file; the template is
the same config). It sets the sidecar path (.github/profile-summaries.json),
the two groups — activity (keys <EventType>:<owner/repo>, as_of = push
head sha or event date) and shipped (keys <repo>@<tag>) — their
raw-material recipes (harvest the dossier via
python3 .github/scripts/update_profile.py harvest, then commit subjects and
release content via gh api), the render command, and the 10-day staleness
window.
Two profile-specific checks on the shared pass:
NOMARKER <id> when a marker pair is broken —
stop and report; never patch markers from this skill.python3 .github/scripts/update_profile.py update --check
must exit 0 (idempotence: the sidecar is just another deterministic input).If the dossier shows material change — new repos since the prose was written,
shifted clusters, a "Now" section that no longer matches the recent activity —
refresh the prose (worked markup per section in
${CLAUDE_PLUGIN_ROOT}/skills/gh-profile/reference/blueprint.md): rewrite the
"Now" bullets from recent activity, punch up one-liners for repos that
appeared since the last pass, recategorize "More things I built" if the
clusters shifted. Honor PROFILE_GUIDE.md overrides first.
Invariants, non-negotiable:
<!-- gh-profile:start:<id> --> /
<!-- gh-profile:end:<id> --> interiors — the updater owns them.If nothing material changed, change nothing — don't churn words daily for their own sake.
One commit, staged precisely:
git add README.md .github/profile-summaries.json
git commit -m "chore: refresh profile summaries and prose"
git pull --rebase && git push
This run can race the 6-hourly mechanical refresh: if the push rejects or the
rebase touches README.md, re-run the render command once and push again. Exit
criteria: pushed, update --check exits 0 on the pushed state.
Guides creation, editing, and verification of skills for AI coding agents using test-driven development with subagent scenarios. Use when authoring or debugging skills.
npx claudepluginhub yasyf/cc-skills --plugin gh-profile