dist/extension.js` from entry point `src/extension.ts` (webpack bundles with ts-loader, target: node, CommonJS2).
**Note:** Tests are not yet implemented (`npm run test` exists but has no test files).
## Development
Press
Galaxy tools from `skills/catalog.json` (which excludes proprietary/local-only
folders, so never count `SKILL.md` directories); tests from
`grep -rhoE '^[[:space:]]*def test_' --include='*.py' . | wc -l`; stars, forks and
contributors from
under `bridge/`, `cli/`, `web/src/`,
`web/public/`, `scripts/`, `systemd/`, or the manifest / package files, minus the tests and hooks
carved out below), you MUST, **in the same
commit**, add **one bullet
which supports global fetch
When using try/catch, never suppress errors. Always console.error any errors.
# Tests
Use vitest
Place test files next to the file they test using a .test.ts extension
over `interface`
- Use discriminated unions when appropriate
- Prefer readonly where possible
- Avoid unnecessary generics
---
## Testing Rules
- Tests must be deterministic
- Keep tests readable and explicit
- Avoid duplicated setup logic
must first be added to `allowBuilds` in `pnpm-workspace.yaml`.
Before committing to GitHub, `pnpm run test:cli` must pass. New scripts under `packages/app/server/**` must come with unit tests in `packages/app/test/`. Update
erify, every iteration.
- Models: Opus for planning/architecture only; Sonnet for development and functional testing; Haiku for unit tests, monitoring, and parallelizable work.
- Providers: Claude Code full (Tier 1); Cline reduced
commit)
- **Run all checks**: `make all` or `pre-commit run --all-files`
- **Run tests**: `make test`
- **Build docs**: `make docs` or `make docs-serve` (local development)
### Single Test Commands
model)
- **Default Branch**: `main`
## Common Commands
```bash
# Build
docker build -t octo-server .
# Run tests (single module)
go test ./modules/group/...
go test ./modules/message/ -run TestSendMsg
# Run all tests
go test
/Applications/Android Studio.app/Contents/jbr/Contents/Home`; any JDK 17–25 works): `./gradlew assembleDebug`, `./gradlew testDebugUnitTest :core:model:test :core:network:test` (the two plain-JVM modules use `test`), `./gradlew : :recordRoborazziDebug` for screenshots (` /build/outputs/roborazzi
agents/visual-critic.md` are optional
read-only specialists. They are not credential or approval boundaries.
- `tests/` contains deterministic offline coverage. Public CI never calls a
paid provider.
## Provider state, verified
install` (runs `uv sync --extra all --extra dev` + pre-commit install) |
| Run all lib tests | `make test` |
| Run a single test | `uv run pytest libs/tests/core/test_toolkit.py::TestClass::test_method` |
| Lint + type
Development Tools
```bash
# Type checking
pyright
# Code formatting and linting
ruff check
ruff format
```
### Testing and Development
- Access the web interface at <http://localhost:8080> after running `docker compose
directory tree in this file and the table in README.md
**Categories**: `development`, `design`, `productivity`, `testing`, `security`, `database`, `monitoring`, `deployment`
## Creating a Skill
See [`SKILL_SHAPE.md`](SKILL_SHAPE.md) for the canonical authoring guide
A file Claude Code reads at the start of every session. It holds the commands, conventions and warnings the agent needs for this project.
Where does it go?
At the repository root. Claude Code also reads CLAUDE.md files in subdirectories when it works there.
What should it contain?
Build and test commands, the project's layout, conventions that aren't obvious from the code, and mistakes to avoid. Short files tend to work better than long ones.
CLAUDE.md or AGENTS.md?
Claude Code reads CLAUDE.md; most other agents read AGENTS.md. Many projects keep one and point the other at it.