6 Commits

  • fix(commands): resolve active plugin root in /instinct-status (#2037) (#2059)
    The `/instinct-status` slash command template expanded
    `${CLAUDE_PLUGIN_ROOT}` directly and documented a manual-install
    fallback to `~/.claude/skills/continuous-learning-v2/scripts/instinct-cli.py`.
    When users had both an active plugin install (under
    `~/.claude/plugins/cache/<slug>/<org>/<version>/`) and a legacy
    `~/.claude/skills/continuous-learning-v2/` directory left over from a
    previous manual install, an empty `CLAUDE_PLUGIN_ROOT` (which Claude
    Code does not always populate in slash-command shell contexts) silently
    made the command read the stale legacy install while the active plugin
    hooks and observer wrote to the new XDG path. The user saw "No
    instincts found" while the system was actively learning — exactly the
    divergence the bug reporter spent hours diagnosing.
    
    Replace the brittle two-block template with the same inline resolver
    pattern that `hooks/hooks.json` and `/sessions` / `/skill-health`
    already use: env var → standard install → known plugin roots → plugin
    cache walk → fallback. The resolver is the canonical `INLINE_RESOLVE`
    constant from `scripts/lib/resolve-ecc-root.js`, so no new code is
    introduced — just consistent adoption of the existing pattern.
    
    Apply the same fix to all five copies of the command:
      - commands/instinct-status.md (canonical)
      - .opencode/commands/instinct-status.md
      - docs/zh-CN/commands/instinct-status.md
      - docs/ja-JP/commands/instinct-status.md
      - docs/tr/commands/instinct-status.md
    
    Extend tests/lib/command-plugin-root.test.js with an assertion that the
    canonical instinct-status.md uses the inline resolver and no longer
    hard-codes the legacy `~/.claude/skills/...` fallback (regression
    guard).
    
    zh-CN copy: polish the Chinese phrasing per LanguageTool feedback
    (`使用与 ... 相同的解析器` → `以与 ... 相同的解析器`) so the verb is
    introduced by an explicit preposition instead of reading as an awkward
    verb-object construction.
  • feat: project-scoped instinct isolation
    * feat: add project-scoped instinct isolation
    
    * fix(continuous-learning-v2): harden instinct loading and promotion safety; sync v2.1 command docs
    
    * fix(ci): make copilot-setup-steps a valid GitHub Actions workflow
    
    * fix(hooks): stabilize docs warning inline JS regex parsing
  • feat(ecc): prune plugin 43→12 items, promote 7 rules to .claude/rules/ (#245)
    ECC community plugin pruning: removed 530+ non-essential files
    (.cursor/, .opencode/, docs/ja-JP, docs/zh-CN, docs/zh-TW,
    language-specific skills/agents/rules). Retained 4 agents,
    3 commands, 5 skills. Promoted 13 rule files (8 common + 5
    typescript) to .claude/rules/ for CC native loading. Extracted
    reusable patterns to EXTRACTED-PATTERNS.md.
  • feat: complete OpenCode plugin support with hooks, tools, and commands
    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