dino-spec 7.4.2 → 7.5.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/README.md +104 -486
- package/dist/core/agents/__tests__/action-mask.test.d.ts +5 -0
- package/dist/core/agents/__tests__/action-mask.test.d.ts.map +1 -0
- package/dist/core/agents/__tests__/action-mask.test.js +273 -0
- package/dist/core/agents/__tests__/action-mask.test.js.map +1 -0
- package/dist/core/agents/__tests__/budgets.test.d.ts +5 -0
- package/dist/core/agents/__tests__/budgets.test.d.ts.map +1 -0
- package/dist/core/agents/__tests__/budgets.test.js +289 -0
- package/dist/core/agents/__tests__/budgets.test.js.map +1 -0
- package/dist/core/agents/__tests__/orchestrator.test.d.ts +5 -0
- package/dist/core/agents/__tests__/orchestrator.test.d.ts.map +1 -0
- package/dist/core/agents/__tests__/orchestrator.test.js +319 -0
- package/dist/core/agents/__tests__/orchestrator.test.js.map +1 -0
- package/dist/core/agents/action-mask.d.ts +52 -0
- package/dist/core/agents/action-mask.d.ts.map +1 -0
- package/dist/core/agents/action-mask.js +497 -0
- package/dist/core/agents/action-mask.js.map +1 -0
- package/dist/core/agents/budgets.d.ts +122 -0
- package/dist/core/agents/budgets.d.ts.map +1 -0
- package/dist/core/agents/budgets.js +352 -0
- package/dist/core/agents/budgets.js.map +1 -0
- package/dist/core/agents/index.d.ts +14 -0
- package/dist/core/agents/index.d.ts.map +1 -0
- package/dist/core/agents/index.js +17 -0
- package/dist/core/agents/index.js.map +1 -0
- package/dist/core/agents/orchestrator.d.ts +68 -0
- package/dist/core/agents/orchestrator.d.ts.map +1 -0
- package/dist/core/agents/orchestrator.js +459 -0
- package/dist/core/agents/orchestrator.js.map +1 -0
- package/dist/core/agents/types.d.ts +233 -0
- package/dist/core/agents/types.d.ts.map +1 -0
- package/dist/core/agents/types.js +10 -0
- package/dist/core/agents/types.js.map +1 -0
- package/dist/core/context-repl/partitioning/__tests__/by-dependency.test.d.ts +5 -0
- package/dist/core/context-repl/partitioning/__tests__/by-dependency.test.d.ts.map +1 -0
- package/dist/core/context-repl/partitioning/__tests__/by-dependency.test.js +142 -0
- package/dist/core/context-repl/partitioning/__tests__/by-dependency.test.js.map +1 -0
- package/dist/core/context-repl/partitioning/__tests__/by-directory.test.d.ts +5 -0
- package/dist/core/context-repl/partitioning/__tests__/by-directory.test.d.ts.map +1 -0
- package/dist/core/context-repl/partitioning/__tests__/by-directory.test.js +131 -0
- package/dist/core/context-repl/partitioning/__tests__/by-directory.test.js.map +1 -0
- package/dist/core/context-repl/partitioning/__tests__/by-feature.test.d.ts +5 -0
- package/dist/core/context-repl/partitioning/__tests__/by-feature.test.d.ts.map +1 -0
- package/dist/core/context-repl/partitioning/__tests__/by-feature.test.js +131 -0
- package/dist/core/context-repl/partitioning/__tests__/by-feature.test.js.map +1 -0
- package/dist/core/context-repl/partitioning/__tests__/by-time.test.d.ts +5 -0
- package/dist/core/context-repl/partitioning/__tests__/by-time.test.d.ts.map +1 -0
- package/dist/core/context-repl/partitioning/__tests__/by-time.test.js +153 -0
- package/dist/core/context-repl/partitioning/__tests__/by-time.test.js.map +1 -0
- package/dist/core/context-repl/partitioning/__tests__/index.test.d.ts +5 -0
- package/dist/core/context-repl/partitioning/__tests__/index.test.d.ts.map +1 -0
- package/dist/core/context-repl/partitioning/__tests__/index.test.js +193 -0
- package/dist/core/context-repl/partitioning/__tests__/index.test.js.map +1 -0
- package/dist/core/context-repl/partitioning/index.d.ts +55 -0
- package/dist/core/context-repl/partitioning/index.d.ts.map +1 -0
- package/dist/core/context-repl/partitioning/index.js +243 -0
- package/dist/core/context-repl/partitioning/index.js.map +1 -0
- package/dist/core/context-repl/partitioning/partition-cache.d.ts +63 -0
- package/dist/core/context-repl/partitioning/partition-cache.d.ts.map +1 -0
- package/dist/core/context-repl/partitioning/partition-cache.js +212 -0
- package/dist/core/context-repl/partitioning/partition-cache.js.map +1 -0
- package/dist/core/context-repl/partitioning/strategies/by-dependency.d.ts +20 -0
- package/dist/core/context-repl/partitioning/strategies/by-dependency.d.ts.map +1 -0
- package/dist/core/context-repl/partitioning/strategies/by-dependency.js +368 -0
- package/dist/core/context-repl/partitioning/strategies/by-dependency.js.map +1 -0
- package/dist/core/context-repl/partitioning/strategies/by-directory.d.ts +20 -0
- package/dist/core/context-repl/partitioning/strategies/by-directory.d.ts.map +1 -0
- package/dist/core/context-repl/partitioning/strategies/by-directory.js +235 -0
- package/dist/core/context-repl/partitioning/strategies/by-directory.js.map +1 -0
- package/dist/core/context-repl/partitioning/strategies/by-feature.d.ts +21 -0
- package/dist/core/context-repl/partitioning/strategies/by-feature.d.ts.map +1 -0
- package/dist/core/context-repl/partitioning/strategies/by-feature.js +313 -0
- package/dist/core/context-repl/partitioning/strategies/by-feature.js.map +1 -0
- package/dist/core/context-repl/partitioning/strategies/by-time.d.ts +50 -0
- package/dist/core/context-repl/partitioning/strategies/by-time.d.ts.map +1 -0
- package/dist/core/context-repl/partitioning/strategies/by-time.js +218 -0
- package/dist/core/context-repl/partitioning/strategies/by-time.js.map +1 -0
- package/dist/core/context-repl/partitioning/strategies/index.d.ts +27 -0
- package/dist/core/context-repl/partitioning/strategies/index.d.ts.map +1 -0
- package/dist/core/context-repl/partitioning/strategies/index.js +45 -0
- package/dist/core/context-repl/partitioning/strategies/index.js.map +1 -0
- package/dist/core/context-repl/partitioning/types.d.ts +202 -0
- package/dist/core/context-repl/partitioning/types.d.ts.map +1 -0
- package/dist/core/context-repl/partitioning/types.js +61 -0
- package/dist/core/context-repl/partitioning/types.js.map +1 -0
- package/dist/core/context-repl/recursive/decomposer.d.ts +15 -0
- package/dist/core/context-repl/recursive/decomposer.d.ts.map +1 -1
- package/dist/core/context-repl/recursive/decomposer.js +80 -0
- package/dist/core/context-repl/recursive/decomposer.js.map +1 -1
- package/dist/core/context-repl/recursive/types.d.ts +1 -1
- package/dist/core/context-repl/recursive/types.d.ts.map +1 -1
- package/dist/core/context-repl/recursive/types.js.map +1 -1
- package/dist/mcp/server.d.ts +7 -1
- package/dist/mcp/server.d.ts.map +1 -1
- package/dist/mcp/server.js +562 -1
- package/dist/mcp/server.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -10,541 +10,159 @@
|
|
|
10
10
|
<__|-|__|
|
|
11
11
|
```
|
|
12
12
|
|
|
13
|
-
**dino-spec**
|
|
13
|
+
**dino-spec** brings structured, context-aware development to [Claude Code](https://claude.ai/code). It automatically maintains session state, provides 23 MCP tools, and enables intelligent context retrieval.
|
|
14
14
|
|
|
15
|
-
##
|
|
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
|
-
- **State blindness** - No awareness of test/build/lint status
|
|
21
|
-
- **Unstructured iteration** - No clear progression from idea to implementation
|
|
22
|
-
|
|
23
|
-
**dino-spec v7.3.0** solves these with:
|
|
15
|
+
## Features
|
|
24
16
|
|
|
17
|
+
- **MCP Integration** - 23 tools + 19 resources auto-configured during init
|
|
18
|
+
- **Session State** - Automatic tracking of focus, test/build/lint status, blockers
|
|
19
|
+
- **Persistent Memory** - Decisions, patterns, learnings survive across sessions
|
|
20
|
+
- **Workflow Skills** - Phases from discovery to completion (`/dino.*`)
|
|
21
|
+
- **Task Delegation** - Specialized agents with context handoffs
|
|
25
22
|
- **Recursive Retrieval** - RLM-style query decomposition with quality feedback
|
|
26
|
-
- **
|
|
27
|
-
- **
|
|
28
|
-
- **Persistent Memory System** - Decisions, patterns, and learnings that survive compaction
|
|
29
|
-
- **Context Engineering** - Research-backed memory decay, JIT retrieval, and attention management
|
|
30
|
-
- **Progressive task delegation** - Automatic delegation to specialized agents with context handoffs
|
|
31
|
-
- **Progressive context loading** - Minimal initial tokens, load context on-demand via MCP resources
|
|
32
|
-
- **Automatic context** via Claude Code hooks that maintain session state
|
|
33
|
-
- **Skill-based workflow** with phases from discovery to completion
|
|
34
|
-
- **Session intelligence** that tracks focus, blockers, and progress
|
|
35
|
-
|
|
36
|
-
## What's New in v7.3.0
|
|
37
|
-
|
|
38
|
-
### Recursive Retrieval - Intelligent Query Decomposition
|
|
39
|
-
|
|
40
|
-
RLM-style recursive retrieval with model-driven decomposition and quality feedback:
|
|
41
|
-
|
|
42
|
-
**Key Features:**
|
|
43
|
-
- **Auto-decomposition** - Splits complex queries into sub-queries by category, hop level, or search terms
|
|
44
|
-
- **Hierarchical budgeting** - Priority-weighted token allocation with 20% synthesis reserve
|
|
45
|
-
- **Quality scoring** - Evaluates relevance (0.4), completeness (0.3), consistency (0.2), novelty (0.1)
|
|
46
|
-
- **Early stopping** - Halts on quality threshold or diminishing returns
|
|
47
|
-
- **Full trajectory** - Tree/flat/summary views of execution path
|
|
48
|
-
|
|
49
|
-
**Decomposition Patterns:**
|
|
50
|
-
```javascript
|
|
51
|
-
// By category - split across memory types
|
|
52
|
-
"search patterns for error handling"
|
|
53
|
-
→ patterns.search, decisions.search, learnings.search
|
|
54
|
-
|
|
55
|
-
// By hop level - progressive graph exploration
|
|
56
|
-
traverse(maxHops: 2)
|
|
57
|
-
→ 1-hop traversal, 2-hop traversal
|
|
58
|
-
|
|
59
|
-
// By terms - multi-term search expansion
|
|
60
|
-
"error handling best practices"
|
|
61
|
-
→ full query + individual term searches
|
|
62
|
-
```
|
|
63
|
-
|
|
64
|
-
**Strategies:**
|
|
65
|
-
- `adaptive` - Quality-guided exploration (default)
|
|
66
|
-
- `breadth-first` - Explore all sub-queries per level
|
|
67
|
-
- `depth-first` - Follow each branch to completion
|
|
68
|
-
|
|
69
|
-
**MCP Tool:** `dino_recursive_query` with budget/quality configuration
|
|
70
|
-
|
|
71
|
-
Inspired by [Recursive Language Models (RLM)](https://arxiv.org/abs/2512.24601v1).
|
|
72
|
-
|
|
73
|
-
## What's New in v7.2.0
|
|
74
|
-
|
|
75
|
-
### Context REPL - Model-Driven Exploration
|
|
76
|
-
|
|
77
|
-
Declarative DSL enabling Claude to autonomously query dino-spec context:
|
|
23
|
+
- **Dynamic Partitioning** - Intelligent codebase segmentation (directory, feature, dependency, time)
|
|
24
|
+
- **Context REPL** - Declarative DSL for model-driven exploration
|
|
78
25
|
|
|
79
|
-
|
|
80
|
-
- `select` - Filter and project from context variables
|
|
81
|
-
- `search` - Semantic search with BM25 scoring
|
|
82
|
-
- `aggregate` - Count, group, sum, avg operations
|
|
83
|
-
- `traverse` - Graph traversal (1-2 hops)
|
|
84
|
-
- `combine` - Union/chain multiple queries
|
|
85
|
-
|
|
86
|
-
**Input Formats:**
|
|
87
|
-
```javascript
|
|
88
|
-
// JSON DSL
|
|
89
|
-
{"type": "search", "from": "memories.patterns", "search": {"query": "error handling"}}
|
|
90
|
-
|
|
91
|
-
// Natural language
|
|
92
|
-
"search patterns for authentication"
|
|
26
|
+
## Installation
|
|
93
27
|
|
|
94
|
-
|
|
95
|
-
|
|
28
|
+
```bash
|
|
29
|
+
npm install -g dino-spec
|
|
96
30
|
```
|
|
97
31
|
|
|
98
|
-
|
|
99
|
-
- `memories.*` - decisions, patterns, learnings, graph
|
|
100
|
-
- `session.*` - focus, recentChanges, testStatus, blockers
|
|
101
|
-
- `retrieval.*` - cache, rankedFiles
|
|
102
|
-
- `drift.*` - score, signals
|
|
103
|
-
- `projects.*` - profile, relationships
|
|
104
|
-
|
|
105
|
-
**MCP Tool:** `dino_context_repl` with comprehensive query documentation
|
|
106
|
-
|
|
107
|
-
Inspired by [Recursive Language Models (RLM)](https://arxiv.org/abs/2512.24601v1).
|
|
108
|
-
|
|
109
|
-
## What's New in v7.1.0
|
|
110
|
-
|
|
111
|
-
### Advanced Retrieval System
|
|
112
|
-
|
|
113
|
-
Three new features for intelligent context management:
|
|
114
|
-
|
|
115
|
-
| Feature | Purpose | Commands/Resources |
|
|
116
|
-
|---------|---------|-------------------|
|
|
117
|
-
| Retrieval Optimizer | LRU cache with relevance scoring | MCP: `dino_retrieval_optimize`, `dino://retrieval/ranked` |
|
|
118
|
-
| Hybrid Retrieval | Upfront + autonomous exploration | `dino retrieve [query]` with strategy selection |
|
|
119
|
-
| Recitation Scheduler | Track drift, auto-refresh summaries | MCP: `dino://recitation/schedule` |
|
|
120
|
-
|
|
121
|
-
## What's New in v7.0.0
|
|
122
|
-
|
|
123
|
-
### Long-Running Agent Support
|
|
124
|
-
|
|
125
|
-
Based on research from [Anthropic: Effective Harnesses for Long-Running Agents](https://www.anthropic.com/engineering/effective-harnesses-for-long-running-agents):
|
|
126
|
-
|
|
127
|
-
| Feature | Purpose | Commands |
|
|
128
|
-
|---------|---------|----------|
|
|
129
|
-
| Verification Testing | Run baseline tests on session start | `dino session verify` |
|
|
130
|
-
| Feature Tracking | JSON-based feature list with completion validation | `dino features list/add/start/complete` |
|
|
131
|
-
| Initializer Agent | Bootstrap agent generates init-context.md | `dino bootstrap`, `dino init --bootstrap` |
|
|
132
|
-
| Git Recovery | Create/restore checkpoints via git commits | `dino checkpoint create/list/restore` |
|
|
133
|
-
|
|
134
|
-
## v6.8.0 Features
|
|
135
|
-
|
|
136
|
-
### Memory System Enhancements
|
|
137
|
-
|
|
138
|
-
| Feature | Purpose | Key Insight |
|
|
139
|
-
|---------|---------|-------------|
|
|
140
|
-
| Graph 2-Hop | Enhanced contextual recall | Traverse 2 hops for richer connections |
|
|
141
|
-
| Memory Health | Health scoring dashboard | `dino memory stats --health` |
|
|
142
|
-
| Memory Search | `dino memory search <pattern>` | Find memories by keyword |
|
|
143
|
-
| Failure Auto-Pop | Extract test/build errors | Automatic failure registration |
|
|
144
|
-
| Effectiveness Ranking | High-value patterns first | Validated patterns get priority |
|
|
145
|
-
|
|
146
|
-
## v6.9.0 Features
|
|
147
|
-
|
|
148
|
-
### Context Optimization
|
|
149
|
-
|
|
150
|
-
Based on research from [Anthropic: Effective Context Engineering](https://www.anthropic.com/engineering/effective-context-engineering-for-ai-agents):
|
|
151
|
-
|
|
152
|
-
| Feature | Purpose | Commands |
|
|
153
|
-
|---------|---------|----------|
|
|
154
|
-
| KV-Cache Health Analyzer | Detect cache-breaking patterns | `dino cache analyze` |
|
|
155
|
-
| Tool Result Clearing | Identify stale tool outputs | Auto-detection in context |
|
|
156
|
-
| Context Auditor | Analyze compression opportunities | `dino context audit` |
|
|
157
|
-
|
|
158
|
-
## v6.7.0 Features
|
|
159
|
-
|
|
160
|
-
### Context Engineering Improvements
|
|
161
|
-
|
|
162
|
-
Based on research from [Anthropic](https://www.anthropic.com/engineering/effective-context-engineering-for-ai-agents), [Manus](https://manus.im/blog/Context-Engineering-for-AI-Agents-Lessons-from-Building-Manus), and [ProMem](https://arxiv.org/abs/2601.04463):
|
|
163
|
-
|
|
164
|
-
| Feature | Purpose | Key Insight |
|
|
165
|
-
|---------|---------|-------------|
|
|
166
|
-
| Memory Decay | Remove stale memories | "Forgetting is feature engineering" |
|
|
167
|
-
| Proactive Extraction | Capture valuable context | "Memory formation chooses what deserves retention" |
|
|
168
|
-
| KV-Cache Optimization | Stable prompt prefix | 100:1 efficiency via prefix stability |
|
|
169
|
-
| JIT Retrieval | Load context on-demand | Only inject relevant memories |
|
|
170
|
-
| Failure Registry | Surface past failures | "Failure evidence should be prominent" |
|
|
171
|
-
| Graph Memory | Relationship tracking | Connected recall via 1-hop traversal |
|
|
172
|
-
|
|
173
|
-
### Memory System
|
|
32
|
+
## Quick Start
|
|
174
33
|
|
|
175
|
-
|
|
34
|
+
```bash
|
|
35
|
+
cd your-project
|
|
36
|
+
dino init # Analyze codebase, install hooks, configure MCP
|
|
176
37
|
|
|
38
|
+
# MCP server is auto-configured for Claude Code
|
|
39
|
+
# Use /mcp in Claude Code to verify
|
|
177
40
|
```
|
|
178
|
-
.dino/memories/
|
|
179
|
-
├── decisions.xml # Architectural choices with rationale
|
|
180
|
-
├── patterns.xml # Learned coding preferences
|
|
181
|
-
├── learnings.xml # Session discoveries
|
|
182
|
-
├── failures.json # Error patterns and solutions
|
|
183
|
-
└── graph.json # Memory relationships
|
|
184
|
-
```
|
|
185
|
-
|
|
186
|
-
Access via MCP: `@dino://memories`, `@dino://decisions`
|
|
187
|
-
|
|
188
|
-
### Memory Decay
|
|
189
|
-
|
|
190
|
-
Memories decay over time to keep signal high:
|
|
191
|
-
|
|
192
|
-
| Memory Type | Half-Life | Budget Cap |
|
|
193
|
-
|-------------|-----------|------------|
|
|
194
|
-
| Decisions | 30 days | 50 max |
|
|
195
|
-
| Patterns | 14 days | 100 max |
|
|
196
|
-
| Learnings | 7 days | 200 max |
|
|
197
|
-
|
|
198
|
-
### Semantic Recall
|
|
199
41
|
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
```typescript
|
|
203
|
-
// Automatically recalls relevant memories based on current work
|
|
204
|
-
const memories = await semanticRecall({
|
|
205
|
-
query: "authentication flow",
|
|
206
|
-
focus: "src/auth/",
|
|
207
|
-
maxResults: 5
|
|
208
|
-
});
|
|
209
|
-
```
|
|
42
|
+
## CLI Commands
|
|
210
43
|
|
|
211
|
-
|
|
44
|
+
| Command | Description |
|
|
45
|
+
|---------|-------------|
|
|
46
|
+
| `dino init` | Initialize project (hooks + MCP) |
|
|
47
|
+
| `dino init --minimal` | Minimal CLAUDE.md with MCP resources |
|
|
48
|
+
| `dino init --bootstrap` | Include project analysis summary |
|
|
49
|
+
| `dino status` | Show session state and health |
|
|
50
|
+
| `dino refresh` | Re-analyze codebase |
|
|
51
|
+
| `dino update` | Update managed files |
|
|
52
|
+
| `dino update --scope mcp` | Fix MCP configuration |
|
|
53
|
+
| `dino memory list` | Show persistent memories |
|
|
54
|
+
| `dino memory search <query>` | Search memories |
|
|
55
|
+
| `dino retrieve <query>` | Hybrid file retrieval |
|
|
56
|
+
| `dino mcp-serve` | Start MCP server (auto-managed) |
|
|
57
|
+
|
|
58
|
+
## Workflow Skills
|
|
59
|
+
|
|
60
|
+
Use in Claude Code with `/dino.<phase>`:
|
|
61
|
+
|
|
62
|
+
| Phase | Skill | Purpose |
|
|
63
|
+
|-------|-------|---------|
|
|
64
|
+
| Discover | `/dino.discover` | Capture requirements |
|
|
65
|
+
| Scout | `/dino.scout` | Research codebase |
|
|
66
|
+
| Sniff | `/dino.sniff` | Clarify ambiguities |
|
|
67
|
+
| Nest | `/dino.nest` | Plan implementation |
|
|
68
|
+
| Hatch | `/dino.hatch` | Break into tasks |
|
|
69
|
+
| Hunt | `/dino.hunt` | Execute implementation |
|
|
70
|
+
| Aging | `/dino.aging` | Verify with tests |
|
|
71
|
+
| Fossil | `/dino.fossil` | Archive and commit |
|
|
72
|
+
|
|
73
|
+
Utilities: `/dino.status`, `/dino.focus`, `/dino.next`
|
|
212
74
|
|
|
213
|
-
|
|
75
|
+
## MCP Resources
|
|
214
76
|
|
|
215
|
-
|
|
77
|
+
Access via `@dino://` in Claude Code:
|
|
216
78
|
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
79
|
+
| Resource | Description |
|
|
80
|
+
|----------|-------------|
|
|
81
|
+
| `@dino://session` | Focus, blockers, test status |
|
|
82
|
+
| `@dino://structure` | Project architecture |
|
|
83
|
+
| `@dino://patterns` | Coding conventions |
|
|
84
|
+
| `@dino://commands` | Build/test/lint commands |
|
|
85
|
+
| `@dino://tasks` | Task registry and progress |
|
|
86
|
+
| `@dino://handoff` | Agent handoff context |
|
|
87
|
+
| `@dino://memories/summary` | All memories overview |
|
|
88
|
+
| `@dino://retrieval/ranked` | Session-relevant files |
|
|
225
89
|
|
|
226
|
-
|
|
90
|
+
## MCP Tools
|
|
227
91
|
|
|
228
|
-
|
|
92
|
+
Key tools available via Claude Code:
|
|
229
93
|
|
|
230
94
|
| Tool | Purpose |
|
|
231
95
|
|------|---------|
|
|
232
|
-
| `
|
|
233
|
-
| `
|
|
234
|
-
| `
|
|
235
|
-
| `
|
|
236
|
-
| `
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
| Resource | Description |
|
|
241
|
-
|----------|-------------|
|
|
242
|
-
| `@dino://tasks` | Current task tree and progress |
|
|
243
|
-
| `@dino://handoff` | Active handoff context |
|
|
96
|
+
| `dino_status` | Get session state |
|
|
97
|
+
| `dino_focus_set` | Set focus area |
|
|
98
|
+
| `dino_memory_recall` | Semantic memory search |
|
|
99
|
+
| `dino_context_repl` | Declarative context queries |
|
|
100
|
+
| `dino_recursive_query` | RLM-style retrieval |
|
|
101
|
+
| `dino_partition` | Intelligent codebase partitioning |
|
|
102
|
+
| `dino_task_create` | Create task in registry |
|
|
103
|
+
| `dino_plan_create` | Create implementation plan |
|
|
244
104
|
|
|
245
|
-
|
|
105
|
+
## Specialized Agents
|
|
246
106
|
|
|
247
107
|
| Agent | Role | Purpose |
|
|
248
108
|
|-------|------|---------|
|
|
249
109
|
| `@dino-analyst` | Explorer | Read-only codebase research |
|
|
250
|
-
| `@dino-architect` | Planner | Design and planning
|
|
110
|
+
| `@dino-architect` | Planner | Design and planning |
|
|
251
111
|
| `@dino-implementer` | Implementer | Full implementation |
|
|
252
|
-
| `@dino-tester` | Tester | Test writing
|
|
112
|
+
| `@dino-tester` | Tester | Test writing/execution |
|
|
253
113
|
| `@dino-reviewer` | Reviewer | Code review and QA |
|
|
254
114
|
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
The `user-prompt-submit` hook detects complex prompts and suggests delegation:
|
|
258
|
-
|
|
259
|
-
```
|
|
260
|
-
[dino] Multi-step task detected. Suggested delegation: explorer -> planner -> implementer
|
|
261
|
-
```
|
|
262
|
-
|
|
263
|
-
## Previous: v4.0.0 Features
|
|
264
|
-
|
|
265
|
-
### Progressive Context Loading
|
|
266
|
-
|
|
267
|
-
Reduce initial context by ~59% with the new `--minimal` mode:
|
|
268
|
-
|
|
269
|
-
```bash
|
|
270
|
-
dino init --minimal
|
|
271
|
-
```
|
|
272
|
-
|
|
273
|
-
Instead of loading everything upfront, context is loaded on-demand:
|
|
274
|
-
|
|
275
|
-
| Resource | Description | Access |
|
|
276
|
-
|----------|-------------|--------|
|
|
277
|
-
| `@dino://session` | Current session state | On-demand |
|
|
278
|
-
| `@dino://structure` | Project architecture | On-demand |
|
|
279
|
-
| `@dino://patterns` | Coding conventions | On-demand |
|
|
280
|
-
| `@dino://commands` | Build/test/lint commands | On-demand |
|
|
281
|
-
| `@dino://skills` | Available workflow skills | On-demand |
|
|
282
|
-
|
|
283
|
-
### Smart Hooks
|
|
115
|
+
## Memory System
|
|
284
116
|
|
|
285
|
-
|
|
286
|
-
- **Intent Detection**: User prompts trigger relevant resource suggestions
|
|
287
|
-
- **Session Compaction**: Automatically archives old session data
|
|
288
|
-
|
|
289
|
-
## Installation
|
|
290
|
-
|
|
291
|
-
### From npm (recommended)
|
|
292
|
-
|
|
293
|
-
```bash
|
|
294
|
-
npm install -g dino-spec
|
|
295
|
-
```
|
|
296
|
-
|
|
297
|
-
### From GitHub
|
|
298
|
-
|
|
299
|
-
```bash
|
|
300
|
-
git clone https://github.com/xullul/dino-spec.git
|
|
301
|
-
cd dino-spec
|
|
302
|
-
pnpm install
|
|
303
|
-
pnpm build
|
|
304
|
-
npm link
|
|
305
|
-
```
|
|
306
|
-
|
|
307
|
-
## Quick Start
|
|
308
|
-
|
|
309
|
-
```bash
|
|
310
|
-
# Initialize in your project (standard mode)
|
|
311
|
-
cd your-project
|
|
312
|
-
dino init
|
|
313
|
-
|
|
314
|
-
# Or use minimal mode for progressive context loading
|
|
315
|
-
dino init --minimal
|
|
316
|
-
|
|
317
|
-
# Check current session state
|
|
318
|
-
dino status
|
|
319
|
-
|
|
320
|
-
# Open Claude Code and use workflow skills:
|
|
321
|
-
# /dino.discover, /dino.scout, /dino.hunt, etc.
|
|
322
|
-
```
|
|
323
|
-
|
|
324
|
-
## The Workflow
|
|
325
|
-
|
|
326
|
-
Each phase builds on the previous, with automatic session tracking:
|
|
327
|
-
|
|
328
|
-
```
|
|
329
|
-
discover → scout → sniff → nest → hatch → hunt → aging → fossil
|
|
330
|
-
```
|
|
331
|
-
|
|
332
|
-
| Phase | Skill | Purpose |
|
|
333
|
-
| ------------ | ---------------- | -------------------------------------------- |
|
|
334
|
-
| **Discover** | `/dino.discover` | Capture requirements from user prompts |
|
|
335
|
-
| **Scout** | `/dino.scout` | Research codebase and explore options |
|
|
336
|
-
| **Sniff** | `/dino.sniff` | Clarify ambiguities with targeted questions |
|
|
337
|
-
| **Nest** | `/dino.nest` | Plan implementation (uses Plan Mode) |
|
|
338
|
-
| **Hatch** | `/dino.hatch` | Break plan into actionable todos |
|
|
339
|
-
| **Hunt** | `/dino.hunt` | Execute implementation with tracking |
|
|
340
|
-
| **Aging** | `/dino.aging` | Verify with tests |
|
|
341
|
-
| **Fossil** | `/dino.fossil` | Archive and commit completed work |
|
|
342
|
-
|
|
343
|
-
Utility skills: `/dino.status`, `/dino.focus`, `/dino.next`
|
|
344
|
-
|
|
345
|
-
## CLI Commands
|
|
346
|
-
|
|
347
|
-
```bash
|
|
348
|
-
# Initialize
|
|
349
|
-
dino init # Standard initialization
|
|
350
|
-
dino init --minimal # Minimal mode for progressive loading
|
|
351
|
-
dino init --force # Reinitialize, overwriting existing
|
|
352
|
-
|
|
353
|
-
# Status and refresh
|
|
354
|
-
dino status # Show current session state
|
|
355
|
-
dino refresh # Re-analyze codebase and update context
|
|
356
|
-
dino refresh --minimal # Switch to minimal mode
|
|
357
|
-
|
|
358
|
-
# Session management
|
|
359
|
-
dino session read # Display session state
|
|
360
|
-
dino session update # Update session (blockers, focus, etc.)
|
|
361
|
-
|
|
362
|
-
# Hooks
|
|
363
|
-
dino hooks setup # Install Claude Code hooks
|
|
364
|
-
dino hooks status # Show hook configuration
|
|
365
|
-
dino hooks list # List all available hooks
|
|
366
|
-
dino hooks enable <id> # Enable a specific hook
|
|
367
|
-
dino hooks disable <id> # Disable a specific hook
|
|
368
|
-
dino hooks remove # Remove all hooks
|
|
369
|
-
|
|
370
|
-
# Skill Store
|
|
371
|
-
dino store list # List installed skills
|
|
372
|
-
dino store list --remote # List available remote skills
|
|
373
|
-
dino store search # Interactive skill search and install
|
|
374
|
-
dino store install <skill> # Install a skill
|
|
375
|
-
dino store remove <skill> # Remove a skill
|
|
376
|
-
dino store sync # Refresh remote manifests
|
|
377
|
-
```
|
|
378
|
-
|
|
379
|
-
## Skill Store
|
|
380
|
-
|
|
381
|
-
The skill store provides a way to share and install workflow skills.
|
|
382
|
-
|
|
383
|
-
### Interactive Search
|
|
384
|
-
|
|
385
|
-
```bash
|
|
386
|
-
dino store search
|
|
387
|
-
```
|
|
388
|
-
|
|
389
|
-
This launches an interactive search interface where you can:
|
|
390
|
-
- Type to filter skills by name, description, or tags
|
|
391
|
-
- See which skills are already installed (✓)
|
|
392
|
-
- Select a skill to view details and install
|
|
393
|
-
- Choose installation scope (local project or global)
|
|
394
|
-
|
|
395
|
-
### Commands
|
|
396
|
-
|
|
397
|
-
| Command | Description |
|
|
398
|
-
|---------|-------------|
|
|
399
|
-
| `dino store list` | List installed skills (local project) |
|
|
400
|
-
| `dino store list -g` | List global installed skills |
|
|
401
|
-
| `dino store list --remote` | List available skills from remote store |
|
|
402
|
-
| `dino store search` | Interactive skill search and install |
|
|
403
|
-
| `dino store search --list` | Non-interactive list mode |
|
|
404
|
-
| `dino store install <skill>` | Install to local project |
|
|
405
|
-
| `dino store install <skill> -g` | Install globally |
|
|
406
|
-
| `dino store remove <skill>` | Remove from local project |
|
|
407
|
-
| `dino store sync` | Refresh remote manifests |
|
|
408
|
-
|
|
409
|
-
### Private Repositories
|
|
117
|
+
Persistent memories in `.dino/memories/`:
|
|
410
118
|
|
|
411
|
-
|
|
119
|
+
| Type | Half-Life | Purpose |
|
|
120
|
+
|------|-----------|---------|
|
|
121
|
+
| Decisions | 30 days | Architectural choices |
|
|
122
|
+
| Patterns | 14 days | Coding preferences |
|
|
123
|
+
| Learnings | 7 days | Session discoveries |
|
|
412
124
|
|
|
413
125
|
```bash
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
# Option 2: Set environment variable
|
|
418
|
-
export GITHUB_TOKEN=your_token_here
|
|
126
|
+
dino memory list # View all memories
|
|
127
|
+
dino memory search "auth" # Search memories
|
|
128
|
+
dino memory decay # Clean stale memories
|
|
419
129
|
```
|
|
420
130
|
|
|
421
|
-
The token needs `repo` scope for private repository access.
|
|
422
|
-
|
|
423
131
|
## Project Structure
|
|
424
132
|
|
|
425
|
-
After `dino init`, your project will have:
|
|
426
|
-
|
|
427
133
|
```
|
|
428
134
|
your-project/
|
|
429
|
-
├── CLAUDE.md
|
|
135
|
+
├── CLAUDE.md # Project context
|
|
430
136
|
├── .claude/
|
|
431
|
-
│ ├── skills/dino/
|
|
432
|
-
│
|
|
433
|
-
│
|
|
434
|
-
│ │ ├── sniff.md # Clarification phase
|
|
435
|
-
│ │ ├── nest.md # Planning phase
|
|
436
|
-
│ │ ├── hatch.md # Breakdown phase
|
|
437
|
-
│ │ ├── hunt.md # Implementation phase
|
|
438
|
-
│ │ ├── aging.md # Verification phase
|
|
439
|
-
│ │ ├── fossil.md # Completion phase
|
|
440
|
-
│ │ ├── status.md # Status utility
|
|
441
|
-
│ │ ├── focus.md # Focus utility
|
|
442
|
-
│ │ └── next.md # Next steps utility
|
|
443
|
-
│ ├── rules/dino/ # Workflow rules
|
|
444
|
-
│ └── agents/ # Specialized agents
|
|
137
|
+
│ ├── skills/dino/ # Workflow skills
|
|
138
|
+
│ ├── rules/dino/ # Workflow rules
|
|
139
|
+
│ └── agents/ # Specialized agents
|
|
445
140
|
└── .dino/
|
|
446
|
-
├── session.md
|
|
447
|
-
├── structure.json
|
|
448
|
-
├──
|
|
449
|
-
├──
|
|
450
|
-
|
|
451
|
-
├── archive/ # Session history archive
|
|
452
|
-
├── tasks/ # Task registry (v5.0.0)
|
|
453
|
-
├── checkpoints/ # Agent checkpoints (v5.0.0)
|
|
454
|
-
├── handoff/ # Agent handoffs (v5.0.0)
|
|
455
|
-
└── memories/ # Persistent memory (v6.0.0)
|
|
456
|
-
├── decisions.xml # Architectural decisions
|
|
457
|
-
├── patterns.xml # Learned patterns
|
|
458
|
-
├── learnings.xml # Session discoveries
|
|
459
|
-
├── failures.json # Error registry (v6.6.0)
|
|
460
|
-
└── graph.json # Memory relationships (v6.6.0)
|
|
141
|
+
├── session.md # Session state
|
|
142
|
+
├── structure.json # Codebase analysis
|
|
143
|
+
├── tasks/ # Task registry
|
|
144
|
+
├── checkpoints/ # Agent checkpoints
|
|
145
|
+
└── memories/ # Persistent memory
|
|
461
146
|
```
|
|
462
147
|
|
|
463
|
-
##
|
|
464
|
-
|
|
465
|
-
The `.dino/session.md` file tracks:
|
|
466
|
-
|
|
467
|
-
```markdown
|
|
468
|
-
# Session State
|
|
469
|
-
|
|
470
|
-
## Focus
|
|
471
|
-
**src/core/** (high confidence, directory-cluster)
|
|
472
|
-
|
|
473
|
-
## Test Status
|
|
474
|
-
**Status:** passing
|
|
475
|
-
**Counts:** 121 passed, 0 failed, 0 skipped
|
|
476
|
-
|
|
477
|
-
## Build Status
|
|
478
|
-
**Status:** passing
|
|
479
|
-
|
|
480
|
-
## Blockers
|
|
481
|
-
- Waiting for API response format decision
|
|
482
|
-
|
|
483
|
-
## Progress
|
|
484
|
-
- 2024-01-15 10:30: tests-fixed - All tests passing
|
|
485
|
-
- 2024-01-15 10:15: build-fixed - Build errors resolved
|
|
486
|
-
```
|
|
487
|
-
|
|
488
|
-
Hooks automatically update this state based on your actions.
|
|
489
|
-
|
|
490
|
-
## Hooks System (v4.0.0)
|
|
491
|
-
|
|
492
|
-
Dino-spec integrates with Claude Code's hooks:
|
|
493
|
-
|
|
494
|
-
| Hook | Purpose |
|
|
495
|
-
|------|---------|
|
|
496
|
-
| `SessionStart` | Output critical alerts only (context router) |
|
|
497
|
-
| `SessionEnd` | Clean up on exit |
|
|
498
|
-
| `PostEdit` | Track file changes with classification |
|
|
499
|
-
| `PostTest` | Update test status |
|
|
500
|
-
| `PostBuild` | Update build status |
|
|
501
|
-
| `PostLint` | Update lint status |
|
|
502
|
-
| `PreCompact` | Archive and compact session state |
|
|
503
|
-
| `UserPromptSubmit` | Intent detection with resource suggestions |
|
|
504
|
-
| `SubagentStart/Stop` | Track agent activity |
|
|
505
|
-
|
|
506
|
-
The v4.0.0 hooks are optimized for minimal output:
|
|
507
|
-
- **Session-start**: Only alerts on failures/blockers (silence when green)
|
|
508
|
-
- **User-prompt-submit**: Suggests relevant `@dino://` resources based on intent
|
|
509
|
-
|
|
510
|
-
## MCP Resources
|
|
511
|
-
|
|
512
|
-
Access context on-demand using @ mentions in Claude Code:
|
|
148
|
+
## Requirements
|
|
513
149
|
|
|
514
|
-
|
|
515
|
-
|
|
516
|
-
@dino://structure # Project architecture and directories
|
|
517
|
-
@dino://patterns # Coding conventions and patterns
|
|
518
|
-
@dino://commands # Build, test, lint commands
|
|
519
|
-
@dino://skills # Available workflow skills
|
|
520
|
-
@dino://history # Recent file edit history
|
|
521
|
-
@dino://tasks # Task registry and progress (v5.0.0)
|
|
522
|
-
@dino://handoff # Active handoff context (v5.0.0)
|
|
523
|
-
@dino://memories # Full memory summary (v6.4.0)
|
|
524
|
-
@dino://decisions # Architectural decisions (v6.4.0)
|
|
525
|
-
```
|
|
150
|
+
- Node.js >= 20.0.0
|
|
151
|
+
- Claude Code CLI
|
|
526
152
|
|
|
527
|
-
##
|
|
153
|
+
## Troubleshooting
|
|
528
154
|
|
|
529
|
-
|
|
530
|
-
|--------|----------|---------|
|
|
531
|
-
| CLAUDE.md size | ~300 tokens | ~100 tokens |
|
|
532
|
-
| Initial context | Full sections | Quick reference |
|
|
533
|
-
| Architecture | Embedded | `@dino://structure` |
|
|
534
|
-
| Patterns | Embedded | `@dino://patterns` |
|
|
535
|
-
| Commands | Embedded | `@dino://commands` |
|
|
536
|
-
| Best for | Quick reference | Large codebases |
|
|
155
|
+
### MCP not showing in `/mcp`
|
|
537
156
|
|
|
538
|
-
Switch between modes:
|
|
539
157
|
```bash
|
|
540
|
-
|
|
541
|
-
|
|
542
|
-
```
|
|
158
|
+
# Windows
|
|
159
|
+
claude mcp add-json --scope user dino '{"command":"cmd","args":["/c","npx","dino-spec","mcp-serve"]}'
|
|
543
160
|
|
|
544
|
-
|
|
161
|
+
# macOS/Linux
|
|
162
|
+
claude mcp add --scope user dino -- npx dino-spec mcp-serve
|
|
163
|
+
```
|
|
545
164
|
|
|
546
|
-
|
|
547
|
-
- Claude Code CLI
|
|
165
|
+
Then restart Claude Code.
|
|
548
166
|
|
|
549
167
|
## License
|
|
550
168
|
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"action-mask.test.d.ts","sourceRoot":"","sources":["../../../../src/core/agents/__tests__/action-mask.test.ts"],"names":[],"mappings":"AAAA;;GAEG"}
|