Now liveThe Skillselion MCP - thousands of ranked skills, loaded into your agent mid-task. No install.Get it →
pproenca avatar

Nuqs Scaffolder

  • 82 installs
  • 191 repo stars
  • Updated July 24, 2026
  • pproenca/dot-skills

nuqs-scaffolder is a Claude Code skill for ai & agent building.

About

nuqs-scaffolder is a Claude Code skill for ai & agent building. It helps solo builders move faster with AI-assisted coding.

  • nuqs-scaffolder
  • AI & Agent Building
  • AI-coding skill

Nuqs Scaffolder by the numbers

  • 82 all-time installs (skills.sh)
  • +7 installs in the week ending Aug 4, 2026 (Skillselion tracking)
  • Ranked #5,148 of 16,546 AI & Agent Building skills by installs in the Skillselion catalog
  • Data as of Aug 4, 2026 (Skillselion catalog sync)
npx skills add https://github.com/pproenca/dot-skills --skill nuqs-scaffolder

Add your badge

Show developers this skill is listed on Skillselion. Paste this into your README.

Listed on Skillselion
Installs82
repo stars191
Last updatedJuly 24, 2026
Repositorypproenca/dot-skills

How do I helps with ai & agent building tasks during AI-assisted development.?

Helps with ai & agent building tasks during AI-assisted development.

Who is it for?

Best when you're working on ai & agent building and need structured help with nuqs scaffolder.

Skip if: Teams with no ai & agent building needs, or anyone wanting a generic chat assistant without this specific workflow.

When should I use this skill?

When you need to helps with ai & agent building tasks during AI-assisted development., or when nuqs-scaffolder is a claude code skill for ai & agent building.

What you get

Structured output aligned to nuqs-scaffolder: nuqs-scaffolder, AI & Agent Building.

Files

SKILL.mdMarkdownGitHub ↗

nuqs Scaffolder

Generate a coherent set of nuqs files from one spec. The skill is template-driven — you read the spec, copy the templates, and substitute placeholders. No build step, no codegen runtime; the templates ARE the artifact.

When to Apply

Use this skill when:

  • A new Next.js page needs URL-backed filters, pagination, search, or sort state
  • You're standardising an existing page's ad-hoc useState filters onto nuqs
  • A code review keeps catching client/server drift in parser definitions — this skill makes drift mechanically impossible because both sides import the same map
  • A user asks to "add Standard Schema validation to these query params for tRPC" — the generated searchParams.server.ts already exports the schema

If the codebase has legacy nuqs patterns instead, run the `nuqs-codemod-runner` skill first.

How to Use

1. Read or create a spec. Start from assets/templates/spec.template.json and fill in name, module, and params. See "Spec Format" below. 2. Render each template by replacing placeholders with values derived from the spec. 3. Write each rendered file to the path computed from config.json (overridable per-call). 4. Show the user the diff before committing — this skill never modifies existing files; if a target path exists, ask before overwriting.

The agent does the rendering — Claude is the templating engine. Each template is annotated with markers (/*= ... =*/) that name the placeholder slot and document the substitution rule.

Spec Format

{
  "name":   "Search",                    // PascalCase — drives the exported symbol names
  "module": "search",                    // kebab-case — drives file paths and the "module" folder

  "params": {
    "q":          { "type": "string",                                    "default": "" },
    "page":       { "type": "integer",                                   "default": 1 },
    "limit":      { "type": "integer",                                   "default": 10 },
    "categories": { "type": "array-of-string-native",                    "default": [] },
    "sort":       { "type": "string-literal", "values": ["asc","desc"],  "default": "asc" },
    "minPrice":   { "type": "float",                                     "default": null },
    "lastSeen":   { "type": "iso-date",                                  "default": null }
  }
}

Supported type values

typeParser usedNotes
stringparseAsString
integerparseAsInteger
floatparseAsFloat
booleanparseAsBoolean
iso-dateparseAsIsoDateDate-only
iso-date-timeparseAsIsoDateTimeDate + time
timestampparseAsTimestampms since epoch
hexparseAsHexNumeric value, hex URL form
indexparseAsIndex0-based in code, 1-based in URL
array-of-stringparseAsArrayOf(parseAsString)?tags=a,b,c
array-of-string-nativeparseAsNativeArrayOf(parseAsString)?tag=a&tag=b — requires nuqs ≥ 2.7
string-literalparseAsStringLiteral(values)Requires values: string[]
number-literalparseAsNumberLiteral(values)Requires values: number[]
jsonparseAsJson(SchemaName.parse)Generates a Zod schema stub; mark default separately

If default is null, the param is nullable; otherwise the template uses .withDefault(...).

Available Templates

TemplateRenders to (default)Loaded when
`searchParams.ts.template`lib/{module}-search-params.tsAlways
`searchParams.server.ts.template`lib/{module}-search-params.server.tsAlways
`filters.tsx.template`components/{module}/{name}-filters.tsxAlways
`filters.test.tsx.template`components/{module}/{name}-filters.test.tsxIf config.generate_tests is true
`spec.json.template`Anywhere — starter for the userFirst-run prompt

Template files end in .template so editors don't apply syntax highlighting to placeholder markers — the original extension is preserved as the suffix-before-.template so you can still tell at a glance what the rendered file will be.

Paths are configurable in config.json — override globs, file naming style (kebab vs PascalCase), and whether tests are emitted.

Placeholder Reference

All templates use the same placeholder syntax. The agent substitutes them in one pass:

PlaceholderSourceExample
__NAME__spec.nameSearch
__name__camelCase form of spec.namesearch
__module__spec.modulesearch
/*= PARSERS =*/Iterate spec.paramskey: parseAsXxx.withDefault(...) linessee template
/*= COMPONENT_FIELDS =*/Iterate spec.params → one input/select per typesee template
/*= TEST_CASES =*/Iterate spec.params → one assertion per defaultsee template
/*= NULLABLE_IMPORTS =*/Add Nullable helper import if any param is nullableconditional
/*= ZOD_SCHEMAS =*/For json type params, emit a Zod schema stubconditional

/*= ... =*/ markers are instructions to the agent, not literal substitutions. Replace the entire marker (including the /*= =*/ delimiters) with the expanded content.

Conventions

Read `references/conventions.md` for:

  • File naming (kebab-case) and why
  • Import ordering (external → nuqs → internal → relative) and why
  • Why the server file exists as a sibling, not inside app/
  • When to fork the templates (you usually shouldn't)

Setup

config.json is pre-populated with sensible Next.js App Router defaults. Override only if your repo uses different conventions:

{
  "lib_dir": "lib",
  "components_dir": "components",
  "generate_tests": true,
  "test_runner": "vitest"
}

On first use, the agent should ask the user for the spec via AskUserQuestion if no spec file is provided.

Related Skills

  • `nuqs` — Best-practice reference these templates encode. Read it to understand WHY the templates are shaped this way.
  • `nuqs-codemod-runner` — Run BEFORE this skill if migrating an existing page from pre-v2.5 nuqs.

Gotchas

See `gotchas.md` for edge cases discovered during use.

Related skills

FAQ

What does nuqs-scaffolder do?

nuqs-scaffolder is a Claude Code skill for ai & agent building.

When should I use nuqs-scaffolder?

When you need to helps with ai & agent building tasks during AI-assisted development., or when nuqs-scaffolder is a claude code skill for ai & agent building.

What are the main capabilities?

nuqs-scaffolder; AI & Agent Building; AI-coding skill.

This week in AI coding

Five minutes, every Monday - the tools, releases and tactics for developers.

unsubscribe anytime.