From 56bd57c543b6417e10b8a0a7421ea02f3fe72a29 Mon Sep 17 00:00:00 2001 From: Affaan Mustafa Date: Sun, 5 Apr 2026 17:50:31 -0700 Subject: [PATCH] feat: restore hookify command bundle --- AGENTS.md | 6 ++-- README.md | 10 +++---- README.zh-CN.md | 2 +- WORKING-CONTEXT.md | 1 + agents/conversation-analyzer.md | 52 +++++++++++++++++++++++++++++++++ commands/hookify-configure.md | 14 +++++++++ commands/hookify-help.md | 46 +++++++++++++++++++++++++++++ commands/hookify-list.md | 21 +++++++++++++ commands/hookify.md | 50 +++++++++++++++++++++++++++++++ docs/zh-CN/AGENTS.md | 6 ++-- docs/zh-CN/README.md | 10 +++---- 11 files changed, 201 insertions(+), 17 deletions(-) create mode 100644 agents/conversation-analyzer.md create mode 100644 commands/hookify-configure.md create mode 100644 commands/hookify-help.md create mode 100644 commands/hookify-list.md create mode 100644 commands/hookify.md diff --git a/AGENTS.md b/AGENTS.md index 2578dfd7..8fbb6b8e 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -1,6 +1,6 @@ # Everything Claude Code (ECC) — Agent Instructions -This is a **production-ready AI coding plugin** providing 39 specialized agents, 180 skills, 73 commands, and automated hook workflows for software development. +This is a **production-ready AI coding plugin** providing 40 specialized agents, 180 skills, 77 commands, and automated hook workflows for software development. **Version:** 1.10.0 @@ -145,9 +145,9 @@ Troubleshoot failures: check test isolation → verify mocks → fix implementat ## Project Structure ``` -agents/ — 39 specialized subagents +agents/ — 40 specialized subagents skills/ — 180 workflow skills and domain knowledge -commands/ — 73 slash commands +commands/ — 77 slash commands hooks/ — Trigger-based automations rules/ — Always-follow guidelines (common + per-language) scripts/ — Cross-platform Node.js utilities diff --git a/README.md b/README.md index 4f4dfdb3..d434fbba 100644 --- a/README.md +++ b/README.md @@ -236,7 +236,7 @@ For manual install instructions see the README in the `rules/` folder. When copy /plugin list ecc@ecc ``` -**That's it!** You now have access to 39 agents, 180 skills, and 73 legacy command shims. +**That's it!** You now have access to 40 agents, 180 skills, and 77 legacy command shims. ### Multi-model commands require additional setup @@ -1152,8 +1152,8 @@ The configuration is automatically detected from `.opencode/opencode.json`. | Feature | Claude Code | OpenCode | Status | |---------|-------------|----------|--------| -| Agents | PASS: 39 agents | PASS: 12 agents | **Claude Code leads** | -| Commands | PASS: 73 commands | PASS: 31 commands | **Claude Code leads** | +| Agents | PASS: 40 agents | PASS: 12 agents | **Claude Code leads** | +| Commands | PASS: 77 commands | PASS: 31 commands | **Claude Code leads** | | Skills | PASS: 180 skills | PASS: 37 skills | **Claude Code leads** | | Hooks | PASS: 8 event types | PASS: 11 events | **OpenCode has more!** | | Rules | PASS: 29 rules | PASS: 13 instructions | **Claude Code leads** | @@ -1261,8 +1261,8 @@ ECC is the **first plugin to maximize every major AI coding tool**. Here's how e | Feature | Claude Code | Cursor IDE | Codex CLI | OpenCode | |---------|------------|------------|-----------|----------| -| **Agents** | 39 | Shared (AGENTS.md) | Shared (AGENTS.md) | 12 | -| **Commands** | 73 | Shared | Instruction-based | 31 | +| **Agents** | 40 | Shared (AGENTS.md) | Shared (AGENTS.md) | 12 | +| **Commands** | 77 | Shared | Instruction-based | 31 | | **Skills** | 180 | Shared | 10 (native format) | 37 | | **Hook Events** | 8 types | 15 types | None yet | 11 types | | **Hook Scripts** | 20+ scripts | 16 scripts (DRY adapter) | N/A | Plugin hooks | diff --git a/README.zh-CN.md b/README.zh-CN.md index efeb7286..cc40da8d 100644 --- a/README.zh-CN.md +++ b/README.zh-CN.md @@ -106,7 +106,7 @@ cp -r everything-claude-code/rules/perl ~/.claude/rules/ /plugin list ecc@ecc ``` -**完成!** 你现在可以使用 39 个代理、180 个技能和 73 个命令。 +**完成!** 你现在可以使用 40 个代理、180 个技能和 77 个命令。 ### multi-* 命令需要额外配置 diff --git a/WORKING-CONTEXT.md b/WORKING-CONTEXT.md index ec816172..e5c1d94d 100644 --- a/WORKING-CONTEXT.md +++ b/WORKING-CONTEXT.md @@ -162,3 +162,4 @@ Keep this file detailed for only the current sprint, blockers, and next actions. - 2026-04-05: Direct-ported the safe README-only `#1285` slice into `main` instead of merging the branch: added a small `Community Projects` section so downstream teams can link public work built on ECC without changing install, security, or runtime surfaces. Rejected `#1286` at review because it adds an external third-party GitHub Action (`hashgraph-online/codex-plugin-scanner`) that does not meet the current supply-chain policy. - 2026-04-05: Re-audited `origin/feat/hermes-generated-ops-skills` by full diff. The branch is still not mergeable: it deletes current ECC-native surfaces, regresses packaging/install metadata, and removes newer `main` content. Continued the selective-salvage policy instead of branch merge. - 2026-04-05: Selectively salvaged `skills/frontend-design` from the Hermes branch as a self-contained ECC-native skill, mirrored it into `.agents`, wired it into `framework-language`, and re-synced the catalog to `180` skills after validation. The branch itself remains reference-only until every remaining unique file is either ported intentionally or rejected. +- 2026-04-05: Selectively salvaged the `hookify` command bundle plus the supporting `conversation-analyzer` agent from the Hermes branch. `hookify-rules` already existed as the canonical skill; this pass restores the user-facing command surfaces (`/hookify`, `/hookify-help`, `/hookify-list`, `/hookify-configure`) without pulling in any external runtime or branch-wide regressions. Catalog truth is now `40` agents, `77` commands, and `180` skills. diff --git a/agents/conversation-analyzer.md b/agents/conversation-analyzer.md new file mode 100644 index 00000000..c39d6a81 --- /dev/null +++ b/agents/conversation-analyzer.md @@ -0,0 +1,52 @@ +--- +name: conversation-analyzer +description: Use this agent when analyzing conversation transcripts to find behaviors worth preventing with hooks. Triggered by /hookify without arguments. +model: sonnet +tools: [Read, Grep] +--- + +# Conversation Analyzer Agent + +You analyze conversation history to identify problematic Claude Code behaviors that should be prevented with hooks. + +## What to Look For + +### Explicit Corrections +- "No, don't do that" +- "Stop doing X" +- "I said NOT to..." +- "That's wrong, use Y instead" + +### Frustrated Reactions +- User reverting changes Claude made +- Repeated "no" or "wrong" responses +- User manually fixing Claude's output +- Escalating frustration in tone + +### Repeated Issues +- Same mistake appearing multiple times in the conversation +- Claude repeatedly using a tool in an undesired way +- Patterns of behavior the user keeps correcting + +### Reverted Changes +- `git checkout -- file` or `git restore file` after Claude's edit +- User undoing or reverting Claude's work +- Re-editing files Claude just edited + +## Output Format + +For each identified behavior: + +```yaml +behavior: "Description of what Claude did wrong" +frequency: "How often it occurred" +severity: high|medium|low +suggested_rule: + name: "descriptive-rule-name" + event: bash|file|stop|prompt + pattern: "regex pattern to match" + action: block|warn + message: "What to show when triggered" +``` + +Prioritize high-frequency, high-severity behaviors first. diff --git a/commands/hookify-configure.md b/commands/hookify-configure.md new file mode 100644 index 00000000..929a8579 --- /dev/null +++ b/commands/hookify-configure.md @@ -0,0 +1,14 @@ +--- +description: Enable or disable hookify rules interactively +--- + +Interactively enable or disable existing hookify rules. + +## Steps + +1. Find all `.claude/hookify.*.local.md` files +2. Read the current state of each rule +3. Present the list with current enabled / disabled status +4. Ask which rules to toggle +5. Update the `enabled:` field in the selected rule files +6. Confirm the changes diff --git a/commands/hookify-help.md b/commands/hookify-help.md new file mode 100644 index 00000000..f30ae004 --- /dev/null +++ b/commands/hookify-help.md @@ -0,0 +1,46 @@ +--- +description: Get help with the hookify system +--- + +Display comprehensive hookify documentation. + +## Hook System Overview + +Hookify creates rule files that integrate with Claude Code's hook system to prevent unwanted behaviors. + +### Event Types + +- `bash`: triggers on Bash tool use and matches command patterns +- `file`: triggers on Write/Edit tool use and matches file paths +- `stop`: triggers when a session ends +- `prompt`: triggers on user message submission and matches input patterns +- `all`: triggers on all events + +### Rule File Format + +Files are stored as `.claude/hookify.{name}.local.md`: + +```yaml +--- +name: descriptive-name +enabled: true +event: bash|file|stop|prompt|all +action: block|warn +pattern: "regex pattern to match" +--- +Message to display when rule triggers. +Supports multiple lines. +``` + +### Commands + +- `/hookify [description]` creates new rules and auto-analyzes the conversation when no description is given +- `/hookify-list` lists configured rules +- `/hookify-configure` toggles rules on or off + +### Pattern Tips + +- use regex syntax +- for `bash`, match against the full command string +- for `file`, match against the file path +- test patterns before deploying diff --git a/commands/hookify-list.md b/commands/hookify-list.md new file mode 100644 index 00000000..b912ce1d --- /dev/null +++ b/commands/hookify-list.md @@ -0,0 +1,21 @@ +--- +description: List all configured hookify rules +--- + +Find and display all hookify rules in a formatted table. + +## Steps + +1. Find all `.claude/hookify.*.local.md` files +2. Read each file's frontmatter: + - `name` + - `enabled` + - `event` + - `action` + - `pattern` +3. Display them as a table: + +| Rule | Enabled | Event | Pattern | File | +|------|---------|-------|---------|------| + +4. Show the rule count and remind the user that `/hookify-configure` can change state later. diff --git a/commands/hookify.md b/commands/hookify.md new file mode 100644 index 00000000..80969d8c --- /dev/null +++ b/commands/hookify.md @@ -0,0 +1,50 @@ +--- +description: Create hooks to prevent unwanted behaviors from conversation analysis or explicit instructions +--- + +Create hook rules to prevent unwanted Claude Code behaviors by analyzing conversation patterns or explicit user instructions. + +## Usage + +`/hookify [description of behavior to prevent]` + +If no arguments are provided, analyze the current conversation to find behaviors worth preventing. + +## Workflow + +### Step 1: Gather Behavior Info + +- With arguments: parse the user's description of the unwanted behavior +- Without arguments: use the `conversation-analyzer` agent to find: + - explicit corrections + - frustrated reactions to repeated mistakes + - reverted changes + - repeated similar issues + +### Step 2: Present Findings + +Show the user: + +- behavior description +- proposed event type +- proposed pattern or matcher +- proposed action + +### Step 3: Generate Rule Files + +For each approved rule, create a file at `.claude/hookify.{name}.local.md`: + +```yaml +--- +name: rule-name +enabled: true +event: bash|file|stop|prompt|all +action: block|warn +pattern: "regex pattern" +--- +Message shown when rule triggers. +``` + +### Step 4: Confirm + +Report created rules and how to manage them with `/hookify-list` and `/hookify-configure`. diff --git a/docs/zh-CN/AGENTS.md b/docs/zh-CN/AGENTS.md index a02d9c88..ba75f68a 100644 --- a/docs/zh-CN/AGENTS.md +++ b/docs/zh-CN/AGENTS.md @@ -1,6 +1,6 @@ # Everything Claude Code (ECC) — 智能体指令 -这是一个**生产就绪的 AI 编码插件**,提供 39 个专业代理、180 项技能、73 条命令以及自动化钩子工作流,用于软件开发。 +这是一个**生产就绪的 AI 编码插件**,提供 40 个专业代理、180 项技能、77 条命令以及自动化钩子工作流,用于软件开发。 **版本:** 1.10.0 @@ -146,9 +146,9 @@ ## 项目结构 ``` -agents/ — 39 个专业子代理 +agents/ — 40 个专业子代理 skills/ — 180 个工作流技能和领域知识 -commands/ — 73 个斜杠命令 +commands/ — 77 个斜杠命令 hooks/ — 基于触发的自动化 rules/ — 始终遵循的指导方针(通用 + 每种语言) scripts/ — 跨平台 Node.js 实用工具 diff --git a/docs/zh-CN/README.md b/docs/zh-CN/README.md index 5c14b7f7..cc8320a7 100644 --- a/docs/zh-CN/README.md +++ b/docs/zh-CN/README.md @@ -209,7 +209,7 @@ npx ecc-install typescript /plugin list ecc@ecc ``` -**搞定!** 你现在可以使用 39 个智能体、180 项技能和 73 个命令了。 +**搞定!** 你现在可以使用 40 个智能体、180 项技能和 77 个命令了。 *** @@ -1094,8 +1094,8 @@ opencode | 功能特性 | Claude Code | OpenCode | 状态 | |---------|-------------|----------|--------| -| 智能体 | PASS: 39 个 | PASS: 12 个 | **Claude Code 领先** | -| 命令 | PASS: 73 个 | PASS: 31 个 | **Claude Code 领先** | +| 智能体 | PASS: 40 个 | PASS: 12 个 | **Claude Code 领先** | +| 命令 | PASS: 77 个 | PASS: 31 个 | **Claude Code 领先** | | 技能 | PASS: 180 项 | PASS: 37 项 | **Claude Code 领先** | | 钩子 | PASS: 8 种事件类型 | PASS: 11 种事件 | **OpenCode 更多!** | | 规则 | PASS: 29 条 | PASS: 13 条指令 | **Claude Code 领先** | @@ -1206,8 +1206,8 @@ ECC 是**第一个最大化利用每个主要 AI 编码工具的插件**。以 | 功能特性 | Claude Code | Cursor IDE | Codex CLI | OpenCode | |---------|------------|------------|-----------|----------| -| **智能体** | 39 | 共享 (AGENTS.md) | 共享 (AGENTS.md) | 12 | -| **命令** | 73 | 共享 | 基于指令 | 31 | +| **智能体** | 40 | 共享 (AGENTS.md) | 共享 (AGENTS.md) | 12 | +| **命令** | 77 | 共享 | 基于指令 | 31 | | **技能** | 180 | 共享 | 10 (原生格式) | 37 | | **钩子事件** | 8 种类型 | 15 种类型 | 暂无 | 11 种类型 | | **钩子脚本** | 20+ 个脚本 | 16 个脚本 (DRY 适配器) | N/A | 插件钩子 |