Marketplace and plugins
source/adaptable.marketplace.json owns the provider-neutral marketplace and primitive references. Eachsource/plugins/<name>/plugin.json selects those references for one installable plugin.
References name a type, canonical path, source, and identity.
For example, Software Engineering 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 lists current selections.
Regenerate it after composition changes:
Profiles
source/profiles/ declares marketplace sources, selected plugins, hook policy, and reconciliation behavior.
The Kotlin repository profile 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 owns planning, application, receipts, and recovery.
Amp does not support workflow profiles.
Admission and projection
The graph validator rejects missing paths, conflicting identities, cycles, and duplicate hook selection. The Pkl models 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:PKL_BIN to Pkl 0.32.0 and use fresh destinations.
The projection runbook includes runtime setup and Pi packaging.
These gates establish composition and package content.
Native discovery and model behavior need separate host evidence.