mirror of
https://github.com/affaan-m/everything-claude-code.git
synced 2026-04-23 02:23:33 +08:00
docs: fix plugin quick start for continuous learning v2 (#1546)
This commit is contained in:
@@ -97,25 +97,9 @@ source: "session-observation"
|
|||||||
**プラグインとしてインストールした場合**(推奨):
|
**プラグインとしてインストールした場合**(推奨):
|
||||||
|
|
||||||
```json
|
```json
|
||||||
{
|
プラグインの `hooks/hooks.json` が Claude Code v2.1+ で自動読み込みされるため、`~/.claude/settings.json` に追加の hook 設定は不要です。`observe.sh` はそこで既に登録されています。
|
||||||
"hooks": {
|
|
||||||
"PreToolUse": [{
|
以前に `observe.sh` を `~/.claude/settings.json` にコピーした場合は、重複した `PreToolUse` / `PostToolUse` ブロックを削除してください。重複登録は二重実行と `${CLAUDE_PLUGIN_ROOT}` 解決エラーを引き起こします。この変数はプラグイン管理の `hooks/hooks.json` でのみ展開されます。
|
||||||
"matcher": "*",
|
|
||||||
"hooks": [{
|
|
||||||
"type": "command",
|
|
||||||
"command": "${CLAUDE_PLUGIN_ROOT}/skills/continuous-learning-v2/hooks/observe.sh pre"
|
|
||||||
}]
|
|
||||||
}],
|
|
||||||
"PostToolUse": [{
|
|
||||||
"matcher": "*",
|
|
||||||
"hooks": [{
|
|
||||||
"type": "command",
|
|
||||||
"command": "${CLAUDE_PLUGIN_ROOT}/skills/continuous-learning-v2/hooks/observe.sh post"
|
|
||||||
}]
|
|
||||||
}]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
```
|
|
||||||
|
|
||||||
**`~/.claude/skills`に手動でインストールした場合**:
|
**`~/.claude/skills`に手動でインストールした場合**:
|
||||||
|
|
||||||
@@ -126,14 +110,14 @@ source: "session-observation"
|
|||||||
"matcher": "*",
|
"matcher": "*",
|
||||||
"hooks": [{
|
"hooks": [{
|
||||||
"type": "command",
|
"type": "command",
|
||||||
"command": "~/.claude/skills/continuous-learning-v2/hooks/observe.sh pre"
|
"command": "~/.claude/skills/continuous-learning-v2/hooks/observe.sh"
|
||||||
}]
|
}]
|
||||||
}],
|
}],
|
||||||
"PostToolUse": [{
|
"PostToolUse": [{
|
||||||
"matcher": "*",
|
"matcher": "*",
|
||||||
"hooks": [{
|
"hooks": [{
|
||||||
"type": "command",
|
"type": "command",
|
||||||
"command": "~/.claude/skills/continuous-learning-v2/hooks/observe.sh post"
|
"command": "~/.claude/skills/continuous-learning-v2/hooks/observe.sh"
|
||||||
}]
|
}]
|
||||||
}]
|
}]
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -141,28 +141,11 @@ Use functional patterns over classes when appropriate.
|
|||||||
|
|
||||||
**플러그인으로 설치한 경우** (권장):
|
**플러그인으로 설치한 경우** (권장):
|
||||||
|
|
||||||
```json
|
`~/.claude/settings.json`에 추가 hook 블록을 넣지 마세요. Claude Code v2.1+가 플러그인의 `hooks/hooks.json`을 자동으로 로드하며, `observe.sh`는 이미 그곳에 등록되어 있습니다.
|
||||||
{
|
|
||||||
"hooks": {
|
|
||||||
"PreToolUse": [{
|
|
||||||
"matcher": "*",
|
|
||||||
"hooks": [{
|
|
||||||
"type": "command",
|
|
||||||
"command": "${CLAUDE_PLUGIN_ROOT}/skills/continuous-learning-v2/hooks/observe.sh"
|
|
||||||
}]
|
|
||||||
}],
|
|
||||||
"PostToolUse": [{
|
|
||||||
"matcher": "*",
|
|
||||||
"hooks": [{
|
|
||||||
"type": "command",
|
|
||||||
"command": "${CLAUDE_PLUGIN_ROOT}/skills/continuous-learning-v2/hooks/observe.sh"
|
|
||||||
}]
|
|
||||||
}]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
```
|
|
||||||
|
|
||||||
**수동으로 `~/.claude/skills`에 설치한 경우**:
|
이전에 `observe.sh`를 `~/.claude/settings.json`에 복사했다면 중복된 `PreToolUse` / `PostToolUse` 블록을 제거하세요. 중복 등록은 이중 실행과 `${CLAUDE_PLUGIN_ROOT}` 해석 오류를 일으킵니다. 이 변수는 플러그인 소유 `hooks/hooks.json` 항목에서만 확장됩니다.
|
||||||
|
|
||||||
|
**수동으로 `~/.claude/skills`에 설치한 경우**, 아래 내용을 `~/.claude/settings.json`에 추가하세요:
|
||||||
|
|
||||||
```json
|
```json
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -141,28 +141,11 @@ Her proje 12 karakterlik bir hash ID alır (örn. `a1b2c3d4e5f6`). `~/.claude/ho
|
|||||||
|
|
||||||
**Plugin olarak kuruluysa** (önerilen):
|
**Plugin olarak kuruluysa** (önerilen):
|
||||||
|
|
||||||
```json
|
`~/.claude/settings.json` içine ek hook bloğu eklemeyin. Claude Code v2.1+ eklentinin `hooks/hooks.json` dosyasını otomatik yükler; `observe.sh` zaten orada kayıtlıdır.
|
||||||
{
|
|
||||||
"hooks": {
|
|
||||||
"PreToolUse": [{
|
|
||||||
"matcher": "*",
|
|
||||||
"hooks": [{
|
|
||||||
"type": "command",
|
|
||||||
"command": "${CLAUDE_PLUGIN_ROOT}/skills/continuous-learning-v2/hooks/observe.sh"
|
|
||||||
}]
|
|
||||||
}],
|
|
||||||
"PostToolUse": [{
|
|
||||||
"matcher": "*",
|
|
||||||
"hooks": [{
|
|
||||||
"type": "command",
|
|
||||||
"command": "${CLAUDE_PLUGIN_ROOT}/skills/continuous-learning-v2/hooks/observe.sh"
|
|
||||||
}]
|
|
||||||
}]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
```
|
|
||||||
|
|
||||||
**`~/.claude/skills` dizinine manuel kuruluysa**:
|
Daha önce `observe.sh` satırlarını `~/.claude/settings.json` içine kopyaladıysanız, yinelenen `PreToolUse` / `PostToolUse` bloğunu kaldırın. Yinelenen kayıt hem çift çalıştırmaya yol açar hem de `${CLAUDE_PLUGIN_ROOT}` çözümleme hatası üretir; bu değişken yalnızca eklentiye ait `hooks/hooks.json` girdilerinde genişletilir.
|
||||||
|
|
||||||
|
**`~/.claude/skills` dizinine manuel kuruluysa**, aşağıdakini `~/.claude/settings.json` içine ekleyin:
|
||||||
|
|
||||||
```json
|
```json
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -144,28 +144,11 @@ Use functional patterns over classes when appropriate.
|
|||||||
|
|
||||||
**如果作为插件安装**(推荐):
|
**如果作为插件安装**(推荐):
|
||||||
|
|
||||||
```json
|
不需要在 `~/.claude/settings.json` 中额外添加 hooks。Claude Code v2.1+ 会自动加载插件的 `hooks/hooks.json`,其中已经注册了 `observe.sh`。
|
||||||
{
|
|
||||||
"hooks": {
|
|
||||||
"PreToolUse": [{
|
|
||||||
"matcher": "*",
|
|
||||||
"hooks": [{
|
|
||||||
"type": "command",
|
|
||||||
"command": "${CLAUDE_PLUGIN_ROOT}/skills/continuous-learning-v2/hooks/observe.sh"
|
|
||||||
}]
|
|
||||||
}],
|
|
||||||
"PostToolUse": [{
|
|
||||||
"matcher": "*",
|
|
||||||
"hooks": [{
|
|
||||||
"type": "command",
|
|
||||||
"command": "${CLAUDE_PLUGIN_ROOT}/skills/continuous-learning-v2/hooks/observe.sh"
|
|
||||||
}]
|
|
||||||
}]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
```
|
|
||||||
|
|
||||||
**如果手动安装**到 `~/.claude/skills`:
|
如果您之前把 `observe.sh` 复制到了 `~/.claude/settings.json`,请删除重复的 `PreToolUse` / `PostToolUse` 配置。重复注册会导致重复执行,并触发 `${CLAUDE_PLUGIN_ROOT}` 解析错误,因为该变量只会在插件自己的 `hooks/hooks.json` 中展开。
|
||||||
|
|
||||||
|
**如果手动安装**到 `~/.claude/skills`,请将以下内容添加到 `~/.claude/settings.json`:
|
||||||
|
|
||||||
```json
|
```json
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -92,7 +92,13 @@ source: "session-observation"
|
|||||||
|
|
||||||
### 1. 啟用觀察 Hooks
|
### 1. 啟用觀察 Hooks
|
||||||
|
|
||||||
新增到你的 `~/.claude/settings.json`:
|
**如果作為外掛安裝**(建議):
|
||||||
|
|
||||||
|
不需要在 `~/.claude/settings.json` 中額外加入 hook。Claude Code v2.1+ 會自動載入外掛的 `hooks/hooks.json`,其中已經註冊了 `observe.sh`。
|
||||||
|
|
||||||
|
如果你之前把 `observe.sh` 複製到 `~/.claude/settings.json`,請移除重複的 `PreToolUse` / `PostToolUse` 區塊。重複註冊會造成重複執行,並觸發 `${CLAUDE_PLUGIN_ROOT}` 解析錯誤;這個變數只會在外掛自己的 `hooks/hooks.json` 中展開。
|
||||||
|
|
||||||
|
**如果手動安裝到 `~/.claude/skills`**,新增到你的 `~/.claude/settings.json`:
|
||||||
|
|
||||||
```json
|
```json
|
||||||
{
|
{
|
||||||
@@ -101,14 +107,14 @@ source: "session-observation"
|
|||||||
"matcher": "*",
|
"matcher": "*",
|
||||||
"hooks": [{
|
"hooks": [{
|
||||||
"type": "command",
|
"type": "command",
|
||||||
"command": "~/.claude/skills/continuous-learning-v2/hooks/observe.sh pre"
|
"command": "~/.claude/skills/continuous-learning-v2/hooks/observe.sh"
|
||||||
}]
|
}]
|
||||||
}],
|
}],
|
||||||
"PostToolUse": [{
|
"PostToolUse": [{
|
||||||
"matcher": "*",
|
"matcher": "*",
|
||||||
"hooks": [{
|
"hooks": [{
|
||||||
"type": "command",
|
"type": "command",
|
||||||
"command": "~/.claude/skills/continuous-learning-v2/hooks/observe.sh post"
|
"command": "~/.claude/skills/continuous-learning-v2/hooks/observe.sh"
|
||||||
}]
|
}]
|
||||||
}]
|
}]
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -138,32 +138,13 @@ Each project gets a 12-character hash ID (e.g., `a1b2c3d4e5f6`). A registry file
|
|||||||
|
|
||||||
### 1. Enable Observation Hooks
|
### 1. Enable Observation Hooks
|
||||||
|
|
||||||
Add to your `~/.claude/settings.json`.
|
|
||||||
|
|
||||||
**If installed as a plugin** (recommended):
|
**If installed as a plugin** (recommended):
|
||||||
|
|
||||||
```json
|
No extra `settings.json` hook block is required. Claude Code v2.1+ auto-loads the plugin `hooks/hooks.json`, and `observe.sh` is already registered there.
|
||||||
{
|
|
||||||
"hooks": {
|
|
||||||
"PreToolUse": [{
|
|
||||||
"matcher": "*",
|
|
||||||
"hooks": [{
|
|
||||||
"type": "command",
|
|
||||||
"command": "${CLAUDE_PLUGIN_ROOT}/skills/continuous-learning-v2/hooks/observe.sh"
|
|
||||||
}]
|
|
||||||
}],
|
|
||||||
"PostToolUse": [{
|
|
||||||
"matcher": "*",
|
|
||||||
"hooks": [{
|
|
||||||
"type": "command",
|
|
||||||
"command": "${CLAUDE_PLUGIN_ROOT}/skills/continuous-learning-v2/hooks/observe.sh"
|
|
||||||
}]
|
|
||||||
}]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
```
|
|
||||||
|
|
||||||
**If installed manually** to `~/.claude/skills`:
|
If you previously copied `observe.sh` into `~/.claude/settings.json`, remove that duplicate `PreToolUse` / `PostToolUse` block. Duplicating the plugin hook causes double execution and `${CLAUDE_PLUGIN_ROOT}` resolution errors because that variable is only available inside plugin-managed `hooks/hooks.json` entries.
|
||||||
|
|
||||||
|
**If installed manually** to `~/.claude/skills`, add this to your `~/.claude/settings.json`:
|
||||||
|
|
||||||
```json
|
```json
|
||||||
{
|
{
|
||||||
|
|||||||
64
tests/docs/continuous-learning-v2-docs.test.js
Normal file
64
tests/docs/continuous-learning-v2-docs.test.js
Normal file
@@ -0,0 +1,64 @@
|
|||||||
|
'use strict';
|
||||||
|
|
||||||
|
const assert = require('assert');
|
||||||
|
const fs = require('fs');
|
||||||
|
const path = require('path');
|
||||||
|
|
||||||
|
const repoRoot = path.resolve(__dirname, '..', '..');
|
||||||
|
|
||||||
|
let passed = 0;
|
||||||
|
let failed = 0;
|
||||||
|
|
||||||
|
function test(name, fn) {
|
||||||
|
try {
|
||||||
|
fn();
|
||||||
|
console.log(` ✓ ${name}`);
|
||||||
|
passed++;
|
||||||
|
} catch (error) {
|
||||||
|
console.log(` ✗ ${name}`);
|
||||||
|
console.log(` Error: ${error.message}`);
|
||||||
|
failed++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
const skillDocs = [
|
||||||
|
'skills/continuous-learning-v2/SKILL.md',
|
||||||
|
'docs/zh-CN/skills/continuous-learning-v2/SKILL.md',
|
||||||
|
'docs/tr/skills/continuous-learning-v2/SKILL.md',
|
||||||
|
'docs/ko-KR/skills/continuous-learning-v2/SKILL.md',
|
||||||
|
'docs/ja-JP/skills/continuous-learning-v2/SKILL.md',
|
||||||
|
'docs/zh-TW/skills/continuous-learning-v2/SKILL.md',
|
||||||
|
];
|
||||||
|
|
||||||
|
console.log('\n=== Testing continuous-learning-v2 install docs ===\n');
|
||||||
|
|
||||||
|
for (const relativePath of skillDocs) {
|
||||||
|
const content = fs.readFileSync(path.join(repoRoot, relativePath), 'utf8');
|
||||||
|
|
||||||
|
test(`${relativePath} does not tell plugin users to register observe.sh through CLAUDE_PLUGIN_ROOT`, () => {
|
||||||
|
assert.ok(
|
||||||
|
!content.includes('${CLAUDE_PLUGIN_ROOT}/skills/continuous-learning-v2/hooks/observe.sh'),
|
||||||
|
'Plugin quick start should not tell users to copy observe.sh into settings.json'
|
||||||
|
);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
const englishSkill = fs.readFileSync(
|
||||||
|
path.join(repoRoot, 'skills/continuous-learning-v2/SKILL.md'),
|
||||||
|
'utf8'
|
||||||
|
);
|
||||||
|
|
||||||
|
test('English continuous-learning-v2 skill says plugin installs auto-load hooks/hooks.json', () => {
|
||||||
|
assert.ok(englishSkill.includes('auto-loads the plugin `hooks/hooks.json`'));
|
||||||
|
});
|
||||||
|
|
||||||
|
test('English continuous-learning-v2 skill tells plugin users to remove duplicated settings.json hooks', () => {
|
||||||
|
assert.ok(englishSkill.includes('remove that duplicate `PreToolUse` / `PostToolUse` block'));
|
||||||
|
});
|
||||||
|
|
||||||
|
if (failed > 0) {
|
||||||
|
console.log(`\nFailed: ${failed}`);
|
||||||
|
process.exit(1);
|
||||||
|
}
|
||||||
|
|
||||||
|
console.log(`\nPassed: ${passed}`);
|
||||||
Reference in New Issue
Block a user