@ai-content-space/loopx 0.2.9 → 0.2.10

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 (99) hide show
  1. package/README.md +10 -6
  2. package/README.zh-CN.md +10 -6
  3. package/docs/loopx/design/loopx-skill-suite-v1-design.md +12 -0
  4. package/docs/loopx/plans/2026-06-15-support-lens-skills-migration.md +1153 -0
  5. package/package.json +6 -1
  6. package/plugins/loopx/.codex-plugin/plugin.json +1 -1
  7. package/plugins/loopx/skills/api-designer/SKILL.md +232 -0
  8. package/plugins/loopx/skills/api-designer/references/error-handling.md +541 -0
  9. package/plugins/loopx/skills/api-designer/references/openapi.md +824 -0
  10. package/plugins/loopx/skills/api-designer/references/pagination.md +494 -0
  11. package/plugins/loopx/skills/api-designer/references/rest-patterns.md +335 -0
  12. package/plugins/loopx/skills/api-designer/references/versioning.md +391 -0
  13. package/plugins/loopx/skills/architecture-designer/SKILL.md +117 -0
  14. package/plugins/loopx/skills/architecture-designer/references/adr-template.md +116 -0
  15. package/plugins/loopx/skills/architecture-designer/references/architecture-patterns.md +346 -0
  16. package/plugins/loopx/skills/architecture-designer/references/database-selection.md +102 -0
  17. package/plugins/loopx/skills/architecture-designer/references/nfr-checklist.md +212 -0
  18. package/plugins/loopx/skills/architecture-designer/references/system-design.md +313 -0
  19. package/plugins/loopx/skills/clarify/SKILL.md +1 -1
  20. package/plugins/loopx/skills/cli-developer/SKILL.md +124 -0
  21. package/plugins/loopx/skills/cli-developer/references/design-patterns.md +221 -0
  22. package/plugins/loopx/skills/cli-developer/references/go-cli.md +540 -0
  23. package/plugins/loopx/skills/cli-developer/references/node-cli.md +383 -0
  24. package/plugins/loopx/skills/cli-developer/references/python-cli.md +422 -0
  25. package/plugins/loopx/skills/cli-developer/references/ux-patterns.md +448 -0
  26. package/plugins/loopx/skills/debug/SKILL.md +1 -1
  27. package/plugins/loopx/skills/doc-readability/SKILL.md +1 -1
  28. package/plugins/loopx/skills/exec/SKILL.md +1 -1
  29. package/plugins/loopx/skills/final-review/SKILL.md +1 -1
  30. package/plugins/loopx/skills/finish/SKILL.md +1 -1
  31. package/plugins/loopx/skills/fix-review/SKILL.md +1 -1
  32. package/plugins/loopx/skills/go-style/SKILL.md +1 -1
  33. package/plugins/loopx/skills/kratos/SKILL.md +2 -1
  34. package/plugins/loopx/skills/plan-to-exec/SKILL.md +1 -1
  35. package/plugins/loopx/skills/refactor-plan/SKILL.md +1 -1
  36. package/plugins/loopx/skills/requirement-analyzer/SKILL.md +161 -0
  37. package/plugins/loopx/skills/requirement-analyzer/references/example-reports.md +170 -0
  38. package/plugins/loopx/skills/requirement-analyzer/references/prd-gap-checklist.md +167 -0
  39. package/plugins/loopx/skills/requirement-analyzer/references/readiness-rubric.md +70 -0
  40. package/plugins/loopx/skills/requirement-analyzer/references/report-template.md +83 -0
  41. package/plugins/loopx/skills/review/SKILL.md +1 -1
  42. package/plugins/loopx/skills/spec/SKILL.md +1 -1
  43. package/plugins/loopx/skills/sql-style/SKILL.md +108 -0
  44. package/plugins/loopx/skills/sql-style/references/database-design.md +402 -0
  45. package/plugins/loopx/skills/sql-style/references/dialect-differences.md +419 -0
  46. package/plugins/loopx/skills/sql-style/references/optimization.md +384 -0
  47. package/plugins/loopx/skills/sql-style/references/query-patterns.md +285 -0
  48. package/plugins/loopx/skills/sql-style/references/window-functions.md +328 -0
  49. package/plugins/loopx/skills/subagent-exec/SKILL.md +1 -1
  50. package/plugins/loopx/skills/tdd/SKILL.md +1 -1
  51. package/plugins/loopx/skills/verify/SKILL.md +1 -1
  52. package/scripts/verify-skills.mjs +0 -2
  53. package/skills/RESOLVER.md +8 -1
  54. package/skills/api-designer/SKILL.md +232 -0
  55. package/skills/api-designer/references/error-handling.md +541 -0
  56. package/skills/api-designer/references/openapi.md +824 -0
  57. package/skills/api-designer/references/pagination.md +494 -0
  58. package/skills/api-designer/references/rest-patterns.md +335 -0
  59. package/skills/api-designer/references/versioning.md +391 -0
  60. package/skills/architecture-designer/SKILL.md +117 -0
  61. package/skills/architecture-designer/references/adr-template.md +116 -0
  62. package/skills/architecture-designer/references/architecture-patterns.md +346 -0
  63. package/skills/architecture-designer/references/database-selection.md +102 -0
  64. package/skills/architecture-designer/references/nfr-checklist.md +212 -0
  65. package/skills/architecture-designer/references/system-design.md +313 -0
  66. package/skills/clarify/SKILL.md +1 -1
  67. package/skills/cli-developer/SKILL.md +124 -0
  68. package/skills/cli-developer/references/design-patterns.md +221 -0
  69. package/skills/cli-developer/references/go-cli.md +540 -0
  70. package/skills/cli-developer/references/node-cli.md +383 -0
  71. package/skills/cli-developer/references/python-cli.md +422 -0
  72. package/skills/cli-developer/references/ux-patterns.md +448 -0
  73. package/skills/debug/SKILL.md +1 -1
  74. package/skills/doc-readability/SKILL.md +1 -1
  75. package/skills/exec/SKILL.md +1 -1
  76. package/skills/final-review/SKILL.md +1 -1
  77. package/skills/finish/SKILL.md +1 -1
  78. package/skills/fix-review/SKILL.md +1 -1
  79. package/skills/go-style/SKILL.md +1 -1
  80. package/skills/kratos/SKILL.md +2 -1
  81. package/skills/plan-to-exec/SKILL.md +1 -1
  82. package/skills/refactor-plan/SKILL.md +1 -1
  83. package/skills/requirement-analyzer/SKILL.md +161 -0
  84. package/skills/requirement-analyzer/references/example-reports.md +170 -0
  85. package/skills/requirement-analyzer/references/prd-gap-checklist.md +167 -0
  86. package/skills/requirement-analyzer/references/readiness-rubric.md +70 -0
  87. package/skills/requirement-analyzer/references/report-template.md +83 -0
  88. package/skills/review/SKILL.md +1 -1
  89. package/skills/spec/SKILL.md +1 -1
  90. package/skills/sql-style/SKILL.md +108 -0
  91. package/skills/sql-style/references/database-design.md +402 -0
  92. package/skills/sql-style/references/dialect-differences.md +419 -0
  93. package/skills/sql-style/references/optimization.md +384 -0
  94. package/skills/sql-style/references/query-patterns.md +285 -0
  95. package/skills/sql-style/references/window-functions.md +328 -0
  96. package/skills/subagent-exec/SKILL.md +1 -1
  97. package/skills/tdd/SKILL.md +1 -1
  98. package/skills/verify/SKILL.md +1 -1
  99. package/src/install-discovery.mjs +5 -0
@@ -0,0 +1,1153 @@
1
+ # Support Lens Skills Migration Implementation Plan
2
+
3
+ > **For agentic workers:** REQUIRED SUB-SKILL: Use loopx:subagent-exec (recommended) or loopx:exec to implement this plan task-by-task. Steps use checkbox (`- [ ]`) syntax for tracking.
4
+
5
+ **Source:** Conversation requirements from 2026-06-15: migrate `requirement-analyzer` from `AI-Content-Space/agent-skills`; migrate the latest `api-designer`, `architecture-designer`, `cli-developer`, and `sql-pro` content from `https://github.com/Jeffallan/claude-skills/tree/main/skills`; create loopx `sql-style` by fusing selected `sql-pro` guidance with existing loopx SQL/data discipline; do not create new workflow nodes.
6
+
7
+ **Goal:** Add five governed loopx bundled support skills while preserving the existing loopx workflow model.
8
+
9
+ **Architecture:** Keep the core workflow unchanged. Add `requirement-analyzer` as a user-invoked support skill similar to `doc-readability`, and add `api-designer`, `architecture-designer`, `sql-style`, and `cli-developer` as support lenses similar to `go-style`/`kratos`. `api-designer`, `architecture-designer`, and `cli-developer` should be adapted from Jeffallan's latest upstream skill content, preserving useful reference files while adding loopx support-lens boundaries. `sql-style` should be a fused loopx lens derived from Jeffallan's latest `sql-pro` plus existing loopx SQL/data rules; do not delete other skills' content just because `sql-style` exists, and update related skills to call `sql-style` when SQL/database discipline is relevant.
10
+
11
+ **Tech Stack:** Node.js ESM CLI, markdown skill files with YAML frontmatter, npm package `files`, loopx plugin skill mirror, `scripts/verify-skills.mjs`, `node:test`.
12
+
13
+ ---
14
+
15
+ ## File Structure
16
+
17
+ - Modify `src/install-discovery.mjs` to add the new bundled skill names to `LOOPX_SKILLS`.
18
+ - Modify `package.json` to include the new `skills/<name>/` directories in the exact published skill surface.
19
+ - Modify `skills/RESOLVER.md` to route these skills and define their support-lens boundaries.
20
+ - Modify `README.md`, `README.zh-CN.md`, and `docs/loopx/design/loopx-skill-suite-v1-design.md` to document the expanded support surface without changing the core flow.
21
+ - Create `skills/requirement-analyzer/SKILL.md`.
22
+ - Create `skills/api-designer/SKILL.md` and copy/adapt its upstream reference files from Jeffallan.
23
+ - Create `skills/architecture-designer/SKILL.md` and copy/adapt its upstream reference files from Jeffallan.
24
+ - Create `skills/sql-style/SKILL.md` and copy/adapt useful upstream `sql-pro` reference files under `skills/sql-style/references/`.
25
+ - Create `skills/cli-developer/SKILL.md` and copy/adapt its upstream reference files from Jeffallan.
26
+ - Mirror each new skill directory under `plugins/loopx/skills/<name>/`.
27
+ - Modify existing related skills such as `skills/kratos/SKILL.md` when they should explicitly use `sql-style`; mirror those changes under `plugins/loopx/skills/`.
28
+ - Modify `scripts/verify-skills.mjs` only if an existing public-doc alignment assertion must be updated for the expanded support-skill list.
29
+ - Add or update tests in the existing install/governance test files only if current tests do not already catch the new bundled surface.
30
+
31
+ ## Task 1: Add Failing Governance Coverage For New Bundled Skills
32
+
33
+ **Files:**
34
+ - Modify: `src/install-discovery.mjs`
35
+ - Modify: `package.json`
36
+ - Modify: `skills/RESOLVER.md`
37
+
38
+ - [ ] **Step 1: Run the current skill governance check before changes**
39
+
40
+ Run:
41
+
42
+ ```bash
43
+ node scripts/verify-skills.mjs
44
+ ```
45
+
46
+ Expected: PASS, ending with output similar to:
47
+
48
+ ```text
49
+ ok: verified 16 loopx bundled skills
50
+ ```
51
+
52
+ - [ ] **Step 2: Add new skill names to the bundled list first**
53
+
54
+ In `src/install-discovery.mjs`, update `LOOPX_SKILLS` from:
55
+
56
+ ```js
57
+ const LOOPX_SKILLS = [
58
+ 'clarify',
59
+ 'spec',
60
+ 'plan-to-exec',
61
+ 'subagent-exec',
62
+ 'exec',
63
+ 'review',
64
+ 'final-review',
65
+ 'fix-review',
66
+ 'finish',
67
+ 'refactor-plan',
68
+ 'debug',
69
+ 'tdd',
70
+ 'verify',
71
+ 'doc-readability',
72
+ 'go-style',
73
+ 'kratos',
74
+ ];
75
+ ```
76
+
77
+ to:
78
+
79
+ ```js
80
+ const LOOPX_SKILLS = [
81
+ 'clarify',
82
+ 'spec',
83
+ 'plan-to-exec',
84
+ 'subagent-exec',
85
+ 'exec',
86
+ 'review',
87
+ 'final-review',
88
+ 'fix-review',
89
+ 'finish',
90
+ 'refactor-plan',
91
+ 'debug',
92
+ 'tdd',
93
+ 'verify',
94
+ 'doc-readability',
95
+ 'requirement-analyzer',
96
+ 'go-style',
97
+ 'kratos',
98
+ 'api-designer',
99
+ 'architecture-designer',
100
+ 'sql-style',
101
+ 'cli-developer',
102
+ ];
103
+ ```
104
+
105
+ - [ ] **Step 3: Run governance check to capture the intended failure**
106
+
107
+ Run:
108
+
109
+ ```bash
110
+ node scripts/verify-skills.mjs
111
+ ```
112
+
113
+ Expected: FAIL with the first missing published directory assertion, similar to:
114
+
115
+ ```text
116
+ AssertionError [ERR_ASSERTION]: npm package missing bundled skill requirement-analyzer
117
+ ```
118
+
119
+ This failure proves the installer/governance path sees the new skills.
120
+
121
+ - [ ] **Step 4: Add package publishing entries**
122
+
123
+ In `package.json`, add these entries beside the other explicit `skills/` entries:
124
+
125
+ ```json
126
+ "skills/requirement-analyzer/",
127
+ "skills/api-designer/",
128
+ "skills/architecture-designer/",
129
+ "skills/sql-style/",
130
+ "skills/cli-developer/",
131
+ ```
132
+
133
+ Keep `package.json.files` explicit. Do not add broad `"skills/"`.
134
+
135
+ - [ ] **Step 5: Add placeholder resolver rows to keep the next failure focused on missing files**
136
+
137
+ In `skills/RESOLVER.md`, under `## Support Skills`, add rows:
138
+
139
+ ```markdown
140
+ | Existing requirement, PRD, spec, or feature brief needs ambiguity, gap, impact, feasibility, or readiness analysis | `skills/requirement-analyzer/SKILL.md` |
141
+ | REST/GraphQL API design, resource modeling, OpenAPI, pagination, versioning, or API error model discipline | `skills/api-designer/SKILL.md` |
142
+ | System architecture, ADRs, NFRs, scalability, failure modes, or technology tradeoff discipline | `skills/architecture-designer/SKILL.md` |
143
+ | SQL queries, schema changes, indexes, migrations, database dialects, or query performance discipline | `skills/sql-style/SKILL.md` |
144
+ | CLI command design, flags, human/JSON output, interactive vs non-interactive behavior, help text, or CLI UX discipline | `skills/cli-developer/SKILL.md` |
145
+ ```
146
+
147
+ Update the support-lens disambiguation sentence from:
148
+
149
+ ```markdown
150
+ 13. Treat `tdd`, `debug`, `verify`, `doc-readability`, `go-style`, and `kratos` as support lenses unless the user explicitly invokes them directly.
151
+ ```
152
+
153
+ to:
154
+
155
+ ```markdown
156
+ 13. Treat `tdd`, `debug`, `verify`, `doc-readability`, `requirement-analyzer`, `go-style`, `kratos`, `api-designer`, `architecture-designer`, `sql-style`, and `cli-developer` as support lenses unless the user explicitly invokes them directly.
157
+ 14. `requirement-analyzer` may produce a requirements gap report, but it must not advance loopx workflow state. Use its output as source material for a later `clarify`, `spec`, or `plan-to-exec` step only when the user asks.
158
+ 15. `api-designer`, `architecture-designer`, `sql-style`, and `cli-developer` add domain discipline to `spec`, `exec`, `review`, and `final-review`; they do not replace those workflow skills or create additional workflow states.
159
+ ```
160
+
161
+ - [ ] **Step 6: Run governance check again**
162
+
163
+ Run:
164
+
165
+ ```bash
166
+ node scripts/verify-skills.mjs
167
+ ```
168
+
169
+ Expected: FAIL with missing root skill file, similar to:
170
+
171
+ ```text
172
+ AssertionError [ERR_ASSERTION]: requirement-analyzer root SKILL.md missing
173
+ ```
174
+
175
+ - [ ] **Step 7: Commit the red governance state**
176
+
177
+ Do not commit this intentionally failing intermediate state unless the repository convention requires red/green commits. If committing red states is not acceptable, skip the commit and continue to Task 2.
178
+
179
+ ## Task 2: Create `requirement-analyzer` As A Support Skill
180
+
181
+ **Files:**
182
+ - Create: `skills/requirement-analyzer/SKILL.md`
183
+ - Create: `plugins/loopx/skills/requirement-analyzer/SKILL.md`
184
+
185
+ - [ ] **Step 1: Create the root skill file**
186
+
187
+ Create `skills/requirement-analyzer/SKILL.md` with this content. Set `metadata.version` to the current `package.json.version`.
188
+
189
+ ```markdown
190
+ ---
191
+ name: requirement-analyzer
192
+ description: "Reviews existing requirements, PRDs, specs, and feature briefs for ambiguity, missing business closure, impact, feasibility, and development readiness. Not for changing workflow state, inventing business decisions, writing implementation plans, or editing code."
193
+ when_to_use: "requirement-analyzer, PRD review, requirement gaps, feasibility review, ambiguity analysis, development readiness, 需求分析, 需求缺口"
194
+ metadata:
195
+ version: "0.2.9"
196
+ ---
197
+
198
+ # Requirement Analyzer
199
+
200
+ ## Purpose
201
+
202
+ `requirement-analyzer` reviews an existing written requirement and produces a gap report or readiness assessment. It is a support skill like `doc-readability`: users can invoke it directly, and loopx workflow skills may use its output as source material later, but this skill does not advance workflow state.
203
+
204
+ Do not turn this skill into `clarify`, `spec`, or `plan-to-exec`. If analysis shows the requirement is not ready, report the gaps. If the user later wants to proceed, route that separate request through the normal loopx flow.
205
+
206
+ ## Inputs
207
+
208
+ Accept one primary input:
209
+
210
+ - a document path
211
+ - pasted document content
212
+ - a URL or external document the agent can read with available tools
213
+
214
+ Optional inputs:
215
+
216
+ - repository root for narrow context lookup
217
+ - analysis depth: `quick`, `standard`, or `deep`
218
+ - output mode: `gap_checklist` or `analysis_report`
219
+ - output path
220
+
221
+ If no source document or content is available, stop and ask for it.
222
+
223
+ ## Analysis Rules
224
+
225
+ - Do not invent missing business facts. Mark them as unknowns.
226
+ - Separate facts, inferences, and assumptions.
227
+ - Every P0 or P1 issue must cite evidence from the requirement or nearby repo context.
228
+ - Keep repository scanning narrow. Read only directly related docs, interfaces, schemas, or code paths.
229
+ - Prefer concrete follow-up questions over broad requests for more detail.
230
+ - Do not treat every API, schema, or implementation detail as a PRD defect when it clearly belongs in technical design.
231
+
232
+ ## Priority Levels
233
+
234
+ - `P0`: Blocks design or implementation. Key behavior, ownership, timing, failure handling, contract, permission, or acceptance rule is missing or contradictory.
235
+ - `P1`: Does not block kickoff, but creates major design uncertainty, integration risk, or likely rework.
236
+ - `P2`: Clarity, operability, UX, or maintenance issue that should be improved but does not block work.
237
+
238
+ ## Review Dimensions
239
+
240
+ ### Business Closure
241
+
242
+ Check whether the requirement has a complete loop:
243
+
244
+ ```text
245
+ input -> process -> output -> feedback
246
+ ```
247
+
248
+ Look for missing actors, triggers, success events, failure handling, ownership, and user-visible completion states.
249
+
250
+ ### Ambiguity
251
+
252
+ Find terms, quantities, timing, permissions, integrations, and acceptance criteria that can be interpreted more than one way.
253
+
254
+ ### Impact
255
+
256
+ Identify affected users, systems, APIs, data, permissions, migrations, operations, analytics, and rollback concerns.
257
+
258
+ ### Feasibility
259
+
260
+ Call out technical, product, operational, legal, data-quality, schedule, or dependency risks that would change design or planning.
261
+
262
+ ### Development Readiness
263
+
264
+ State whether the requirement is ready for:
265
+
266
+ - `clarify`
267
+ - `spec`
268
+ - `plan-to-exec`
269
+ - blocked pending owner decisions
270
+
271
+ This is a recommendation only. Do not create workflow artifacts unless the user separately asks.
272
+
273
+ ## Output
274
+
275
+ Default to a markdown report with this structure:
276
+
277
+ ```markdown
278
+ # Requirement Analysis
279
+
280
+ ## Summary
281
+
282
+ ## Readiness Recommendation
283
+
284
+ ## P0 Blockers
285
+
286
+ ## P1 Major Risks
287
+
288
+ ## P2 Improvements
289
+
290
+ ## Facts
291
+
292
+ ## Inferences
293
+
294
+ ## Assumptions
295
+
296
+ ## Follow-Up Questions
297
+
298
+ ## Suggested Next Step
299
+ ```
300
+
301
+ If writing to disk, use a sibling file next to the source document when practical:
302
+
303
+ - `需求缺口清单.md` for gap reports
304
+ - `需求分析报告.md` for narrative analysis
305
+ ```
306
+
307
+ - [ ] **Step 2: Mirror it to the plugin**
308
+
309
+ Run:
310
+
311
+ ```bash
312
+ mkdir -p plugins/loopx/skills/requirement-analyzer
313
+ cp skills/requirement-analyzer/SKILL.md plugins/loopx/skills/requirement-analyzer/SKILL.md
314
+ ```
315
+
316
+ - [ ] **Step 3: Run governance check**
317
+
318
+ Run:
319
+
320
+ ```bash
321
+ node scripts/verify-skills.mjs
322
+ ```
323
+
324
+ Expected: FAIL with the next missing skill, similar to:
325
+
326
+ ```text
327
+ AssertionError [ERR_ASSERTION]: api-designer root SKILL.md missing
328
+ ```
329
+
330
+ - [ ] **Step 4: Commit**
331
+
332
+ Run:
333
+
334
+ ```bash
335
+ git add src/install-discovery.mjs package.json skills/RESOLVER.md skills/requirement-analyzer plugins/loopx/skills/requirement-analyzer
336
+ git commit -m "feat: add requirement analyzer support skill"
337
+ ```
338
+
339
+ Expected: commit succeeds.
340
+
341
+ ## Task 3: Create `api-designer` As An API Discipline Lens
342
+
343
+ **Files:**
344
+ - Create: `skills/api-designer/SKILL.md`
345
+ - Create: `skills/api-designer/references/*.md`
346
+ - Create: `plugins/loopx/skills/api-designer/SKILL.md`
347
+ - Create: `plugins/loopx/skills/api-designer/references/*.md`
348
+
349
+ - [ ] **Step 1: Fetch the latest Jeffallan upstream source**
350
+
351
+ Run:
352
+
353
+ ```bash
354
+ rm -rf /tmp/jeffallan-claude-skills
355
+ git clone --depth 1 https://github.com/Jeffallan/claude-skills /tmp/jeffallan-claude-skills
356
+ test -f /tmp/jeffallan-claude-skills/skills/api-designer/SKILL.md
357
+ find /tmp/jeffallan-claude-skills/skills/api-designer -maxdepth 2 -type f | sort
358
+ ```
359
+
360
+ Expected: output includes:
361
+
362
+ ```text
363
+ /tmp/jeffallan-claude-skills/skills/api-designer/SKILL.md
364
+ ```
365
+
366
+ - [ ] **Step 2: Copy upstream content into loopx**
367
+
368
+ Run:
369
+
370
+ ```bash
371
+ rm -rf skills/api-designer plugins/loopx/skills/api-designer
372
+ mkdir -p skills
373
+ cp -R /tmp/jeffallan-claude-skills/skills/api-designer skills/api-designer
374
+ ```
375
+
376
+ Expected: `skills/api-designer/SKILL.md` and any upstream `references/` files exist.
377
+
378
+ - [ ] **Step 3: Adapt the root skill to loopx support-lens semantics**
379
+
380
+ Edit `skills/api-designer/SKILL.md`:
381
+
382
+ - Keep the useful upstream API design workflow, constraints, and reference map.
383
+ - Replace or add frontmatter so it has exactly:
384
+
385
+ ```yaml
386
+ ---
387
+ name: api-designer
388
+ description: "Applies loopx API design discipline for REST, GraphQL, OpenAPI, resource modeling, pagination, versioning, compatibility, and error models. Not for replacing clarify, spec, implementation planning, code review, or workflow state transitions."
389
+ when_to_use: "api-designer, API design, REST, GraphQL, OpenAPI, resource modeling, pagination, versioning, API errors, compatibility, 接口设计"
390
+ metadata:
391
+ version: "0.2.9"
392
+ ---
393
+ ```
394
+
395
+ - Add this `## loopx Boundary` section near the top, before any implementation workflow:
396
+
397
+ ```markdown
398
+ ## loopx Boundary
399
+
400
+ `api-designer` is a support lens, not a workflow state. Use it directly when the user asks for API design help, and use it from `spec`, `exec`, `review`, or `final-review` when work touches API contracts.
401
+
402
+ This skill does not replace `clarify`, `spec`, `plan-to-exec`, `review`, or `final-review`. If product behavior, permissions, compatibility, migration, or client contract decisions are unresolved, route those decisions through `clarify` or `spec` instead of deciding them inside this skill.
403
+ ```
404
+
405
+ - Remove role-play claims such as "10+ years" if they read like persona inflation and do not add concrete guidance.
406
+ - Keep upstream reference links local. If the upstream file references `references/rest-patterns.md`, ensure that file exists under `skills/api-designer/references/rest-patterns.md`.
407
+
408
+ - [ ] **Step 4: Mirror it to the plugin**
409
+
410
+ Run:
411
+
412
+ ```bash
413
+ mkdir -p plugins/loopx/skills/api-designer
414
+ cp -R skills/api-designer/. plugins/loopx/skills/api-designer/
415
+ ```
416
+
417
+ - [ ] **Step 5: Run governance check**
418
+
419
+ Run:
420
+
421
+ ```bash
422
+ node scripts/verify-skills.mjs
423
+ ```
424
+
425
+ Expected: FAIL with the next missing skill, similar to:
426
+
427
+ ```text
428
+ AssertionError [ERR_ASSERTION]: architecture-designer root SKILL.md missing
429
+ ```
430
+
431
+ - [ ] **Step 6: Commit**
432
+
433
+ Run:
434
+
435
+ ```bash
436
+ git add skills/api-designer plugins/loopx/skills/api-designer
437
+ git commit -m "feat: add api designer support lens"
438
+ ```
439
+
440
+ Expected: commit succeeds.
441
+
442
+ ## Task 4: Create `architecture-designer` As An Architecture Discipline Lens
443
+
444
+ **Files:**
445
+ - Create: `skills/architecture-designer/SKILL.md`
446
+ - Create: `skills/architecture-designer/references/*.md`
447
+ - Create: `plugins/loopx/skills/architecture-designer/SKILL.md`
448
+ - Create: `plugins/loopx/skills/architecture-designer/references/*.md`
449
+
450
+ - [ ] **Step 1: Verify the latest Jeffallan upstream source is available**
451
+
452
+ Run:
453
+
454
+ ```bash
455
+ test -f /tmp/jeffallan-claude-skills/skills/architecture-designer/SKILL.md || git clone --depth 1 https://github.com/Jeffallan/claude-skills /tmp/jeffallan-claude-skills
456
+ find /tmp/jeffallan-claude-skills/skills/architecture-designer -maxdepth 2 -type f | sort
457
+ ```
458
+
459
+ Expected: output includes `/tmp/jeffallan-claude-skills/skills/architecture-designer/SKILL.md` and any upstream reference files.
460
+
461
+ - [ ] **Step 2: Copy upstream content into loopx**
462
+
463
+ Run:
464
+
465
+ ```bash
466
+ rm -rf skills/architecture-designer plugins/loopx/skills/architecture-designer
467
+ cp -R /tmp/jeffallan-claude-skills/skills/architecture-designer skills/architecture-designer
468
+ ```
469
+
470
+ Expected: `skills/architecture-designer/SKILL.md` and any upstream `references/` files exist.
471
+
472
+ - [ ] **Step 3: Adapt the root skill to loopx support-lens semantics**
473
+
474
+ Edit `skills/architecture-designer/SKILL.md`:
475
+
476
+ - Keep useful upstream guidance around ADRs, NFRs, system design, database selection, and architecture tradeoffs.
477
+ - Replace or add frontmatter so it has exactly:
478
+
479
+ ```yaml
480
+ ---
481
+ name: architecture-designer
482
+ description: "Applies loopx architecture discipline for system boundaries, ADRs, NFRs, scalability, failure modes, operability, and technology tradeoffs. Not for replacing clarify, spec, implementation planning, code review, or workflow state transitions."
483
+ when_to_use: "architecture-designer, architecture, system design, ADR, NFR, scalability, failure modes, technology tradeoff, 架构设计"
484
+ metadata:
485
+ version: "0.2.9"
486
+ ---
487
+ ```
488
+
489
+ - Add this `## loopx Boundary` section near the top:
490
+
491
+ ```markdown
492
+ ## loopx Boundary
493
+
494
+ `architecture-designer` is a support lens, not a workflow state. Use it directly for architecture review or system design discussion, and use it from `spec`, `review`, or `final-review` when changes affect system boundaries, operational behavior, or long-lived design decisions.
495
+
496
+ This skill does not replace `clarify`, `spec`, `plan-to-exec`, `review`, or `final-review`. If architecture decisions are not yet approved, produce options and route the work through `spec`.
497
+
498
+ When database technology, ownership, schema, migration, or query performance is part of the architecture decision, also use `sql-style`.
499
+ ```
500
+
501
+ - Remove role-play claims that do not add concrete guidance.
502
+ - Keep upstream reference links local and ensure referenced files exist.
503
+
504
+ - [ ] **Step 4: Mirror it to the plugin**
505
+
506
+ Run:
507
+
508
+ ```bash
509
+ mkdir -p plugins/loopx/skills/architecture-designer
510
+ cp -R skills/architecture-designer/. plugins/loopx/skills/architecture-designer/
511
+ ```
512
+
513
+ - [ ] **Step 5: Run governance check**
514
+
515
+ Run:
516
+
517
+ ```bash
518
+ node scripts/verify-skills.mjs
519
+ ```
520
+
521
+ Expected: FAIL with the next missing skill, similar to:
522
+
523
+ ```text
524
+ AssertionError [ERR_ASSERTION]: sql-style root SKILL.md missing
525
+ ```
526
+
527
+ - [ ] **Step 6: Commit**
528
+
529
+ Run:
530
+
531
+ ```bash
532
+ git add skills/architecture-designer plugins/loopx/skills/architecture-designer
533
+ git commit -m "feat: add architecture designer support lens"
534
+ ```
535
+
536
+ Expected: commit succeeds.
537
+
538
+ ## Task 5: Create Fused `sql-style` As The Shared SQL Lens
539
+
540
+ **Files:**
541
+ - Create: `skills/sql-style/SKILL.md`
542
+ - Create: `skills/sql-style/references/*.md`
543
+ - Create: `plugins/loopx/skills/sql-style/SKILL.md`
544
+ - Create: `plugins/loopx/skills/sql-style/references/*.md`
545
+ - Modify: `skills/kratos/SKILL.md`
546
+ - Modify: `plugins/loopx/skills/kratos/SKILL.md`
547
+
548
+ - [ ] **Step 1: Verify the latest Jeffallan `sql-pro` source is available**
549
+
550
+ Run:
551
+
552
+ ```bash
553
+ test -f /tmp/jeffallan-claude-skills/skills/sql-pro/SKILL.md || git clone --depth 1 https://github.com/Jeffallan/claude-skills /tmp/jeffallan-claude-skills
554
+ find /tmp/jeffallan-claude-skills/skills/sql-pro -maxdepth 2 -type f | sort
555
+ ```
556
+
557
+ Expected: output includes:
558
+
559
+ ```text
560
+ /tmp/jeffallan-claude-skills/skills/sql-pro/SKILL.md
561
+ ```
562
+
563
+ and upstream SQL reference files such as `references/optimization.md` if they exist.
564
+
565
+ - [ ] **Step 2: Copy upstream `sql-pro` content into the new `sql-style` directory**
566
+
567
+ Run:
568
+
569
+ ```bash
570
+ rm -rf skills/sql-style plugins/loopx/skills/sql-style
571
+ mkdir -p skills/sql-style
572
+ cp -R /tmp/jeffallan-claude-skills/skills/sql-pro/. skills/sql-style/
573
+ ```
574
+
575
+ Expected: `skills/sql-style/SKILL.md` exists, and upstream reference files are preserved under `skills/sql-style/references/`.
576
+
577
+ - [ ] **Step 3: Adapt `sql-pro` into fused loopx `sql-style`**
578
+
579
+ Edit `skills/sql-style/SKILL.md`:
580
+
581
+ - Keep the best upstream SQL guidance: query plans, set-based operations, indexes, window functions, dialect differences, schema design, optimization, and performance evidence.
582
+ - Add existing loopx discipline: workflow boundaries, migration safety, rolling deploy compatibility, repeat-run safety, Kratos/MySQL table and column comments where applicable.
583
+ - Replace or add frontmatter so it has exactly:
584
+
585
+ ```markdown
586
+ ---
587
+ name: sql-style
588
+ description: "Applies loopx SQL and database-change discipline for queries, schemas, indexes, migrations, dialects, and performance-sensitive data access. Not for replacing clarify, spec, implementation planning, code review, or workflow state transitions."
589
+ when_to_use: "sql-style, SQL, database schema, migration, index, query optimization, EXPLAIN, PostgreSQL, MySQL, SQLite, 数据库, 索引"
590
+ metadata:
591
+ version: "0.2.9"
592
+ ---
593
+
594
+ # SQL Style
595
+
596
+ ## Purpose
597
+
598
+ `sql-style` is the shared loopx SQL/database support lens. It fuses useful upstream `sql-pro` guidance with loopx workflow discipline.
599
+
600
+ Do not delete or flatten useful SQL/database guidance from other skills just because `sql-style` exists. Instead, make related skills call `sql-style` when SQL, database schema, migration, indexing, or query-performance discipline is relevant.
601
+
602
+ Use it directly for SQL, schema, index, migration, and database performance work. Use it from `spec`, `exec`, `review`, or `final-review` when work touches persistent data or performance-sensitive data access.
603
+
604
+ This skill does not replace `spec`. If data ownership, product semantics, migration compatibility, permission boundaries, or rollback decisions are unresolved, route those decisions through `clarify` or `spec`.
605
+
606
+ ## When To Use
607
+
608
+ - Designing or reviewing database schemas
609
+ - Writing or optimizing SQL queries
610
+ - Adding or changing indexes
611
+ - Writing migrations, backfills, or data cleanup
612
+ - Reviewing ORM-generated SQL or repository data access
613
+ - Investigating slow queries with `EXPLAIN` or query plans
614
+ - Handling dialect-specific behavior in PostgreSQL, MySQL, SQLite, or SQL Server
615
+
616
+ ## Schema And Migration Discipline
617
+
618
+ - Preserve existing schema conventions unless they are clearly broken.
619
+ - Define primary keys, foreign keys, uniqueness, nullability, and defaults intentionally.
620
+ - Treat nullability as product behavior, not a storage afterthought.
621
+ - Include rollback or forward-fix strategy for migrations that can fail mid-flight.
622
+ - Make repeated migration or backfill runs safe when the deployment process may retry.
623
+ - For large tables, plan lock behavior, batching, indexes, and online migration constraints.
624
+ - Keep application compatibility in mind during rolling deploys.
625
+ - For MySQL tables in Kratos projects, preserve the existing loopx rule: `CREATE TABLE` statements should include table comments, and persisted columns should include column comments where the project convention requires them.
626
+
627
+ ## Query Discipline
628
+
629
+ - Prefer set-based operations over row-by-row loops.
630
+ - Avoid `SELECT *` in production queries unless the repository has an explicit reason.
631
+ - Filter early and return only required columns.
632
+ - Handle `NULL` explicitly in predicates, joins, ordering, and uniqueness assumptions.
633
+ - Prefer `EXISTS` over `COUNT(*)` for existence checks when only existence matters.
634
+ - Make ordering deterministic for paginated or user-visible results.
635
+ - Use transactions deliberately. State the isolation assumptions when correctness depends on them.
636
+ - Keep query intent readable with names, structure, or short comments for non-obvious logic.
637
+
638
+ ## Index Discipline
639
+
640
+ - Add indexes for demonstrated access paths, constraints, or clearly required query patterns.
641
+ - Consider column order, selectivity, covering behavior, and write amplification.
642
+ - Avoid redundant indexes unless the dialect or workload justifies them.
643
+ - Verify the intended query uses the index with the project's database tooling when practical.
644
+ - Document why a non-obvious index exists.
645
+
646
+ ## Performance Verification
647
+
648
+ - Use project-specific performance targets when they exist.
649
+ - If no target exists, state the measured baseline and proposed improvement without inventing an SLO.
650
+ - Analyze execution plans before claiming an optimization works.
651
+ - Test against production-like data volume when data size can change the plan.
652
+ - Record before/after evidence for meaningful optimizations.
653
+
654
+ Example commands:
655
+
656
+ ```bash
657
+ EXPLAIN ANALYZE <query>;
658
+ go test ./...
659
+ npm test
660
+ pytest
661
+ ```
662
+
663
+ ## Dialect Discipline
664
+
665
+ - Check dialect-specific behavior for upserts, JSON fields, generated columns, partial indexes, expression indexes, collations, time zones, and locking.
666
+ - Do not assume PostgreSQL behavior applies to MySQL or SQLite.
667
+ - Keep ORM abstractions honest by inspecting generated SQL when performance or correctness depends on it.
668
+
669
+ ## Review Checklist
670
+
671
+ - Are schema semantics explicit: keys, uniqueness, nullability, defaults?
672
+ - Is migration order safe for rolling deploys and retries?
673
+ - Could repeated runs corrupt data or duplicate work?
674
+ - Do queries avoid unnecessary columns, rows, and row-by-row loops?
675
+ - Are `NULL` and ordering semantics intentional?
676
+ - Are indexes justified by access paths and verified when practical?
677
+ - Are dialect-specific assumptions documented?
678
+ - Is performance evidence fresh before any performance claim?
679
+ ```
680
+
681
+ - [ ] **Step 4: Preserve and verify upstream SQL references**
682
+
683
+ Run:
684
+
685
+ ```bash
686
+ find skills/sql-style -maxdepth 2 -type f | sort
687
+ rg -n "references/" skills/sql-style/SKILL.md || true
688
+ ```
689
+
690
+ Expected: any local references mentioned by `SKILL.md` exist under `skills/sql-style/`. Do not leave broken upstream reference links.
691
+
692
+ - [ ] **Step 5: Update related skills to call `sql-style` instead of duplicating SQL discipline**
693
+
694
+ In `skills/kratos/SKILL.md`, find the section that contains:
695
+
696
+ ```markdown
697
+ - MySQL `CREATE TABLE` statements must include a table-level `COMMENT`.
698
+ - MySQL column definitions in `CREATE TABLE` or `ALTER TABLE ... ADD COLUMN` statements must include column-level `COMMENT`.
699
+ - When using Ent schema for MySQL tables, add `.Comment(...)` to fields that are persisted as columns.
700
+ ```
701
+
702
+ Keep those Kratos-specific rules in place. Immediately after them, add:
703
+
704
+ ```markdown
705
+ - Use `sql-style` for broader SQL/database discipline: schema semantics, migrations, indexes, dialect behavior, query plans, and performance-sensitive data access.
706
+ ```
707
+
708
+ Do not remove the existing Kratos SQL rules; `sql-style` complements them.
709
+
710
+ - [ ] **Step 6: Mirror `sql-style` and the changed `kratos` skill to the plugin**
711
+
712
+ Run:
713
+
714
+ ```bash
715
+ mkdir -p plugins/loopx/skills/sql-style
716
+ cp -R skills/sql-style/. plugins/loopx/skills/sql-style/
717
+ cp skills/kratos/SKILL.md plugins/loopx/skills/kratos/SKILL.md
718
+ ```
719
+
720
+ - [ ] **Step 7: Verify no accidental `sql-pro` entry was added to the bundled install surface**
721
+
722
+ Run:
723
+
724
+ ```bash
725
+ rg -n "'sql-pro'|\"sql-pro\"|skills/sql-pro|plugins/loopx/skills/sql-pro" src package.json skills/RESOLVER.md README.md README.zh-CN.md plugins/loopx || true
726
+ ```
727
+
728
+ Expected: no output. This does not require deleting useful SQL content inside other skills; it only prevents a second bundled `sql-pro` install entry.
729
+
730
+ - [ ] **Step 8: Run governance check**
731
+
732
+ Run:
733
+
734
+ ```bash
735
+ node scripts/verify-skills.mjs
736
+ ```
737
+
738
+ Expected: FAIL with the next missing skill, similar to:
739
+
740
+ ```text
741
+ AssertionError [ERR_ASSERTION]: cli-developer root SKILL.md missing
742
+ ```
743
+
744
+ - [ ] **Step 9: Commit**
745
+
746
+ Run:
747
+
748
+ ```bash
749
+ git add skills/sql-style plugins/loopx/skills/sql-style skills/kratos/SKILL.md plugins/loopx/skills/kratos/SKILL.md
750
+ git commit -m "feat: add fused sql style support lens"
751
+ ```
752
+
753
+ Expected: commit succeeds.
754
+
755
+ ## Task 6: Create `cli-developer` As A CLI Discipline Lens
756
+
757
+ **Files:**
758
+ - Create: `skills/cli-developer/SKILL.md`
759
+ - Create: `skills/cli-developer/references/*.md`
760
+ - Create: `plugins/loopx/skills/cli-developer/SKILL.md`
761
+ - Create: `plugins/loopx/skills/cli-developer/references/*.md`
762
+
763
+ - [ ] **Step 1: Verify the latest Jeffallan upstream source is available**
764
+
765
+ Run:
766
+
767
+ ```bash
768
+ test -f /tmp/jeffallan-claude-skills/skills/cli-developer/SKILL.md || git clone --depth 1 https://github.com/Jeffallan/claude-skills /tmp/jeffallan-claude-skills
769
+ find /tmp/jeffallan-claude-skills/skills/cli-developer -maxdepth 2 -type f | sort
770
+ ```
771
+
772
+ Expected: output includes `/tmp/jeffallan-claude-skills/skills/cli-developer/SKILL.md` and any upstream reference files.
773
+
774
+ - [ ] **Step 2: Copy upstream content into loopx**
775
+
776
+ ```bash
777
+ rm -rf skills/cli-developer plugins/loopx/skills/cli-developer
778
+ cp -R /tmp/jeffallan-claude-skills/skills/cli-developer skills/cli-developer
779
+ ```
780
+
781
+ Expected: `skills/cli-developer/SKILL.md` and any upstream `references/` files exist.
782
+
783
+ - [ ] **Step 3: Adapt the root skill to loopx support-lens semantics**
784
+
785
+ Edit `skills/cli-developer/SKILL.md`:
786
+
787
+ - Keep useful upstream CLI guidance around command hierarchy, argument parsing, prompts, progress indicators, shell completions, startup time, and cross-platform UX.
788
+ - Add loopx-specific discipline around human vs JSON output, stdout/stderr, non-interactive CI behavior, and installer/onboarding compatibility.
789
+ - Replace or add frontmatter so it has exactly:
790
+
791
+ ```yaml
792
+ ---
793
+ name: cli-developer
794
+ description: "Applies loopx CLI design discipline for commands, flags, human and JSON output, errors, interactivity, help text, shell behavior, and cross-platform UX. Not for replacing clarify, spec, implementation planning, code review, or workflow state transitions."
795
+ when_to_use: "cli-developer, CLI, command design, flags, JSON output, stdout stderr, interactive prompt, help text, shell completion, 命令行"
796
+ metadata:
797
+ version: "0.2.9"
798
+ ---
799
+ ```
800
+
801
+ - Add this `## loopx Boundary` section near the top:
802
+
803
+ ```markdown
804
+ ## loopx Boundary
805
+
806
+ `cli-developer` is a support lens, not a workflow state. Use it directly when the user asks for CLI design or implementation guidance, and use it from `spec`, `exec`, `review`, or `final-review` when changes affect command behavior.
807
+
808
+ This skill does not replace `clarify`, `spec`, `plan-to-exec`, `review`, or `final-review`. If product behavior, compatibility, migration, or public CLI contract decisions are unclear, route those decisions through `clarify` or `spec`.
809
+
810
+ For loopx itself, preserve the established rule that human output is default for first-use commands and complete runtime payloads require explicit `--json`.
811
+ ```
812
+
813
+ - Preserve upstream local reference links and ensure the referenced files exist.
814
+
815
+ - [ ] **Step 4: Mirror it to the plugin**
816
+
817
+ Run:
818
+
819
+ ```bash
820
+ mkdir -p plugins/loopx/skills/cli-developer
821
+ cp -R skills/cli-developer/. plugins/loopx/skills/cli-developer/
822
+ ```
823
+
824
+ - [ ] **Step 5: Run governance check**
825
+
826
+ Run:
827
+
828
+ ```bash
829
+ node scripts/verify-skills.mjs
830
+ ```
831
+
832
+ Expected: FAIL if README/design docs still omit the new support skills; otherwise PASS. If it passes here, continue to Task 7 anyway because public docs still need clearer product positioning.
833
+
834
+ - [ ] **Step 6: Commit**
835
+
836
+ Run:
837
+
838
+ ```bash
839
+ git add skills/cli-developer plugins/loopx/skills/cli-developer
840
+ git commit -m "feat: add cli developer support lens"
841
+ ```
842
+
843
+ Expected: commit succeeds.
844
+
845
+ ## Task 7: Update Public Skill Surface Documentation
846
+
847
+ **Files:**
848
+ - Modify: `README.md`
849
+ - Modify: `README.zh-CN.md`
850
+ - Modify: `docs/loopx/design/loopx-skill-suite-v1-design.md`
851
+ - Modify: `docs/loopx/plans/loopx-skill-suite-v1-implementation.md` only if it lists the exact v1 bundled skill set.
852
+
853
+ - [ ] **Step 1: Update English README support list**
854
+
855
+ In `README.md`, replace:
856
+
857
+ ```markdown
858
+ Support skills:
859
+
860
+ - `tdd`
861
+ - `debug`
862
+ - `verify`
863
+ - `go-style`
864
+ - `kratos`
865
+ ```
866
+
867
+ with:
868
+
869
+ ```markdown
870
+ Support skills:
871
+
872
+ - `tdd`
873
+ - `debug`
874
+ - `verify`
875
+ - `doc-readability`
876
+ - `requirement-analyzer`
877
+ - `go-style`
878
+ - `kratos`
879
+ - `api-designer`
880
+ - `architecture-designer`
881
+ - `sql-style`
882
+ - `cli-developer`
883
+ ```
884
+
885
+ Then add this paragraph immediately after the list:
886
+
887
+ ```markdown
888
+ Support skills are lenses, not workflow states. They can be invoked directly by users, or applied by workflow skills when relevant. `requirement-analyzer` and `doc-readability` assess source documents; `api-designer`, `architecture-designer`, `sql-style`, `cli-developer`, `go-style`, and `kratos` add domain discipline during design, execution, and review without changing the core flow.
889
+ ```
890
+
891
+ Update both uninstall command lists to include:
892
+
893
+ ```text
894
+ requirement-analyzer,api-designer,architecture-designer,sql-style,cli-developer
895
+ ```
896
+
897
+ inside the brace expansion.
898
+
899
+ - [ ] **Step 2: Update Chinese README support list**
900
+
901
+ In `README.zh-CN.md`, replace the auxiliary skills list with:
902
+
903
+ ```markdown
904
+ 辅助 skills:
905
+
906
+ - `tdd`
907
+ - `debug`
908
+ - `verify`
909
+ - `doc-readability`
910
+ - `requirement-analyzer`
911
+ - `go-style`
912
+ - `kratos`
913
+ - `api-designer`
914
+ - `architecture-designer`
915
+ - `sql-style`
916
+ - `cli-developer`
917
+ ```
918
+
919
+ Then add:
920
+
921
+ ```markdown
922
+ 辅助 skills 是 lens,不是 workflow state。用户可以直接调用它们,workflow skills 也可以在相关场景套用它们。`requirement-analyzer` 和 `doc-readability` 用于评估源文档;`api-designer`、`architecture-designer`、`sql-style`、`cli-developer`、`go-style` 和 `kratos` 在设计、执行、评审阶段提供领域纪律,但不改变核心流程。
923
+ ```
924
+
925
+ Update both uninstall command lists to include:
926
+
927
+ ```text
928
+ requirement-analyzer,api-designer,architecture-designer,sql-style,cli-developer
929
+ ```
930
+
931
+ inside the brace expansion.
932
+
933
+ - [ ] **Step 3: Update the v1 design document**
934
+
935
+ In `docs/loopx/design/loopx-skill-suite-v1-design.md`, add the five new skill names to the v1 product surface list:
936
+
937
+ ```markdown
938
+ - `requirement-analyzer`
939
+ - `api-designer`
940
+ - `architecture-designer`
941
+ - `sql-style`
942
+ - `cli-developer`
943
+ ```
944
+
945
+ Add a short section after the workflow description:
946
+
947
+ ```markdown
948
+ Support skills are installed and governed, but they do not create workflow states. `requirement-analyzer` behaves like `doc-readability`: it can analyze source documents and produce reports without advancing workflow state. `api-designer`, `architecture-designer`, `sql-style`, and `cli-developer` behave like `go-style`: they are discipline lenses applied directly or from workflow skills during design, execution, and review.
949
+
950
+ `sql-style` is the shared bundled SQL/database lens. It fuses selected SQL optimization, schema, migration, index, and dialect guidance with loopx workflow discipline. Related skills should call `sql-style` when SQL/database discipline is relevant; do not delete useful SQL guidance from those skills merely because `sql-style` exists.
951
+ ```
952
+
953
+ - [ ] **Step 4: Check for stale exact skill lists**
954
+
955
+ Run:
956
+
957
+ ```bash
958
+ rg -n "go-style|kratos|Support skills|辅助 skills|v1 product surface|skill suite" README.md README.zh-CN.md docs skills package.json src plugins
959
+ ```
960
+
961
+ Expected: any exact list of bundled skills includes the five new support skills or is intentionally scoped.
962
+
963
+ - [ ] **Step 5: Run governance check**
964
+
965
+ Run:
966
+
967
+ ```bash
968
+ node scripts/verify-skills.mjs
969
+ ```
970
+
971
+ Expected: PASS, ending with:
972
+
973
+ ```text
974
+ ok: verified 21 loopx bundled skills
975
+ ```
976
+
977
+ - [ ] **Step 6: Commit**
978
+
979
+ Run:
980
+
981
+ ```bash
982
+ git add README.md README.zh-CN.md docs/loopx/design/loopx-skill-suite-v1-design.md docs/loopx/plans/loopx-skill-suite-v1-implementation.md
983
+ git commit -m "docs: document support lens skill surface"
984
+ ```
985
+
986
+ Expected: commit succeeds. If `docs/loopx/plans/loopx-skill-suite-v1-implementation.md` did not change, omit it from `git add`.
987
+
988
+ ## Task 8: Add Or Update Tests For Install Surface
989
+
990
+ **Files:**
991
+ - Modify: existing install/governance tests under `test/`, `tests/`, or `src/` if present.
992
+ - Modify: `plugins/loopx/scripts/plugin-install.test.mjs` if it asserts exact installed skill directories indirectly.
993
+
994
+ - [ ] **Step 1: Locate existing tests**
995
+
996
+ Run:
997
+
998
+ ```bash
999
+ rg -n "LOOPX_BUNDLED_SKILLS|install-skills|verifyInstallState|packageJson.files|skills/" test tests src plugins scripts --glob '*.test.mjs' --glob '*.test.js' --glob '*.mjs'
1000
+ ```
1001
+
1002
+ Expected: find tests that derive expected skills from `LOOPX_BUNDLED_SKILLS`, especially `plugins/loopx/scripts/plugin-install.test.mjs`.
1003
+
1004
+ - [ ] **Step 2: Add explicit regression assertions only if needed**
1005
+
1006
+ If no test explicitly proves the new skill names are in `LOOPX_BUNDLED_SKILLS`, add this test to the nearest existing install-discovery test file. If no such file exists, create `src/install-discovery.test.mjs` and ensure the repo's `npm test` discovers it.
1007
+
1008
+ ```js
1009
+ import assert from 'node:assert/strict';
1010
+ import { test } from 'node:test';
1011
+
1012
+ import { LOOPX_BUNDLED_SKILLS } from './install-discovery.mjs';
1013
+
1014
+ test('bundled support lens skills are installed as part of loopx surface', () => {
1015
+ for (const skillName of [
1016
+ 'requirement-analyzer',
1017
+ 'api-designer',
1018
+ 'architecture-designer',
1019
+ 'sql-style',
1020
+ 'cli-developer',
1021
+ ]) {
1022
+ assert.equal(LOOPX_BUNDLED_SKILLS.includes(skillName), true, `${skillName} missing from bundled skills`);
1023
+ }
1024
+ });
1025
+ ```
1026
+
1027
+ If the repository already has a better exact-surface test, update that instead of adding a redundant file.
1028
+
1029
+ - [ ] **Step 3: Run the focused tests**
1030
+
1031
+ Run the relevant test command discovered in `package.json`. If the repo uses Node's test runner, run:
1032
+
1033
+ ```bash
1034
+ node --test src/install-discovery.test.mjs plugins/loopx/scripts/plugin-install.test.mjs
1035
+ ```
1036
+
1037
+ Expected: PASS.
1038
+
1039
+ - [ ] **Step 4: Run governance check**
1040
+
1041
+ Run:
1042
+
1043
+ ```bash
1044
+ node scripts/verify-skills.mjs
1045
+ ```
1046
+
1047
+ Expected: PASS with:
1048
+
1049
+ ```text
1050
+ ok: verified 21 loopx bundled skills
1051
+ ```
1052
+
1053
+ - [ ] **Step 5: Commit**
1054
+
1055
+ Run:
1056
+
1057
+ ```bash
1058
+ git add src plugins test tests scripts
1059
+ git commit -m "test: cover support lens skill installation"
1060
+ ```
1061
+
1062
+ Expected: commit succeeds. If no test files changed because existing tests already cover this, skip this commit and record that in the execution notes.
1063
+
1064
+ ## Task 9: Final Verification And Drift Check
1065
+
1066
+ **Files:**
1067
+ - No planned edits unless verification exposes a defect.
1068
+
1069
+ - [ ] **Step 1: Verify plugin mirrors are exact**
1070
+
1071
+ Run:
1072
+
1073
+ ```bash
1074
+ for skill in requirement-analyzer api-designer architecture-designer sql-style cli-developer; do
1075
+ diff -u "skills/$skill/SKILL.md" "plugins/loopx/skills/$skill/SKILL.md"
1076
+ done
1077
+ ```
1078
+
1079
+ Expected: no output.
1080
+
1081
+ - [ ] **Step 2: Verify no accidental `sql-pro` bundled install entry exists**
1082
+
1083
+ Run:
1084
+
1085
+ ```bash
1086
+ rg -n "'sql-pro'|\"sql-pro\"|skills/sql-pro|plugins/loopx/skills/sql-pro" src package.json skills/RESOLVER.md README.md README.zh-CN.md plugins/loopx || true
1087
+ ```
1088
+
1089
+ Expected: no output. This check only guards the install surface; it does not require deleting SQL/database guidance embedded in other skills.
1090
+
1091
+ - [ ] **Step 3: Run full tests**
1092
+
1093
+ Run:
1094
+
1095
+ ```bash
1096
+ npm test
1097
+ ```
1098
+
1099
+ Expected: PASS.
1100
+
1101
+ - [ ] **Step 4: Run deterministic skill governance**
1102
+
1103
+ Run:
1104
+
1105
+ ```bash
1106
+ node scripts/verify-skills.mjs
1107
+ ```
1108
+
1109
+ Expected:
1110
+
1111
+ ```text
1112
+ ok: verified 21 loopx bundled skills
1113
+ ```
1114
+
1115
+ - [ ] **Step 5: Inspect git diff**
1116
+
1117
+ Run:
1118
+
1119
+ ```bash
1120
+ git status --short
1121
+ git diff --stat HEAD
1122
+ ```
1123
+
1124
+ Expected: no unexpected files. Expected changed areas are skill files, plugin mirrors, installer surface, resolver, docs, and optional tests.
1125
+
1126
+ - [ ] **Step 6: Commit final fixes if needed**
1127
+
1128
+ If Task 9 produced fixes, commit them:
1129
+
1130
+ ```bash
1131
+ git add .
1132
+ git commit -m "chore: finalize support lens skill migration"
1133
+ ```
1134
+
1135
+ Expected: commit succeeds, or skip if there are no fixes.
1136
+
1137
+ ## Self-Review
1138
+
1139
+ - Spec coverage: The plan adds `requirement-analyzer`, `api-designer`, `architecture-designer`, fused `sql-style`, and `cli-developer`; keeps core workflow unchanged; documents support-lens semantics; updates installer, package, plugin mirror, resolver, README, and governance; sources `api-designer`, `architecture-designer`, `cli-developer`, and `sql-pro` from Jeffallan's latest upstream content at execution time.
1140
+ - Placeholder scan: No `TBD`, `TODO`, or vague implementation steps remain. `requirement-analyzer` content is explicit; Jeffallan-sourced skills have exact upstream fetch/copy/adaptation instructions so execution uses the latest upstream content.
1141
+ - Type consistency: Skill names match directory names, frontmatter names, resolver paths, package file entries, plugin mirror paths, and bundled list names.
1142
+ - Design drift: The plan does not introduce new workflow states. `sql-style` is the shared SQL/database lens; related skills keep useful local SQL rules and call `sql-style` for broader SQL/database discipline.
1143
+
1144
+ ## Execution Handoff
1145
+
1146
+ Plan complete and saved to `docs/loopx/plans/2026-06-15-support-lens-skills-migration.md`.
1147
+
1148
+ Two execution options:
1149
+
1150
+ 1. Subagent Exec (recommended) - dispatch a fresh subagent per task, review between tasks, fast iteration
1151
+ 2. Inline Execution - execute tasks in this session using exec, batch execution with checkpoints
1152
+
1153
+ Which approach?