accessibility-patterns
WCAG 2.2 AA compliance, ARIA patterns, keyboard navigation, screen reader optimization
Complete Claude Code hooks reference - input/output schemas, registration, testing patterns
Claude Code
$ npx -y skills add vibeeval/vibecosystem --skill hook-developer --agent claude-code
Codex
$ npx skills add vibeeval/vibecosystem --skill hook-developer -a codex -y
Cursor
$ npx skills add vibeeval/vibecosystem --skill hook-developer -a cursor -y
Gemini CLI
$ npx skills add vibeeval/vibecosystem --skill hook-developer -a gemini-cli -y
GitHub Copilot
$ npx skills add vibeeval/vibecosystem --skill hook-developer -a github-copilot -y
OpenCode
$ npx skills add vibeeval/vibecosystem --skill hook-developer -a opencode -y
Windsurf
$ npx skills add vibeeval/vibecosystem --skill hook-developer -a windsurf -y
name: hook-developer description: Complete Claude Code hooks reference - input/output schemas, registration, testing patterns
Complete reference for developing Claude Code hooks. Use this to write hooks with correct input/output schemas.
| Hook | Fires When | Can Block? | Primary Use | |------|-----------|------------|-------------| | **PreToolUse** | Before tool executes | YES | Block/modify tool calls | | **PostToolUse** | After tool completes | Partial | React to tool results | | **UserPromptSubmit** | User sends prompt | YES | Validate/inject context | | **PermissionRequest** | Permission dialog shows | YES | Auto-approve/deny | | **SessionStart** | Session begins | NO | Load context, set env vars | | **SessionEnd** | Session ends | NO | Cleanup/save state | | **Stop** | Agent finishes | YES | Force continuation | | **SubagentStart** | Subagent spawns | NO | Pattern coordination | | **SubagentStop** | Subagent finishes | YES | Force continuation | | **PreCompact** | Before compaction | NO | Save state | | **Notification** | Notification sent | NO | Custom alerts |
**Hook type options:** `type: "command"` (bash) or `type: "prompt"` (LLM evaluation)
---
**Purpose:** Block or modify tool execution before it happens.
**Input:**
{
"session_id": "string",
"transcript_path": "string",
"cwd": "string",
"permission_mode": "default|plan|acceptEdits|bypassPermissions",
"hook_event_name": "PreToolUse",
"tool_name": "string",
"tool_input": {
"file_path": "string",
"command": "string"
},
"tool_use_id": "string"
}**Output (JSON):**
{
"hookSpecificOutput": {
"hookEventName": "PreToolUse",
"permissionDecision": "allow|deny|ask",
"permissionDecisionReason": "string",
"updatedInput": {}
},
"continue": true,
"stopReason": "string",
"systemMessage": "string",
"suppressOutput": true
}**Exit code 2:** Blocks tool, stderr shown to Claude.
**Common matchers:** `Bash`, `Edit|Write`, `Read`, `Task`, `mcp__.*`
---
**Purpose:** React to tool execution results, provide feedback to Claude.
**Input:**
{
"session_id": "string",
"transcript_path": "string",
"cwd": "string",
"permission_mode": "string",
"hook_event_name": "PostToolUse",
"tool_name": "string",
"tool_input": {},
"tool_response": {
"filePath": "string",
"success": true,
"output": "string",
"exitCode": 0
},
"tool_use_id": "string"
}**CRITICAL:** The response field is `tool_response`, NOT `tool_result`.
**Output (JSON):**
{
"decision": "block",
"reason": "string",
"hookSpecificOutput": {
"hookEventName": "PostToolUse",
"additionalContext": "string"
},
"continue": true,
"stopReason": "string",
"suppressOutput": true
}**Blocking:** `"decision": "block"` with `"reason"` prompts Claude to address the issue.
**Common matchers:** `Edit|Write`, `Bash`
---
**Purpose:** Validate user prompts, inject context before Claude processes.
**Input:**
{
"session_id": "string",
"transcript_path": "string",
"cwd": "string",
"permission_mode": "string",
"hook_event_name": "UserPromptSubmit",
"prompt": "string"
}**Output (Plain text):**
Any stdout text is added to context for Claude.
**Output (JSON):**
{
"decision": "block",
"reason": "string",
"hookSpecificOutput": {
"hookEventName": "UserPromptSubmit",
"additionalContext": "string"
}
}**Blocking:** `"decision": "block"` erases prompt, shows `"reason"` to user only (not Claude).
**Exit code 2:** Blocks prompt, shows stderr to user only.
---
**Purpose:** Automate permission dialog decisions.
**Input:**
{
"session_id": "string",
"transcript_path": "string",
"cwd": "string",
"permission_mode": "string",
"hook_event_name": "PermissionRequest",
"tool_name": "string",
"tool_input": {}
}**Output:**
{
"hookSpecificOutput": {
"hookEventName": "PermissionRequest",
"decision": {
"behavior": "allow|deny",
"updatedInput": {},
"message": "string",
"interrupt": false
}
}
}---
**Purpose:** Initialize session, load context, set environment variables.
**Input:**
{
"session_id": "string",
"transcript_path": "string",
"cwd": "string",
"permission_mode": "string",
"hook_event_name": "SessionStart",
"source": "startup|resume|clear|compact"
}**Environment variable:** `CLAUDE_ENV_FILE` - write `export VAR=value` to persist env vars.
**Output (Plain text or JSON):**
{
"hookSpecificOutput": {
"hookEventName": "SessionStart",
"additionalContext": "string"
},
"suppressOutput": true
}Plain text stdout is added as context.
---
**Purpose:** Cleanup, save state, log session.
**Input:**
{
"session_id": "string",
"transcript_path": "string",
"cwd": "string",
"permission_mode": "string",
"hook_event_name": "SessionEnd",
"reason": "clear|logout|prompt_input_exit|other"
}**Output:** Cannot affect session (already ending). Use for cleanup only.
---
**Purpose:** Control when Claude stops, force continuation.
**Input:**
{
"session_id": "string",
"transcript_path": "string",
"cwd": "string",
"permission_mode": "string",
"hook_event_name": "Stop",
"stop_hook_active"Your AI software team. Built on Claude Code. vibecosystem turns Claude Code into a full AI software team — 138 specialized agents that plan, build, review, test, and learn from every mistake. No configuration needed — just install and code.
WCAG 2.2 AA compliance, ARIA patterns, keyboard navigation, screen reader optimization
axe-core integration, WCAG 2.2 AA checklist, keyboard navigation testing, screen reader testing, and ARIA pattern validation.
Steam-style achievement system with XP, levels, streaks, and skill trees. Gamifies the development workflow. 25 achievements…
Framework for measuring and tracking agent response quality over time. Detects regressions before they reach production. Use when…
Agent ve skill dosyalarinin yapisal dogrulamasi. Frontmatter kontrol, naming convention, zorunlu bolum kontrolu, tutarlilik…
You MUST use this before any creative work - creating features, building components, adding functionality, modifying behavior, or…
Ask which skill or flow fits your situation. A router over the skills in this repo.