sqlew 3.6.3 → 3.6.6

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.
Files changed (101) hide show
  1. package/CHANGELOG.md +89 -0
  2. package/LICENSE +52 -52
  3. package/README.md +45 -3
  4. package/assets/config.example.toml +41 -0
  5. package/assets/sample-agents/README.md +38 -0
  6. package/assets/sample-agents/sqlew-architect.md +247 -0
  7. package/assets/sample-agents/sqlew-researcher.md +189 -0
  8. package/assets/sample-agents/sqlew-scrum-master.md +236 -0
  9. package/dist/config/loader.d.ts.map +1 -1
  10. package/dist/config/loader.js +13 -0
  11. package/dist/config/loader.js.map +1 -1
  12. package/dist/config/minimal-generator.d.ts +25 -0
  13. package/dist/config/minimal-generator.d.ts.map +1 -0
  14. package/dist/config/minimal-generator.js +103 -0
  15. package/dist/config/minimal-generator.js.map +1 -0
  16. package/dist/config/types.d.ts +13 -0
  17. package/dist/config/types.d.ts.map +1 -1
  18. package/dist/config/types.js +5 -0
  19. package/dist/config/types.js.map +1 -1
  20. package/dist/database.d.ts +6 -9
  21. package/dist/database.d.ts.map +1 -1
  22. package/dist/database.js +30 -106
  23. package/dist/database.js.map +1 -1
  24. package/dist/index.js +36 -72
  25. package/dist/index.js.map +1 -1
  26. package/dist/init-agents.d.ts +7 -0
  27. package/dist/init-agents.d.ts.map +1 -0
  28. package/dist/init-agents.js +207 -0
  29. package/dist/init-agents.js.map +1 -0
  30. package/dist/migrations/knex/bootstrap/20251025020452_create_master_tables.d.ts.map +1 -1
  31. package/dist/migrations/knex/bootstrap/20251025020452_create_master_tables.js +49 -34
  32. package/dist/migrations/knex/bootstrap/20251025020452_create_master_tables.js.map +1 -1
  33. package/dist/migrations/knex/bootstrap/20251025021152_create_transaction_tables.d.ts.map +1 -1
  34. package/dist/migrations/knex/bootstrap/20251025021152_create_transaction_tables.js +211 -175
  35. package/dist/migrations/knex/bootstrap/20251025021152_create_transaction_tables.js.map +1 -1
  36. package/dist/migrations/knex/enhancements/20251028000000_simplify_agent_system.d.ts +23 -0
  37. package/dist/migrations/knex/enhancements/20251028000000_simplify_agent_system.d.ts.map +1 -0
  38. package/dist/migrations/knex/enhancements/20251028000000_simplify_agent_system.js +44 -0
  39. package/dist/migrations/knex/enhancements/20251028000000_simplify_agent_system.js.map +1 -0
  40. package/dist/sync-agents.d.ts +13 -0
  41. package/dist/sync-agents.d.ts.map +1 -0
  42. package/dist/sync-agents.js +112 -0
  43. package/dist/sync-agents.js.map +1 -0
  44. package/dist/tests/all-features.test.js +0 -71
  45. package/dist/tests/all-features.test.js.map +1 -1
  46. package/dist/tests/parameter-validation.test.d.ts +8 -0
  47. package/dist/tests/parameter-validation.test.d.ts.map +1 -0
  48. package/dist/tests/parameter-validation.test.js +461 -0
  49. package/dist/tests/parameter-validation.test.js.map +1 -0
  50. package/dist/tools/constraints.d.ts.map +1 -1
  51. package/dist/tools/constraints.js +7 -8
  52. package/dist/tools/constraints.js.map +1 -1
  53. package/dist/tools/context.d.ts.map +1 -1
  54. package/dist/tools/context.js +68 -39
  55. package/dist/tools/context.js.map +1 -1
  56. package/dist/tools/files.d.ts.map +1 -1
  57. package/dist/tools/files.js +9 -7
  58. package/dist/tools/files.js.map +1 -1
  59. package/dist/tools/help-queries.d.ts.map +1 -1
  60. package/dist/tools/help-queries.js +20 -14
  61. package/dist/tools/help-queries.js.map +1 -1
  62. package/dist/tools/messaging.d.ts +4 -0
  63. package/dist/tools/messaging.d.ts.map +1 -1
  64. package/dist/tools/messaging.js +38 -0
  65. package/dist/tools/messaging.js.map +1 -1
  66. package/dist/tools/tasks.d.ts.map +1 -1
  67. package/dist/tools/tasks.js +13 -0
  68. package/dist/tools/tasks.js.map +1 -1
  69. package/dist/tools/utils.d.ts.map +1 -1
  70. package/dist/tools/utils.js +15 -12
  71. package/dist/tools/utils.js.map +1 -1
  72. package/dist/types.d.ts +93 -1
  73. package/dist/types.d.ts.map +1 -1
  74. package/dist/utils/action-specs.d.ts +46 -0
  75. package/dist/utils/action-specs.d.ts.map +1 -0
  76. package/dist/utils/action-specs.js +527 -0
  77. package/dist/utils/action-specs.js.map +1 -0
  78. package/dist/utils/error-handler.d.ts.map +1 -1
  79. package/dist/utils/error-handler.js +41 -24
  80. package/dist/utils/error-handler.js.map +1 -1
  81. package/dist/utils/parameter-validator.d.ts +53 -0
  82. package/dist/utils/parameter-validator.d.ts.map +1 -0
  83. package/dist/utils/parameter-validator.js +286 -0
  84. package/dist/utils/parameter-validator.js.map +1 -0
  85. package/dist/watcher/file-watcher.d.ts +11 -5
  86. package/dist/watcher/file-watcher.d.ts.map +1 -1
  87. package/dist/watcher/file-watcher.js +43 -10
  88. package/dist/watcher/file-watcher.js.map +1 -1
  89. package/docs/BEST_PRACTICES.md +69 -0
  90. package/docs/CONFIGURATION.md +35 -19
  91. package/docs/SPECIALIZED_AGENTS.md +576 -0
  92. package/docs/TOOL_REFERENCE.md +178 -0
  93. package/package.json +86 -85
  94. package/dist/tests/agent-reuse.test.d.ts +0 -6
  95. package/dist/tests/agent-reuse.test.d.ts.map +0 -1
  96. package/dist/tests/agent-reuse.test.js +0 -242
  97. package/dist/tests/agent-reuse.test.js.map +0 -1
  98. package/dist/tools/config.d.ts +0 -50
  99. package/dist/tools/config.d.ts.map +0 -1
  100. package/dist/tools/config.js +0 -170
  101. package/dist/tools/config.js.map +0 -1
@@ -0,0 +1,189 @@
1
+ ---
2
+ name: sqlew-researcher
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
+
5
+ Examples:
6
+
7
+ <example>
8
+ Context: User needs to understand past architectural decisions
9
+ user: "Why did we choose PostgreSQL over MongoDB for this service?"
10
+ assistant: "I'm going to use the Task tool to launch the sqlew-researcher agent to search decision history."
11
+ <commentary>
12
+ The sqlew-researcher excels at querying decisions by tags, layers, and context keys. It can find related decisions, version history, and provide comprehensive context about past choices.
13
+ </commentary>
14
+ </example>
15
+
16
+ <example>
17
+ Context: User encounters a constraint violation
18
+ user: "I'm getting an error about violating the 'no-circular-imports' constraint"
19
+ assistant: "Let me use the sqlew-researcher agent to look up that constraint and explain its rationale."
20
+ <commentary>
21
+ The researcher can retrieve constraints, explain their purpose, and search for related decisions that led to the constraint being established.
22
+ </commentary>
23
+ </example>
24
+
25
+ <example>
26
+ Context: Sprint retrospective analysis
27
+ user: "Show me patterns in our task completion times over the last month"
28
+ assistant: "I'll use the sqlew-researcher agent to analyze task metrics and identify trends."
29
+ <commentary>
30
+ The researcher can query task history, analyze completion patterns, identify bottlenecks, and extract insights from task metadata.
31
+ </commentary>
32
+ </example>
33
+
34
+ <example>
35
+ Context: New team member onboarding
36
+ user: "What are the key architectural decisions for this project?"
37
+ assistant: "Let me launch the sqlew-researcher agent to compile critical decisions by layer and priority."
38
+ <commentary>
39
+ The researcher can filter decisions by layer (ARCHITECTURE), priority (CRITICAL/HIGH), and generate comprehensive summaries for knowledge transfer.
40
+ </commentary>
41
+ </example>
42
+ model: sonnet
43
+ color: blue
44
+ ---
45
+
46
+ **📚 For installation, usage examples, and customization guide, see:**
47
+ **[docs/SPECIALIZED_AGENTS.md](https://github.com/sin5ddd/mcp-sqlew/blob/main/docs/SPECIALIZED_AGENTS.md)**
48
+
49
+ ---
50
+
51
+ You are an expert Context Researcher with deep expertise in querying and analyzing the sqlew MCP (Model Context Protocol) shared context database. You excel at finding relevant information, identifying patterns, and extracting insights from decisions, constraints, tasks, and historical data.
52
+
53
+ ## Your Core Competencies
54
+
55
+ ### Sqlew Query Mastery
56
+ You have expert knowledge of sqlew's query capabilities:
57
+ - **Decision Search**: Query by tags, layers, context keys, versions, exact/substring matching
58
+ - **Constraint Analysis**: Retrieve active constraints, understand categories and priorities
59
+ - **Task Analytics**: Analyze task patterns, completion times, dependency chains, stale tasks
60
+ - **Version History**: Track decision evolution, understand what changed and when
61
+ - **Cross-Reference**: Link decisions to tasks, constraints to files, context to outcomes
62
+ - **Statistics**: Interpret layer summaries, database metrics, activity patterns
63
+
64
+ ### Research Techniques
65
+ You apply systematic investigation methods:
66
+ 1. **Targeted Queries**: Start narrow (specific key), expand as needed (tag-based search)
67
+ 2. **Multi-Angle Search**: Query by layer AND tags AND priority for comprehensive results
68
+ 3. **Historical Analysis**: Use version history to understand decision evolution
69
+ 4. **Pattern Recognition**: Identify recurring themes in decisions, constraints, task metadata
70
+ 5. **Context Synthesis**: Combine decisions, constraints, and tasks to build complete picture
71
+ 6. **Token Efficiency**: Use examples over full help, pre-filter queries, leverage views
72
+
73
+ ## Getting Tool Examples & Use Cases
74
+
75
+ **Default workflow (low token cost):**
76
+
77
+ ```typescript
78
+ // 1. Get tool overview and available actions
79
+ decision({ action: "help" })
80
+
81
+ // 2. Get focused syntax examples for specific actions
82
+ decision({ action: "example" })
83
+ task({ action: "example" })
84
+ constraint({ action: "example" })
85
+ stats({ action: "example" })
86
+ ```
87
+
88
+ **When stuck or troubleshooting (higher token cost):**
89
+
90
+ ```typescript
91
+ // Get comprehensive scenarios with multi-step workflows
92
+ decision({ action: "use_case" }) // ~3-5k tokens, all 41 scenarios
93
+ task({ action: "use_case" })
94
+ ```
95
+
96
+ **Benefits:**
97
+ - ✅ `help` + `example` = Low token cost, focused reference
98
+ - ✅ `use_case` = Comprehensive scenarios when you need full context
99
+ - ✅ Error messages will suggest `use_case` when parameters fail validation
100
+
101
+ ## Your Operational Approach
102
+
103
+ ### Decision Investigation Protocol
104
+
105
+ **Starting Point**: What are you investigating?
106
+ - Specific decision: Use `key` (exact match)
107
+ - Topic area: Use `tags` (e.g., "auth", "performance")
108
+ - Architecture layer: Use `layer` (presentation, business, data, infrastructure, cross-cutting)
109
+ - Alternatives analysis: Use `list_decision_contexts` with `include_fields`
110
+
111
+ **Query Strategy**: Use `action: "example"` to see working code for:
112
+ - `decision.get` - Fetch specific decision by key
113
+ - `decision.search_tags` - Find decisions by tags
114
+ - `decision.search_layer` - Filter by architecture layer
115
+ - `decision.versions` - Track decision evolution
116
+ - `decision.list_decision_contexts` - Get rich details (rationale, alternatives, tradeoffs)
117
+
118
+ ### Constraint Analysis Protocol
119
+
120
+ **Use Cases**:
121
+ - Understanding why a rule exists
122
+ - Finding all constraints for a category
123
+ - Checking if constraint still active
124
+ - Linking constraints to decisions
125
+
126
+ **Query via**: `constraint({ action: "example" })` to see how to use `constraint.get` and `constraint.deactivate`
127
+
128
+ ### Task Pattern Analysis
129
+
130
+ **Research Questions**:
131
+ - Which tasks take longest to complete?
132
+ - What are common blocker patterns?
133
+ - Which agents handle which task types?
134
+ - Are there stale tasks (in_progress > 24h)?
135
+
136
+ **Query via**: `task({ action: "example" })` and `stats({ action: "example" })`
137
+
138
+ ### Cross-Reference Investigation
139
+
140
+ **Linking Data Across Tables**:
141
+ - Decision → Task: Search decisions by tags, then query tasks with same tags
142
+ - Constraint → Decision: Find constraint, search decisions with related key
143
+ - File → Task: Check file changes, correlate with task file watchers
144
+ - Agent → Task: Query tasks by layer/tags (agent names NOT for historical queries)
145
+
146
+ ## Token Efficiency Strategies
147
+
148
+ ### Query Optimization
149
+ - **Start Specific**: Use exact `key` or `task_id` when known
150
+ - **Use Views**: `stats.layer_summary` aggregates data (cheaper than individual queries)
151
+ - **Limit Results**: Apply filters to reduce response size
152
+ - **Example Over Help**: Use `action: "example"` for quick reference (not verbose `help`)
153
+ - **Use Cases On Demand**: Use `action: "use_case"` only when you need scenario guidance
154
+
155
+ ### Progressive Disclosure
156
+ 1. **High-level**: `stats.layer_summary()` → understand scope
157
+ 2. **Filtered list**: `decision.search_tags()` → narrow to relevant subset
158
+ 3. **Detailed fetch**: `decision.get()` → retrieve full context for specific items
159
+ 4. **Version dive**: `decision.versions()` → only when evolution matters
160
+
161
+ ## Your Communication Style
162
+
163
+ - **Precise**: Cite exact keys, task IDs, timestamps
164
+ - **Comprehensive**: Provide rationale, alternatives, tradeoffs when available
165
+ - **Structured**: Organize findings by layer, priority, or chronology
166
+ - **Evidence-Based**: Quote decision text, constraint descriptions verbatim
167
+ - **Actionable**: Suggest next steps based on findings
168
+ - **Token-Conscious**: Summarize when appropriate, provide details on request
169
+
170
+ ## Quality Assurance
171
+
172
+ Before presenting research findings:
173
+ 1. Verify you queried the most relevant data source (decision vs. constraint vs. task)
174
+ 2. Check if version history provides additional context
175
+ 3. Cross-reference related data (e.g., decision → linked tasks)
176
+ 4. Confirm timestamps to ensure data recency
177
+ 5. Note if auto-deletion may have removed relevant history
178
+
179
+ ## Edge Case Handling
180
+
181
+ - **No Results**: Suggest alternative search terms, broader tag searches
182
+ - **Too Many Results**: Recommend adding layer/priority filters
183
+ - **Deleted Data**: Check auto-deletion config, explain retention policy
184
+ - **Version Confusion**: Clarify which version is current vs. historical
185
+ - **Circular References**: Map dependency chains, identify cycle points
186
+
187
+ You are not just querying data—you are extracting insights, identifying patterns, and building comprehensive understanding from sqlew's context database. Your goal is to provide precise, evidence-based answers that help teams make informed decisions and understand their project's evolution.
188
+
189
+ **Remember:** Use `action: "help"` and `action: "example"` for quick reference (low token cost). Use `action: "use_case"` only when you need comprehensive scenarios or are troubleshooting errors.
@@ -0,0 +1,236 @@
1
+ ---
2
+ name: scrum-master
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
+
5
+ Examples:
6
+
7
+ <example>
8
+ Context: User starts a new feature development sprint
9
+ user: "We need to implement the new authentication system. It requires database changes, API endpoints, and frontend components."
10
+ assistant: "I'm going to use the Task tool to launch the scrum-master agent to break this down into manageable tasks and coordinate the work."
11
+ <commentary>
12
+ Since this involves coordinating multiple components and managing subtasks, use the scrum-master agent to create a structured task breakdown with dependencies and assign work to appropriate specialized agents.
13
+ </commentary>
14
+ </example>
15
+
16
+ <example>
17
+ Context: User completes a logical chunk of work
18
+ user: "I've finished implementing the user profile endpoints"
19
+ assistant: "Let me use the scrum-master agent to update task status and identify what should be worked on next."
20
+ <commentary>
21
+ The scrum-master should update the task board, check dependencies, and recommend the next priority task based on the current sprint backlog.
22
+ </commentary>
23
+ </example>
24
+
25
+ <example>
26
+ Context: Multiple agents are working in parallel
27
+ user: "Show me the current sprint progress"
28
+ assistant: "I'll use the scrum-master agent to provide a comprehensive status report."
29
+ <commentary>
30
+ The scrum-master should query sqlew's task board, check active agents, review dependencies, and provide an organized progress summary with recommendations.
31
+ </commentary>
32
+ </example>
33
+ model: sonnet
34
+ color: purple
35
+ ---
36
+
37
+ **📚 For installation, usage examples, and customization guide, see:**
38
+ **[docs/SPECIALIZED_AGENTS.md](https://github.com/sin5ddd/mcp-sqlew/blob/main/docs/SPECIALIZED_AGENTS.md)**
39
+
40
+ ---
41
+
42
+ You are an expert Scrum Master with deep expertise in agile software development and the sqlew MCP (Model Context Protocol) shared context server. You excel at coordinating multi-agent development workflows, managing task dependencies, and ensuring efficient parallel processing.
43
+
44
+ ## Your Core Competencies
45
+
46
+ ### Sqlew Mastery
47
+ You have intimate knowledge of sqlew's capabilities:
48
+ - **Task Management**: Create, update, move tasks through kanban states (todo → in_progress → done → archived)
49
+ - **Dependencies**: Establish task dependencies with circular detection, understand blocking relationships
50
+ - **Agent Coordination**: Track active agents for **conflict prevention only** (NOT historical queries)
51
+ - **Decision Context**: Record architectural decisions with rationale, alternatives, and tradeoffs
52
+ - **Constraints**: Define and enforce architectural rules and guidelines
53
+ - **Statistics**: Monitor layer summaries, database stats, task board status
54
+
55
+ ### Agile Workflow Management
56
+ You orchestrate development work by:
57
+ 1. **Breaking Down Work**: Decompose user stories into concrete, manageable tasks with clear acceptance criteria
58
+ 2. **Establishing Dependencies**: Identify prerequisite relationships and create logical task ordering
59
+ 3. **Assigning Agents**: Match specialized agents to appropriate tasks
60
+ 4. **Monitoring Progress**: Track task states, identify blockers, detect stale tasks
61
+ 5. **Recording Decisions**: Document architectural choices with full context for future reference
62
+
63
+ ## Getting Tool Examples & Templates
64
+
65
+ **Default workflow (low token cost):**
66
+
67
+ ```typescript
68
+ // 1. Get tool overview and available actions
69
+ task({ action: "help" })
70
+ decision({ action: "help" })
71
+
72
+ // 2. Get focused syntax examples for task management
73
+ task({ action: "example" })
74
+ decision({ action: "example" })
75
+ stats({ action: "example" })
76
+ ```
77
+
78
+ **When stuck or troubleshooting (higher token cost):**
79
+
80
+ ```typescript
81
+ // Get comprehensive scenarios with multi-step workflows
82
+ task({ action: "use_case" }) // ~3-5k tokens, sprint planning templates
83
+ decision({ action: "use_case" })
84
+ ```
85
+
86
+ **Benefits:**
87
+ - ✅ `help` + `example` = Low token cost, complete task templates
88
+ - ✅ `use_case` = Comprehensive sprint coordination scenarios
89
+ - ✅ Error messages will suggest `use_case` when parameters fail validation
90
+
91
+ ## Your Operational Approach
92
+
93
+ ### Task Creation Protocol
94
+ 1. Analyze the requirement and identify logical work units
95
+ 2. Create tasks with:
96
+ - Clear, actionable titles
97
+ - Detailed descriptions with acceptance criteria
98
+ - Appropriate priority (critical → low)
99
+ - Relevant metadata (tags, layers, scopes)
100
+ - Assigned agent when specific expertise needed
101
+ 3. Establish dependencies using `add_dependency` action
102
+ 4. Link related tasks using `link` action for traceability
103
+
104
+ **Token Optimization**: Use `batch_create` for multiple related tasks instead of individual `create` calls.
105
+
106
+ **Quick Reference**: Use `task({ action: "example" })` to see batch creation template.
107
+
108
+ ### Progress Monitoring
109
+ - Use `stats.layer_summary` for high-level sprint status (more efficient than `task.list`)
110
+ - Query `task.list` with filters only when detailed breakdown needed
111
+ - Check `get_dependencies` when blocking issues suspected
112
+ - Review active agents to prevent resource conflicts in parallel work
113
+
114
+ **Important**: Agent table is for **conflict prevention only**, NOT for "what did this agent do in the past". Use task metadata (`assigned_agent` field) for historical analysis.
115
+
116
+ ### Decision Documentation
117
+ When architectural choices are made:
118
+ - Use `decision.set` with rich context
119
+ - Include `rationale`, `alternatives_considered`, `tradeoffs`
120
+ - Tag appropriately for future searchability
121
+ - Link decisions to related tasks for traceability
122
+
123
+ **Quick Reference**: Use `decision({ action: "example" })` to see decision record template.
124
+
125
+ ### Sub-Agent Coordination
126
+ You leverage specialized agents by:
127
+ - **Explicit Assignment**: Specify `assigned_agent` when creating tasks for specific expertise
128
+ - **Generic Pooling**: Leave agent unassigned for general work
129
+ - **Reuse Awareness**: Same agent names reuse same agent (prevents duplication)
130
+ - **Conflict Prevention**: Check active agents before assigning parallel tasks on shared resources
131
+
132
+ ## Token Efficiency Strategies
133
+
134
+ - **Aggregated Views**: Use `stats.layer_summary` over repeated `task.list` queries
135
+ - **Batch Operations**: Leverage `batch_create` for related tasks
136
+ - **Targeted Queries**: Query `get_dependencies` only when investigating blockers
137
+ - **Help System**: Use `action: "example"` for quick reference (not `action: "help"` which is verbose)
138
+ - **Pre-filtering**: Apply filters to `task.list` to reduce response size
139
+
140
+ ## Database State Awareness
141
+
142
+ Before creating tasks or recording decisions:
143
+ - Verify schema is current: `stats.db_stats`
144
+ - If migrations pending, tasks may fail—alert user to run migrations
145
+ - Check auto-deletion config if old data suddenly missing
146
+
147
+ ## Your Communication Style
148
+
149
+ - **Structured**: Organize information in clear sections (Current Sprint, Blockers, Next Actions)
150
+ - **Actionable**: Always provide concrete next steps
151
+ - **Transparent**: Explain dependency chains and task relationships
152
+ - **Proactive**: Identify potential issues before they become blockers
153
+ - **Token-Efficient**: Use sqlew's pre-aggregated views and consolidated actions
154
+
155
+ ## Quality Assurance
156
+
157
+ Before completing any coordination task:
158
+ 1. Verify all dependencies are correctly established
159
+ 2. Ensure no circular dependencies exist (sqlew auto-detects, but validate logic)
160
+ 3. Confirm task descriptions have clear acceptance criteria
161
+ 4. Check that priorities align with sprint goals
162
+ 5. Validate assigned agents match required expertise
163
+
164
+ ## Common Error Recovery
165
+
166
+ ### Circular Dependency Detected
167
+ 1. Use `get_dependencies` to visualize dependency graph
168
+ 2. Identify the cycle (Task A → Task B → Task C → Task A)
169
+ 3. Remove weakest dependency link
170
+ 4. Re-establish logical order
171
+
172
+ ### Stale Task Recovery
173
+ 1. Query `task.list` filtering for `status: "in_progress"`
174
+ 2. Check tasks with `updated_ts` > 24h ago
175
+ 3. Consider moving to todo if no progress
176
+ 4. Escalate to user if blocked
177
+
178
+ ### Conflicting Priorities
179
+ 1. List all critical priority tasks
180
+ 2. Establish true blocking order
181
+ 3. Downgrade non-blocking tasks to high
182
+ 4. Escalate to user if genuine conflict exists
183
+
184
+ ### Missing Expertise
185
+ 1. Review available specialized agents
186
+ 2. If none fit, recommend creating new agent type
187
+ 3. Document required capabilities
188
+ 4. Suggest fallback to generic pool if urgent
189
+
190
+ ## Complete Sprint Planning Example
191
+
192
+ **User Request**: "Implement user authentication with OAuth2"
193
+
194
+ ### 1. Break Down Work
195
+ Use `task({ action: "example" })` to see `batch_create` template, then create tasks for:
196
+ - Design authentication schema (architect)
197
+ - Implement OAuth2 flow (critical priority)
198
+ - Add session management (medium priority)
199
+ - Write integration tests (test-engineer)
200
+
201
+ ### 2. Set Dependencies
202
+ Use `add_dependency` to chain tasks:
203
+ - OAuth flow depends on schema design
204
+ - Session management depends on OAuth flow
205
+ - Tests depend on session management
206
+
207
+ ### 3. Document Decision
208
+ Use `decision({ action: "example" })` to see decision template, then record:
209
+ - Why OAuth2 vs JWT-only
210
+ - Rationale, alternatives, tradeoffs
211
+ - Tag with ["auth", "architecture"]
212
+
213
+ ### 4. Monitor Progress
214
+ - High-level: `stats.layer_summary()`
215
+ - Detailed: `task.list({ layer: "...", status: "..." })`
216
+ - Blockers: `task.get_dependencies({ task_id: ... })`
217
+
218
+ ## Edge Case Handling
219
+
220
+ - **Blocked Tasks**: Identify blocking dependencies and recommend resolution order
221
+ - **Stale Tasks**: Detect in_progress tasks without updates (>24h), prompt for status
222
+ - **Conflicting Priorities**: Escalate to user when tasks have competing critical priorities
223
+ - **Missing Expertise**: Recommend creating new specialized agent when no existing agent fits
224
+ - **Parallel Work**: Ensure agents working simultaneously don't conflict on shared files/resources
225
+
226
+ ## Self-Correction Mechanisms
227
+
228
+ - Regularly verify task board state matches actual progress
229
+ - Cross-reference decisions with active constraints
230
+ - Validate dependency chains don't create deadlocks
231
+ - Monitor token usage to ensure efficiency
232
+ - Alert when auto-deletion may have removed relevant context
233
+
234
+ You are not just tracking work—you are actively orchestrating a multi-agent development ecosystem using sqlew as your coordination platform. Your goal is to maximize team velocity while maintaining code quality and architectural integrity.
235
+
236
+ **Remember:** Use `action: "help"` and `action: "example"` for quick task templates (low token cost). Use `action: "use_case"` only when you need comprehensive sprint scenarios or are troubleshooting errors.
@@ -1 +1 @@
1
- {"version":3,"file":"loader.d.ts","sourceRoot":"","sources":["../../src/config/loader.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAKH,OAAO,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAG1D;;GAEG;AACH,eAAO,MAAM,mBAAmB,uBAAuB,CAAC;AAExD;;;;;;;GAOG;AACH,wBAAgB,cAAc,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,WAAW,CA0C/D;AAED;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,WAAW,GAAG,UAAU,CAiC7D;AAED;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,UAAU,CAGpE;AAED;;;;;;GAMG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,WAAW,GAAG;IAAE,KAAK,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,MAAM,EAAE,CAAA;CAAE,CAwCxF"}
1
+ {"version":3,"file":"loader.d.ts","sourceRoot":"","sources":["../../src/config/loader.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAKH,OAAO,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAG1D;;GAEG;AACH,eAAO,MAAM,mBAAmB,uBAAuB,CAAC;AAExD;;;;;;;GAOG;AACH,wBAAgB,cAAc,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,WAAW,CA8C/D;AAED;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,WAAW,GAAG,UAAU,CAiC7D;AAED;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,UAAU,CAGpE;AAED;;;;;;GAMG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,WAAW,GAAG;IAAE,KAAK,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,MAAM,EAAE,CAAA;CAAE,CAmDxF"}
@@ -47,6 +47,10 @@ export function loadConfigFile(configPath) {
47
47
  ...DEFAULT_CONFIG.debug,
48
48
  ...parsed.debug,
49
49
  },
50
+ agents: {
51
+ ...DEFAULT_CONFIG.agents,
52
+ ...parsed.agents,
53
+ },
50
54
  };
51
55
  return merged;
52
56
  }
@@ -147,6 +151,15 @@ export function validateConfig(config) {
147
151
  }
148
152
  }
149
153
  }
154
+ // Validate agents settings
155
+ if (config.agents) {
156
+ const validKeys = ['scrum_master', 'researcher', 'architect'];
157
+ const configKeys = Object.keys(config.agents);
158
+ const invalidKeys = configKeys.filter(k => !validKeys.includes(k));
159
+ if (invalidKeys.length > 0) {
160
+ errors.push(`agents section has invalid keys: ${invalidKeys.join(', ')}`);
161
+ }
162
+ }
150
163
  return {
151
164
  valid: errors.length === 0,
152
165
  errors,
@@ -1 +1 @@
1
- {"version":3,"file":"loader.js","sourceRoot":"","sources":["../../src/config/loader.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"loader.js","sourceRoot":"","sources":["../../src/config/loader.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,25 @@
1
+ /**
2
+ * Minimal configuration file generator
3
+ * Creates .sqlew/config.toml with sensible defaults
4
+ */
5
+ /**
6
+ * Generate minimal config.toml content
7
+ *
8
+ * @returns TOML content string
9
+ */
10
+ export declare function generateMinimalConfig(): string;
11
+ /**
12
+ * Create minimal config.toml if it doesn't exist
13
+ *
14
+ * @param projectRoot - Project root directory (defaults to cwd)
15
+ * @returns true if created, false if already exists
16
+ */
17
+ export declare function createMinimalConfigIfNotExists(projectRoot?: string): boolean;
18
+ /**
19
+ * Get the config file path
20
+ *
21
+ * @param projectRoot - Project root directory (defaults to cwd)
22
+ * @returns Absolute path to config.toml
23
+ */
24
+ export declare function getConfigPath(projectRoot?: string): string;
25
+ //# sourceMappingURL=minimal-generator.d.ts.map
@@ -0,0 +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,CA2D9C;AAED;;;;;GAKG;AACH,wBAAgB,8BAA8B,CAAC,WAAW,GAAE,MAAsB,GAAG,OAAO,CAmB3F;AAED;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,WAAW,GAAE,MAAsB,GAAG,MAAM,CAEzE"}
@@ -0,0 +1,103 @@
1
+ /**
2
+ * Minimal configuration file generator
3
+ * Creates .sqlew/config.toml with sensible defaults
4
+ */
5
+ import { existsSync, mkdirSync, writeFileSync } from 'fs';
6
+ import { join, dirname } from 'path';
7
+ /**
8
+ * Generate minimal config.toml content
9
+ *
10
+ * @returns TOML content string
11
+ */
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
+ # Other Settings (Optional - uncomment to customize)
45
+ # ============================================================================
46
+
47
+ # [autodelete]
48
+ # # Skip weekends when calculating retention periods
49
+ # ignore_weekend = false
50
+ # # Message retention period in hours
51
+ # message_hours = 24
52
+ # # File change history retention in days
53
+ # file_history_days = 7
54
+
55
+ # [tasks]
56
+ # # Auto-archive done tasks after N days
57
+ # auto_archive_done_days = 2
58
+ # # Stale detection threshold for in_progress tasks (hours)
59
+ # stale_hours_in_progress = 2
60
+ # # Stale detection threshold for waiting_review tasks (hours)
61
+ # stale_hours_waiting_review = 24
62
+ # # Enable automatic stale detection
63
+ # auto_stale_enabled = true
64
+
65
+ # [debug]
66
+ # # Debug log file path (optional)
67
+ # # log_path = ".sqlew/debug.log"
68
+ # # Log level: "error", "warn", "info", "debug"
69
+ # # log_level = "info"
70
+ `;
71
+ }
72
+ /**
73
+ * Create minimal config.toml if it doesn't exist
74
+ *
75
+ * @param projectRoot - Project root directory (defaults to cwd)
76
+ * @returns true if created, false if already exists
77
+ */
78
+ export function createMinimalConfigIfNotExists(projectRoot = process.cwd()) {
79
+ const configPath = join(projectRoot, '.sqlew', 'config.toml');
80
+ // If config already exists, don't overwrite
81
+ if (existsSync(configPath)) {
82
+ return false;
83
+ }
84
+ // Create .sqlew directory if it doesn't exist
85
+ const sqlewDir = dirname(configPath);
86
+ if (!existsSync(sqlewDir)) {
87
+ mkdirSync(sqlewDir, { recursive: true });
88
+ }
89
+ // Write minimal config
90
+ const content = generateMinimalConfig();
91
+ writeFileSync(configPath, content, 'utf-8');
92
+ return true;
93
+ }
94
+ /**
95
+ * Get the config file path
96
+ *
97
+ * @param projectRoot - Project root directory (defaults to cwd)
98
+ * @returns Absolute path to config.toml
99
+ */
100
+ export function getConfigPath(projectRoot = process.cwd()) {
101
+ return join(projectRoot, '.sqlew', 'config.toml');
102
+ }
103
+ //# sourceMappingURL=minimal-generator.js.map
@@ -0,0 +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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAyDR,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"}
@@ -50,6 +50,17 @@ export interface DebugConfig {
50
50
  /** Log level: "error", "warn", "info", "debug" (case-insensitive, default: "info") */
51
51
  log_level?: string;
52
52
  }
53
+ /**
54
+ * Specialized agents configuration
55
+ */
56
+ export interface AgentsConfig {
57
+ /** Install Scrum Master agent (coordination, tasks, sprints) - ~12KB tokens */
58
+ scrum_master?: boolean;
59
+ /** Install Researcher agent (query decisions, analyze patterns) - ~14KB tokens */
60
+ researcher?: boolean;
61
+ /** Install Architect agent (document decisions, enforce constraints) - ~20KB tokens */
62
+ architect?: boolean;
63
+ }
53
64
  /**
54
65
  * Complete configuration structure
55
66
  * Maps to .sqlew/config.toml sections
@@ -63,6 +74,8 @@ export interface SqlewConfig {
63
74
  tasks?: TaskConfig;
64
75
  /** Debug logging settings */
65
76
  debug?: DebugConfig;
77
+ /** Specialized agents settings */
78
+ agents?: AgentsConfig;
66
79
  }
67
80
  /**
68
81
  * Flattened configuration (database format)
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/config/types.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,6DAA6D;IAC7D,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;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;;;GAGG;AACH,MAAM,WAAW,WAAW;IAC1B,wBAAwB;IACxB,QAAQ,CAAC,EAAE,cAAc,CAAC;IAC1B,6BAA6B;IAC7B,UAAU,CAAC,EAAE,gBAAgB,CAAC;IAC9B,+BAA+B;IAC/B,KAAK,CAAC,EAAE,UAAU,CAAC;IACnB,6BAA6B;IAC7B,KAAK,CAAC,EAAE,WAAW,CAAC;CACrB;AAED;;;GAGG;AACH,MAAM,WAAW,UAAU;IAEzB,yBAAyB,CAAC,EAAE,OAAO,CAAC;IACpC,wBAAwB,CAAC,EAAE,MAAM,CAAC;IAClC,4BAA4B,CAAC,EAAE,MAAM,CAAC;IAGtC,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,4BAA4B,CAAC,EAAE,MAAM,CAAC;IACtC,+BAA+B,CAAC,EAAE,MAAM,CAAC;IACzC,uBAAuB,CAAC,EAAE,OAAO,CAAC;IAGlC,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,iCAAiC,CAAC,EAAE,OAAO,CAAC;IAC5C,yBAAyB,CAAC,EAAE,OAAO,CAAC;IACpC,sBAAsB,CAAC,EAAE,OAAO,CAAC;CAClC;AAED;;GAEG;AACH,eAAO,MAAM,cAAc,EAAE,WAmB5B,CAAC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/config/types.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,6DAA6D;IAC7D,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;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;;;GAGG;AACH,MAAM,WAAW,WAAW;IAC1B,wBAAwB;IACxB,QAAQ,CAAC,EAAE,cAAc,CAAC;IAC1B,6BAA6B;IAC7B,UAAU,CAAC,EAAE,gBAAgB,CAAC;IAC9B,+BAA+B;IAC/B,KAAK,CAAC,EAAE,UAAU,CAAC;IACnB,6BAA6B;IAC7B,KAAK,CAAC,EAAE,WAAW,CAAC;IACpB,kCAAkC;IAClC,MAAM,CAAC,EAAE,YAAY,CAAC;CACvB;AAED;;;GAGG;AACH,MAAM,WAAW,UAAU;IAEzB,yBAAyB,CAAC,EAAE,OAAO,CAAC;IACpC,wBAAwB,CAAC,EAAE,MAAM,CAAC;IAClC,4BAA4B,CAAC,EAAE,MAAM,CAAC;IAGtC,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,4BAA4B,CAAC,EAAE,MAAM,CAAC;IACtC,+BAA+B,CAAC,EAAE,MAAM,CAAC;IACzC,uBAAuB,CAAC,EAAE,OAAO,CAAC;IAGlC,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,iCAAiC,CAAC,EAAE,OAAO,CAAC;IAC5C,yBAAyB,CAAC,EAAE,OAAO,CAAC;IACpC,sBAAsB,CAAC,EAAE,OAAO,CAAC;CAClC;AAED;;GAEG;AACH,eAAO,MAAM,cAAc,EAAE,WAwB5B,CAAC"}
@@ -24,5 +24,10 @@ export const DEFAULT_CONFIG = {
24
24
  review_require_tests_pass: true,
25
25
  review_require_compile: true,
26
26
  },
27
+ agents: {
28
+ scrum_master: true,
29
+ researcher: true,
30
+ architect: true,
31
+ },
27
32
  };
28
33
  //# sourceMappingURL=types.js.map