dino-spec 0.3.1 → 0.3.2
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/LICENSE +21 -21
- package/README.md +298 -275
- package/bin/dino.js +3 -3
- package/dist/cli/index.js +9 -0
- package/dist/cli/index.js.map +1 -1
- package/dist/commands/init.d.ts.map +1 -1
- package/dist/commands/init.js +9 -0
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/museum.d.ts +9 -0
- package/dist/commands/museum.d.ts.map +1 -0
- package/dist/commands/museum.js +252 -0
- package/dist/commands/museum.js.map +1 -0
- package/dist/commands/provider.js +17 -17
- package/dist/commands/update.d.ts.map +1 -1
- package/dist/commands/update.js +16 -0
- package/dist/commands/update.js.map +1 -1
- package/dist/core/config.d.ts +4 -2
- package/dist/core/config.d.ts.map +1 -1
- package/dist/core/config.js +21 -6
- package/dist/core/config.js.map +1 -1
- package/dist/core/skills/registry.js +17 -17
- package/dist/core/templates/dna-template.js +45 -45
- package/dist/core/templates/rules-template.d.ts.map +1 -1
- package/dist/core/templates/rules-template.js +11 -4
- package/dist/core/templates/rules-template.js.map +1 -1
- package/dist/core/templates/skill-template.d.ts.map +1 -1
- package/dist/core/templates/skill-template.js +15 -10
- package/dist/core/templates/skill-template.js.map +1 -1
- package/dist/core/templates/slash-commands.d.ts.map +1 -1
- package/dist/core/templates/slash-commands.js +231 -29
- package/dist/core/templates/slash-commands.js.map +1 -1
- package/dist/utils/ascii-art.d.ts +3 -1
- package/dist/utils/ascii-art.d.ts.map +1 -1
- package/dist/utils/ascii-art.js +18 -16
- package/dist/utils/ascii-art.js.map +1 -1
- package/package.json +68 -68
package/LICENSE
CHANGED
|
@@ -1,21 +1,21 @@
|
|
|
1
|
-
MIT License
|
|
2
|
-
|
|
3
|
-
Copyright (c) 2025 keenu
|
|
4
|
-
|
|
5
|
-
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
-
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
-
in the Software without restriction, including without limitation the rights
|
|
8
|
-
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
-
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
-
furnished to do so, subject to the following conditions:
|
|
11
|
-
|
|
12
|
-
The above copyright notice and this permission notice shall be included in all
|
|
13
|
-
copies or substantial portions of the Software.
|
|
14
|
-
|
|
15
|
-
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
-
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
-
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
-
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
-
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
-
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
-
SOFTWARE.
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2025 keenu
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
CHANGED
|
@@ -1,275 +1,298 @@
|
|
|
1
|
-
# dino-spec
|
|
2
|
-
|
|
3
|
-
> Spec-driven development workflow for Claude Code with dinosaur-themed phases
|
|
4
|
-
|
|
5
|
-
```
|
|
6
|
-
__
|
|
7
|
-
(_ \
|
|
8
|
-
.-^^^ /
|
|
9
|
-
/ /
|
|
10
|
-
<__|-|__|
|
|
11
|
-
```
|
|
12
|
-
|
|
13
|
-
**dino-spec** is a CLI tool that brings structured, specification-driven development to [Claude Code](https://claude.ai/code). It guides you through a dinosaur-themed workflow: from discovering requirements to hunting down implementation tasks.
|
|
14
|
-
|
|
15
|
-
## Why dino-spec?
|
|
16
|
-
|
|
17
|
-
When working with AI coding assistants, projects often suffer from:
|
|
18
|
-
|
|
19
|
-
- **Context loss** - AI forgets what you're building mid-conversation
|
|
20
|
-
- **Scope creep** - Features expand without clear boundaries
|
|
21
|
-
- **Unstructured iteration** - No clear progression from idea to implementation
|
|
22
|
-
- **Lost specifications** - Requirements scattered across conversations
|
|
23
|
-
|
|
24
|
-
**dino-spec** solves these problems by:
|
|
25
|
-
|
|
26
|
-
- Persisting specifications in `.dino/` files that survive context resets
|
|
27
|
-
- Enforcing a structured workflow with clear phase transitions
|
|
28
|
-
- Breaking work into small, trackable tasks (max 8-10 per phase)
|
|
29
|
-
- Integrating directly with Claude Code via slash commands
|
|
30
|
-
|
|
31
|
-
## Who is this for?
|
|
32
|
-
|
|
33
|
-
- **Developers using Claude Code** who want structured AI-assisted development
|
|
34
|
-
- **Teams** who need reproducible specification workflows
|
|
35
|
-
- **Solo developers** building complex features incrementally
|
|
36
|
-
- **Anyone** tired of re-explaining context to AI assistants
|
|
37
|
-
|
|
38
|
-
## Installation
|
|
39
|
-
|
|
40
|
-
### From npm (recommended)
|
|
41
|
-
|
|
42
|
-
```bash
|
|
43
|
-
npm install -g dino-spec
|
|
44
|
-
```
|
|
45
|
-
|
|
46
|
-
### From GitHub
|
|
47
|
-
|
|
48
|
-
```bash
|
|
49
|
-
git clone https://github.com/xullul/dino-spec.git
|
|
50
|
-
cd dino-spec
|
|
51
|
-
pnpm install
|
|
52
|
-
pnpm build
|
|
53
|
-
npm link
|
|
54
|
-
```
|
|
55
|
-
|
|
56
|
-
## Quick Start
|
|
57
|
-
|
|
58
|
-
```bash
|
|
59
|
-
# Initialize in your project
|
|
60
|
-
cd your-project
|
|
61
|
-
dino init
|
|
62
|
-
|
|
63
|
-
# Open Claude Code and run:
|
|
64
|
-
# /dino.discover add user authentication
|
|
65
|
-
```
|
|
66
|
-
|
|
67
|
-
## The Dinosaur Workflow
|
|
68
|
-
|
|
69
|
-
Each phase builds on the previous, ensuring nothing is lost:
|
|
70
|
-
|
|
71
|
-
```
|
|
72
|
-
discover → scout →
|
|
73
|
-
```
|
|
74
|
-
|
|
75
|
-
| Phase
|
|
76
|
-
|
|
77
|
-
| **Discover** | `/dino.discover` | Capture requirements and create specification
|
|
78
|
-
| **Scout**
|
|
79
|
-
| **
|
|
80
|
-
| **Nest**
|
|
81
|
-
| **Hatch**
|
|
82
|
-
| **Hunt**
|
|
83
|
-
| **
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
dino
|
|
95
|
-
dino
|
|
96
|
-
dino
|
|
97
|
-
dino
|
|
98
|
-
dino
|
|
99
|
-
|
|
100
|
-
#
|
|
101
|
-
dino
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
dino skill
|
|
105
|
-
|
|
106
|
-
#
|
|
107
|
-
dino
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
dino provider
|
|
111
|
-
dino provider
|
|
112
|
-
dino provider
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
your
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
│
|
|
126
|
-
│ │ ├── dino.
|
|
127
|
-
│ │ ├── dino.
|
|
128
|
-
│ │ ├── dino.
|
|
129
|
-
│ │ ├── dino.
|
|
130
|
-
│ │
|
|
131
|
-
│ ├──
|
|
132
|
-
│ │
|
|
133
|
-
│
|
|
134
|
-
│
|
|
135
|
-
└──
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
```
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
```
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
```bash
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
```
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
dino
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
##
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
1
|
+
# dino-spec
|
|
2
|
+
|
|
3
|
+
> Spec-driven development workflow for Claude Code with dinosaur-themed phases
|
|
4
|
+
|
|
5
|
+
```
|
|
6
|
+
__
|
|
7
|
+
(_ \
|
|
8
|
+
.-^^^ /
|
|
9
|
+
/ /
|
|
10
|
+
<__|-|__|
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
**dino-spec** is a CLI tool that brings structured, specification-driven development to [Claude Code](https://claude.ai/code). It guides you through a dinosaur-themed workflow: from discovering requirements to hunting down implementation tasks.
|
|
14
|
+
|
|
15
|
+
## Why dino-spec?
|
|
16
|
+
|
|
17
|
+
When working with AI coding assistants, projects often suffer from:
|
|
18
|
+
|
|
19
|
+
- **Context loss** - AI forgets what you're building mid-conversation
|
|
20
|
+
- **Scope creep** - Features expand without clear boundaries
|
|
21
|
+
- **Unstructured iteration** - No clear progression from idea to implementation
|
|
22
|
+
- **Lost specifications** - Requirements scattered across conversations
|
|
23
|
+
|
|
24
|
+
**dino-spec** solves these problems by:
|
|
25
|
+
|
|
26
|
+
- Persisting specifications in `.dino/` files that survive context resets
|
|
27
|
+
- Enforcing a structured workflow with clear phase transitions
|
|
28
|
+
- Breaking work into small, trackable tasks (max 8-10 per phase)
|
|
29
|
+
- Integrating directly with Claude Code via slash commands
|
|
30
|
+
|
|
31
|
+
## Who is this for?
|
|
32
|
+
|
|
33
|
+
- **Developers using Claude Code** who want structured AI-assisted development
|
|
34
|
+
- **Teams** who need reproducible specification workflows
|
|
35
|
+
- **Solo developers** building complex features incrementally
|
|
36
|
+
- **Anyone** tired of re-explaining context to AI assistants
|
|
37
|
+
|
|
38
|
+
## Installation
|
|
39
|
+
|
|
40
|
+
### From npm (recommended)
|
|
41
|
+
|
|
42
|
+
```bash
|
|
43
|
+
npm install -g dino-spec
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
### From GitHub
|
|
47
|
+
|
|
48
|
+
```bash
|
|
49
|
+
git clone https://github.com/xullul/dino-spec.git
|
|
50
|
+
cd dino-spec
|
|
51
|
+
pnpm install
|
|
52
|
+
pnpm build
|
|
53
|
+
npm link
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
## Quick Start
|
|
57
|
+
|
|
58
|
+
```bash
|
|
59
|
+
# Initialize in your project
|
|
60
|
+
cd your-project
|
|
61
|
+
dino init
|
|
62
|
+
|
|
63
|
+
# Open Claude Code and run:
|
|
64
|
+
# /dino.discover add user authentication
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
## The Dinosaur Workflow
|
|
68
|
+
|
|
69
|
+
Each phase builds on the previous, ensuring nothing is lost:
|
|
70
|
+
|
|
71
|
+
```
|
|
72
|
+
discover → scout → sniff → nest → hatch → hunt → aging → fossil → [extinct]
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
| Phase | Command | Purpose |
|
|
76
|
+
| ------------ | ---------------- | ---------------------------------------------- |
|
|
77
|
+
| **Discover** | `/dino.discover` | Capture requirements and create specification |
|
|
78
|
+
| **Scout** | `/dino.scout` | Research codebase and technical options |
|
|
79
|
+
| **Sniff** | `/dino.sniff` | Sniff out ambiguities with targeted questions | (optional) |
|
|
80
|
+
| **Nest** | `/dino.nest` | Create implementation plan (Plan Mode) |
|
|
81
|
+
| **Hatch** | `/dino.hatch` | Break plan into tasks with requirement mapping |
|
|
82
|
+
| **Hunt** | `/dino.hunt` | Implement tasks with progress tracking |
|
|
83
|
+
| **Aging** | `/dino.aging` | Create and run tests to verify business logic | (optional) |
|
|
84
|
+
| **Fossil** | `/dino.fossil` | Archive completed specification |
|
|
85
|
+
| **Extinct** | `/dino.extinct` | Permanently remove archive, keep museum record | (optional) |
|
|
86
|
+
|
|
87
|
+
Optional: `/dino.next` suggests follow-up features based on completed work.
|
|
88
|
+
|
|
89
|
+
## CLI Commands
|
|
90
|
+
|
|
91
|
+
These commands work **without AI** - saving tokens and providing instant feedback:
|
|
92
|
+
|
|
93
|
+
```bash
|
|
94
|
+
dino init # Initialize dino-spec in your project
|
|
95
|
+
dino status [spec] # Show current spec progress
|
|
96
|
+
dino list # List all specifications
|
|
97
|
+
dino view # Interactive dashboard
|
|
98
|
+
dino active [spec] # Show or set active specification
|
|
99
|
+
dino archive <spec> # Archive completed specification
|
|
100
|
+
dino museum [spec] # View museum records (extinct specs summary)
|
|
101
|
+
dino update # Update configuration files
|
|
102
|
+
|
|
103
|
+
# Skill management
|
|
104
|
+
dino skill list # List installed skills
|
|
105
|
+
dino skill create # Create custom skill
|
|
106
|
+
dino skill install # Install from registry
|
|
107
|
+
dino skill remove # Remove a skill
|
|
108
|
+
|
|
109
|
+
# API Provider management
|
|
110
|
+
dino provider list # List configured providers
|
|
111
|
+
dino provider add # Add a new provider (Z.AI, etc.)
|
|
112
|
+
dino provider remove # Remove a provider
|
|
113
|
+
dino provider show # Show provider details
|
|
114
|
+
dino provider setup # Install shell functions
|
|
115
|
+
dino provider -h # Show provider help
|
|
116
|
+
```
|
|
117
|
+
|
|
118
|
+
## Project Structure
|
|
119
|
+
|
|
120
|
+
After `dino init`, your project will have:
|
|
121
|
+
|
|
122
|
+
```
|
|
123
|
+
your-project/
|
|
124
|
+
├── .claude/
|
|
125
|
+
│ ├── commands/ # Slash commands for Claude Code (12 total)
|
|
126
|
+
│ │ ├── dino.discover.md
|
|
127
|
+
│ │ ├── dino.scout.md
|
|
128
|
+
│ │ ├── dino.sniff.md
|
|
129
|
+
│ │ ├── dino.nest.md
|
|
130
|
+
│ │ ├── dino.hatch.md
|
|
131
|
+
│ │ ├── dino.hunt.md
|
|
132
|
+
│ │ ├── dino.aging.md
|
|
133
|
+
│ │ ├── dino.fossil.md
|
|
134
|
+
│ │ ├── dino.extinct.md
|
|
135
|
+
│ │ └── ...
|
|
136
|
+
│ ├── skills/dino-workflow/
|
|
137
|
+
│ │ └── SKILL.md # Workflow skill definition
|
|
138
|
+
│ └── rules/dino/
|
|
139
|
+
│ └── workflow.md # Workflow rules
|
|
140
|
+
└── .dino/
|
|
141
|
+
├── active.json # Current active specification
|
|
142
|
+
├── dna.md # Project conventions
|
|
143
|
+
├── specs/ # Active specifications
|
|
144
|
+
├── archive/ # Completed specifications
|
|
145
|
+
└── museum/ # Minimal records of extinct specs
|
|
146
|
+
```
|
|
147
|
+
|
|
148
|
+
## Specification Files
|
|
149
|
+
|
|
150
|
+
Each specification contains:
|
|
151
|
+
|
|
152
|
+
```
|
|
153
|
+
.dino/specs/{spec-id}/
|
|
154
|
+
├── spec.md # Requirements and success criteria
|
|
155
|
+
├── research.md # Technical research from scout phase
|
|
156
|
+
├── plan.md # Implementation plan from nest phase
|
|
157
|
+
├── tasks.md # Phased task checklist with requirement mapping
|
|
158
|
+
└── tests.md # Test cases with business logic verification (aging phase)
|
|
159
|
+
```
|
|
160
|
+
|
|
161
|
+
## Key Features
|
|
162
|
+
|
|
163
|
+
### Context Preservation
|
|
164
|
+
All state is stored in files. When context resets, Claude Code reads `.dino/active.json` and resumes from where you left off.
|
|
165
|
+
|
|
166
|
+
### Plan Mode Integration
|
|
167
|
+
Complex phases (`/dino.nest`, `/dino.hatch`) automatically trigger Claude Code's Plan Mode for careful deliberation.
|
|
168
|
+
|
|
169
|
+
### Task Tracking
|
|
170
|
+
Tasks use a simple checkbox format with requirement mapping and progress bars:
|
|
171
|
+
|
|
172
|
+
```markdown
|
|
173
|
+
- [ ] T001 Implement user model | REQ-1
|
|
174
|
+
- [ ] T002 [P] Add validation (parallelizable) | REQ-1, REQ-2
|
|
175
|
+
- [x] T003 Create database schema (completed) | REQ-3
|
|
176
|
+
```
|
|
177
|
+
|
|
178
|
+
The `| REQ-N` suffix maps tasks to requirements, ensuring every requirement is covered.
|
|
179
|
+
|
|
180
|
+
### Skill System
|
|
181
|
+
Extend functionality with custom skills:
|
|
182
|
+
|
|
183
|
+
```bash
|
|
184
|
+
dino skill create my-linter
|
|
185
|
+
# Edit .claude/skills/my-linter/SKILL.md
|
|
186
|
+
```
|
|
187
|
+
|
|
188
|
+
### API Provider Management
|
|
189
|
+
|
|
190
|
+
Use alternative API providers (like Z.AI) with Claude Code without affecting your default Anthropic subscription:
|
|
191
|
+
|
|
192
|
+
```bash
|
|
193
|
+
# Add Z.AI provider (with optional model mapping for GLM models)
|
|
194
|
+
dino provider add zai \
|
|
195
|
+
--url https://api.z.ai/api/anthropic \
|
|
196
|
+
--key YOUR_API_KEY \
|
|
197
|
+
--sonnet GLM-4.7 \
|
|
198
|
+
--haiku GLM-4.5-Air \
|
|
199
|
+
--opus GLM-4.7
|
|
200
|
+
|
|
201
|
+
# Install shell functions for quick switching
|
|
202
|
+
dino provider setup
|
|
203
|
+
|
|
204
|
+
# Reload PowerShell profile
|
|
205
|
+
. $PROFILE
|
|
206
|
+
```
|
|
207
|
+
|
|
208
|
+
> **Important:** Use `https://api.z.ai/api/anthropic` (Anthropic-compatible endpoint), NOT `https://api.z.ai/api/coding/paas/v4/` (direct GLM endpoint). Claude Code requires the Anthropic-compatible API format.
|
|
209
|
+
|
|
210
|
+
After setup, use these commands in any terminal:
|
|
211
|
+
|
|
212
|
+
| Command | Description |
|
|
213
|
+
|---------|-------------|
|
|
214
|
+
| `claude-zai` | Launch Claude Code with Z.AI |
|
|
215
|
+
| `claude-anthropic` | Reset to default Anthropic |
|
|
216
|
+
|
|
217
|
+
Provider configurations are stored in `~/.dino/providers.json` for cross-computer portability.
|
|
218
|
+
|
|
219
|
+
## Example Workflow
|
|
220
|
+
|
|
221
|
+
```bash
|
|
222
|
+
# 1. Initialize
|
|
223
|
+
dino init
|
|
224
|
+
|
|
225
|
+
# 2. In Claude Code, start a specification
|
|
226
|
+
/dino.discover add dark mode toggle to settings
|
|
227
|
+
|
|
228
|
+
# 3. Claude creates spec.md with requirements
|
|
229
|
+
|
|
230
|
+
# 4. Research the codebase
|
|
231
|
+
/dino.scout
|
|
232
|
+
|
|
233
|
+
# 5. Sniff out any ambiguities
|
|
234
|
+
/dino.sniff
|
|
235
|
+
|
|
236
|
+
# 6. Create implementation plan (enters Plan Mode)
|
|
237
|
+
/dino.nest
|
|
238
|
+
|
|
239
|
+
# 7. Break into tasks with requirement mapping
|
|
240
|
+
/dino.hatch
|
|
241
|
+
|
|
242
|
+
# 8. Implement with progress tracking
|
|
243
|
+
/dino.hunt
|
|
244
|
+
|
|
245
|
+
# 9. Verify with tests
|
|
246
|
+
/dino.aging
|
|
247
|
+
|
|
248
|
+
# 10. Archive when complete
|
|
249
|
+
/dino.fossil
|
|
250
|
+
|
|
251
|
+
# 11. (Optional) Clean up archive, keep museum record
|
|
252
|
+
/dino.extinct
|
|
253
|
+
|
|
254
|
+
# Check progress anytime
|
|
255
|
+
dino status
|
|
256
|
+
dino view
|
|
257
|
+
dino museum # View extinct specs history
|
|
258
|
+
```
|
|
259
|
+
|
|
260
|
+
## Configuration
|
|
261
|
+
|
|
262
|
+
### Project DNA
|
|
263
|
+
|
|
264
|
+
Edit `.dino/dna.md` to define project conventions:
|
|
265
|
+
|
|
266
|
+
```markdown
|
|
267
|
+
# Project DNA
|
|
268
|
+
|
|
269
|
+
## Tech Stack
|
|
270
|
+
- Framework: React
|
|
271
|
+
- Language: TypeScript
|
|
272
|
+
- Testing: Vitest
|
|
273
|
+
|
|
274
|
+
## Conventions
|
|
275
|
+
- Use functional components
|
|
276
|
+
- Prefer composition over inheritance
|
|
277
|
+
```
|
|
278
|
+
|
|
279
|
+
## Requirements
|
|
280
|
+
|
|
281
|
+
- Node.js >= 20.0.0
|
|
282
|
+
- Claude Code CLI
|
|
283
|
+
|
|
284
|
+
## Contributing
|
|
285
|
+
|
|
286
|
+
Contributions welcome! Please read the contribution guidelines before submitting PRs.
|
|
287
|
+
|
|
288
|
+
## License
|
|
289
|
+
|
|
290
|
+
MIT
|
|
291
|
+
|
|
292
|
+
## Acknowledgments
|
|
293
|
+
|
|
294
|
+
Inspired by [spec-kit](https://github.com/spec-kit/spec-kit) and [OpenSpec](https://github.com/openspec/openspec) - combining structured workflows with token-efficient CLI tools.
|
|
295
|
+
|
|
296
|
+
---
|
|
297
|
+
|
|
298
|
+
Built for developers who believe AI coding should be structured, reproducible, and context-aware.
|
package/bin/dino.js
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
|
|
3
|
-
import '../dist/cli/index.js';
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
|
|
3
|
+
import '../dist/cli/index.js';
|
package/dist/cli/index.js
CHANGED
|
@@ -11,6 +11,7 @@ import { archiveCommand } from '../commands/archive.js';
|
|
|
11
11
|
import { updateCommand } from '../commands/update.js';
|
|
12
12
|
import { activeCommand } from '../commands/active.js';
|
|
13
13
|
import { skillListCommand, skillInstallCommand, skillRemoveCommand, skillCreateCommand } from '../commands/skill.js';
|
|
14
|
+
import { museumCommand } from '../commands/museum.js';
|
|
14
15
|
import { providerListCommand, providerAddCommand, providerRemoveCommand, providerShowCommand, providerDefaultCommand, providerSetupCommand, providerEnvCommand, } from '../commands/provider.js';
|
|
15
16
|
const program = new Command();
|
|
16
17
|
program
|
|
@@ -111,6 +112,14 @@ program
|
|
|
111
112
|
.action(async (specName) => {
|
|
112
113
|
await activeCommand(specName);
|
|
113
114
|
});
|
|
115
|
+
// Museum command
|
|
116
|
+
program
|
|
117
|
+
.command('museum [spec]')
|
|
118
|
+
.description('View museum records (compact summaries of extinct specs)')
|
|
119
|
+
.option('--json', 'Output as JSON')
|
|
120
|
+
.action(async (specName, options) => {
|
|
121
|
+
await museumCommand(specName, options);
|
|
122
|
+
});
|
|
114
123
|
// Provider subcommand
|
|
115
124
|
const providerCmd = program
|
|
116
125
|
.command('provider')
|