mirror of
https://github.com/affaan-m/ECC.git
synced 2026-09-01 04:38:47 +02:00
* fix(ci): resync lockfiles with package.json (eslint 10) + migrate yarn.lock to Yarn 4 format package.json requires eslint@^10.6.0 but the committed locks pinned 9.39.2, so npm ci aborted and Yarn 4 hardened mode rejected the stale v1-classic yarn.lock (YN0028). Regenerate package-lock.json and rewrite yarn.lock in Yarn 4 (berry) format so npm ci and immutable yarn installs both pass. Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com> * fix(ci): require clean probe exit for Windows shell/bash detection; add pyyaml dev dep Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com> * refactor: consolidate duplicated hook-root resolver into shared resolveEccRoot() (#2368) The inline node -e resolver blob was duplicated ~60x across hooks.json, command docs, and translations. Each copy inlined the full ~700-char plugin-root search using a spread over nested array literals (p.join(d,'plugins',...s) over [['ecc'],...]), which breaks Windows hook execution due to shell quoting (#2368). Collapse every copy to a 250-char locator that loads the committed resolve-ecc-root module and delegates to resolveEccRoot() — no spread, no nested array literals, no escaped double quotes. The real search logic now lives in one tested module. Also route session-start-bootstrap.js through resolveEccRoot() instead of its own duplicated reimplementation, and fix the auto-update.md 'marketplace' (singular) typo along the way. Guard tests updated: discovery behavior is asserted against resolveEccRoot(); the inline is asserted to delegate and to contain no Windows-fragile constructs. Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com> * fix(resolve-ecc-root): restore full env-unset discovery in inline resolver Address Greptile review on #2410: when CLAUDE_PLUGIN_ROOT is unset the delegating inline could only load the resolver module from ~/.claude, returning ~/.claude without ever reaching the plugin/cache search. Restore the old inline's discovery breadth (exact plugin roots + versioned cache) Windows-safely (no spread, nested arrays, or escaped quotes), then delegate the authoritative decision to resolveEccRoot(). Add regression tests for plugin-subdir and versioned-cache bootstrap with env unset. Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com> --------- Co-authored-by: affaan <affaan@itomarkets.com> Co-authored-by: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
87 lines
3.9 KiB
Markdown
87 lines
3.9 KiB
Markdown
---
|
||
name: instinct-status
|
||
description: すべての学習済みインスティンクトと信頼度レベルを表示
|
||
command: true
|
||
---
|
||
|
||
# インスティンクトステータスコマンド
|
||
|
||
すべての学習済みインスティンクトを信頼度スコアとともに、ドメインごとにグループ化して表示します。
|
||
|
||
## 実装
|
||
|
||
`hooks/hooks.json` および他のスラッシュコマンド(`/sessions`、`/skill-health`)
|
||
と同じリゾルバ(環境変数 → 標準インストール → 既知のプラグインルート →
|
||
プラグインキャッシュ → フォールバック)でインスティンクトCLIを実行します。
|
||
これにより、`CLAUDE_PLUGIN_ROOT` が未設定で
|
||
レガシーの `~/.claude/skills/continuous-learning-v2/` ディレクトリが
|
||
残っているときに発生するパスの分岐を回避します (#2037)。
|
||
|
||
```bash
|
||
ECC_ROOT="${CLAUDE_PLUGIN_ROOT:-$(node -e "var r=(function(){var p=require('path'),f=require('fs'),o=require('os');var e=process.env.CLAUDE_PLUGIN_ROOT;if(e&&e.trim())return e.trim();var d=p.join(o.homedir(),'.claude');function L(x){try{return require(p.join(x,'scripts','lib','resolve-ecc-root')).resolveEccRoot()}catch(_){return null}}var r=L(d);if(r)return r;var s=['ecc','ecc@ecc','marketplaces/ecc','everything-claude-code','everything-claude-code@everything-claude-code','marketplaces/everything-claude-code'];for(var i=0;i<s.length;i++){r=L(p.join(d,'plugins',s[i]));if(r)return r}try{var g=['ecc','everything-claude-code'];for(var j=0;j<g.length;j++){var c=p.join(d,'plugins','cache',g[j]);var O=f.readdirSync(c);for(var k=0;k<O.length;k++){var q=p.join(c,O[k]);var V=f.readdirSync(q);for(var m=0;m<V.length;m++){r=L(p.join(q,V[m]));if(r)return r}}}}catch(_){}return d})();console.log(r)")}"
|
||
python3 "$ECC_ROOT/skills/continuous-learning-v2/scripts/instinct-cli.py" status
|
||
```
|
||
|
||
## 使用方法
|
||
|
||
```
|
||
/instinct-status
|
||
/instinct-status --domain code-style
|
||
/instinct-status --low-confidence
|
||
```
|
||
|
||
## 実行内容
|
||
|
||
1. `~/.claude/homunculus/instincts/personal/` からすべてのインスティンクトファイルを読み込む
|
||
2. `~/.claude/homunculus/instincts/inherited/` から継承されたインスティンクトを読み込む
|
||
3. ドメインごとにグループ化し、信頼度バーとともに表示
|
||
|
||
## 出力形式
|
||
|
||
```
|
||
instinctステータス
|
||
==================
|
||
|
||
## コードスタイル (4 instincts)
|
||
|
||
### prefer-functional-style
|
||
トリガー: 新しい関数を書くとき
|
||
アクション: クラスより関数型パターンを使用
|
||
信頼度: ████████░░ 80%
|
||
ソース: session-observation | 最終更新: 2025-01-22
|
||
|
||
### use-path-aliases
|
||
トリガー: モジュールをインポートするとき
|
||
アクション: 相対インポートの代わりに@/パスエイリアスを使用
|
||
信頼度: ██████░░░░ 60%
|
||
ソース: repo-analysis (github.com/acme/webapp)
|
||
|
||
## テスト (2 instincts)
|
||
|
||
### test-first-workflow
|
||
トリガー: 新しい機能を追加するとき
|
||
アクション: テストを先に書き、次に実装
|
||
信頼度: █████████░ 90%
|
||
ソース: session-observation
|
||
|
||
## ワークフロー (3 instincts)
|
||
|
||
### grep-before-edit
|
||
トリガー: コードを変更するとき
|
||
アクション: Grepで検索、Readで確認、次にEdit
|
||
信頼度: ███████░░░ 70%
|
||
ソース: session-observation
|
||
|
||
---
|
||
合計: 9 instincts (4個人, 5継承)
|
||
オブザーバー: 実行中 (最終分析: 5分前)
|
||
```
|
||
|
||
## フラグ
|
||
|
||
- `--domain <name>`: ドメインでフィルタリング(code-style、testing、gitなど)
|
||
- `--low-confidence`: 信頼度 < 0.5のインスティンクトのみを表示
|
||
- `--high-confidence`: 信頼度 >= 0.7のインスティンクトのみを表示
|
||
- `--source <type>`: ソースでフィルタリング(session-observation、repo-analysis、inherited)
|
||
- `--json`: プログラムで使用するためにJSON形式で出力
|