User Input
$ARGUMENTS
You MUST consider the user input before proceeding (if not empty).
Purpose
This is the issue / bug-resolution counterpart to /speckit-specify. It produces a
defect-framed specification (problem, reproduction, root-cause hypothesis, fix scope,
regression risk, acceptance) using the dotCMS issue template, and then feeds the normal
/speckit-plan → /speckit-tasks → /speckit-implement → /speckit-converge flow — so the plan phase's
Legacy Impact and ADR Alignment gates still apply.
Use /speckit-specify instead when the work is a NEW FEATURE rather than fixing existing
behavior.
Outline
Create the feature directory (reuse the standard Spec-Kit script — do NOT reimplement
numbering):
.specify/scripts/bash/create-new-feature.sh --json "<short issue description>"
Parse the JSON for BRANCH_NAME and SPEC_FILE. If the user explicitly provided a
feature directory or branch name, honor it.
Swap in the issue-resolution template. The script above seeds SPEC_FILE with the
feature template; overwrite it with the issue template (respecting the override stack):
- If
.specify/templates/overrides/spec-issue-template.md exists, copy that over SPEC_FILE.
- Otherwise copy
.specify/templates/spec-issue-template.md over SPEC_FILE.
Load .specify/memory/constitution.md for project principles (legacy-awareness, ADR
rules) — they inform how you scope the fix.
Fill the issue spec at SPEC_FILE, preserving section order and headings, using the
bug report / issue text in the user input:
- Parse the report. If empty: ERROR "No issue description provided".
- Problem Statement + severity/impact.
- Reproduction: environment, numbered steps, expected vs actual, reproducibility.
If the report lacks repro detail, mark with
[NEEDS CLARIFICATION: ...] (max 3 total).
- Scope of Investigation: name the affected dotCMS area; note suspected surface
(modern
com.dotcms.* vs legacy com.dotmarketing.*) as a best guess — the plan
confirms it. Do NOT do code-level root-causing here beyond a hypothesis.
- Root-Cause Hypothesis: current best theory (may be refined/replaced in planning).
- Fix Scope & Non-Goals: keep the fix bounded; list explicit non-goals to avoid
scope creep and unintended legacy rewrites.
- Regression Risk: blast radius, backward compatibility, data considerations.
- Acceptance & Verification: measurable ACs tied to the reproduction, plus the
specific test(s) to add/run.
Quality validation. Create a checklist at
<feature-dir>/checklists/requirements.md and validate the spec against it:
# Issue Spec Quality Checklist: [ISSUE TITLE]
## Content Quality
- [ ] Problem and impact are clear to a non-author
- [ ] Reproduction steps are concrete and ordered
- [ ] Expected vs actual behavior are unambiguous
## Completeness
- [ ] Affected area / suspected surface identified
- [ ] Fix scope bounded with explicit non-goals
- [ ] Regression risk (blast radius, back-compat, data) assessed
- [ ] Acceptance criteria are measurable and tied to the repro
- [ ] Verification method (specific test/steps) named
- [ ] No unresolved [NEEDS CLARIFICATION] markers (or ≤3, most critical only)
## Readiness
- [ ] Ready for /speckit-plan (Legacy Impact + ADR Alignment will run there)
If items fail (excluding [NEEDS CLARIFICATION]), update the spec and re-validate (max 3
iterations). If [NEEDS CLARIFICATION] markers remain, present up to 3 numbered questions
with suggested-answer tables and wait for the user's response.
Report the branch, the issue SPEC_FILE path, and any open clarifications. Recommend
next step: /speckit-plan (which will consult ADRs and assess legacy impact).
Guardrails
- This skill scopes a fix; it does not write code.
/speckit-implement does that later.
- Never create, edit, or commit an ADR (here or in
dotCMS/platform-adrs). If the fix
implies a new architectural decision, it will be captured as a proposal in the plan's
"Proposed ADRs" section. ADRs are authored only in dotCMS/platform-adrs via new-adr.sh.
1---2name: speckit-specify-fix3description: Create an issue/bug-resolution specification (defect-framed) from a bug report or issue description. dotCMS variant of /speckit-specify for fixes.4---56## User Input78```text9$ARGUMENTS10```1112You **MUST** consider the user input before proceeding (if not empty).1314## Purpose1516This is the **issue / bug-resolution** counterpart to `/speckit-specify`. It produces a17defect-framed specification (problem, reproduction, root-cause hypothesis, fix scope,18regression risk, acceptance) using the dotCMS issue template, and then feeds the normal19`/speckit-plan` → `/speckit-tasks` → `/speckit-implement` → `/speckit-converge` flow — so the plan phase's20**Legacy Impact** and **ADR Alignment** gates still apply.2122Use `/speckit-specify` instead when the work is a NEW FEATURE rather than fixing existing23behavior.2425## Outline26271. **Create the feature directory** (reuse the standard Spec-Kit script — do NOT reimplement28 numbering):2930 ```bash31 .specify/scripts/bash/create-new-feature.sh --json "<short issue description>"32 ```3334 Parse the JSON for `BRANCH_NAME` and `SPEC_FILE`. If the user explicitly provided a35 feature directory or branch name, honor it.36372. **Swap in the issue-resolution template**. The script above seeds `SPEC_FILE` with the38 feature template; overwrite it with the issue template (respecting the override stack):3940 - If `.specify/templates/overrides/spec-issue-template.md` exists, copy that over `SPEC_FILE`.41 - Otherwise copy `.specify/templates/spec-issue-template.md` over `SPEC_FILE`.42433. **Load `.specify/memory/constitution.md`** for project principles (legacy-awareness, ADR44 rules) — they inform how you scope the fix.45464. **Fill the issue spec** at `SPEC_FILE`, preserving section order and headings, using the47 bug report / issue text in the user input:48 1. Parse the report. If empty: ERROR "No issue description provided".49 2. **Problem Statement** + severity/impact.50 3. **Reproduction**: environment, numbered steps, expected vs actual, reproducibility.51 If the report lacks repro detail, mark with `[NEEDS CLARIFICATION: ...]` (max 3 total).52 4. **Scope of Investigation**: name the affected dotCMS area; note suspected surface53 (modern `com.dotcms.*` vs legacy `com.dotmarketing.*`) as a best guess — the plan54 confirms it. Do NOT do code-level root-causing here beyond a hypothesis.55 5. **Root-Cause Hypothesis**: current best theory (may be refined/replaced in planning).56 6. **Fix Scope & Non-Goals**: keep the fix bounded; list explicit non-goals to avoid57 scope creep and unintended legacy rewrites.58 7. **Regression Risk**: blast radius, backward compatibility, data considerations.59 8. **Acceptance & Verification**: measurable ACs tied to the reproduction, plus the60 specific test(s) to add/run.61625. **Quality validation**. Create a checklist at63 `<feature-dir>/checklists/requirements.md` and validate the spec against it:6465 ```markdown66 # Issue Spec Quality Checklist: [ISSUE TITLE]6768 ## Content Quality69 - [ ] Problem and impact are clear to a non-author70 - [ ] Reproduction steps are concrete and ordered71 - [ ] Expected vs actual behavior are unambiguous7273 ## Completeness74 - [ ] Affected area / suspected surface identified75 - [ ] Fix scope bounded with explicit non-goals76 - [ ] Regression risk (blast radius, back-compat, data) assessed77 - [ ] Acceptance criteria are measurable and tied to the repro78 - [ ] Verification method (specific test/steps) named79 - [ ] No unresolved [NEEDS CLARIFICATION] markers (or ≤3, most critical only)8081 ## Readiness82 - [ ] Ready for /speckit-plan (Legacy Impact + ADR Alignment will run there)83 ```8485 If items fail (excluding `[NEEDS CLARIFICATION]`), update the spec and re-validate (max 386 iterations). If `[NEEDS CLARIFICATION]` markers remain, present up to 3 numbered questions87 with suggested-answer tables and wait for the user's response.88896. **Report** the branch, the issue `SPEC_FILE` path, and any open clarifications. Recommend90 next step: `/speckit-plan` (which will consult ADRs and assess legacy impact).9192## Guardrails9394- This skill scopes a fix; it does not write code. `/speckit-implement` does that later.95- **Never create, edit, or commit an ADR** (here or in `dotCMS/platform-adrs`). If the fix96 implies a new architectural decision, it will be captured as a *proposal* in the plan's97 "Proposed ADRs" section. ADRs are authored only in `dotCMS/platform-adrs` via `new-adr.sh`.