> ## 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.

# Plugins and profiles

> Compose canonical assets into plugins and explicit profiles.

Use plugin manifests to select capabilities without another copy of their implementation.
Use profiles for repeatable Codex selections.

## Marketplace and plugins

[source/adaptable.marketplace.json](https://github.com/amichne/slopsentral/blob/main/source/adaptable.marketplace.json) owns the provider-neutral marketplace and primitive references.
Each `source/plugins/<name>/plugin.json` selects those references for one installable plugin.
References name a type, canonical path, source, and identity.

For example, [Software Engineering](https://github.com/amichne/slopsentral/blob/main/source/plugins/software-engineering/plugin.json) selects `skills/semantic-ratchet` and the `software-engineering-context` hook.
The hook depends on the shared instruction files.
The resolver carries those dependencies into the package.
The plugin folder does not own copies of their payloads.

The [catalog](https://slopsentral.michne.com/reference/catalog.md) lists current selections.
Regenerate it after composition changes:

```sh theme={null}
node tools/catalog.mjs --write
```

## Profiles

`source/profiles/` declares marketplace sources, selected plugins, hook policy, and reconciliation behavior.
The [Kotlin repository profile](https://github.com/amichne/slopsentral/blob/main/source/profiles/kotlin-repo-default.json) selects Software Engineering and Kotlin Engineering.
It does not select Repository Knowledge.

A profile describes an explicit configuration operation.
Its selection does not tell an agent to run every skill.
The [profile lifecycle](https://slopsentral.michne.com/reference/profiles.md) owns planning, application, receipts, and recovery.
Amp does not support workflow profiles.

## Admission and projection

The [graph validator](https://github.com/amichne/slopsentral/blob/main/tools/validate-source-graph.mjs) rejects missing paths, conflicting identities, cycles, and duplicate hook selection.
The [Pkl models](https://github.com/amichne/slopsentral/blob/main/tools/projection/Schema.pkl) translate admitted source into finite provider representations.
Projection captures bytes and modes, then seals digests before publication.
Its publisher rejects an existing destination.

After a composition edit, run:

```sh theme={null}
node tools/validate-source-graph.mjs
node tools/project-marketplaces.mjs --source . --harness codex --out /tmp/slopsentral-codex
node tools/project-marketplaces.mjs --source . --harness github-copilot --out /tmp/slopsentral-github-copilot
node tools/project-marketplaces.mjs --source . --harness amp --out /tmp/slopsentral-amp
git diff --check
```

Set `PKL_BIN` to Pkl 0.32.0 and use fresh destinations.
The [projection runbook](https://slopsentral.michne.com/maintainers/projection.md) includes runtime setup and Pi packaging.
These gates establish composition and package content.
Native discovery and model behavior need separate host evidence.


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