Guides
Dex Trove: a skill library for your registry
Dex Trove, the trove of dexterities, is a licence-clean library of
agent artifacts for Ananke. It provides 968 items (skills, agents, instructions, hooks, workflows and plugins),
learned from open repositories such as github/awesome-copilot, anthropics/skills and obra/superpowers, plus
first-party skills. Each item is admitted only if its own licence allows redistribution, and ships with a
strict ananke.yaml manifest and full provenance (upstream repo, pinned commit, licence evidence).
Ananke is the harness: registry, resolution, policy, activation and evidence. Dex Trove is content you load into it.
flowchart LR U[Open repos] --> D[dex learn<br/>licence · guards · normalise] D --> W[(dex-trove wheel<br/>ananke.yaml per item)] W -->|ananke registry learn python:dex-trove| R[Ananke registry] W -->|dex ananke sync --kind skill| R R --> A[apm install · activate · lock]
Load everything
pip install "ananke-plexus[dex]" # same as: pip install ananke-plexus dex-trove
ananke registry init
ananke registry learn python:dex-trove
The Python importer reads the installed wheel’s RECORD and registers every ananke.yaml found up to four path
parts deep (dex_trove/<kind>/<namespace>.<name>/ananke.yaml). It never imports the package.
A small number of security-teaching items contain credential-shaped placeholders (for example
api_key="PINECONE_API_KEY"). Ananke’s secret scanner refuses those by default, so this command reports them as
denied and exits 1. Everything else is registered. To get a clean exit, use dex ananke sync (below), which
skips them.
Load a curated slice
dex ananke sync --project . # everything except secret-flagged items
dex ananke sync --project . --kind skill --kind agent # by kind
dex ananke sync --project . --source superpowers # by source namespace
dex ananke sync --project . --name awesome-copilot/git-commit
dex ananke sync --project . --dry-run
dex ananke sync stages the selected items and runs ananke registry learn on them. The ananke CLI is the
contract: Dex never writes the registry directly. Re-running is idempotent; unchanged items are skipped.
What arrives
| Dex kind | Ananke kind | Notes |
|---|---|---|
| skill | skill | |
| agent | agent | instructions.ref points at the agent file |
| instruction, prompt | prompt | tag instruction for instructions |
| hook | tool | code-bearing: no permissions declared, so Ananke warns until reviewed |
| workflow | workflow | |
| plugin | bundle | members are ananke://<kind>/<ns>/<name> references |
Every item arrives as trust discovered in channel candidate. Items without code declare empty permissions
explicitly; items with scripts leave them unset, so Ananke’s missing-permissions warning prompts a review.
ananke registry search debugging
ananke registry resolve awesome-copilot/arize-ax --explain # bundle → member skills
ananke apm install superpowers/systematic-debugging --activate
ananke registry promote superpowers/systematic-debugging --trust approved --reviewed-by you
Tighten the policy
Dex admits only redistributable licences. Your project can narrow that further:
# .ananke/registry/policy.toml
[licenses]
allow = ["MIT", "Apache-2.0"]
allow_unknown = false
[permissions]
forbid = ["shell.execute"]
Upgrade
pip install -U dex-trove
ananke registry learn python:dex-trove # new immutable versions only where content changed
ananke apm upgrade --dry-run
Each Dex item has its own SemVer, bumped only when its upstream content changes, so upgrades are quiet and reviewable.
Switch it on with [troves] (recommended)
Ananke finds every installed trove, meaning any package exposing an ananke.troves entry point (Dex Trove does).
A project chooses which troves it uses, and which slice of each, in .ananke/config.toml:
pip install "ananke-plexus[dex]"
ananke init
ananke registry troves list # [off] dex-trove dex-trove 0.3.1 968 items
ananke registry troves enable dex-trove --kind skill --kind agent
ananke registry troves sync # ✓ dex-trove: … registered · 0 denied
enable writes a validated table, which you can also edit by hand:
[troves.dex-trove]
enabled = true
kinds = ["skill", "agent"] # empty = every kind
namespaces = [] # e.g. ["neo-pragnya"]; empty = every namespace
include_flagged = false # true also learns items whose placeholders trip the secret scanner
sync learns every enabled trove through the normal importers, policy and secret scanner, so a trove gets no
special trust. Re-run it after upgrading the package: unchanged items stay as they are, and changed ones get a new
version. ananke registry troves disable dex-trove switches it off. Versions already registered stay until you
unregister them. Use --json on list and sync in scripts and CI.
See the Dex Trove docs for the licence policy and the full integration guide.
Pin exactly what you chose in Dex
Dex Trove 0.3 records every version of every item, with its digest and upstream commit. Pin items in Dex, then hand those pins to Ananke. Dex only resolves here; it doesn’t install into Ananke or run anything:
dex lock superpowers/systematic-debugging agent:awesome-copilot/planner
dex ananke handoff # prints a [tool.ananke] block: paste it into pyproject.toml
ananke sync # resolves the same versions under your policy and writes ananke.lock
Read Dex alongside your own sources
An enabled trove is also a source for the provider port. ananke registry providers discover searches it together with your approved folders and private Git repositories, and
ananke registry providers resolve refuses a name that exists in two places until you name the source. Older releases
resolve from Dex’s release ledger; if the installed trove no longer holds those bytes, fetching them fails with
NOT_CACHED rather than substituting another version.
To send a lesson to Dex, see Learning candidates.