@lousy-agents/cli 5.14.9 → 5.15.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/api/copilot-with-fastify/.agents/skills/feature-to-plan/SKILL.md +164 -0
- package/api/copilot-with-fastify/.agents/skills/feature-to-plan/references/interactive-flow.md +122 -0
- package/api/copilot-with-fastify/.agents/skills/feature-to-plan/references/spec-format.md +434 -0
- package/api/copilot-with-fastify/.devcontainer/devcontainer.json +2 -2
- package/api/copilot-with-fastify/.github/ISSUE_TEMPLATE/feature-to-spec.yml +18 -10
- package/api/copilot-with-fastify/.github/instructions/spec.instructions.md +5 -2
- package/api/copilot-with-fastify/.nvmrc +1 -1
- package/api/copilot-with-fastify/biome.template.json +1 -1
- package/api/copilot-with-fastify/package-lock.json +340 -285
- package/api/copilot-with-fastify/package.json +7 -7
- package/cli/copilot-with-citty/.agents/skills/feature-to-plan/SKILL.md +164 -0
- package/cli/copilot-with-citty/.agents/skills/feature-to-plan/references/interactive-flow.md +122 -0
- package/cli/copilot-with-citty/.agents/skills/feature-to-plan/references/spec-format.md +434 -0
- package/cli/copilot-with-citty/.devcontainer/devcontainer.json +2 -2
- package/cli/copilot-with-citty/.github/ISSUE_TEMPLATE/feature-to-spec.yml +18 -10
- package/cli/copilot-with-citty/.nvmrc +1 -1
- package/cli/copilot-with-citty/biome.template.json +1 -1
- package/cli/copilot-with-citty/package.json +5 -5
- package/dist/116.js +4 -3
- package/dist/316.js +4 -3
- package/dist/475.js +2 -2
- package/dist/653.js +13 -10
- package/dist/index.js +604 -360
- package/package.json +1 -1
- package/ui/copilot-with-react/.agents/skills/feature-to-plan/SKILL.md +164 -0
- package/ui/copilot-with-react/.agents/skills/feature-to-plan/references/interactive-flow.md +122 -0
- package/ui/copilot-with-react/.agents/skills/feature-to-plan/references/spec-format.md +434 -0
- package/ui/copilot-with-react/.devcontainer/devcontainer.json +2 -2
- package/ui/copilot-with-react/.github/ISSUE_TEMPLATE/feature-to-spec.yml +18 -10
- package/ui/copilot-with-react/.github/instructions/spec.instructions.md +5 -2
- package/ui/copilot-with-react/.nvmrc +1 -1
- package/ui/copilot-with-react/biome.template.json +1 -1
- package/ui/copilot-with-react/package.json +11 -11
|
@@ -28,16 +28,16 @@
|
|
|
28
28
|
"zod": "4.4.3"
|
|
29
29
|
},
|
|
30
30
|
"devDependencies": {
|
|
31
|
-
"@biomejs/biome": "2.4.
|
|
32
|
-
"@lousy-agents/mcp": "5.14.
|
|
31
|
+
"@biomejs/biome": "2.4.16",
|
|
32
|
+
"@lousy-agents/mcp": "5.14.10",
|
|
33
33
|
"@modelcontextprotocol/server-sequential-thinking": "2025.12.18",
|
|
34
|
-
"@testcontainers/postgresql": "
|
|
34
|
+
"@testcontainers/postgresql": "12.0.1",
|
|
35
35
|
"@types/node": "24.12.4",
|
|
36
|
-
"@upstash/context7-mcp": "
|
|
36
|
+
"@upstash/context7-mcp": "3.1.0",
|
|
37
37
|
"chance": "1.1.13",
|
|
38
|
-
"testcontainers": "
|
|
39
|
-
"tsx": "4.22.
|
|
38
|
+
"testcontainers": "12.0.1",
|
|
39
|
+
"tsx": "4.22.4",
|
|
40
40
|
"typescript": "6.0.3",
|
|
41
|
-
"vitest": "4.1.
|
|
41
|
+
"vitest": "4.1.8"
|
|
42
42
|
}
|
|
43
43
|
}
|
|
@@ -0,0 +1,164 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: feature-to-plan
|
|
3
|
+
description: Use when the user asks to turn a feature request, idea, PRD draft, or backlog issue into a structured EARS-format spec. Trigger phrases include "draft a spec", "plan a feature", "scaffold a spec", "write a feature spec", "convert this issue to a spec", "plan this issue", or invocation via /feature-to-plan. Do NOT use for reviewing an existing spec PR (use triaging-pr-reviews) or for editing a specific section of an already-drafted spec (use a direct Edit instead).
|
|
4
|
+
argument-hint: "GitHub issue number (e.g., #47), a feature name, or empty for interactive drafting"
|
|
5
|
+
allowed-tools: Read, Grep, Glob, Write, Edit, Bash
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# Feature to Plan
|
|
9
|
+
|
|
10
|
+
## Overview
|
|
11
|
+
|
|
12
|
+
Convert a feature request — either freeform or seeded from a GitHub issue — into an EARS-format spec under the repo's specs directory (default `.github/specs/`).
|
|
13
|
+
|
|
14
|
+
```
|
|
15
|
+
Phase 1: Orient (read-only planning — read context, identify ambiguities, draft outline)
|
|
16
|
+
↓
|
|
17
|
+
Approval Gate (present the planned spec outline and wait for approval)
|
|
18
|
+
↓
|
|
19
|
+
Phase 2: Create (write the spec file, optionally post clarifying comments)
|
|
20
|
+
↓
|
|
21
|
+
Phase 3: Validate (diff → classify findings → fix loop, ≤3 rounds)
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
Two on-demand references back this skill:
|
|
25
|
+
|
|
26
|
+
- [`references/spec-format.md`](./references/spec-format.md) — EARS patterns, persona template, value assessment, the full Spec File Structure, task design guidelines, and Mermaid diagram requirements. **Load when drafting Phase 2 output.**
|
|
27
|
+
- [`references/interactive-flow.md`](./references/interactive-flow.md) — a six-step collaborative conversation flow (greet → context → criteria → clarify → outline → write). **Load when the user wants multi-turn drafting or Phase 1 surfaces more than ~3 substantive ambiguities.**
|
|
28
|
+
|
|
29
|
+
## When to Use
|
|
30
|
+
|
|
31
|
+
- User asks to "draft / plan / scaffold / write" a spec for a feature
|
|
32
|
+
- User references a GitHub issue and wants it turned into a spec
|
|
33
|
+
- User invokes `/feature-to-plan` (with or without an argument)
|
|
34
|
+
- User wants to convert a freeform idea into a structured spec
|
|
35
|
+
|
|
36
|
+
**Do NOT use when:**
|
|
37
|
+
|
|
38
|
+
- The task is reviewing an existing spec PR — use `triaging-pr-reviews` instead
|
|
39
|
+
- The user wants to edit a specific section of an existing spec — make the targeted Edit directly
|
|
40
|
+
- The user is asking implementation questions about an already-written spec — answer from the spec content; don't re-draft
|
|
41
|
+
|
|
42
|
+
## Prerequisites
|
|
43
|
+
|
|
44
|
+
- Read access to the current repository
|
|
45
|
+
- `gh` CLI authenticated (`gh auth status`) **only if** seeding from a GitHub issue or posting clarifying comments
|
|
46
|
+
- Whatever lint/format/test commands the repo defines (used in Phase 3's final check)
|
|
47
|
+
|
|
48
|
+
## Procedure
|
|
49
|
+
|
|
50
|
+
> **Note on the invocation argument.** Below, "the argument" refers to whatever string was passed to this skill — for example, the value of `$ARGUMENTS` when invoked via a slash command, the argument supplied through your agent's skill-invocation surface, or the inline argument in a user prompt like "use feature-to-plan on #47". The skill behavior keys off three cases: an issue reference (`#N` or `^\d+$`), a freeform feature name, or empty.
|
|
51
|
+
|
|
52
|
+
### Phase 1 — Orient (READ-ONLY PLANNING)
|
|
53
|
+
|
|
54
|
+
Work in a read-only planning phase first. If the runtime provides a dedicated plan mode, use it; otherwise avoid file writes until the Approval Gate is complete.
|
|
55
|
+
|
|
56
|
+
1. **Discover product and engineering context.** Read whatever conventional files the repo provides — for example `AGENTS.md`, `README.md`, `CLAUDE.md`, `.github/copilot-instructions.md`, `CONTRIBUTING.md`, anything under `.github/instructions/`, or product docs under `docs/`. Don't assume any specific file exists; use what's there.
|
|
57
|
+
2. **Seed Context & Goal.** Based on the argument:
|
|
58
|
+
- **Issue reference (`#N` or matches `^\d+$`):** fetch the issue and treat its Context & Goal and Acceptance Criteria sections (if present) as the starting point. Note any cross-reference IDs (e.g., a beads ID) in the issue footer.
|
|
59
|
+
|
|
60
|
+
```bash
|
|
61
|
+
gh issue view <N> --json title,body,labels,comments
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
- **Freeform feature name or empty:** the user must provide Context & Goal. Ask once, concisely.
|
|
65
|
+
3. **Choose drafting mode.** Decide between single-shot and interactive based on these signals:
|
|
66
|
+
- **Switch to interactive** if (a) the user explicitly asked for a multi-turn walkthrough ("walk me through", "let's draft this together"), or (b) Context & Goal is too thin to outline without back-and-forth, or (c) you anticipate more than ~3 substantive ambiguities.
|
|
67
|
+
- **Otherwise proceed single-shot** through steps 4-5 below.
|
|
68
|
+
|
|
69
|
+
To run interactive mode: **load [`references/interactive-flow.md`](./references/interactive-flow.md)** and follow its six-step flow until the outline is ready for the gate. The interactive flow owns the conversation; this skill resumes at the Approval Gate once the outline is approved. **Skip steps 4-5 below in this mode.**
|
|
70
|
+
4. **List ambiguities** (single-shot mode). For each one, decide:
|
|
71
|
+
- Resolvable with a reasonable assumption → record the assumption in the draft's "Open Questions" section
|
|
72
|
+
- Requires user input → add to a clarifying-questions list to surface at the gate
|
|
73
|
+
5. **Draft the spec outline** (single-shot mode) for approval. Include:
|
|
74
|
+
- Exact target file path (default `.github/specs/<kebab-case-feature>.spec.md`; honor any override the user requested)
|
|
75
|
+
- Section list (Problem Statement, Personas, Value Assessment, User Stories, Design, Tasks, Out of Scope, Future Considerations)
|
|
76
|
+
- One-line persona summary and value-type summary
|
|
77
|
+
- Estimated task count
|
|
78
|
+
- Clarifying-question text to optionally post on the source issue
|
|
79
|
+
|
|
80
|
+
### Approval Gate
|
|
81
|
+
|
|
82
|
+
Present the outline through the agent's approval mechanism. In runtimes with `ExitPlanMode`, call it; otherwise ask for explicit approval in the conversation. Present:
|
|
83
|
+
|
|
84
|
+
- The target file path
|
|
85
|
+
- The section list (headers only)
|
|
86
|
+
- The persona/value summary
|
|
87
|
+
- The task count
|
|
88
|
+
- Any clarifying-question text, with an explicit yes/no prompt: "Should I also post these as a comment on issue #N?"
|
|
89
|
+
|
|
90
|
+
Wait for user approval before continuing.
|
|
91
|
+
|
|
92
|
+
### Phase 2 — Create (POST-APPROVAL)
|
|
93
|
+
|
|
94
|
+
1. **Load the spec format reference.** Read [`references/spec-format.md`](./references/spec-format.md) for the authoritative template, EARS patterns, persona table, value assessment block, task structure, and diagram requirements.
|
|
95
|
+
2. **Resolve the output path.** Default `.github/specs/<kebab-case-feature>.spec.md`. If the repo uses a different convention (e.g., `docs/specs/`, `specs/`), honor it.
|
|
96
|
+
3. **Write the spec** using the Spec File Structure template. The following section *identities* are required — keep the same set of sections in this order. Cosmetic title variation is allowed only when the target repo has an established convention (e.g., `## Stakeholders` instead of `## Personas`, or `## Acceptance` instead of `## Acceptance Criteria`). If you customize a title, keep the role of the section identical to what's described below; never drop a section.
|
|
97
|
+
- `# Feature: <name>`
|
|
98
|
+
- `## Problem Statement` (2-3 sentences — problem, not solution)
|
|
99
|
+
- `## Personas` (table with Impact column)
|
|
100
|
+
- `## Value Assessment` (Primary / Secondary value types)
|
|
101
|
+
- `## User Stories` (each with EARS acceptance criteria)
|
|
102
|
+
- `## Design` (Components Affected, Dependencies, Data Model Changes, Diagrams, Open Questions)
|
|
103
|
+
- `## Tasks` (each with Objective, Context, Affected files, Requirements, Verification, Done when)
|
|
104
|
+
- `## Out of Scope`
|
|
105
|
+
- `## Future Considerations`
|
|
106
|
+
4. **Include Mermaid diagrams.** At minimum a data-flow diagram (`flowchart TB` or `flowchart LR`) and a sequence diagram (`sequenceDiagram`). Use state, ER, or class diagrams when the feature warrants them.
|
|
107
|
+
5. **Mark every checkbox `[ ]` (not `[x]`).** Tasks, Verification, and Done-when lists are unchecked at draft time. Only the implementer marks them `[x]` as they ship.
|
|
108
|
+
6. **Add a Cross-Reference footer if seeded from an issue:**
|
|
109
|
+
|
|
110
|
+
```markdown
|
|
111
|
+
---
|
|
112
|
+
|
|
113
|
+
## Cross-Reference
|
|
114
|
+
|
|
115
|
+
- GitHub Issue: #<N>
|
|
116
|
+
- <Any tracker ID or external link surfaced in Phase 1>
|
|
117
|
+
```
|
|
118
|
+
|
|
119
|
+
7. **Optionally post clarifying questions on the source issue** (only if the user opted in at the gate):
|
|
120
|
+
|
|
121
|
+
```bash
|
|
122
|
+
gh issue comment <N> --body "Clarifying questions before drafting the spec: ..."
|
|
123
|
+
```
|
|
124
|
+
|
|
125
|
+
### Phase 3 — Validate
|
|
126
|
+
|
|
127
|
+
1. **Generate the diff:**
|
|
128
|
+
|
|
129
|
+
```bash
|
|
130
|
+
git diff -- <path/to/new-spec>
|
|
131
|
+
```
|
|
132
|
+
|
|
133
|
+
2. **Classify each finding.** Apply the classification rubric inline:
|
|
134
|
+
- **Security** — Does the spec leak credentials, prescribe unsafe defaults, or invite injection patterns?
|
|
135
|
+
- **Correctness** — Are EARS criteria testable? Do tasks have measurable verification?
|
|
136
|
+
- **Performance** — Does the design imply hot paths, N+1 patterns, or unbounded loops?
|
|
137
|
+
- **Style** — Headings, link formats, file conventions consistent with the repo
|
|
138
|
+
- **Architecture** — Does the design contradict existing engineering guidance you read in Phase 1?
|
|
139
|
+
3. **Re-Edit the spec** to resolve each finding. Keep this lightweight — don't rewrite working content.
|
|
140
|
+
4. **Iterate up to 3 rounds.** Exit when no high/medium severity findings remain or after the third round, whichever comes first.
|
|
141
|
+
5. **Run the repo's own validation gate** before reporting completion. Use whatever the repo defines — for example `make lint`, `npm run lint`, `bun run format:check && bun run lint`, `cargo fmt --check`, or a CI workflow. Markdown-only changes typically don't affect test/build, but running the gate keeps you honest.
|
|
142
|
+
|
|
143
|
+
## Delegation Rules
|
|
144
|
+
|
|
145
|
+
| Situation | Hand off to |
|
|
146
|
+
| ------------------------------------------------------------------------------------------ | ---------------------------------------------------------------------------------------- |
|
|
147
|
+
| User says "walk me through" / "let's draft this together" / wants multi-turn collaboration | Load [`references/interactive-flow.md`](./references/interactive-flow.md) |
|
|
148
|
+
| Phase 1 surfaces > 3 substantive ambiguities | Load [`references/interactive-flow.md`](./references/interactive-flow.md) |
|
|
149
|
+
| Spec already lives in an open PR and the user wants review | `triaging-pr-reviews` skill with the PR number — this skill should not be used at all |
|
|
150
|
+
|
|
151
|
+
## Output Contract
|
|
152
|
+
|
|
153
|
+
- **File path:** `.github/specs/<kebab-case-feature>.spec.md` by default, or the user's specified location
|
|
154
|
+
- **Required sections:** all sections in the Spec File Structure template (see [`references/spec-format.md`](./references/spec-format.md))
|
|
155
|
+
- **EARS:** every acceptance criterion uses one of the six EARS patterns (Ubiquitous, Event-driven, State-driven, Optional, Unwanted, Complex)
|
|
156
|
+
- **Diagrams:** at least one Mermaid data-flow diagram and one sequence diagram
|
|
157
|
+
- **Tasks:** each has Objective, Context, Affected files, Requirements, Verification, Done when — checkboxes start unchecked
|
|
158
|
+
- **Cross-Reference footer:** present if seeded from a GitHub issue
|
|
159
|
+
|
|
160
|
+
## Gotchas
|
|
161
|
+
|
|
162
|
+
- **Historical specs use varying extensions** (`*.md`, `*.spec.md`, `*.prd.md`). Match whatever the target repo already uses; don't rename existing files.
|
|
163
|
+
- **Nested planning states behave unexpectedly.** If the runtime uses a dedicated plan mode and the skill is invoked while already planning, calling `ExitPlanMode` may exit the **outer** plan. Make this clear in the gate prompt.
|
|
164
|
+
- **Spec output path is not universal.** Default to `.github/specs/` but respect any existing convention you find (e.g., `docs/specs/`, `specs/`, `rfcs/`).
|
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
# Interactive Drafting Flow
|
|
2
|
+
|
|
3
|
+
> The `feature-to-plan` skill loads this reference when the user wants a multi-turn collaborative walkthrough — phrases like "walk me through writing a spec", "let's design this feature together" — or when Phase 1 surfaces more than ~3 substantive ambiguities and a single-shot draft would be lossy.
|
|
4
|
+
>
|
|
5
|
+
> When invoked from the skill's Phase 1, follow this flow until the user approves the outline, then return control. This reference owns the **conversation**; the skill's Phase 2 and Phase 3 own the **file write and validation**.
|
|
6
|
+
|
|
7
|
+
## Posture
|
|
8
|
+
|
|
9
|
+
You are a **product management pair partner** drafting a spec with the user. You are not a passive assistant:
|
|
10
|
+
|
|
11
|
+
- **Challenge assumptions** — Ask "why" before writing. Probe for the underlying problem rather than the surface solution.
|
|
12
|
+
- **Identify gaps** — Flag missing acceptance criteria, edge cases, and error states.
|
|
13
|
+
- **Guard scope** — Call out when a feature is too large for a single increment. Suggest phasing.
|
|
14
|
+
- **Propose value** — Don't wait to be asked. Assess and state which value types the feature delivers.
|
|
15
|
+
- **Ensure persona coverage** — Every spec must identify impacted personas. Push back if missing.
|
|
16
|
+
|
|
17
|
+
## When To Use This Flow
|
|
18
|
+
|
|
19
|
+
- The user wants a multi-turn collaborative walkthrough
|
|
20
|
+
- Phase 1 orientation surfaced more than ~3 substantive ambiguities
|
|
21
|
+
- The user explicitly asked for an interactive drafting experience
|
|
22
|
+
|
|
23
|
+
If the user just wants a one-shot spec generation from clear context, **don't** spin up this conversation — proceed with the skill's regular Phase 1 → gate → Phase 2 flow.
|
|
24
|
+
|
|
25
|
+
## Conversation Flow
|
|
26
|
+
|
|
27
|
+
Six steps. Keep each step focused; wait for the user's answer before advancing.
|
|
28
|
+
|
|
29
|
+
### 1. Greet & Frame
|
|
30
|
+
|
|
31
|
+
Give a brief, friendly greeting. Restate the user's goal in one or two sentences. Use whatever product context the skill discovered in Phase 1 — don't invent a product name. A safe template:
|
|
32
|
+
|
|
33
|
+
> "We're drafting a feature specification for `<product or repo name from Phase 1 context>`. I'll walk you through context, personas, value, and acceptance criteria, then produce a spec file once you approve the outline."
|
|
34
|
+
|
|
35
|
+
Then ask:
|
|
36
|
+
|
|
37
|
+
> "What's the **Context & Goal**? What are we trying to accomplish, what part of the codebase or workflow does it affect, and what prompted it?"
|
|
38
|
+
|
|
39
|
+
**Wait for the answer.** Do not proceed without it.
|
|
40
|
+
|
|
41
|
+
### 2. Capture Context — Then Challenge
|
|
42
|
+
|
|
43
|
+
Acknowledge and restate: "Got it — your goal is `<their context and goal>`."
|
|
44
|
+
|
|
45
|
+
Then **challenge**:
|
|
46
|
+
|
|
47
|
+
- Is the problem clear, or is this a solution looking for a problem?
|
|
48
|
+
- Who is the primary persona? Who is the secondary persona?
|
|
49
|
+
- What's the **value type** (Commercial / Future / Customer / Market / Efficiency)?
|
|
50
|
+
- Is this an increment, or is it too big for one spec?
|
|
51
|
+
|
|
52
|
+
Push back if any of these aren't crisp. Use one focused question per round; don't fire a list.
|
|
53
|
+
|
|
54
|
+
When proposing personas, draw from the repo's existing materials when possible (e.g., personas already documented in a PRD or README). Otherwise propose roles grounded in the feature's domain — end user, operator, integrator, administrator — and ask the user to confirm or refine.
|
|
55
|
+
|
|
56
|
+
### 3. Acceptance Criteria
|
|
57
|
+
|
|
58
|
+
Ask:
|
|
59
|
+
|
|
60
|
+
> "How will we verify this is done? What should happen when it works correctly?
|
|
61
|
+
>
|
|
62
|
+
> For example:
|
|
63
|
+
>
|
|
64
|
+
> - I run `command x` and see output y
|
|
65
|
+
> - The API returns status 200 with payload z
|
|
66
|
+
> - The UI displays component w"
|
|
67
|
+
|
|
68
|
+
When they answer, reflect back the criteria you'll translate into EARS format. Identify any that should be expressed as **Unwanted** (error handling) or **State-driven** patterns rather than simple Event-driven.
|
|
69
|
+
|
|
70
|
+
### 4. Clarifying Questions
|
|
71
|
+
|
|
72
|
+
If anything is unclear or missing, ask **one combined follow-up** rather than a back-and-forth:
|
|
73
|
+
|
|
74
|
+
> "Before I draft the spec, a few clarifying questions:
|
|
75
|
+
>
|
|
76
|
+
> 1. <constraint or dependency question>
|
|
77
|
+
> 2. <existing-pattern question>
|
|
78
|
+
> 3. <assumption question>"
|
|
79
|
+
|
|
80
|
+
If no clarification is needed, skip ahead.
|
|
81
|
+
|
|
82
|
+
### 5. Draft the Outline
|
|
83
|
+
|
|
84
|
+
If you haven't already, load the skill's [`spec-format.md`](./spec-format.md) reference so you can mirror the Spec File Structure precisely. Then draft the spec **outline** as the plan content. Include:
|
|
85
|
+
|
|
86
|
+
- Target file path (e.g., `.github/specs/<kebab-case-feature>.spec.md`, or whatever convention the repo uses)
|
|
87
|
+
- Section list (Problem Statement, Personas, Value Assessment, User Stories, Design, Tasks, Out of Scope, Future Considerations)
|
|
88
|
+
- One-line summary of each section's content
|
|
89
|
+
- Persona table preview (Persona / Impact / Notes)
|
|
90
|
+
- Value assessment preview (Primary / Secondary)
|
|
91
|
+
- Task count and rough sizing
|
|
92
|
+
|
|
93
|
+
Present the outline through the agent's approval mechanism. In runtimes with `ExitPlanMode`, call it; otherwise ask for explicit approval in the conversation.
|
|
94
|
+
|
|
95
|
+
### 6. Hand Back to the Skill
|
|
96
|
+
|
|
97
|
+
Once the user approves the outline, return control to the skill's Phase 2. Don't try to write the file yourself from this flow — the skill owns:
|
|
98
|
+
|
|
99
|
+
- Resolving the output path
|
|
100
|
+
- Writing the spec using the Spec File Structure template
|
|
101
|
+
- Adding the Cross-Reference footer if issue-seeded
|
|
102
|
+
- Phase 3 validation
|
|
103
|
+
|
|
104
|
+
When you hand back, return a one-block summary:
|
|
105
|
+
|
|
106
|
+
```
|
|
107
|
+
Outline approved. Ready for Phase 2.
|
|
108
|
+
- Target: <path/to/file>
|
|
109
|
+
- Sections: <count>, all required headers present
|
|
110
|
+
- Personas: <count> (primary: <name>; secondary: <name>)
|
|
111
|
+
- Value: <primary type> / <secondary type>
|
|
112
|
+
- Tasks: <N> tasks (rough sizing)
|
|
113
|
+
- Open questions to capture: <count>
|
|
114
|
+
- Post clarifying questions on issue #<N>? <yes/no>
|
|
115
|
+
```
|
|
116
|
+
|
|
117
|
+
## Tool-Use Discipline
|
|
118
|
+
|
|
119
|
+
- **Read engineering and product context before drafting.** Don't start the conversation cold — load whatever the skill's Phase 1 surfaced.
|
|
120
|
+
- **Never invent product-specific facts.** Personas, metric definitions, internal schemas, or access policies you can't confirm from repo evidence must be flagged in Open Questions, not asserted.
|
|
121
|
+
- **Use binary or small-choice prompts for hard decisions.** When you need a clear answer, ask a specific question with options rather than open-ended prose.
|
|
122
|
+
- **Don't sprawl.** This is a conversation flow, not an implementation pass. If the user's answers reveal that the feature is huge, recommend phasing rather than producing a 20-task spec.
|