receipt-renamer
Prepare a dry-run rename plan for a batch of receipt PDFs. Use when the user wants repository-style receipt filenames normalized under the local naming policy without renaming files yet.
git clone --depth 1 https://github.com/LearnPrompt/LearnPrompt /tmp/receipt-renamer && cp -r /tmp/receipt-renamer/research/articles/what-are-agent-skills/showcase/receipt-renamer-skill/fixture/.agents/skills/receipt-renamer ~/.claude/skills/receipt-renamerSKILL.md
# Receipt Renamer
Use [the naming policy](references/naming-policy.md), keep the run as a dry run, and let the deterministic planner do the filename work.
## Inputs
- A batch manifest JSON such as `incoming/normal-batch/receipts.json`
- A Markdown report path under `reports/`
- A JSON plan path under `reports/`
## Workflow
1. Confirm this is a dry run and that no files should be renamed yet.
2. Read [the naming policy](references/naming-policy.md).
3. Run:
```bash
node .agents/skills/receipt-renamer/scripts/plan-renames.mjs \
--batch <batch-manifest> \
--policy .agents/skills/receipt-renamer/references/naming-policy.md \
--report <report-path> \
--json <json-path>
```
4. If the planner exits `21`, stop and report which receipt is missing `currency`.
5. If the planner exits `23`, stop and report which target filename conflicts.
6. On success, summarize the planned target filenames and point to both generated report files.
7. Only run `npm test` if the caller explicitly asks for verification after the dry-run plan exists.
## Verification
- The planner exits `0`.
- Both report files exist.
- No source receipt file is renamed.
- The written summary matches the generated plan.
## Boundaries
- Never rename, delete, or overwrite receipt source files in this skill.
- Never change the naming policy from within the skill.
- Do not invent receipt fields that the batch manifest does not contain.Create or rewrite exactly one LearnPrompt Starlight MDX tutorial to the repository's golden-sample standard, with bottom-of-page auditable sources instead of SourceCard, a research pack, evidence ledger, reproducible showcase, independent review, quality score, and successful site build. Use for one LearnPrompt article, tutorial, chapter, or MDX page; in batch goals, invoke once per topic in an isolated task.
Read a read-only release feed over HTTP, enforce an auditable request contract, and write redacted JSON and Markdown reports. Use when the task is to inspect releases from a REST endpoint without mutating upstream state.
Inspect a small npm CLI release candidate and produce a row-by-row release-readiness checklist report with evidence, pass rules, severity, N/A policy, and a final gate. Use when the task is to review a release candidate without publishing it.
Save a shared web link as a clean Obsidian note. Use when the user gives a URL and asks to save, clip, or archive it into their Obsidian vault as a markdown note with title, source, and summary.
Migrate three legacy Markdown docs into Starlight-compatible migration candidates inside an isolated temp repo. Use when you need stage receipts, crash recovery, resume validation, or deterministic candidate packaging without touching real user docs.
从一个 issue 和一段 diff 生成结构化发布摘要,固化“读 issue → 读 diff → 归类改动 → 评估风险 → 写验证步骤”的重复工作流。
Distill a candidate skill from observable repair receipts, then prove it on holdout fixtures. Use when you have repeated accepted patches, corrections, and validator results, but do not have permission to use private transcripts or hidden chain-of-thought.
Repair synthetic MDX frontmatter when title, description, or sidebar.order drift from the frontmatter contract. Use for files that follow the same observable patterns proven in the receipts; do not use on private transcripts, secret-bearing material, or arbitrary YAML.