> ## Documentation Index
> Fetch the complete documentation index at: https://slopsentral.michne.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Contribute

> Prepare a checkout and change the canonical owner with focused evidence.

Change the authored owner for the requested behavior.
Keep generated provider trees and installed caches outside authored edits.
Use the current contracts and callers before a new abstraction.

## Prepare the checkout

Use Node.js 20.11 or later and uv 0.12.9 or later.
The Python project supports Python 3.12 and 3.13.

From the repository root, run:

```bash theme={null}
npm ci
uv run --locked tools/setup.py
```

The setup command installs the locked dependencies for Python and Node.
The [project configuration](https://github.com/amichne/slopsentral/blob/main/pyproject.toml) declares tools and strict analysis scope.

## Choose the owner

1. Read `AGENTS.md` and the nearest instructions for the changed path.
2. Examine the current owner, callers, schemas, and executable evidence.
3. Name the expected result and the nearest invalid case.
4. Change the smallest owner that supplies the result.
5. Run the focused command and the necessary repository gates.

Author reusable resources under `source/` and maintenance tools under `tools/`.
Plugin manifests reference canonical resources.
Do not copy a skill into a plugin directory.

## Run the gates

For Python automation, use:

```bash theme={null}
uv run --locked tools/check.py
```

For source and plugin composition, use the [projection procedure](/maintainers/projection).
For prose, use the [controlled writing procedure](/guides/controlled-writing).
For the complete repository gate, use:

```bash theme={null}
npm run verify
```

The complete gate includes Python, source, Node tests, and provider projection evidence.
It needs the pinned Pkl runtime for projection.
It does not prove native host consumption or live model behavior.

## Report the result

Report the changed owner, protected invariant, negative case, and exact command outcomes.
Use `passed`, `failed`, `skipped`, or `not run`.
Keep an unresolved host or reader result explicit.
Publication needs its own authorized delivery scope.

The [repository instructions](https://github.com/amichne/slopsentral/blob/main/AGENTS.md) define the necessary gates.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.