Skip to main content

save-the-script

Use when writing a script, or when about to write one that resembles something written before, or when the user says reuse, do not rewrite, regenerate, you wrote this before, or every time you. Turns a working one-off into a tool a future session runs instead of reinventing. Also use before writing any throwaway in a scratch directory.

Informations de source

Dépôt
gavin844/claude-code-skills
Dernière activité de la source
5 octobre 2026 à 19:27
Langue détectée de SKILL.md
anglais
Étoiles
0
Forks
0

Options d'installation

Le prompt qui vérifie d'abord la source est sélectionné par défaut. Vous pouvez passer à une commande directe ou télécharger une copie locale.

Vérifiez les fichiers source

Lisez SKILL.md et les fichiers associés affichés par SkillsMP avant de décider de l'installer.

Explorateur de fichiers
2 fichiers

Affichage de SKILL.md

SKILL.md
Instructions source · Aperçu en lecture seule
name
save-the-script
description
Use when writing a script, or when about to write one that resembles something written before, or when the user says reuse, do not rewrite, regenerate, you wrote this before, or every time you. Turns a working one-off into a tool a future session runs instead of reinventing. Also use before writing any throwaway in a scratch directory.
metadata
{"version":"1.0.0"}
# Save the script The user, 2026-09-18: "I build out so much code, but you need to actually figure... you need to be able to resort to that code and not have to run it all again." Partly a time cost, partly a context cost: the same code regenerated is paid for twice. Anthropic's skills team describes the same practice as saving a script inside the skill as **a tool for its future self**. Developers have called it don't repeat yourself for forty years. The AI-specific version is worse than the classic one, because a regenerated script is not just wasted work: it comes back **slightly different every time**, so the output drifts and nobody can tell whether the change was intentional. ## The rule **Before writing a script, look for it. After writing one that worked, save it.** Neither half is optional. The first half is one search. The second half is thirty seconds. The alternative has already cost this workspace a markdown-to-Google-Docs converter three times over. ## Before you write 1. Search `~/.claude/skills/*/scripts/` and the project's `tools/` and `scripts/` directories for the verb you are about to implement (render, screenshot, convert, scrape, diff, post, upload). 2. Search the current session's scratchpad. A script written earlier in the same conversation is the one most often rewritten. 3. If something close exists, **run it and read its output** before deciding it does not fit. "Close enough with a flag added" beats a fresh file almost every time. ## After it works A script earns a permanent home when **any** of these is true: - it will plausibly run again, even once - it took more than about ten minutes to get right - getting it wrong is expensive or invisible (anything touching money, a deploy, a scheduled task, or a surface the user looks at) - it encodes a fact that was hard to learn (an API's exact request shape, a file format's quirk, a timezone rule) Then: 1. **Put it where it will be found.** A tool used across projects goes in the workspace's shared `tools/` directory. A tool that belongs to one skill goes in `~/.claude/skills/<skill>/scripts/`. A tool that belongs to one project goes in that project's `tools/` or `scripts/`. 2. **Give it arguments instead of hardcoded values.** The one-off had a document id and a file path baked in; the tool takes them. This is the single change that decides whether it is ever reused. 3. **Write the header the way this workspace writes headers**: what it is for, the incident that produced it, and the trap that will bite the next person. A tool without that header gets rewritten by someone who did not trust it. 4. **Point the skill at it.** If a skill would use this script, name the script in the skill body so a future session runs it rather than reasoning its way to a new one. 5. **Prove it once more after the move.** Paths change when a file moves. A tool that worked in the scratchpad and fails in `tools/` is worse than no tool. ## What not to save Genuinely single-use code: a one-line query to answer a question that is now answered, an exploratory print, a migration that has already run and cannot run again. Saving these is how a `tools/` directory becomes a junk drawer nobody searches, which causes the exact rewriting this skill exists to prevent. The test: **would a future session, not knowing this conversation, be glad to find it?** ## Worked example, from this workspace `tools/md_to_gdoc.py` renders markdown into a Google Doc. It was written from scratch three times for three different documents and thrown away in a scratch folder each time. On the third time it became a tool: `--create` for a new document, `--doc` for an existing one, tables shaded, status words coloured. Writing it as a tool also forced a test on a throwaway document first, which caught a bug all three earlier versions would have shipped: the Docs API rejects a table style request that carries both a start location and a range. That is the second, quieter payoff. A script you intend to keep gets tested. A script you intend to delete gets hoped over.
Voir sur GitHub