claude-nexus 0.8.0 โ 0.10.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.claude-plugin/marketplace.json +1 -1
- package/.claude-plugin/plugin.json +1 -1
- package/README.en.md +149 -0
- package/README.md +67 -40
- package/VERSION +1 -1
- package/package.json +1 -1
- package/skills/nx-setup/SKILL.md +10 -44
- package/skills/nx-sync/SKILL.md +99 -116
- package/skills/nx-init/SKILL.md +0 -194
package/README.en.md
ADDED
|
@@ -0,0 +1,149 @@
|
|
|
1
|
+
# claude-nexus
|
|
2
|
+
|
|
3
|
+
[](https://www.npmjs.com/package/claude-nexus)
|
|
4
|
+
[](https://github.com/moreih29/claude-nexus/blob/main/LICENSE)
|
|
5
|
+
|
|
6
|
+
> ๐ [ํ๊ตญ์ด](README.md)
|
|
7
|
+
|
|
8
|
+
Agent orchestration plugin for Claude Code.
|
|
9
|
+
|
|
10
|
+
## Why
|
|
11
|
+
|
|
12
|
+
Specialized agent teams handle development and research systematically โ director, architect, engineer, QA for development; principal, postdoc, researcher for research. One tag triggers automatic orchestration of complex tasks across the right agents without manual coordination.
|
|
13
|
+
|
|
14
|
+
## Quick Start
|
|
15
|
+
|
|
16
|
+
**1. Install**
|
|
17
|
+
|
|
18
|
+
```bash
|
|
19
|
+
claude plugin marketplace add https://github.com/moreih29/claude-nexus.git
|
|
20
|
+
claude plugin install claude-nexus@nexus
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
**2. Onboard your project**
|
|
24
|
+
|
|
25
|
+
Run `/claude-nexus:nx-sync` โ on first run it scans your project and auto-generates structured knowledge under `.claude/nexus/knowledge/`.
|
|
26
|
+
|
|
27
|
+
**3. Start using**
|
|
28
|
+
|
|
29
|
+
- **Consult**: `[consult] How should we design the auth system?` โ clarify intent and align before executing
|
|
30
|
+
- **Develop**: `[dev] Implement login API` โ agent team handles analysis through implementation
|
|
31
|
+
- **Research**: `[research] React vs Svelte performance comparison` โ independent investigation with synthesis report
|
|
32
|
+
|
|
33
|
+
## Usage
|
|
34
|
+
|
|
35
|
+
Tag your message to route it to the right workflow:
|
|
36
|
+
|
|
37
|
+
| Tag | Action | Example |
|
|
38
|
+
|-----|--------|---------|
|
|
39
|
+
| `[consult]` | Pre-execution consultation | `[consult] Discuss DB migration strategy` |
|
|
40
|
+
| `[dev]` | Development (auto Sub/Team) | `[dev] Refactor payment module` |
|
|
41
|
+
| `[dev!]` | Force team mode | `[dev!] Overhaul auth system` |
|
|
42
|
+
| `[research]` | Research execution | `[research] Compare caching strategies` |
|
|
43
|
+
| `[research!]` | Force research team | `[research!] Investigate competitor tech stacks` |
|
|
44
|
+
|
|
45
|
+
Typical flow: use `[consult]` to discuss and align โ decide โ use `[dev]` or `[research]` to execute.
|
|
46
|
+
|
|
47
|
+
## Agents
|
|
48
|
+
|
|
49
|
+
### Dev Team (4 agents)
|
|
50
|
+
|
|
51
|
+
| Agent | Invocation | Role | Model |
|
|
52
|
+
|-------|-----------|------|-------|
|
|
53
|
+
| **Director** | `claude-nexus:director` | Project direction, scope, and priority decisions | opus |
|
|
54
|
+
| **Architect** | `claude-nexus:architect` | Technical design and architecture review (read-only) | opus |
|
|
55
|
+
| **Engineer** | `claude-nexus:engineer` | Code implementation and debugging | sonnet |
|
|
56
|
+
| **QA** | `claude-nexus:qa` | Verification, testing, and security review | sonnet |
|
|
57
|
+
|
|
58
|
+
### Research Team (3 agents)
|
|
59
|
+
|
|
60
|
+
| Agent | Invocation | Role | Model |
|
|
61
|
+
|-------|-----------|------|-------|
|
|
62
|
+
| **Principal** | `claude-nexus:principal` | Research direction, agenda, and confirmation bias prevention | opus |
|
|
63
|
+
| **Postdoc** | `claude-nexus:postdoc` | Methodology design, evidence evaluation, synthesis documents | opus |
|
|
64
|
+
| **Researcher** | `claude-nexus:researcher` | Web search, independent investigation, source reporting | sonnet |
|
|
65
|
+
|
|
66
|
+
## Skills
|
|
67
|
+
|
|
68
|
+
| Skill | Trigger | Description |
|
|
69
|
+
|-------|---------|-------------|
|
|
70
|
+
| **nx-consult** | `[consult]` | Structured consultation. Clarify requirements โ record decisions (`[d]`) โ recommend execution tag |
|
|
71
|
+
| **nx-dev** | `[dev]` / `[dev!]` | Development execution. Auto-selects solo or team (DirectorโArchitectโEngineerโQA) based on complexity |
|
|
72
|
+
| **nx-research** | `[research]` / `[research!]` | Research execution. Auto-selects solo or team (PrincipalโPostdocโResearcher) based on complexity |
|
|
73
|
+
| **nx-setup** | `/claude-nexus:nx-setup` | Interactive setup. Injects agent/skill/tag configuration into CLAUDE.md |
|
|
74
|
+
| **nx-sync** | `/claude-nexus:nx-sync` | Auto-generates knowledge on first run, then detects and fixes drift with source changes. --reset for re-initialization |
|
|
75
|
+
|
|
76
|
+
## Advanced
|
|
77
|
+
|
|
78
|
+
<details>
|
|
79
|
+
<summary>MCP Tools</summary>
|
|
80
|
+
|
|
81
|
+
Claude-callable tools exposed by the Nexus MCP server.
|
|
82
|
+
|
|
83
|
+
### Core (5 tools)
|
|
84
|
+
|
|
85
|
+
| Tool | Purpose |
|
|
86
|
+
|------|---------|
|
|
87
|
+
| `nx_knowledge_read/write` | Project knowledge management (git-tracked) |
|
|
88
|
+
| `nx_context` | Current session state lookup |
|
|
89
|
+
| `nx_task_list/add/update/clear` | Task management backed by tasks.json |
|
|
90
|
+
| `nx_decision_add` | Record architecture decisions |
|
|
91
|
+
|
|
92
|
+
### Code Intelligence (10 tools)
|
|
93
|
+
|
|
94
|
+
| Tool | Purpose |
|
|
95
|
+
|------|---------|
|
|
96
|
+
| `nx_lsp_hover` | Symbol type information |
|
|
97
|
+
| `nx_lsp_goto_definition` | Jump to definition |
|
|
98
|
+
| `nx_lsp_find_references` | List all references |
|
|
99
|
+
| `nx_lsp_diagnostics` | Compiler and linter errors |
|
|
100
|
+
| `nx_lsp_rename` | Project-wide symbol rename |
|
|
101
|
+
| `nx_lsp_code_actions` | Auto-fix and refactoring suggestions |
|
|
102
|
+
| `nx_lsp_document_symbols` | Symbols in a file |
|
|
103
|
+
| `nx_lsp_workspace_symbols` | Project-wide symbol search |
|
|
104
|
+
| `nx_ast_search` | AST pattern search (tree-sitter) |
|
|
105
|
+
| `nx_ast_replace` | AST pattern replacement (dryRun supported) |
|
|
106
|
+
|
|
107
|
+
LSP auto-detects the project language (e.g., `tsconfig.json` โ TypeScript).
|
|
108
|
+
AST tools require `@ast-grep/napi`: `bun install @ast-grep/napi`
|
|
109
|
+
|
|
110
|
+
</details>
|
|
111
|
+
|
|
112
|
+
<details>
|
|
113
|
+
<summary>Hook</summary>
|
|
114
|
+
|
|
115
|
+
Nexus registers a single Gate module as a Claude Code hook.
|
|
116
|
+
|
|
117
|
+
| Event | Role |
|
|
118
|
+
|-------|------|
|
|
119
|
+
| `UserPromptSubmit` | Prompt preprocessing and context injection |
|
|
120
|
+
| `Stop` | Post-session cleanup |
|
|
121
|
+
|
|
122
|
+
</details>
|
|
123
|
+
|
|
124
|
+
<details>
|
|
125
|
+
<summary>Project Knowledge</summary>
|
|
126
|
+
|
|
127
|
+
Project knowledge is stored under `.claude/nexus/knowledge/` and tracked by git.
|
|
128
|
+
|
|
129
|
+
- `nx-sync` auto-generates knowledge files tailored to your project on first run (structure is not fixed)
|
|
130
|
+
- Nexus configuration is stored in `config.json`
|
|
131
|
+
|
|
132
|
+
</details>
|
|
133
|
+
|
|
134
|
+
<details>
|
|
135
|
+
<summary>Runtime State</summary>
|
|
136
|
+
|
|
137
|
+
Runtime state is stored under `.nexus/` and is excluded from git.
|
|
138
|
+
|
|
139
|
+
```
|
|
140
|
+
.nexus/
|
|
141
|
+
โโโ branches/ โ Per-branch isolation
|
|
142
|
+
โ โโโ {branch}/
|
|
143
|
+
โ โโโ tasks.json โ Task list
|
|
144
|
+
โ โโโ decisions.json โ Architecture decision list
|
|
145
|
+
โ โโโ reports/ โ Research outputs
|
|
146
|
+
โโโ sync-state.json โ Last sync commit
|
|
147
|
+
```
|
|
148
|
+
|
|
149
|
+
</details>
|
package/README.md
CHANGED
|
@@ -3,18 +3,46 @@
|
|
|
3
3
|
[](https://www.npmjs.com/package/claude-nexus)
|
|
4
4
|
[](https://github.com/moreih29/claude-nexus/blob/main/LICENSE)
|
|
5
5
|
|
|
6
|
-
|
|
6
|
+
> ๐ [English](README.en.md)
|
|
7
7
|
|
|
8
|
-
|
|
8
|
+
Claude Code๋ฅผ ์ํ ์์ด์ ํธ ์ค์ผ์คํธ๋ ์ด์
ํ๋ฌ๊ทธ์ธ.
|
|
9
|
+
|
|
10
|
+
## Why
|
|
11
|
+
|
|
12
|
+
๋ณต์กํ ๊ฐ๋ฐ/๋ฆฌ์์น ์์
์ ํผ์ ์ฒ๋ฆฌํ๋ ๋์ , ์ ๋ฌธํ๋ ์์ด์ ํธ ํ์ด ์ญํ ์ ๋๋ ์ฒด๊ณ์ ์ผ๋ก ์ํํฉ๋๋ค. ํ๊ทธ ํ๋๋ก ์๋ด, ๊ฐ๋ฐ, ๋ฆฌ์์น ์ํฌํ๋ก์ฐ๊ฐ ์๋ ์ค์ผ์คํธ๋ ์ด์
๋ฉ๋๋ค.
|
|
13
|
+
|
|
14
|
+
## Quick Start
|
|
15
|
+
|
|
16
|
+
**์ค์น**
|
|
9
17
|
|
|
10
18
|
```bash
|
|
11
19
|
claude plugin marketplace add https://github.com/moreih29/claude-nexus.git
|
|
12
20
|
claude plugin install claude-nexus@nexus
|
|
13
21
|
```
|
|
14
22
|
|
|
15
|
-
|
|
23
|
+
**์จ๋ณด๋ฉ**
|
|
24
|
+
|
|
25
|
+
`/claude-nexus:nx-sync`๋ฅผ ์ฒ์ ์คํํ๋ฉด ํ๋ก์ ํธ๋ฅผ ์ค์บํด `.claude/nexus/knowledge/`์ ์ง์์ ์๋ ์์ฑํฉ๋๋ค.
|
|
26
|
+
|
|
27
|
+
**์ฒซ ์ฌ์ฉ**
|
|
28
|
+
|
|
29
|
+
- **์๋ด**: `[consult] ์ธ์ฆ ์์คํ
์ด๋ป๊ฒ ์ค๊ณํ๋ฉด ์ข์๊น?` โ ์คํ ์ ์๋ ํ์
, ์ค๊ณ ์๋ด
|
|
30
|
+
- **๊ฐ๋ฐ**: `[dev] ๋ก๊ทธ์ธ API ๊ตฌํํด์ค` โ ์์ด์ ํธ ํ์ด ๋ถ์๋ถํฐ ๊ตฌํ๊น์ง ์คํ
|
|
31
|
+
- **๋ฆฌ์์น**: `[research] React vs Svelte ์ฑ๋ฅ ๋น๊ต` โ ๋
๋ฆฝ ์กฐ์ฌ ํ synthesis ๋ฌธ์ ์์ฑ
|
|
32
|
+
|
|
33
|
+
## ์ฌ์ฉ๋ฒ
|
|
34
|
+
|
|
35
|
+
| ํ๊ทธ | ๋์ | ์์ |
|
|
36
|
+
|------|------|------|
|
|
37
|
+
| `[consult]` | ์คํ ์ ์๋ด, ์๋ ํ์
| `[consult] DB ๋ง์ด๊ทธ๋ ์ด์
์ ๋ต ๋
ผ์` |
|
|
38
|
+
| `[dev]` | ๊ฐ๋ฐ ์คํ (Sub/Team ์๋ ํ๋จ) | `[dev] ๊ฒฐ์ ๋ชจ๋ ๋ฆฌํฉํ ๋ง` |
|
|
39
|
+
| `[dev!]` | ํ ๋ชจ๋ ๊ฐ์ | `[dev!] ์ธ์ฆ ์์คํ
์ ๋ฉด ๊ฐํธ` |
|
|
40
|
+
| `[research]` | ๋ฆฌ์์น ์คํ (Sub/Team ์๋ ํ๋จ) | `[research] ์บ์ฑ ์ ๋ต ๋น๊ต ๋ถ์` |
|
|
41
|
+
| `[research!]` | ๋ฆฌ์์น ํ ๊ฐ์ | `[research!] ๊ฒฝ์์ฌ ๊ธฐ์ ์คํ ์กฐ์ฌ` |
|
|
16
42
|
|
|
17
|
-
|
|
43
|
+
ํ๋ฆ: `[consult]`๋ก ๋ฐฉํฅ์ ์ก์ ๋ค `[dev]` ๋๋ `[research]`๋ก ์คํํฉ๋๋ค.
|
|
44
|
+
|
|
45
|
+
## ์์ด์ ํธ
|
|
18
46
|
|
|
19
47
|
### ๊ฐ๋ฐ ํ (4๊ฐ)
|
|
20
48
|
|
|
@@ -35,30 +63,29 @@ claude plugin install claude-nexus@nexus
|
|
|
35
63
|
|
|
36
64
|
## ์คํฌ
|
|
37
65
|
|
|
38
|
-
๋ํํ ์ํฌํ๋ก์ฐ๋ฅผ ํตํด ๋ณต์กํ ์์
์ ๋จ๊ณ๋ณ๋ก ์งํํฉ๋๋ค.
|
|
39
|
-
|
|
40
66
|
| ์คํฌ | ํธ๋ฆฌ๊ฑฐ | ์ค๋ช
|
|
|
41
67
|
|------|--------|------|
|
|
42
|
-
| **nx-consult** | `[consult]`
|
|
43
|
-
| **nx-dev** | `[dev]`
|
|
44
|
-
| **nx-research** | `[research]` / `[research!]` | ๋ฆฌ์์น ํ(
|
|
45
|
-
| **nx-
|
|
46
|
-
| **nx-
|
|
47
|
-
| **nx-sync** | `[sync]` ๋๋ "์ง์ ๋๊ธฐํ" | ์์ค ์ฝ๋์ ์ง์ ๋ฌธ์ ๊ฐ ๋ถ์ผ์น ๊ฐ์ง ๋ฐ ์์ |
|
|
68
|
+
| **nx-consult** | `[consult]` | ๊ตฌ์กฐํ๋ ์๋ด. ์๊ตฌ์ฌํญ ์ ๋ฆฌ โ ๊ฒฐ์ ๊ธฐ๋ก(`[d]`) โ ์คํ ํ๊ทธ ์ถ์ฒ |
|
|
69
|
+
| **nx-dev** | `[dev]` / `[dev!]` | ๊ฐ๋ฐ ์คํ. ๋ณต์ก๋์ ๋ฐ๋ผ ๋จ๋
๋๋ ํ(DirectorโArchitectโEngineerโQA) ์๋ ํธ์ฑ |
|
|
70
|
+
| **nx-research** | `[research]` / `[research!]` | ๋ฆฌ์์น ์คํ. ๋ณต์ก๋์ ๋ฐ๋ผ ๋จ๋
๋๋ ํ(PrincipalโPostdocโResearcher) ์๋ ํธ์ฑ |
|
|
71
|
+
| **nx-setup** | `/claude-nexus:nx-setup` | ๋ํํ ์ค์ . CLAUDE.md์ ์์ด์ ํธ/์คํฌ/ํ๊ทธ ์ค์ ์ฃผ์
|
|
|
72
|
+
| **nx-sync** | `/claude-nexus:nx-sync` | ์ฒซ ์คํ ์ knowledge ์๋ ์์ฑ, ์ดํ ์์ค ๋ณ๊ฒฝ๊ณผ์ ๋ถ์ผ์น ๊ฐ์ง ๋ฐ ์์ . --reset์ผ๋ก ์ด๊ธฐํ ๊ฐ๋ฅ |
|
|
48
73
|
|
|
49
|
-
##
|
|
74
|
+
## ๊ณ ๊ธ ๊ธฐ๋ฅ
|
|
75
|
+
|
|
76
|
+
<details>
|
|
77
|
+
<summary>MCP ๋๊ตฌ</summary>
|
|
50
78
|
|
|
51
79
|
Claude๊ฐ ์ง์ ํธ์ถํ๋ ๋๊ตฌ์
๋๋ค.
|
|
52
80
|
|
|
53
|
-
### Core (
|
|
81
|
+
### Core (5๊ฐ)
|
|
54
82
|
|
|
55
83
|
| ๋๊ตฌ | ์ฉ๋ |
|
|
56
84
|
|------|------|
|
|
57
85
|
| `nx_knowledge_read/write` | ํ๋ก์ ํธ ์ง์ ๊ด๋ฆฌ (git ์ถ์ ) |
|
|
58
86
|
| `nx_context` | ํ์ฌ ์ธ์
์ํ ์กฐํ |
|
|
59
|
-
| `nx_task_list/add/update` | tasks.json ๊ธฐ๋ฐ ํ์คํฌ ๊ด๋ฆฌ |
|
|
87
|
+
| `nx_task_list/add/update/clear` | tasks.json ๊ธฐ๋ฐ ํ์คํฌ ๊ด๋ฆฌ |
|
|
60
88
|
| `nx_decision_add` | ์ํคํ
์ฒ ๊ฒฐ์ ๊ธฐ๋ก |
|
|
61
|
-
| `nx_plan_archive` | ์๋ฃ๋ ๊ณํ ์์นด์ด๋ธ |
|
|
62
89
|
|
|
63
90
|
### Code Intelligence (10๊ฐ)
|
|
64
91
|
|
|
@@ -78,43 +105,43 @@ Claude๊ฐ ์ง์ ํธ์ถํ๋ ๋๊ตฌ์
๋๋ค.
|
|
|
78
105
|
LSP๋ ํ๋ก์ ํธ ์ธ์ด๋ฅผ ์๋ ๊ฐ์งํฉ๋๋ค (tsconfig.json โ TypeScript ๋ฑ).
|
|
79
106
|
AST๋ `@ast-grep/napi` ํ์: `bun install @ast-grep/napi`
|
|
80
107
|
|
|
81
|
-
|
|
108
|
+
</details>
|
|
109
|
+
|
|
110
|
+
<details>
|
|
111
|
+
<summary>Hook</summary>
|
|
82
112
|
|
|
83
|
-
Gate ๋จ์ผ ๋ชจ๋๋ก
|
|
113
|
+
Gate ๋จ์ผ ๋ชจ๋๋ก ๋์ํฉ๋๋ค.
|
|
84
114
|
|
|
85
115
|
| ์ด๋ฒคํธ | ์ญํ |
|
|
86
116
|
|--------|------|
|
|
87
117
|
| `UserPromptSubmit` | ํ๋กฌํํธ ์ ์ฒ๋ฆฌ ๋ฐ ์ปจํ
์คํธ ์ฃผ์
|
|
|
88
118
|
| `Stop` | ์ธ์
์ข
๋ฃ ํ์ฒ๋ฆฌ |
|
|
89
119
|
|
|
90
|
-
|
|
120
|
+
</details>
|
|
91
121
|
|
|
92
|
-
|
|
122
|
+
<details>
|
|
123
|
+
<summary>ํ๋ก์ ํธ ์ง์</summary>
|
|
93
124
|
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
โ โโโ agents-catalog.md
|
|
99
|
-
โ โโโ conventions.md
|
|
100
|
-
โ โโโ workflows.md
|
|
101
|
-
โ โโโ hook-modules.md
|
|
102
|
-
โ โโโ mcp-tools.md
|
|
103
|
-
โ โโโ dev-workflow.md
|
|
104
|
-
โ โโโ decisions/ โ ์ํคํ
์ฒ ๊ฒฐ์ ๊ธฐ๋ก
|
|
105
|
-
โโโ config.json โ Nexus ์ค์
|
|
106
|
-
โโโ plans/ โ ๋ธ๋์น๋ณ ๊ตฌํ ๊ณํ
|
|
107
|
-
โโโ feature--*/
|
|
108
|
-
โโโ plan.md
|
|
109
|
-
```
|
|
125
|
+
`.claude/nexus/knowledge/`์ ํ๋ก์ ํธ ์ง์์ ์ ์ฅํฉ๋๋ค. git์ผ๋ก ์ถ์ ๋ฉ๋๋ค.
|
|
126
|
+
|
|
127
|
+
- `nx-sync` ์ฒซ ์คํ ์ ํ๋ก์ ํธ์ ๋ง๋ knowledge ํ์ผ์ ์๋ ์์ฑํฉ๋๋ค (๊ตฌ์กฐ ๊ณ ์ ์๋)
|
|
128
|
+
- `config.json`์ Nexus ์ค์ ์ด ์ ์ฅ๋ฉ๋๋ค
|
|
110
129
|
|
|
111
|
-
|
|
130
|
+
</details>
|
|
131
|
+
|
|
132
|
+
<details>
|
|
133
|
+
<summary>๋ฐํ์ ์ํ</summary>
|
|
112
134
|
|
|
113
135
|
`.nexus/` ๋๋ ํ ๋ฆฌ์ ๋ฐํ์ ์ํ๊ฐ ์ ์ฅ๋ฉ๋๋ค. gitignore ๋์์
๋๋ค.
|
|
114
136
|
|
|
115
137
|
```
|
|
116
138
|
.nexus/
|
|
117
|
-
โโโ
|
|
118
|
-
|
|
119
|
-
|
|
139
|
+
โโโ branches/ โ ๋ธ๋์น๋ณ ๊ฒฉ๋ฆฌ
|
|
140
|
+
โ โโโ {branch}/
|
|
141
|
+
โ โโโ tasks.json โ ํ์คํฌ ๋ชฉ๋ก
|
|
142
|
+
โ โโโ decisions.json โ ์ํคํ
์ฒ ๊ฒฐ์ ๋ชฉ๋ก
|
|
143
|
+
โ โโโ reports/ โ ๋ฆฌ์์น ์ฐ์ถ๋ฌผ
|
|
144
|
+
โโโ sync-state.json โ ๋ง์ง๋ง sync ์ปค๋ฐ
|
|
120
145
|
```
|
|
146
|
+
|
|
147
|
+
</details>
|
package/VERSION
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
0.
|
|
1
|
+
0.10.0
|
package/package.json
CHANGED
package/skills/nx-setup/SKILL.md
CHANGED
|
@@ -88,55 +88,21 @@ chmod +x ~/.claude/hooks/nexus-statusline.sh
|
|
|
88
88
|
|
|
89
89
|
### Step 3: CLAUDE.md Nexus Section
|
|
90
90
|
|
|
91
|
-
|
|
91
|
+
Write the Nexus section in CLAUDE.md using `<!-- NEXUS:START -->` / `<!-- NEXUS:END -->` markers.
|
|
92
92
|
|
|
93
93
|
If a Nexus section already exists, replace the content between markers. Content outside the markers is preserved unchanged.
|
|
94
94
|
|
|
95
95
|
Write location depends on scope selected in Step 1.
|
|
96
96
|
|
|
97
|
-
Section content:
|
|
97
|
+
**Section content is NOT hardcoded here.** Read it dynamically at runtime:
|
|
98
98
|
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
99
|
+
1. **Read `~/.claude/CLAUDE.md`** โ extract content between `<!-- NEXUS:START -->` and `<!-- NEXUS:END -->` markers
|
|
100
|
+
2. **If not found (first install):** Read the plugin's own CLAUDE.md from the cache directory:
|
|
101
|
+
- Glob `~/.claude/plugins/cache/nexus/claude-nexus/*/CLAUDE.md` โ pick the latest version
|
|
102
|
+
- Extract the `<!-- NEXUS:START -->` to `<!-- NEXUS:END -->` section
|
|
103
|
+
3. **If neither found:** Error โ "Nexus ์น์
ํ
ํ๋ฆฟ์ ์ฐพ์ ์ ์์ต๋๋ค. ํ๋ฌ๊ทธ์ธ์ด ์ฌ๋ฐ๋ฅด๊ฒ ์ค์น๋์๋์ง ํ์ธํ์ธ์."
|
|
102
104
|
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
### Agent Routing
|
|
106
|
-
|
|
107
|
-
๋ณ๋ ฌ ์์
์ด๋ ๋ค๋ฅธ ๊ด์ ์ด ํ์ํ ๋ ์์ด์ ํธ๋ฅผ ํ์ฉํ๋ผ.
|
|
108
|
-
|
|
109
|
-
| Task | Agent |
|
|
110
|
-
|------|-------|
|
|
111
|
-
| Code implementation, edits | builder |
|
|
112
|
-
| Architecture, design decisions, code review | architect |
|
|
113
|
-
| Debugging, tracing issues | debugger |
|
|
114
|
-
| Deep analysis, research | analyst |
|
|
115
|
-
| Validation, testing, security review | guard |
|
|
116
|
-
|
|
117
|
-
๋จ์ ์์
(ํ์ผ 1-2๊ฐ ์ฝ๊ธฐ/์์ )์ ์ง์ ์ฒ๋ฆฌํ๋ผ.
|
|
118
|
-
|
|
119
|
-
### Skills
|
|
120
|
-
|
|
121
|
-
| Skill | Trigger | Purpose |
|
|
122
|
-
|-------|---------|---------|
|
|
123
|
-
| nx-consult | [consult] | Interactive discovery โ understand intent before executing |
|
|
124
|
-
| nx-team | [team] | Team-driven planning with tasks.json, nonstop execution |
|
|
125
|
-
| nx-sub | [sub] | Lightweight execution โ Lead analyzes directly, spawns Builder subagents |
|
|
126
|
-
| nx-init | /claude-nexus:nx-init | Onboard project โ generate knowledge from existing docs |
|
|
127
|
-
| nx-setup | /claude-nexus:nx-setup | Configure Nexus interactively |
|
|
128
|
-
| nx-sync | /claude-nexus:nx-sync | Sync knowledge docs with source files |
|
|
129
|
-
|
|
130
|
-
### Tags
|
|
131
|
-
|
|
132
|
-
| Tag | Purpose |
|
|
133
|
-
|-----|---------|
|
|
134
|
-
| [consult] | ์๋ด โ ์คํ ์ ์๋ ํ์
|
|
|
135
|
-
| [team] | team mode โ ๊ณํ ์์ฑ ๋ฐ nonstop ์คํ |
|
|
136
|
-
| [sub] | ๊ฒฝ๋ ์คํ โ Lead ์ง์ ๋ถ์ + Builder direct spawn |
|
|
137
|
-
| [d] | ๊ฒฐ์ ๊ธฐ๋ก (nx_decision_add ํธ์ถ) |
|
|
138
|
-
<!-- NEXUS:END -->
|
|
139
|
-
```
|
|
105
|
+
Write the extracted section to the target CLAUDE.md (respecting scope from Step 1).
|
|
140
106
|
|
|
141
107
|
### Step 4: OMC Conflict Detection
|
|
142
108
|
|
|
@@ -245,7 +211,7 @@ AskUserQuestion({
|
|
|
245
211
|
multiSelect: false,
|
|
246
212
|
options: [
|
|
247
213
|
{ label: "Yes (Recommended)", description: "๊ธฐ์กด ๋ฌธ์(README, CLAUDE.md ๋ฑ)๋ฅผ ๋ถ์ํด .claude/nexus/knowledge/ ์์ฑ" },
|
|
248
|
-
{ label: "Skip", description: "๋์ค์ /claude-nexus:nx-
|
|
214
|
+
{ label: "Skip", description: "๋์ค์ /claude-nexus:nx-sync์ผ๋ก ์ง์ ์คํ" }
|
|
249
215
|
]
|
|
250
216
|
}]
|
|
251
217
|
})
|
|
@@ -259,7 +225,7 @@ Skip ์: ๋ค์ ๋จ๊ณ๋ก.
|
|
|
259
225
|
์ค์ ์๋ฃ ๋ฉ์์ง ์ถ๋ ฅ:
|
|
260
226
|
- ์ ์ฉ๋ ์ค์ ์์ฝ
|
|
261
227
|
- ์ฌ์ฉ ๊ฐ๋ฅํ ์คํฌ/์์ด์ ํธ ๊ฐ๋ต ์๊ฐ
|
|
262
|
-
- "์์ํ๋ ค๋ฉด ์์
์ ๋งํ๊ฑฐ๋ [consult]๋ก ์๋ด, [
|
|
228
|
+
- "์์ํ๋ ค๋ฉด ์์
์ ๋งํ๊ฑฐ๋ [consult]๋ก ์๋ด, [dev]๋ก ๊ฐ๋ฐ, [research]๋ก ๋ฆฌ์์นํ์ธ์"
|
|
263
229
|
|
|
264
230
|
## Key Principles
|
|
265
231
|
|
package/skills/nx-sync/SKILL.md
CHANGED
|
@@ -1,127 +1,109 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: nx-sync
|
|
3
|
-
description:
|
|
3
|
+
description: Sync knowledge documents with the current state of the codebase. On first run, scans and generates knowledge from scratch.
|
|
4
4
|
triggers: ["sync", "sync knowledge", "์ง์ ๋๊ธฐํ", "๋ฌธ์ ๋๊ธฐํ"]
|
|
5
5
|
---
|
|
6
6
|
|
|
7
7
|
# Sync
|
|
8
8
|
|
|
9
|
-
|
|
9
|
+
knowledge ๋ฌธ์๋ฅผ ์ฝ๋๋ฒ ์ด์ค ํํฉ๊ณผ ๋๊ธฐํํ๋ค. ์ฒ์ ์คํ ์ ํ๋ก์ ํธ๋ฅผ ์ค์บํ์ฌ knowledge๋ฅผ ์๋ ์์ฑํ๋ค.
|
|
10
10
|
|
|
11
|
-
##
|
|
11
|
+
## Trigger
|
|
12
12
|
|
|
13
|
-
|
|
13
|
+
- `/claude-nexus:nx-sync` โ knowledge ๋๊ธฐํ
|
|
14
|
+
- `/claude-nexus:nx-sync --reset` โ knowledge ์ด๊ธฐํ ํ ์ฌ์์ฑ
|
|
14
15
|
|
|
15
|
-
##
|
|
16
|
+
## Modes
|
|
16
17
|
|
|
17
|
-
|
|
18
|
-
- `.claude/nexus/knowledge/`์ knowledge ํ์ผ์ด 2๊ฐ ์ด์ ์กด์ฌํด์ผ ํ๋ค.
|
|
18
|
+
### First Run (knowledge 0๊ฐ)
|
|
19
19
|
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
### Phase 0: Context Detection
|
|
20
|
+
ํ๋ก์ ํธ ์ ์ฒด ์ค์บ โ knowledge ์๋ ์์ฑ + CLAUDE.md ์ฌ๋ฆผํ. ์ฌ์ฉ์ ์น์ธ ์์ด ์๋ ์งํํ๋ค.
|
|
23
21
|
|
|
24
|
-
knowledge
|
|
22
|
+
### Sync (knowledge ์กด์ฌ)
|
|
25
23
|
|
|
26
|
-
|
|
27
|
-
knowledge_files = Glob(".claude/nexus/knowledge/*.md")
|
|
28
|
-
# decisions/ ํ์๋ ADR์ด๋ฏ๋ก sync ๋์์์ ์ ์ธ
|
|
29
|
-
|
|
30
|
-
IF knowledge_files ๊ฐ์ < 2:
|
|
31
|
-
โ ์ฌ์ฉ์์๊ฒ ์๋ด:
|
|
32
|
-
"knowledge ํ์ผ์ด ๋ถ์กฑํฉ๋๋ค. `/claude-nexus:nx-init`์ ์คํํ๋ฉด
|
|
33
|
-
ํ๋ก์ ํธ ๋ถ์์ ๊ธฐ๋ฐ์ผ๋ก knowledge๊ฐ ์๋ ์์ฑ๋ฉ๋๋ค."
|
|
34
|
-
โ ์ข
๋ฃ
|
|
35
|
-
ELSE:
|
|
36
|
-
โ DIFF SCAN ๋ชจ๋๋ก Phase 1 ์งํ
|
|
37
|
-
```
|
|
24
|
+
git diff ๊ธฐ๋ฐ์ผ๋ก drift๋ฅผ ๊ฐ์ง โ ๋ฆฌํฌํธ ์ถ๋ ฅ โ ์ฌ์ฉ์ ์น์ธ ํ ์์ .
|
|
38
25
|
|
|
39
|
-
###
|
|
26
|
+
### Reset (`--reset` ํ๋๊ทธ)
|
|
40
27
|
|
|
41
|
-
|
|
28
|
+
๊ธฐ์กด knowledge๋ฅผ ์ญ์ โ First Run์ผ๋ก ์ฌ์ง์
. ์ฌ์ฉ์ ํ์ธ ํ ์งํ.
|
|
42
29
|
|
|
43
|
-
|
|
44
|
-
IF .nexus/sync-state.json ์กด์ฌ:
|
|
45
|
-
base = sync-state.json์ lastSyncCommit
|
|
46
|
-
git rev-parse --verify {base} ๋ก ์ ํจ์ฑ ํ์ธ
|
|
47
|
-
์ ํจํ์ง ์์ผ๋ฉด โ Step 1-1 fallback
|
|
30
|
+
---
|
|
48
31
|
|
|
49
|
-
|
|
50
|
-
base = HEAD~20 # sync-state ์์ ๋์ ์์ ํ ๊ธฐ๋ณธ๊ฐ
|
|
51
|
-
```
|
|
32
|
+
## Process
|
|
52
33
|
|
|
53
|
-
|
|
34
|
+
### Phase 0: Mode Detection
|
|
54
35
|
|
|
55
|
-
```bash
|
|
56
|
-
git diff --name-status {base}..HEAD
|
|
57
36
|
```
|
|
37
|
+
IF --reset ํ๋๊ทธ:
|
|
38
|
+
AskUserQuestion({
|
|
39
|
+
questions: [{
|
|
40
|
+
question: "๊ธฐ์กด knowledge ํ์ผ์ด ๋ชจ๋ ์ญ์ ๋ฉ๋๋ค. ์งํํ ๊น์?",
|
|
41
|
+
options: [
|
|
42
|
+
{ label: "Yes", description: "๊ธฐ์กด knowledge ์ญ์ ํ ์ฒ์๋ถํฐ ์ฌ์์ฑ" },
|
|
43
|
+
{ label: "No", description: "์ทจ์" }
|
|
44
|
+
]
|
|
45
|
+
}]
|
|
46
|
+
})
|
|
47
|
+
No ์ ํ ์ โ ์ข
๋ฃ
|
|
48
|
+
Yes ์ ํ ์ โ ๊ธฐ์กด knowledge ํ์ผ ์ ๋ถ ์ญ์ โ First Run ์ง์
|
|
49
|
+
|
|
50
|
+
ELSE IF .claude/nexus/knowledge/ ์ .md ํ์ผ 0๊ฐ:
|
|
51
|
+
โ First Run ์ง์
|
|
58
52
|
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
- `D` (Deleted) โ ์ญ์ ๋ ํ์ผ
|
|
63
|
-
- `R` (Renamed) โ ์ด๋ฆ ๋ณ๊ฒฝ
|
|
64
|
-
|
|
65
|
-
#### Step 1-3: ์ํฅ๋ ๋ถ๋ฅ
|
|
53
|
+
ELSE:
|
|
54
|
+
โ Sync ์ง์
|
|
55
|
+
```
|
|
66
56
|
|
|
67
|
-
|
|
57
|
+
### Phase 1: Scan
|
|
68
58
|
|
|
69
|
-
|
|
70
|
-
|--------|------|------|
|
|
71
|
-
| **High** | ์ ๋๋ ํ ๋ฆฌ/๋ชจ๋ ์์ฑ, ์ค์ ํ์ผ ๋ณ๊ฒฝ, ์์กด์ฑ ๋ณ๊ฒฝ, ์ง์
์ ๋ณ๊ฒฝ | ์ `src/auth/` ๋๋ ํ ๋ฆฌ, `package.json` ๋ณ๊ฒฝ, `main.ts` ๋ณ๊ฒฝ |
|
|
72
|
-
| **Medium** | ์ฃผ์ ์์ค ํ์ผ์ export/์ธํฐํ์ด์ค/ํ์
๋ณ๊ฒฝ, ํ์ผ ์ญ์ /์ด๋ฆ ๋ณ๊ฒฝ | ํจ์ ์๊ทธ๋์ฒ ๋ณ๊ฒฝ, ํ์ผ๋ช
๋ณ๊ฒฝ |
|
|
73
|
-
| **Low** | ๋ด๋ถ ๊ตฌํ๋ง ๋ณ๊ฒฝ, ํ
์คํธ ํ์ผ๋ง ๋ณ๊ฒฝ, ์คํ์ผ/ํฌ๋งท ๋ณ๊ฒฝ | ํจ์ ๋ด๋ถ ๋ก์ง, `*.test.ts` |
|
|
59
|
+
#### First Run ๋ชจ๋
|
|
74
60
|
|
|
75
|
-
|
|
76
|
-
1. ํ์ผ ๊ฒฝ๋ก๋ก 1์ฐจ ๋ถ๋ฅ (์ค์ ํ์ผ, ์์ค ๋๋ ํ ๋ฆฌ, ํ
์คํธ ๋ฑ)
|
|
77
|
-
2. ๊ฒฝ๋ก๋ง์ผ๋ก ํ๋จ์ด ์ด๋ ค์ฐ๋ฉด `git diff {base}..HEAD -- {file}` ๋ก ๋ณ๊ฒฝ ๋ด์ฉ์ ์ฝ์ด์ ํ๋จ
|
|
78
|
-
3. **์์ฌ์ค๋ฌ์ฐ๋ฉด Medium ์ด์์ผ๋ก ๋ถ๋ฅ** (๋์น๋ ๊ฒ๋ณด๋ค ๊ณผํ์ด ๋ซ๋ค)
|
|
61
|
+
๋ค์ ํญ๋ชฉ์ ์์งํ๋ค:
|
|
79
62
|
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
โ ์ข
๋ฃ
|
|
84
|
-
```
|
|
63
|
+
- **ํ๋ก์ ํธ ๊ตฌ์กฐ**: ์ต์์ ๋๋ ํ ๋ฆฌ, ์ธ์ด/ํ๋ ์์ํฌ(package.json, Cargo.toml, pyproject.toml, go.mod ๋ฑ), ๋น๋/ํ
์คํธ ์์คํ
|
|
64
|
+
- **๊ธฐ์กด ๋ฌธ์**: CLAUDE.md, README.md, docs/, .cursorrules, .github/copilot-instructions.md ๋ฑ ์กด์ฌํ๋ ๋ชจ๋ ๋ฌธ์
|
|
65
|
+
- **git ์ปจํ
์คํธ**: ์ต๊ทผ ์ปค๋ฐ ๋ฉ์์ง, ๋ธ๋์น ๊ตฌ์กฐ
|
|
85
66
|
|
|
86
|
-
|
|
67
|
+
**์ค์: ๊ธฐ์กด ๋ฌธ์์ ๊ตฌ์กฐ๋ ํ์ผ๋ช
์ ๋ฐ๋ฅด์ง ์๋๋ค. ์์งํ ์ ๋ณด๋ฅผ ๋ฐํ์ผ๋ก ์ด๋ค knowledge ํ์ผ์ด ํ์ํ์ง, ์ด๋ค ๊ตฌ์กฐ์ ๊ณ์ธต์ด ์ ํฉํ์ง LLM์ด ๋
์์ ์ผ๋ก ํ๋จํ๋ค. ๊ธฐ์กด ๋ฌธ์๋ ์ ๋ณด ์์ค์ผ ๋ฟ์ด๋ค.**
|
|
87
68
|
|
|
88
|
-
|
|
69
|
+
#### Sync ๋ชจ๋
|
|
89
70
|
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
3. **์์ค ์ฐธ์กฐ** โ ํ์ผ ๋ด์ ์ธ๊ธ๋ ์์ค ํ์ผ ๊ฒฝ๋ก (์ฝ๋ ๋ธ๋ก, ์ธ๋ผ์ธ ์ฝ๋ ๋ฑ)
|
|
71
|
+
- `.nexus/sync-state.json`์ด ์์ผ๋ฉด `lastSyncCommit`์ base๋ก ์ฌ์ฉ. ์์ผ๋ฉด `HEAD~20` ์ฌ์ฉ.
|
|
72
|
+
- `git diff --name-status {base}..HEAD` ๋ก ๋ณ๊ฒฝ ํ์ผ ๋ชฉ๋ก ์์ง
|
|
73
|
+
- ๋ณ๊ฒฝ ํ์ผ์ ์ํฅ๋๋ก ๋ถ๋ฅ (High/Medium๋ง ํ์ ์ฒ๋ฆฌ, Low ์คํต):
|
|
94
74
|
|
|
95
|
-
|
|
75
|
+
| ์ํฅ๋ | ๊ธฐ์ค |
|
|
76
|
+
|--------|------|
|
|
77
|
+
| **High** | ์ ๋๋ ํ ๋ฆฌ/๋ชจ๋, ์ค์ ํ์ผ, ์์กด์ฑ, ์ง์
์ ๋ณ๊ฒฝ |
|
|
78
|
+
| **Medium** | export/์ธํฐํ์ด์ค/ํ์
๋ณ๊ฒฝ, ํ์ผ ์ญ์ /์ด๋ฆ ๋ณ๊ฒฝ |
|
|
79
|
+
| **Low** | ๋ด๋ถ ๊ตฌํ๋ง, ํ
์คํธ ํ์ผ๋ง, ์คํ์ผ/ํฌ๋งท ๋ณ๊ฒฝ |
|
|
96
80
|
|
|
97
|
-
|
|
98
|
-
```
|
|
99
|
-
architecture.md โ tags: [architecture, modules], ์ฐธ์กฐ ๊ฒฝ๋ก: [src/hooks/, bridge/, agents/]
|
|
100
|
-
conventions.md โ tags: [conventions, style], ์ฐธ์กฐ ๊ฒฝ๋ก: ์์ (๊ท์น ๊ธฐ์ )
|
|
101
|
-
```
|
|
81
|
+
ํ๋จ์ด ์ ๋งคํ๋ฉด Medium ์ด์์ผ๋ก ๋ถ๋ฅํ๋ค. ๋ณ๊ฒฝ ํ์ผ์ด ์์ผ๋ฉด ์๋ด ํ ์ข
๋ฃ.
|
|
102
82
|
|
|
103
|
-
### Phase
|
|
83
|
+
### Phase 2: Analyze & Generate
|
|
104
84
|
|
|
105
|
-
|
|
85
|
+
#### First Run ๋ชจ๋
|
|
106
86
|
|
|
107
|
-
|
|
87
|
+
- ์ค์บ ๊ฒฐ๊ณผ๋ฅผ ๋ถ์ํ์ฌ knowledge ํ์ผ์ ์์ฑํ๋ค.
|
|
88
|
+
- ํ์ผ๋ช
, ๊ตฌ์กฐ, ๊ณ์ธต์ ํ๋ก์ ํธ ํน์ฑ์ ๋ง๊ฒ ์์ ๊ฒฐ์ . ํ๋์ฝ๋ฉ๋ ํ
ํ๋ฆฟ ์์.
|
|
89
|
+
- CLAUDE.md ์ฌ๋ฆผํ: ํต์ฌ ์ง์์ฌํญ๋ง ์ ์ง, ๋๋จธ์ง๋ knowledge๋ก ์ด๋. ์๋ณธ์ `.claude/nexus/knowledge/` ์ ๋ฐฑ์
. ์ฌ์ฉ์ ์น์ธ์ ๋ถํ์ํ์ง๋ง "CLAUDE.md๋ฅผ ์ฌ๋ฆผํํฉ๋๋ค" ์๋ด๋ฅผ ์ถ๋ ฅํ๋ค.
|
|
90
|
+
- `nx_knowledge_write`๋ก ํ์ผ ์์ฑ.
|
|
108
91
|
|
|
109
|
-
|
|
110
|
-
1. knowledge ํ์ผ๋ค์ **์์ค ์ฐธ์กฐ**์ ํด๋น ๊ฒฝ๋ก๊ฐ ํฌํจ๋์ด ์๋์ง ํ์ธ
|
|
111
|
-
2. knowledge ํ์ผ๋ค์ **ํ๊ทธ/ํค๋**๊ฐ ํด๋น ๋ณ๊ฒฝ ์์ญ๊ณผ ๊ด๋ จ๋๋์ง ํ๋จ
|
|
112
|
-
3. ๋งค์นญ๋ knowledge ํ์ผ์ ํด๋น ์น์
์ ์ฝ์ด **์ค์ ๋ด์ฉ์ด ๋ณ๊ฒฝ ์ฌํญ๊ณผ ์ผ์นํ๋์ง** ํ์ธ
|
|
92
|
+
#### Sync ๋ชจ๋
|
|
113
93
|
|
|
114
|
-
|
|
94
|
+
- `.claude/nexus/knowledge/` ํ์ ๋ชจ๋ .md ํ์ผ์ ์ฝ๋๋ค (ํ์ ๋๋ ํ ๋ฆฌ ํฌํจ, ์ ์ธ ๊ท์น ์์).
|
|
95
|
+
- ๊ฐ ํ์ผ์์ ํ๊ทธ(`<!-- tags: ... -->`), ํค๋ ๊ตฌ์กฐ, ์์ค ์ฐธ์กฐ ๊ฒฝ๋ก๋ฅผ ์ถ์ถํ์ฌ ์ปค๋ฒ๋ฆฌ์ง ์์ญ์ ํ์
ํ๋ค.
|
|
96
|
+
- Phase 1์ High/Medium ๋ณ๊ฒฝ ํ์ผ๊ณผ knowledge ์ปค๋ฒ๋ฆฌ์ง๋ฅผ ๋์กฐํ์ฌ ๋ถ์ผ์น๋ฅผ ํ์ ํ๋ค:
|
|
115
97
|
|
|
116
|
-
| ์ ํ | ์กฐ๊ฑด |
|
|
117
|
-
|
|
118
|
-
| **STALE** | knowledge๊ฐ ๊ธฐ์ ํ๋ ๋ด์ฉ์ด ์ฝ๋์์ ๋ณ๊ฒฝ๋จ |
|
|
119
|
-
| **MISSING** | ์ ๋ชจ๋/๊ตฌ์กฐ๊ฐ ์ถ๊ฐ๋๋๋ฐ ์ด๋ค knowledge์๋
|
|
120
|
-
| **ORPHAN** | knowledge๊ฐ ๊ธฐ์ ํ๋ ๋์์ด ์ฝ๋์์ ์ญ์ ๋จ |
|
|
98
|
+
| ์ ํ | ์กฐ๊ฑด |
|
|
99
|
+
|------|------|
|
|
100
|
+
| **STALE** | knowledge๊ฐ ๊ธฐ์ ํ๋ ๋ด์ฉ์ด ์ฝ๋์์ ๋ณ๊ฒฝ๋จ |
|
|
101
|
+
| **MISSING** | ์ ๋ชจ๋/๊ตฌ์กฐ๊ฐ ์ถ๊ฐ๋๋๋ฐ ์ด๋ค knowledge์๋ ๋ฏธ๊ธฐ๋ก |
|
|
102
|
+
| **ORPHAN** | knowledge๊ฐ ๊ธฐ์ ํ๋ ๋์์ด ์ฝ๋์์ ์ญ์ ๋จ |
|
|
121
103
|
|
|
122
|
-
|
|
104
|
+
ํ์ ์ด ์์ผ๋ฉด `[UNCERTAIN]` ํ์. ์ถ์ธก์ผ๋ก ํ์ ํ์ง ์๋๋ค.
|
|
123
105
|
|
|
124
|
-
|
|
106
|
+
๋ฆฌํฌํธ ํ์:
|
|
125
107
|
|
|
126
108
|
```
|
|
127
109
|
## Sync Report
|
|
@@ -133,46 +115,42 @@ Phase 1์ High/Medium ๋ณ๊ฒฝ ํ์ผ๊ณผ Phase 2์ knowledge ์ปค๋ฒ๋ฆฌ์ง๋ฅผ ๋
|
|
|
133
115
|
### Issues Found: N
|
|
134
116
|
|
|
135
117
|
#### STALE (X)
|
|
136
|
-
-
|
|
137
|
-
- conventions.md ยง"๋ค์ด๋ฐ" โ ํจ์ ์ ๋์ฌ๊ฐ createโmake๋ก ๋ณ๊ฒฝ๋จ
|
|
118
|
+
- {ํ์ผ๋ช
} ยง"{์น์
}" โ {์ด์ }
|
|
138
119
|
|
|
139
120
|
#### MISSING (X)
|
|
140
|
-
-
|
|
121
|
+
- {๋์} โ {์ด์ }
|
|
141
122
|
|
|
142
123
|
#### ORPHAN (X)
|
|
143
|
-
-
|
|
124
|
+
- {ํ์ผ๋ช
} ยง"{์น์
}" โ {์ด์ }
|
|
144
125
|
|
|
145
126
|
#### UNCERTAIN (X)
|
|
146
|
-
-
|
|
127
|
+
- {ํ์ผ๋ช
} ยง"{์น์
}" โ {์ด์ }
|
|
147
128
|
|
|
148
129
|
### No Issues
|
|
149
|
-
-
|
|
130
|
+
- {ํ์ผ๋ช
} โ ๊ด๋ จ ๋ณ๊ฒฝ ์์
|
|
150
131
|
```
|
|
151
132
|
|
|
152
|
-
### Phase
|
|
153
|
-
|
|
154
|
-
๋ฆฌํฌํธ๋ฅผ ์ ์ํ ๋ค: **"์ด ๋ถ์ผ์น๋ฅผ ์์ ํ ๊น์?"**
|
|
133
|
+
### Phase 3: Apply
|
|
155
134
|
|
|
156
|
-
|
|
135
|
+
#### First Run ๋ชจ๋
|
|
157
136
|
|
|
158
|
-
|
|
137
|
+
์๋ ์ ์ฉ (Phase 2์์ ์ด๋ฏธ ์์ฑ๋จ). ์๋ฃ ์๋ด ์ถ๋ ฅ: "์ด๊ธฐ knowledge N๊ฐ ํ์ผ ์์ฑ, CLAUDE.md ์ฌ๋ฆผํ ์๋ฃ"
|
|
159
138
|
|
|
160
|
-
|
|
161
|
-
2. **๊ธฐ์กด ์คํ์ผ ์ ์ง** โ ํด๋น knowledge ํ์ผ์ ๊ธฐ์กด ํ์(ํ
์ด๋ธ, ๋ฆฌ์คํธ, ์ฝ๋ ๋ธ๋ก ๋ฑ)์ ๋ฐ๋ฅธ๋ค
|
|
162
|
-
3. **์์ค์ ์๋ ์ ๋ณด๋ง** โ ์ฝ๋์์ ํ์ธํ ์ ์๋ ๋ด์ฉ์ ์ถ์ธกํด์ ์ฐ์ง ์๋๋ค
|
|
163
|
-
4. **UNCERTAIN์ ๊ฑด๋๋ฆฌ์ง ์๋๋ค** โ ๋ฆฌํฌํธ์๋ง ๋จ๊ธฐ๊ณ ์ฌ์ฉ์๊ฐ ์ง์ ํ๋จํ๋๋ก ํ๋ค
|
|
139
|
+
#### Sync ๋ชจ๋
|
|
164
140
|
|
|
165
|
-
|
|
141
|
+
๋ฆฌํฌํธ ์ถ๋ ฅ ํ ์๋์ผ๋ก ์์ ์ ์ ์ฉํ๋ค.
|
|
166
142
|
|
|
167
|
-
|
|
168
|
-
1.
|
|
169
|
-
2.
|
|
170
|
-
3.
|
|
171
|
-
4.
|
|
143
|
+
์์ ๊ท์น:
|
|
144
|
+
1. **surgical edit๋ง** โ ๋ณ๊ฒฝ๋ ๋ถ๋ถ๋ง ์์ . ์ ์ฒด ์น์
์ ์ฌ์์ฑํ์ง ์๋๋ค.
|
|
145
|
+
2. **๊ธฐ์กด ์คํ์ผ ์ ์ง** โ ํด๋น knowledge ํ์ผ์ ํ์(ํ
์ด๋ธ, ๋ฆฌ์คํธ, ์ฝ๋ ๋ธ๋ก ๋ฑ)์ ๋ฐ๋ฅธ๋ค.
|
|
146
|
+
3. **์์ค์ ์๋ ์ ๋ณด๋ง** โ ์ฝ๋์์ ํ์ธํ ์ ์๋ ๋ด์ฉ์ ์ถ์ธกํ์ง ์๋๋ค.
|
|
147
|
+
4. **UNCERTAIN์ ๊ฑด๋๋ฆฌ์ง ์๋๋ค** โ ๋ฆฌํฌํธ์๋ง ๋จ๊ธฐ๊ณ ์ฌ์ฉ์๊ฐ ์ง์ ํ๋จํ๋ค.
|
|
148
|
+
5. MISSING: ๊ด๋ จ knowledge ํ์ผ์ด ์์ผ๋ฉด ์น์
์ถ๊ฐ, ์์ผ๋ฉด ์ ํ์ผ ์์ฑ.
|
|
149
|
+
6. ORPHAN: ํด๋น ์น์
/ํญ๋ชฉ ์ญ์ .
|
|
172
150
|
|
|
173
|
-
|
|
151
|
+
### Phase 4: Finalize
|
|
174
152
|
|
|
175
|
-
|
|
153
|
+
`.nexus/sync-state.json` ๊ฐฑ์ :
|
|
176
154
|
```json
|
|
177
155
|
{
|
|
178
156
|
"lastSyncCommit": "{ํ์ฌ HEAD ์ปค๋ฐ ํด์}",
|
|
@@ -182,11 +160,12 @@ Phase 1์ High/Medium ๋ณ๊ฒฝ ํ์ผ๊ณผ Phase 2์ knowledge ์ปค๋ฒ๋ฆฌ์ง๋ฅผ ๋
|
|
|
182
160
|
|
|
183
161
|
`.nexus/` ๋๋ ํ ๋ฆฌ๊ฐ ์์ผ๋ฉด ์์ฑํ๋ค.
|
|
184
162
|
|
|
185
|
-
|
|
163
|
+
---
|
|
186
164
|
|
|
187
|
-
|
|
165
|
+
## What Belongs in Knowledge
|
|
188
166
|
|
|
189
167
|
### ๊ธฐ๋กํด์ผ ํ๋ ๊ฒ
|
|
168
|
+
|
|
190
169
|
- ์ํคํ
์ฒ: ๋๋ ํ ๋ฆฌ ๊ตฌ์กฐ, ๋ชจ๋ ๊ฐ ๊ด๊ณ, ๋ฐ์ดํฐ ํ๋ฆ
|
|
191
170
|
- ์ปจ๋ฒค์
: ๋ค์ด๋ฐ ๊ท์น, ์ฝ๋ ์คํ์ผ, ํจํด
|
|
192
171
|
- ๊ธฐ์ ์คํ: ์ธ์ด, ํ๋ ์์ํฌ, ์ฃผ์ ์์กด์ฑ, ๋น๋/ํ
์คํธ ๋๊ตฌ
|
|
@@ -195,18 +174,22 @@ sync๊ฐ MISSING์ ํ์ ํ ๋, ๋ชจ๋ ์ ์ฝ๋๊ฐ knowledge์ ๊ธฐ๋ก๋
|
|
|
195
174
|
- ๊ฐ๋ฐ ์ํฌํ๋ก์ฐ: ๋น๋, ํ
์คํธ, ๋ฐฐํฌ ๋ช
๋ น
|
|
196
175
|
|
|
197
176
|
### ๊ธฐ๋กํ์ง ์๋ ๊ฒ
|
|
177
|
+
|
|
198
178
|
- ๊ตฌํ ๋ํ
์ผ (ํจ์ ๋ด๋ถ ๋ก์ง) โ ์ฝ๋๊ฐ source of truth
|
|
199
179
|
- API ์คํค๋ง โ ํ์
์ ์์์ ์ง์ ํ์ธ ๊ฐ๋ฅ
|
|
200
180
|
- TODO/์งํ ์ํฉ โ tasks.json์ด ๋ด๋น
|
|
201
181
|
- ์๋ ์กฐํ ๊ฐ๋ฅํ ์ ๋ณด โ LSP/AST๋ก ์ค์๊ฐ ํ์ธ
|
|
202
182
|
- ๋น๋ฐ ์ ๋ณด โ ๋ณด์ ์ํ
|
|
203
183
|
|
|
204
|
-
**ํ๋จ ํด๋ฆฌ์คํฑ**: "์ด ์ ๋ณด๊ฐ ์์ผ๋ฉด ์์ด์ ํธ๊ฐ ์ฝ๋๋ฒ ์ด์ค๋ฅผ ์ฒ์ ๋ณด๋ ๊ฒ์ฒ๋ผ ๋๋ ๊ฒ์ธ๊ฐ?" โ Yes๋ฉด
|
|
184
|
+
**ํ๋จ ํด๋ฆฌ์คํฑ**: "์ด ์ ๋ณด๊ฐ ์์ผ๋ฉด ์์ด์ ํธ๊ฐ ์ฝ๋๋ฒ ์ด์ค๋ฅผ ์ฒ์ ๋ณด๋ ๊ฒ์ฒ๋ผ ๋๋ ๊ฒ์ธ๊ฐ?" โ Yes๋ฉด ๊ธฐ๋ก ๋์.
|
|
185
|
+
|
|
186
|
+
---
|
|
205
187
|
|
|
206
188
|
## Important Constraints
|
|
207
189
|
|
|
208
|
-
- knowledge ๋ฌธ์๋ง
|
|
209
|
-
- ํ์คํ์ง ์์ ๋ณ๊ฒฝ์
|
|
210
|
-
-
|
|
211
|
-
-
|
|
212
|
-
- git์ด ์๋
|
|
190
|
+
- knowledge ๋ฌธ์๋ง ์์ ํ๋ค (First Run ์์๋ ์์ฑ๋ ํฌํจ). ์์ค ์ฝ๋๋ ์์ ํ์ง ์๋๋ค.
|
|
191
|
+
- ํ์คํ์ง ์์ ๋ณ๊ฒฝ์ [UNCERTAIN]์ผ๋ก ๋ฆฌํฌํธํ๊ณ ์์ ํ์ง ์๋๋ค.
|
|
192
|
+
- ์์ค์์ ํ์ธ ๋ถ๊ฐํ ์ ๋ณด๋ฅผ ์ถ์ธกํ์ฌ knowledge์ ์ฐ์ง ์๋๋ค.
|
|
193
|
+
- ๊ธฐ์กด ํ์ผ ์ญ์ ๋ `--reset` ์์๋ง (์ฌ์ฉ์ ํ์ธ ํ).
|
|
194
|
+
- git์ด ์๋ ํ๋ก์ ํธ: First Run์ ๊ฐ๋ฅ, Sync๋ ๋ถ๊ฐ (์๋ด ํ ์ข
๋ฃ).
|
|
195
|
+
- ๋น๋ฐ ์ ๋ณด(API ํค ๋ฑ)๋ฅผ knowledge์ ์ ์ฅํ์ง ์๋๋ค.
|
package/skills/nx-init/SKILL.md
DELETED
|
@@ -1,194 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: nx-init
|
|
3
|
-
description: Onboard a project to Nexus โ auto-generate knowledge from existing docs.
|
|
4
|
-
disable-model-invocation: true
|
|
5
|
-
---
|
|
6
|
-
# Init
|
|
7
|
-
|
|
8
|
-
Onboard Nexus into an existing project โ scan, triage, and restructure project knowledge for optimal context efficiency.
|
|
9
|
-
|
|
10
|
-
## Trigger
|
|
11
|
-
- Direct invocation: `/claude-nexus:nx-init`
|
|
12
|
-
|
|
13
|
-
## What It Does
|
|
14
|
-
|
|
15
|
-
Scans the existing project, triages documentation, and generates structured Nexus knowledge files โ replacing scattered .md files with a clean, efficient knowledge base.
|
|
16
|
-
|
|
17
|
-
```
|
|
18
|
-
SCAN โ TRIAGE โ PROPOSE โ GENERATE โ VERIFY
|
|
19
|
-
```
|
|
20
|
-
|
|
21
|
-
## Prerequisites
|
|
22
|
-
|
|
23
|
-
- Nexus plugin must be installed and active
|
|
24
|
-
- `.claude/nexus/knowledge/` directory should NOT already have project-specific files (if it does, ask user if they want to re-init)
|
|
25
|
-
|
|
26
|
-
## Workflow
|
|
27
|
-
|
|
28
|
-
### Phase 1: SCAN (์๋)
|
|
29
|
-
|
|
30
|
-
Gather all available project context:
|
|
31
|
-
|
|
32
|
-
**Project Structure:**
|
|
33
|
-
```
|
|
34
|
-
- List top-level directories and their purpose (src/, test/, docs/, config files)
|
|
35
|
-
- Identify language/framework (package.json, Cargo.toml, pyproject.toml, go.mod, etc.)
|
|
36
|
-
- Identify build system, test framework, linter
|
|
37
|
-
- Count files by type for scale understanding
|
|
38
|
-
```
|
|
39
|
-
|
|
40
|
-
**Existing Documentation:**
|
|
41
|
-
```
|
|
42
|
-
- CLAUDE.md (always loaded by Claude Code โ most critical)
|
|
43
|
-
- README.md
|
|
44
|
-
- .claude/ directory contents (contexts, settings, etc.)
|
|
45
|
-
- docs/ directory if exists
|
|
46
|
-
- Any other .md files in project root
|
|
47
|
-
- .cursorrules, .github/copilot-instructions.md, etc. (other AI tool configs)
|
|
48
|
-
```
|
|
49
|
-
|
|
50
|
-
**Git Context:**
|
|
51
|
-
```
|
|
52
|
-
- Recent commit messages (last 20) for project activity pattern
|
|
53
|
-
- Branch structure for workflow understanding
|
|
54
|
-
- Contributors for team context
|
|
55
|
-
```
|
|
56
|
-
|
|
57
|
-
Output: A structured summary of everything found.
|
|
58
|
-
|
|
59
|
-
### Phase 2: TRIAGE (์๋)
|
|
60
|
-
|
|
61
|
-
Classify every piece of existing documentation into 4 categories:
|
|
62
|
-
|
|
63
|
-
| Category | Meaning | Action |
|
|
64
|
-
|----------|---------|--------|
|
|
65
|
-
| **Essential** | Architecture, conventions, decisions that agents MUST know | โ `knowledge/` |
|
|
66
|
-
| **Useful** | Tips, practices, context that helps but isn't critical | โ `knowledge/` (condensed) |
|
|
67
|
-
| **Redundant** | Info that Nexus handles better (workflow instructions, agent tips) | โ Skip |
|
|
68
|
-
| **Outdated** | Stale, auto-generated, or no longer relevant | โ Skip |
|
|
69
|
-
|
|
70
|
-
**Triage Rules:**
|
|
71
|
-
- Code structure descriptions โ Essential (architecture.md)
|
|
72
|
-
- Coding conventions, style rules โ Essential (conventions.md)
|
|
73
|
-
- Architecture decisions with rationale โ Essential (decisions/)
|
|
74
|
-
- Project goals, roadmap, team context โ Useful (project-context.md)
|
|
75
|
-
- "How to use Claude" instructions โ Redundant (Nexus replaces this)
|
|
76
|
-
- Auto-memory instructions, hook configs โ Redundant
|
|
77
|
-
- Old TODO lists, resolved issues โ Outdated
|
|
78
|
-
- Generated API docs โ Outdated (can be regenerated)
|
|
79
|
-
|
|
80
|
-
### Phase 3: PROPOSE (์ฌ์ฉ์ ์ํธ์์ฉ)
|
|
81
|
-
|
|
82
|
-
Present the triage result using `AskUserQuestion`:
|
|
83
|
-
|
|
84
|
-
```
|
|
85
|
-
AskUserQuestion({
|
|
86
|
-
questions: [
|
|
87
|
-
{
|
|
88
|
-
question: "CLAUDE.md ์ฌ๋ฆผํ ๋ฐฉ์์ ์ ํํด์ฃผ์ธ์.",
|
|
89
|
-
header: "CLAUDE.md",
|
|
90
|
-
multiSelect: false,
|
|
91
|
-
options: [
|
|
92
|
-
{
|
|
93
|
-
label: "์ฌ๋ฆผํ (Recommended)",
|
|
94
|
-
description: "ํต์ฌ ์ง์์ฌํญ๋ง ์ ์ง, ๋๋จธ์ง๋ knowledge/๋ก ์ด๋",
|
|
95
|
-
preview: "## ๊ธฐ์กด CLAUDE.md (150์ค)\nํต์ฌ ์ง์: 15์ค\nํ๋ก์ ํธ ์ง์: 100์ค โ knowledge/๋ก\n์ค๋ณต/๋ถํ์: 35์ค โ ์ ๊ฑฐ\n\n## ์ CLAUDE.md (20์ค)\n- ํต์ฌ ์ง์์ฌํญ (15์ค)\n- Nexus ์ฐ๋ ์๋ด (5์ค)"
|
|
96
|
-
},
|
|
97
|
-
{
|
|
98
|
-
label: "์ ์ง + ์ถ๊ฐ๋ง",
|
|
99
|
-
description: "๊ธฐ์กด CLAUDE.md ๊ฑด๋๋ฆฌ์ง ์๊ณ Nexus ์ฐ๋๋ง ์ถ๊ฐ"
|
|
100
|
-
},
|
|
101
|
-
{
|
|
102
|
-
label: "์์ ๊ต์ฒด",
|
|
103
|
-
description: "CLAUDE.md๋ฅผ Nexus ์ ์ฉ์ผ๋ก ๊ต์ฒด (๊ธฐ์กด์ ๋ฐฑ์
)"
|
|
104
|
-
}
|
|
105
|
-
]
|
|
106
|
-
},
|
|
107
|
-
{
|
|
108
|
-
question: "knowledge ํ์ผ๋ก ์ด๋ํ ํญ๋ชฉ์ ํ์ธํด์ฃผ์ธ์.",
|
|
109
|
-
header: "Knowledge",
|
|
110
|
-
multiSelect: true,
|
|
111
|
-
options: [
|
|
112
|
-
{ label: "architecture.md", description: "์ฝ๋ ๊ตฌ์กฐ, ๊ธฐ์ ์คํ, ์ฃผ์ ์์กด์ฑ" },
|
|
113
|
-
{ label: "conventions.md", description: "์ฝ๋ฉ ๊ท์น, ๋ค์ด๋ฐ, ํจํด" },
|
|
114
|
-
{ label: "project-context.md", description: "ํ๋ก์ ํธ ๋ชฉ์ , ํ์ฌ ์ํ, ํ ์ปจํ
์คํธ" }
|
|
115
|
-
]
|
|
116
|
-
}
|
|
117
|
-
]
|
|
118
|
-
})
|
|
119
|
-
```
|
|
120
|
-
|
|
121
|
-
Note: The actual options should be populated based on SCAN/TRIAGE results, not hardcoded. The above is a template.
|
|
122
|
-
|
|
123
|
-
### Phase 4: GENERATE (์๋)
|
|
124
|
-
|
|
125
|
-
Based on user approval:
|
|
126
|
-
|
|
127
|
-
1. **Backup existing CLAUDE.md:**
|
|
128
|
-
```
|
|
129
|
-
cp CLAUDE.md .claude/nexus/knowledge/original-claude-md.md
|
|
130
|
-
```
|
|
131
|
-
|
|
132
|
-
2. **Generate knowledge files** in `.claude/nexus/knowledge/`:
|
|
133
|
-
```
|
|
134
|
-
architecture.md:
|
|
135
|
-
- # {Project Name} Architecture
|
|
136
|
-
- ## Tech Stack (language, framework, build, test)
|
|
137
|
-
- ## Directory Structure (with purpose annotations)
|
|
138
|
-
- ## Key Dependencies
|
|
139
|
-
- ## Entry Points
|
|
140
|
-
|
|
141
|
-
conventions.md:
|
|
142
|
-
- # Coding Conventions
|
|
143
|
-
- ## Style (from existing linter/prettier config + CLAUDE.md rules)
|
|
144
|
-
- ## Naming Patterns (from code analysis)
|
|
145
|
-
- ## Testing Conventions
|
|
146
|
-
- ## Git/PR Conventions
|
|
147
|
-
|
|
148
|
-
project-context.md:
|
|
149
|
-
- # Project Context
|
|
150
|
-
- ## Purpose (from README/CLAUDE.md)
|
|
151
|
-
- ## Current State (from git activity)
|
|
152
|
-
- ## Team Context (if available)
|
|
153
|
-
- ## Key Decisions (extracted from docs)
|
|
154
|
-
```
|
|
155
|
-
|
|
156
|
-
3. **Slim down CLAUDE.md** (if user chose slimming):
|
|
157
|
-
```markdown
|
|
158
|
-
# {Project Name}
|
|
159
|
-
|
|
160
|
-
{ํต์ฌ ์ง์์ฌํญ โ ๊ธฐ์กด์์ ์ถ์ถ, 5-15์ค}
|
|
161
|
-
|
|
162
|
-
## Nexus
|
|
163
|
-
- ํ๋ก์ ํธ ์ง์: `.claude/nexus/knowledge/` ์ฐธ์กฐ
|
|
164
|
-
- ์์นด์ด๋ธ: `.nexus/archives/` (๋ก์ปฌ, ์ธ์
๋
๋ฆฝ)
|
|
165
|
-
- ์๋ณธ CLAUDE.md: `.claude/nexus/knowledge/original-claude-md.md`
|
|
166
|
-
```
|
|
167
|
-
|
|
168
|
-
4. **Add `.claude/nexus/` to git** if not already tracked.
|
|
169
|
-
|
|
170
|
-
### Phase 5: VERIFY (์๋)
|
|
171
|
-
|
|
172
|
-
Quick validation:
|
|
173
|
-
1. All generated knowledge files are valid markdown
|
|
174
|
-
2. `nx_knowledge_read` can read them successfully
|
|
175
|
-
3. CLAUDE.md is valid and not empty
|
|
176
|
-
4. Original CLAUDE.md backup exists
|
|
177
|
-
5. Report: "Init ์๋ฃ. knowledge N๊ฐ ํ์ผ, CLAUDE.md X์ค โ Y์ค"
|
|
178
|
-
|
|
179
|
-
## Important Constraints
|
|
180
|
-
|
|
181
|
-
- NEVER delete existing files without user approval โ always backup first
|
|
182
|
-
- If `.claude/nexus/knowledge/` already has files, ask before overwriting
|
|
183
|
-
- If CLAUDE.md has critical instructions (API keys, deploy commands), keep them in CLAUDE.md
|
|
184
|
-
- Don't extract secrets or credentials into knowledge files
|
|
185
|
-
- If the project has no CLAUDE.md, create a minimal one
|
|
186
|
-
|
|
187
|
-
## Re-init
|
|
188
|
-
|
|
189
|
-
If nexus knowledge already exists, `[init]` should:
|
|
190
|
-
1. Detect existing knowledge files
|
|
191
|
-
2. Ask: "๊ธฐ์กด knowledge๊ฐ ์์ต๋๋ค. ๋ค์ ์ด๊ธฐํํ ๊น์?"
|
|
192
|
-
3. If yes: backup existing knowledge to `.claude/nexus/knowledge/backup-{date}/`
|
|
193
|
-
4. Re-run full workflow
|
|
194
|
-
|