Hermes Agent Skill Authoring
NousResearch/hermes-agent
Author in-repo SKILL.md files: frontmatter and structure. An agent skill from NousResearch/hermes-agent.
To author, register, and test Rosetta hooks, add a SemanticKind, or debug a hook that won't fire.
$ npx skills add griddynamics/rosetta --skill coding-agents-hooks-authoring -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install griddynamics/rosetta coding-agents-hooks-authoring --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ 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-srcUse ~/.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/
Install the "coding-agents-hooks-authoring" agent skill from https://github.com/griddynamics/rosetta/tree/main/plugins/core-claude/skills/coding-agents-hooks-authoring into .claude/skills/coding-agents-hooks-authoring/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "coding-agents-hooks-authoring", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/griddynamics/rosetta/tree/main/plugins/core-claude/skills/coding-agents-hooks-authoringType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add griddynamics/rosetta --skill coding-agents-hooks-authoring -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install griddynamics/rosetta coding-agents-hooks-authoring --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/griddynamics/rosetta.git skills-src && mkdir -p .agents/skills && cp -r skills-src/plugins/core-claude/skills/coding-agents-hooks-authoring .agents/skills/coding-agents-hooks-authoring && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "coding-agents-hooks-authoring" agent skill from https://github.com/griddynamics/rosetta/tree/main/plugins/core-claude/skills/coding-agents-hooks-authoring into .agents/skills/coding-agents-hooks-authoring/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "coding-agents-hooks-authoring", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add griddynamics/rosetta --skill coding-agents-hooks-authoring -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install griddynamics/rosetta coding-agents-hooks-authoring --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/griddynamics/rosetta.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/plugins/core-claude/skills/coding-agents-hooks-authoring .cursor/skills/coding-agents-hooks-authoring && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "coding-agents-hooks-authoring" agent skill from https://github.com/griddynamics/rosetta/tree/main/plugins/core-claude/skills/coding-agents-hooks-authoring into .cursor/skills/coding-agents-hooks-authoring/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "coding-agents-hooks-authoring", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/griddynamics/rosetta.git --path plugins/core-claude/skills/coding-agents-hooks-authoring--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add griddynamics/rosetta --skill coding-agents-hooks-authoring -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install griddynamics/rosetta coding-agents-hooks-authoring --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/griddynamics/rosetta.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/plugins/core-claude/skills/coding-agents-hooks-authoring .gemini/skills/coding-agents-hooks-authoring && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "coding-agents-hooks-authoring" agent skill from https://github.com/griddynamics/rosetta/tree/main/plugins/core-claude/skills/coding-agents-hooks-authoring into .gemini/skills/coding-agents-hooks-authoring/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "coding-agents-hooks-authoring", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install griddynamics/rosetta coding-agents-hooks-authoringInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add griddynamics/rosetta --skill coding-agents-hooks-authoring -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/griddynamics/rosetta.git skills-src && mkdir -p .github/skills && cp -r skills-src/plugins/core-claude/skills/coding-agents-hooks-authoring .github/skills/coding-agents-hooks-authoring && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "coding-agents-hooks-authoring" agent skill from https://github.com/griddynamics/rosetta/tree/main/plugins/core-claude/skills/coding-agents-hooks-authoring into .github/skills/coding-agents-hooks-authoring/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "coding-agents-hooks-authoring", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add griddynamics/rosetta --skill coding-agents-hooks-authoring -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install griddynamics/rosetta coding-agents-hooks-authoring --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/griddynamics/rosetta.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/plugins/core-claude/skills/coding-agents-hooks-authoring .opencode/skills/coding-agents-hooks-authoring && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "coding-agents-hooks-authoring" agent skill from https://github.com/griddynamics/rosetta/tree/main/plugins/core-claude/skills/coding-agents-hooks-authoring into .opencode/skills/coding-agents-hooks-authoring/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "coding-agents-hooks-authoring", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
coding-agents-hooks-authoringTo 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.
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.
4 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit 5441232. It shows what the files ask for, not the result of running them.
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.
Shell commands in SKILL.md call:
npxpythonFrom the folder's file list and the shell code blocks in SKILL.md.
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.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
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.
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.
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.
The full file from griddynamics/rosetta at commit 5441232, republished under its Apache-2.0 licence (© griddynamics). 548 words, ~1,362 tokens.
.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.<hooks_authoring>
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>/.
src/hooks/src/hooks/<feature>/ (e.g. src/hooks/src/hooks/dangerous-actions/patterns.ts).src/hooks/src/runtime/.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.
When a hook needs a new tool category (e.g. mcp-call):
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.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.def.on.toolKinds.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.
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.tmplcore-codex/.codex-plugin/hooks.json.tmplcore-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.tmplcore-windsurf is a build-bundles.mjs PLUGINS bundle target but has no plugin directory / hooks.json registration yet.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>>.
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.
After any source change under src/hooks/src/ or instructions/r{2,3}/core/:
venv/bin/python scripts/pre_commit.pyThis builds CJS bundles, runs full test suite, and runs npx rosettify-plugins to sync instructions/r{2,3}/core/ → all plugin directories.
isLibraryModule workaround. Fix: move to subdirectory.buildDenyMessage echoes evidence to transcript by default. Pass redact=true for DANGEROUS_CONTENT matches (AWS keys, PEM certs, SQL with row data).[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(/\/+$/, '').lookupToolKind and def.on.toolKinds is inert.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
SKILL.md and 1 other file in plugins/core-claude/skills/coding-agents-hooks-authoring of griddynamics/rosetta.
Open the folder on GitHubat commit 5441232
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.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Coding Agents Hooks Authoring this skillgriddynamics/rosetta | 354 | — | ~1.4k | Automated safety check: Pass | Apache-2.0 | |
| Hermes Agent Skill AuthoringNousResearch/hermes-agent | 252k | — | ~3.6k | Automated safety check: Pass | MIT | |
| Configuring Oauth2 Authorization Flowmukul975/Anthropic-Cybersecurity-Skills | 34k | — | ~1.7k | Automated safety check: Pass | Apache-2.0 | |
| Authoring Skillsvercel/next.js | 143k | — | ~1k | Automated safety check: Pass | MIT | |
| Abp Authorizationabpframework/abp | 14k | — | ~1.3k | Automated safety check: Pass | LGPL-3.0 | |
| Implementing GCP Binary Authorizationmukul975/Anthropic-Cybersecurity-Skills | 34k | — | ~2k | Automated safety check: Pass | Apache-2.0 |
NousResearch/hermes-agent
Author in-repo SKILL.md files: frontmatter and structure. An agent skill from NousResearch/hermes-agent.
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…
vercel/next.js
How to create and maintain agent skills in .agents/skills/. An agent skill from vercel/next.js.
abpframework/abp
ABP permission system - PermissionDefinitionProvider, [Authorize] attribute, CheckPolicyAsync, IsGrantedAsync, ICurrentUser, IPermissionManager, multi-tenancy side.
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…
netdata/netdata
Author, modify, or review Netdata collectors across Go, IBM, C, Rust and external plugins.
griddynamics/rosetta
Collect GitHub repo health/usage stats into merged JSON. An agent skill from griddynamics/rosetta.
griddynamics/rosetta
Workflow for onboarding an external private library so AI can use it without source access.
griddynamics/rosetta
To connect Rosetta with Grid Dynamics SpecFlow MCP; only when SpecFlow is mentioned and the MCP is installed.
griddynamics/rosetta
To build an AI harness: run, observe, validate, automate repeated work faster — CLI/MCP actions, devcontainers, skills, subagents, hooks, pipelines, automations.
griddynamics/rosetta
To orchestrate parallel coding-agent farms (Claude, Codex, Copilot, Gemini, etc.) on isolated git worktrees.
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…
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.