solvdex 2.0.0-alpha.5 → 2.0.0-alpha.8
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 +2 -2
- package/.claude-plugin/plugin.json +1 -1
- package/README.md +27 -18
- package/agents/{wiki-capture/AGENT.md → capture.md} +16 -38
- package/agents/{wiki-scanner/AGENT.md → scanner.md} +8 -0
- package/agents/templates/docs.md +35 -0
- package/agents/templates/gotchas.md +31 -0
- package/agents/templates/issues.md +36 -0
- package/agents/templates/patterns.md +35 -0
- package/agents/templates/performance.md +36 -0
- package/agents/templates/security.md +36 -0
- package/agents/templates/testing.md +39 -0
- package/docs/README.md +10 -12
- package/docs/architecture.md +28 -28
- package/docs/diagrams/architecture-overview.md +7 -7
- package/docs/diagrams/knowledge-capture-flow.md +1 -1
- package/docs/diagrams/knowledge-retrieval-flow.md +1 -1
- package/docs/diagrams/session-workflow.md +1 -1
- package/docs/diagrams/system-overview.md +8 -8
- package/docs/getting-started.md +1 -1
- package/docs/use-cases.md +2 -2
- package/docs/workflows.md +5 -5
- package/package.json +1 -1
- package/skills/wiki-add/SKILL.md +2 -2
- package/skills/wiki-browse/SKILL.md +2 -2
- package/skills/wiki-capture/SKILL.md +2 -2
- package/skills/wiki-explorer/SKILL.md +1 -1
- package/skills/wiki-export/SKILL.md +2 -2
- package/skills/wiki-fix/SKILL.md +2 -2
- package/skills/wiki-flag/SKILL.md +2 -2
- package/skills/wiki-graph/SKILL.md +1 -1
- package/skills/wiki-health/SKILL.md +1 -1
- package/skills/wiki-import/SKILL.md +2 -2
- package/skills/wiki-scan/SKILL.md +1 -1
- package/skills/wiki-search/SKILL.md +2 -2
- package/skills/wiki-stats/SKILL.md +2 -2
- package/skills/wiki-status/SKILL.md +2 -2
- package/skills/wiki-test-trigger/SKILL.md +2 -2
- package/skills/wiki-validate/SKILL.md +2 -2
- /package/agents/{wiki-duplicate-checker/AGENT.md → duplicate-checker.md} +0 -0
- /package/agents/{wiki-graph/AGENT.md → graph.md} +0 -0
- /package/agents/{wiki-health/AGENT.md → health.md} +0 -0
- /package/agents/{wiki-searcher/AGENT.md → searcher.md} +0 -0
- /package/agents/{wiki-stats/AGENT.md → stats.md} +0 -0
- /package/agents/{wiki-validator/AGENT.md → validator.md} +0 -0
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
},
|
|
7
7
|
"metadata": {
|
|
8
8
|
"description": "Knowledge management plugins for Claude Code",
|
|
9
|
-
"version": "2.0.0-alpha.
|
|
9
|
+
"version": "2.0.0-alpha.8"
|
|
10
10
|
},
|
|
11
11
|
"plugins": [
|
|
12
12
|
{
|
|
@@ -16,7 +16,7 @@
|
|
|
16
16
|
"url": "https://github.com/ducdmdev/solvdex.git"
|
|
17
17
|
},
|
|
18
18
|
"description": "Auto-capture and retrieve project knowledge - solutions, patterns, gotchas, testing, docs, security, performance",
|
|
19
|
-
"version": "2.0.0-alpha.
|
|
19
|
+
"version": "2.0.0-alpha.8"
|
|
20
20
|
}
|
|
21
21
|
]
|
|
22
22
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "solvdex",
|
|
3
3
|
"description": "Auto-capture and retrieve project knowledge - solutions, patterns, gotchas, testing, docs, security, performance",
|
|
4
|
-
"version": "2.0.0-alpha.
|
|
4
|
+
"version": "2.0.0-alpha.8",
|
|
5
5
|
"author": {
|
|
6
6
|
"name": "duc.do",
|
|
7
7
|
"email": "ducdm.dev.work@gmail.com"
|
package/README.md
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
# Solvdex
|
|
2
2
|
|
|
3
3
|
[](./tests)
|
|
4
|
-
[](./package.json)
|
|
5
5
|
[](./LICENSE)
|
|
6
6
|
[](./docs/schema.md)
|
|
7
7
|
|
|
@@ -41,20 +41,29 @@ Solvdex 2.0 uses a pure agent-based architecture. All logic is implemented in ag
|
|
|
41
41
|
| Layer | Components |
|
|
42
42
|
|-------|------------|
|
|
43
43
|
| **Skills (18)** | `/wiki search`, `/wiki add`, `/wiki health`, etc. |
|
|
44
|
-
| **Hooks** | SessionStart → wiki-advisor prompt, Stop →
|
|
45
|
-
| **Agents (8)** |
|
|
44
|
+
| **Hooks** | SessionStart → wiki-advisor prompt, Stop → capture prompt |
|
|
45
|
+
| **Agents (8)** | searcher, capture, scanner, validator, stats, health, graph, duplicate-checker |
|
|
46
46
|
| **Storage** | `.wiki/` with 7 categories |
|
|
47
47
|
|
|
48
48
|
## Project Structure
|
|
49
49
|
|
|
50
50
|
```
|
|
51
51
|
solvdex/
|
|
52
|
-
├── agents/
|
|
53
|
-
├──
|
|
54
|
-
├──
|
|
55
|
-
├──
|
|
56
|
-
│
|
|
57
|
-
|
|
52
|
+
├── agents/ # 8 specialized agents as flat .md files
|
|
53
|
+
│ ├── searcher.md
|
|
54
|
+
│ ├── capture.md
|
|
55
|
+
│ ├── scanner.md
|
|
56
|
+
│ ├── validator.md
|
|
57
|
+
│ ├── stats.md
|
|
58
|
+
│ ├── duplicate-checker.md
|
|
59
|
+
│ ├── health.md
|
|
60
|
+
│ ├── graph.md
|
|
61
|
+
│ └── templates/ # Category templates
|
|
62
|
+
├── skills/ # 18 Claude Code skills (thin wrappers)
|
|
63
|
+
├── hooks/ # hooks.json (prompt-based hints)
|
|
64
|
+
├── docs/ # Documentation
|
|
65
|
+
│ └── schema.md # Entry schema & constants (source of truth)
|
|
66
|
+
└── tests/ # Validation tests
|
|
58
67
|
```
|
|
59
68
|
|
|
60
69
|
## Categories
|
|
@@ -124,14 +133,14 @@ All logic is implemented by specialized agents:
|
|
|
124
133
|
|
|
125
134
|
| Agent | Commands | Description |
|
|
126
135
|
|-------|----------|-------------|
|
|
127
|
-
| `
|
|
128
|
-
| `
|
|
129
|
-
| `
|
|
130
|
-
| `
|
|
131
|
-
| `
|
|
132
|
-
| `
|
|
133
|
-
| `
|
|
134
|
-
| `
|
|
136
|
+
| `searcher` | `/wiki search`, `/wiki explore` | Search + recommendations |
|
|
137
|
+
| `capture` | `/wiki add`, `/wiki capture` | Knowledge extraction |
|
|
138
|
+
| `scanner` | `/wiki scan` | Project scanning |
|
|
139
|
+
| `validator` | `/wiki validate` | Quality checks |
|
|
140
|
+
| `stats` | `/wiki stats` | Analytics + maturity |
|
|
141
|
+
| `duplicate-checker` | (internal) | Prevent duplicates |
|
|
142
|
+
| `health` | `/wiki health` | Coverage gaps |
|
|
143
|
+
| `graph` | `/wiki graph` | Relationship diagrams |
|
|
135
144
|
|
|
136
145
|
## How It Works
|
|
137
146
|
|
|
@@ -229,7 +238,7 @@ Real-time integration with Claude Code via contextual prompts:
|
|
|
229
238
|
| Hook | Suggests | When | Purpose |
|
|
230
239
|
|------|----------|------|---------|
|
|
231
240
|
| `SessionStart` | `wiki-advisor` | New conversation | Hint to check for relevant entries |
|
|
232
|
-
| `Stop` | `
|
|
241
|
+
| `Stop` | `capture` | Task completes | Hint to capture valuable knowledge |
|
|
233
242
|
|
|
234
243
|
Hooks are configured in `hooks/hooks.json` and provide prompt-based guidance to use wiki agents.
|
|
235
244
|
|
|
@@ -119,46 +119,24 @@ Create a concise, descriptive title:
|
|
|
119
119
|
- Include technology: "TypeScript Generic Constraint Issue"
|
|
120
120
|
- Max 60 characters
|
|
121
121
|
|
|
122
|
-
### Step 7: Create Entry
|
|
122
|
+
### Step 7: Create Entry Using Template
|
|
123
123
|
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
title: Descriptive Title
|
|
129
|
-
created: YYYY-MM-DD
|
|
130
|
-
updated: YYYY-MM-DD
|
|
131
|
-
status: active
|
|
132
|
-
confidence: 40
|
|
133
|
-
maturity: captured
|
|
134
|
-
tags: [tag1, tag2, tag3]
|
|
135
|
-
trigger: "error pattern regex" # For issues category
|
|
136
|
-
use_count: 0
|
|
137
|
-
related_entries: # If found related entries
|
|
138
|
-
- category/related-entry.md
|
|
139
|
-
audit:
|
|
140
|
-
- date: YYYY-MM-DD
|
|
141
|
-
action: created
|
|
142
|
-
by: capture-agent
|
|
143
|
-
context: Auto-captured from conversation
|
|
144
|
-
---
|
|
145
|
-
|
|
146
|
-
# Problem
|
|
147
|
-
|
|
148
|
-
<extracted problem description>
|
|
149
|
-
|
|
150
|
-
# Solution
|
|
151
|
-
|
|
152
|
-
<extracted solution with code>
|
|
153
|
-
|
|
154
|
-
# Verification
|
|
155
|
-
|
|
156
|
-
<how to verify it works, or "Verified in conversation">
|
|
157
|
-
|
|
158
|
-
# Related
|
|
124
|
+
1. Read template for detected category:
|
|
125
|
+
```
|
|
126
|
+
Read agents/templates/<category>.md
|
|
127
|
+
```
|
|
159
128
|
|
|
160
|
-
|
|
161
|
-
|
|
129
|
+
2. Replace placeholders with extracted values:
|
|
130
|
+
- `{{title}}` → generated title
|
|
131
|
+
- `{{created}}` → today's date (YYYY-MM-DD)
|
|
132
|
+
- `{{updated}}` → today's date (YYYY-MM-DD)
|
|
133
|
+
- `{{tags}}` → comma-separated tags
|
|
134
|
+
- `{{trigger}}` → error regex pattern (issues/security/performance only)
|
|
135
|
+
- `{{source}}` → "conversation" or "capture-agent"
|
|
136
|
+
- `{{created_by}}` → "capture-agent"
|
|
137
|
+
- Section placeholders → extracted content
|
|
138
|
+
|
|
139
|
+
3. Write filled template to `.wiki/<category>/<slug>.md`
|
|
162
140
|
|
|
163
141
|
### Step 8: Return Confirmation
|
|
164
142
|
|
|
@@ -53,6 +53,14 @@ For each finding, create entry in appropriate category:
|
|
|
53
53
|
- `.wiki/security/` - Security items
|
|
54
54
|
- `.wiki/performance/` - Optimizations
|
|
55
55
|
|
|
56
|
+
### Using Templates
|
|
57
|
+
|
|
58
|
+
1. Read template: `Read agents/templates/<category>.md`
|
|
59
|
+
2. Fill placeholders with scanned data
|
|
60
|
+
3. Write to `.wiki/<category>/<slug>.md`
|
|
61
|
+
|
|
62
|
+
### Frontmatter Reference
|
|
63
|
+
|
|
56
64
|
Use this frontmatter:
|
|
57
65
|
```yaml
|
|
58
66
|
---
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: {{title}}
|
|
3
|
+
created: {{created}}
|
|
4
|
+
updated: {{updated}}
|
|
5
|
+
status: active
|
|
6
|
+
confidence: 40
|
|
7
|
+
maturity: captured
|
|
8
|
+
tags: [{{tags}}]
|
|
9
|
+
source: {{source}}
|
|
10
|
+
use_count: 0
|
|
11
|
+
audit:
|
|
12
|
+
- date: {{created}}
|
|
13
|
+
action: created
|
|
14
|
+
by: {{created_by}}
|
|
15
|
+
---
|
|
16
|
+
|
|
17
|
+
## Audience
|
|
18
|
+
|
|
19
|
+
{{audience}}
|
|
20
|
+
|
|
21
|
+
## Template
|
|
22
|
+
|
|
23
|
+
{{template_content}}
|
|
24
|
+
|
|
25
|
+
## Examples
|
|
26
|
+
|
|
27
|
+
{{examples}}
|
|
28
|
+
|
|
29
|
+
## Style Notes
|
|
30
|
+
|
|
31
|
+
{{style_notes}}
|
|
32
|
+
|
|
33
|
+
## Related
|
|
34
|
+
|
|
35
|
+
{{related_entries}}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: {{title}}
|
|
3
|
+
created: {{created}}
|
|
4
|
+
updated: {{updated}}
|
|
5
|
+
status: active
|
|
6
|
+
confidence: 40
|
|
7
|
+
maturity: captured
|
|
8
|
+
tags: [{{tags}}]
|
|
9
|
+
source: {{source}}
|
|
10
|
+
use_count: 0
|
|
11
|
+
audit:
|
|
12
|
+
- date: {{created}}
|
|
13
|
+
action: created
|
|
14
|
+
by: {{created_by}}
|
|
15
|
+
---
|
|
16
|
+
|
|
17
|
+
## Trap
|
|
18
|
+
|
|
19
|
+
{{trap_description}}
|
|
20
|
+
|
|
21
|
+
## Why It Happens
|
|
22
|
+
|
|
23
|
+
{{why_it_happens}}
|
|
24
|
+
|
|
25
|
+
## Correct Approach
|
|
26
|
+
|
|
27
|
+
{{correct_approach}}
|
|
28
|
+
|
|
29
|
+
## Related
|
|
30
|
+
|
|
31
|
+
{{related_entries}}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: {{title}}
|
|
3
|
+
created: {{created}}
|
|
4
|
+
updated: {{updated}}
|
|
5
|
+
status: active
|
|
6
|
+
confidence: 40
|
|
7
|
+
maturity: captured
|
|
8
|
+
tags: [{{tags}}]
|
|
9
|
+
trigger: "{{trigger}}"
|
|
10
|
+
source: {{source}}
|
|
11
|
+
use_count: 0
|
|
12
|
+
audit:
|
|
13
|
+
- date: {{created}}
|
|
14
|
+
action: created
|
|
15
|
+
by: {{created_by}}
|
|
16
|
+
---
|
|
17
|
+
|
|
18
|
+
## Problem
|
|
19
|
+
|
|
20
|
+
{{problem_description}}
|
|
21
|
+
|
|
22
|
+
## Cause
|
|
23
|
+
|
|
24
|
+
{{root_cause}}
|
|
25
|
+
|
|
26
|
+
## Solution
|
|
27
|
+
|
|
28
|
+
{{solution_steps}}
|
|
29
|
+
|
|
30
|
+
## Verification
|
|
31
|
+
|
|
32
|
+
{{verification}}
|
|
33
|
+
|
|
34
|
+
## Related
|
|
35
|
+
|
|
36
|
+
{{related_entries}}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: {{title}}
|
|
3
|
+
created: {{created}}
|
|
4
|
+
updated: {{updated}}
|
|
5
|
+
status: active
|
|
6
|
+
confidence: 40
|
|
7
|
+
maturity: captured
|
|
8
|
+
tags: [{{tags}}]
|
|
9
|
+
source: {{source}}
|
|
10
|
+
use_count: 0
|
|
11
|
+
audit:
|
|
12
|
+
- date: {{created}}
|
|
13
|
+
action: created
|
|
14
|
+
by: {{created_by}}
|
|
15
|
+
---
|
|
16
|
+
|
|
17
|
+
## Intent
|
|
18
|
+
|
|
19
|
+
{{intent}}
|
|
20
|
+
|
|
21
|
+
## Structure
|
|
22
|
+
|
|
23
|
+
{{structure}}
|
|
24
|
+
|
|
25
|
+
## Example
|
|
26
|
+
|
|
27
|
+
{{example}}
|
|
28
|
+
|
|
29
|
+
## Applies To
|
|
30
|
+
|
|
31
|
+
{{applies_to}}
|
|
32
|
+
|
|
33
|
+
## Related
|
|
34
|
+
|
|
35
|
+
{{related_entries}}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: {{title}}
|
|
3
|
+
created: {{created}}
|
|
4
|
+
updated: {{updated}}
|
|
5
|
+
status: active
|
|
6
|
+
confidence: 40
|
|
7
|
+
maturity: captured
|
|
8
|
+
tags: [{{tags}}]
|
|
9
|
+
trigger: "{{trigger}}"
|
|
10
|
+
source: {{source}}
|
|
11
|
+
use_count: 0
|
|
12
|
+
audit:
|
|
13
|
+
- date: {{created}}
|
|
14
|
+
action: created
|
|
15
|
+
by: {{created_by}}
|
|
16
|
+
---
|
|
17
|
+
|
|
18
|
+
## Bottleneck
|
|
19
|
+
|
|
20
|
+
{{bottleneck}}
|
|
21
|
+
|
|
22
|
+
## Measurement
|
|
23
|
+
|
|
24
|
+
{{measurement}}
|
|
25
|
+
|
|
26
|
+
## Optimization
|
|
27
|
+
|
|
28
|
+
{{optimization}}
|
|
29
|
+
|
|
30
|
+
## Benchmarks
|
|
31
|
+
|
|
32
|
+
{{benchmarks}}
|
|
33
|
+
|
|
34
|
+
## Related
|
|
35
|
+
|
|
36
|
+
{{related_entries}}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: {{title}}
|
|
3
|
+
created: {{created}}
|
|
4
|
+
updated: {{updated}}
|
|
5
|
+
status: active
|
|
6
|
+
confidence: 40
|
|
7
|
+
maturity: captured
|
|
8
|
+
tags: [{{tags}}]
|
|
9
|
+
trigger: "{{trigger}}"
|
|
10
|
+
source: {{source}}
|
|
11
|
+
use_count: 0
|
|
12
|
+
audit:
|
|
13
|
+
- date: {{created}}
|
|
14
|
+
action: created
|
|
15
|
+
by: {{created_by}}
|
|
16
|
+
---
|
|
17
|
+
|
|
18
|
+
## Vulnerability
|
|
19
|
+
|
|
20
|
+
{{vulnerability}}
|
|
21
|
+
|
|
22
|
+
## Impact
|
|
23
|
+
|
|
24
|
+
{{impact}}
|
|
25
|
+
|
|
26
|
+
## Mitigation
|
|
27
|
+
|
|
28
|
+
{{mitigation}}
|
|
29
|
+
|
|
30
|
+
## Prevention
|
|
31
|
+
|
|
32
|
+
{{prevention}}
|
|
33
|
+
|
|
34
|
+
## Related
|
|
35
|
+
|
|
36
|
+
{{related_entries}}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: {{title}}
|
|
3
|
+
created: {{created}}
|
|
4
|
+
updated: {{updated}}
|
|
5
|
+
status: active
|
|
6
|
+
confidence: 40
|
|
7
|
+
maturity: captured
|
|
8
|
+
tags: [{{tags}}]
|
|
9
|
+
source: {{source}}
|
|
10
|
+
use_count: 0
|
|
11
|
+
audit:
|
|
12
|
+
- date: {{created}}
|
|
13
|
+
action: created
|
|
14
|
+
by: {{created_by}}
|
|
15
|
+
---
|
|
16
|
+
|
|
17
|
+
## Scenario
|
|
18
|
+
|
|
19
|
+
{{scenario}}
|
|
20
|
+
|
|
21
|
+
## Setup
|
|
22
|
+
|
|
23
|
+
{{setup}}
|
|
24
|
+
|
|
25
|
+
## Assertions
|
|
26
|
+
|
|
27
|
+
{{assertions}}
|
|
28
|
+
|
|
29
|
+
## Mocks/Fixtures
|
|
30
|
+
|
|
31
|
+
{{mocks_fixtures}}
|
|
32
|
+
|
|
33
|
+
## Edge Cases
|
|
34
|
+
|
|
35
|
+
{{edge_cases}}
|
|
36
|
+
|
|
37
|
+
## Related
|
|
38
|
+
|
|
39
|
+
{{related_entries}}
|
package/docs/README.md
CHANGED
|
@@ -13,31 +13,29 @@ Auto-capture and retrieve project knowledge across 7 domains.
|
|
|
13
13
|
|
|
14
14
|
## Quick Links
|
|
15
15
|
|
|
16
|
-
- **Skills:**
|
|
17
|
-
- **Hooks:**
|
|
16
|
+
- **Skills:** 18 commands for wiki management
|
|
17
|
+
- **Hooks:** 2 automated triggers for capture and retrieval
|
|
18
18
|
- **Categories:** 7 knowledge domains
|
|
19
19
|
|
|
20
20
|
## Project Structure
|
|
21
21
|
|
|
22
22
|
```
|
|
23
23
|
solvdex/
|
|
24
|
-
├──
|
|
25
|
-
├── skills/ #
|
|
26
|
-
├──
|
|
27
|
-
├── hooks/ # Automated triggers (4)
|
|
24
|
+
├── agents/ # ALL logic lives here (8 agents)
|
|
25
|
+
├── skills/ # Thin wrappers (18 commands)
|
|
26
|
+
├── hooks/ # Agent-based hooks (2)
|
|
28
27
|
├── docs/ # Documentation (you are here)
|
|
29
28
|
│ └── plans/ # Planning docs
|
|
30
|
-
└── tests/ #
|
|
29
|
+
└── tests/ # Validation tests
|
|
31
30
|
```
|
|
32
31
|
|
|
33
32
|
## Version
|
|
34
33
|
|
|
35
|
-
Current:
|
|
34
|
+
Current: v2.0.0
|
|
36
35
|
|
|
37
36
|
## Quick Stats
|
|
38
37
|
|
|
39
|
-
- **
|
|
40
|
-
- **
|
|
41
|
-
- **
|
|
42
|
-
- **3 agents** - Specialized exploration and capture
|
|
38
|
+
- **18 skills** - CLI commands for wiki management
|
|
39
|
+
- **2 hooks** - Automated capture and retrieval
|
|
40
|
+
- **8 agents** - Specialized wiki operations
|
|
43
41
|
- **7 categories** - Knowledge domains (issues, patterns, gotchas, testing, docs, security, performance)
|
package/docs/architecture.md
CHANGED
|
@@ -21,16 +21,16 @@ All business logic lives in agent markdown files. No TypeScript.
|
|
|
21
21
|
|
|
22
22
|
| Agent | Purpose | Tools |
|
|
23
23
|
|-------|---------|-------|
|
|
24
|
-
| `
|
|
25
|
-
| `
|
|
26
|
-
| `
|
|
27
|
-
| `
|
|
28
|
-
| `
|
|
29
|
-
| `
|
|
30
|
-
| `
|
|
31
|
-
| `
|
|
24
|
+
| `searcher` | Search entries, find solutions, recommendations | Glob, Read |
|
|
25
|
+
| `capture` | Extract problem/solution from conversations | Glob, Read, Write |
|
|
26
|
+
| `scanner` | Scan project and create stub entries | Bash, Read, Write, Grep, Glob |
|
|
27
|
+
| `validator` | Validate entry quality, check for issues | Glob, Read |
|
|
28
|
+
| `stats` | Calculate statistics, track maturity | Glob, Read, Write |
|
|
29
|
+
| `duplicate-checker` | Detect potential duplicate entries | Glob, Read |
|
|
30
|
+
| `health` | Analyze coverage gaps, find stale entries | Glob, Read |
|
|
31
|
+
| `graph` | Generate relationship diagrams (Mermaid) | Glob, Read |
|
|
32
32
|
|
|
33
|
-
**Agent Naming:** Agent names are derived from folder names (e.g., `agents/
|
|
33
|
+
**Agent Naming:** Agent names are derived from folder names (e.g., `agents/scanner/`). Do NOT include a `name` field in agent frontmatter.
|
|
34
34
|
|
|
35
35
|
### 2. Skills (`skills/`) - Thin Wrappers
|
|
36
36
|
|
|
@@ -39,28 +39,28 @@ All business logic lives in agent markdown files. No TypeScript.
|
|
|
39
39
|
**Core:**
|
|
40
40
|
- `wiki` - Main router
|
|
41
41
|
- `wiki-init` - Initialize wiki
|
|
42
|
-
- `wiki-add` - Add entry → `
|
|
43
|
-
- `wiki-search` - Search entries → `
|
|
44
|
-
- `wiki-browse` - List entries → `
|
|
42
|
+
- `wiki-add` - Add entry → `capture`
|
|
43
|
+
- `wiki-search` - Search entries → `searcher`
|
|
44
|
+
- `wiki-browse` - List entries → `searcher`
|
|
45
45
|
|
|
46
46
|
**Management:**
|
|
47
|
-
- `wiki-status` - Quick health check → `
|
|
48
|
-
- `
|
|
49
|
-
- `wiki-validate` - Full validation → `
|
|
50
|
-
- `wiki-scan` - Project scanning → `
|
|
51
|
-
- `wiki-flag` - Flag for review → `
|
|
52
|
-
- `wiki-fix` - Update flagged entry → `
|
|
53
|
-
- `
|
|
54
|
-
- `
|
|
47
|
+
- `wiki-status` - Quick health check → `stats`
|
|
48
|
+
- `stats` - Detailed statistics → `stats`
|
|
49
|
+
- `wiki-validate` - Full validation → `validator`
|
|
50
|
+
- `wiki-scan` - Project scanning → `scanner`
|
|
51
|
+
- `wiki-flag` - Flag for review → `validator`
|
|
52
|
+
- `wiki-fix` - Update flagged entry → `capture`
|
|
53
|
+
- `health` - Coverage gaps → `health`
|
|
54
|
+
- `graph` - Relationship diagrams → `graph`
|
|
55
55
|
|
|
56
56
|
**Transfer:**
|
|
57
|
-
- `wiki-export` - Export to JSON → `
|
|
58
|
-
- `wiki-import` - Import from JSON → `
|
|
59
|
-
- `wiki-test-trigger` - Test trigger patterns → `
|
|
57
|
+
- `wiki-export` - Export to JSON → `capture`
|
|
58
|
+
- `wiki-import` - Import from JSON → `capture`
|
|
59
|
+
- `wiki-test-trigger` - Test trigger patterns → `searcher`
|
|
60
60
|
|
|
61
61
|
**Search:**
|
|
62
|
-
- `wiki-explorer` - Deep search → `
|
|
63
|
-
- `
|
|
62
|
+
- `wiki-explorer` - Deep search → `searcher`
|
|
63
|
+
- `capture` - Knowledge extraction → `capture`
|
|
64
64
|
|
|
65
65
|
### 3. Hooks (`hooks/hooks.json`) - Prompt-Based
|
|
66
66
|
|
|
@@ -69,7 +69,7 @@ Hooks provide context prompts that guide Claude to use wiki agents when appropri
|
|
|
69
69
|
| Hook | Purpose | Agent Suggested |
|
|
70
70
|
|------|---------|-----------------|
|
|
71
71
|
| `SessionStart` | Surface relevant entries at task start | `wiki-advisor` |
|
|
72
|
-
| `Stop` | Capture knowledge after tasks | `
|
|
72
|
+
| `Stop` | Capture knowledge after tasks | `capture` |
|
|
73
73
|
|
|
74
74
|
No TypeScript hook files - all handled by `hooks.json` with prompt-based hints.
|
|
75
75
|
|
|
@@ -80,7 +80,7 @@ No TypeScript hook files - all handled by `hooks.json` with prompt-based hints.
|
|
|
80
80
|
> **[View Capture Flow Diagram](./diagrams/knowledge-capture-flow.md)**
|
|
81
81
|
|
|
82
82
|
1. User solves a problem
|
|
83
|
-
2. Stop hook triggers `
|
|
83
|
+
2. Stop hook triggers `capture` agent
|
|
84
84
|
3. Agent detects signals (error_resolved, user_confirmation, explicit_save)
|
|
85
85
|
4. Entry created in `.wiki/`
|
|
86
86
|
|
|
@@ -89,7 +89,7 @@ No TypeScript hook files - all handled by `hooks.json` with prompt-based hints.
|
|
|
89
89
|
> **[View Retrieval Flow Diagram](./diagrams/knowledge-retrieval-flow.md)**
|
|
90
90
|
|
|
91
91
|
1. User starts task or encounters error
|
|
92
|
-
2. Hook triggers `
|
|
92
|
+
2. Hook triggers `searcher` agent
|
|
93
93
|
3. Agent searches by keywords, triggers, category
|
|
94
94
|
4. Matching solutions displayed
|
|
95
95
|
|
|
@@ -18,13 +18,13 @@ graph TB
|
|
|
18
18
|
end
|
|
19
19
|
|
|
20
20
|
subgraph "Agents (8) - ALL LOGIC"
|
|
21
|
-
A1["
|
|
22
|
-
A2["
|
|
23
|
-
A3["
|
|
24
|
-
A4["
|
|
25
|
-
A5["
|
|
26
|
-
A6["
|
|
27
|
-
A7["
|
|
21
|
+
A1["searcher"]
|
|
22
|
+
A2["capture"]
|
|
23
|
+
A3["scanner"]
|
|
24
|
+
A4["validator"]
|
|
25
|
+
A5["stats"]
|
|
26
|
+
A6["health"]
|
|
27
|
+
A7["graph"]
|
|
28
28
|
A8["wiki-duplicate"]
|
|
29
29
|
end
|
|
30
30
|
|
|
@@ -24,7 +24,7 @@ flowchart TD
|
|
|
24
24
|
end
|
|
25
25
|
|
|
26
26
|
subgraph Capture["Knowledge Capture"]
|
|
27
|
-
StopHook["Stop Hook<br/>(prompt: use
|
|
27
|
+
StopHook["Stop Hook<br/>(prompt: use capture)"]
|
|
28
28
|
StopHook --> DetectSignals["Detect signals"]
|
|
29
29
|
DetectSignals --> |error_resolved| CaptureKnowledge
|
|
30
30
|
DetectSignals --> |user_confirmation| CaptureKnowledge
|
|
@@ -12,14 +12,14 @@ graph TB
|
|
|
12
12
|
Skills --> Agents
|
|
13
13
|
Hooks --> Agents
|
|
14
14
|
subgraph Agents["8 Agents - ALL LOGIC"]
|
|
15
|
-
A1["
|
|
16
|
-
A2["
|
|
17
|
-
A3["
|
|
18
|
-
A4["
|
|
19
|
-
A5["
|
|
20
|
-
A6["
|
|
21
|
-
A7["
|
|
22
|
-
A8["
|
|
15
|
+
A1["searcher"]
|
|
16
|
+
A2["capture"]
|
|
17
|
+
A3["scanner"]
|
|
18
|
+
A4["validator"]
|
|
19
|
+
A5["stats"]
|
|
20
|
+
A6["health"]
|
|
21
|
+
A7["graph"]
|
|
22
|
+
A8["duplicate-checker"]
|
|
23
23
|
end
|
|
24
24
|
end
|
|
25
25
|
Agents --> Storage
|
package/docs/getting-started.md
CHANGED
|
@@ -79,7 +79,7 @@ Solvdex hooks provide prompt-based hints to use wiki agents:
|
|
|
79
79
|
| Hook | Suggests | Trigger | Purpose |
|
|
80
80
|
|------|----------|---------|---------|
|
|
81
81
|
| SessionStart | `wiki-advisor` | New conversation | Hint to check for relevant entries |
|
|
82
|
-
| Stop | `
|
|
82
|
+
| Stop | `capture` | Task completes | Hint to capture valuable knowledge |
|
|
83
83
|
|
|
84
84
|
Hooks are configured in `hooks/hooks.json` - no TypeScript needed. For error lookups, use `/wiki search` manually.
|
|
85
85
|
|
package/docs/use-cases.md
CHANGED
|
@@ -32,7 +32,7 @@ If a matching trigger pattern exists (e.g., `ETIMEDOUT.*database`), displays sol
|
|
|
32
32
|
**Situation:** You solved a tricky bug and want to save it.
|
|
33
33
|
|
|
34
34
|
**Prompt-Guided Flow:**
|
|
35
|
-
1. Stop hook provides hint to use `
|
|
35
|
+
1. Stop hook provides hint to use `capture` agent
|
|
36
36
|
2. Claude offers to capture if valuable knowledge detected
|
|
37
37
|
3. Creates entry:
|
|
38
38
|
|
|
@@ -277,7 +277,7 @@ Automatically creates structured entry with proper category.
|
|
|
277
277
|
|
|
278
278
|
**Situation:** Starting work on a task and want relevant context.
|
|
279
279
|
|
|
280
|
-
Use search with the `
|
|
280
|
+
Use search with the `searcher` agent:
|
|
281
281
|
```
|
|
282
282
|
/wiki search authentication patterns
|
|
283
283
|
```
|
package/docs/workflows.md
CHANGED
|
@@ -10,7 +10,7 @@ How Solvdex automates knowledge capture and retrieval.
|
|
|
10
10
|
1. **SessionStart** → Prompt hints to use `wiki-advisor` agent
|
|
11
11
|
2. **User prompts** → Claude Code processes
|
|
12
12
|
3. **Tool execution** → User can invoke `/wiki search` on errors
|
|
13
|
-
4. **Continue or Stop** → Prompt hints to use `
|
|
13
|
+
4. **Continue or Stop** → Prompt hints to use `capture` agent
|
|
14
14
|
|
|
15
15
|
## Hook Details
|
|
16
16
|
|
|
@@ -32,19 +32,19 @@ Claude uses the wiki-advisor agent to search for entries that might help with th
|
|
|
32
32
|
|
|
33
33
|
### 2. Stop Hook (Post Task)
|
|
34
34
|
|
|
35
|
-
**Prompt-Based:** Suggests using `
|
|
35
|
+
**Prompt-Based:** Suggests using `capture` agent
|
|
36
36
|
|
|
37
37
|
**Trigger:** Task completes or user stops
|
|
38
38
|
|
|
39
39
|
**Guidance:**
|
|
40
40
|
- Check if a problem was solved during the session
|
|
41
|
-
- Use `
|
|
41
|
+
- Use `capture` agent if solution is novel
|
|
42
42
|
- Determine if knowledge is worth documenting
|
|
43
43
|
|
|
44
44
|
**Expected Behavior:**
|
|
45
|
-
Claude offers to capture the solution using
|
|
45
|
+
Claude offers to capture the solution using capture agent if relevant knowledge was generated.
|
|
46
46
|
|
|
47
|
-
### Category Detection (
|
|
47
|
+
### Category Detection (searcher)
|
|
48
48
|
|
|
49
49
|
| Keywords | Category |
|
|
50
50
|
|----------|----------|
|
package/package.json
CHANGED
package/skills/wiki-add/SKILL.md
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
name: wiki-add
|
|
3
3
|
description: Add current solution to wiki with duplicate detection
|
|
4
4
|
user-invocable: true
|
|
5
|
-
agent:
|
|
5
|
+
agent: capture
|
|
6
6
|
argument-hint: "[--category=<cat>] [--title=<title>]"
|
|
7
7
|
---
|
|
8
8
|
|
|
@@ -25,7 +25,7 @@ Save the current solution to the wiki.
|
|
|
25
25
|
|
|
26
26
|
## What Happens
|
|
27
27
|
|
|
28
|
-
The
|
|
28
|
+
The capture agent will:
|
|
29
29
|
1. Analyze conversation for problem/solution
|
|
30
30
|
2. **Check for duplicate entries** (important!)
|
|
31
31
|
3. Suggest category and tags
|
|
@@ -3,7 +3,7 @@ name: wiki-browse
|
|
|
3
3
|
description: List and filter Solvdex wiki entries. Use to see all available knowledge organized by category.
|
|
4
4
|
argument-hint: "[--category=<cat>] [--status=<status>] [--tag=<tag>]"
|
|
5
5
|
user-invocable: true
|
|
6
|
-
agent:
|
|
6
|
+
agent: searcher
|
|
7
7
|
---
|
|
8
8
|
|
|
9
9
|
# Browse Wiki Entries
|
|
@@ -25,7 +25,7 @@ List all wiki entries with optional filtering, organized by category.
|
|
|
25
25
|
|
|
26
26
|
## What Happens
|
|
27
27
|
|
|
28
|
-
The
|
|
28
|
+
The searcher agent will:
|
|
29
29
|
1. Read all entries from `.wiki/`
|
|
30
30
|
2. Apply any filters (category, status, tag)
|
|
31
31
|
3. Group entries by category
|
|
@@ -3,7 +3,7 @@ name: wiki-capture
|
|
|
3
3
|
description: Intelligent agent that analyzes conversation context and extracts knowledge worth capturing as wiki entries.
|
|
4
4
|
argument-hint: "[--category=<cat>] [--title=<title>] [--dry-run]"
|
|
5
5
|
context: fork
|
|
6
|
-
agent:
|
|
6
|
+
agent: capture
|
|
7
7
|
user-invocable: true
|
|
8
8
|
disable-model-invocation: true
|
|
9
9
|
allowed-tools: Read, Write, Glob, Grep
|
|
@@ -31,7 +31,7 @@ An intelligent agent that analyzes the current conversation context, extracts va
|
|
|
31
31
|
|
|
32
32
|
## What Happens
|
|
33
33
|
|
|
34
|
-
When invoked, the **
|
|
34
|
+
When invoked, the **capture** agent will:
|
|
35
35
|
|
|
36
36
|
1. **Analyze conversation context** to identify:
|
|
37
37
|
- Problems encountered and their solutions
|
|
@@ -3,7 +3,7 @@ name: wiki-explorer
|
|
|
3
3
|
description: Deep search agent that explores wiki entries to find relevant knowledge for a given context or question.
|
|
4
4
|
argument-hint: "<query>"
|
|
5
5
|
context: fork
|
|
6
|
-
agent:
|
|
6
|
+
agent: searcher
|
|
7
7
|
allowed-tools: Read, Glob, Grep
|
|
8
8
|
user-invocable: true
|
|
9
9
|
---
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
name: wiki-export
|
|
3
3
|
description: Export Solvdex wiki to a portable JSON file for backup or migration.
|
|
4
4
|
argument-hint: "[output-file] [--categories=cat1,cat2] [--include-deprecated]"
|
|
5
|
-
agent:
|
|
5
|
+
agent: capture
|
|
6
6
|
user-invocable: true
|
|
7
7
|
disable-model-invocation: true
|
|
8
8
|
---
|
|
@@ -19,7 +19,7 @@ Export wiki entries to a portable JSON format for backup or migration.
|
|
|
19
19
|
|
|
20
20
|
## What Happens
|
|
21
21
|
|
|
22
|
-
When invoked, the **
|
|
22
|
+
When invoked, the **capture** agent will:
|
|
23
23
|
|
|
24
24
|
1. **Verify wiki exists** - Check for `.wiki/` directory
|
|
25
25
|
2. **Parse export options** - Determine output file, categories to include, and whether to include deprecated entries
|
package/skills/wiki-fix/SKILL.md
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
name: wiki-fix
|
|
3
3
|
description: Update a flagged Solvdex wiki entry. Reviews current content, updates with new solution, and resets status to active.
|
|
4
4
|
argument-hint: "<entry-path>"
|
|
5
|
-
agent:
|
|
5
|
+
agent: capture
|
|
6
6
|
user-invocable: true
|
|
7
7
|
disable-model-invocation: true
|
|
8
8
|
---
|
|
@@ -17,7 +17,7 @@ Update a flagged entry and reset its status to active.
|
|
|
17
17
|
|
|
18
18
|
## What Happens
|
|
19
19
|
|
|
20
|
-
When invoked, the **
|
|
20
|
+
When invoked, the **capture** agent will:
|
|
21
21
|
|
|
22
22
|
1. **Read the flagged entry** - Load the current content and metadata
|
|
23
23
|
2. **Show current content and issues** - Display what needs to be fixed
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
name: wiki-flag
|
|
3
3
|
description: Mark a Solvdex wiki entry for review. Use when a solution is outdated or needs verification.
|
|
4
4
|
argument-hint: "<entry-path> [reason]"
|
|
5
|
-
agent:
|
|
5
|
+
agent: validator
|
|
6
6
|
user-invocable: true
|
|
7
7
|
disable-model-invocation: true
|
|
8
8
|
---
|
|
@@ -18,7 +18,7 @@ Mark an entry as needing review.
|
|
|
18
18
|
|
|
19
19
|
## What Happens
|
|
20
20
|
|
|
21
|
-
When invoked, the **
|
|
21
|
+
When invoked, the **validator** agent will:
|
|
22
22
|
|
|
23
23
|
1. **Verify wiki exists** - Check for `.wiki/` directory
|
|
24
24
|
2. **Read the entry** - Load the current content and metadata
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
name: wiki-import
|
|
3
3
|
description: Import Solvdex wiki entries from an export file.
|
|
4
4
|
argument-hint: "<input-file> [--overwrite] [--skip-duplicates] [--dry-run]"
|
|
5
|
-
agent:
|
|
5
|
+
agent: capture
|
|
6
6
|
user-invocable: true
|
|
7
7
|
disable-model-invocation: true
|
|
8
8
|
---
|
|
@@ -23,7 +23,7 @@ Import wiki entries from a previously exported JSON file.
|
|
|
23
23
|
|
|
24
24
|
## What Happens
|
|
25
25
|
|
|
26
|
-
When invoked, the **
|
|
26
|
+
When invoked, the **capture** agent will:
|
|
27
27
|
|
|
28
28
|
1. **Validate input file** - Check that the export file exists and is valid JSON
|
|
29
29
|
2. **Initialize wiki if needed** - Create `.wiki/` structure if it doesn't exist
|
|
@@ -31,7 +31,7 @@ Analyze project and generate wiki stub entries. **Runs quietly by default.**
|
|
|
31
31
|
Use the Task tool to launch the scanner agent:
|
|
32
32
|
|
|
33
33
|
```
|
|
34
|
-
Task(subagent_type="
|
|
34
|
+
Task(subagent_type="scanner", prompt="Scan this project for wiki entries. Return only summary.", run_in_background=false)
|
|
35
35
|
```
|
|
36
36
|
|
|
37
37
|
If `--verbose` is specified, scan directly with full output instead of using the agent.
|
|
@@ -3,7 +3,7 @@ name: wiki-search
|
|
|
3
3
|
description: Search the Solvdex wiki for solutions by keywords, tags, or error patterns. Use when looking for existing knowledge about a problem.
|
|
4
4
|
argument-hint: "<query>"
|
|
5
5
|
user-invocable: true
|
|
6
|
-
agent:
|
|
6
|
+
agent: searcher
|
|
7
7
|
---
|
|
8
8
|
|
|
9
9
|
# Search Wiki
|
|
@@ -23,7 +23,7 @@ Uses semantic understanding - finds related concepts, handles typos.
|
|
|
23
23
|
|
|
24
24
|
## What Happens
|
|
25
25
|
|
|
26
|
-
The
|
|
26
|
+
The searcher agent will:
|
|
27
27
|
1. Load all wiki entries from `.wiki/`
|
|
28
28
|
2. Parse your search query
|
|
29
29
|
3. Search by:
|
|
@@ -3,7 +3,7 @@ name: wiki-stats
|
|
|
3
3
|
description: Show detailed Solvdex wiki statistics with usage analytics, health score, stale entries, and confidence distribution.
|
|
4
4
|
argument-hint: "[--decay]"
|
|
5
5
|
user-invocable: true
|
|
6
|
-
agent:
|
|
6
|
+
agent: stats
|
|
7
7
|
---
|
|
8
8
|
|
|
9
9
|
# Wiki Statistics
|
|
@@ -21,7 +21,7 @@ Display comprehensive wiki statistics including usage analytics, stale entries,
|
|
|
21
21
|
|
|
22
22
|
## What Happens
|
|
23
23
|
|
|
24
|
-
The
|
|
24
|
+
The stats agent will:
|
|
25
25
|
1. Load all wiki entries
|
|
26
26
|
2. Calculate health score (0-100)
|
|
27
27
|
3. Gather statistics:
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
name: wiki-status
|
|
3
3
|
description: Show Solvdex wiki health statistics. Quick overview of entries by category and health issues.
|
|
4
4
|
user-invocable: true
|
|
5
|
-
agent:
|
|
5
|
+
agent: stats
|
|
6
6
|
---
|
|
7
7
|
|
|
8
8
|
# Wiki Status
|
|
@@ -15,7 +15,7 @@ Display a quick overview of wiki health and statistics.
|
|
|
15
15
|
|
|
16
16
|
## What Happens
|
|
17
17
|
|
|
18
|
-
The
|
|
18
|
+
The stats agent will (in quick mode):
|
|
19
19
|
1. Load all wiki entries
|
|
20
20
|
2. Count entries by status and category
|
|
21
21
|
3. Check for health issues
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
name: wiki-test-trigger
|
|
3
3
|
description: Test trigger patterns against sample text to verify error matching.
|
|
4
4
|
argument-hint: "<pattern> <test-text> | --all <test-text>"
|
|
5
|
-
agent:
|
|
5
|
+
agent: searcher
|
|
6
6
|
user-invocable: true
|
|
7
7
|
disable-model-invocation: true
|
|
8
8
|
---
|
|
@@ -32,7 +32,7 @@ Test regex trigger patterns to verify they match expected error messages.
|
|
|
32
32
|
|
|
33
33
|
## What Happens
|
|
34
34
|
|
|
35
|
-
When invoked, the **
|
|
35
|
+
When invoked, the **searcher** agent will:
|
|
36
36
|
|
|
37
37
|
1. **Parse the pattern and test text** - Extract regex pattern and sample text from arguments
|
|
38
38
|
2. **Validate the regex** - Check if the pattern is a valid regular expression
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
name: wiki-validate
|
|
3
3
|
description: Check Solvdex wiki for issues like broken references, stale content, and low confidence entries.
|
|
4
4
|
user-invocable: true
|
|
5
|
-
agent:
|
|
5
|
+
agent: validator
|
|
6
6
|
---
|
|
7
7
|
|
|
8
8
|
# Validate Wiki
|
|
@@ -15,7 +15,7 @@ Check all wiki entries for issues like broken references and stale content.
|
|
|
15
15
|
|
|
16
16
|
## What Happens
|
|
17
17
|
|
|
18
|
-
The
|
|
18
|
+
The validator agent will:
|
|
19
19
|
1. Read all entries from `.wiki/`
|
|
20
20
|
2. Check for common issues:
|
|
21
21
|
- Stub entries (incomplete content)
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|