Commit Graph

4 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
  • fix: use CLAUDE_PLUGIN_ROOT for continuous-learning-v2 paths
    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.
  • feat: add skill-create and continuous-learning-v2 commands
    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.