Design
Dex Trove — Implementation Checklist
Living checklist; update as work lands. Design: DESIGN.md.
Legend: [x] done · [~] in progress / partial · [ ] todo
Phase 0 — Research & design
- Survey Ananke registry contract (manifest schema, python importer, ≤4-part wheel depth,
ananke://refs) - Survey awesome-copilot layout (skills, agents, instructions, hooks, workflows, plugins) and licensing
- Survey first-party skills (
Skills/), flag AWS icon redistribution - Verify candidate source licences via GitHub API (2026-10-19)
- Design doc (
DESIGN.md) and this checklist
Phase 1 — Package core
-
pyproject.toml(hatchling,dexscript, trove force-include into wheel) -
— folded into dataclasses inmodels.pysources.py/adapters.py/learn.py(no pydantic dependency) -
licenses.py— SPDX normalise, text fingerprints, deny markers, expression evaluation -
frontmatter.py— tolerant YAML frontmatter parsing -
sources.py+sources.yaml— load, git shallow fetch @ ref, local override, commit pin - Adapters:
agent-skills,awesome-copilot,md-agents - Guards: size, symlink, junk, secrets, exec tagging, duplicates, name slug/collision
- Normaliser: verbatim copy +
ananke.yaml+dex.json+LICENSE.upstream+ item SemVer bump - Catalog,
EXCLUDED.json,trove.lock.json,THIRD_PARTY_NOTICES.md - CLI:
sources learn validate list search show install license ananke notices docs
Phase 2 — Learn the initial trove
- Learn first-party
neo-pragnya(icons excluded) - Learn
awesome-copilot - Learn
anthropic(expect docx/pdf/pptx/xlsx denied) - Learn
superpowers - Review
EXCLUDED.jsonfor false positives
Results so far (2026-10-19)
- Learned 970 items: awesome-copilot 937 (435 skills, 222 agents, 192 instructions, 72 plugins, 8 hooks, 8 workflows), superpowers 15, anthropic 14, neo-pragnya 4. 37 excluded: 32 canvas-only plugins (out of scope), anthropic docx/pdf/pptx/xlsx (proprietary text), anthropic doc-coauthoring (no licence at all).
- Found during learn and fixed: nested licences (OFL fonts in anthropic/canvas-design → recorded as
components; strict filenames sopdftk-server-license.mddocs aren’t mistaken for terms); Apache declared only in frontmatter (7 items) → canonical Apache text shipped asLICENSE.upstream; first-party URLs point into Dex-Trove. - Wheel 15 MB / sdist 11.6 MB; every
ananke.yamlat wheel depth 4. All 970 manifests pass Ananke’sArtifactManifest. ananke registry learn python:dex-trove(clean venv, installed wheel): 961 registered, 9 refused by Ananke’s secret scanner — all placeholders in security-teaching content ("PINECONE_API_KEY",sk_live_…). Dex now mirrors those rules →secret_flags+ tagananke-secret-flag;dex ananke syncskips them unless--include-flagged. Full sync: 961 registered, exit 0; re-sync is idempotent (skipped); bundles resolve to members.
Phase 3 — Ananke integration
-
dex ananke syncviaananke registry learn - Verify with local Ananke venv: register a sample of items,
ananke registry searchfinds them - Verify
ananke registry learn python:dex-troveagainst an installed wheel - Ananke follow-up: placeholder-aware secret rule or per-artifact allow-list (9 false positives today)
- Propose Ananke
[dex]extra +[troves]policy setting (separate PR in Ananke-Plexus)
Phase 4 — Docs site
-
dex docs export→ Astro content + JSON - Astro site: home, catalog search, per-item page, sources & inspirations, excluded, design
-
astro buildpasses locally - GitHub Pages workflow
Phase 5 — Quality & release
- pytest suite (licences, adapters, normaliser, CLI, Ananke manifest validity)
- ruff clean
- CI workflow (validate, tests, docs build)
- Release workflow (uv build → PyPI trusted publishing on tag)
- Scheduled learn workflow (opens PR)
- README with quickstart
- Pushed to GitHub
main; Pages enabled (build from Actions);pypi/testpypienvironments created - Live site: https://neo-pragnya.github.io/Dex-Trove/ (all six workflows green on 434c062: ci, security, codeql, scorecard, workflow-lint, docs)
- First CI round surfaced and fixed: gitleaks hits on placeholder examples quoted in docs (elided; pushed commit
allow-listed like Ananke), and
dex ananke syncnot findinganankein an unactivated venv (now looks beside the interpreter) - First release
v0.1.0(TestPyPI → PyPI), tag + GitHub Release: blocked on publish credentials (see below) - Owner action: add PyPI/TestPyPI trusted publishers (project
dex-trove, repoNeo-Pragnya/Dex-Trove, workflowsrelease-pypi.yml/release-testpypi.yml, environmentspypi/testpypi) for future tags
Results — docs & quality (2026-10-19)
astro check: 0 errors / 0 warnings;astro build: 975 pages (970 items + home, catalog, sources, excluded, design).- Verified rendering with headless Chrome at 1280 px and a true 390 px (iframe), in dark mode: no horizontal page scroll.
- Relative upstream image paths broke Astro’s asset pipeline (
skills/napkin): export now pins them to upstream URLs. - 31 tests pass; ruff check + format clean;
dex validate→ 970 items valid (with Ananke 0.3.4, same as PyPI). - README commands verified end to end: claude / copilot / dir installs, plugin → members, hooks gated by
--allow-exec.
Phase 6 — Ananke-parity release engineering & documentation (2026-10-20)
- Mirror Ananke config:
uv.lock+uv sync --all-extras, Makefile (same targets incl.publish-*),.env.example,.pre-commit-config.yaml,.trivyignore,.gitleaks.toml, CHANGELOG (Keep a Changelog), CONTRIBUTING, SECURITY, CODE_OF_CONDUCT - mypy strict (clean); coverage 85 % (CI floor 80 %); 39 tests
- Workflows mirroring Ananke: ci (3.11–3.14 matrix + wheel smoke test with Ananke + docs build), release-pypi and release-testpypi (build once → Trivy → attest → OIDC publish, token fallback, idempotent if already published), security (Trivy package gate + non-blocking trove scan, Semgrep, pip-audit, gitleaks), codeql, scorecard, workflow-lint, dependency-review, docs (Pages), learn (weekly PR); all actions SHA-pinned
- actionlint clean; zizmor clean (fixed cache-poisoning in release builds and workflow-level
security-events) - pip-audit: no known vulnerabilities
- Documentation set (Ananke-style): overview, 6 concepts, 7 guides, 8 references (CLI verified against
--help, Python API examples executed, manifests quoted from the real trove) - Website: docs section (sidebar, on-page TOC, prev/next, edit links,
.mdlinks → routes), rich item pages (at a glance, upstream metadata, hook events, bundled items, part-of, related, files with sizes + pinned links, install matrix), featured first-party skills, theme toggle, copy buttons, 404; 999 pages; 0 broken internal links / anchors - Re-learned all sources at latest upstream (awesome-copilot
613efc8, unchanged → 937 items)
Phase 7 — Privacy, new identity, motion, sibling sites (2026-10-20)
-
.dexignore(in the source’s own folder) + user-level~/.config/dex-trove/ignore([source:]pattern): ignored items are skipped silently (not copied, not in EXCLUDED.json or the lock); tests added - Personal first-party skills hidden via
Skills/.dexignore(names kept out of this repo) and removed from the trove; git history rebuilt so no commit contains them - Identity: “Dex Trove — a trove of dexterities for your agents” (Dexterity Trove) across site, README, package
- Pastel light theme by default (crimson-orange, lemon, chartreuse, turquoise, lilac, sky, pink on warm off-white), dark as an opt-in toggle; text colours verified ≥ 5.5:1 contrast
- Graphify-inspired interactions via motion-kit: morphing kind glyphs (each kind = rest → hover shape), a
cursor-reactive shape field in the hero, scramble headings, blur reveals, count-ups, tilt/spotlight cards,
marching-ants CTAs, sources marquee; reduced-motion and
?motion=staticrespected; lazy glyph init for the 968-card catalog - New first-party skills registered (Claude Code symlinks,
.skillpackages, learned into the trove):astro-docs-site(scaffolder + templates + link checker) andinteractive-web-motion(motion-kit) - Ananke Plexus: Astro site scaffolded with the skill (nav imported from mkdocs.yml), Dex Trove guide, Pages
via docs-site.yml; MkDocs kept only for the offline docs bundled in the wheel; committed on branch
feat/astro-docs-site(not pushed) - VICHARA: motion-kit layer (hero field around the orbit, morphing orbit centre, lens/doc-card glyphs + tilt,
reveals, count-up) keeping its green identity; lint/tests/build green; committed on branch
feat/interactive-visuals(not pushed) - Dex site: 999 pages, 27 701 internal links, 0 broken, 0 missing anchors (
check_site.py)
Follow-ups / backlog
- Move first-party skills into git (this repo’s
first-party/or their own repo) so CI can re-learn them - Light-mode visual pass on the docs site (verified by screenshot)
- Enable
huggingface/skills,microsoft/skills,K-Dense-AI/claude-scientific-skills - Tune
md-agentsforwshobson/agents,VoltAgent/awesome-claude-code-subagents -
rulesadapter for awesome-cursorrules - Decision on CC-BY-SA (trailofbits/skills)
- Discovery mode: scan link lists (awesome-claude-code, awesome-mcp-servers) for new candidate repos + licences