Agent skill

Nano

by garagon in garagon/nanostack

A skill your agent uses when starting non-trivial work (touching 3+ files, new features, refactors, bug investigations).

Apache-2.0Auto-check passedAgent Workflows

Install Nano

skills CLI
$ npx skills add garagon/nanostack --skill nano -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install garagon/nanostack nano --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/garagon/nanostack.git skills-src && mkdir -p .claude/skills && cp -r skills-src/plan .claude/skills/nano && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
nano
GitHub stars
207
Token cost
~3.3k tokens
SKILL.md length
1,570 words
Files
7 (incl. references)
Skills in repo
14
Repo updated
First seen
Licence
Apache-2.0

At a glance

A skill your agent uses when starting non-trivial work (touching 3+ files, new features, refactors, bug investigations).

  • Works in 7 steps: Understand the Request → Evaluate Scope → Specs (Medium/Large scope only) → …
  • Starting non-trivial work (touching 3+ files
  • SKILL.md covers Telemetry preamble, Session, Process and Graduated Rules, plus 3 more sections
  • Calls jq

What it does

Nano is an agent skill from garagon/nanostack. Use when starting non-trivial work (touching 3+ files, new features, refactors, bug investigations). Produces a scoped, actionable implementation plan before any code is written. Triggers on /nano.

Its SKILL.md is about 3.3k tokens, which your agent loads only when the skill is triggered. The skill folder holds 9 other files, including reference files (for example `agents/openai.yaml`, `references/product-standards.md` and `references/stack-defaults.md`).

It sits in Agent Workflows, covering Planning and Refactoring. It works with Git. The repository describes itself as: A workflow harness that helps AI coding agents plan, review, test, and ship safer code. The licence is Apache-2.0.

When your agent uses it

  • Starting non-trivial work (touching 3+ files
  • Bug investigations)

Example prompts

  • “/nano”

Workflow steps

7 steps, taken from the step headings in SKILL.md.

  1. Understand the Request
  2. Evaluate Scope
  3. Specs (Medium/Large scope only)
  4. Write the Implementation Plan
  5. Architecture Checkpoint (Medium/Large scope only)
  6. Product Standards (if the plan includes user-facing output)
  7. Present and Confirm

What it can do on your machine

Read from SKILL.md and the folder at commit 0372aed. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Shell commands in SKILL.md call:

    • jq

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Nano loads about 3.3k tokens when it runs, and up to ~5.5k if it reads all its reference files. Until then it costs about 51 tokens; SKILL.md has 1,570 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~51
When it runs · the whole SKILL.md, loaded when a task matches
~3.3k
With references · SKILL.md plus every file in references/, read only if the agent opens them
~5.5k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from garagon/nanostack at commit 0372aed, republished under its Apache-2.0 licence (© garagon). 1,570 words, ~3,267 tokens.

Download SKILL.mdSave it as .claude/skills/nano/SKILL.md (or your agent's skills folder). This skill also uses 6 other files; get the full folder from GitHub.
name
nano
description
Use when starting non-trivial work (touching 3+ files, new features, refactors, bug investigations). Produces a scoped, actionable implementation plan before any code is written. Triggers on /nano.
concurrency
read
depends_on
think
summary
Implementation planning. Scopes work, names every file, produces ordered steps with verification.
estimated_tokens
400

/nano — Implementation Planning

You turn validated ideas into executable steps. Every file gets named. Every step gets a verification. Every unknown gets surfaced. The plan is a contract: if it says 4 files, the PR should touch 4 files.

Telemetry preamble

Defensive telemetry init. No-op if telemetry is disabled via NANOSTACK_NO_TELEMETRY=1, ~/.nanostack/.telemetry-disabled, or if the helpers are removed.

bash
_P="$HOME/.claude/skills/nanostack/bin/lib/skill-preamble.sh"
[ -f "$_P" ] && . "$_P" nano
unset _P

Session

If no active session exists, initialize one:

bash
~/.claude/skills/nanostack/bin/session.sh status

If the output shows "active":false, create a session:

bash
~/.claude/skills/nanostack/bin/session.sh init development

Then run session.sh phase-start plan.

Plan approval mode. This skill reads plan_approval from the session to decide whether to pause. The field has three values:

  • auto — Present a short plan and continue without waiting. /feature always sets this.
  • manual — Default. Present the plan and wait for explicit approval before building.
  • not_required — Used by --run-mode report_only sprints. Skip the approval gate entirely.

Read the value with v1-compat fallback (older sessions may only have autopilot):

bash
PLAN_APPROVAL=$(jq -r '.plan_approval // (if .autopilot then "auto" else "manual" end)' .nanostack/session.json 2>/dev/null)

If the file is missing entirely, treat as manual.

Local mode: Run source bin/lib/git-context.sh && detect_git_mode. If result is local, adapt language: "implementation plan" → "paso a paso", "files to modify" → "archivos que vamos a crear", "architecture checkpoint" → skip (overkill for non-technical users). Present the plan as a simple numbered list of what you'll build, not a spec document. Same rigor, accessible words. In the "Next Step" section, do NOT list slash commands (/review, /security, /qa, /ship). Instead say: "Cuando termine, reviso la calidad y te aviso si hay algo que ajustar."

Plain-language contract. When profile == "guided" (or local mode), follow reference/plain-language-contract.md. The plan summary uses the four-block skeleton:

<!-- guided-output:start -->
Resultado: Voy a armar la herramienta en 3 archivos chicos.

Como verlo:
1. Cuando termine cada paso, te muestro lo que cambio.

Que revise:
- La forma mas simple de cumplir lo que pediste.
- Que cada cambio se pueda probar por separado.
- Que no rompa nada que ya estaba funcionando.

Pendiente:
- No probe en una computadora distinta a la tuya.
<!-- guided-output:end -->

Process

1. Understand the Request
  • Resolve context — load upstream artifacts and past solutions in one call:

    bash
    ~/.claude/skills/nanostack/bin/resolve.sh plan

    The output is JSON with upstream_artifacts (think artifact path if recent), solutions (ranked matches), config, and sprint_metrics (git stats + cycle time from last sprint). Use what's relevant:

    • If a think artifact exists, read it and extract: key_risk → add to Risks. narrowest_wedge (starting point) → scope constraint. out_of_scope → pre-populate Out of Scope. scope_mode → if "reduce," plan smallest version. premise_validated → if false, flag it.
    • If solutions are returned, read the summaries first, then load only those relevant to the current task. Past mistakes and patterns should inform the sprint.
    • If sprint_metrics is present, use it for scope calibration: last sprint's lines changed and file count help estimate whether the current task is Small, Medium, or Large relative to recent work.

    If think artifact is missing but /think ran, use the visible Think Summary as planning context and disclose the missing artifact. Do not use --from-session or enable the legacy artifact bypass. Ask for missing scope information rather than inventing a brief or marking discovery complete retroactively.

  • Check git history for recent changes in the affected area — someone may have already started this work or made decisions you need to respect.

  • If the affected modules are known, check for diarizations (structured module briefs from past sprints) in .nanostack/know-how/diarizations/. If a diarization exists for a module in scope, read it for recurring issues, known risks, and unresolved tensions. These should inform your risk assessment.

  • If the request is ambiguous, ask clarifying questions using AskUserQuestion before proceeding. Do not guess scope.

  • If the user doesn't specify their tech stack and needs to pick tools (auth, database, hosting, etc.), check for overrides first, then fall back to defaults:

    1. Read .nanostack/stack.json if it exists (project-level preferences)
    2. Read ~/.nanostack/stack.json if it exists (user-level preferences)
    3. Read plan/references/stack-defaults.md for anything not covered above
    4. If the project already has a stack (check package.json, go.mod, requirements.txt), use what's there regardless of any config. Suggest, don't impose. The user always has the final say.
  • Always use the latest stable version of every dependency. Don't rely on versions from training data.

Graduated Rules

<!-- Auto-maintained by bin/graduate.sh. Do not edit manually. -->
<!-- Each rule was promoted from a solution with 3+ applications and validation. -->
<!-- END GRADUATED RULES -->

Apply these constraints during planning. Each one represents a proven pattern or decision from past sprints.

2. Evaluate Scope

Classify the work:

ScopeCriteriaOutput
Small1-3 files, single concern, clear pathImplementation steps only
Medium4-10 files, multiple concerns, some unknownsProduct spec + implementation steps + risks
Large10+ files, cross-cutting, architectural impactProduct spec + technical spec + implementation steps + phased execution

For small scope: produce a brief plan and move on. Do not over-plan trivial work.

3. Specs (Medium/Large scope only)

Before writing implementation steps, produce the specs that define what you're building. Skip this for Small scope.

Medium scope: Product Spec only. Use plan/templates/product-spec.md. Cover: problem, solution, user stories, acceptance criteria, user flow, edge cases, out of scope. Keep it to 1-2 pages. This is what the team reads to understand what "done" looks like.

Large scope: Product Spec + Technical Spec. Also use plan/templates/technical-spec.md. Cover: architecture, data model, API contracts, integrations, technical decisions, security considerations, migration/rollback. This is what the team reads to understand how the system works.

Present the specs to the user before writing implementation steps. Specs are the contract. If the spec is wrong, the plan will be wrong and the code will be wrong. Get alignment here.

4. Write the Implementation Plan

Use the template at plan/templates/plan-template.md as your output structure. Fill in every section that applies to the scope level.

Key requirements:

  • Every file you will touch must be listed — no surprises during implementation
  • Order of operations matters — list steps in the sequence you will execute them
  • Each step must be independently verifiable — how will you know it worked?
  • Identify what you do NOT know — unknowns are more valuable than knowns in a plan
Show full SKILL.md (678 more words)Show less
5. Architecture Checkpoint (Medium/Large scope only)

Before presenting, validate the plan against these engineering concerns:

  • Data flow: Can you trace data from input to storage to output? If not, there's a hidden dependency.
  • Failure modes: What happens when each external call fails? (DB down, API timeout, disk full). If the plan doesn't address this, it's incomplete.
  • Scaling bottleneck: Is there a single point that won't handle 10x load? (synchronous loop, unbatched DB queries, in-memory state). Name it.
  • Test matrix: For each step, what's the minimum test that proves it works? If you can't name it, the step is too vague.
  • Latent vs deterministic steps: Classify each step. A deterministic step has a verification command that returns 0. A latent step relies on the model doing the right thing without a check. Latent is fine for taste work; for anything that gates correctness it needs a deterministic partner (a test, a lint rule, a hook). See think/references/latent-vs-deterministic.md for the full framing.
  • Rollback: Can you undo each step independently? If not, mark which steps are one-way doors.

Skip this for Small scope — it's overkill for a 3-file change.

6. Product Standards (if the plan includes user-facing output)

If the plan produces anything a user will see or interact with, apply the standards in plan/references/product-standards.md. They are not optional — they cover UI/frontend (shadcn + Tailwind, dark mode, mobile, no AI slop), SEO, LLM SEO, and CLI/TUI defaults per language.

If the plan is a pure library with no user-facing output, skip this section.

7. Present and Confirm

Behavior depends on PLAN_APPROVAL (read above):

  • auto — Present the plan briefly and proceed immediately. The caller (/feature or autopilot) chose this; do not pause.
  • not_required — Skip the approval gate entirely. Save the artifact and continue. This applies to report-only sprints.
  • manual (default) — Present the plan to the user and wait for explicit approval before executing. If the user modifies the plan, update it before proceeding.

After the plan is approved (or auto-approved), do these two steps in order:

Step 1: Save the artifact. Run this command now — do not skip it. The save is validated against the per-phase schema (see reference/artifact-schema.md); a plan artifact requires summary.planned_files (array), summary.plan_approval, and context_checkpoint. /review uses planned_files for scope drift.

bash
PLAN_JSON=$(jq -n \
  --argjson planned_files '["file1.ts","file2.ts"]' \
  --arg     plan_approval "$PLAN_APPROVAL" \
  --arg     checkpoint_summary "Plan for <feature>: N files, key decisions X and Y." \
  '{
     phase: "plan",
     summary: {
       planned_files: $planned_files,
       plan_approval: $plan_approval
     },
     context_checkpoint: {
       summary: $checkpoint_summary,
       key_files: $planned_files,
       decisions_made: [],
       open_questions: []
     }
   }')
~/.claude/skills/nanostack/bin/save-artifact.sh plan "$PLAN_JSON"

Step 2: Return the plan.

Next Step

After the plan artifact is saved:

If PLAN_APPROVAL is auto:

Return the approved plan to the caller. Do not build or invoke downstream specialists. /feature owns the full sprint; a standalone /nano call ends with the plan even when approval is automatic.

Otherwise (manual or not_required):

Tell the user:

Plan ready. Next steps in the sprint:

  • Build the approved plan
  • /review to run a two-pass code review with scope drift detection
  • /security to audit for vulnerabilities
  • /qa to test that everything works

These three can run in any order. After all pass, /ship to create the PR.

Wait for the user to invoke each one.

Telemetry finalize

Before returning control:

bash
_F="$HOME/.claude/skills/nanostack/bin/lib/skill-finalize.sh"
[ -f "$_F" ] && . "$_F" nano success
unset _F

Pass abort or error instead of success if the plan did not complete normally.

Gotchas

  • Don't plan in a vacuum. The #1 failure mode is planning without reading the code first.
  • Don't split what should be atomic. If two changes must land together to avoid breaking the system, they are one step, not two.
  • Don't plan tests separately from implementation. Each step should include its verification. "Write tests" as a standalone step at the end means you planned the implementation without thinking about testability.
  • Don't list alternatives you've already rejected. If you evaluated three approaches and chose one, state the choice and one sentence on why. Don't write a comparison essay.
  • Scope creep in plans is real. If you notice yourself adding steps that weren't in the original request, stop and check with the user.
  • Time estimates are noise. Do not include time estimates. Focus on what needs to happen, not how long it might take.
  • Raw CSS is not a plan. If the product has a UI and the plan says "add styles" without specifying a component library, the plan is incomplete. The default is shadcn/ui + Tailwind. Deviate only with reason.

© garagon, Apache-2.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 6 other files (references) in plan of garagon/nanostack.

  • SKILL.md
  • agents/openai.yaml
  • references/product-standards.md
  • references/stack-defaults.md
  • templates/plan-template.md
  • templates/product-spec.md
  • templates/technical-spec.md

Open the folder on GitHubat commit 0372aed

Compare with similar skills

Nano next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Nano compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Nano this skillgaragon/nanostack207—~3.3kAutomated safety check: PassApache-2.0
Improvefossasia/eventyay-interpretation1.6k10 repos~3.7kAutomated safety check: WarnMIT
Inline Plan ExecutionjnMetaCode/superpowers-zh8.3k—~2.5kAutomated safety check: PassMIT
Workflow Orchestrationvxcozy/workflow-orchestration116—~1kAutomated safety check: PassMIT
Docslatitude-dev/latitude-llm4.7k—~2.5kAutomated safety check: PassMIT
File-Based Planning in ArabicOthmanAdi/planning-with-files27k—~3.2kAutomated safety check: NotesMIT

Similar skills

  • Improve

    fossasia/eventyay-interpretation

    Survey any codebase as a senior advisor and produce prioritized, self-contained implementation plans for OTHER models/agents to execute.

    1.6k GitHub starsUsed in 10 repos~3.7k tokens
    Agent WorkflowsAuto-check: warnings
  • Inline Plan Execution

    jnMetaCode/superpowers-zh

    Executes a written implementation plan task by task in the current session, with a progress ledger, test-first gates and one fresh-context review at the end.

    8.3k GitHub stars~2.5k tokensUpdated 2 days ago
    Agent WorkflowsAuto-check passed
  • Workflow Orchestration

    vxcozy/workflow-orchestration

    Disciplined task execution with planning, verification, and self-improvement loops.

    116 GitHub stars~1k tokensUpdated 5 mo ago
    Agent WorkflowsAuto-check passed
  • Docs

    latitude-dev/latitude-llm

    Review the current conversation context and git changes, then persist durable repository knowledge into dev-docs/.md by domain and into AGENTS.md for cross-cutting repo rules.

    4.7k GitHub stars~2.5k tokensUpdated yesterday
    Agent WorkflowsAuto-check passed
  • File-Based Planning in Arabic

    OthmanAdi/planning-with-files

    Arabic edition of a file-based planning skill that keeps task_plan.md, findings.md and progress.md on disk so multi-step agent work survives lost context.

    27k GitHub stars~3.2k tokensUpdated 3 days ago
    Agent WorkflowsAuto-check: notes
  • Turns a one-line objective into a multi-step plan file with PR-sized steps, context briefs, a dependency graph, parallel-step detection and an adversarial review.

    276k GitHub starsUsed in 5 repos~1.3k tokens
    Agent WorkflowsAuto-check passed

More from garagon/nanostack

All 14 skills in this repo
  • Nano Run

    garagon/nanostack

    First-time setup and guided sprint. An agent skill from garagon/nanostack.

    207 GitHub stars~3k tokensUpdated 29 days ago
    Auto-check passed
  • Security

    garagon/nanostack

    Use before shipping to production. An agent skill from garagon/nanostack.

    207 GitHub stars~3.7k tokensUpdated 29 days ago
    Auto-check: notes
  • Ship

    garagon/nanostack

    A skill your agent uses when code is ready to ship — creates PRs, merges, deploys, and verifies.

    207 GitHub stars~4.2k tokensUpdated 29 days ago
    Auto-check passed
  • Compound

    garagon/nanostack

    Document what you learned during this sprint. An agent skill from garagon/nanostack.

    207 GitHub stars~2.2k tokensUpdated 29 days ago
    Auto-check passed
  • Conductor

    garagon/nanostack

    Orchestrate parallel agent sessions through a sprint. An agent skill from garagon/nanostack.

    207 GitHub stars~2.6k tokensUpdated 29 days ago
    Auto-check passed
  • Feature

    garagon/nanostack

    Add a feature to an existing project with a full sprint. An agent skill from garagon/nanostack.

    207 GitHub stars~1.4k tokensUpdated 29 days ago
    Auto-check passed

Works with

Categories

Questions about Nano

What does Nano do?

A skill your agent uses when starting non-trivial work (touching 3+ files, new features, refactors, bug investigations). Nano is an agent skill from garagon/nanostack. Use when starting non-trivial work (touching 3+ files, new features, refactors, bug investigations).

When should I use Nano?

Nano fits situations like: starting non-trivial work (touching 3+ files; bug investigations).

How do I install Nano in Claude Code?

Run `npx skills add garagon/nanostack --skill nano -a claude-code`. Or copy the skill folder (plan in garagon/nanostack) into .claude/skills/nano in your project. Claude Code loads it when a task matches its description.

How do I install Nano in Codex?

Run `npx skills add garagon/nanostack --skill nano -a codex`. Or copy the skill folder (plan in garagon/nanostack) into .agents/skills/nano in your project. Codex loads it when a task matches its description.

Can I use Nano in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add garagon/nanostack --skill nano -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/nano, .gemini/skills/nano, .github/skills/nano and .opencode/skills/nano in your project.

What does Nano need to run?

Going by SKILL.md and its folder, Nano needs the command-line tools its instructions call (jq).

Does Nano access the network?

SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.

Is Nano safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Nano use?

Nano is published under the Apache-2.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Nano use?

About 3.3k tokens (SKILL.md is roughly 13k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 2.2k tokens, read only when the agent opens those files.

What are the alternatives to Nano?

Skills that share tags, products or a category with Nano: Improve (fossasia/eventyay-interpretation, 1.6k stars), Inline Plan Execution (jnMetaCode/superpowers-zh, 8.3k stars), Workflow Orchestration (vxcozy/workflow-orchestration, 116 stars) and Docs (latitude-dev/latitude-llm, 4.7k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Nano?

garagon (a GitHub user) maintains it in garagon/nanostack, which has 207 GitHub stars. The repository holds 14 skills in this directory. The repository was last updated on September 10, 2026.

Source: garagon/nanostack on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.