@ai-content-space/loopx 0.2.8 → 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.
- package/README.md +26 -9
- package/README.zh-CN.md +26 -9
- package/docs/loopx/design/loopx-skill-suite-v1-design.md +12 -0
- package/docs/loopx/plans/2026-06-14-loopx-spec-memory-context-loading.md +948 -0
- package/docs/loopx/plans/2026-06-15-support-lens-skills-migration.md +1153 -0
- package/package.json +6 -1
- package/plugins/loopx/.codex-plugin/plugin.json +1 -1
- package/plugins/loopx/skills/api-designer/SKILL.md +232 -0
- package/plugins/loopx/skills/api-designer/references/error-handling.md +541 -0
- package/plugins/loopx/skills/api-designer/references/openapi.md +824 -0
- package/plugins/loopx/skills/api-designer/references/pagination.md +494 -0
- package/plugins/loopx/skills/api-designer/references/rest-patterns.md +335 -0
- package/plugins/loopx/skills/api-designer/references/versioning.md +391 -0
- package/plugins/loopx/skills/architecture-designer/SKILL.md +117 -0
- package/plugins/loopx/skills/architecture-designer/references/adr-template.md +116 -0
- package/plugins/loopx/skills/architecture-designer/references/architecture-patterns.md +346 -0
- package/plugins/loopx/skills/architecture-designer/references/database-selection.md +102 -0
- package/plugins/loopx/skills/architecture-designer/references/nfr-checklist.md +212 -0
- package/plugins/loopx/skills/architecture-designer/references/system-design.md +313 -0
- package/plugins/loopx/skills/clarify/SKILL.md +12 -1
- package/plugins/loopx/skills/cli-developer/SKILL.md +124 -0
- package/plugins/loopx/skills/cli-developer/references/design-patterns.md +221 -0
- package/plugins/loopx/skills/cli-developer/references/go-cli.md +540 -0
- package/plugins/loopx/skills/cli-developer/references/node-cli.md +383 -0
- package/plugins/loopx/skills/cli-developer/references/python-cli.md +422 -0
- package/plugins/loopx/skills/cli-developer/references/ux-patterns.md +448 -0
- package/plugins/loopx/skills/debug/SKILL.md +1 -1
- package/plugins/loopx/skills/doc-readability/SKILL.md +1 -1
- package/plugins/loopx/skills/exec/SKILL.md +1 -1
- package/plugins/loopx/skills/final-review/SKILL.md +1 -1
- package/plugins/loopx/skills/finish/SKILL.md +1 -1
- package/plugins/loopx/skills/fix-review/SKILL.md +1 -1
- package/plugins/loopx/skills/go-style/SKILL.md +1 -1
- package/plugins/loopx/skills/kratos/SKILL.md +2 -1
- package/plugins/loopx/skills/plan-to-exec/SKILL.md +12 -1
- package/plugins/loopx/skills/refactor-plan/SKILL.md +1 -1
- package/plugins/loopx/skills/requirement-analyzer/SKILL.md +161 -0
- package/plugins/loopx/skills/requirement-analyzer/references/example-reports.md +170 -0
- package/plugins/loopx/skills/requirement-analyzer/references/prd-gap-checklist.md +167 -0
- package/plugins/loopx/skills/requirement-analyzer/references/readiness-rubric.md +70 -0
- package/plugins/loopx/skills/requirement-analyzer/references/report-template.md +83 -0
- package/plugins/loopx/skills/review/SKILL.md +1 -1
- package/plugins/loopx/skills/spec/SKILL.md +12 -1
- package/plugins/loopx/skills/sql-style/SKILL.md +108 -0
- package/plugins/loopx/skills/sql-style/references/database-design.md +402 -0
- package/plugins/loopx/skills/sql-style/references/dialect-differences.md +419 -0
- package/plugins/loopx/skills/sql-style/references/optimization.md +384 -0
- package/plugins/loopx/skills/sql-style/references/query-patterns.md +285 -0
- package/plugins/loopx/skills/sql-style/references/window-functions.md +328 -0
- package/plugins/loopx/skills/subagent-exec/SKILL.md +1 -1
- package/plugins/loopx/skills/tdd/SKILL.md +1 -1
- package/plugins/loopx/skills/verify/SKILL.md +1 -1
- package/scripts/verify-skills.mjs +0 -2
- package/skills/RESOLVER.md +8 -1
- package/skills/api-designer/SKILL.md +232 -0
- package/skills/api-designer/references/error-handling.md +541 -0
- package/skills/api-designer/references/openapi.md +824 -0
- package/skills/api-designer/references/pagination.md +494 -0
- package/skills/api-designer/references/rest-patterns.md +335 -0
- package/skills/api-designer/references/versioning.md +391 -0
- package/skills/architecture-designer/SKILL.md +117 -0
- package/skills/architecture-designer/references/adr-template.md +116 -0
- package/skills/architecture-designer/references/architecture-patterns.md +346 -0
- package/skills/architecture-designer/references/database-selection.md +102 -0
- package/skills/architecture-designer/references/nfr-checklist.md +212 -0
- package/skills/architecture-designer/references/system-design.md +313 -0
- package/skills/clarify/SKILL.md +12 -1
- package/skills/cli-developer/SKILL.md +124 -0
- package/skills/cli-developer/references/design-patterns.md +221 -0
- package/skills/cli-developer/references/go-cli.md +540 -0
- package/skills/cli-developer/references/node-cli.md +383 -0
- package/skills/cli-developer/references/python-cli.md +422 -0
- package/skills/cli-developer/references/ux-patterns.md +448 -0
- package/skills/debug/SKILL.md +1 -1
- package/skills/doc-readability/SKILL.md +1 -1
- package/skills/exec/SKILL.md +1 -1
- package/skills/final-review/SKILL.md +1 -1
- package/skills/finish/SKILL.md +1 -1
- package/skills/fix-review/SKILL.md +1 -1
- package/skills/go-style/SKILL.md +1 -1
- package/skills/kratos/SKILL.md +2 -1
- package/skills/plan-to-exec/SKILL.md +12 -1
- package/skills/refactor-plan/SKILL.md +1 -1
- package/skills/requirement-analyzer/SKILL.md +161 -0
- package/skills/requirement-analyzer/references/example-reports.md +170 -0
- package/skills/requirement-analyzer/references/prd-gap-checklist.md +167 -0
- package/skills/requirement-analyzer/references/readiness-rubric.md +70 -0
- package/skills/requirement-analyzer/references/report-template.md +83 -0
- package/skills/review/SKILL.md +1 -1
- package/skills/spec/SKILL.md +12 -1
- package/skills/sql-style/SKILL.md +108 -0
- package/skills/sql-style/references/database-design.md +402 -0
- package/skills/sql-style/references/dialect-differences.md +419 -0
- package/skills/sql-style/references/optimization.md +384 -0
- package/skills/sql-style/references/query-patterns.md +285 -0
- package/skills/sql-style/references/window-functions.md +328 -0
- package/skills/subagent-exec/SKILL.md +1 -1
- package/skills/tdd/SKILL.md +1 -1
- package/skills/verify/SKILL.md +1 -1
- package/src/cli.mjs +4 -1
- package/src/context-manifest.mjs +51 -1
- package/src/install-discovery.mjs +114 -0
- package/src/loopx-context-artifacts.mjs +114 -0
- package/src/project-discovery.mjs +1 -0
- package/src/workflow.mjs +47 -3
|
@@ -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?
|