Metadata-Version: 2.5
Name: dex-trove
Version: 0.1.0
Summary: Dex Trove — a trove of dexterities for your agents: licence-clean skills, agents, instructions, hooks and plugins learned from open repos, packaged for Ananke, Claude Code and GitHub Copilot.
Project-URL: Homepage, https://neo-pragnya.github.io/Dex-Trove/
Project-URL: Repository, https://github.com/Neo-Pragnya/Dex-Trove
Project-URL: Issues, https://github.com/Neo-Pragnya/Dex-Trove/issues
Author: Neo Pragnya
License-Expression: MIT
License-File: LICENSE
License-File: THIRD_PARTY_NOTICES.md
Keywords: agent-skills,agents,ananke,claude-code,github-copilot,mcp,prompts,skills
Classifier: Development Status :: 3 - Alpha
Classifier: Environment :: Console
Classifier: Intended Audience :: Developers
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Topic :: Software Development :: Libraries
Requires-Python: >=3.11
Requires-Dist: pyyaml<7,>=6
Requires-Dist: rich>=13
Requires-Dist: typer<1,>=0.16
Provides-Extra: ananke
Requires-Dist: ananke-plexus; extra == 'ananke'
Provides-Extra: dev
Requires-Dist: hatchling>=1.26; extra == 'dev'
Requires-Dist: mypy>=1.15; extra == 'dev'
Requires-Dist: pytest-cov>=6; extra == 'dev'
Requires-Dist: pytest>=8; extra == 'dev'
Requires-Dist: ruff>=0.12; extra == 'dev'
Requires-Dist: types-pyyaml>=6; extra == 'dev'
Description-Content-Type: text/markdown

# Dex Trove

**A trove of dexterities for your agents.** *Dex Trove* is short for *Dexterity Trove*: a licence-clean library of
skills, agents, instructions, hooks and plugins your AI can pick up. They're learned from open repos and packaged for
[Ananke](https://github.com/Neo-Pragnya/Ananke-Plexus), Claude Code and GitHub Copilot.

Dex Trove *learns* artifacts from repositories such as
[github/awesome-copilot](https://github.com/github/awesome-copilot),
[anthropics/skills](https://github.com/anthropics/skills) and [obra/superpowers](https://github.com/obra/superpowers),
plus our own first-party skills. It admits **only** items whose licence allows redistribution, checked one item at a
time from the licence *text*. Each item becomes a standard folder with an Ananke manifest and full provenance, and the
whole library ships to PyPI as `dex-trove`.

📚 **Browse the catalog:** <https://neo-pragnya.github.io/Dex-Trove/>. Every item has its own page with its licence
evidence, upstream source and install commands.

| | |
| --- | --- |
| Items | 970: 468 skills · 222 agents · 192 instructions · 72 plugins · 8 hooks · 8 workflows |
| Sources | awesome-copilot · anthropic · superpowers · neo-pragnya (first-party) |
| Refused | 37 (see [`trove/EXCLUDED.json`](trove/EXCLUDED.json)), e.g. Anthropic's proprietary `docx`/`pdf`/`pptx`/`xlsx` skills |

## Install and use

```bash
pip install dex-trove

dex search architecture diagram
dex show neo-pragnya/marvellous-aws-architecture-docs
dex install superpowers/systematic-debugging --target claude            # ~/.claude/skills/…
dex install awesome-copilot/git-commit --target copilot                 # ./.github/skills/…
dex install awesome-copilot/arize-ax --target copilot                   # a plugin installs its members
dex install anthropic/mcp-builder --target dir --path ./vendor
```

## With Ananke

Every item ships an `ananke.yaml` inside the wheel, so Ananke can discover all of them with no glue code:

```bash
pip install ananke-plexus dex-trove
ananke registry init
ananke registry learn python:dex-trove           # everything in the installed wheel

dex ananke sync --kind skill --source neo-pragnya # or a curated slice
```

Plugins become Ananke **bundles** whose members resolve to the trove's skills and agents. A few security-teaching items
carry credential-shaped *placeholders* that Ananke's secret scanner refuses by default. They are tagged
`ananke-secret-flag`, and `dex ananke sync` skips them unless you pass `--include-flagged`.

## Licence policy in one table

| Verdict | Licences | Result |
| --- | --- | --- |
| allow | MIT, MIT-0, Apache-2.0, BSD-2/3-Clause, ISC, 0BSD, Unlicense, CC0-1.0, CC-BY-4.0, Zlib, BSL-1.0, OFL-1.1 (bundled fonts) | imported; notices preserved |
| review | MPL, EPL, LGPL, CC-BY-SA | excluded unless a source opts in after review |
| deny | GPL, AGPL, CC-BY-NC/ND, SSPL, BUSL, proprietary, unknown | never imported |

Resolution goes from the most specific evidence to the least: item frontmatter, then the item's licence file, then
ancestor folders, then the repo licence. Restrictive terms anywhere in the item win. Upstream files are copied
**byte-for-byte**. The governing licence text travels with each item (as `LICENSE.upstream` when the item didn't ship
one), and [`THIRD_PARTY_NOTICES.md`](THIRD_PARTY_NOTICES.md) aggregates the attributions.

## Repository layout

```text
sources.yaml              what we learn from (adapter, licence expectations, exclusions, inspirations)
trove/<kind>/<ns.name>/   the library: upstream files + ananke.yaml + dex.json (+ LICENSE.upstream)
trove/catalog.json        index of every item          trove/EXCLUDED.json   what was refused and why
trove/trove.lock.json     commit each source was learned at
src/dex_trove/            the `dex` CLI and learn pipeline
website/                  Astro docs site (content generated by `dex docs export`)
docs/design/              DESIGN.md and CHECKLIST.md
```

## Documentation

Full docs live in [`docs/`](docs/index.md) and on the [website](https://neo-pragnya.github.io/Dex-Trove/docs/):

- **Concepts**: [why](docs/concepts/why-dex-trove.md) · [architecture](docs/concepts/architecture.md) ·
  [artifact kinds](docs/concepts/artifact-kinds.md) · [licence policy](docs/concepts/licence-policy.md) ·
  [provenance & versioning](docs/concepts/provenance-and-versioning.md) · [security model](docs/concepts/security-model.md)
- **Guides**: [getting started](docs/guides/getting-started.md) · [installing items](docs/guides/installing-items.md) ·
  [Ananke integration](docs/guides/ananke-integration.md) · [adding a source](docs/guides/adding-a-source.md) ·
  [first-party skills](docs/guides/first-party-skills.md) · [docs site](docs/guides/docs-site.md) · [release](docs/guides/release.md)
- **Reference**: [CLI](docs/reference/cli.md) · [`sources.yaml`](docs/reference/sources-yaml.md) ·
  [item format](docs/reference/item-format.md) · [trove files](docs/reference/trove-files.md) ·
  [licence identification](docs/reference/licence-identification.md) · [exclusion reasons](docs/reference/exclusion-reasons.md) ·
  [configuration](docs/reference/configuration.md) · [Python API](docs/reference/python-api.md)
- **Design**: [design document](docs/design/DESIGN.md) · [checklist](docs/design/CHECKLIST.md)

## Contributing: learn → review → release

```bash
make install                    # uv sync --all-extras (includes ananke-plexus for strict validation)
uv run dex learn                # or: uv run dex learn awesome-copilot --prefer-local
make verify                     # ruff · mypy strict · pytest · dex validate
make docs-build                 # dex docs export + astro check + build
```

1. Map a new source in `sources.yaml`. Check its licence and add it under `candidates:` first.
2. `dex learn <source>` and review the diff of `trove/` and `trove/EXCLUDED.json` in a PR.
3. Merge. The docs site redeploys, and a `vX.Y.Z` tag publishes to TestPyPI and PyPI (build once, Trivy gate,
   provenance attestation, trusted publishing; see the [release guide](docs/guides/release.md)).

A weekly workflow re-learns every enabled source and opens a PR, so upstream licence changes surface for review.
See [CONTRIBUTING.md](CONTRIBUTING.md) and [SECURITY.md](SECURITY.md).

## Credits

Dex Trove exists because of the authors of the projects above. Their work keeps its original licence and copyright
notices. The [Sources & inspirations](https://neo-pragnya.github.io/Dex-Trove/sources/) page lists each one. Dex
Trove's own code is MIT.
