Skip to content

Add agent skills for recurring repo workflows - #1486

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

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

Conversation

@cristianrgreco

@cristianrgreco cristianrgreco commented Oct 8, 2026 •

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 Check what's missing, search the source, issues, PRs and docs for an existing answer, 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
review-release Read-only review of the draft release before a maintainer publishes it: labels, version bump, titles, hidden breaking changes

The skill content comes from:

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

triage-issue deliberately has no list of known causes. Such lists go stale, as the Bun/Ryuk workaround already had, so the skill sends the agent to the source, past issues and PRs, and docs/ instead.

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.
  • 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. open-pr and update-dependencies repeat the signing and force-push rules where they commit.
  • Added a "Releases" section: agents never publish, never dispatch npm-publish.yml (including its dry run), and never edit releases. A maintainer releases by publishing the draft. open-pr asks the author to flag changes that need a maintainer dry run.
  • 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, each name matches its folder, and each has a .claude/skills symlink that resolves.
  • Names are verb-noun throughout.
  • Descriptions are third person, 280–450 characters, with no XML tags.
  • Files are 30–66 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, using the first version of each. The skills were then tightened from what they reported. triage-issue was reworked again in review, when its known-causes tables were replaced with searching for an existing answer.

  • 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.

Comment thread .agents/skills/open-pr/SKILL.md Outdated
Comment thread .agents/skills/open-pr/SKILL.md Outdated
Comment thread .agents/skills/publish-release/SKILL.md Outdated
Comment thread .agents/skills/publish-release/SKILL.md Outdated
Comment thread .agents/skills/triage-issue/SKILL.md Outdated
Comment thread .agents/skills/triage-issue/SKILL.md Outdated
Comment thread AGENTS.md
@cristianrgreco

Copy link
Copy Markdown
Collaborator Author

@claude Push access is fixed (#1493). Please apply the pending changes from these review threads in one run and push. Where threads overlap, follow the order below.

  1. publish-release → review-release: go ahead with your proposal. Keep the read-only review-release skill (rename the folder and the .claude/skills symlink, drop disable-model-invocation), make open-pr lines 17–21 the single "say so in the PR body" bullet, add the ## Releases section to AGENTS.md, and update the PR description. If you can't edit the description, post the new text in your reply.
  2. publish-release line 60: superseded by 1. Don't apply the publish-release rewrite.
  3. open-pr line 21, forks: the fork dry-run wording is superseded by 1. Leave labels alone: don't add the triage/labels line, the reviewer sets them.
  4. open-pr line 54: remove the --body-file note, keep --body-file <path> in the example command.
  5. triage-issue tables: go ahead with your proposed replacement for lines 11–47, the renumbering and the description change. This supersedes the Bun row edit in the line 42 thread.
  6. Signing rule, AGENTS.md:92: go ahead with your proposed edits to open-pr, update-dependencies and diagnose-ci. Keep AGENTS.md lines 92–93 as they are.

@claude

claude Bot commented Oct 10, 2026 •

Copy link
Copy Markdown

Claude finished @cristianrgreco's task in 4m 4s —— View job


Applied and pushed the review changes in 980ac70. One symlink still needs adding

  • Read the current skills, AGENTS.md and the working tree state
  • 1. Replaced publish-release with the read-only review-release skill, without disable-model-invocation
  • 1. Rename the .claude/skills symlink. I removed publish-release but couldn't add review-release (see below)
  • 1. Made open-pr lines 17–21 the single "say so in the PR body" bullet
  • 1. Added ## Releases to AGENTS.md, and line 8 now says "release review"
  • 2. Didn't apply the publish-release rewrite
  • 3. Left labels alone. No triage/labels line, no fork dry-run wording.
  • 4. Removed the --body-file note, and kept --body-file <path> in the example
  • 5. Replaced triage-issue lines 11–47, renumbered sections 3–6, and updated the description. The Bun row went with the table.
  • 6. open-pr has a new "Commit and push" section, and git push is gone from its final code block. Updated update-dependencies (signing/force-push, open-pr for the audit PR) and diagnose-ci (step 4). AGENTS.md lines 92–93 are unchanged.
  • Commit and push
  • Update the PR description: I couldn't. The new text is below.

Please add the review-release symlink

The action's checkout has no .claude/ directory. This run also isn't allowed to create a symlink or write a symlink entry into the index: mkdir .claude, ln -s, git update-index and git apply --cached all need permissions it doesn't have.

So the commit removes .claude/skills/publish-release, to avoid leaving a link to a folder that no longer exists, but doesn't add .claude/skills/review-release. Until that link is added, Claude Code won't list review-release. Codex reads .agents/skills directly, so it isn't affected. From a local checkout of the branch:

ln -s ../../.agents/skills/review-release .claude/skills/review-release
git add .claude/skills/review-release
git commit -m "Link the review-release skill for Claude Code"

The other six symlinks are unchanged on the branch.

Notes

  • Where ## Releases sits. It comes after the @claude Action section, so it's clearly not one of the "Git and GitHub" rules that section replaces. That way it applies to the Action too.
  • review-release is the draft from the earlier thread, unchanged. I checked its one factual change against .github/release-drafter.yml: there are no exclude-labels, so a PR without a type label is listed uncategorised rather than dropped.
  • Left as is: the "Only Podman jobs red… Known Podman slowness" row in diagnose-ci, which I'd offered to drop. You didn't ask for that.

Checks

npm isn't available in the Action, so I couldn't run format or lint, or parse the new review-release frontmatter with js-yaml. The changes are Markdown only. Counted by hand:

  • The triage-issue description is now 449 characters, just inside the 450 the PR body states.
  • The review-release description is about 340 characters.
  • Skill files are now 30–65 lines long.
New PR description
## 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` | Check what's missing, search the source, issues, PRs and docs for an existing answer, 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 |
| `review-release` | Read-only review of the draft release before a maintainer publishes it: labels, version bump, titles, hidden breaking changes |

The skill content comes from:

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

`triage-issue` deliberately has no list of known causes. Such lists go stale, as the Bun/Ryuk workaround already had, so the skill sends the agent to the source, past issues and PRs, and `docs/` instead.

`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`.
- 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. `open-pr` and `update-dependencies` repeat the signing and force-push rules where they commit.
- Added a "Releases" section: agents never publish, never dispatch `npm-publish.yml` (including its dry run), and never edit releases. A maintainer releases by publishing the draft. `open-pr` asks the author to flag changes that need a maintainer dry run.
- 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:

- Each name matches its folder. The original seven frontmatters parse with js-yaml. `review-release` was added during review and checked by hand.
- Names are verb-noun throughout.
- Descriptions are third person, 280–450 characters, with no XML tags.
- Files are 30–65 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, using the first version of each. 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.
· [Branch `claude/repo-skills-audit-83c819`](https://github.com/testcontainers/testcontainers-node/tree/claude/repo-skills-audit-83c819)

github-actions Bot and others added 2 commits October 10, 2026 14:28
- Replace publish-release with a read-only review-release skill; agents never publish
- Add a Releases section to AGENTS.md
- open-pr: ask for a maintainer dry run instead of dispatching it, add a commit and push step with the signing and force-push rules, drop the --body-file note
- triage-issue: replace the hardcoded failing-phase and known-causes tables with searching the source, issues, PRs and docs
- update-dependencies and diagnose-ci: point at the signing rules and open-pr

Co-authored-by: Cristian Greco <10348798+cristianrgreco@users.noreply.github.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Add the .claude/skills symlink the review run could not create, and align two leftover triage-issue phrases with the removed known-causes table.
Comment thread .agents/skills/open-pr/SKILL.md
Comment thread .agents/skills/add-module/SKILL.md Outdated
Comment thread .agents/skills/add-module/SKILL.md Outdated

## Docs and finish

- Adapt the mosquitto docs page. Examples come only from test blocks via `codeinclude`. Keep the "substitute `IMAGE`" line.

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@claude Not sure about pointing to a specific module. Why was it chosen over for example including an inline template within the skill?

@claude claude Bot Oct 10, 2026 •

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Claude finished @cristianrgreco's task in 2m 6s —— View job


It points at a real module so the boilerplate stays current, but it doesn't need to name one

  • Read add-module and packages/modules/mosquitto
  • Compare the boilerplate across all 43 modules
  • Weigh pointing at a module against an inline template
  • Answer with a proposed change. Nothing is committed, because you asked a question.

Why it points at a real module

Line 9 sums this up as "Copying keeps the boilerplate current". In more detail:

  1. The release rewrites part of the boilerplate. npm-publish.yml:55-59 bumps version in every workspace and sets dependencies.testcontainers to ^<version> in every module. Copy a real module and both values are already correct. In an inline template they would say 12.2.0 until someone updated the skill, or they'd be placeholders the agent has to look up anyway.
  2. CI checks a real module, but nothing checks a template. A module has to build, lint and pass its tests on every CI run, so its files can't drift away from something that works. A template under .agents/ is never built or run, so nothing would flag it when it falls behind.
  3. Length, the weakest of the three. A full template would add about 150 lines: package.json, two tsconfigs, Dockerfile, index.ts, the container class, a test and a docs page. That's still under the 500-line limit in Claude's skill guidance. But it would make a 40-line skill mostly boilerplate that the agent can copy from disk anyway.

Where you're right

  • The boilerplate doesn't depend on which module you copy.
    • tsconfig.json: 42 of 43 are byte-identical. Opensearch differs only in formatting.
    • tsconfig.build.json: 36 of 43 are identical. The rest only add an extra test-only exclude.
    • Docs pages: 42 have the same "substitute IMAGE" line.
  • A single example passes on its quirks. Mosquitto writes a config file in start() and changes the entrypoint to /bin/sh so it can run mosquitto_passwd. An agent copying it could bring that pattern into a module that doesn't need it.
  • The pointer can go stale without anyone noticing. "Recent" won't stay true. If mosquitto changes shape, every new module still starts from it.

Proposed change

Don't name a module, and don't add a template. For the files that are identical everywhere, point at any module. For the parts that differ, point at the closest one.

Line 9:

Copy `package.json`, `tsconfig.json`, `tsconfig.build.json`, `Dockerfile` and `src/index.ts` from any existing module; they're the same in every module. In `package.json`, change the name, description, keywords and `devDependencies`, and leave `version` and the `testcontainers` dependency as copied, because the release workflow sets both. For the container class, tests and docs page, start from the module closest in shape to the new one (same kind of wait, auth or number of ports). The rules below are what reviewers keep flagging on module PRs.

Line 36:

-- Adapt the mosquitto docs page. Examples come only from test blocks via `codeinclude`. Keep the "substitute `IMAGE`" line.
+- Copy the docs page of the module you started from. Examples come only from test blocks via `codeinclude`. Keep the "substitute `IMAGE`" line.

These edits don't touch line 13, which the other open thread on this file is changing.

Other options I considered

  • Template files in the skill folder (.agents/skills/add-module/template/). This keeps SKILL.md short, but the files go stale just like an inline template: nothing builds or tests them, and the version fields still need placeholders.
  • A generator script with a CI test. This is the only kind of template that can't go stale. testcontainers-go has one, modulegen, which generates a module from templates and is tested in CI. I'm going from memory here, because this run can't open external sites, so check it before citing it. It would be real code to maintain, so I'd do it in a separate PR if you want it.

Reply "go ahead" and I'll push the two edits above to this branch.
· Branch claude/repo-skills-audit-83c819

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@claude Go ahead

@claude claude Bot Oct 10, 2026 •

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Claude finished @cristianrgreco's task in 1m 54s —— View job


Made the add-module edits, but the push was rejected because another push landed first

  • Find the thread for this "Go ahead": add-module line 36, which asked why the skill points at mosquitto
  • Re-check the "same in every module" claims
  • Edit line 9 and line 36
  • Push: committed locally as d42a4c2, but the push was rejected

Why the push failed

! [rejected]  HEAD -> claude/repo-skills-audit-83c819 (fetch first)

This isn't the old 403. Something was pushed to the branch at 18:15, after this run checked it out. That was probably another @claude run on one of the other threads. This run can't run git fetch or git pull, so it can't rebase onto that push. I didn't force-push.

To land the change, reply "@claude try the push again" on this thread. A new run checks out the latest branch. Or apply the diff below yourself. It only touches lines 9 and 36, so it shouldn't conflict with the line 13 or lines 38–40 threads.

The change

--- a/.agents/skills/add-module/SKILL.md
+++ b/.agents/skills/add-module/SKILL.md
@@ -6,7 +6,9 @@ argument-hint: "[module name]"
 
 # Add a module
 
-Start by copying a small, recent module (`packages/modules/mosquitto` and `docs/modules/mosquitto.md`) and adapting it. Copying keeps the boilerplate current. The rules below are what reviewers keep flagging on module PRs.
+Copy `package.json`, `tsconfig.json` and `tsconfig.build.json` from any existing module. They have the same shape in every module. In `package.json`, change the name, description, keywords and `devDependencies`. Leave `version` and the `testcontainers` dependency as copied, because the release workflow sets both.
+
+For the container class, tests and docs page, start from the module closest in shape to the new one (same kind of wait, auth or number of ports). The rules below are what reviewers keep flagging on module PRs.
 
 ## Before writing code
 
@@ -33,7 +35,7 @@
 
 ## Docs and finish
 
-- Adapt the mosquitto docs page. Examples come only from test blocks via `codeinclude`. Keep the "substitute `IMAGE`" line.
+- Copy the docs page of the module you started from. Examples come only from test blocks via `codeinclude`. Keep the "substitute `IMAGE`" line.
 - Add the page to the `mkdocs.yml` Modules nav in alphabetical order.

Where this differs from what I proposed

  • I dropped Dockerfile and src/index.ts from the copy list. The proposal said they were "the same in every module", and they aren't. The Dockerfile is the module's own image, which line 14 and AGENTS.md already cover. src/index.ts exports the module's own classes.
  • "Same shape" instead of "the same". package.json really does differ (name, description, keywords, devDependencies), and the sentence after it lists those fields. I re-checked the tsconfig files on this branch: tsconfig.json is byte-identical in 42 of 43 modules, and tsconfig.build.json in 36 of 43.
  • Two paragraphs instead of one. The skill goes from 40 to 42 lines, still inside the 30–66 range in the PR body.
  • I checked the version claim against npm-publish.yml:55-59. The release workflow sets every workspace's version, and each module's dependencies.testcontainers, to ^<version>.

No other skill and nothing in AGENTS.md points at mosquitto as a template. The only other mention is the example title Add Mosquitto module in open-pr. The PR description doesn't mention it either, so it doesn't need updating.

npm isn't available in the Action, so format and lint haven't been run. The change is Markdown only.
· Branch claude/repo-skills-audit-83c819

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@claude Try again

@claude claude Bot Oct 10, 2026 •

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Claude finished @cristianrgreco's task in 1m 3s —— View job


Pushed in 580c9cf: add-module no longer points at mosquitto as the template

I took "Try again" to mean a retry of the push that was rejected on the line 36 thread (d42a4c2). That was the only approved edit on this PR that hadn't reached the branch. If you meant a different thread, tell me which one.

  • Check the branch head and the current add-module file. The head was 1d7567f, and d42a4c2 wasn't on the branch.
  • Apply the line 9 and line 36 edits on top of 1d7567f
  • Re-check the claims the edits make
  • Commit and push

The change

This is the same diff as d42a4c2, applied on top of 1d7567f. It doesn't touch line 13, which 1d7567f changed.

-Start by copying a small, recent module (`packages/modules/mosquitto` and `docs/modules/mosquitto.md`) and adapting it. Copying keeps the boilerplate current. The rules below are what reviewers keep flagging on module PRs.
+Copy `package.json`, `tsconfig.json` and `tsconfig.build.json` from any existing module. They have the same shape in every module. In `package.json`, change the name, description, keywords and `devDependencies`. Leave `version` and the `testcontainers` dependency as copied, because the release workflow sets both.
+
+For the container class, tests and docs page, start from the module closest in shape to the new one (same kind of wait, auth or number of ports). The rules below are what reviewers keep flagging on module PRs.
-- Adapt the mosquitto docs page. Examples come only from test blocks via `codeinclude`. Keep the "substitute `IMAGE`" line.
+- Copy the docs page of the module you started from. Examples come only from test blocks via `codeinclude`. Keep the "substitute `IMAGE`" line.

Claims re-checked on this branch

  • tsconfig.json: identical in 42 of 43 modules. opensearch is the exception.
  • tsconfig.build.json: identical in 36 of 43 modules. The other seven add test-only excludes, which AGENTS.md already requires.
  • The release workflow sets version and the testcontainers dependency: npm-publish.yml:55-59 runs npm version --ws and sets dependencies.testcontainers=^$VERSION in each module.

add-module is now 42 lines, inside the 30–66 range in the PR body. Nothing else in the skills or AGENTS.md uses mosquitto as a template. The only other mention is the example title in open-pr.

Still open

These threads got a proposal but no "go ahead", so I haven't changed them:

  • add-module lines 38–40: add check-compiles and merge the lines into one hand-off to open-pr.
  • diagnose-ci line 32: replace the pattern table, plus the update-dependencies:13 tweak.

Checks

npm isn't available in the Action, so I couldn't run format or lint. The change is Markdown only. As in earlier runs, the .claude/skills symlinks show as deleted in this checkout. I committed only .agents/skills/add-module/SKILL.md, so the symlinks on the branch are unchanged.
· Branch claude/repo-skills-audit-83c819

Comment thread .agents/skills/add-module/SKILL.md
Comment thread .agents/skills/add-module/SKILL.md Outdated
Comment thread .agents/skills/add-module/SKILL.md Outdated

## Docs and finish

- Adapt the mosquitto docs page. Examples come only from test blocks via `codeinclude`. Keep the "substitute `IMAGE`" line.

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@claude Go ahead

Comment thread .agents/skills/add-module/SKILL.md
Comment thread .agents/skills/diagnose-ci/SKILL.md
github-actions Bot and others added 2 commits October 10, 2026 18:15
…d Go

Co-authored-by: Cristian Greco <10348798+cristianrgreco@users.noreply.github.com>
Co-authored-by: Cristian Greco <10348798+cristianrgreco@users.noreply.github.com>

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