sqlew 4.0.3 → 4.0.5
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/CHANGELOG.md +58 -0
- package/LICENSE +177 -39
- package/NOTICE +24 -0
- package/README.md +171 -93
- package/assets/claude-md-snippets/plan-mode-integration.md +2 -2
- package/assets/config.example.toml +16 -0
- package/assets/sample-agents/sqlew-architect.md +1 -0
- package/assets/sample-agents/sqlew-researcher.md +1 -0
- package/assets/sample-agents/sqlew-scrum-master.md +1 -0
- package/dist/config/minimal-generator.d.ts.map +1 -1
- package/dist/config/minimal-generator.js +72 -91
- package/dist/config/minimal-generator.js.map +1 -1
- package/dist/config/types.d.ts +2 -12
- package/dist/config/types.d.ts.map +1 -1
- package/dist/config/types.js +1 -6
- package/dist/config/types.js.map +1 -1
- package/dist/index.js +1 -1
- package/dist/sync-commands.d.ts.map +1 -1
- package/dist/sync-commands.js +2 -7
- package/dist/sync-commands.js.map +1 -1
- package/docs/AI_AGENT_GUIDE.md +138 -37
- package/docs/DECISION_CONTEXT.md +41 -19
- package/package.json +11 -6
package/README.md
CHANGED
|
@@ -2,91 +2,165 @@
|
|
|
2
2
|

|
|
3
3
|
|
|
4
4
|
[](https://www.npmjs.com/package/sqlew)
|
|
5
|
-
[](https://opensource.org/licenses/Apache-2.0)
|
|
6
6
|
|
|
7
|
-
> **
|
|
7
|
+
> **ADR (Architecture Decision Record) for AI Agents** – An MCP server that enables AI agents to create, query, and maintain architecture decision records in a structured SQL database
|
|
8
|
+
|
|
9
|
+
## 🚀 Quick Start: /sqlew Command
|
|
10
|
+
|
|
11
|
+
**The `/sqlew` command is the easiest way to use sqlew!** Just type `/sqlew` in Claude Code with natural language input.
|
|
12
|
+
|
|
13
|
+
### Most Common Uses
|
|
14
|
+
|
|
15
|
+
```bash
|
|
16
|
+
# Show status and get suggestions
|
|
17
|
+
/sqlew
|
|
18
|
+
|
|
19
|
+
# Record a decision
|
|
20
|
+
/sqlew record we use PostgreSQL 15 for production database
|
|
21
|
+
|
|
22
|
+
# Search past decisions
|
|
23
|
+
/sqlew search why we chose Knex for migrations
|
|
24
|
+
|
|
25
|
+
# List remaining tasks
|
|
26
|
+
/sqlew show remaining tasks
|
|
27
|
+
|
|
28
|
+
# Plan a new feature (breakdown into tasks)
|
|
29
|
+
/sqlew plan implementing user authentication
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
The `/sqlew` command automatically detects your intent (search, record, list, execute, task creation) and invokes the appropriate MCP tools.
|
|
33
|
+
|
|
34
|
+
---
|
|
8
35
|
|
|
9
36
|
## What is sqlew?
|
|
10
37
|
|
|
11
|
-
**sqlew** is a Model Context Protocol (MCP) server that
|
|
38
|
+
**sqlew** is a Model Context Protocol (MCP) server that brings ADR (Architecture Decision Record) capabilities to AI agents through a shared SQL-backed repository.
|
|
12
39
|
|
|
13
|
-
###
|
|
14
|
-
Every
|
|
40
|
+
### The Problem: AI Agents Lack Decision Memory
|
|
41
|
+
Every AI session starts with zero context. Agents must re-learn architectural decisions, can reintroduce previously rejected patterns, and have no systematic way to understand WHY past choices were made.
|
|
15
42
|
|
|
16
|
-
|
|
17
|
-
|
|
43
|
+
Traditional ADR approaches use Markdown files scattered across repositories. While human-readable, this format creates challenges for AI agents:
|
|
44
|
+
- **No structured querying** – AI must read entire files to find relevant decisions
|
|
45
|
+
- **Context explosion** – Token costs grow linearly with decision history
|
|
46
|
+
- **No duplicate detection** – AI cannot easily identify similar or conflicting decisions
|
|
47
|
+
- **Poor discoverability** – Finding related decisions requires full-text search across many files
|
|
18
48
|
|
|
19
|
-
|
|
49
|
+
### *sqlew* brings structured ADR to AI agents
|
|
50
|
+
sqlew transforms ADR from static documentation into a **queryable, AI-native decision database**:
|
|
20
51
|
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
-
|
|
24
|
-
-
|
|
25
|
-
-
|
|
26
|
-
- Eliminates duplicate work via task management
|
|
52
|
+
- **Structured records** – Decisions stored as relational data with metadata, tags, and relationships
|
|
53
|
+
- **Efficient querying** – AI agents retrieve only relevant decisions via SQL queries
|
|
54
|
+
- **Smart suggestions** – Three-tier similarity system detects duplicate or related decisions
|
|
55
|
+
- **Constraint tracking** – Architectural rules and principles as first-class entities
|
|
56
|
+
- **Task integration** – Link decisions to implementation tasks and affected files
|
|
27
57
|
|
|
28
58
|
> *This software does not send any data to external networks. We NEVER collect any data or usage statistics. Please use it with complete security.*
|
|
29
59
|
|
|
30
|
-
## Concept: Decision
|
|
60
|
+
## Concept: ADR (Architecture Decision Record) for AI Agents
|
|
31
61
|
|
|
32
|
-
|
|
62
|
+
**Architecture Decision Records (ADR)** document the architectural decisions made on a project, including context, consequences, and alternatives considered. sqlew extends this proven pattern to AI agents.
|
|
33
63
|
|
|
34
|
-
|
|
64
|
+
### Core ADR Concepts in sqlew
|
|
35
65
|
|
|
36
|
-
|
|
37
|
-
- **
|
|
66
|
+
**Decisions** capture architectural choices with full context:
|
|
67
|
+
- **What** was decided (the decision itself)
|
|
68
|
+
- **Why** it was chosen (rationale, trade-offs)
|
|
69
|
+
- **What else** was considered (alternatives rejected)
|
|
70
|
+
- **Impact** on the system (consequences, affected components)
|
|
38
71
|
|
|
39
|
-
|
|
72
|
+
**Constraints** define architectural principles and rules:
|
|
73
|
+
- **Performance requirements** (response time limits, throughput goals)
|
|
74
|
+
- **Technology choices** ("must use PostgreSQL", "avoid microservices")
|
|
75
|
+
- **Coding standards** ("async/await only", "no any types")
|
|
76
|
+
- **Security policies** (authentication patterns, data handling rules)
|
|
40
77
|
|
|
41
|
-
|
|
42
|
-
-
|
|
43
|
-
-
|
|
78
|
+
**Implementation tracking** connects decisions to reality:
|
|
79
|
+
- **Tasks** link decisions to actual implementation work
|
|
80
|
+
- **File tracking** shows which code was affected by decisions
|
|
81
|
+
- **Status evolution** tracks decision lifecycle (draft → active → deprecated)
|
|
44
82
|
|
|
45
|
-
|
|
83
|
+
### Why SQL for ADR?
|
|
46
84
|
|
|
47
|
-
|
|
85
|
+
Traditional text-based ADR forces AI to:
|
|
86
|
+
- Read complete files even for simple queries
|
|
87
|
+
- Parse unstructured text to find relationships
|
|
88
|
+
- Manually detect duplicate or conflicting decisions
|
|
48
89
|
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
-
|
|
52
|
-
-
|
|
53
|
-
-
|
|
90
|
+
sqlew's **SQL-backed ADR repository** enables AI to:
|
|
91
|
+
- Query by layer, tags, status in milliseconds (2-50ms)
|
|
92
|
+
- Join decisions with constraints, tasks, and files
|
|
93
|
+
- Leverage similarity algorithms to prevent duplicates
|
|
94
|
+
- Scale to thousands of decisions without context explosion
|
|
54
95
|
|
|
55
|
-
|
|
56
|
-
**60-75% token reduction** in multi-session projects through structured data storage and selective querying.
|
|
96
|
+
**Token efficiency**: 60-75% reduction compared to reading Markdown ADRs
|
|
57
97
|
|
|
58
|
-
###
|
|
98
|
+
### Why RDBMS + MCP for ADR?
|
|
59
99
|
|
|
60
|
-
|
|
61
|
-
- **
|
|
62
|
-
- **
|
|
63
|
-
- **
|
|
100
|
+
**RDBMS (Relational Database)** provides efficient structured queries:
|
|
101
|
+
- **Indexed searches** – Find decisions by tags/layers in milliseconds, not seconds
|
|
102
|
+
- **JOIN operations** – Query related decisions, constraints, and tasks in a single operation
|
|
103
|
+
- **Transaction support** – ACID guarantees ensure data integrity across concurrent AI agents
|
|
104
|
+
- **Scalability** – Handle thousands of ADRs without performance degradation
|
|
64
105
|
|
|
65
|
-
|
|
66
|
-
- **
|
|
67
|
-
- **
|
|
106
|
+
**MCP (Model Context Protocol)** enables seamless AI integration:
|
|
107
|
+
- **Direct tool access** – AI agents call ADR operations as native functions
|
|
108
|
+
- **Token efficiency** – Retrieve only required data, avoiding full-file reads
|
|
109
|
+
- **Type safety** – Structured parameters prevent errors and guide correct usage
|
|
110
|
+
- **Cross-session persistence** – ADRs survive beyond individual chat sessions
|
|
68
111
|
|
|
69
|
-
|
|
70
|
-
- **Bug Prevention**: AI won't reintroduce bugs you already fixed (decisions document "what didn't work")
|
|
71
|
-
- **Pattern Enforcement**: Constraints ensure AI writes code matching your team's style
|
|
72
|
-
- **Context-Aware Suggestions**: AI sees related decisions before creating new ones ("Did you know we already solved this?")
|
|
73
|
-
- **Rationale Documentation**: Every decision includes WHY it was made, preventing cargo-cult programming
|
|
112
|
+
**Together**: AI agents gain SQL-powered ADR capabilities without managing databases directly.
|
|
74
113
|
|
|
75
|
-
|
|
76
|
-
- **Task Dependencies**: AI knows Task B needs Task A completed first
|
|
77
|
-
- **Auto File Watching**: Tasks auto-update when AI edits tracked files (zero manual updates)
|
|
78
|
-
- **Progress Visibility**: See exactly what AI is working on, what's blocked, what's done
|
|
114
|
+
## Why Use sqlew?
|
|
79
115
|
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
116
|
+
### 🏛️ ADR Made AI-Native
|
|
117
|
+
Traditional ADR approaches weren't designed for AI agents. sqlew reimagines ADR for the AI era:
|
|
118
|
+
|
|
119
|
+
| Traditional ADR (Markdown) | sqlew ADR (SQL) |
|
|
120
|
+
|---------------------------|-----------------|
|
|
121
|
+
| Read entire files | Query specific decisions |
|
|
122
|
+
| Manual duplicate checking | Automatic similarity detection |
|
|
123
|
+
| Text parsing required | Structured, typed data |
|
|
124
|
+
| Linear token scaling | Constant-time lookups |
|
|
125
|
+
| File-based organization | Relational queries with JOINs |
|
|
126
|
+
|
|
127
|
+
### 🎯 Key Benefits for AI-Driven Development
|
|
128
|
+
|
|
129
|
+
#### 📚 **Persistent Architectural Memory**
|
|
130
|
+
- **Zero context loss** – AI agents remember every architectural decision across sessions
|
|
131
|
+
- **Rationale preservation** – Never forget WHY a decision was made, not just WHAT
|
|
132
|
+
- **Alternative tracking** – Document rejected options to prevent circular debates
|
|
133
|
+
- **Evolution history** – See how decisions changed over time with full version history
|
|
134
|
+
|
|
135
|
+
#### 🛡️ **Prevent Architectural Drift**
|
|
136
|
+
- **Constraint enforcement** – Define architectural rules once, AI follows them forever
|
|
137
|
+
- **Pattern consistency** – AI generates code matching established patterns automatically
|
|
138
|
+
- **Anti-pattern prevention** – Document "what NOT to do" as enforceable constraints
|
|
139
|
+
- **Regression prevention** – AI won't reintroduce previously rejected approaches
|
|
140
|
+
|
|
141
|
+
#### 🔍 **Intelligent Decision Discovery**
|
|
142
|
+
- **Similarity detection** – AI identifies duplicate or related decisions before creating new ones
|
|
143
|
+
- **Context-aware search** – Query by layer, tags, or relationships to find relevant decisions
|
|
144
|
+
- **Impact analysis** – Trace which files and tasks are affected by each decision
|
|
145
|
+
- **Conflict detection** – Find decisions that contradict or supersede each other
|
|
146
|
+
|
|
147
|
+
#### 📊 **Implementation Transparency**
|
|
148
|
+
- **Decision-to-task linking** – Track implementation status of architectural choices
|
|
149
|
+
- **File impact tracking** – See exactly which code implements each decision
|
|
150
|
+
- **Status lifecycle** – Draft → Active → Deprecated → Superseded transitions
|
|
151
|
+
- **Progress visibility** – Monitor which ADRs are implemented, which are pending
|
|
152
|
+
|
|
153
|
+
#### ⚡ **Extreme Efficiency**
|
|
154
|
+
- **60-75% token reduction** – Query only relevant decisions instead of reading all ADRs
|
|
155
|
+
- **Millisecond queries** – 2-50ms response times even with thousands of decisions
|
|
156
|
+
- **Scalable architecture** – Perform well with large decision histories
|
|
157
|
+
- **Production-ready** – 495/495 tests passing (100%), battle-tested on real projects
|
|
84
158
|
|
|
85
159
|
---
|
|
86
160
|
|
|
87
|
-
**Technical Features**:
|
|
161
|
+
**Technical Features**: 8 MCP tools (5 core: decision, constraint, task, file, suggest + 3 utility: help, example, use_case), three-tier similarity detection (0-100 point scoring), ACID transaction support, multi-database backend (SQLite/PostgreSQL/MySQL), metadata-driven organization with layers and tags
|
|
88
162
|
|
|
89
|
-
See [docs/
|
|
163
|
+
See [docs/DECISION_CONTEXT.md](docs/DECISION_CONTEXT.md) for ADR data model details.
|
|
90
164
|
|
|
91
165
|
### 🔖Kanban-style AI Scrum
|
|
92
166
|

|
|
@@ -119,33 +193,6 @@ The first time, sqlew initializes database, installs custom agents and slash com
|
|
|
119
193
|
|
|
120
194
|
It's Ready!
|
|
121
195
|
|
|
122
|
-
## 🚀 Quick Start: /sqlew Command
|
|
123
|
-
|
|
124
|
-
**The `/sqlew` command is the easiest way to use sqlew!** Just type `/sqlew` in Claude Code with natural language input.
|
|
125
|
-
|
|
126
|
-
### Most Common Uses
|
|
127
|
-
|
|
128
|
-
```bash
|
|
129
|
-
# Show status and get suggestions
|
|
130
|
-
/sqlew
|
|
131
|
-
|
|
132
|
-
# Record a decision
|
|
133
|
-
/sqlew record we use PostgreSQL 15 for production database
|
|
134
|
-
|
|
135
|
-
# Search past decisions
|
|
136
|
-
/sqlew search why we chose Knex for migrations
|
|
137
|
-
|
|
138
|
-
# List remaining tasks
|
|
139
|
-
/sqlew show remaining tasks
|
|
140
|
-
|
|
141
|
-
# Plan a new feature (breakdown into tasks)
|
|
142
|
-
/sqlew plan implementing user authentication
|
|
143
|
-
```
|
|
144
|
-
|
|
145
|
-
The `/sqlew` command automatically detects your intent (search, record, list, execute, task creation) and invokes the appropriate MCP tools.
|
|
146
|
-
|
|
147
|
-
---
|
|
148
|
-
|
|
149
196
|
**⚠️Note**: Global install (`npm install -g`) is **not recommended** because sqlew requires an independent settings per project. Each project should maintain its own context database in `.sqlew/sqlew.db`.
|
|
150
197
|
|
|
151
198
|
**Custom database path:** Add path as argument: `"args": ["sqlew", "/path/to/db.db"]`
|
|
@@ -275,14 +322,23 @@ Power users can still call MCP tools directly. See [Available Tools](#available-
|
|
|
275
322
|
|
|
276
323
|
### Available Tools
|
|
277
324
|
|
|
325
|
+
#### Core ADR Tools
|
|
326
|
+
|
|
278
327
|
| Tool | Purpose | Example Use |
|
|
279
328
|
|------|---------|------------|
|
|
280
|
-
| **decision** | Record
|
|
281
|
-
| **constraint** | Define rules | "
|
|
282
|
-
| **task** | Track
|
|
283
|
-
| **file** | Track changes | "Modified auth.ts" |
|
|
284
|
-
| **
|
|
285
|
-
|
|
329
|
+
| **decision** | Record architectural decisions with context | "We chose PostgreSQL over MongoDB (ACID requirement)" |
|
|
330
|
+
| **constraint** | Define architectural rules and principles | "All API endpoints must use /v2/ prefix" |
|
|
331
|
+
| **task** | Track implementation of decisions | "Implement JWT authentication" |
|
|
332
|
+
| **file** | Track code changes linked to decisions | "Modified auth.ts per security ADR" |
|
|
333
|
+
| **suggest** | Find similar decisions, prevent duplicates | Duplicate detection, similarity search |
|
|
334
|
+
|
|
335
|
+
#### Utility Tools
|
|
336
|
+
|
|
337
|
+
| Tool | Purpose | Example Use |
|
|
338
|
+
|------|---------|------------|
|
|
339
|
+
| **help** | Query action documentation and parameters | Get decision.set parameters |
|
|
340
|
+
| **example** | Browse code examples by tool/action | Find task.create examples |
|
|
341
|
+
| **use_case** | Complete workflow scenarios | Multi-step ADR workflows |
|
|
286
342
|
|
|
287
343
|
|
|
288
344
|
## Documentation
|
|
@@ -333,10 +389,32 @@ All tools support:
|
|
|
333
389
|
|
|
334
390
|
## Use Cases
|
|
335
391
|
|
|
336
|
-
|
|
337
|
-
- **
|
|
338
|
-
- **
|
|
339
|
-
- **
|
|
392
|
+
### ADR-Driven Development with AI
|
|
393
|
+
- **Architecture Evolution** – Document major architectural decisions with full context and alternatives
|
|
394
|
+
- **Pattern Standardization** – Establish coding patterns as constraints, enforce via AI code generation
|
|
395
|
+
- **Technical Debt Tracking** – Record temporary decisions with deprecation paths and future plans
|
|
396
|
+
- **Onboarding Acceleration** – New AI sessions instantly understand architectural history
|
|
397
|
+
|
|
398
|
+
### Cross-Session AI Workflows
|
|
399
|
+
- **Multi-Session Projects** – AI maintains context across days/weeks without re-reading documentation
|
|
400
|
+
- **Multi-Agent Coordination** – Multiple AI agents share architectural understanding through ADR database
|
|
401
|
+
- **Breaking Change Management** – Document API changes, deprecations, and migration paths systematically
|
|
402
|
+
- **Refactoring Guidance** – AI references past decisions to maintain architectural consistency during refactors
|
|
403
|
+
|
|
404
|
+
### Real-World Examples
|
|
405
|
+
```bash
|
|
406
|
+
# Document an architectural decision with alternatives
|
|
407
|
+
/sqlew record we use PostgreSQL over MongoDB. MongoDB was rejected due to lack of ACID transactions for our financial data requirements.
|
|
408
|
+
|
|
409
|
+
# Search for past decisions before making new ones
|
|
410
|
+
/sqlew search why did we choose JWT authentication
|
|
411
|
+
|
|
412
|
+
# Create constraint to guide AI code generation
|
|
413
|
+
/sqlew add constraint all API endpoints must use /v2/ prefix for versioning
|
|
414
|
+
|
|
415
|
+
# Plan implementation of a decision
|
|
416
|
+
/sqlew plan implementing the PostgreSQL connection pool with pgBouncer
|
|
417
|
+
```
|
|
340
418
|
|
|
341
419
|
See [docs/WORKFLOWS.md](docs/WORKFLOWS.md) for detailed multi-step examples.
|
|
342
420
|
|
|
@@ -370,7 +448,7 @@ See [docs/DECISION_INTELLIGENCE.md](docs/DECISION_INTELLIGENCE.md) for details o
|
|
|
370
448
|
|
|
371
449
|
## License
|
|
372
450
|
|
|
373
|
-
|
|
451
|
+
Apache License 2.0 - Free for commercial and personal use. See [LICENSE](LICENSE) for details.
|
|
374
452
|
|
|
375
453
|
## Links
|
|
376
454
|
|
|
@@ -2,11 +2,11 @@
|
|
|
2
2
|
|
|
3
3
|
When `<system-reminder>Plan mode is active</system-reminder>` appears:
|
|
4
4
|
|
|
5
|
-
### Phase
|
|
5
|
+
### Research Phase - Check existing context:
|
|
6
6
|
- `mcp__sqlew__suggest action="by_tags"` - find related decisions
|
|
7
7
|
- `mcp__sqlew__task action="list" status="in_progress"` - check active tasks
|
|
8
8
|
|
|
9
|
-
###
|
|
9
|
+
### Final Plan Phase - Record outcomes:
|
|
10
10
|
- `mcp__sqlew__decision action="set"` - record key architectural decisions
|
|
11
11
|
- `mcp__sqlew__task action="create_batch"` - create implementation tasks
|
|
12
12
|
|
|
@@ -190,6 +190,22 @@ architect = true
|
|
|
190
190
|
# NOTE: Documentation is centralized in docs/SPECIALIZED_AGENTS.md
|
|
191
191
|
# See: https://github.com/sin5ddd/mcp-sqlew/blob/main/docs/SPECIALIZED_AGENTS.md
|
|
192
192
|
|
|
193
|
+
# ============================================================================
|
|
194
|
+
# Slash Commands Settings
|
|
195
|
+
# ============================================================================
|
|
196
|
+
[commands]
|
|
197
|
+
# Which slash commands to install on server startup
|
|
198
|
+
# Set to false to skip commands you don't need
|
|
199
|
+
|
|
200
|
+
# /sqlew: Unified natural language interface for decisions and tasks
|
|
201
|
+
# Usage: /sqlew <what you want to do>
|
|
202
|
+
# Examples:
|
|
203
|
+
# /sqlew show remaining tasks
|
|
204
|
+
# /sqlew search for auth decisions
|
|
205
|
+
# /sqlew record that we use PostgreSQL 15
|
|
206
|
+
# Default: true
|
|
207
|
+
sqlew = true
|
|
208
|
+
|
|
193
209
|
# ============================================================================
|
|
194
210
|
# Example Configurations
|
|
195
211
|
# ============================================================================
|
|
@@ -3,6 +3,7 @@ name: sqlew-architect
|
|
|
3
3
|
description: Use this agent when you need to document architectural decisions, enforce design constraints, maintain technical standards, and ensure long-term system integrity. Specialized in creating decision records with comprehensive rationale, establishing constraints, and validating architectural compliance. This agent is your guardian of design quality and consistency.
|
|
4
4
|
model: opus
|
|
5
5
|
color: green
|
|
6
|
+
skills: sqlew-plan-guidance
|
|
6
7
|
Examples:
|
|
7
8
|
|
|
8
9
|
<example>
|
|
@@ -3,6 +3,7 @@ name: sqlew-researcher
|
|
|
3
3
|
description: Use this agent when you need to query, analyze, and extract insights from sqlew's context database. Specialized in searching decisions, reviewing constraints, analyzing task patterns, and investigating historical context. This agent is your go-to for understanding "what was decided and why" across the project lifecycle.
|
|
4
4
|
model: haiku
|
|
5
5
|
color: blue
|
|
6
|
+
skills: sqlew-plan-guidance
|
|
6
7
|
Examples:
|
|
7
8
|
|
|
8
9
|
<example>
|
|
@@ -3,6 +3,7 @@ name: scrum-master
|
|
|
3
3
|
description: Use this agent when you need to coordinate multi-agent development work, manage agile workflows, track tasks and dependencies using sqlew, or facilitate sprint planning and execution. This agent should proactively monitor project progress and ensure efficient collaboration between sub-agents.
|
|
4
4
|
model: sonnet
|
|
5
5
|
color: purple
|
|
6
|
+
skills: sqlew-plan-guidance
|
|
6
7
|
Examples:
|
|
7
8
|
|
|
8
9
|
<example>
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"minimal-generator.d.ts","sourceRoot":"","sources":["../../src/config/minimal-generator.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAKH;;;;GAIG;AACH,wBAAgB,qBAAqB,IAAI,MAAM,
|
|
1
|
+
{"version":3,"file":"minimal-generator.d.ts","sourceRoot":"","sources":["../../src/config/minimal-generator.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAKH;;;;GAIG;AACH,wBAAgB,qBAAqB,IAAI,MAAM,CA0E9C;AAED;;;;;GAKG;AACH,wBAAgB,8BAA8B,CAAC,WAAW,GAAE,MAAsB,GAAG,OAAO,CAmB3F;AAED;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,WAAW,GAAE,MAAsB,GAAG,MAAM,CAEzE"}
|
|
@@ -10,97 +10,78 @@ import { join, dirname } from 'path';
|
|
|
10
10
|
* @returns TOML content string
|
|
11
11
|
*/
|
|
12
12
|
export function generateMinimalConfig() {
|
|
13
|
-
return `# sqlew Minimal Configuration
|
|
14
|
-
# Generated automatically - edit as needed
|
|
15
|
-
# Full example: .sqlew/config.example.toml
|
|
16
|
-
# Documentation: https://github.com/sin5ddd/mcp-sqlew
|
|
17
|
-
|
|
18
|
-
# ============================================================================
|
|
19
|
-
# Specialized Agents Settings
|
|
20
|
-
# ============================================================================
|
|
21
|
-
[agents]
|
|
22
|
-
# Which specialized agents to install when running: npx sqlew-init-agents
|
|
23
|
-
# Set to false to skip agents you don't need (reduces token consumption)
|
|
24
|
-
|
|
25
|
-
# Scrum Master: Multi-agent coordination, task management, sprint planning
|
|
26
|
-
# Token cost: ~12KB per conversation when loaded in Claude Code
|
|
27
|
-
scrum_master = true
|
|
28
|
-
|
|
29
|
-
# Researcher: Query decisions, analyze patterns, investigate context
|
|
30
|
-
# Token cost: ~14KB per conversation when loaded in Claude Code
|
|
31
|
-
researcher = true
|
|
32
|
-
|
|
33
|
-
# Architect: Document decisions, enforce constraints, maintain standards
|
|
34
|
-
# Token cost: ~20KB per conversation when loaded in Claude Code
|
|
35
|
-
architect = true
|
|
36
|
-
|
|
37
|
-
# Example: Minimal installation (only Scrum Master for task management)
|
|
38
|
-
# [agents]
|
|
39
|
-
# scrum_master = true
|
|
40
|
-
# researcher = false
|
|
41
|
-
# architect = false
|
|
42
|
-
|
|
43
|
-
# ============================================================================
|
|
44
|
-
# Slash Commands Settings
|
|
45
|
-
# ============================================================================
|
|
46
|
-
[commands]
|
|
47
|
-
# Which slash commands to install on server startup
|
|
48
|
-
# Set to false to skip commands you don't need
|
|
49
|
-
|
|
50
|
-
# /
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
#
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
#
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
#
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
#
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
#
|
|
69
|
-
|
|
70
|
-
#
|
|
71
|
-
#
|
|
72
|
-
#
|
|
73
|
-
#
|
|
74
|
-
#
|
|
75
|
-
#
|
|
76
|
-
|
|
77
|
-
#
|
|
78
|
-
#
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
#
|
|
82
|
-
# #
|
|
83
|
-
#
|
|
84
|
-
# #
|
|
85
|
-
# message_hours = 24
|
|
86
|
-
# # File change history retention in days
|
|
87
|
-
# file_history_days = 7
|
|
88
|
-
|
|
89
|
-
# [tasks]
|
|
90
|
-
# # Auto-archive done tasks after N days
|
|
91
|
-
# auto_archive_done_days = 2
|
|
92
|
-
# # Stale detection threshold for in_progress tasks (hours)
|
|
93
|
-
# stale_hours_in_progress = 2
|
|
94
|
-
# # Stale detection threshold for waiting_review tasks (hours)
|
|
95
|
-
# stale_hours_waiting_review = 24
|
|
96
|
-
# # Enable automatic stale detection
|
|
97
|
-
# auto_stale_enabled = true
|
|
98
|
-
|
|
99
|
-
# [debug]
|
|
100
|
-
# # Debug log file path (optional)
|
|
101
|
-
# # log_path = ".sqlew/debug.log"
|
|
102
|
-
# # Log level: "error", "warn", "info", "debug"
|
|
103
|
-
# # log_level = "info"
|
|
13
|
+
return `# sqlew Minimal Configuration
|
|
14
|
+
# Generated automatically - edit as needed
|
|
15
|
+
# Full example: .sqlew/config.example.toml
|
|
16
|
+
# Documentation: https://github.com/sin5ddd/mcp-sqlew
|
|
17
|
+
|
|
18
|
+
# ============================================================================
|
|
19
|
+
# Specialized Agents Settings
|
|
20
|
+
# ============================================================================
|
|
21
|
+
[agents]
|
|
22
|
+
# Which specialized agents to install when running: npx sqlew-init-agents
|
|
23
|
+
# Set to false to skip agents you don't need (reduces token consumption)
|
|
24
|
+
|
|
25
|
+
# Scrum Master: Multi-agent coordination, task management, sprint planning
|
|
26
|
+
# Token cost: ~12KB per conversation when loaded in Claude Code
|
|
27
|
+
scrum_master = true
|
|
28
|
+
|
|
29
|
+
# Researcher: Query decisions, analyze patterns, investigate context
|
|
30
|
+
# Token cost: ~14KB per conversation when loaded in Claude Code
|
|
31
|
+
researcher = true
|
|
32
|
+
|
|
33
|
+
# Architect: Document decisions, enforce constraints, maintain standards
|
|
34
|
+
# Token cost: ~20KB per conversation when loaded in Claude Code
|
|
35
|
+
architect = true
|
|
36
|
+
|
|
37
|
+
# Example: Minimal installation (only Scrum Master for task management)
|
|
38
|
+
# [agents]
|
|
39
|
+
# scrum_master = true
|
|
40
|
+
# researcher = false
|
|
41
|
+
# architect = false
|
|
42
|
+
|
|
43
|
+
# ============================================================================
|
|
44
|
+
# Slash Commands Settings
|
|
45
|
+
# ============================================================================
|
|
46
|
+
[commands]
|
|
47
|
+
# Which slash commands to install on server startup
|
|
48
|
+
# Set to false to skip commands you don't need
|
|
49
|
+
|
|
50
|
+
# /sqlew: Unified natural language interface for decisions and tasks
|
|
51
|
+
# Usage: /sqlew <what you want to do>
|
|
52
|
+
# Examples:
|
|
53
|
+
# /sqlew show remaining tasks
|
|
54
|
+
# /sqlew search for auth decisions
|
|
55
|
+
# /sqlew record that we use PostgreSQL 15
|
|
56
|
+
sqlew = true
|
|
57
|
+
|
|
58
|
+
# ============================================================================
|
|
59
|
+
# Other Settings (Optional - uncomment to customize)
|
|
60
|
+
# ============================================================================
|
|
61
|
+
|
|
62
|
+
# [autodelete]
|
|
63
|
+
# # Skip weekends when calculating retention periods
|
|
64
|
+
# ignore_weekend = false
|
|
65
|
+
# # Message retention period in hours
|
|
66
|
+
# message_hours = 24
|
|
67
|
+
# # File change history retention in days
|
|
68
|
+
# file_history_days = 7
|
|
69
|
+
|
|
70
|
+
# [tasks]
|
|
71
|
+
# # Auto-archive done tasks after N days
|
|
72
|
+
# auto_archive_done_days = 2
|
|
73
|
+
# # Stale detection threshold for in_progress tasks (hours)
|
|
74
|
+
# stale_hours_in_progress = 2
|
|
75
|
+
# # Stale detection threshold for waiting_review tasks (hours)
|
|
76
|
+
# stale_hours_waiting_review = 24
|
|
77
|
+
# # Enable automatic stale detection
|
|
78
|
+
# auto_stale_enabled = true
|
|
79
|
+
|
|
80
|
+
# [debug]
|
|
81
|
+
# # Debug log file path (optional)
|
|
82
|
+
# # log_path = ".sqlew/debug.log"
|
|
83
|
+
# # Log level: "error", "warn", "info", "debug"
|
|
84
|
+
# # log_level = "info"
|
|
104
85
|
`;
|
|
105
86
|
}
|
|
106
87
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"minimal-generator.js","sourceRoot":"","sources":["../../src/config/minimal-generator.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,IAAI,CAAC;AAC1D,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAErC;;;;GAIG;AACH,MAAM,UAAU,qBAAqB;IACnC,OAAO
|
|
1
|
+
{"version":3,"file":"minimal-generator.js","sourceRoot":"","sources":["../../src/config/minimal-generator.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,IAAI,CAAC;AAC1D,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAErC;;;;GAIG;AACH,MAAM,UAAU,qBAAqB;IACnC,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAwER,CAAC;AACF,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,8BAA8B,CAAC,cAAsB,OAAO,CAAC,GAAG,EAAE;IAChF,MAAM,UAAU,GAAG,IAAI,CAAC,WAAW,EAAE,QAAQ,EAAE,aAAa,CAAC,CAAC;IAE9D,4CAA4C;IAC5C,IAAI,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QAC3B,OAAO,KAAK,CAAC;IACf,CAAC;IAED,8CAA8C;IAC9C,MAAM,QAAQ,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;IACrC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC1B,SAAS,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC3C,CAAC;IAED,uBAAuB;IACvB,MAAM,OAAO,GAAG,qBAAqB,EAAE,CAAC;IACxC,aAAa,CAAC,UAAU,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;IAE5C,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,aAAa,CAAC,cAAsB,OAAO,CAAC,GAAG,EAAE;IAC/D,OAAO,IAAI,CAAC,WAAW,EAAE,QAAQ,EAAE,aAAa,CAAC,CAAC;AACpD,CAAC"}
|
package/dist/config/types.d.ts
CHANGED
|
@@ -296,18 +296,8 @@ export interface AgentsConfig {
|
|
|
296
296
|
* Slash commands configuration
|
|
297
297
|
*/
|
|
298
298
|
export interface CommandsConfig {
|
|
299
|
-
/** Install /
|
|
300
|
-
|
|
301
|
-
/** Install /sqw-secretary command (record decisions like meeting minutes) */
|
|
302
|
-
secretary?: boolean;
|
|
303
|
-
/** Install /sqw-plan command (planning workflow) */
|
|
304
|
-
plan?: boolean;
|
|
305
|
-
/** Install /sqw-research command (research workflow) */
|
|
306
|
-
research?: boolean;
|
|
307
|
-
/** Install /sqw-review command (review workflow) */
|
|
308
|
-
review?: boolean;
|
|
309
|
-
/** Install /sqw-scrum command (task management + agent coordination) */
|
|
310
|
-
scrum?: boolean;
|
|
299
|
+
/** Install /sqlew command (unified natural language interface for decisions and tasks) */
|
|
300
|
+
sqlew?: boolean;
|
|
311
301
|
}
|
|
312
302
|
/**
|
|
313
303
|
* Project configuration (v3.7.0+)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/config/types.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAMH;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,MAAM,WAAW,SAAS;IACxB;;;OAGG;IACH,EAAE,CAAC,EAAE,MAAM,CAAC;IAEZ;;;OAGG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd;;;OAGG;IACH,GAAG,CAAC,EAAE,MAAM,CAAC;IAEb;;;;;;OAMG;IACH,kBAAkB,CAAC,EAAE,OAAO,CAAC;CAC9B;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2CG;AACH,MAAM,WAAW,UAAU;IACzB;;;;;;OAMG;IACH,IAAI,EAAE,QAAQ,GAAG,SAAS,GAAG,SAAS,CAAC;IAEvC;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB;;OAEG;IACH,GAAG,CAAC,EAAE,SAAS,CAAC;CACjB;AAED;;;;;;;;;;;;;;GAcG;AACH,MAAM,WAAW,gBAAgB;IAC/B;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;IAEb;;;;;OAKG;IACH,IAAI,EAAE,MAAM,CAAC;IAEb;;;OAGG;IACH,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6DG;AACH,MAAM,WAAW,cAAc;IAC7B;;;OAGG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd;;;;;OAKG;IACH,IAAI,CAAC,EAAE,QAAQ,GAAG,UAAU,GAAG,OAAO,CAAC;IAEvC;;;;;OAKG;IACH,UAAU,CAAC,EAAE,gBAAgB,CAAC;IAE9B;;;;;OAKG;IACH,IAAI,CAAC,EAAE,UAAU,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,8CAA8C;IAC9C,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,wCAAwC;IACxC,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,4CAA4C;IAC5C,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,2CAA2C;IAC3C,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,8DAA8D;IAC9D,uBAAuB,CAAC,EAAE,MAAM,CAAC;IACjC,iEAAiE;IACjE,0BAA0B,CAAC,EAAE,MAAM,CAAC;IACpC,uCAAuC;IACvC,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,gEAAgE;IAChE,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,6DAA6D;IAC7D,iCAAiC,CAAC,EAAE,OAAO,CAAC;IAC5C,0CAA0C;IAC1C,yBAAyB,CAAC,EAAE,OAAO,CAAC;IACpC,kDAAkD;IAClD,sBAAsB,CAAC,EAAE,OAAO,CAAC;CAClC;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,8EAA8E;IAC9E,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,sFAAsF;IACtF,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,+EAA+E;IAC/E,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,kFAAkF;IAClF,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,uFAAuF;IACvF,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/config/types.ts"],"names":[],"mappings":"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"}
|