nexus-dev-toolkit 3.0.0__tar.gz → 3.1.0__tar.gz
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.
- {nexus_dev_toolkit-3.0.0/nexus_dev_toolkit.egg-info → nexus_dev_toolkit-3.1.0}/PKG-INFO +87 -44
- {nexus_dev_toolkit-3.0.0 → nexus_dev_toolkit-3.1.0}/README.md +83 -41
- {nexus_dev_toolkit-3.0.0 → nexus_dev_toolkit-3.1.0}/nexus_cli.py +55 -2
- {nexus_dev_toolkit-3.0.0 → nexus_dev_toolkit-3.1.0/nexus_dev_toolkit.egg-info}/PKG-INFO +87 -44
- {nexus_dev_toolkit-3.0.0 → nexus_dev_toolkit-3.1.0}/nexus_dev_toolkit.egg-info/SOURCES.txt +13 -0
- {nexus_dev_toolkit-3.0.0 → nexus_dev_toolkit-3.1.0}/nexus_dev_toolkit.egg-info/requires.txt +1 -1
- {nexus_dev_toolkit-3.0.0 → nexus_dev_toolkit-3.1.0}/pyproject.toml +5 -3
- nexus_dev_toolkit-3.1.0/tests/test_cli.py +105 -0
- nexus_dev_toolkit-3.1.0/tests/test_server.py +21 -0
- nexus_dev_toolkit-3.1.0/tools/agents/code-reviewer.md +93 -0
- nexus_dev_toolkit-3.1.0/tools/agents/database-reviewer.md +95 -0
- nexus_dev_toolkit-3.1.0/tools/agents/deployment-reviewer.md +97 -0
- nexus_dev_toolkit-3.1.0/tools/agents/monitoring-reviewer.md +95 -0
- nexus_dev_toolkit-3.1.0/tools/agents/performance-reviewer.md +98 -0
- nexus_dev_toolkit-3.1.0/tools/epav/skills/__init__.py +0 -0
- nexus_dev_toolkit-3.1.0/tools/epav/skills/code-review.md +91 -0
- nexus_dev_toolkit-3.1.0/tools/epav/skills/database-review.md +91 -0
- nexus_dev_toolkit-3.1.0/tools/epav/skills/deployment-review.md +94 -0
- nexus_dev_toolkit-3.1.0/tools/epav/skills/monitoring-review.md +91 -0
- nexus_dev_toolkit-3.1.0/tools/epav/skills/performance-review.md +93 -0
- {nexus_dev_toolkit-3.0.0 → nexus_dev_toolkit-3.1.0}/LICENSE +0 -0
- {nexus_dev_toolkit-3.0.0 → nexus_dev_toolkit-3.1.0}/nexus_dev_toolkit.egg-info/dependency_links.txt +0 -0
- {nexus_dev_toolkit-3.0.0 → nexus_dev_toolkit-3.1.0}/nexus_dev_toolkit.egg-info/entry_points.txt +0 -0
- {nexus_dev_toolkit-3.0.0 → nexus_dev_toolkit-3.1.0}/nexus_dev_toolkit.egg-info/top_level.txt +0 -0
- {nexus_dev_toolkit-3.0.0 → nexus_dev_toolkit-3.1.0}/nexus_server.py +0 -0
- {nexus_dev_toolkit-3.0.0 → nexus_dev_toolkit-3.1.0}/setup.cfg +0 -0
- {nexus_dev_toolkit-3.0.0 → nexus_dev_toolkit-3.1.0}/tools/__init__.py +0 -0
- {nexus_dev_toolkit-3.0.0/tools/epav/skills → nexus_dev_toolkit-3.1.0/tools/agents}/__init__.py +0 -0
- {nexus_dev_toolkit-3.0.0 → nexus_dev_toolkit-3.1.0}/tools/epav/__init__.py +0 -0
- {nexus_dev_toolkit-3.0.0 → nexus_dev_toolkit-3.1.0}/tools/epav/arch_ingest.py +0 -0
- {nexus_dev_toolkit-3.0.0 → nexus_dev_toolkit-3.1.0}/tools/epav/package_resolver.py +0 -0
- {nexus_dev_toolkit-3.0.0 → nexus_dev_toolkit-3.1.0}/tools/epav/project_rules.py +0 -0
- {nexus_dev_toolkit-3.0.0 → nexus_dev_toolkit-3.1.0}/tools/epav/skills/apply.md +0 -0
- {nexus_dev_toolkit-3.0.0 → nexus_dev_toolkit-3.1.0}/tools/epav/skills/epav.md +0 -0
- {nexus_dev_toolkit-3.0.0 → nexus_dev_toolkit-3.1.0}/tools/epav/skills/evaluate.md +0 -0
- {nexus_dev_toolkit-3.0.0 → nexus_dev_toolkit-3.1.0}/tools/epav/skills/plan.md +0 -0
- {nexus_dev_toolkit-3.0.0 → nexus_dev_toolkit-3.1.0}/tools/epav/skills/scaffold.md +0 -0
- {nexus_dev_toolkit-3.0.0 → nexus_dev_toolkit-3.1.0}/tools/epav/skills/validate.md +0 -0
- {nexus_dev_toolkit-3.0.0 → nexus_dev_toolkit-3.1.0}/tools/epav/task_loader.py +0 -0
|
@@ -1,16 +1,17 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: nexus-dev-toolkit
|
|
3
|
-
Version: 3.
|
|
4
|
-
Summary:
|
|
3
|
+
Version: 3.1.0
|
|
4
|
+
Summary: Developer workflow toolkit for Claude Code — Day 0 scaffold + Day 1 EPAV
|
|
5
5
|
Author-email: Ronald dela Cruz <rcdelacruz@users.noreply.github.com>
|
|
6
6
|
License-Expression: MIT
|
|
7
7
|
Project-URL: Homepage, https://nexus.coderstudio.co
|
|
8
|
+
Project-URL: Documentation, https://nexus.coderstudio.co/docs
|
|
8
9
|
Project-URL: Repository, https://github.com/rcdelacruz/nexus-dev-toolkit
|
|
9
10
|
Project-URL: Issues, https://github.com/rcdelacruz/nexus-dev-toolkit/issues
|
|
10
11
|
Requires-Python: >=3.10
|
|
11
12
|
Description-Content-Type: text/markdown
|
|
12
13
|
License-File: LICENSE
|
|
13
|
-
Requires-Dist: mcp[cli]>=1.
|
|
14
|
+
Requires-Dist: mcp[cli]>=1.27.1
|
|
14
15
|
Requires-Dist: typer>=0.12.0
|
|
15
16
|
Requires-Dist: rich>=13.0.0
|
|
16
17
|
Provides-Extra: dev
|
|
@@ -20,11 +21,10 @@ Dynamic: license-file
|
|
|
20
21
|
|
|
21
22
|
# nexus-dev-toolkit
|
|
22
23
|
|
|
23
|
-
[](https://pypi.org/project/nexus-dev-toolkit/)
|
|
24
|
-
[](https://pypi.org/project/nexus-dev-toolkit/)
|
|
25
|
-
[](LICENSE)
|
|
26
24
|
|
|
27
|
-
Developer workflow toolkit for
|
|
25
|
+
Developer workflow toolkit for Claude Code. Gives any team a structured Day 0 scaffold and repeatable Day 1 feature cycle via the EPAV methodology.
|
|
26
|
+
|
|
27
|
+
**[Documentation](https://nexus.coderstudio.co/docs)**
|
|
28
28
|
|
|
29
29
|
---
|
|
30
30
|
|
|
@@ -32,7 +32,7 @@ Developer workflow toolkit for AI-assisted development. Gives any team a structu
|
|
|
32
32
|
|
|
33
33
|
Ad-hoc AI prompting doesn't scale. Every dev prompts differently, context drifts, and nobody knows what the AI was told last sprint.
|
|
34
34
|
|
|
35
|
-
|
|
35
|
+
nexus-dev-toolkit gives your team a single workflow:
|
|
36
36
|
|
|
37
37
|
- **Day 0** — scaffold the project once, production-grade, zero credentials needed
|
|
38
38
|
- **Day 1** — every feature follows the same four steps: evaluate → plan → apply → validate
|
|
@@ -41,68 +41,98 @@ Every skill, every rule, every pattern lives in the project repo — versioned,
|
|
|
41
41
|
|
|
42
42
|
---
|
|
43
43
|
|
|
44
|
-
##
|
|
44
|
+
## Setup
|
|
45
45
|
|
|
46
|
-
###
|
|
46
|
+
### 1. Install prerequisites
|
|
47
47
|
|
|
48
|
+
**uv** (recommended package manager):
|
|
49
|
+
```bash
|
|
50
|
+
curl -LsSf https://astral.sh/uv/install.sh | sh
|
|
48
51
|
```
|
|
49
|
-
|
|
52
|
+
|
|
53
|
+
**Claude Code:**
|
|
54
|
+
```bash
|
|
55
|
+
npm install -g @anthropic-ai/claude-code
|
|
56
|
+
claude login
|
|
50
57
|
```
|
|
51
58
|
|
|
52
|
-
|
|
59
|
+
**graphify** _(strongly recommended)_ — builds a queryable knowledge graph of your codebase. EPAV skills query this graph to understand blast radius and cross-file dependencies before touching any code.
|
|
53
60
|
|
|
61
|
+
| | With graphify | Without graphify |
|
|
62
|
+
|---|---|---|
|
|
63
|
+
| Context loading | Scoped subgraph — fast, low token cost | Full file reads — slow, high token cost |
|
|
64
|
+
| Blast radius | Accurate, graph-backed | Best-effort, grep-based |
|
|
65
|
+
| Auto-update | PostToolUse hook keeps graph current | N/A |
|
|
66
|
+
| EPAV skills | Full capability | Degraded but functional |
|
|
67
|
+
|
|
68
|
+
```bash
|
|
69
|
+
uv tool install graphifyy # PyPI package name has double y; command is "graphify"
|
|
70
|
+
graphify install # registers /graphify skill into Claude Code
|
|
54
71
|
```
|
|
55
|
-
|
|
72
|
+
|
|
73
|
+
### 2. Install nexus-dev-toolkit
|
|
74
|
+
|
|
75
|
+
```bash
|
|
76
|
+
uv tool install nexus-dev-toolkit
|
|
56
77
|
```
|
|
57
78
|
|
|
58
|
-
|
|
79
|
+
### 3. Initialize your project
|
|
59
80
|
|
|
60
|
-
|
|
81
|
+
```bash
|
|
82
|
+
cd my-project
|
|
83
|
+
nexus init .
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
### 4. Place your reference docs
|
|
87
|
+
|
|
88
|
+
Before running `/scaffold`, put everything Claude needs in `docs/`:
|
|
61
89
|
|
|
62
90
|
```
|
|
63
|
-
/
|
|
91
|
+
docs/
|
|
92
|
+
├── arch-docs/ ← architecture doc, ADRs
|
|
93
|
+
├── figma/ ← Figma export ZIP
|
|
94
|
+
├── brd/ ← Business Requirements Document
|
|
95
|
+
└── prd/ ← Product Requirements Document
|
|
64
96
|
```
|
|
65
97
|
|
|
66
|
-
|
|
98
|
+
### 5. Start Day 0
|
|
67
99
|
|
|
68
|
-
|
|
100
|
+
Open the project in Claude Code and run:
|
|
101
|
+
```
|
|
102
|
+
/scaffold
|
|
103
|
+
```
|
|
69
104
|
|
|
70
|
-
|
|
105
|
+
`/scaffold` runs EVALUATE first then stops. You drive each phase by typing the next command:
|
|
71
106
|
|
|
72
|
-
|
|
107
|
+
```
|
|
108
|
+
/scaffold → (review) → /plan → (review) → /apply → (review) → /validate
|
|
109
|
+
```
|
|
73
110
|
|
|
74
|
-
|
|
75
|
-
# Recommended
|
|
76
|
-
uv tool install nexus-dev-toolkit
|
|
111
|
+
### 6. Build the knowledge graph
|
|
77
112
|
|
|
78
|
-
|
|
79
|
-
|
|
113
|
+
After `/scaffold` completes, run in Claude Code:
|
|
114
|
+
```
|
|
115
|
+
/graphify .
|
|
80
116
|
```
|
|
81
117
|
|
|
82
|
-
|
|
118
|
+
This generates `graphify-out/graph.json` — required by all EPAV skills before starting Day 1.
|
|
83
119
|
|
|
84
|
-
|
|
120
|
+
---
|
|
85
121
|
|
|
86
|
-
|
|
87
|
-
cd my-project
|
|
88
|
-
nexus init .
|
|
89
|
-
```
|
|
122
|
+
## The Workflow
|
|
90
123
|
|
|
91
|
-
|
|
124
|
+
### Day 0 — `/scaffold` (once per project)
|
|
92
125
|
|
|
93
|
-
|
|
126
|
+
Produces a production-grade project from your architecture document and Figma design: correct stack, mock auth, mock data, design system, AGENTS.md — zero external dependencies. Runs `npm install && npm run dev` (or equivalent) from commit one.
|
|
94
127
|
|
|
95
|
-
|
|
128
|
+
### Day 1 — EPAV (every feature, every sprint)
|
|
96
129
|
|
|
97
|
-
```
|
|
98
|
-
|
|
99
|
-
nexus skill add code-review # create a custom skill in .claude/commands/
|
|
100
|
-
nexus skill list # list all skills
|
|
101
|
-
nexus rule add api-standards # create a rule in knowledge/rules/
|
|
102
|
-
nexus rule list # list all rules
|
|
103
|
-
nexus update # update to latest version
|
|
130
|
+
```
|
|
131
|
+
/evaluate <task> → /plan → /apply → /validate
|
|
104
132
|
```
|
|
105
133
|
|
|
134
|
+
Each step is a built-in skill in `.claude/commands/`. Every task starts from the dev tasks CSV. Every task ends with acceptance criteria verified.
|
|
135
|
+
|
|
106
136
|
---
|
|
107
137
|
|
|
108
138
|
## What `nexus init` Creates
|
|
@@ -116,7 +146,7 @@ nexus update # update to latest version
|
|
|
116
146
|
│ ├── apply.md ← /apply — implement the plan
|
|
117
147
|
│ ├── validate.md ← /validate — verify acceptance criteria
|
|
118
148
|
│ └── epav.md ← /epav — full cycle guide
|
|
119
|
-
└── settings.json ← PostToolUse
|
|
149
|
+
└── settings.json ← PostToolUse: graphify auto-updates after every file edit
|
|
120
150
|
knowledge/
|
|
121
151
|
├── rules/ ← coding standards, arch decisions
|
|
122
152
|
├── patterns/ ← reusable implementation patterns
|
|
@@ -127,8 +157,23 @@ knowledge/
|
|
|
127
157
|
|
|
128
158
|
---
|
|
129
159
|
|
|
160
|
+
## Commands
|
|
161
|
+
|
|
162
|
+
```bash
|
|
163
|
+
nexus init . # set up .claude/commands/ + knowledge/ + .mcp.json
|
|
164
|
+
nexus skill add code-review # create a custom skill in .claude/commands/
|
|
165
|
+
nexus skill list # list all skills
|
|
166
|
+
nexus rule add api-standards # create a rule in knowledge/rules/
|
|
167
|
+
nexus rule list # list all rules
|
|
168
|
+
nexus update # update to latest version
|
|
169
|
+
```
|
|
170
|
+
|
|
171
|
+
---
|
|
172
|
+
|
|
130
173
|
## MCP Server
|
|
131
174
|
|
|
175
|
+
`nexus init` writes `.mcp.json` automatically. For Claude Desktop, add manually:
|
|
176
|
+
|
|
132
177
|
```json
|
|
133
178
|
{
|
|
134
179
|
"mcpServers": {
|
|
@@ -140,8 +185,6 @@ knowledge/
|
|
|
140
185
|
}
|
|
141
186
|
```
|
|
142
187
|
|
|
143
|
-
`nexus init` writes `.mcp.json` automatically.
|
|
144
|
-
|
|
145
188
|
### MCP Tools
|
|
146
189
|
|
|
147
190
|
| Tool | Purpose |
|
|
@@ -1,10 +1,9 @@
|
|
|
1
1
|
# nexus-dev-toolkit
|
|
2
2
|
|
|
3
|
-
[](https://pypi.org/project/nexus-dev-toolkit/)
|
|
4
|
-
[](https://pypi.org/project/nexus-dev-toolkit/)
|
|
5
|
-
[](LICENSE)
|
|
6
3
|
|
|
7
|
-
Developer workflow toolkit for
|
|
4
|
+
Developer workflow toolkit for Claude Code. Gives any team a structured Day 0 scaffold and repeatable Day 1 feature cycle via the EPAV methodology.
|
|
5
|
+
|
|
6
|
+
**[Documentation](https://nexus.coderstudio.co/docs)**
|
|
8
7
|
|
|
9
8
|
---
|
|
10
9
|
|
|
@@ -12,7 +11,7 @@ Developer workflow toolkit for AI-assisted development. Gives any team a structu
|
|
|
12
11
|
|
|
13
12
|
Ad-hoc AI prompting doesn't scale. Every dev prompts differently, context drifts, and nobody knows what the AI was told last sprint.
|
|
14
13
|
|
|
15
|
-
|
|
14
|
+
nexus-dev-toolkit gives your team a single workflow:
|
|
16
15
|
|
|
17
16
|
- **Day 0** — scaffold the project once, production-grade, zero credentials needed
|
|
18
17
|
- **Day 1** — every feature follows the same four steps: evaluate → plan → apply → validate
|
|
@@ -21,68 +20,98 @@ Every skill, every rule, every pattern lives in the project repo — versioned,
|
|
|
21
20
|
|
|
22
21
|
---
|
|
23
22
|
|
|
24
|
-
##
|
|
23
|
+
## Setup
|
|
25
24
|
|
|
26
|
-
###
|
|
25
|
+
### 1. Install prerequisites
|
|
27
26
|
|
|
27
|
+
**uv** (recommended package manager):
|
|
28
|
+
```bash
|
|
29
|
+
curl -LsSf https://astral.sh/uv/install.sh | sh
|
|
28
30
|
```
|
|
29
|
-
|
|
31
|
+
|
|
32
|
+
**Claude Code:**
|
|
33
|
+
```bash
|
|
34
|
+
npm install -g @anthropic-ai/claude-code
|
|
35
|
+
claude login
|
|
30
36
|
```
|
|
31
37
|
|
|
32
|
-
|
|
38
|
+
**graphify** _(strongly recommended)_ — builds a queryable knowledge graph of your codebase. EPAV skills query this graph to understand blast radius and cross-file dependencies before touching any code.
|
|
33
39
|
|
|
40
|
+
| | With graphify | Without graphify |
|
|
41
|
+
|---|---|---|
|
|
42
|
+
| Context loading | Scoped subgraph — fast, low token cost | Full file reads — slow, high token cost |
|
|
43
|
+
| Blast radius | Accurate, graph-backed | Best-effort, grep-based |
|
|
44
|
+
| Auto-update | PostToolUse hook keeps graph current | N/A |
|
|
45
|
+
| EPAV skills | Full capability | Degraded but functional |
|
|
46
|
+
|
|
47
|
+
```bash
|
|
48
|
+
uv tool install graphifyy # PyPI package name has double y; command is "graphify"
|
|
49
|
+
graphify install # registers /graphify skill into Claude Code
|
|
34
50
|
```
|
|
35
|
-
|
|
51
|
+
|
|
52
|
+
### 2. Install nexus-dev-toolkit
|
|
53
|
+
|
|
54
|
+
```bash
|
|
55
|
+
uv tool install nexus-dev-toolkit
|
|
36
56
|
```
|
|
37
57
|
|
|
38
|
-
|
|
58
|
+
### 3. Initialize your project
|
|
39
59
|
|
|
40
|
-
|
|
60
|
+
```bash
|
|
61
|
+
cd my-project
|
|
62
|
+
nexus init .
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
### 4. Place your reference docs
|
|
66
|
+
|
|
67
|
+
Before running `/scaffold`, put everything Claude needs in `docs/`:
|
|
41
68
|
|
|
42
69
|
```
|
|
43
|
-
/
|
|
70
|
+
docs/
|
|
71
|
+
├── arch-docs/ ← architecture doc, ADRs
|
|
72
|
+
├── figma/ ← Figma export ZIP
|
|
73
|
+
├── brd/ ← Business Requirements Document
|
|
74
|
+
└── prd/ ← Product Requirements Document
|
|
44
75
|
```
|
|
45
76
|
|
|
46
|
-
|
|
77
|
+
### 5. Start Day 0
|
|
47
78
|
|
|
48
|
-
|
|
79
|
+
Open the project in Claude Code and run:
|
|
80
|
+
```
|
|
81
|
+
/scaffold
|
|
82
|
+
```
|
|
49
83
|
|
|
50
|
-
|
|
84
|
+
`/scaffold` runs EVALUATE first then stops. You drive each phase by typing the next command:
|
|
51
85
|
|
|
52
|
-
|
|
86
|
+
```
|
|
87
|
+
/scaffold → (review) → /plan → (review) → /apply → (review) → /validate
|
|
88
|
+
```
|
|
53
89
|
|
|
54
|
-
|
|
55
|
-
# Recommended
|
|
56
|
-
uv tool install nexus-dev-toolkit
|
|
90
|
+
### 6. Build the knowledge graph
|
|
57
91
|
|
|
58
|
-
|
|
59
|
-
|
|
92
|
+
After `/scaffold` completes, run in Claude Code:
|
|
93
|
+
```
|
|
94
|
+
/graphify .
|
|
60
95
|
```
|
|
61
96
|
|
|
62
|
-
|
|
97
|
+
This generates `graphify-out/graph.json` — required by all EPAV skills before starting Day 1.
|
|
63
98
|
|
|
64
|
-
|
|
99
|
+
---
|
|
65
100
|
|
|
66
|
-
|
|
67
|
-
cd my-project
|
|
68
|
-
nexus init .
|
|
69
|
-
```
|
|
101
|
+
## The Workflow
|
|
70
102
|
|
|
71
|
-
|
|
103
|
+
### Day 0 — `/scaffold` (once per project)
|
|
72
104
|
|
|
73
|
-
|
|
105
|
+
Produces a production-grade project from your architecture document and Figma design: correct stack, mock auth, mock data, design system, AGENTS.md — zero external dependencies. Runs `npm install && npm run dev` (or equivalent) from commit one.
|
|
74
106
|
|
|
75
|
-
|
|
107
|
+
### Day 1 — EPAV (every feature, every sprint)
|
|
76
108
|
|
|
77
|
-
```
|
|
78
|
-
|
|
79
|
-
nexus skill add code-review # create a custom skill in .claude/commands/
|
|
80
|
-
nexus skill list # list all skills
|
|
81
|
-
nexus rule add api-standards # create a rule in knowledge/rules/
|
|
82
|
-
nexus rule list # list all rules
|
|
83
|
-
nexus update # update to latest version
|
|
109
|
+
```
|
|
110
|
+
/evaluate <task> → /plan → /apply → /validate
|
|
84
111
|
```
|
|
85
112
|
|
|
113
|
+
Each step is a built-in skill in `.claude/commands/`. Every task starts from the dev tasks CSV. Every task ends with acceptance criteria verified.
|
|
114
|
+
|
|
86
115
|
---
|
|
87
116
|
|
|
88
117
|
## What `nexus init` Creates
|
|
@@ -96,7 +125,7 @@ nexus update # update to latest version
|
|
|
96
125
|
│ ├── apply.md ← /apply — implement the plan
|
|
97
126
|
│ ├── validate.md ← /validate — verify acceptance criteria
|
|
98
127
|
│ └── epav.md ← /epav — full cycle guide
|
|
99
|
-
└── settings.json ← PostToolUse
|
|
128
|
+
└── settings.json ← PostToolUse: graphify auto-updates after every file edit
|
|
100
129
|
knowledge/
|
|
101
130
|
├── rules/ ← coding standards, arch decisions
|
|
102
131
|
├── patterns/ ← reusable implementation patterns
|
|
@@ -107,8 +136,23 @@ knowledge/
|
|
|
107
136
|
|
|
108
137
|
---
|
|
109
138
|
|
|
139
|
+
## Commands
|
|
140
|
+
|
|
141
|
+
```bash
|
|
142
|
+
nexus init . # set up .claude/commands/ + knowledge/ + .mcp.json
|
|
143
|
+
nexus skill add code-review # create a custom skill in .claude/commands/
|
|
144
|
+
nexus skill list # list all skills
|
|
145
|
+
nexus rule add api-standards # create a rule in knowledge/rules/
|
|
146
|
+
nexus rule list # list all rules
|
|
147
|
+
nexus update # update to latest version
|
|
148
|
+
```
|
|
149
|
+
|
|
150
|
+
---
|
|
151
|
+
|
|
110
152
|
## MCP Server
|
|
111
153
|
|
|
154
|
+
`nexus init` writes `.mcp.json` automatically. For Claude Desktop, add manually:
|
|
155
|
+
|
|
112
156
|
```json
|
|
113
157
|
{
|
|
114
158
|
"mcpServers": {
|
|
@@ -120,8 +164,6 @@ knowledge/
|
|
|
120
164
|
}
|
|
121
165
|
```
|
|
122
166
|
|
|
123
|
-
`nexus init` writes `.mcp.json` automatically.
|
|
124
|
-
|
|
125
167
|
### MCP Tools
|
|
126
168
|
|
|
127
169
|
| Tool | Purpose |
|
|
@@ -8,7 +8,7 @@ import typer
|
|
|
8
8
|
from rich.console import Console
|
|
9
9
|
from rich.table import Table
|
|
10
10
|
|
|
11
|
-
app = typer.Typer(name="nexus", no_args_is_help=
|
|
11
|
+
app = typer.Typer(name="nexus", no_args_is_help=False, help="nexus-dev-toolkit — Day 0 scaffold + Day 1 EPAV workflow for Claude Code")
|
|
12
12
|
skill_app = typer.Typer(name="skill", no_args_is_help=True, help="Manage skills in .claude/commands/")
|
|
13
13
|
rule_app = typer.Typer(name="rule", no_args_is_help=True, help="Manage rules in knowledge/rules/")
|
|
14
14
|
app.add_typer(skill_app, name="skill")
|
|
@@ -16,6 +16,31 @@ app.add_typer(rule_app, name="rule")
|
|
|
16
16
|
|
|
17
17
|
console = Console()
|
|
18
18
|
|
|
19
|
+
_VERSION = "3.1.0"
|
|
20
|
+
|
|
21
|
+
_LOGO = """\
|
|
22
|
+
[cyan]███╗ ██╗███████╗██╗ ██╗██╗ ██╗███████╗[/cyan]
|
|
23
|
+
[cyan]████╗ ██║██╔════╝╚██╗██╔╝██║ ██║██╔════╝[/cyan]
|
|
24
|
+
[cyan]██╔██╗ ██║█████╗ ╚███╔╝ ██║ ██║███████╗[/cyan]
|
|
25
|
+
[cyan]██║╚██╗██║██╔══╝ ██╔██╗ ██║ ██║╚════██║[/cyan]
|
|
26
|
+
[cyan]██║ ╚████║███████╗██╔╝ ██╗╚██████╔╝███████║[/cyan]
|
|
27
|
+
[cyan]╚═╝ ╚═══╝╚══════╝╚═╝ ╚═╝ ╚═════╝ ╚══════╝[/cyan]
|
|
28
|
+
[dim white]dev toolkit[/dim white] [dim cyan]v{version}[/dim cyan]"""
|
|
29
|
+
|
|
30
|
+
|
|
31
|
+
def _print_logo() -> None:
|
|
32
|
+
from rich.padding import Padding
|
|
33
|
+
console.print()
|
|
34
|
+
console.print(Padding(_LOGO.format(version=_VERSION), (0, 2)))
|
|
35
|
+
console.print()
|
|
36
|
+
|
|
37
|
+
|
|
38
|
+
@app.callback(invoke_without_command=True)
|
|
39
|
+
def _callback(ctx: typer.Context) -> None:
|
|
40
|
+
if ctx.invoked_subcommand is None:
|
|
41
|
+
_print_logo()
|
|
42
|
+
console.print(ctx.get_help())
|
|
43
|
+
|
|
19
44
|
# ── Built-in skills shipped with the package ──────────────────────────────────
|
|
20
45
|
|
|
21
46
|
_SKILLS_SRC = Path(__file__).parent / "tools" / "epav" / "skills"
|
|
@@ -27,8 +52,24 @@ _BUILTIN_SKILLS = [
|
|
|
27
52
|
"apply.md",
|
|
28
53
|
"validate.md",
|
|
29
54
|
"epav.md",
|
|
55
|
+
"code-review.md",
|
|
56
|
+
"database-review.md",
|
|
57
|
+
"deployment-review.md",
|
|
58
|
+
"performance-review.md",
|
|
59
|
+
"monitoring-review.md",
|
|
60
|
+
]
|
|
61
|
+
|
|
62
|
+
_AGENTS_SRC = Path(__file__).parent / "tools" / "agents"
|
|
63
|
+
|
|
64
|
+
_BUILTIN_AGENTS = [
|
|
65
|
+
"deployment-reviewer.md",
|
|
66
|
+
"code-reviewer.md",
|
|
67
|
+
"performance-reviewer.md",
|
|
68
|
+
"monitoring-reviewer.md",
|
|
69
|
+
"database-reviewer.md",
|
|
30
70
|
]
|
|
31
71
|
|
|
72
|
+
|
|
32
73
|
# ── .claude/settings.json ────────────────────────────────────────────────────
|
|
33
74
|
|
|
34
75
|
_CLAUDE_SETTINGS = {
|
|
@@ -70,6 +111,7 @@ def _init_project(project_dir: Path) -> list[str]:
|
|
|
70
111
|
"""
|
|
71
112
|
nexus init — sets up:
|
|
72
113
|
.claude/commands/ ← built-in skills
|
|
114
|
+
.claude/agents/ ← built-in subagents
|
|
73
115
|
.claude/settings.json ← PostToolUse graphify hook
|
|
74
116
|
knowledge/ ← empty scaffold
|
|
75
117
|
"""
|
|
@@ -86,6 +128,17 @@ def _init_project(project_dir: Path) -> list[str]:
|
|
|
86
128
|
shutil.copy2(src, dest)
|
|
87
129
|
created.append(f".claude/commands/{skill_name}")
|
|
88
130
|
|
|
131
|
+
# .claude/agents/ — copy built-in subagents
|
|
132
|
+
agents_dir = project_dir / ".claude" / "agents"
|
|
133
|
+
agents_dir.mkdir(parents=True, exist_ok=True)
|
|
134
|
+
|
|
135
|
+
for agent_name in _BUILTIN_AGENTS:
|
|
136
|
+
src = _AGENTS_SRC / agent_name
|
|
137
|
+
dest = agents_dir / agent_name
|
|
138
|
+
if src.exists() and not dest.exists():
|
|
139
|
+
shutil.copy2(src, dest)
|
|
140
|
+
created.append(f".claude/agents/{agent_name}")
|
|
141
|
+
|
|
89
142
|
# .claude/settings.json — PostToolUse graphify hook
|
|
90
143
|
settings_path = project_dir / ".claude" / "settings.json"
|
|
91
144
|
if not settings_path.exists():
|
|
@@ -121,7 +174,7 @@ def init(
|
|
|
121
174
|
) -> None:
|
|
122
175
|
"""Initialize .claude/commands/, .claude/settings.json, and knowledge/ in a project."""
|
|
123
176
|
root = Path(project_dir).resolve()
|
|
124
|
-
console.print(f"
|
|
177
|
+
console.print(f" [cyan]▶[/cyan] Initializing nexus in [bold]{root}[/bold]\n")
|
|
125
178
|
|
|
126
179
|
created = _init_project(root)
|
|
127
180
|
for f in created:
|