Skip to content

Commit 45ece28

Browse files
authored
chore(format): replace prettier with oxfmt (#2427)
1 parent 5e92d00 commit 45ece28

29 files changed

Lines changed: 274 additions & 197 deletions

File tree

.claude/skills/speckit-analyze/SKILL.md

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,6 @@ You **MUST** consider the user input before proceeding (if not empty).
3131
- If the hook defines a non-empty `condition`, skip the hook and leave condition evaluation to the HookExecutor implementation
3232
- When constructing slash commands from hook command names, replace dots (`.`) with hyphens (`-`). For example, `speckit.git.commit``/speckit-git-commit`.
3333
- For each executable hook, output the following based on its `optional` flag:
34-
3534
- **Optional hook** (`optional: true`):
3635

3736
```
@@ -223,7 +222,6 @@ After reporting, check if `.specify/extensions.yml` exists in the project root.
223222
- If the hook defines a non-empty `condition`, skip the hook and leave condition evaluation to the HookExecutor implementation
224223
- When constructing slash commands from hook command names, replace dots (`.`) with hyphens (`-`). For example, `speckit.git.commit` → `/speckit-git-commit`.
225224
- For each executable hook, output the following based on its `optional` flag:
226-
227225
- **Optional hook** (`optional: true`):
228226
229227
```

.claude/skills/speckit-checklist/SKILL.md

Lines changed: 0 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,6 @@ You **MUST** consider the user input before proceeding (if not empty).
5252
- If the hook defines a non-empty `condition`, skip the hook and leave condition evaluation to the HookExecutor implementation
5353
- When constructing slash commands from hook command names, replace dots (`.`) with hyphens (`-`). For example, `speckit.git.commit``/speckit-git-commit`.
5454
- For each executable hook, output the following based on its `optional` flag:
55-
5655
- **Optional hook** (`optional: true`):
5756

5857
```
@@ -83,19 +82,16 @@ You **MUST** consider the user input before proceeding (if not empty).
8382
## Execution Steps
8483
8584
1. **Setup**: Run `.specify/scripts/bash/check-prerequisites.sh --json` from repo root and parse JSON for FEATURE_DIR and AVAILABLE_DOCS list.
86-
8785
- All file paths must be absolute.
8886
- For single quotes in args like "I'm Groot", use escape syntax: e.g 'I'\''m Groot' (or double-quote if possible: "I'm Groot").
8987
9088
2. **Clarify intent (dynamic)**: Derive up to THREE initial contextual clarifying questions (no pre-baked catalog). They MUST:
91-
9289
- Be generated from the user's phrasing + extracted signals from spec/plan/tasks
9390
- Only ask about information that materially changes checklist content
9491
- Be skipped individually if already unambiguous in `$ARGUMENTS`
9592
- Prefer precision over breadth
9693
9794
Generation algorithm:
98-
9995
1. Extract signals: feature domain keywords (e.g., auth, latency, UX, API), risk indicators ("critical", "must", "compliance"), stakeholder hints ("QA", "review", "security team"), and explicit deliverables ("a11y", "rollback", "contracts").
10096
2. Cluster signals into candidate focus areas (max 4) ranked by relevance.
10197
3. Identify probable audience & timing (author, reviewer, QA, release) if not explicit.
@@ -109,42 +105,36 @@ You **MUST** consider the user input before proceeding (if not empty).
109105
- Scenario class gap (e.g., "No recovery flows detected—are rollback / partial failure paths in scope?")
110106
111107
Question formatting rules:
112-
113108
- If presenting options, generate a compact table with columns: Option | Candidate | Why It Matters
114109
- Limit to A–E options maximum; omit table if a free-form answer is clearer
115110
- Never ask the user to restate what they already said
116111
- Avoid speculative categories (no hallucination). If uncertain, ask explicitly: "Confirm whether X belongs in scope."
117112
118113
Defaults when interaction impossible:
119-
120114
- Depth: Standard
121115
- Audience: Reviewer (PR) if code-related; Author otherwise
122116
- Focus: Top 2 relevance clusters
123117
124118
Output the questions (label Q1/Q2/Q3). After answers: if ≥2 scenario classes (Alternate / Exception / Recovery / Non-Functional domain) remain unclear, you MAY ask up to TWO more targeted follow‑ups (Q4/Q5) with a one-line justification each (e.g., "Unresolved recovery path risk"). Do not exceed five total questions. Skip escalation if user explicitly declines more.
125119
126120
3. **Understand user request**: Combine `$ARGUMENTS` + clarifying answers:
127-
128121
- Derive checklist theme (e.g., security, review, deploy, ux)
129122
- Consolidate explicit must-have items mentioned by user
130123
- Map focus selections to category scaffolding
131124
- Infer any missing context from spec/plan/tasks (do NOT hallucinate)
132125
133126
4. **Load feature context**: Read from FEATURE_DIR:
134-
135127
- spec.md: Feature requirements and scope
136128
- plan.md (if exists): Technical details, dependencies
137129
- tasks.md (if exists): Implementation tasks
138130
139131
**Context Loading Strategy**:
140-
141132
- Load only necessary portions relevant to active focus areas (avoid full-file dumping)
142133
- Prefer summarizing long sections into concise scenario/requirement bullets
143134
- Use progressive disclosure: add follow-on retrieval only if gaps detected
144135
- If source docs are large, generate interim summary items instead of embedding raw text
145136
146137
5. **Generate checklist** - Create "Unit Tests for Requirements":
147-
148138
- Create `FEATURE_DIR/checklists/` directory if it doesn't exist
149139
- Generate unique checklist filename:
150140
- Use short, descriptive name based on domain (e.g., `ux.md`, `api.md`, `security.md`)
@@ -156,15 +146,13 @@ You **MUST** consider the user input before proceeding (if not empty).
156146
157147
**CORE PRINCIPLE - Test the Requirements, Not the Implementation**:
158148
Every checklist item MUST evaluate the REQUIREMENTS THEMSELVES for:
159-
160149
- **Completeness**: Are all necessary requirements present?
161150
- **Clarity**: Are requirements unambiguous and specific?
162151
- **Consistency**: Do requirements align with each other?
163152
- **Measurability**: Can requirements be objectively verified?
164153
- **Coverage**: Are all scenarios/edge cases addressed?
165154
166155
**Category Structure** - Group items by requirement quality dimensions:
167-
168156
- **Requirement Completeness** (Are all necessary requirements documented?)
169157
- **Requirement Clarity** (Are requirements specific and unambiguous?)
170158
- **Requirement Consistency** (Do requirements align without conflicts?)
@@ -178,13 +166,11 @@ You **MUST** consider the user input before proceeding (if not empty).
178166
**HOW TO WRITE CHECKLIST ITEMS - "Unit Tests for English"**:
179167
180168
❌ **WRONG** (Testing implementation):
181-
182169
- "Verify landing page displays 3 episode cards"
183170
- "Test hover states work on desktop"
184171
- "Confirm logo click navigates home"
185172
186173
✅ **CORRECT** (Testing requirements quality):
187-
188174
- "Are the exact number and layout of featured episodes specified?" [Completeness]
189175
- "Is 'prominent display' quantified with specific sizing/positioning?" [Clarity]
190176
- "Are hover state requirements consistent across all interactive elements?" [Consistency]
@@ -195,7 +181,6 @@ You **MUST** consider the user input before proceeding (if not empty).
195181
196182
**ITEM STRUCTURE**:
197183
Each item should follow this pattern:
198-
199184
- Question format asking about requirement quality
200185
- Focus on what's WRITTEN (or not written) in the spec/plan
201186
- Include quality dimension in brackets [Completeness/Clarity/Consistency/etc.]
@@ -205,63 +190,53 @@ You **MUST** consider the user input before proceeding (if not empty).
205190
**EXAMPLES BY QUALITY DIMENSION**:
206191
207192
Completeness:
208-
209193
- "Are error handling requirements defined for all API failure modes? [Gap]"
210194
- "Are accessibility requirements specified for all interactive elements? [Completeness]"
211195
- "Are mobile breakpoint requirements defined for responsive layouts? [Gap]"
212196
213197
Clarity:
214-
215198
- "Is 'fast loading' quantified with specific timing thresholds? [Clarity, Spec §NFR-2]"
216199
- "Are 'related episodes' selection criteria explicitly defined? [Clarity, Spec §FR-5]"
217200
- "Is 'prominent' defined with measurable visual properties? [Ambiguity, Spec §FR-4]"
218201
219202
Consistency:
220-
221203
- "Do navigation requirements align across all pages? [Consistency, Spec §FR-10]"
222204
- "Are card component requirements consistent between landing and detail pages? [Consistency]"
223205
224206
Coverage:
225-
226207
- "Are requirements defined for zero-state scenarios (no episodes)? [Coverage, Edge Case]"
227208
- "Are concurrent user interaction scenarios addressed? [Coverage, Gap]"
228209
- "Are requirements specified for partial data loading failures? [Coverage, Exception Flow]"
229210
230211
Measurability:
231-
232212
- "Are visual hierarchy requirements measurable/testable? [Acceptance Criteria, Spec §FR-1]"
233213
- "Can 'balanced visual weight' be objectively verified? [Measurability, Spec §FR-2]"
234214
235215
**Scenario Classification & Coverage** (Requirements Quality Focus):
236-
237216
- Check if requirements exist for: Primary, Alternate, Exception/Error, Recovery, Non-Functional scenarios
238217
- For each scenario class, ask: "Are [scenario type] requirements complete, clear, and consistent?"
239218
- If scenario class missing: "Are [scenario type] requirements intentionally excluded or missing? [Gap]"
240219
- Include resilience/rollback when state mutation occurs: "Are rollback requirements defined for migration failures? [Gap]"
241220
242221
**Traceability Requirements**:
243-
244222
- MINIMUM: ≥80% of items MUST include at least one traceability reference
245223
- Each item should reference: spec section `[Spec §X.Y]`, or use markers: `[Gap]`, `[Ambiguity]`, `[Conflict]`, `[Assumption]`
246224
- If no ID system exists: "Is a requirement & acceptance criteria ID scheme established? [Traceability]"
247225
248226
**Surface & Resolve Issues** (Requirements Quality Problems):
249227
Ask questions about the requirements themselves:
250-
251228
- Ambiguities: "Is the term 'fast' quantified with specific metrics? [Ambiguity, Spec §NFR-1]"
252229
- Conflicts: "Do navigation requirements conflict between §FR-10 and §FR-10a? [Conflict]"
253230
- Assumptions: "Is the assumption of 'always available podcast API' validated? [Assumption]"
254231
- Dependencies: "Are external podcast API requirements documented? [Dependency, Gap]"
255232
- Missing definitions: "Is 'visual hierarchy' defined with measurable criteria? [Gap]"
256233
257234
**Content Consolidation**:
258-
259235
- Soft cap: If raw candidate items > 40, prioritize by risk/impact
260236
- Merge near-duplicates checking the same requirement aspect
261237
- If >5 low-impact edge cases, create one item: "Are edge cases X, Y, Z addressed in requirements? [Coverage]"
262238
263239
**🚫 ABSOLUTELY PROHIBITED** - These make it an implementation test, not a requirements test:
264-
265240
- ❌ Any item starting with "Verify", "Test", "Confirm", "Check" + implementation behavior
266241
- ❌ References to code execution, user actions, system behavior
267242
- ❌ "Displays correctly", "works properly", "functions as expected"
@@ -270,7 +245,6 @@ You **MUST** consider the user input before proceeding (if not empty).
270245
- ❌ Implementation details (frameworks, APIs, algorithms)
271246
272247
**✅ REQUIRED PATTERNS** - These test requirements quality:
273-
274248
- ✅ "Are [requirement type] defined/specified/documented for [scenario]?"
275249
- ✅ "Is [vague term] quantified/clarified with specific criteria?"
276250
- ✅ "Are requirements consistent between [section A] and [section B]?"
@@ -381,7 +355,6 @@ Check if `.specify/extensions.yml` exists in the project root.
381355
- If the hook defines a non-empty `condition`, skip the hook and leave condition evaluation to the HookExecutor implementation
382356
- When constructing slash commands from hook command names, replace dots (`.`) with hyphens (`-`). For example, `speckit.git.commit``/speckit-git-commit`.
383357
- For each executable hook, output the following based on its `optional` flag:
384-
385358
- **Optional hook** (`optional: true`):
386359

387360
```

.claude/skills/speckit-clarify/SKILL.md

Lines changed: 0 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,6 @@ You **MUST** consider the user input before proceeding (if not empty).
3131
- If the hook defines a non-empty `condition`, skip the hook and leave condition evaluation to the HookExecutor implementation
3232
- When constructing slash commands from hook command names, replace dots (`.`) with hyphens (`-`). For example, `speckit.git.commit``/speckit-git-commit`.
3333
- For each executable hook, output the following based on its `optional` flag:
34-
3534
- **Optional hook** (`optional: true`):
3635

3736
```
@@ -68,7 +67,6 @@ Note: This clarification workflow is expected to run (and be completed) BEFORE i
6867
Execution steps:
6968
7069
1. Run `.specify/scripts/bash/check-prerequisites.sh --json --paths-only` from repo root **once** (combined `--json --paths-only` mode / `-Json -PathsOnly`). Parse minimal JSON payload fields:
71-
7270
- `FEATURE_DIR`
7371
- `FEATURE_SPEC`
7472
- (Optionally capture `IMPL_PLAN`, `TASKS` for future chained flows.)
@@ -78,26 +76,22 @@ Execution steps:
7876
2. Load the current spec file. Perform a structured ambiguity & coverage scan using this taxonomy. For each category, mark status: Clear / Partial / Missing. Produce an internal coverage map used for prioritization (do not output raw map unless no questions will be asked).
7977
8078
Functional Scope & Behavior:
81-
8279
- Core user goals & success criteria
8380
- Explicit out-of-scope declarations
8481
- User roles / personas differentiation
8582
8683
Domain & Data Model:
87-
8884
- Entities, attributes, relationships
8985
- Identity & uniqueness rules
9086
- Lifecycle/state transitions
9187
- Data volume / scale assumptions
9288
9389
Interaction & UX Flow:
94-
9590
- Critical user journeys / sequences
9691
- Error/empty/loading states
9792
- Accessibility or localization notes
9893
9994
Non-Functional Quality Attributes:
100-
10195
- Performance (latency, throughput targets)
10296
- Scalability (horizontal/vertical, limits)
10397
- Reliability & availability (uptime, recovery expectations)
@@ -106,44 +100,36 @@ Execution steps:
106100
- Compliance / regulatory constraints (if any)
107101
108102
Integration & External Dependencies:
109-
110103
- External services/APIs and failure modes
111104
- Data import/export formats
112105
- Protocol/versioning assumptions
113106
114107
Edge Cases & Failure Handling:
115-
116108
- Negative scenarios
117109
- Rate limiting / throttling
118110
- Conflict resolution (e.g., concurrent edits)
119111
120112
Constraints & Tradeoffs:
121-
122113
- Technical constraints (language, storage, hosting)
123114
- Explicit tradeoffs or rejected alternatives
124115
125116
Terminology & Consistency:
126-
127117
- Canonical glossary terms
128118
- Avoided synonyms / deprecated terms
129119
130120
Completion Signals:
131-
132121
- Acceptance criteria testability
133122
- Measurable Definition of Done style indicators
134123
135124
Misc / Placeholders:
136-
137125
- TODO markers / unresolved decisions
138126
- Ambiguous adjectives ("robust", "intuitive") lacking quantification
139127
140128
For each category with Partial or Missing status, add a candidate question opportunity unless:
141-
142129
- Clarification would not materially change implementation or validation strategy
143130
- Information is better deferred to planning phase (note internally)
144131
145132
3. Generate (internally) a prioritized queue of candidate clarification questions (maximum 5). Do NOT output them all at once. Apply these constraints:
146-
147133
- Maximum of 5 total questions across the whole session.
148134
- Each question must be answerable with EITHER:
149135
- A short multiple‑choice selection (2–5 distinct, mutually exclusive options), OR
@@ -155,10 +141,8 @@ Execution steps:
155141
- If more than 5 categories remain unresolved, select the top 5 by (Impact \* Uncertainty) heuristic.
156142
157143
4. Sequential questioning loop (interactive):
158-
159144
- Present EXACTLY ONE question at a time.
160145
- For multiple‑choice questions:
161-
162146
- **Analyze all options** and determine the **most suitable option** based on:
163147
- Best practices for the project type
164148
- Common patterns in similar implementations
@@ -174,7 +158,6 @@ Execution steps:
174158
| B | <Option B description> |
175159
| C | <Option C description> (add D/E as needed up to 5) |
176160
| Short | Provide a different short answer (<=5 words) (Include only if free-form alternative is appropriate) |
177-
178161
- After the table, add: `You can reply with the option letter (e.g., "A"), accept the recommendation by saying "yes" or "recommended", or provide your own short answer.`
179162
180163
- For short‑answer style (no meaningful discrete options):
@@ -194,7 +177,6 @@ Execution steps:
194177
- If no valid questions exist at start, immediately report no critical ambiguities.
195178
196179
5. Integration after EACH accepted answer (incremental update approach):
197-
198180
- Maintain in-memory representation of the spec (loaded once at start) plus the raw file contents.
199181
- For the first integrated answer in this session:
200182
- Ensure a `## Clarifications` section exists (create it just after the highest-level contextual/overview section per the spec template if missing).
@@ -213,7 +195,6 @@ Execution steps:
213195
- Keep each inserted clarification minimal and testable (avoid narrative drift).
214196
215197
6. Validation (performed after EACH write plus final pass):
216-
217198
- Clarifications session contains exactly one bullet per accepted answer (no duplicates).
218199
- Total asked (accepted) questions ≤ 5.
219200
- Updated sections contain no lingering vague placeholders the new answer was meant to resolve.
@@ -256,7 +237,6 @@ Check if `.specify/extensions.yml` exists in the project root.
256237
- If the hook defines a non-empty `condition`, skip the hook and leave condition evaluation to the HookExecutor implementation
257238
- When constructing slash commands from hook command names, replace dots (`.`) with hyphens (`-`). For example, `speckit.git.commit` → `/speckit-git-commit`.
258239
- For each executable hook, output the following based on its `optional` flag:
259-
260240
- **Optional hook** (`optional: true`):
261241
262242
```

0 commit comments

Comments
 (0)