This guide tells coding agents how to work safely and effectively in this repository.
- Use Bun for all package installs and scripts.
- Never use npm.
packages/core: sandbox lifecycle, loaders, preflight, execution engine.packages/cli:igniteCLI commands.packages/http: HTTP server surface for sandbox execution.packages/shared: shared types/utilities used across packages.packages/runtime-bun: Bun runtime image files.examples/*: sample services used for smoke/manual verification.docs/*: user-facing docs and architecture notes.scripts/*: release/build helper scripts.
- Install deps:
bun install - Build all packages:
bun run build - Run lint:
bun run lint - Run typecheck:
bun run typecheck - Run tests:
- Unit-only (fast):
bun run test:unit - Full suite (requires Docker):
bun run test
- Unit-only (fast):
- Keep changes scoped to the task; avoid drive-by refactors.
- When behavior changes, add or update tests in the relevant package.
- If CLI/API behavior changes, update docs in
README.mdand/ordocs/*. - Use existing naming patterns and file structure within each package.
- Prefer small, composable functions over large rewrites.
Ignite runs untrusted code. Treat security defaults as product-critical.
- Do not weaken sandbox restrictions (network/filesystem/capabilities) without explicit task requirements.
- If security logic changes, include tests that prove both allowed and blocked behavior.
- Never introduce secrets, tokens, or host-specific paths into committed code.
packages/sharedchange: runbun run build,bun run test:unit.packages/corechange: runbun run test:unit; runbun run testif execution behavior changed.packages/clichange: runbun run test:unit; manually smoke command paths when possible.packages/httpchange: runbun run test:unit; verify request/response behavior for changed endpoints.docs-only change: lint/typecheck optional, tests not required.
- Follow Conventional Commits (
feat:,fix:,docs:,refactor:,test:,chore:). - Keep PRs focused and include a short verification summary (commands run + results).
- Mention Docker dependency when full test suite could not be run.