This file is a short orientation layer for automated contributors. For complete contributor details, see CONTRIBUTING.md.
RobotCode is a multi-package Robot Framework toolkit.
- Root CLI:
src/robotcode/cli/ - Python packages:
packages/*/src/robotcode/ - Tests:
tests/robotcode/ - VS Code extension:
vscode-client/ - IntelliJ plugin:
intellij-client/src/main/kotlin/, with tests inintellij-client/src/test/kotlin/ - Documentation:
docs/ - Planning & design notes (roadmaps, design rationale, ideas):
dev-docs/ - Maintenance scripts:
scripts/
- Python CLI/packages:
- Owning paths:
src/robotcode/cli/,packages/*/src/robotcode/. - Mirror tests under
tests/robotcode/. - Keep namespace package
__init__.pyfiles empty.
- Owning paths:
- VS Code extension:
- Owning path:
vscode-client/extension/.
- Owning path:
- IntelliJ plugin:
- Owning path:
intellij-client/src/main/kotlin/. - Run Gradle commands from
intellij-client/.
- Owning path:
- Docs:
- Owning paths:
docs/, root Markdown files. - The site is an Astro + Starlight project: pages in
docs/src/content/docs/, images indocs/src/assets/. reference/cli.md,reference/config.mdandreference/vscode-settings.mdare generated; regenerate them withhatch run create-cmd-line-docs,hatch run create-config-docsandhatch run create-vscode-settings-docs.
- Owning paths:
- Planning & design notes (not user-facing):
- Owning path:
dev-docs/— versioned roadmaps, design rationale, and idea collections (unlike the git-ignoredplayground/). It is reference/ideas, not a status tracker: progress for OpenSpec work underopenspec/is tracked there, not indev-docs/.
- Owning path:
- Generated or bundled outputs (do not edit by hand):
- Includes
bundled/libs/, syntax files, schemas, and version files. - Regenerate with the documented scripts and note the command used.
- Includes
Use hatch run test:test as the default test command. It runs the full Robot Framework matrix against the default Python and is fast enough for pre-commit. Reach for devel:test only when you suspect a Python-version-specific issue — it spins up 33 environments and is significantly slower.
hatch run test:test- Default: full Robot Framework matrix on the default Python. This includes Robot Framework versions that do not officially support that Python, where Robot Framework itself may fail (e.g. RF 7.2 and older cannot load the XML library on Python 3.15); the CI, which runs only the supported combinations, is authoritative.
hatch run test.<rf-env>:test- Focused Robot Framework version. Available:
rf50,rf60,rf61,rf70,rf71,rf72,rf73,rf74,rf75.
- Focused Robot Framework version. Available:
hatch run devel:test- All supported Python × Robot Framework combinations, as in the CI (33 envs): each Robot Framework version only with the Python versions it officially supports, see CONTRIBUTING.md. Slow; use only for Python-version-specific changes.
hatch run devel.<py-env>-<rf-env>:test- Focused Python × Robot Framework combination, supported combinations only. Python envs:
py3.10,py3.11,py3.12,py3.13,py3.14,py3.15.
- Focused Python × Robot Framework combination, supported combinations only. Python envs:
hatch run lint:all- Ruff style checks plus mypy typing checks.
hatch run lint:fix- Ruff fixes and formatting.
npm run lint- TypeScript/JavaScript linting.
npm run compile/npm run package- VS Code extension build commands.
npm run docs:dev/npm run docs:build/npm run docs:preview- Docs site development server, build (fails on broken internal links) or preview of the build (Node.js 24+).
(cd intellij-client && ./gradlew test)- IntelliJ/Kotlin tests.
(cd intellij-client && ./gradlew buildPlugin)- IntelliJ plugin package.
(cd intellij-client && ./gradlew verifyPlugin)- IntelliJ plugin verification.
These rules are enforced — a violation will block the PR or fail a pre-commit hook, often after you have already pushed.
- Conventional Commits are required (
type(scope): subject). Allowed types and scopes are listed in CONTRIBUTING.md § Commit Messages. - Cryptographically signed commits are mandatory (
git commit -S, GPG/SSH). Unsigned commits in a PR are auto-blocked. This is separate from the DCOSigned-off-bytrailer (-s). - AI / tooling disclosure is required when an AI agent contributed substantially. See AI_POLICY.md.
- Keep changes focused. No unrelated refactors or formatting noise in the same PR.
- Make small, focused changes and avoid unrelated refactors.
- Update CONTRIBUTING.md when contributor rules change; update this file when the orientation, task routing, or common commands change.