dotagents
Manage dotagents dependencies and runtime config. Use when asked to "add a skill", "install skills", "remove a skill", "configure…
QA dotagents changes and published releases in Docker, including CLI lifecycles, user/global scope, real plugins, and Claude, Copilot, Codex, OpenCode, or Pi projections. Use when behavior, packaging, scopes, or harness integration needs runtime proof.
$ npx -y skills add getsentry/dotagents --skill dotagents-qa --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/dotagents-qaContext preview
The summary Claude sees to decide when to auto-load this skill.
QA dotagents changes and published releases in Docker, including CLI lifecycles, user/global scope, real plugins, and Claude, Copilot, Codex, OpenCode, or Pi projections. Use when behavior, packaging, scopes, or harness integration needs runtime proof.
name: dotagents-qa description: QA dotagents changes and published releases in Docker, including CLI lifecycles, user/global scope, real plugins, and Claude, Copilot, Codex, OpenCode, or Pi projections. Use when behavior, packaging, scopes, or harness integration needs runtime proof. spec_hash: eda48b96deb3
Prove the requested behavior in Docker without touching host agent homes, caches, plugin registries, or credentials. Treat Docker as the safety boundary and the changed or released behavior as the test plan.
Before commands, state:
For a published release, verify its registry metadata and install that exact version. Never silently test the local checkout instead. If you fix a discovered defect, report the release failure and packed-local-build pass separately.
Read the relevant references before acting:
Planning is part of acting: read the relevant references before proposing a command sequence, not only before executing it.
Use the repo QA image. Rebuild it when the Dockerfile, pnpm version, or required current harness versions changed.
Run package and runtime work as a non-root user. Keep these inside Docker or disposable directories:
export HOME=/sandbox/home export DOTAGENTS_STATE_DIR=/sandbox/state export DOTAGENTS_HOME=/sandbox/user-agents export COPILOT_HOME=/sandbox/copilot-home export CODEX_HOME=/sandbox/codex-home export CLAUDE_CONFIG_DIR=/sandbox/claude-home
Mount the host checkout read-only and copy it into the container without `.git`, `node_modules`, `dist`, coverage, or `*.tsbuildinfo`. Never point user-scope commands or client CLIs at the host's real home.
Do not forward auth for file, validation, marketplace, or resource-discovery checks. Copy credentials only for a separately authorized model-backed proof, scrub them afterward, and never retain them in `/qa-out`.
For a local plugin/runtime change, normally run:
pnpm install --frozen-lockfile pnpm check pnpm qa:example pnpm qa:plugins
Add focused regression tests for every confirmed logic bug. A failing baseline is a finding; do not bypass it silently. If a check is irrelevant or unavailable, record why.
Use the CLI from a fresh fixture and inspect output plus files:
dotagents --project init --agents claude,codex,opencode,pi dotagents --project add <source> [name] dotagents --project list --json dotagents --project doctor dotagents --project install
Inspect `agents.toml`, `agents.lock`, canonical skills/plugins, ownership markers, marketplaces, manifests, harness projections, and warnings. Delete representative managed artifacts, run `dotagents --project sync`, and prove exact repair. Run `dotagents --project remove <name>` and prove canonical and generated cleanup.
Invoke every lifecycle command named by the contract with the intended scope. In particular, run `install` explicitly even though `add` also installs, and assert the config and lockfile paths directly rather than inferring them from `list` output.
For scope-selection changes, create both a project config and isolated global config, then prove unqualified commands mutate only global state from inside that configured repository. Prove `--project` mutates only project state, both `--global` and `--user` select the global paths, `--global --user` executes once, and either alias combined with `--project` fails before creating or changing files. Also cover `--project init` outside Git.
Test hook migration explicitly: create an executable, marker-delimited legacy `post-merge` hook containing unrelated lines around the bare install command; prove `--project doctor` diagnoses it and `--project doctor --fix` changes only the managed command to explicit project scope while preserving the unrelated content and executable mode.
Cover an unambiguous skill source as well as plugins so plugin-first discovery still falls back correctly. Use `--all` only with a controlled small catalog.
For global plugins, test the unqualified default plus both `--global` and legacy `--user`. Isolate `HOME` and `DOTAGENTS_HOME`; inspect global Claude, Codex, OpenCode, and Pi paths; repair with one spelling and remove with another.
When plugin compatibility is in scope, inspect current manifests and test:
In a proposed compatibility plan, name all three repositories but defer the Anthropic plugin selector until manifest inspection at execution time. Derive all selectors, versions, commits, and component counts from that inspection.
Use a fresh project per source. Record source commits. Do not guess repository names, selectors, versions, component counts, or layouts.
Keep per-harness fixtures isolated. In particular,
Shared tooling for coding agents. Declare skills, MCP servers, hooks, subagents, and plugins in agents.toml — dotagents wires them into every agent tool on your team.
Manage dotagents dependencies and runtime config. Use when asked to "add a skill", "install skills", "remove a skill", "configure…