Personal AI agent skills managed as an APM marketplace.
| Skill | Description |
|---|---|
| grill-me | Interview the user relentlessly about a plan or design until reaching shared understanding |
| beads | Beads issue tracking workflow — create/update/close issues around every task |
| rust | Rust development workflow with rust-analyzer LSP integration |
| madr-writer | Author Architecture Decision Records in MADR format |
| refine-design | Pressure-test and refine a design decision — alternatives, trade-offs, consistency |
| skill-creator | Create new skills, improve existing skills, and measure skill performance |
apm marketplace add akmaru/dotagents
apm install grill-me@dotagentsapm install -g grill-me@dotagentsapm install grill-me@dotagentsuser/ holds personal user-scope config shared across agents (Claude Code / OpenCode). It is not an
APM package and is not listed in the marketplace — it is distributed by native symlink instead of apm compile
(see docs/adr/0004).
user/
├── AGENTS.md # canonical cross-agent global prompt
├── CLAUDE.md # @import AGENTS.md + Claude-specific additions (work import)
├── settings.json # Claude Code settings
├── rules/ # Claude-only, path-scoped rules (recursive, paths: frontmatter)
└── install.sh # symlinks the above into ~/.claude and ~/.config/opencode
AGENTS.mdis the single source of truth.CLAUDE.mdimports it so Claude and OpenCode read the same content without duplication (docs/adr/0005).paths:-scoped rules are Claude-only; OpenCode has no equivalent mechanism (docs/adr/0006).
Install:
user/install.sh- Create the package under
packages/<name>/with the skill at.apm/skills/<name>/SKILL.md, following the agentskills.io spec:
---
name: <name>
description: <what it does and when to use it, max 1024 chars>
---
## Instructions
...- Add a package manifest
packages/<name>/apm.yml:
name: <name>
version: 0.1.0
description: <short description>
author: akmaru
license: MIT
includes: auto
dependencies:
apm: []
mcp: []- Register the package in the root
apm.ymlmarketplace.packagesblock:
marketplace:
packages:
- name: <name>
source: ./packages/<name>- Regenerate the marketplace index, then add the skill to the tables in this README and
CLAUDE.md:
apm packDev tools (pytest / pyyaml / pre-commit) are managed by uv and stay project-local — no global installs required.
uv sync # provision dev tools into .venv
uv run pre-commit install # enable the pre-commit hooks
uv run pytest tests/ -vThe pre-commit hook runs apm pack --check-clean to verify the checked-in
.claude-plugin/marketplace.json matches apm.yml (see docs/adr/0003),
so it requires apm on PATH.
tests/test_e2e_marketplace.py drives the real consumer UX end-to-end
(apm marketplace add → apm install <pkg>@dotagents → skill deployed) in an isolated HOME.
The apm CLI comes from the apm-cli dev dependency, so uv run pytest exercises it both
locally and in CI (it is skipped only if apm is not on PATH). Tests run automatically on push
and pull requests via GitHub Actions.