by garagon
A workflow harness that helps AI coding agents plan, review, test, and ship safer code.
# Add to your Claude Code skills
git clone https://github.com/garagon/nanostackLast scanned: 5/30/2026
{
"issues": [],
"status": "PASSED",
"scannedAt": "2026-05-30T15:41:34.119Z",
"npmAuditRan": true,
"pipAuditRan": true
}nanostack is an open-source ai agents skill for AI coding assistants such as Claude Code, Codex CLI, and ChatGPT, built by garagon. A workflow harness that helps AI coding agents plan, review, test, and ship safer code. It has 201 GitHub stars.
Yes. nanostack passed SkillsLLM's automated security scan — a dependency vulnerability audit plus prompt-injection heuristics — with no high-severity issues. You can read the full report in the Security Report section on this page.
Clone the repository with "git clone https://github.com/garagon/nanostack" and add it to your Claude Code skills directory (see the Installation section above). nanostack ships a SKILL.md manifest, so compatible agents can discover and load it automatically.
nanostack is primarily written in Shell. It is open-source under garagon on GitHub, so you can review or fork the full source.
Yes. SkillsLLM lists many other AI Agents skills you can browse and compare side by side. Open the AI Agents category from the badge at the top of this page, or use the Related Skills and comparison links further down to weigh nanostack against similar tools.
No comments yet. Be the first to share your thoughts!
You have access to a set of composable engineering workflow skills. Each skill is a folder with supporting files — read them as needed for context.
| Skill | When to use | Modes | Key files |
|---|---|---|---|
/think |
Before you build. Refines a rough idea through questions, explores alternatives, walks the design in sections. | — | think/references/forcing-questions.md, think/references/cognitive-patterns.md |
/nano |
Before starting any non-trivial work. Produces a scoped, actionable plan. | — | plan/templates/plan-template.md |
/review |
After code is written. Two-pass review + scope drift detection + conflict resolution. | --quick --standard --thorough |
review/checklist.md, reference/conflict-precedents.md |
/qa |
To verify code works. Browser-based testing with Playwright, plus root-cause debugging. | --quick --standard --thorough |
qa/bin/screenshot.sh |
/security |
Before shipping. OWASP Top 10 + STRIDE + variant analysis + conflict detection. | --quick --standard --thorough |
security/references/owasp-checklist.md, security/templates/security-report.md |
/ship |
To create PRs, merge, deploy, and verify. Generates sprint journal on success. | — | ship/templates/pr-template.md |
/guard |
When working near production, destructive operations, or sensitive systems. | — | guard/bin/check-dangerous.sh |
/feature |
Add a feature to an existing project. Skips /think, goes straight to plan → build → review → security → qa → ship. | — | feature/SKILL.md |
/conductor |
Orchestrate parallel agent sessions through a sprint. Coordinate task claiming and artifact handoff. | start claim complete status |
conductor/bin/sprint.sh |
/nano-run |
First-time setup. Configures stack, permissions, and preferences conversationally. Guides first sprint. | — | start/SKILL.md |
/nano-help |
Quick reference for all nanostack commands and how to use them. | — | help/SKILL.md |
The default workflow is: /think → /nano → build → /review → /security → /qa → /ship
With /conductor, review + security + qa run in parallel — they all depend on build, not on each other:
think → plan → build ─┬─ review ─┐
├─ qa ├─ ship
└─ security ─┘
Activate /guard at any point when operating near production or sensitive systems.
Read ZEN.md for the full set of principles. When in doubt about a decision during any skill, consult it. The short version:
Skills /review, /security, and /qa support intensity modes:
| Mode | Flag | When | Confidence |
|---|---|---|---|
| Quick | --quick |
Trivial changes (typos, config, docs) | 9/10 — only the obvious |
| Standard | (default) | Normal changes | 7/10 — anything reasonable |
| Thorough | --thorough |
Critical changes (auth, payments, infra) | 3/10 — flag everything suspicious |
Skills auto-suggest a mode based on the diff, but the user always decides.
Saving artifacts is not optional. Every skill must save its artifact after completing.
Skills automatically save their output to .nanostack/ after every run:
.nanostack/<phase>/<timestamp>.json
This enables:
/review compares planned vs actual files/review and /security cross-reference each other's findings/ship generates a journal entry from all phase artifactsAuto-saving is on by default. The user can disable it by setting auto_save: false in .nanostack/config.json.
Artifacts are validated before saving: save-artifact.sh rejects invalid JSON, missing required fields (phase, summary), and phase mismatches.
To discard artifacts from a bad session: bin/discard-sprint.sh (removes artifacts and journal entry for the current project and date).
When skills produce contradictory guidance (e.g., /review says "more error detail" but /security says "minimize error exposure"), the conflict resolution framework applies:
Read reference/conflict-precedents.md for known conflict patterns and pre-defined resolutions.
On first use in a project, run bin/init-config.sh --interactive to create .nanostack/config.json. This stores:
If config exists, read it at the start of any skill to adapt behavior:
bin/init-config.sh # outputs current config or {} if none
Skills use config for:
/review, /qa, /security: read preferences.default_intensity instead of always defaulting to standard/security: read preferences.conflict_precedence to determine who wins in cross-skill conflicts/security: read detected to skip irrelevant checks (don't scan for Python vulns in a Go project)Per-skill configs (security/config.json, guard/config.json) store skill-specific settings and are read by that skill only.
~/.claude/skills/nanostack/bin/capture-failure.sh <skill> "<what went wrong>" "<what was tried>" "<what fixed it>"
Failures compound into knowledge. Next sprint, the same mistake is avoided. This does not require /compound or a successful ship — just log and move on.Suggest skills when context matches — don't wait for the user to remember:
| Trigger | Suggest |
|---|---|
| User says "what should I build" / unclear on direction | /think |
| Task touches 3+ files or user says "how should I approach this" | /nano |
| User says "done", "finished", "ready for review" | /review |
| User says "does this work", "test this", bug report | /qa |
| Pre-ship, user says "ready to deploy", or diff touches auth/env/infra | /security |
| User says "create PR", "merge", "ship it" | /ship |
| Destructive commands, production access, or sensitive operations detected | /guard |
/think for new products or when the "what" is unclear/nano before building anything that touches more than 3 files/review on your own code — the adversarial pass catches what you missed/security is not optional before shipping to production/guard is on-demand — activate it, don't leave it always on/qa can invoke /security checks, /ship can invoke /reviewInspired by gstack from Garry Tan. Nanostack gives your agent the working method of a small product team: it questions the scope, plans, reviews the code, audits security, tests, and ships, leaving a paper trail you can inspect at every step. Everything is plain text and local scripts under Apache 2.0, so you can read every rule your agent follows. No Nanostack cloud, no daemon, no app runtime.
Verified adapters today: Claude Code, Cursor, OpenAI Codex, OpenCode, and Gemini CLI. The skill files are plain text, so other agents may load them, but only those five have a verified adapter and capability declaration in adapters/.
What changed in the latest release (custom workflow stacks, visual artifacts, stronger safety contracts): see RELEASE_NOTES.md.
You: I need to add notifications to my app. Users keep missing
replies on their posts.
You: /think
Agent: Before we build anything, how are users coping today?
You: They open the app 3-4 times a day just to check. Sometimes
they miss replies for hours. People are frustrated.
Agent: I'm going to push back on "notifications." You said users open
the app 3-4 times a day. That's high engagement. They already
come back. The problem isn't that they can't be reached. The
problem is that when they arrive, they can't tell what changed.
That's a freshness problem, not a messaging problem.
A notification system (email, push, in-app, preferences,
digest, unsubscribe) is a 3-week project. A red dot on the
nav icon that says "something new" ships this afternoon.
One solves the symptom (they're not being told). The other
solves the cause (they can't see what's new when they look).
RECOMMENDATION: Reduce. Ship the dot. See if complaints drop.
If they do, you just saved 3 weeks. If they don't, then build
push notifications, but now you have data, not a guess.
You: Makes sense. Let's do the dot.
You: /nano
[3 steps, 2 files, product standards: shadcn/ui + Tailwind]
You: [builds it]
You: /review
Review: 2 findings (1 auto-fixed, 1 nit). 2 things done well.
You: /security
No secrets, auth changes, or unsafe data flows introduced. Grade A.
You: /qa
Opened the app, posted a reply, refreshed, confirmed the dot
appears and clears. 4 checks pass.
You: /ship
PR explains why the change exists, how it was checked, and what
remains. CI green. Sprint journal saved.
That is the difference: not just code generation, but a delivery loop you can inspect.
| Without Nanostack | With Nanostack |
|---|---|
| ❌ A vague prompt turns into code immediately. | ✅ /think turns the idea into a brief, risk, and smallest useful starting point. |
| ❌ The plan disappears in chat. | ✅ /nano saves a plan with files, risks, checks, and out-of-scope items. |
| ❌ The agent quietly refactors three things you did not ask for. | ✅ /review compares the code against the plan. Scope drift is visible before merge. |
| ❌ QA and security happen only if someone remembers. | ✅ /qa opens your app and exercises it. /security runs on every ship and catches the mistakes that make headlines. |
| ❌ Your PR says "add notifications" and nobody knows what actually changed or why. | ✅ /ship explains why the change exists, how it was checked, and what remains. |
| ❌ You rush-commit Friday 5pm and Monday find out it broke something unrelated. | ✅ The sprint blocks git commit until /review, /security, and /qa pass. (Enforcement varies by agent; see honesty matrix below.) |
| ❌ Every session re-pastes the same context: what we use, what is fragile. | ✅ Every skill reads the artifact the previous skill wrote. Sprint journals preserve decisions in .nanostack/. |
Not sure yet? Start with a disposable sandbox from the Examples Library. It gives you a real sprint without risking your product.
| Example | Best for | Stack | Time |
|---|---|---|---|
starter-todo |
new and non-technical users | one HTML file | 5-10 min |
cli-notes |
CLI workflows | Bash | 5-15 min |
api-healthcheck |
backend flows | Node stdlib HTTP | 10-15 min |
static-landing |
founders and designers | static HTML/CSS | 10-15 min |
compliance-release |
teams building a custom workflow stack | license + privacy + release gate | 15-30 min |
Each example has a copy-paste prompt, expected sprint flow, success criteria, and reset steps. Full Examples Library: examples/.
compliance-release is advanced. It is not a starter app and it is not a compliance certification. It shows how several custom skills can compose into one release workflow.
npx create-nanostack
One command. Detects your agents, installs everything, runs setup.
Then run /nano-run in your agent to configure your project through a conversation. On your first sprint, /think shows the full pipeline so you know what comes next.
If you want to see the workflow before installing into a real repo, use one of the sandbox examples above.
| If you are... | Start here |
|---|---|
| New to agent workflows | Try starter-todo, then run /nano-run |
| Already shipping with AI agents | Install Nanostack, then start with /think or /feature |
| Evaluating safety | Read Guard and the host enforcement matrix |
| Building your own workflow | Start with EXTENDING.md and compliance-release |
| Inspecting what the agent did | Render any phase as local HTML with visual artifacts (bin/render-artifact.sh) |
Your agent can already edit files and run commands. Nanostack gives it a method: 13 built-in skills, a seven-phase default sprint, and a framework for composing your own workflow stacks.
The default sprint turns a request into a scoped, reviewed, security-checked, tested change with a PR and a sprint journal. Each phase writes a structured artifact: a small local file that records what was decided and what was checked. Later phases read those files instead of depending only on chat history.
The bet is artifact-first delivery:
On Claude Code, Nanostack can enforce parts of the workflow through PreToolUse hooks. On other agents, the same workflow runs as guided instructions. See What enforces on which agent for the honest per-host table.
The built-in sprint is the default stack:
| Step | What the specialist does | |
|---|---|---|
| 01 | /think |
Refines your rough idea through questions. Finds the smallest useful version. |
| 02 | /nano |
Plans the implementation. Names files, risks, and checks. |
| 03 | build | You or the agent writes the code. |
| 04 | /review |
Two-pass code review. Scope drift detection. Auto-fixes the mechanical. |
| 05 | /security |
OWASP A01-A10 audit + STRIDE threat modeling. Graded A-F. |
| 06 | /qa |
Tests the thing. Browse |