Set up a project¶
Paths in this document are relative to the Zolletta-MetaSkill project root.
Initialize a project for use with Zolletta-metaskill review skills. Setup creates the .zolletta-metaskill/ directory and writes settings.json with the project's language, tool availability, and configuration. Every other subcommand reads from this file.
Prerequisites¶
- A project directory with source code to review
Steps¶
Step 1 — Run setup¶
The setup procedure runs automatically when any subcommand is invoked and settings.json is missing. Can also run it explicitly.
Step 2 — What setup detects¶
Setup detects and records the following:
| Detection | What it finds |
|---|---|
| Project language | Python, TypeScript, PHP, Go, Rust, Java, Ruby, C/C++ |
| Docker container | Service name from compose.yml / docker-compose.yml |
| tokensave | Whether the tokensave MCP server is available |
| Acronyms | Project-specific acronyms extracted from AGENTS.md |
| Python tooling | ruff, pytest, ty, vulture, mypy, uv availability |
| Python config | Line length, target version, ruff/mypy/ty/pytest config from pyproject.toml |
| Python code-style rules | Configurable rule toggles for python-code-style |
| Python testing rules | Configurable rule toggles for python-testing-style |
| Documentation directory | Read from documentation.dir in settings.json (default docs/) |
See settings-schema.md for the corresponding field names.
Step 3 — settings.json¶
Setup writes .zolletta-metaskill/settings.json with all detected values. The file is added to the user's global ~/.gitignore so it is not committed. The setup guard checks this file before every subcommand invocation and re-runs the pyproject extraction step if pyproject.toml has been modified since the last setup.
Step 4 — Verify¶
After setup, verify the configuration:
Check that:
languagematches the project's primary languagecontainer_nameis correct (ornullif no container)tokensave_availableistrueif tokensave is installedacronymslists any project-specific acronyms extracted fromAGENTS.mdpython.tools.*objects have the correctavailableflags (Python projects)python.tools.*has the correct configuration extracted frompyproject.toml(Python projects)
Re-running setup¶
Setup is idempotent. Re-running it preserves existing user-customized values in settings.json and only adds keys that are new. The setup guard automatically re-runs the pyproject extraction step (Step 6.5) when pyproject.toml changes, without re-running full setup.
See also¶
- Install Zolletta-MetaSkill — install the skill before setting up a project
- Getting started — end-to-end walkthrough
- Settings schema — all configuration options
- Run a full review — what to do after setup