Imported from isnbh0/sandbox-template (
AGENTS.md). Install upstream withnpx skills add isnbh0/sandbox-template. Copyright stays with the author.
Sandbox Repository
This repository contains independent experiments and mini-projects under
projects/. Keep the root small and reusable.
Working with users
- Assume users may describe desired outcomes without technical vocabulary.
- Use plain language. Do not ask users to choose technology unless the choice materially changes what they receive.
- For a new project, use the
start-projectskill and ask only unanswered, consequential questions. Prefer one short question at a time when an answer is required; otherwise make reversible inferences and proceed. - Run routine commands yourself when safe instead of handing terminal work to the user.
- Finish with what changed, how to see or use it, what was checked, and any meaningful limitation.
- Get explicit approval before deleting user data, publishing or deploying, sending external messages, spending money, or changing credentials or external accounts.
Project boundaries
- Put all work in
projects/<name>/. - Treat each project as self-contained: its own dependencies, lockfile, scripts,
README, tests, and optional nested
AGENTS.md. - Do not add a root JavaScript workspace or couple projects unless explicitly requested.
- Do not change unrelated projects.
Defaults
- Start web projects with TypeScript, Vite, and pnpm.
- Prefer the
vanilla-tsVite template and native browser features. Add a UI framework only when the project requires one. - Keep TypeScript strict. Avoid
any; validate data at trust boundaries. - Commit
pnpm-lock.yaml. Never commitnode_modules/or build output. - Put repeatable commands in the project's
package.jsonand document the commands people need in its README.
Create the default web project with:
pnpm create vite projects/<name> --template vanilla-ts
Python
- Use uv for Python dependencies and execution; do not use bare
pip. - Run standalone scripts with explicit ephemeral dependencies, for example:
uv run --with rich projects/example.py. - A full Python project may own a
pyproject.tomlanduv.lock; run its commands withuv run.
Workflow
- Read the target project's README and nearest
AGENTS.mdbefore editing. - Reuse what already exists and make the smallest change that solves the task.
- For non-trivial interaction or state design, consult
patterns/README.md. Pattern cards are optional: use one only when its "Choose when" criteria match. Keep pattern names and implementation rationale internal; in the handoff, describe only user-visible behavior, tradeoffs, and limitations in the user's language unless they ask for technical detail. - Keep secrets out of Git. Commit
.env.example, never.env. - Run the project's relevant format, lint, typecheck, test, and build commands.
- For non-trivial new logic, leave one small runnable check behind.
- Update the project README when setup, commands, behavior, or status changes.
- Update
projects/README.mdonly when a project is created, renamed, or archived.
Run root hygiene checks with:
uvx pre-commit run --all-files
Project-specific tooling belongs inside that project, not at the repository root.