sqlew 4.1.2 → 4.3.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.
Files changed (197) hide show
  1. package/CHANGELOG.md +32 -0
  2. package/README.md +25 -165
  3. package/assets/claude-md-snippets/plan-mode-integration.md +48 -24
  4. package/assets/sample-skills/sqlew-decision-format/SKILL.md +73 -0
  5. package/dist/cli/hooks/check-completion.d.ts.map +1 -1
  6. package/dist/cli/hooks/check-completion.js +90 -2
  7. package/dist/cli/hooks/check-completion.js.map +1 -1
  8. package/dist/cli/hooks/init-hooks.d.ts.map +1 -1
  9. package/dist/cli/hooks/init-hooks.js +97 -5
  10. package/dist/cli/hooks/init-hooks.js.map +1 -1
  11. package/dist/cli/hooks/on-enter-plan.d.ts +22 -0
  12. package/dist/cli/hooks/on-enter-plan.d.ts.map +1 -0
  13. package/dist/cli/hooks/on-enter-plan.js +51 -0
  14. package/dist/cli/hooks/on-enter-plan.js.map +1 -0
  15. package/dist/cli/hooks/on-exit-plan.d.ts +20 -0
  16. package/dist/cli/hooks/on-exit-plan.d.ts.map +1 -0
  17. package/dist/cli/hooks/on-exit-plan.js +66 -0
  18. package/dist/cli/hooks/on-exit-plan.js.map +1 -0
  19. package/dist/cli/hooks/on-stop.d.ts +19 -0
  20. package/dist/cli/hooks/on-stop.d.ts.map +1 -0
  21. package/dist/cli/hooks/on-stop.js +152 -0
  22. package/dist/cli/hooks/on-stop.js.map +1 -0
  23. package/dist/cli/hooks/on-subagent-stop.d.ts +20 -0
  24. package/dist/cli/hooks/on-subagent-stop.d.ts.map +1 -0
  25. package/dist/cli/hooks/on-subagent-stop.js +94 -0
  26. package/dist/cli/hooks/on-subagent-stop.js.map +1 -0
  27. package/dist/cli/hooks/plan-pattern-extractor.d.ts +87 -0
  28. package/dist/cli/hooks/plan-pattern-extractor.d.ts.map +1 -0
  29. package/dist/cli/hooks/plan-pattern-extractor.js +218 -0
  30. package/dist/cli/hooks/plan-pattern-extractor.js.map +1 -0
  31. package/dist/cli/hooks/plan-processor.d.ts +43 -0
  32. package/dist/cli/hooks/plan-processor.d.ts.map +1 -0
  33. package/dist/cli/hooks/plan-processor.js +115 -0
  34. package/dist/cli/hooks/plan-processor.js.map +1 -0
  35. package/dist/cli/hooks/plan-toml-parser.d.ts +42 -0
  36. package/dist/cli/hooks/plan-toml-parser.d.ts.map +1 -0
  37. package/dist/cli/hooks/plan-toml-parser.js +178 -0
  38. package/dist/cli/hooks/plan-toml-parser.js.map +1 -0
  39. package/dist/cli/hooks/save.d.ts +7 -9
  40. package/dist/cli/hooks/save.d.ts.map +1 -1
  41. package/dist/cli/hooks/save.js +50 -25
  42. package/dist/cli/hooks/save.js.map +1 -1
  43. package/dist/cli/hooks/stdin-parser.d.ts +66 -2
  44. package/dist/cli/hooks/stdin-parser.d.ts.map +1 -1
  45. package/dist/cli/hooks/stdin-parser.js +57 -2
  46. package/dist/cli/hooks/stdin-parser.js.map +1 -1
  47. package/dist/cli/hooks/suggest.d.ts +8 -4
  48. package/dist/cli/hooks/suggest.d.ts.map +1 -1
  49. package/dist/cli/hooks/suggest.js +21 -123
  50. package/dist/cli/hooks/suggest.js.map +1 -1
  51. package/dist/cli/hooks/track-plan.d.ts +8 -1
  52. package/dist/cli/hooks/track-plan.d.ts.map +1 -1
  53. package/dist/cli/hooks/track-plan.js +64 -66
  54. package/dist/cli/hooks/track-plan.js.map +1 -1
  55. package/dist/cli.d.ts.map +1 -1
  56. package/dist/cli.js +139 -38
  57. package/dist/cli.js.map +1 -1
  58. package/dist/config/global-config.d.ts +90 -0
  59. package/dist/config/global-config.d.ts.map +1 -1
  60. package/dist/config/global-config.js +86 -1
  61. package/dist/config/global-config.js.map +1 -1
  62. package/dist/database/initialization/init.js +3 -3
  63. package/dist/database/initialization/init.js.map +1 -1
  64. package/dist/database/migrations/v4/20260102204000_v4_fix_decision_set_example.d.ts +15 -0
  65. package/dist/database/migrations/v4/20260102204000_v4_fix_decision_set_example.d.ts.map +1 -0
  66. package/dist/database/migrations/v4/20260102204000_v4_fix_decision_set_example.js +74 -0
  67. package/dist/database/migrations/v4/20260102204000_v4_fix_decision_set_example.js.map +1 -0
  68. package/dist/index.js +8 -4
  69. package/dist/index.js.map +1 -1
  70. package/dist/init-skills.d.ts +6 -1
  71. package/dist/init-skills.d.ts.map +1 -1
  72. package/dist/init-skills.js +50 -1
  73. package/dist/init-skills.js.map +1 -1
  74. package/dist/knexfile.d.ts.map +1 -1
  75. package/dist/knexfile.js +16 -12
  76. package/dist/knexfile.js.map +1 -1
  77. package/dist/server/setup.js +5 -5
  78. package/dist/server/setup.js.map +1 -1
  79. package/dist/server/tool-handlers.d.ts.map +1 -1
  80. package/dist/server/tool-handlers.js +7 -1
  81. package/dist/server/tool-handlers.js.map +1 -1
  82. package/dist/server/tool-registry.js +1 -1
  83. package/dist/server/tool-registry.js.map +1 -1
  84. package/dist/tests/feature/decision/truncate.test.d.ts +8 -0
  85. package/dist/tests/feature/decision/truncate.test.d.ts.map +1 -0
  86. package/dist/tests/feature/decision/truncate.test.js +192 -0
  87. package/dist/tests/feature/decision/truncate.test.js.map +1 -0
  88. package/dist/tests/unit/config/plan-toml-cache.test.d.ts +9 -0
  89. package/dist/tests/unit/config/plan-toml-cache.test.d.ts.map +1 -0
  90. package/dist/tests/unit/config/plan-toml-cache.test.js +230 -0
  91. package/dist/tests/unit/config/plan-toml-cache.test.js.map +1 -0
  92. package/dist/tests/unit/hooks/plan-toml-parser.test.d.ts +10 -0
  93. package/dist/tests/unit/hooks/plan-toml-parser.test.d.ts.map +1 -0
  94. package/dist/tests/unit/hooks/plan-toml-parser.test.js +316 -0
  95. package/dist/tests/unit/hooks/plan-toml-parser.test.js.map +1 -0
  96. package/dist/tools/constraints/actions/activate.d.ts +46 -0
  97. package/dist/tools/constraints/actions/activate.d.ts.map +1 -0
  98. package/dist/tools/constraints/actions/activate.js +105 -0
  99. package/dist/tools/constraints/actions/activate.js.map +1 -0
  100. package/dist/tools/constraints/actions/add.d.ts.map +1 -1
  101. package/dist/tools/constraints/actions/add.js +30 -13
  102. package/dist/tools/constraints/actions/add.js.map +1 -1
  103. package/dist/tools/constraints/actions/deactivate.d.ts.map +1 -1
  104. package/dist/tools/constraints/actions/deactivate.js +7 -4
  105. package/dist/tools/constraints/actions/deactivate.js.map +1 -1
  106. package/dist/tools/constraints/actions/get.d.ts.map +1 -1
  107. package/dist/tools/constraints/actions/get.js +10 -7
  108. package/dist/tools/constraints/actions/get.js.map +1 -1
  109. package/dist/tools/constraints/actions/suggest-pending.d.ts +41 -0
  110. package/dist/tools/constraints/actions/suggest-pending.d.ts.map +1 -0
  111. package/dist/tools/constraints/actions/suggest-pending.js +71 -0
  112. package/dist/tools/constraints/actions/suggest-pending.js.map +1 -0
  113. package/dist/tools/constraints/help/example.d.ts.map +1 -1
  114. package/dist/tools/constraints/help/example.js +65 -1
  115. package/dist/tools/constraints/help/example.js.map +1 -1
  116. package/dist/tools/constraints/help/help.d.ts.map +1 -1
  117. package/dist/tools/constraints/help/help.js +10 -5
  118. package/dist/tools/constraints/help/help.js.map +1 -1
  119. package/dist/tools/constraints/index.d.ts +2 -0
  120. package/dist/tools/constraints/index.d.ts.map +1 -1
  121. package/dist/tools/constraints/index.js +2 -0
  122. package/dist/tools/constraints/index.js.map +1 -1
  123. package/dist/tools/context/actions/add-context.d.ts.map +1 -1
  124. package/dist/tools/context/actions/add-context.js +13 -6
  125. package/dist/tools/context/actions/add-context.js.map +1 -1
  126. package/dist/tools/context/actions/list-contexts.d.ts.map +1 -1
  127. package/dist/tools/context/actions/list-contexts.js +12 -7
  128. package/dist/tools/context/actions/list-contexts.js.map +1 -1
  129. package/dist/tools/context/actions/list.d.ts.map +1 -1
  130. package/dist/tools/context/actions/list.js +8 -0
  131. package/dist/tools/context/actions/list.js.map +1 -1
  132. package/dist/tools/context/actions/search-advanced.d.ts.map +1 -1
  133. package/dist/tools/context/actions/search-advanced.js +41 -27
  134. package/dist/tools/context/actions/search-advanced.js.map +1 -1
  135. package/dist/tools/context/actions/search-layer.d.ts.map +1 -1
  136. package/dist/tools/context/actions/search-layer.js +8 -0
  137. package/dist/tools/context/actions/search-layer.js.map +1 -1
  138. package/dist/tools/context/actions/search-tags.d.ts.map +1 -1
  139. package/dist/tools/context/actions/search-tags.js +8 -0
  140. package/dist/tools/context/actions/search-tags.js.map +1 -1
  141. package/dist/tools/files/actions/check-lock.d.ts.map +1 -1
  142. package/dist/tools/files/actions/check-lock.js +9 -3
  143. package/dist/tools/files/actions/check-lock.js.map +1 -1
  144. package/dist/tools/files/actions/get.d.ts.map +1 -1
  145. package/dist/tools/files/actions/get.js +18 -13
  146. package/dist/tools/files/actions/get.js.map +1 -1
  147. package/dist/tools/files/actions/record-batch.d.ts.map +1 -1
  148. package/dist/tools/files/actions/record-batch.js +11 -6
  149. package/dist/tools/files/actions/record-batch.js.map +1 -1
  150. package/dist/tools/files/actions/record.d.ts.map +1 -1
  151. package/dist/tools/files/actions/record.js +8 -2
  152. package/dist/tools/files/actions/record.js.map +1 -1
  153. package/dist/types/actions.d.ts +1 -1
  154. package/dist/types/actions.d.ts.map +1 -1
  155. package/dist/types.d.ts +9 -2
  156. package/dist/types.d.ts.map +1 -1
  157. package/dist/utils/action-specs/constraint-specs.d.ts +1 -1
  158. package/dist/utils/action-specs/constraint-specs.d.ts.map +1 -1
  159. package/dist/utils/action-specs/constraint-specs.js +22 -5
  160. package/dist/utils/action-specs/constraint-specs.js.map +1 -1
  161. package/dist/utils/action-specs/decision-specs.d.ts.map +1 -1
  162. package/dist/utils/action-specs/decision-specs.js +11 -10
  163. package/dist/utils/action-specs/decision-specs.js.map +1 -1
  164. package/dist/utils/action-specs/file-specs.js +4 -4
  165. package/dist/utils/action-specs/file-specs.js.map +1 -1
  166. package/dist/utils/hook-queue.d.ts +43 -3
  167. package/dist/utils/hook-queue.d.ts.map +1 -1
  168. package/dist/utils/hook-queue.js +326 -32
  169. package/dist/utils/hook-queue.js.map +1 -1
  170. package/dist/utils/param-normalizer.d.ts +52 -0
  171. package/dist/utils/param-normalizer.d.ts.map +1 -0
  172. package/dist/utils/param-normalizer.js +70 -0
  173. package/dist/utils/param-normalizer.js.map +1 -0
  174. package/dist/utils/parameter-validator.d.ts.map +1 -1
  175. package/dist/utils/parameter-validator.js +2 -0
  176. package/dist/utils/parameter-validator.js.map +1 -1
  177. package/dist/utils/text-truncate.d.ts +13 -0
  178. package/dist/utils/text-truncate.d.ts.map +1 -0
  179. package/dist/utils/text-truncate.js +18 -0
  180. package/dist/utils/text-truncate.js.map +1 -0
  181. package/dist/utils/validators.d.ts +1 -1
  182. package/dist/utils/validators.d.ts.map +1 -1
  183. package/dist/utils/validators.js +1 -1
  184. package/dist/utils/validators.js.map +1 -1
  185. package/dist/watcher/base-watcher.d.ts.map +1 -1
  186. package/dist/watcher/base-watcher.js +4 -3
  187. package/dist/watcher/base-watcher.js.map +1 -1
  188. package/dist/watcher/file-watcher.d.ts.map +1 -1
  189. package/dist/watcher/file-watcher.js +5 -1
  190. package/dist/watcher/file-watcher.js.map +1 -1
  191. package/dist/watcher/queue-watcher.d.ts +12 -1
  192. package/dist/watcher/queue-watcher.d.ts.map +1 -1
  193. package/dist/watcher/queue-watcher.js +92 -12
  194. package/dist/watcher/queue-watcher.js.map +1 -1
  195. package/docs/ADR_CONCEPTS.md +4 -0
  196. package/docs/HOOKS_GUIDE.md +1 -1
  197. package/package.json +1 -1
package/CHANGELOG.md CHANGED
@@ -7,6 +7,38 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
7
7
 
8
8
  ---
9
9
 
10
+ ## [4.3.0] - 2026-01-04
11
+
12
+ ### Added
13
+
14
+ **Plan-to-ADR: Automatic Architecture Decision Records**
15
+
16
+ - Automatic ADR generation from Claude Code Plan Mode
17
+ - Markdown pattern extraction (📌 Decision / 🚫 Constraint markers)
18
+ - File Queue Architecture for async decision processing
19
+ - SubagentStop event integration for reliable pattern detection
20
+ - Parameter aliases for simplified tool usage (`path` → `file_path`, etc.)
21
+
22
+ ### Changed
23
+
24
+ - Documentation: Removed TOML format references (Markdown-only implementation)
25
+ - Unified feature branding as "Plan-to-ADR"
26
+ - Quick Start: `sqlew --init` as recommended one-shot setup
27
+ - Skills: Updated sqlew-decision-format and sqlew-plan-guidance
28
+
29
+ ### Deprecated
30
+
31
+ - **`task` tool**: Will be removed in v5.0. Use Claude Code's native TodoWrite instead
32
+ - **`file` tool**: Will be removed in v5.0. File tracking was primarily used with task system
33
+
34
+ ### Fixed
35
+
36
+ - Version alignment across package.json, README.md, CLAUDE.md
37
+ - Constraints duplication on automation
38
+ - Windows file locking issues with chokidar
39
+
40
+ ---
41
+
10
42
  ## [4.1.2] - 2025-12-25
11
43
 
12
44
  ### Fixed
package/README.md CHANGED
@@ -28,12 +28,18 @@ Add to `.mcp.json` in your project root:
28
28
  }
29
29
  ```
30
30
 
31
- ### 3. Initialize hooks
31
+ ### 3. Initialize project
32
32
 
33
33
  ```bash
34
- sqlew init --hooks
34
+ sqlew --init
35
35
  ```
36
36
 
37
+ This one-shot command sets up:
38
+ - Claude Code Skills
39
+ - CLAUDE.md integration hints
40
+ - Plan-to-ADR hooks
41
+ - .gitignore entries
42
+
37
43
  ### 4. Just use Plan Mode!
38
44
 
39
45
  **That's it!** Now every time you:
@@ -99,7 +105,7 @@ AI agents automatically accumulate project knowledge through Plan Mode. Decision
99
105
 
100
106
  ---
101
107
 
102
- **Technical Features**: 7 MCP tools (4 core: decision, constraint, 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
108
+ **Technical Features**: 6 MCP tools (3 core: decision, constraint, 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
103
109
 
104
110
 
105
111
  ## Installation
@@ -128,18 +134,9 @@ Then add to `.mcp.json` in your project root:
128
134
  }
129
135
  ```
130
136
 
131
- ### Alternative: npx (No Install)
137
+ ### Alternative: npx (Not Recommended)
132
138
 
133
- ```json
134
- {
135
- "mcpServers": {
136
- "sqlew": {
137
- "command": "npx",
138
- "args": ["sqlew"]
139
- }
140
- }
141
- }
142
- ```
139
+ **⚠️ Not recommended**: npx usage prevents Claude Code Hooks from working, disabling Plan-to-ADR automatic decision capture. Use global install instead.
143
140
 
144
141
  **Note**: First run initializes the database. Restart Claude Code to load the MCP server.
145
142
 
@@ -148,147 +145,19 @@ Each project maintains its own context database in `.sqlew/sqlew.db`.
148
145
  **Custom database path:** Add path as argument: `"args": ["sqlew", "/path/to/db.db"]`
149
146
  **Default location:** `.sqlew/sqlew.db`
150
147
 
151
- **⚠️ Not Supported:** Junie AI cannot use relative paths in MCP server configurations, which makes it incompatible with sqlew's project-based database model. Each project requires its own isolated database at `.sqlew/sqlew.db`, but Junie AI's global MCP configuration cannot handle per-project database paths.
152
-
153
148
  ## Configuration
154
149
 
155
- ### Database Support
156
-
157
- sqlew supports multiple database backends for different deployment scenarios:
158
-
159
- | Database | Use Case | Status |
160
- |----------|----------------------------------------------|-------------|
161
- | **SQLite** | Personal or small projects | ✅ Default |
162
- | **MySQL 8.0 / MariaDB 10+** | Production, shared environments, remote work | ✅ Supported |
163
- | **PostgreSQL 12+** | Production, shared environments, remote work | ✅ Supported |
164
-
165
- Of course, it also works with Docker RDB instances.
166
-
167
- ### Optional Config File
168
-
169
- On first run, `.sqlew/config.toml` will be created for persistent settings:
170
-
171
- **SQLite (Default):**
172
- ```toml
173
- [database]
174
- path = ".sqlew/custom.db"
175
-
176
- [autodelete]
177
- ignore_weekend = true
178
- message_hours = 48
179
- ```
180
-
181
- **PostgreSQL:**
182
- ```toml
183
- [database]
184
- type = "postgres"
185
-
186
- [database.connection]
187
- host = "localhost"
188
- port = 5432
189
- database = "sqlew_db"
190
-
191
- [database.auth]
192
- type = "direct"
193
- user = "sqlew_user"
194
- password = "secret"
195
- ```
196
-
197
- **MySQL/MariaDB:**
198
- ```toml
199
- [database]
200
- type = "mysql"
201
-
202
- [database.connection]
203
- host = "localhost"
204
- port = 3306
205
- database = "sqlew_db"
206
-
207
- [database.auth]
208
- type = "direct"
209
- user = "sqlew_user"
210
- password = "secret"
211
- ```
212
-
213
- Also `.sqlew/config.example.toml` is created for reference.
214
-
215
- **Settings Priority:** CLI args > config.toml > database defaults
216
-
217
- See [docs/CONFIGURATION.md](docs/CONFIGURATION.md) for all options and validation rules.
218
-
219
- ### CLI Configuration (Recommended)
150
+ sqlew supports multiple database backends:
220
151
 
221
- Configuration is managed via **`.sqlew/config.toml`** file and **CLI arguments only**. The MCP `config` tool has been removed for simplicity.
152
+ | Database | Use Case | Status |
153
+ |----------|----------|--------|
154
+ | **SQLite** | Personal/small projects | ✅ Default |
155
+ | **MySQL 8.0+ / MariaDB 10+** | Production, team sharing | ✅ Supported |
156
+ | **PostgreSQL 12+** | Production, team sharing | ✅ Supported |
222
157
 
223
- **Why CLI-only configuration?**
224
- - **No drift:** Single source of truth (config file)
225
- - **Version control:** Commit config to git, share with team
226
- - **Clear documentation:** Config file documents project requirements
227
- - **Type safety:** TOML validation catches errors at startup
228
-
229
- **Common CLI arguments:**
230
- ```bash
231
- # Custom database path
232
- npx sqlew /path/to/database.db
233
-
234
- # Auto-deletion settings
235
- npx sqlew --autodelete-message-hours=48
236
- npx sqlew --autodelete-file-history-days=30
237
- npx sqlew --autodelete-ignore-weekend
238
-
239
- # Custom config file
240
- npx sqlew --config-path=.sqlew/custom.toml
241
- ```
242
-
243
- For persistent settings, edit `.sqlew/config.toml` instead of using CLI arguments.
244
-
245
- ## Quick Start
246
-
247
- install it, launch claude, exit claude and launch Claude again.
248
-
249
- ### Basic Usage
250
-
251
- You'll never need to call it manually, I recommend to call this tool via prompt.
252
-
253
- ```
254
- read sqlew usecases, and plan implementation of feature X using sqlew.
255
- ```
256
-
257
- or invoke Specialized Agent
258
-
259
- ```
260
- /sqw-plan implementation of feature X .
261
- ```
262
-
263
- Specialized Agents use sqlew more efficiently.
264
-
265
- ---
266
-
267
- **Note**: The `/sqlew` command supersedes the previous multi-command system (`/sqw-plan`, `/sqw-scrum`, etc.). All functionality is now available through the unified `/sqlew` interface with automatic intent detection.
268
-
269
- ### Advanced: Direct MCP Tool Access
270
-
271
- Power users can still call MCP tools directly. See [Available Tools](#available-tools) section below.
272
-
273
- ### Available Tools
274
-
275
- #### Core ADR Tools
276
-
277
- | Tool | Purpose | Example Use |
278
- |------|---------|------------|
279
- | **decision** | Record architectural decisions with context | "We chose PostgreSQL over MongoDB (ACID requirement)" |
280
- | **constraint** | Define architectural rules and principles | "All API endpoints must use /v2/ prefix" |
281
- | **file** | Track code changes linked to decisions | "Modified auth.ts per security ADR" |
282
- | **suggest** | Find similar decisions, prevent duplicates | Duplicate detection, similarity search |
283
-
284
- #### Utility Tools
285
-
286
- | Tool | Purpose | Example Use |
287
- |------|---------|------------|
288
- | **help** | Query action documentation and parameters | Get decision.set parameters |
289
- | **example** | Browse code examples by tool/action | Find task.create examples |
290
- | **use_case** | Complete workflow scenarios | Multi-step ADR workflows |
158
+ Configuration is managed via `.sqlew/config.toml` file and CLI arguments.
291
159
 
160
+ → **[Full Configuration Guide](docs/CONFIGURATION.md)** - All options, database setup, validation rules
292
161
 
293
162
  ## Documentation
294
163
 
@@ -363,23 +232,14 @@ Support development via [GitHub Sponsors](https://github.com/sponsors/sin5ddd) -
363
232
 
364
233
  ## Version
365
234
 
366
- Current version: **4.1.0**
235
+ Current version: **4.3.0**
367
236
  See [CHANGELOG.md](CHANGELOG.md) for release history.
368
237
 
369
- **What's New in v4.1.0:**
370
- - **Claude Code Hooks Integration** - File Queue Architecture for async decision operations
371
- - **Hook Commands** - `suggest`, `track-plan`, `save`, `check-completion`, `mark-done`
372
- - **QueueWatcher** - Monitors `.sqlew/queue/pending.json` for hook operations
373
- - **PostgreSQL Compatibility** - GROUP_CONCAT string_agg, GROUP BY strictness fixes
374
- - **Cross-DB Verified** - SQLite, MySQL, MariaDB, PostgreSQL all tested
375
-
376
- **What's New in v4.0.5:**
377
- - **License Change** - Apache License 2.0 (from AGPL-3.0)
378
-
379
- **What's New in v4.0.2:**
380
- - **Unified CLI Entry Point** - `npx sqlew db:export` works directly (no `npm install` required)
381
- - **Cross-DB Migration via JSON Only** - SQL dump no longer supports cross-database conversion
382
- - **Node.js 20+ Required** - Updated minimum version requirement
238
+ **What's New in v4.3.0:**
239
+ - **Plan-to-ADR** - Automatic Architecture Decision Records from Claude Code Plan Mode
240
+ - **Markdown Pattern Extraction** - 📌 Decision / 🚫 Constraint markers auto-detected
241
+ - **One-shot Setup** - `sqlew --init` initializes everything (Skills, Hooks, gitignore)
242
+ - **Parameter Aliases** - Simplified tool usage with intuitive parameter names
383
243
 
384
244
  See [docs/HOOKS_GUIDE.md](docs/HOOKS_GUIDE.md) for Claude Code Hooks details.
385
245
 
@@ -1,24 +1,48 @@
1
- ## Plan Mode Integration
2
-
3
- ### With Claude Code Hooks (Recommended)
4
-
5
- If you've run `sqlew init --hooks`, sqlew integration is **fully automatic**:
6
- - Related decisions are auto-suggested before Task execution
7
- - Plan files are auto-tracked with unique IDs
8
- - Decisions are auto-saved when code is edited
9
- - Status updates to `in_review` when all tasks complete
10
- - Status updates to `implemented` after git merge/rebase
11
-
12
- ### Manual Usage (Without Hooks)
13
-
14
- When `<system-reminder>Plan mode is active</system-reminder>` appears:
15
-
16
- **Research Phase:**
17
- - `/sqlew search for <topic>` - find related decisions
18
- - `/sqlew show remaining tasks` - check active tasks
19
-
20
- **Final Plan Phase:**
21
- - `/sqlew record <decision>` - record key architectural decisions
22
- - `/sqlew create task <description>` - create implementation tasks
23
-
24
- **Quick Reference**: `.claude/skills/sqw-plan-guidance/SKILL.md`
1
+ ## Plan Mode Integration
2
+
3
+ ### Decision & Constraint Recording Format
4
+
5
+ When writing plans, use these formats to record decisions and constraints.
6
+ They will be **auto-detected on ExitPlanMode** and registered as draft in sqlew.
7
+
8
+ **Decision format:**
9
+ ```markdown
10
+ ### 📌 Decision: [key/path]
11
+ - **Value**: Description of the decision
12
+ - **Layer**: presentation | business | data | infrastructure | cross-cutting
13
+ - **Tags**: tag1, tag2 (optional)
14
+ ```
15
+
16
+ **Constraint format:**
17
+ ```markdown
18
+ ### 🚫 Constraint: [category]
19
+ - **Rule**: Description of the constraint
20
+ - **Priority**: critical | high | medium | low
21
+ - **Tags**: tag1, tag2 (optional)
22
+ ```
23
+
24
+ Category options: `architecture` | `security` | `code-style` | `performance`
25
+
26
+ ### With Claude Code Hooks (Recommended)
27
+
28
+ If you've run `sqlew init --hooks`, sqlew integration is **fully automatic**:
29
+ - Related decisions are auto-suggested before Task execution
30
+ - Plan files are auto-tracked with unique IDs
31
+ - 📌/🚫 patterns are auto-detected and registered as draft
32
+ - Decisions are auto-saved when code is edited
33
+ - Status updates to `in_review` when all tasks complete
34
+ - Status updates to `implemented` after git merge/rebase
35
+
36
+ ### Manual Usage (Without Hooks)
37
+
38
+ When `<system-reminder>Plan mode is active</system-reminder>` appears:
39
+
40
+ **Research Phase:**
41
+ - `/sqlew search for <topic>` - find related decisions
42
+ - `/sqlew show remaining tasks` - check active tasks
43
+
44
+ **Final Plan Phase:**
45
+ - `/sqlew record <decision>` - record key architectural decisions
46
+ - `/sqlew create task <description>` - create implementation tasks
47
+
48
+ **Quick Reference**: `.claude/skills/sqlew-decision-format/SKILL.md`
@@ -0,0 +1,73 @@
1
+ ---
2
+ name: sqlew-decision-format
3
+ description: |
4
+ Format guide for recording decisions and constraints in plan mode.
5
+ Auto-injected during plan creation to encourage structured documentation.
6
+ Auto-detected and registered as draft on ExitPlanMode.
7
+ ---
8
+
9
+ ## Plan Mode: Decision & Constraint Recording
10
+
11
+ When including decisions or constraints in your plan, use the following format.
12
+ They will be auto-detected on ExitPlanMode and registered as draft in sqlew.
13
+
14
+ ---
15
+
16
+ ### 📌 Decision: [hierarchical/key]
17
+
18
+ Record decisions using this format:
19
+
20
+ ```markdown
21
+ ### 📌 Decision: [key/path]
22
+ - **Value**: Description of the decision
23
+ - **Layer**: presentation | business | data | infrastructure | cross-cutting
24
+ - **Tags**: tag1, tag2 (optional)
25
+ ```
26
+
27
+ **Examples:**
28
+
29
+ ### 📌 Decision: frontend/framework
30
+ - **Value**: Use React 18
31
+ - **Layer**: presentation
32
+ - **Tags**: react, frontend
33
+
34
+ ### 📌 Decision: database/orm
35
+ - **Value**: Adopt Prisma
36
+ - **Layer**: data
37
+ - **Tags**: prisma, orm, typescript
38
+
39
+ ---
40
+
41
+ ### 🚫 Constraint: [category]
42
+
43
+ Record constraints using this format:
44
+
45
+ ```markdown
46
+ ### 🚫 Constraint: [category]
47
+ - **Rule**: Description of the constraint
48
+ - **Priority**: critical | high | medium | low
49
+ - **Tags**: tag1, tag2 (optional)
50
+ ```
51
+
52
+ **Category options:** `architecture` | `security` | `code-style` | `performance`
53
+
54
+ **Examples:**
55
+
56
+ ### 🚫 Constraint: code-style
57
+ - **Rule**: No inline styles, use CSS Modules
58
+ - **Priority**: medium
59
+ - **Tags**: css, styling
60
+
61
+ ### 🚫 Constraint: security
62
+ - **Rule**: No hardcoded API keys, use environment variables
63
+ - **Priority**: critical
64
+ - **Tags**: security, env
65
+
66
+ ---
67
+
68
+ ## Automatic Processing Flow
69
+
70
+ 1. **During Planning**: Write Decision/Constraint in the format above
71
+ 2. **On ExitPlanMode**: Auto-detected → registered as draft/inactive
72
+ 3. **On Implementation File Edit**: Auto-promoted to active
73
+ 4. **Check command**: `mcp__sqlew__decision({ action: "list", status: "draft" })`
@@ -1 +1 @@
1
- {"version":3,"file":"check-completion.d.ts","sourceRoot":"","sources":["../../../src/cli/hooks/check-completion.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAyBH;;;;;GAKG;AACH,wBAAsB,sBAAsB,IAAI,OAAO,CAAC,IAAI,CAAC,CA4E5D"}
1
+ {"version":3,"file":"check-completion.d.ts","sourceRoot":"","sources":["../../../src/cli/hooks/check-completion.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAmHH;;;;;GAKG;AACH,wBAAsB,sBAAsB,IAAI,OAAO,CAAC,IAAI,CAAC,CA4F5D"}
@@ -10,9 +10,10 @@
10
10
  * @since v4.1.0
11
11
  */
12
12
  import { readStdinJson, sendContinue, areAllTodosCompleted, getProjectPath } from './stdin-parser.js';
13
- import { loadCurrentPlan } from '../../config/global-config.js';
13
+ import { loadCurrentPlan, loadPlanTomlCache, savePlanTomlCache, } from '../../config/global-config.js';
14
14
  import { initializeDatabase } from '../../database.js';
15
15
  import { setDecision } from '../../tools/context/actions/set.js';
16
+ import { enqueueDecisionCreate } from '../../utils/hook-queue.js';
16
17
  import { join } from 'path';
17
18
  // ============================================================================
18
19
  // Constants
@@ -24,6 +25,77 @@ const IN_REVIEW_STATUS = 'active';
24
25
  /** Workflow tag for in-review state */
25
26
  const WORKFLOW_TAG_IN_REVIEW = 'workflow:in_review';
26
27
  // ============================================================================
28
+ // TOML Decision/Constraint Processing (v4.2.0+)
29
+ // ============================================================================
30
+ /**
31
+ * Format constraint candidates as a registration prompt
32
+ *
33
+ * @param cache - Plan TOML cache with constraint candidates
34
+ * @returns Formatted prompt string with MCP command examples
35
+ */
36
+ function formatConstraintPrompt(cache) {
37
+ if (cache.constraints.length === 0) {
38
+ return '';
39
+ }
40
+ const lines = [
41
+ '',
42
+ '🎯 **Constraint Candidates Ready for Registration**',
43
+ '',
44
+ `Found ${cache.constraints.length} constraint candidate(s) from plan TOML:`,
45
+ '',
46
+ ];
47
+ cache.constraints.forEach((c, i) => {
48
+ const priority = c.priority || 'medium';
49
+ lines.push(`${i + 1}. [${c.category}/${priority}] ${c.text}`);
50
+ if (c.rationale) {
51
+ lines.push(` Rationale: ${c.rationale}`);
52
+ }
53
+ });
54
+ lines.push('');
55
+ lines.push('To register, use mcp__sqlew__constraint with action="add":');
56
+ lines.push('```');
57
+ // Show example for first constraint
58
+ const first = cache.constraints[0];
59
+ lines.push(`mcp__sqlew__constraint action="add" constraint_text="${first.text}" category="${first.category}" priority="${first.priority || 'medium'}"`);
60
+ lines.push('```');
61
+ lines.push('');
62
+ return lines.join('\n');
63
+ }
64
+ /**
65
+ * Process TOML decisions and constraints from plan cache
66
+ *
67
+ * @param projectPath - Project root path
68
+ * @param cache - Plan TOML cache
69
+ * @returns Context message with results
70
+ */
71
+ function processPlanTomlCache(projectPath, cache) {
72
+ const messages = [];
73
+ // Auto-register decisions (queued for MCP server processing)
74
+ if (!cache.decisions_registered && cache.decisions.length > 0) {
75
+ for (const d of cache.decisions) {
76
+ enqueueDecisionCreate(projectPath, {
77
+ key: d.key,
78
+ value: d.value,
79
+ status: d.status || 'active',
80
+ layer: d.layer || 'cross-cutting',
81
+ tags: d.tags || [],
82
+ });
83
+ }
84
+ cache.decisions_registered = true;
85
+ messages.push(`✅ Registered ${cache.decisions.length} decision(s) to queue`);
86
+ }
87
+ // Prompt for constraints (user decision required)
88
+ if (!cache.constraints_prompted && cache.constraints.length > 0) {
89
+ messages.push(formatConstraintPrompt(cache));
90
+ cache.constraints_prompted = true;
91
+ }
92
+ // Save updated cache
93
+ if (cache.decisions_registered || cache.constraints_prompted) {
94
+ savePlanTomlCache(projectPath, cache);
95
+ }
96
+ return messages.join('\n');
97
+ }
98
+ // ============================================================================
27
99
  // Main Entry Point
28
100
  // ============================================================================
29
101
  /**
@@ -85,12 +157,28 @@ export async function checkCompletionCommand() {
85
157
  layer: 'cross-cutting',
86
158
  tags: ['plan', 'implementation', WORKFLOW_TAG_IN_REVIEW, planInfo.plan_id.slice(0, 8)],
87
159
  });
88
- sendContinue(`[sqlew] All tasks completed! Decision updated to status: ${IN_REVIEW_STATUS}`);
160
+ // Process TOML decisions and constraints (v4.2.0+)
161
+ let tomlContext = '';
162
+ const tomlCache = loadPlanTomlCache(projectPath);
163
+ if (tomlCache && tomlCache.plan_id === planInfo.plan_id) {
164
+ tomlContext = processPlanTomlCache(projectPath, tomlCache);
165
+ }
166
+ const baseMessage = `[sqlew] All tasks completed! Decision updated to status: ${IN_REVIEW_STATUS}`;
167
+ sendContinue(tomlContext ? `${baseMessage}\n${tomlContext}` : baseMessage);
89
168
  }
90
169
  catch (error) {
91
170
  // Log error but continue
92
171
  const message = error instanceof Error ? error.message : String(error);
93
172
  console.error(`[sqlew check-completion] Error updating decision: ${message}`);
173
+ // Still process TOML even if decision update failed
174
+ const tomlCache = loadPlanTomlCache(projectPath);
175
+ if (tomlCache && tomlCache.plan_id === planInfo.plan_id) {
176
+ const tomlContext = processPlanTomlCache(projectPath, tomlCache);
177
+ if (tomlContext) {
178
+ sendContinue(tomlContext);
179
+ return;
180
+ }
181
+ }
94
182
  sendContinue();
95
183
  }
96
184
  }
@@ -1 +1 @@
1
- {"version":3,"file":"check-completion.js","sourceRoot":"","sources":["../../../src/cli/hooks/check-completion.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"check-completion.js","sourceRoot":"","sources":["../../../src/cli/hooks/check-completion.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"init-hooks.d.ts","sourceRoot":"","sources":["../../../src/cli/hooks/init-hooks.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AA8RH;;;;GAIG;AACH,wBAAsB,gBAAgB,CAAC,IAAI,GAAE,MAAM,EAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAwCzE;AAoCD;;;;;;;;;GASG;AACH,wBAAgB,mBAAmB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CA6BhE"}
1
+ {"version":3,"file":"init-hooks.d.ts","sourceRoot":"","sources":["../../../src/cli/hooks/init-hooks.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AA0YH;;;;GAIG;AACH,wBAAsB,gBAAgB,CAAC,IAAI,GAAE,MAAM,EAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CA6CzE;AA0CD;;;;;;;;;GASG;AACH,wBAAgB,mBAAmB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAkChE"}