How to create template-based Amplifier skills — a methodology extracted from building scaffold-new-service
Every new FastAPI microservice required the same boilerplate: project structure, auth middleware, Docker config, frontend setup, CI scripts.
The right way to stand up a service lived in the developer’s head and in scattered reference implementations — not in any teachable artifact.
Each new service was built by hand. Same patterns, same mistakes, same debugging session every time.
The key insight: don’t design a skill in a vacuum. Build real things first, then extract the reusable pattern. The user had lived through the pain of manual scaffolding three times — enough to know what should be automated.
The AI read every file in two reference services in parallel, mapping project structure, config patterns, middleware chains, and deployment scripts.
Produced a full artifact list, then asked 6 design questions before writing anything: auth optional or required? Templates or instructions? Monorepo or standalone?
A single SKILL.md — 365 lines, 11 sections. Pure instructions referencing live files in gh-issues-local/. Deliberately minimal.
The skill didn’t contain the knowledge — it contained pointers to the knowledge. Every section said: “See gh-issues-local/src/app.py for reference.” Those pointers assumed gh-issues-local would always exist, unchanged, in the same location.
Proposed 26 template files with placeholder tokens. Extracted from issues-to-brief (backend) and recovered from the retired github-local’s git cache (frontend). Even dead code was resurrected as reusable templates.
Hours after the V2 conversion, the template skill was used to build The Garden’s web frontend. The AI loaded the skill, read templates from templates/web/, and used them as the foundation. It worked immediately.
Directory name, display strings
Python package, imports
Backend port, frontend proxy
Skills follow the Agent Skills specification. The directory name must match the name field in SKILL.md. Here’s the standard structure and how scaffold-new-service maps to it.
The description is critical — it’s how the agent decides whether to load your skill. Write triggering conditions, not a workflow summary.
Start with an overview and a placeholder token table. Then numbered steps the agent follows in order. Include conditional branches (e.g. “if auth requested”, “if web UI requested”) and edge cases.
Heavy content goes in separate files. Keep the main SKILL.md scannable (<500 lines). The agent loads companions on demand via read_file(skill_directory + “/templates/foo”).
Both follow the same Agent Skills specification. Amplifier skills live in .amplifier/skills/ (project) or ~/.amplifier/skills/ (global), are discovered via load_skill(), and can be bundled with tool-skills config. Claude.ai skills are uploaded as ZIP files with descriptions capped at 200 chars and support declared pip/npm script dependencies in frontmatter.
The methodology for creating template-based skills — build, extract, mine, decide, validate, harden — is a repeatable, teachable pattern. Which is exactly what a skill is.
1. Build something real by hand, at least twice
2. Ask the AI to mine the pattern
3. Make the design decisions yourself
4. Start with instructions, upgrade to templates when the pain demands it
5. Validate immediately on a new project