Borrowing it
Nothing to install: this file belongs to fbabelle/PrettySeriousResearcher. Take a copy, put it at the same path in your own repository, and replace the rules that are about this project with yours.
curl -O https://raw.githubusercontent.com/fbabelle/PrettySeriousResearcher/main/.claude/skills/research-repo-hygiene/SKILL.mdgit clone --depth 1 https://github.com/fbabelle/PrettySeriousResearcherWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/fbabelle/prettyseriousresearcher/research-repo-hygiene)<a href="https://agentmods.dev/skills/fbabelle/prettyseriousresearcher/research-repo-hygiene"><img src="https://agentmods.dev/badge/skills/fbabelle/prettyseriousresearcher/research-repo-hygiene/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/fbabelle/prettyseriousresearcher/research-repo-hygiene"><img src="https://agentmods.dev/badge/skills/fbabelle/prettyseriousresearcher/research-repo-hygiene.svg" alt="Reviewed on agentmods" width="80" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00055 | $0.01424 |
| Opus 5 | $0.00028 | $0.00712 |
| Sonnet 5 | $0.00011 | $0.00285 |
| Haiku 4.5 | $0.00006 | $0.00142 |
Grade A, and why
research-repo-hygiene scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 7d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 36 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Research repo hygiene
The standing rules every phase follows for repo structure and process. This is a reference skill — consulted, not run. The full spec (layout, every rule, the .gitignore) is in references/conventions.md; read it when scaffolding the repo or when a convention is in question. The essentials:
Layout (what goes where)
docs/plans/ (timestamped plan backups) · docs/changelogs.md (append-only change log) · docs/tracking/ (effort/cost ledgers) · docs/local-env.md (probed host + supplier limits) · docs/claims-ledger.md (claim→evidence rows) · docs/venue-profile.md (early venue-as-input profile) · docs/venues.md (late deadline-feasible venue plan) · docs/review/ (pre-submission research-mock-review packets) · docs/submission/ (staged portal forms + response drafts) · drafts/ (versioned paper drafts) · src/ experiments/ runs/ tests/ (code, lazy per phase) · root README.md (quickstart) · architecture.md (design + project charter) · memory.md (untracked user patterns). Cross-cutting infra is scaffolded up front; code dirs and the venue/review artifacts are created lazily when their phase arrives.
The rules that bite most often
- Plans → back up to
docs/plans/plan-YYYYMMDD-HHMMSS.mdbefore executing; that backup also triggers aresearch-trackingeffort+cost report. - Changelog → every change gets a dated what+why entry in
docs/changelogs.md. - Drafts →
vNN-title.md; start a new draft when an effort chunk exceeds ~5 agent-active hours; periodically move superseded drafts to the gitignoreddrafts/_archive/. - README/architecture → updated less often, but kept accurate;
architecture.mdalso holds the Phase-1 project charter. - Commits → by feature, not hours; commit when the user changes subject; auto-push; PR to main only on explicit request; no co-author/generated-by footer. Use a
research/<paper-slug>/<feature>branch in the monorepo, never the shared default branch directly. - Tests → ship with all new code, tracked and committed, and must pass after major changes (enforced by
research-code-review). - A commit's diff must contain what its message claims → after a scripted or anchored patch, check the target line is actually in
git diffbefore committing (earned: a patch whose anchor silently failed produced a commit carrying the fix's message but not its code; the follow-up commit had to say so). Gate commits on the test runner's exit code, never on a parsed log line — an unwritable log path once produced a false "suite red" and an unverified state. - Python env → managed by
uv; committedpyproject.toml+uv.lock, Python 3.12 by default (.python-version+requires-python>=3.12); run code viauv run(.venv/gitignored). Skill-set utilities liketrack.pyare stdlib-only and run under plainpython3. Note:uv initcreates a git repo automatically when none exists — check.gitbefore runninggit inityourself. (full rules in the reference) - memory.md → untracked; rolling user summary on top + dated specifics below; skills win on methodology, memory wins on the user's explicit choices (full priority rule in the reference).
- Secrets → the moment a secrets file (
.env, token files) appears in the tree, rungit check-ignore -von it — the scaffold's.gitignoremay predate it (earned: a.envholding an API key sat un-ignored). Never commit it; non-secret selection lines may live beside the secret only once the file is confirmed ignored, and the decision they encode is recorded in a tracked doc. When probing a credential (does this token unlock tier X?), read it in code and print only masked results — a value echoed bygrep/catlands in the session transcript, and any secret that reached a transcript is rotated, not hoped about. - ADR changes ripple → when a decision record changes a mechanism, grep every doc (both languages, diagrams, symbol tables) for the old narrative and fix it in the same commit — a superseded sentence surviving in three places is an internal contradiction a reviewer will find (the global-impact rule: find every consumer before changing shared logic).
- Compiled expository artefacts are docs → a PDF built from a
.tex(lecture notes, tutorials) drifts silently when only the markdown moves; list such artefacts in the project rules, rebuild them in the same commit as the ADR that changes the theory or architecture, and git-ignore the build by-products (.aux/.log/.out/.toc), never the PDF (earned: notes were three architecture versions behind until the user asked). - Source vs install — skill edits go through the evolution channel → this skill set is authored/maintained in its source project and installed into paper projects. Ad-hoc mid-task edits to
.claude/skills/**are still prohibited; the sanctioned path isresearch-skill-evolution(user-configured, hook-triggered): incremental, logged (docs/tracking/skill-evolution-log.md), committed passes. If a source project exists, sync evolution edits upstream after each pass — otherwise the next reinstall clobbers them.
What ships with it
1 file beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 7d ago Changed · +4 lines 3883802a9ec7
- 12d ago First seen · 32 lines · 55 tokens per session scan A 17ba23d1ed89
research-repo-hygiene is a skill published in the GitHub repository fbabelle/PrettySeriousResearcher (2 stars, last pushed yesterday), licensed Apache-2.0. It adds 55 tokens to every session and 1,424 once invoked, about $0.0003 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.
Other skills, from other repositories
prowler-commit
Creates professional git commits following conventional-commits format. Trigger: When creating commits, after completing code changes, when user asks to commit.
gh-auth-isolation
Safely manage multiple GitHub identities (EMU + personal) in agent workflows.
comet-github
A routing guide for Comet-related GitHub work. It directs requests about pull requests, issues, CI failures, ideas, and fixes to the appropriate review or implementation process.
github-skill
Work with GitHub via the gh CLI — clone repositories, create/list/merge pull requests, create/list issues, and run any other gh command (API calls, workflow runs, releases, repo administration). List operations return parsed JSON.
changelog-composer
Generates structured changelogs and release notes from git history and PRs, classifying breaking changes, features, fixes, performance, docs. Triggers on: "generate changelog", "write release notes", "what changed since", "prepare release", "release notes for", "diff since tag".
re0-merge
Review and land an external contribution the way this suite does: gate it against the thesis, land it with the author's credit intact, complete a new skill rather than merging it raw, then approve, credit, and explain before closing. Use when reviewing a pull request, as any collaborator or maintainer, not only the…