원클릭으로
nix-scaffolding
Use when creating a new project from scratch that needs Nix flake setup with devshell
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
메뉴
Use when creating a new project from scratch that needs Nix flake setup with devshell
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
SOC 직업 분류 기준
Canonical browser-testing workflow for the psynk.ai app — test, debug, investigate, and improve the product through a Chrome DevTools Protocol browser session plus local codebase access. Use when the user wants to manually test or verify a UI flow, starts or references a CDP-enabled browser/remote debugging port, and wants the assistant to propose test scenarios, watch their browser activity, drive browser steps on request, collect console/network/DOM/storage/screenshot evidence, investigate frontend/backend issues in the code, record findings, fix small issues immediately, or delegate larger issues while continuing exploratory testing. Default mode attaches to a browser the user is already driving; it can also bring up a fresh self-driven headless stack (see references/local-stack.md).
Build me merge-confidence on a PR I have checked out locally by collaboratively authoring a "visual book" — a single self-contained HTML file that tells the story of the problem the PR solves and then explains the change level by level, diagram-first, anticipating the questions I'd ask. Not a bug hunt and not a back-and-forth transcript: the book is the artifact, and finishing it together is how I come to understand the PR. Use when I want to walk through / understand / get confidence on a PR or branch before merging, rather than have it reviewed.
Use the `fj` Forgejo CLI to interact with Forgejo/Gitea forges from the terminal: repos, issues, pull requests, releases, actions, wikis, users, and orgs. Use when the user wants to open/list/merge PRs, file or search issues, clone/create repos, cut releases, or otherwise operate on a Forgejo instance without the web UI.
Grilling session that challenges your plan against the existing domain model, sharpens terminology, and updates documentation (TERMINOLOGY.md, ADRs) inline as decisions crystallise. Use when user wants to stress-test a plan against their project's language and documented decisions.
Use when the user wants to submit a markdown file (.md) as a task to the shepherd task system, or mentions sending work to shepherd
| name | nix-scaffolding |
| description | Use when creating a new project from scratch that needs Nix flake setup with devshell |
Create new projects with flake.nix and devshell for Python, Rust, or webapp stacks.
Gather basic info:
Gather project-specific details:
pandas, pytest, fastapi)buildInputs (e.g., libva, glib.dev)Ask for nixpkgs pin:
flake.lockCreate and customize project:
templates/{{PROJECT_NAME}} and {{PROJECT_DESCRIPTION}} placeholdersgit initnix flake lock --override-input nixpkgs github:NixOS/nixpkgs/<commit>| Template | Use when |
|---|---|
basic-python | Pure Python projects without ML/CUDA needs |
basic-python-ml | ML/robotics projects needing CUDA and ml-pkgs overlay |
basic-rust | Rust projects (uses crane with full checks) |
basic-webapp | Frontend apps with Node.js + pnpm |
pyo3-python | Python library with Rust backend via PyO3/maturin |
esp32 | ESP32 embedded projects with ESP-IDF (C/C++) |
All templates create:
<project>/
flake.nix # flake-parts based
.envrc # direnv integration (watch_dir nix, use flake)
nix/
development.nix # devShell definition
The pyo3-python template additionally creates:
<project>/
Cargo.toml # Rust crate config with pyo3 dependency
pyproject.toml # Python project config with maturin build
nix/
package.nix # buildPythonPackage definition
The esp32 template uses flat structure (no nix/ subdirectory):
<project>/
flake.nix # Re-exports devShells from nixpkgs-esp-dev
.envrc # Also sources .envrc.local if exists
.gitignore # Ignores build/, sdkconfig, etc.
CMakeLists.txt # ESP-IDF project config
main/
CMakeLists.txt # ESP-IDF component config
main.c # Entry point with app_main()
| Placeholder | Replace with |
|---|---|
{{PROJECT_NAME}} | Project name (lowercase, hyphens ok) |
{{PROJECT_NAME_UNDERSCORE}} | Project name with underscores (for Python module names) |
{{PROJECT_DESCRIPTION}} | Short description for flake |
Remind user to:
direnv allow (or nix develop to verify manually)nix/development.nixcargo init to create Cargo.tomlpnpm create vite . or similar to initialize the appsrc/lib.rs with pyo3 module, create python/<module>/__init__.py, update hash in nix/package.nix after first buildidf.py set-target esp32s3 (or target chip), then idf.py build to compile