Skip to content

Add agent skills for recurring repo workflows - #1486

Draft
cristianrgreco wants to merge 2 commits into
mainfrom
claude/repo-skills-audit-83c819
Draft

cristianrgreco wants to merge 2 commits into
mainfrom
claude/repo-skills-audit-83c819

Conversation

@cristianrgreco

Copy link
Copy Markdown
Collaborator

Summary

Moves the step-by-step workflows out of AGENTS.md into seven repository skills. They live in .agents/skills/, where Codex reads them, and .claude/skills/ symlinks each one so Claude Code reads them too:

Skill Covers
open-pr Verify, commit, push and open a PR, with title, label and PR body conventions
review-pr Review a PR against recurring review feedback and draft inline comments for approval
add-module Conventions for a new module: container class, tests, image pin, docs
triage-issue Locate the failing phase, check known causes, verify claims, reproduce, write the failing test, draft a reply
diagnose-ci Read the job-matrix pattern, separate flakes from regressions, fix flaky tests
update-dependencies Known Dependabot failure shapes, moved or deleted images, npm audit passes
publish-release Draft review, breaking-change check, dry run, publish, verify, recovery. User-invoked only (disable-model-invocation)

The skill content comes from:

  • review feedback on about 60 past PRs
  • about 25 issues
  • the Dependabot, npm audit and release history

AGENTS.md now holds only the rules that apply to every task:

  • PR process, labels and review style moved to open-pr and review-pr. The publish dry-run guidance moved to open-pr and publish-release.
  • Removed "Instruction precedence" and the branch-prefix rule.
  • Added "Verification" and "Git and GitHub" sections. The second keeps the approval gate, signing and force-push rules.
  • Added the module image-pinning rule, including the catch that Dependabot collapses FROM lines for the same image.
  • Added the rule that runtime dependencies must load from CommonJS.
  • Fixed the Vitest guidance: Vitest 5 has no .sequential modifier, so it now says { concurrent: false }.

The bug report template now asks for:

  • DEBUG=testcontainers* logs, and how to collect them
  • the container runtime and its version
  • the test runner, and whether the project is CJS or ESM
  • the module and image
  • the last working version

Verification

Skill format. Checked against Claude's skill authoring best practices:

  • Every SKILL.md frontmatter parses with js-yaml, and each name matches its folder.
  • Names are verb-noun throughout.
  • Descriptions are third person, 280–450 characters, with no XML tags.
  • Bodies are 40–78 lines.

Symlinks. Claude Code's skills docs say a .claude/skills/<name> entry can be a symlink to a directory elsewhere. The symlinks are committed as git symlinks (mode 120000). Codex reads .agents/skills directly.

Test runs. Fresh subagents ran two skills, read-only, and the skills were then tightened from what they reported:

  • review-pr on PR 1447 independently raised the points from the maintainer's own review:

    • the restart() path is untouched
    • a test that fails without the fix is needed

    It also flagged:

    • lower timeouts are a breaking change
    • an exited container makes the port wait hang until the timeout
    • fork CI that is waiting for approval looks green
  • triage-issue on issue 1442 reproduced the leak with testcontainers-python 4.15.0 alongside a Node suite. It traced the cause to the Python binding force-removing its Ryuk, which corrects the session-id explanation in the report. It also checked a one-line lang=node filter red-green in reaper.test.ts, then reverted it.

CI. changed-modules.mjs selects no packages for these paths, so Checks runs no package jobs.

Not yet verified: that a fresh Claude Code session lists the skills. The session that wrote them started before .claude/skills existed, and /reload-skills didn't pick them up.

Not breaking

This only touches docs, agent configuration and the issue template. No package source, manifest or lockfile changed.

Move step-by-step workflows out of AGENTS.md into skills under
.agents/skills (read by Codex), symlinked into .claude/skills (read by
Claude Code): open-pr, review-pr, add-module, triage-issue, diagnose-ci,
update-dependencies and publish-release.

AGENTS.md keeps the rules that apply to every task, adds verification,
image pinning and CommonJS dependency rules, and fixes the Vitest
sequential guidance for Vitest 5.

The bug report template now asks for DEBUG logs, the container runtime,
the test runner and the last working version.
@cristianrgreco cristianrgreco added maintenance Improvements that do not change functionality patch Backward compatible bug fix labels Oct 8, 2026
@netlify

netlify Bot commented Oct 8, 2026 •

Copy link
Copy Markdown

✅ Deploy Preview for testcontainers-node ready!

Name Link
🔨 Latest commit aa81c72
🔍 Latest deploy log https://app.netlify.com/projects/testcontainers-node/deploys/6ac7f08713700000081d9033
😎 Deploy Preview https://deploy-preview-1486--testcontainers-node.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.

To edit notification comments on pull requests, go to your Netlify project configuration.

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

maintenance Improvements that do not change functionality patch Backward compatible bug fix

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant