Major OpenCode integration overhaul:
- llms.txt: Comprehensive OpenCode documentation for LLMs (642 lines)
- .opencode/plugins/ecc-hooks.ts: All Claude Code hooks translated to OpenCode's plugin system
- .opencode/tools/*.ts: 3 custom tools (run-tests, check-coverage, security-audit)
- .opencode/commands/*.md: All 24 commands in OpenCode format
- .opencode/package.json: npm package structure for opencode-ecc
- .opencode/index.ts: Main plugin entry point
- Delete incorrect LIMITATIONS.md (hooks ARE supported via plugins)
- Rewrite MIGRATION.md with correct hook event mapping
- Update README.md OpenCode section to show full feature parity
OpenCode has 20+ events vs Claude Code's 3 phases:
- PreToolUse → tool.execute.before
- PostToolUse → tool.execute.after
- Stop → session.idle
- SessionStart → session.created
- SessionEnd → session.deleted
- Plus: file.edited, file.watcher.updated, permission.asked, todo.updated
- 12 agents: Full parity
- 24 commands: Full parity (+1 from original 23)
- 16 skills: Full parity
- Hooks: OpenCode has MORE (20+ events vs 3 phases)
- Custom Tools: 3 native OpenCode tools
The OpenCode configuration can now be:
1. Used directly: cd everything-claude-code && opencode
2. Installed via npm: npm install opencode-ecc
Add a new /sessions command to manage Claude Code session history with
alias support for quick access to previous sessions.
Features:
- List sessions with pagination and filtering (by date, ID)
- Load and view session content and metadata
- Create memorable aliases for sessions
- Remove aliases
- Display session statistics (lines, items, size)
- List all aliases
New libraries:
- scripts/lib/session-manager.js - Core session CRUD operations
- scripts/lib/session-aliases.js - Alias management with atomic saves
New command:
- commands/sessions.md - Complete command with embedded scripts
Modified:
- scripts/lib/utils.js - Add getAliasesPath() export
- scripts/hooks/session-start.js - Show available aliases on session start
Session format support:
- Old: YYYY-MM-DD-session.tmp
- New: YYYY-MM-DD-<short-id>-session.tmp
Aliases are stored in ~/.claude/session-aliases.json with Windows-
compatible atomic writes and backup support.
Co-authored-by: 王志坚 <wangzhijian10@bgyfw.com>
Co-authored-by: Claude <noreply@anthropic.com>
Fixes#113
The instinct commands referenced hardcoded paths that only work with
manual installation (~/.claude/skills/...). When installed as a plugin,
files are at ~/.claude/plugins/cache/.../skills/...
Changes:
- Updated instinct-status, instinct-import, evolve commands to use
${CLAUDE_PLUGIN_ROOT} with fallback to manual path
- Updated observe.sh hook documentation with both install methods
- Updated SKILL.md with plugin vs manual installation instructions
- Removed duplicate commands from skills/continuous-learning-v2/commands/
(already exist in commands/)
Users should use ${CLAUDE_PLUGIN_ROOT} in their hooks config when
installed as a plugin.
BREAKING: Commands are now loaded as skills per Claude Code's unified architecture.
Changes:
- Removed separate `commands` field from plugin.json
- Added `./commands/` to `skills` array
- Bumped version to 1.2.0
- Updated description to reflect unified structure
This aligns with Claude Code's documentation which has merged skills and
slash commands into a single concept. Both directories are now loaded
as skills, maintaining backwards compatibility.
Closes#111
- Fix 16 ESLint no-unused-vars errors across hook scripts and tests
- Add eslint-disable comment for intentional control-regex in ANSI stripper
- Update session file test to use getSessionIdShort() instead of hardcoded 'default'
(reflects PR #110's project-name fallback behavior)
- Add marketing/ to .gitignore (local drafts)
- Add skill-create-output.js (terminal output formatter)
All 69 tests now pass. CI should be green.
- Add minimum Claude Code version requirement (v2.1.0+)
- Document hooks auto-loading behavior to prevent flip-flop cycles
- Add flip-flop history table to PLUGIN_SCHEMA_NOTES.md
- Reference issues #29, #52, #103 that were caused by this confusion
- Explain that regression test now prevents reintroduction
This documentation should prevent future confusion about whether to
add/remove the hooks field from plugin.json.
Fixes#103, #106, #108
Claude Code automatically loads hooks/hooks.json by convention.
Explicitly declaring it in plugin.json causes a duplicate detection
error: "Duplicate hooks file detected"
Added regression test to prevent this from being reintroduced.
New commands:
- /skill-create: Local git history analysis to generate SKILL.md files
- /instinct-status: Show learned instincts with confidence levels
- /instinct-import: Import instincts from files or repos
- /instinct-export: Export instincts for sharing
- /evolve: Cluster instincts into skills/commands/agents
These integrate the continuous-learning-v2 system and provide a local
alternative to the Skill Creator GitHub App for pattern extraction.
Fixes plugin installation validation error: "agents: Invalid input"
The plugin manifest validator requires explicit file paths for agents,
not directory paths. Changed format:
- "agents": "./agents" → explicit file path array
- Added version field (required by validator)
- Changed commands/skills to array format for consistency
This matches the format used by other working plugins (e.g.,
Parslee-ai/neo uses explicit file paths for agents).
Validated with: claude plugin validate .claude-plugin/plugin.json
Fixes#90
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
The Claude Code plugin system does not support distributing rules
via plugins. Added a note to Option 1 (Plugin Installation) section
explaining this limitation and providing manual installation steps.
Closes#88
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Excellent contribution adding comprehensive Go language support. Includes go-reviewer and go-build-resolver agents, TDD commands, and detailed Go patterns/testing skills.
- Added agents field pointing to ./agents directory (10 agents)
- Added hooks field pointing to ./hooks/hooks.json
- These were supported but not declared, potentially causing
agents not to load when installed as a plugin
Addresses part of #88 (rules still need manual install per
upstream limitation - filed anthropics/claude-code#21163)
Add Go-specific agents, skills, and commands for idiomatic Go development:
Agents:
- go-reviewer: Go code review for concurrency, error handling, security
- go-build-resolver: Fix Go build errors with minimal changes
Skills:
- golang-patterns: Idiomatic Go patterns, best practices, conventions
- golang-testing: TDD, table-driven tests, benchmarks, fuzzing
Commands:
- /go-review: Invoke Go code reviewer
- /go-test: Go TDD workflow with coverage
- /go-build: Fix Go build/vet/lint errors
Also updates README.md to document the new Go support.
Fixes#78
## Problem
The Stop hook used inline JavaScript code with `node -e`, which caused
shell syntax errors on macOS/zsh due to special characters (parentheses,
braces, arrow functions) being misinterpreted by the shell.
Error message:
/bin/sh: -c: line 0: syntax error near unexpected token \`('
## Solution
- Created scripts/hooks/check-console-log.js with the hook logic
- Updated hooks/hooks.json to reference the external script
- This follows the same pattern as other hooks in the plugin
## Benefits
- Fixes shell compatibility issues across different environments
- Improves code maintainability (separate, well-documented script)
- Follows plugin's own best practices
- Makes the code easier to test and debug
## Testing
Tested on macOS with zsh - no more syntax errors.
The hook still functions correctly to detect console.log statements.
* fix: use correct unscoped agent-browser package name
The @anthropic-ai/agent-browser package does not exist on npm.
The correct package is the unscoped 'agent-browser' from Vercel Labs (v0.7.6).
Fixes the issue noted in PR #75 review comment.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* fix: correct agent-browser API to match actual package exports
- Change AgentBrowser to BrowserManager (correct export name)
- Update documentation to show actual CLI-based usage pattern
- Add snapshot + refs system examples (the real agent-browser API)
- Add programmatic BrowserManager API for advanced use cases
- Show CLI wrapper approach for script integration
The agent-browser package from Vercel is primarily a CLI tool,
not a JavaScript library with semantic methods. This corrects
the documentation to match the actual package API.
Fixes CodeRabbit review comment about incorrect import/export.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
---------
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>