Skills for agents and maintainers

Skills for agents and maintainers to use when maintaining the site.

This section describes skills and procedures for agents and maintainers to use when maintaining the site.

We use the term agent skill to refer to reusable actions written in conformance to agentskills.io that can be invoked by agents or followed manually by maintainers. We call a maintainer skill (or maintainer procedure) a set of steps that an agent or maintainer can follow to accomplish a specific task. Agent skills are defined in .agents/skills/. Maintainer procedures are defined in this section.

In skill and procedure steps, the prose states the intent of each action; a command given in parentheses is a suggested way to fulfill the step, not the only valid one. Skills written before this convention was adopted might not yet follow it.

Agent skills

As mentioned above, skills are defined in .agents/skills/, they are:

Codex discovers these skills in .agents/skills/. Claude Code uses the relative symlinks in .claude/skills/, which point to the same skill directories. Invoke a skill with $skill-name in Codex or /skill-name in Claude Code. Windows checkouts need Git symlink support (core.symlinks=true) for Claude Code.

Adding an agent skill

  1. Create .agents/skills/<name>/SKILL.md with name and description in its YAML front matter, following agentskills.io.

  2. Add a relative symlink for Claude Code: ln -s ../../.agents/skills/<name> .claude/skills/<name>.

  3. For an explicit-only skill, set disable-model-invocation: true in the front matter for Claude Code and add agents/openai.yaml inside the skill directory for Codex:

    policy:
      allow_implicit_invocation: false
    
  4. Add the skill to the list above. Keep shared instructions and resources in .agents/skills/; keep runtime-specific hooks and settings in their runtime’s configuration directory.

Hooks

Alongside the agent skills above, hooks run automatically on certain tool events. Configuration lives in .claude/hooks/hooks.json; hook source lives under scripts/validate/.

  • Blog front matter check: a PreToolUse hook on Write and Edit that blocks changes to content/en/blog/**/*.md when the front matter is missing required fields, uses a bad date format, or introduces an H1 heading. It applies the same conventions as /review-blog-post at write-time, without waiting for review. Source: scripts/validate/front-matter-check/. Pure logic lives in index.mjs and is covered by index.test.mjs in the same folder (npm run test:local-tools to run it).

Maintainer skills

See the section index below.


Refresh-link-cache PR fix

How to resolve failing link checks on otelbot PRs.

Update git submodules

How to update one or more of the repository’s git submodules to a target version.

Update i18n drift status

How to update the drifted_from_default front matter field across localized content and optionally open a PR with the results.

Update old-blog ignore ranges

How to advance the year range of old blog posts excluded from site checks and fixes.