Skip to content

docs: add docker-agent v1 skill (SKILL.md + references) - #4112

Draft
aheritier wants to merge 2 commits into
mainfrom
feat/docker-agent-skill
Draft

docs: add docker-agent v1 skill (SKILL.md + references)#4112
aheritier wants to merge 2 commits into
mainfrom
feat/docker-agent-skill

Conversation

@aheritier

@aheritier aheritier commented Sep 2, 2026

Copy link
Copy Markdown
Collaborator

🤖 Automated implementer agentthis comment was posted by the implementer bot from Docker Agentic Platform, not by a human developer

Adds the v1 docker-agent Agent Skill bundle: SKILL.md + references/{cli,config,examples}.md under skill/docker-agent/, so an agent in any other project or harness can install it to author docker-agent configs and operate the docker-agent CLI as an external tool — including delegating to another agent (this repo's own contributor skills are unaffected: .agents/skills/{bump-config-version,bump-go-dependencies,triage-prs} still live where they always did).

Reworked after review feedback: the skill initially lived at .agents/skills/docker-agent/ — this repo's own dev-skill namespace, self-discovered only when docker-agent runs from inside its own source tree. That read as "how to develop docker-agent" instead of "how to use it", and missed the actual goal: an end user in some other project installing this so their agent can delegate to / operate docker-agent (e.g. docker-agent run <config> --exec to run a sub-agent, serve mcp/serve a2a to expose one for delegation). Fixed by:

  • Relocating the source-of-truth to skill/docker-agent/ at the repo root, with the non-installed editorial policy (AGENTS.md) moved one level up to skill/AGENTS.md — so skill/docker-agent/ is exactly the installable payload, nothing to exclude.
  • Rewriting every recipe repo-agnostic: no repo-relative paths (examples/*.yaml, docs/*, pkg/*) remain in installed content — converted to public URLs or self-contained inline YAML an installed reader can copy directly with no repo files on disk.
  • Adding a prominent "Delegating to another agent" section to SKILL.md (the concrete use case that motivated the correction) with a full worked flow in references/examples.md.

Verified, not guessed, throughout both passes: every command, flag, hidden flag, and mutual-exclusion claim checked against the built binary's --help output and cmd/root/*.go; every config claim against agent-schema.json; every public URL against the docs' own canonical: frontmatter; the delegation example's run --json NDJSON shape and serve mcp --http requirement empirically confirmed by running the built binary against real cassette fixtures (two bugs caught this way in review and fixed before this push — see review history below).

Frontmatter safety: description is a single physical line (~344 chars, front-loaded with delegation/trigger keywords) — pkg/skills/frontmatter.go is a line-based parser that silently mangles a YAML-folded multi-line description. SKILL.md is ~160 lines, well under the ~500-line/~5k-token budget.

Also included: a one-line .gitignore fix — the existing docker-agent ignore pattern was unanchored and matched the skill's own directory at any depth (its neighbours, /cagent, /docker-mcp-*, are all anchored); anchored it to /docker-agent.

Went through two full review rounds with the reviewer sub-agent at the original location (fixed a mischaracterized __askpass description and a fallback/title_model grouping error) and two more after the relocation/reframing (fixed a missing --http flag and a broken jq extraction example in the delegation flow, both caught by actually running the built binary). Final verdict: approve.

Testing: task build, task test (green except the pre-existing, unrelated pkg/rag/treesitter CGO/gcc failure, confirmed to reproduce identically on a clean origin/main checkout), task lint (0 issues). Verified install-simulation: copying skill/docker-agent/ into an unrelated scratch directory's .agents/skills/ and running pkg/skills.Load from there discovers the skill with a correctly-parsed name and description.

Authors a SKILL.md + references/ bundle at .agents/skills/docker-agent/
covering both agent-config authoring (against agent-schema.json) and CLI
operation (all subcommands, serve modes, debug tools). SKILL.md stays lean
(~120 lines, well under the ~500-line/~5k-token budget) and points into
references/cli.md, references/config.md, and references/examples.md for
exhaustive detail.

The frontmatter description is a single physical line (pkg/skills/
frontmatter.go's line-based parser silently mangles YAML-folded multi-line
descriptions), ~410 chars, front-loaded with trigger keywords — sized to
survive a shared per-installation skill-listing budget that trims
least-invoked skills' descriptions first, not just the schema's 1024-char
validity ceiling.

Every command, flag, and mutual-exclusion claim was verified against the
built binary's --help output and cmd/root/*.go; no install command, embed
wiring, or CI drift gate is included in this pass (separately scoped).

Also fixes .gitignore's unanchored 'docker-agent' pattern, which matched
this skill's own directory at any depth (its neighbours are all anchored
with a leading slash).

Assisted-By: docker-agent
@aheritier
aheritier marked this pull request as ready for review September 2, 2026 09:25
@aheritier
aheritier requested a review from a team as a code owner September 2, 2026 09:25
@aheritier aheritier added area/config For configuration parsing, YAML, environment variables kind/docs Documentation-only changes labels Sep 2, 2026
trungutt
trungutt previously approved these changes Sep 2, 2026
Corrects the location and framing of the docker-agent v1 skill after
review feedback: the skill is for END USERS in OTHER projects/harnesses to
install so their agent can use docker-agent as an external tool
(authoring configs, running/delegating to agents, exposing them over
MCP/A2A) — not a docker-agent-development skill.

- Relocate the source-of-truth from .agents/skills/docker-agent/ (this
  repo's own dev-skill namespace, only self-discovered when docker-agent
  runs from inside its own source tree) to skill/docker-agent/, with the
  non-installed editorial policy moved up to skill/AGENTS.md so the whole
  skill/docker-agent/ directory is exactly the installable payload.
- Add a prominent 'Delegating to another agent' section to SKILL.md (the
  concrete use case that motivated this correction: one agent invoking
  docker-agent run --exec, or serve mcp/a2a, to delegate to another) plus
  a full worked delegation flow in references/examples.md.
- Purge every repo-relative assumption from installed content: docs/* and
  agent-schema.json become public URLs; examples/*.yaml references become
  self-contained, copyable inline YAML (an installed reader has no
  examples/ directory); drop the pkg/config/v0..vN and
  pkg/creator/instructions.txt paragraphs, which are docker-agent
  *development* facts irrelevant to an end user.
- Fix a factual error caught along the way while rewriting the eval
  example: eval fixtures are recorded-session JSON saved via the TUI's
  /eval slash command, not the cassette file 'run --record' produces.
- Replace the obsolete in-repo pkg/skills.Load dogfood check with an
  install-simulation test: copy skill/docker-agent/ into an unrelated
  scratch directory's .agents/skills/ and confirm discovery from there.

references/cli.md and references/config.md keep their (still-accurate)
verified command/flag/schema detail; only the repo-relative framing
changed. Re-verified the full command/flag cross-check, every public URL,
and re-ran task build/test/lint (all green) after the rewrite.

Assisted-By: docker-agent
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area/config For configuration parsing, YAML, environment variables kind/docs Documentation-only changes

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants