|
| 1 | +# Repository Guidelines |
| 2 | + |
| 3 | +## Project Structure & Module Organization |
| 4 | +- Main Package (`cforge/`): CLI for Context Forge (entry `main.py`) |
| 5 | +- Commands (`cforge/commands/`): Individual CLI command sections |
| 6 | +- Tests (`tests`): structure mirrors `cforge` |
| 7 | + |
| 8 | +## Coding Style & Naming Conventions |
| 9 | +- Python >= 3.11. Type hints required; strict `mypy` settings. |
| 10 | +- Formatters/linters: Black (line length 200), isort (profile=black), Ruff (F,E,W,B,ASYNC), Pylint as configured in `pyproject.toml` and dotfiles. |
| 11 | +- Naming: `snake_case` for modules/functions, `PascalCase` for classes, `UPPER_CASE` for constants. |
| 12 | +- Group imports per isort sections (stdlib, third-party, first-party `mcpgateway`, local). |
| 13 | + |
| 14 | +## Testing Guidelines |
| 15 | +- Pytest with async; discovery configured in `pyproject.toml`. |
| 16 | +- Layout: follow the structure of the `cforge` package. |
| 17 | +- Naming: files `test_*.py`, classes `Test*`, functions `test_*`. |
| 18 | +- Commands: `make test`, `pytest -k "name"`. Use `make coverage` for reports. |
| 19 | +- Keep tests deterministic, isolated, and fast by default. |
| 20 | + |
| 21 | +## Commit & Pull Request Guidelines |
| 22 | +- Conventional Commits (`feat:`, `fix:`, `docs:`, `refactor:`, `chore:`). Link issues (e.g., `Closes #123`). |
| 23 | +- Sign every commit with DCO: `git commit -s`. |
| 24 | +- Do not mention Claude or Claude Code in PRs/diffs. Do not include effort estimates or "phases". |
| 25 | +- Include tests and docs for behavior changes. |
| 26 | +- Require green lint and tests locally before opening a PR. |
| 27 | + |
| 28 | +## Security & Configuration Tips |
| 29 | +- Copy `.env.example` → `.env`; verify with `make check-env`. Never commit secrets. |
0 commit comments