Files
dotfiles/.agents
noconnorandClaude Opus 5 86b8e51646 Remove the docker module: dotfiles no longer installs Docker
Installing Docker Engine is a host/image decision, not a per-user
environment one. In Coder workspaces (unprivileged pods, no systemd) the
module ran get.docker.com on every start for a daemon that can never
run there. Where Docker is wanted, install it on the host or bake it
into the image.

Also drops the zshrc newgrp-docker hook that existed only for this
module's group change, and the docs/skills references to docker/.
docker-rootless-cgroup/ (configures Kasm's existing rootless daemon)
and bin/'s kind gate (detects a daemon) stay.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-19 13:39:59 -04:00
..

.agents — skills for working on this repo

Task-scoped instructions a coding agent loads on demand when changing this repo: how to add a module, bump a pin, wire an MCP server, verify a change.

.agents/skills/ is a real discovery path, not a local convention — opencode searches it natively, alongside .opencode/skills/ and .claude/skills/. That makes it the most vendor-neutral of the three, which is why the skills live here rather than under a tool-specific directory.

Not to be confused with skills/

Two different things, easy to mix up:

skills/ (repo root) .agents/skills/
Audience every covert-gpt user whoever is editing this repo
Shipped? yes — mcp-config/sync.sh deploys it to ~/.config/mcp-sync/skills no, stays in the checkout
Content general-purpose skills for daily work this repo's own conventions

A skill about how bootstrap modules are structured belongs here. A skill about how to write a Terraform module belongs in skills/.

Layout

Per the opencode skills spec: one folder per skill, each containing a SKILL.md.

.agents/skills/
  add-bootstrap-module/SKILL.md
  add-cli-tool/SKILL.md
  add-mcp-server/SKILL.md
  bump-pinned-version/SKILL.md
  verify-module/SKILL.md

Frontmatter requires name and description:

  • name — 1–64 chars, ^[a-z0-9]+(-[a-z0-9]+)*$, and it must match the folder name. A mismatch is the usual reason a skill doesn't show up.
  • description — 1–1024 chars. This is the only part the model sees when deciding whether to load the skill, so write it to say when to use this, not just what it is.

license, compatibility, and metadata are optional; unknown fields are ignored. These skills set none of them — compatibility: opencode in particular would undercut the point of using a neutral directory.

Other agents

opencode needs no configuration. For Claude Code, point its conventional path at the neutral one:

mkdir -p .claude && ln -sfn ../.agents/skills .claude/skills

Most other agents accept a skills directory; give them .agents/skills. Failing that, the files are plain Markdown — @-mention one directly.

Verifying

opencode debug skill      # lists every skill opencode sees, with its path

If one is missing, check the folder name against the frontmatter name.

Always-on conventions

These skills deliberately do not restate the repo's baseline rules (POSIX sh, set -eu, idempotent, no sudo outside the modules that declare it, no secrets in-repo). Those apply to every change, so they belong in a root AGENTS.md that is always in context — not in a skill that loads only sometimes. Each skill assumes them and covers only what is specific to its task.