Scaffold the Phase 0 foundation per MASTER_SPEC §24:
- Directory layout: nodes/, compiler/{analyzer,validator,resolver,splitter,
builder,common}/, knowledge_base/, schemas/, prompts/, config/,
tests/{analyzer,resolver,validator,integration,regression}/, examples/,
scripts/, docs/.
- pyproject.toml targeting Python 3.11+, jsonschema as the single runtime dep,
ruff + pytest as dev deps, explicit package list, and ruff/pytest config.
- ruff for linting and formatting; pytest with repo root on pythonpath.
- GitHub Actions CI running install, ruff lint, ruff format check, and pytest
on Python 3.11 and 3.12 for pushes and pull requests.
- docs/ skeleton and CONTRIBUTING.md referencing the wiki.
- Layout test asserting the §24 structure and package importability.
Co-authored-by: kunail0804 <kunail0804@gmail.com>
Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
37 lines
1.2 KiB
Markdown
37 lines
1.2 KiB
Markdown
# Contributing
|
|
|
|
Full contributor guidelines live in the project wiki:
|
|
[Development, Testing & Contributing](https://github.com/kunail0804/ComfyUI-Scene-Compiler/wiki/Development-Testing-and-Contributing).
|
|
The authoritative specification is [`MASTER_SPEC.md`](MASTER_SPEC.md) (see §24–§28).
|
|
|
|
## Local setup
|
|
|
|
Requires **Python 3.11+**.
|
|
|
|
```bash
|
|
git clone https://github.com/kunail0804/ComfyUI-Scene-Compiler.git
|
|
cd ComfyUI-Scene-Compiler
|
|
python -m pip install -e ".[dev]"
|
|
```
|
|
|
|
## Checks
|
|
|
|
Run the same checks CI runs before opening a pull request:
|
|
|
|
```bash
|
|
ruff check . # lint
|
|
ruff format --check . # formatting
|
|
pytest # tests
|
|
```
|
|
|
|
## Ground rules
|
|
|
|
- **Determinism first** — identical input + Knowledge Base + config always produces
|
|
identical output. No randomness.
|
|
- **No hardcoded tag mappings** — concept-to-tag knowledge lives in `knowledge_base/`.
|
|
- **Separation of concerns** — `compiler/` never imports ComfyUI; `nodes/` contains no
|
|
compiler logic.
|
|
- **Tests ship with code** — new functionality includes tests; every bug fix adds a
|
|
regression test.
|
|
- Explicit type hints on public functions, docstrings, and structured logging (no `print`).
|