Skip to content

Commit 9a024a2

Browse files
committed
docs(contributing): add agent workflow guide and update contribution guide
1 parent 38a7995 commit 9a024a2

3 files changed

Lines changed: 149 additions & 158 deletions

File tree

AGENTS.md

Lines changed: 75 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,75 @@
1+
# Repository Guidelines
2+
3+
This file is a short orientation layer for automated contributors. For complete contributor details, see [CONTRIBUTING.md](CONTRIBUTING.md).
4+
5+
## Quick Orientation
6+
7+
RobotCode is a multi-package Robot Framework toolkit.
8+
9+
- Root CLI: `src/robotcode/cli/`
10+
- Python packages: `packages/*/src/robotcode/`
11+
- Tests: `tests/robotcode/`
12+
- VS Code extension: `vscode-client/`
13+
- IntelliJ plugin: `intellij-client/src/main/kotlin/`, with tests in `intellij-client/src/test/kotlin/`
14+
- Documentation: `docs/`
15+
- Maintenance scripts: `scripts/`
16+
17+
## Task Routing
18+
19+
- Python CLI/packages:
20+
- Owning paths: `src/robotcode/cli/`, `packages/*/src/robotcode/`.
21+
- Mirror tests under `tests/robotcode/`.
22+
- Keep namespace package `__init__.py` files empty.
23+
- VS Code extension:
24+
- Owning path: `vscode-client/extension/`.
25+
- IntelliJ plugin:
26+
- Owning path: `intellij-client/src/main/kotlin/`.
27+
- Run Gradle commands from `intellij-client/`.
28+
- Docs:
29+
- Owning paths: `docs/`, root Markdown files.
30+
- Generated or bundled outputs (do not edit by hand):
31+
- Includes `bundled/libs/`, syntax files, schemas, and version files.
32+
- Regenerate with the documented scripts and note the command used.
33+
34+
## Common Commands
35+
36+
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 40 environments and is significantly slower.
37+
38+
- `hatch run test:test`
39+
- Default: full Robot Framework matrix on the default Python.
40+
- `hatch run test.<rf-env>:test`
41+
- Focused Robot Framework version. Available: `rf50`, `rf60`, `rf61`, `rf70`, `rf71`, `rf72`, `rf73`, `rf74`.
42+
- `hatch run devel:test`
43+
- Full Python × Robot Framework matrix (5 × 8 = 40 envs). Slow; use only for Python-version-specific changes.
44+
- `hatch run devel.<py-env>-<rf-env>:test`
45+
- Focused Python × Robot Framework combination. Python envs: `py3.10`, `py3.11`, `py3.12`, `py3.13`, `py3.14`.
46+
- `hatch run lint:all`
47+
- Ruff style checks plus mypy typing checks.
48+
- `hatch run lint:fix`
49+
- Ruff fixes and formatting.
50+
- `npm run lint`
51+
- TypeScript/JavaScript linting.
52+
- `npm run compile` / `npm run package`
53+
- VS Code extension build commands.
54+
- `npm run docs:dev` / `npm run docs:build`
55+
- Docs site development server or build.
56+
- `(cd intellij-client && ./gradlew test)`
57+
- IntelliJ/Kotlin tests.
58+
- `(cd intellij-client && ./gradlew buildPlugin)`
59+
- IntelliJ plugin package.
60+
- `(cd intellij-client && ./gradlew verifyPlugin)`
61+
- IntelliJ plugin verification.
62+
63+
## Commits and Pull Requests
64+
65+
These rules are enforced — a violation will block the PR or fail a pre-commit hook, often after you have already pushed.
66+
67+
- **Conventional Commits** are required (`type(scope): subject`). Allowed types and scopes are listed in [CONTRIBUTING.md § Commit Messages](CONTRIBUTING.md#commit-messages).
68+
- **Cryptographically signed commits** are mandatory (`git commit -S`, GPG/SSH). Unsigned commits in a PR are auto-blocked. This is separate from the DCO `Signed-off-by` trailer (`-s`).
69+
- **AI / tooling disclosure** is required when an AI agent contributed substantially. See [AI_POLICY.md](AI_POLICY.md).
70+
- Keep changes focused. No unrelated refactors or formatting noise in the same PR.
71+
72+
## Agent Notes
73+
74+
- Make small, focused changes and avoid unrelated refactors.
75+
- Update [CONTRIBUTING.md](CONTRIBUTING.md) when contributor rules change; update this file when the orientation, task routing, or common commands change.

0 commit comments

Comments
 (0)