Baby's First claude skill: tools.jakesimonds.com deploy

tools.jakesimonds.com deploy

At .claude/skills/deploy-tool you'll find SKILL.md:

---
name: deploy-tool
description: Deploy a vanilla JS project to tools.jakesimonds.com
disable-model-invocation: true
allowed-tools: Read, Glob, Grep, Bash
argument-hint: [tool-name]
---

Deploy the current project's static files to tools.jakesimonds.com.

## Steps

1. **Determine the tool name** from $ARGUMENTS. If not provided, use the current directory name.

2. **Identify the static files** to deploy. Look for the servable directory — typically `web/` or the root if HTML files are at the top level. Copy only what's needed to serve the app: HTML, CSS, JS files. Skip: node_modules, tests, specs, fixtures, markdown files, config files, .git, package.json, etc.

3. **Copy files** into `/Users/jakesimonds/Documents/jake-tools/<tool-name>/`, creating the directory if it doesn't exist. If it already exists, replace the contents (this is a redeploy).

4. **Update the root index** at `/Users/jakesimonds/Documents/jake-tools/index.html` — add a link for the new tool if one doesn't already exist. Keep it simple: `<a href="<tool-name>/"><tool-name>`. Maintain alphabetical order.

5. **Commit** in the jake-tools repo:
```
cd /Users/jakesimonds/Documents/jake-tools && git add -A && git commit -m "deploy: <tool-name>"
```

6. **Deploy** to Cloudflare Pages:
```
wrangler pages deploy /Users/jakesimonds/Documents/jake-tools --project-name jake-tools --commit-dirty=true
```

7. **Report** the live URL: `https://tools.jakesimonds.com/<tool-name>/`

When I decide the world needs to see my latest vanilla JS vibe project (or if I just get tired of booting it up on localhost and iteration feels done-ish), I can go to the directory that hosts the project, boot up Claude, and then run:

/deploy-tool my-awesome-vanilla-JS-project

And that's it! Unless it hits some unforseen snag, the tool will deploy to jakesimonds.com/my-awesome-vanilla-JS-project :D

( tools.{domain} is a pattern I am stealing from https://tools.simonwillison.net/ . I think it's a good 2026 agentic coding pattern...have an informal repository of projects. I need to steal more ideas from Simon Willison, he's great.)

My mental model of a 'Skill'

It's just markdown.

Markdown for the context window that I can evoke by running a slash command.

So me running /deploy-tool name-of-project just throws the markdown in .claude/skills/project-name/SKILL.md into the context window. And I save having to repeatedly tell LLM the same thing.

Maybe there's more to it I'm missing? As always, I welcome correction.