Skip to content

Development

Contributing to nsc. The full contributor guide for AI agents working on this repo lives at CLAUDE.md (root of the repo); this page is the human front door.

Setup

git clone https://github.com/thomaschristory/netbox-super-cli
cd netbox-super-cli
uv sync                       # creates .venv with runtime + dev deps
uv sync --group docs          # add docs deps when working on the site
just hooks                    # install pre-commit

Day-to-day commands

just test          # full pytest suite
just lint          # ruff + ruff format --check + mypy --strict
just fix           # auto-fix ruff issues
just bench         # cold-start benchmark (target <300ms median)
just nsc <args>    # run the local CLI (e.g., just nsc dcim devices list)
just docs          # serve the docs site at http://localhost:8000
just docs-build    # build the site, fail on broken links / missing nav

Conventions

  • Python ≥ 3.12, full type annotations, mypy --strict.
  • Pydantic v2 for all structured data.
  • Conventional commits.
  • TDD: failing test first, then minimal code to pass.
  • Comments are for non-obvious why, never what.
  • nsc/model/ stays framework-free.

Pre-commit hooks

ruff + mypy run on every commit. Never use --no-verify — fix the underlying issue and create a new commit. If ruff format modifies a file during the hook, re-git add and re-commit.

Where the design lives

  • docs/superpowers/specs/ — design specs (gitignored; local-only).
  • docs/superpowers/plans/ — implementation plans, one per sub-phase (gitignored).
  • CHANGELOG.md — what shipped per tag.