Agent skill

Coding Agents Hooks Authoring

by griddynamics in griddynamics/rosetta

To author, register, and test Rosetta hooks, add a SemanticKind, or debug a hook that won't fire.

Apache-2.0Auto-check passed

Install Coding Agents Hooks Authoring

skills CLI
$ npx skills add griddynamics/rosetta --skill coding-agents-hooks-authoring -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install griddynamics/rosetta coding-agents-hooks-authoring --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/griddynamics/rosetta.git skills-src && mkdir -p .claude/skills && cp -r skills-src/plugins/core-claude/skills/coding-agents-hooks-authoring .claude/skills/coding-agents-hooks-authoring && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
coding-agents-hooks-authoring
GitHub stars
354
Token cost
~1.4k tokens
SKILL.md length
548 words
Files
2
Skills in repo
12
Repo updated
First seen
Licence
Apache-2.0

At a glance

To author, register, and test Rosetta hooks, add a SemanticKind, or debug a hook that won't fire.

  • Works in 4 steps: src/hooks/src/runtime/ide-registry.ts —… → src/hooks/src/runtime/ide-rows/.ts — if… → Hook entry — add the new kind to… → …
  • Calls npx and python

What it does

Coding Agents Hooks Authoring is an agent skill from griddynamics/rosetta. To author, register, and test Rosetta hooks, add a SemanticKind, or debug a hook that won't fire.

Its SKILL.md is about 1.4k tokens, which your agent loads only when the skill is triggered. The skill folder holds 1 other file (for example `README.md`).

The repository describes itself as: An instruction layer for AI coding agent. The licence is Apache-2.0.

Example prompts

  • “/coding-agents-hooks-authoring”

Requirements

  • Python 3
  • Node.js

Workflow steps

4 steps, taken from the first numbered list in SKILL.md.

  1. src/hooks/src/runtime/ide-registry.ts — add a row to TOOL_KINDS with all 6 IDE columns (null where the event doesn't exist). SemanticKind…
  2. src/hooks/src/runtime/ide-rows/.ts — if the kind requires special logic (e.g. prefix-match for mcp__.*), add a conditional branch at the…
  3. Hook entry — add the new kind to def.on.toolKinds.
  4. Matcher in hooks.json.tmpl — widen to include new tool names/patterns.

What it can do on your machine

Read from SKILL.md and the folder at commit 5441232. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Shell commands in SKILL.md call:

    • npx
    • python

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md. Its commands use npx, which can reach the network depending on how they are called.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Coding Agents Hooks Authoring loads about 1.4k tokens when it runs. Until then it costs about 32 tokens; SKILL.md has 548 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~32
When it runs · the whole SKILL.md, loaded when a task matches
~1.4k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from griddynamics/rosetta at commit 5441232, republished under its Apache-2.0 licence (© griddynamics). 548 words, ~1,362 tokens.

Download SKILL.mdSave it as .claude/skills/coding-agents-hooks-authoring/SKILL.md (or your agent's skills folder). This skill also uses 1 other file; get the full folder from GitHub.
name
coding-agents-hooks-authoring
description
To author, register, and test Rosetta hooks, add a SemanticKind, or debug a hook that won't fire.
tags
hooks, authoring, registration
baseSchema
docs/schemas/skill.md

<hooks_authoring>

Hook entry rule

Only files that export defineHook(…) AND call runAsCli(hook, module) belong directly in src/hooks/src/hooks/. Every .ts at the top level of that directory becomes a standalone CJS bundle distributed to all 6 IDE targets (claude-code, codex, copilot, cursor, windsurf, antigravity). Helper/data files without runAsCli belong in a named subdirectory: src/hooks/src/hooks/<feature>/.

Helper placement
  • Feature-local helpers → src/hooks/src/hooks/<feature>/ (e.g. src/hooks/src/hooks/dangerous-actions/patterns.ts).
  • Cross-hook runtime helpers → src/hooks/src/runtime/.
Build is non-recursive

src/hooks/scripts/build-bundles.mjs:29 uses readdirSync(hooksDir).filter(f => f.endsWith('.ts')). There is no { recursive: true }. Subdirectories are invisible to the bundler. Adding a top-level .ts without runAsCli produces a dead bundle for every plugin. A plugin may opt a hook OUT via excludeHooks in the PLUGINS array (build-bundles.mjs) — e.g. core-antigravity excludes the advise-only hooks, which have no delivery channel there.

Adding a SemanticKind

When a hook needs a new tool category (e.g. mcp-call):

  1. src/hooks/src/runtime/ide-registry.ts — add a row to TOOL_KINDS with all 6 IDE columns (null where the event doesn't exist). SemanticKind = keyof typeof TOOL_KINDS so TypeScript enforces coverage.
  2. src/hooks/src/runtime/ide-rows/<ide>.ts — if the kind requires special logic (e.g. prefix-match for mcp__.*), add a conditional branch at the top of lookupToolKind in the IDE-row file before the table loop. Table-driven lookup alone cannot handle open-ended tool name patterns.
  3. Hook entry — add the new kind to def.on.toolKinds.
  4. Matcher in hooks.json.tmpl — widen to include new tool names/patterns.

Order matters: run-hook.ts:316 gates on toolKinds before calling def.run(ctx). Matcher passes the event in; toolKinds must include the mapped kind or the call is dropped silently.

Registration

Every new hook must appear in each registering plugin's hooks.json. The canonical sources are the hooks.json.tmpl templates; direct edits to generated hooks.json files are overwritten on the next npx rosettify-plugins run.

Template paths by plugin, all under src/rosettify-plugins/plugins/ (templates are generator input only — .tmpl files are not emitted into the generated plugins/ tree):

  • core-claude/hooks/hooks.json.tmpl
  • core-codex/.codex-plugin/hooks.json.tmpl
  • core-copilot/hooks/hooks.json.tmpl (+ core-copilot/.github/plugin/hooks.json.tmpl)
  • core-cursor/hooks.json.tmpl (+ core-cursor/hooks/hooks.json.tmpl)
  • core-antigravity/hooks.json.tmpl
  • core-windsurf is a build-bundles.mjs PLUGINS bundle target but has no plugin directory / hooks.json registration yet.
Show full SKILL.md (229 more words)Show less
Platform-scoped events

PreToolUse is absent on Copilot ('copilot': null in ide-registry.ts). If a hook uses a platform-exclusive event, add its name to CLAUDE_CODE_ONLY_HOOKS Set in src/hooks/tests/regression/hooks-registered.test.ts. Before adding a second scoped hook, refactor the Set to Map<string, Set<IdeName>>.

Tests

Co-locate tests in src/hooks/tests/<hook-name>.test.ts. The regression test (src/hooks/tests/regression/hooks-registered.test.ts) automatically discovers all .ts entries at src/hooks/src/hooks/ top level and asserts each is referenced in every plugin's hooks.json. A new hook without registration immediately fails the regression guard.

Sync command

After any source change under src/hooks/src/ or instructions/r{2,3}/core/:

bash
venv/bin/python scripts/pre_commit.py

This builds CJS bundles, runs full test suite, and runs npx rosettify-plugins to sync instructions/r{2,3}/core/ → all plugin directories.

Pitfalls
  • Helper files in top-level — produces dead bundles for every plugin + false regression test failures without isLibraryModule workaround. Fix: move to subdirectory.
  • Missing registration — hook fires silently nowhere; regression test catches this at CI time.
  • Secrets in Evidence — buildDenyMessage echoes evidence to transcript by default. Pass redact=true for DANGEROUS_CONTENT matches (AWS keys, PEM certs, SQL with row data).
  • Regex [rf]{2,} false positives — matches rm -rr and rm -ff. Require both flags with lookaheads: /\brm\s+-(?=[a-zA-Z]*[rR])(?=[a-zA-Z]*[fF])[a-zA-Z]+\b/.
  • $-anchor vs trailing slash — path patterns like /\.kube\/config$ fail when tested against filePath with trailing slash. Always test against normalizedPath = filePath.replace(/\/+$/, '').
  • Matcher without toolKinds mapping — adding a name to the JSON matcher but not to lookupToolKind and def.on.toolKinds is inert.
  • Updating instructions/* and plugins/* which serve completely different purpose.
Reference files
src/hooks/scripts/build-bundles.mjs
src/hooks/src/runtime/ide-registry.ts
src/hooks/src/runtime/ide-rows/claude-code.ts
src/hooks/src/runtime/run-hook.ts:316
plugins/core-claude/hooks/hooks.json.tmpl
src/hooks/tests/regression/hooks-registered.test.ts

</hooks_authoring>

© griddynamics, Apache-2.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 1 other file in plugins/core-claude/skills/coding-agents-hooks-authoring of griddynamics/rosetta.

  • SKILL.md
  • README.md

Open the folder on GitHubat commit 5441232

Compare with similar skills

Coding Agents Hooks Authoring next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Coding Agents Hooks Authoring compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Coding Agents Hooks Authoring this skillgriddynamics/rosetta354—~1.4kAutomated safety check: PassApache-2.0
Hermes Agent Skill AuthoringNousResearch/hermes-agent252k—~3.6kAutomated safety check: PassMIT
Configuring Oauth2 Authorization Flowmukul975/Anthropic-Cybersecurity-Skills34k—~1.7kAutomated safety check: PassApache-2.0
Authoring Skillsvercel/next.js143k—~1kAutomated safety check: PassMIT
Abp Authorizationabpframework/abp14k—~1.3kAutomated safety check: PassLGPL-3.0
Implementing GCP Binary Authorizationmukul975/Anthropic-Cybersecurity-Skills34k—~2kAutomated safety check: PassApache-2.0

Similar skills

  • Hermes Agent Skill Authoring

    NousResearch/hermes-agent

    Author in-repo SKILL.md files: frontmatter and structure. An agent skill from NousResearch/hermes-agent.

    252k GitHub stars~3.6k tokensUpdated today
    Agent WorkflowsAuto-check passed
  • Configuring Oauth2 Authorization Flow

    mukul975/Anthropic-Cybersecurity-Skills

    Configures secure OAuth 2.0 authorization flows, including Authorization Code with PKCE, Client Credentials, and Device Authorization Grant, covering flow selection, PKCE implementation, token…

    34k GitHub stars~1.7k tokensUpdated 1 mo ago
    Backend & APIsAuto-check passed
  • Authoring Skills

    vercel/next.js

    Official

    How to create and maintain agent skills in .agents/skills/. An agent skill from vercel/next.js.

    143k GitHub stars~1k tokensUpdated today
    Agent WorkflowsAuto-check passed
  • Abp Authorization

    abpframework/abp

    ABP permission system - PermissionDefinitionProvider, [Authorize] attribute, CheckPolicyAsync, IsGrantedAsync, ICurrentUser, IPermissionManager, multi-tenancy side.

    14k GitHub stars~1.3k tokensUpdated today
    Backend & APIsAuto-check passed
  • Implementing GCP Binary Authorization

    mukul975/Anthropic-Cybersecurity-Skills

    Implements GCP Binary Authorization end to end, including creating KMS-backed attestors, Container Analysis notes, deploy-time policies, and signing image attestations, so that only trusted…

    34k GitHub stars~2k tokensUpdated 1 mo ago
    DevOps & CloudAuto-check passed
  • Collectors Authoring

    netdata/netdata

    Author, modify, or review Netdata collectors across Go, IBM, C, Rust and external plugins.

    81k GitHub stars~1.9k tokensUpdated today
    DevOps & CloudAuto-check passed

More from griddynamics/rosetta

All 12 skills in this repo
  • Collect GitHub Stats

    griddynamics/rosetta

    Collect GitHub repo health/usage stats into merged JSON. An agent skill from griddynamics/rosetta.

    354 GitHub stars~415 tokensUpdated 8 days ago
    Auto-check passed
  • External Lib Flow

    griddynamics/rosetta

    Workflow for onboarding an external private library so AI can use it without source access.

    354 GitHub stars~1.5k tokensUpdated 8 days ago
    Auto-check passed
  • Specflow Use

    griddynamics/rosetta

    To connect Rosetta with Grid Dynamics SpecFlow MCP; only when SpecFlow is mentioned and the MCP is installed.

    354 GitHub stars~780 tokensUpdated 8 days ago
    Auto-check passed
  • Harness

    griddynamics/rosetta

    To build an AI harness: run, observe, validate, automate repeated work faster — CLI/MCP actions, devcontainers, skills, subagents, hooks, pipelines, automations.

    354 GitHub stars~1.5k tokensUpdated 8 days ago
    Auto-check passed
  • Coding Agents Farm

    griddynamics/rosetta

    To orchestrate parallel coding-agent farms (Claude, Codex, Copilot, Gemini, etc.) on isolated git worktrees.

    354 GitHub stars~2.4k tokensUpdated 8 days ago
    Auto-check passed
  • Compress Prompt

    griddynamics/rosetta

    Compress a Rosetta KB prompt artifact (skill · workflow · phase · rule · agent · template · generic) by stripping structural tautology and ineffective scaffolding while preserving every…

    354 GitHub stars~2.2k tokensUpdated 8 days ago
    Auto-check passed

Questions about Coding Agents Hooks Authoring

What does Coding Agents Hooks Authoring do?

To author, register, and test Rosetta hooks, add a SemanticKind, or debug a hook that won't fire. Coding Agents Hooks Authoring is an agent skill from griddynamics/rosetta. To author, register, and test Rosetta hooks, add a SemanticKind, or debug a hook that won't fire.

How do I install Coding Agents Hooks Authoring in Claude Code?

Run `npx skills add griddynamics/rosetta --skill coding-agents-hooks-authoring -a claude-code`. Or copy the skill folder (plugins/core-claude/skills/coding-agents-hooks-authoring in griddynamics/rosetta) into .claude/skills/coding-agents-hooks-authoring in your project. Claude Code loads it when a task matches its description.

How do I install Coding Agents Hooks Authoring in Codex?

Run `npx skills add griddynamics/rosetta --skill coding-agents-hooks-authoring -a codex`. Or copy the skill folder (plugins/core-claude/skills/coding-agents-hooks-authoring in griddynamics/rosetta) into .agents/skills/coding-agents-hooks-authoring in your project. Codex loads it when a task matches its description.

Can I use Coding Agents Hooks Authoring in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add griddynamics/rosetta --skill coding-agents-hooks-authoring -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/coding-agents-hooks-authoring, .gemini/skills/coding-agents-hooks-authoring, .github/skills/coding-agents-hooks-authoring and .opencode/skills/coding-agents-hooks-authoring in your project.

What does Coding Agents Hooks Authoring need to run?

Going by SKILL.md and its folder, Coding Agents Hooks Authoring needs the command-line tools its instructions call (npx and python). Our summary lists: Python 3; Node.js.

Does Coding Agents Hooks Authoring access the network?

SKILL.md contains no URLs. Its commands use npx, which can reach the network depending on how they are called. This is read from the text; nothing was executed.

Is Coding Agents Hooks Authoring safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Coding Agents Hooks Authoring use?

Coding Agents Hooks Authoring is published under the Apache-2.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Coding Agents Hooks Authoring use?

About 1.4k tokens (SKILL.md is roughly 5.4k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Coding Agents Hooks Authoring?

Skills that share tags, products or a category with Coding Agents Hooks Authoring: Hermes Agent Skill Authoring (NousResearch/hermes-agent, 252k stars), Configuring Oauth2 Authorization Flow (mukul975/Anthropic-Cybersecurity-Skills, 34k stars), Authoring Skills (vercel/next.js, 143k stars) and Abp Authorization (abpframework/abp, 14k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Coding Agents Hooks Authoring?

griddynamics (a GitHub organization) maintains it in griddynamics/rosetta, which has 354 GitHub stars. The repository holds 12 skills in this directory. The repository was last updated on September 29, 2026.

Source: griddynamics/rosetta on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.