@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
|
@@ -0,0 +1,434 @@
|
|
|
1
|
+
# Spec Format Reference
|
|
2
|
+
|
|
3
|
+
> The `feature-to-plan` skill loads this reference during Phase 2 (Create) to construct the spec file. It contains the EARS requirement syntax, user story format, persona template, value assessment table, full Spec File Structure, task design guidelines, and Mermaid diagram requirements.
|
|
4
|
+
|
|
5
|
+
## Your Role
|
|
6
|
+
|
|
7
|
+
When drafting a spec, act as a collaborative PM pair, not a passive assistant:
|
|
8
|
+
|
|
9
|
+
- **Challenge assumptions** — Ask "why" before writing. Probe for the underlying problem.
|
|
10
|
+
- **Identify gaps** — Flag missing acceptance criteria, edge cases, and error states.
|
|
11
|
+
- **Guard scope** — Call out when a feature is too large for a single increment. Suggest phasing.
|
|
12
|
+
- **Propose value** — Don't wait to be asked. Assess and state which value types a feature delivers.
|
|
13
|
+
- **Ensure persona coverage** — Every spec must identify impacted personas. Push back if missing.
|
|
14
|
+
|
|
15
|
+
Before writing or modifying a spec:
|
|
16
|
+
|
|
17
|
+
1. Confirm you understand the problem being solved, not just the solution requested
|
|
18
|
+
2. Ask clarifying questions if the request is ambiguous
|
|
19
|
+
3. Identify which personas are affected and how
|
|
20
|
+
4. Propose a value assessment
|
|
21
|
+
5. Suggest scope boundaries if the feature feels too broad
|
|
22
|
+
|
|
23
|
+
When reviewing a spec:
|
|
24
|
+
|
|
25
|
+
1. Verify all acceptance criteria use EARS notation
|
|
26
|
+
2. Check that personas are explicitly named with impact described
|
|
27
|
+
3. Confirm design aligns with the repo's engineering guidance
|
|
28
|
+
4. Identify any missing error states or edge cases
|
|
29
|
+
5. Assess whether tasks are appropriately sized for a coding agent session
|
|
30
|
+
|
|
31
|
+
## EARS Requirement Syntax
|
|
32
|
+
|
|
33
|
+
All acceptance criteria must use EARS (Easy Approach to Requirements Syntax) patterns:
|
|
34
|
+
|
|
35
|
+
| Pattern | Template | Use When |
|
|
36
|
+
| ------------ | -------------------------------------------------------------------- | -------------------------- |
|
|
37
|
+
| Ubiquitous | The `<system>` shall `<response>` | Always true, no trigger |
|
|
38
|
+
| Event-driven | When `<trigger>`, the `<system>` shall `<response>` | Responding to an event |
|
|
39
|
+
| State-driven | While `<state>`, the `<system>` shall `<response>` | Active during a condition |
|
|
40
|
+
| Optional | Where `<feature>` is enabled, the `<system>` shall `<response>` | Configurable capability |
|
|
41
|
+
| Unwanted | If `<condition>`, then the `<system>` shall `<response>` | Error handling, edge cases |
|
|
42
|
+
| Complex | While `<state>`, when `<trigger>`, the `<system>` shall `<response>` | Combining conditions |
|
|
43
|
+
|
|
44
|
+
### EARS Examples
|
|
45
|
+
|
|
46
|
+
```markdown
|
|
47
|
+
- The workflow engine shall execute jobs in dependency order.
|
|
48
|
+
- When a workflow run completes, the system shall send a notification to subscribed channels.
|
|
49
|
+
- While a runner is offline, the system shall queue jobs for that runner.
|
|
50
|
+
- Where manual approval is configured, the system shall pause deployment until approved.
|
|
51
|
+
- If the workflow file contains invalid YAML, then the system shall display a validation error with line number.
|
|
52
|
+
- While branch protection is enabled, when a push is attempted to a protected branch, the system shall reject the push and return an error message.
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
## User Story Format
|
|
56
|
+
|
|
57
|
+
```markdown
|
|
58
|
+
### Story: <Concise Title>
|
|
59
|
+
|
|
60
|
+
As a **<persona>**,
|
|
61
|
+
I want **<capability>**,
|
|
62
|
+
so that I can **<outcome/problem solved>**.
|
|
63
|
+
|
|
64
|
+
#### Acceptance Criteria
|
|
65
|
+
|
|
66
|
+
- When <trigger>, the <system> shall <response>
|
|
67
|
+
- While <state>, the <system> shall <response>
|
|
68
|
+
- If <error condition>, then the <system> shall <response>
|
|
69
|
+
|
|
70
|
+
#### Notes
|
|
71
|
+
|
|
72
|
+
<Context, constraints, or open questions>
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
## Persona Development
|
|
76
|
+
|
|
77
|
+
Personas should be inlined into each spec's Personas table (see Spec File Structure below). When identifying personas:
|
|
78
|
+
|
|
79
|
+
### Persona Template
|
|
80
|
+
|
|
81
|
+
```markdown
|
|
82
|
+
## <Persona Name>
|
|
83
|
+
|
|
84
|
+
**Role**: <Job title or function>
|
|
85
|
+
**Goals**: <What they're trying to achieve>
|
|
86
|
+
**Pain Points**: <Current frustrations or blockers>
|
|
87
|
+
**Context**: <Team size, experience level, tools they use>
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
### Persona Guidance
|
|
91
|
+
|
|
92
|
+
- Name personas by role, not individual (e.g., "Platform Engineer" not "Sarah")
|
|
93
|
+
- Identify both primary and secondary personas for each feature
|
|
94
|
+
- Document whether impact is positive, negative, or neutral
|
|
95
|
+
- Consider: Who benefits? Who is disrupted? Who needs to change behavior?
|
|
96
|
+
- Pull persona names from the target product's existing materials when available; otherwise propose roles grounded in the feature's domain (end user, operator, integrator, administrator, etc.)
|
|
97
|
+
|
|
98
|
+
## Value Assessment
|
|
99
|
+
|
|
100
|
+
Evaluate every feature against these value types. A feature may deliver multiple.
|
|
101
|
+
|
|
102
|
+
| Value Type | Question to Ask |
|
|
103
|
+
| ---------- | ------------------------------------------------------------------ |
|
|
104
|
+
| Commercial | Does this increase revenue or reduce cost of sale? |
|
|
105
|
+
| Future | Does this save time or money later? Does it reduce technical debt? |
|
|
106
|
+
| Customer | Does this increase retention or satisfaction for existing users? |
|
|
107
|
+
| Market | Does this attract new users or open new segments? |
|
|
108
|
+
| Efficiency | Does this save operational time or reduce manual effort now? |
|
|
109
|
+
|
|
110
|
+
State the value assessment explicitly in the spec. If value is unclear, flag it as a risk.
|
|
111
|
+
|
|
112
|
+
## Spec File Structure
|
|
113
|
+
|
|
114
|
+
A spec has three sections that flow into each other:
|
|
115
|
+
|
|
116
|
+
1. **Requirements** — What we're building and why (human and agent context)
|
|
117
|
+
2. **Design** — How it fits into the system (agent context for implementation)
|
|
118
|
+
3. **Tasks** — Discrete units of work (directly assignable to a coding agent)
|
|
119
|
+
|
|
120
|
+
```markdown
|
|
121
|
+
# Feature: <name>
|
|
122
|
+
|
|
123
|
+
## Problem Statement
|
|
124
|
+
|
|
125
|
+
<2-3 sentences describing the problem, not the solution>
|
|
126
|
+
|
|
127
|
+
## Personas
|
|
128
|
+
|
|
129
|
+
| Persona | Impact | Notes |
|
|
130
|
+
| ------- | ------------------------- | ------------------- |
|
|
131
|
+
| <name> | Positive/Negative/Neutral | <brief explanation> |
|
|
132
|
+
|
|
133
|
+
## Value Assessment
|
|
134
|
+
|
|
135
|
+
- **Primary value**: <type> — <explanation>
|
|
136
|
+
- **Secondary value**: <type> — <explanation>
|
|
137
|
+
|
|
138
|
+
## User Stories
|
|
139
|
+
|
|
140
|
+
### Story 1: <Title>
|
|
141
|
+
|
|
142
|
+
As a **<persona>**,
|
|
143
|
+
I want **<capability>**,
|
|
144
|
+
so that I can **<outcome>**.
|
|
145
|
+
|
|
146
|
+
#### Acceptance Criteria
|
|
147
|
+
|
|
148
|
+
- When...
|
|
149
|
+
- While...
|
|
150
|
+
- If..., then...
|
|
151
|
+
|
|
152
|
+
---
|
|
153
|
+
|
|
154
|
+
## Design
|
|
155
|
+
|
|
156
|
+
> Refer to the repo's engineering guidance (e.g., `AGENTS.md`, `CONTRIBUTING.md`, `.github/copilot-instructions.md`, `CLAUDE.md`) for technical standards.
|
|
157
|
+
|
|
158
|
+
### Components Affected
|
|
159
|
+
|
|
160
|
+
- `<path/to/file-or-directory>` — <what changes>
|
|
161
|
+
|
|
162
|
+
### Dependencies
|
|
163
|
+
|
|
164
|
+
- <External service, library, or internal component>
|
|
165
|
+
|
|
166
|
+
### Data Model Changes
|
|
167
|
+
|
|
168
|
+
<If applicable: new fields, schemas, or state changes>
|
|
169
|
+
|
|
170
|
+
### Diagrams
|
|
171
|
+
|
|
172
|
+
<Include Mermaid diagrams to visualize data flow, architecture, or sequences>
|
|
173
|
+
|
|
174
|
+
### Open Questions
|
|
175
|
+
|
|
176
|
+
- [ ] <Unresolved technical or product question>
|
|
177
|
+
|
|
178
|
+
---
|
|
179
|
+
|
|
180
|
+
## Tasks
|
|
181
|
+
|
|
182
|
+
> Each task should be completable in a single coding agent session.
|
|
183
|
+
> Tasks are sequenced by dependency. Complete in order unless noted.
|
|
184
|
+
|
|
185
|
+
### Task 1: <Title>
|
|
186
|
+
|
|
187
|
+
**Objective**: <One sentence describing what this task accomplishes>
|
|
188
|
+
|
|
189
|
+
**Context**: <Why this task exists, what it unblocks>
|
|
190
|
+
|
|
191
|
+
**Affected files**:
|
|
192
|
+
|
|
193
|
+
- `<path/to/file>`
|
|
194
|
+
|
|
195
|
+
**Requirements**:
|
|
196
|
+
|
|
197
|
+
- <Specific acceptance criterion this task satisfies>
|
|
198
|
+
|
|
199
|
+
**Verification**:
|
|
200
|
+
|
|
201
|
+
- [ ] <Command to run or condition to check>
|
|
202
|
+
- [ ] <Test that should pass>
|
|
203
|
+
|
|
204
|
+
**Done when**:
|
|
205
|
+
|
|
206
|
+
- [ ] All verification steps pass
|
|
207
|
+
- [ ] No new errors in affected files
|
|
208
|
+
- [ ] Acceptance criteria <reference specific criteria> satisfied
|
|
209
|
+
- [ ] Code follows the repo's engineering guidance
|
|
210
|
+
|
|
211
|
+
---
|
|
212
|
+
|
|
213
|
+
### Task 2: <Title>
|
|
214
|
+
|
|
215
|
+
**Depends on**: Task 1
|
|
216
|
+
|
|
217
|
+
**Objective**: ...
|
|
218
|
+
|
|
219
|
+
---
|
|
220
|
+
|
|
221
|
+
## Out of Scope
|
|
222
|
+
|
|
223
|
+
- <Explicitly excluded item>
|
|
224
|
+
|
|
225
|
+
## Future Considerations
|
|
226
|
+
|
|
227
|
+
- <Potential follow-on work>
|
|
228
|
+
```
|
|
229
|
+
|
|
230
|
+
## Task Design Guidelines
|
|
231
|
+
|
|
232
|
+
### Size
|
|
233
|
+
|
|
234
|
+
- Completable in one agent session (~1-3 files, ~200-300 lines changed)
|
|
235
|
+
- If a task feels too large, split it
|
|
236
|
+
- If you have more than 7-10 tasks, split the feature into phases
|
|
237
|
+
|
|
238
|
+
### Clarity
|
|
239
|
+
|
|
240
|
+
- **Objective** — One sentence, action-oriented ("Add validation to...", "Create endpoint for...")
|
|
241
|
+
- **Context** — Explains why; agents make better decisions with intent
|
|
242
|
+
- **Affected files** — Tells the agent where to focus
|
|
243
|
+
- **Requirements** — Links back to specific acceptance criteria
|
|
244
|
+
|
|
245
|
+
### Verification
|
|
246
|
+
|
|
247
|
+
Every task must include verification steps the agent can run:
|
|
248
|
+
|
|
249
|
+
```markdown
|
|
250
|
+
**Verification**:
|
|
251
|
+
|
|
252
|
+
- [ ] `<repo's test command>` passes
|
|
253
|
+
- [ ] `<repo's lint command>` passes
|
|
254
|
+
- [ ] New endpoint returns 200 for valid input
|
|
255
|
+
- [ ] New endpoint returns 400 with error message for invalid input
|
|
256
|
+
```
|
|
257
|
+
|
|
258
|
+
Prefer automated checks (commands, tests) over subjective criteria. Use whatever commands the target repo defines — don't hardcode a tool the repo doesn't use.
|
|
259
|
+
|
|
260
|
+
### Sequencing
|
|
261
|
+
|
|
262
|
+
- State dependencies explicitly ("Depends on: Task 2")
|
|
263
|
+
- First task should be the smallest vertical slice
|
|
264
|
+
- Final task often includes integration tests or documentation
|
|
265
|
+
|
|
266
|
+
## Anti-Patterns for Coding Agents
|
|
267
|
+
|
|
268
|
+
When implementing tasks from specs, avoid these common mistakes:
|
|
269
|
+
|
|
270
|
+
**Don't:**
|
|
271
|
+
|
|
272
|
+
- Create files outside the Affected files list without explicit approval
|
|
273
|
+
- Skip verification steps or mark tasks complete without running them
|
|
274
|
+
- Implement features not specified in acceptance criteria
|
|
275
|
+
- Assume dependencies are installed — verify or install as part of the task
|
|
276
|
+
- Make architectural decisions that contradict the repo's engineering guidance
|
|
277
|
+
- Batch multiple unrelated changes in a single task implementation
|
|
278
|
+
- Ignore error states or edge cases mentioned in acceptance criteria
|
|
279
|
+
|
|
280
|
+
**Do:**
|
|
281
|
+
|
|
282
|
+
- Read the full spec (Requirements, Design, and specific Task) before starting
|
|
283
|
+
- Follow verification steps in the exact order specified
|
|
284
|
+
- Reference the repo's engineering guidance for technical patterns and standards
|
|
285
|
+
- Ask for clarification when acceptance criteria are ambiguous
|
|
286
|
+
- Stay within the scope of the specific task assigned
|
|
287
|
+
- Update only the files listed in "Affected files" unless creating new test files
|
|
288
|
+
- Run all verification commands and report results
|
|
289
|
+
|
|
290
|
+
## Workflow: Spec to Implementation
|
|
291
|
+
|
|
292
|
+
1. **Specify**
|
|
293
|
+
- Define problem, personas, value
|
|
294
|
+
- Write user stories with EARS acceptance criteria
|
|
295
|
+
- Review: Is the problem clear? Are criteria testable?
|
|
296
|
+
|
|
297
|
+
2. **Design**
|
|
298
|
+
- Identify affected components and files
|
|
299
|
+
- Note dependencies and data model changes
|
|
300
|
+
- Review: Does this align with the repo's engineering guidance?
|
|
301
|
+
|
|
302
|
+
3. **Task Breakdown**
|
|
303
|
+
- Decompose into agent-sized tasks
|
|
304
|
+
- Add verification steps to each task
|
|
305
|
+
- Sequence by dependency
|
|
306
|
+
- Review: Can each task complete independently?
|
|
307
|
+
|
|
308
|
+
4. **Implement (per task)**
|
|
309
|
+
- Assign task to coding agent (issue or direct prompt)
|
|
310
|
+
- Agent references spec for context, engineering guidance for standards
|
|
311
|
+
- Run verification steps
|
|
312
|
+
- Mark task complete, proceed to next
|
|
313
|
+
|
|
314
|
+
5. **Validate**
|
|
315
|
+
- All tasks complete
|
|
316
|
+
- All acceptance criteria verified
|
|
317
|
+
- Update spec if implementation revealed changes
|
|
318
|
+
|
|
319
|
+
## Assigning Tasks to a Coding Agent
|
|
320
|
+
|
|
321
|
+
When assigning a task, include:
|
|
322
|
+
|
|
323
|
+
1. **Link to spec file** — "See `<path-to-spec>`"
|
|
324
|
+
2. **Task reference** — "Implement Task 3: Add validation"
|
|
325
|
+
3. **Engineering guidance reference** — "Follow the repo's engineering instructions"
|
|
326
|
+
|
|
327
|
+
### Example: GitHub Issue for a Coding Agent
|
|
328
|
+
|
|
329
|
+
```markdown
|
|
330
|
+
## Task
|
|
331
|
+
|
|
332
|
+
Implement **Task 3: Add input validation** from `.github/specs/workflow-triggers.spec.md`
|
|
333
|
+
|
|
334
|
+
## Context
|
|
335
|
+
|
|
336
|
+
This task adds validation for workflow trigger configurations.
|
|
337
|
+
See the spec for full acceptance criteria and design context.
|
|
338
|
+
|
|
339
|
+
## References
|
|
340
|
+
|
|
341
|
+
- Spec: `.github/specs/workflow-triggers.spec.md` (Task 3)
|
|
342
|
+
- Standards: <repo's engineering guidance file>
|
|
343
|
+
|
|
344
|
+
## Verification
|
|
345
|
+
|
|
346
|
+
- [ ] `<repo test command>` passes
|
|
347
|
+
- [ ] `<repo lint command>` passes
|
|
348
|
+
- [ ] Validation rejects invalid cron expressions with descriptive error
|
|
349
|
+
```
|
|
350
|
+
|
|
351
|
+
### Example: Direct Prompt to a Coding Agent
|
|
352
|
+
|
|
353
|
+
```text
|
|
354
|
+
Implement Task 3 from .github/specs/workflow-triggers.spec.md
|
|
355
|
+
|
|
356
|
+
Read the full spec for context. This task adds input validation
|
|
357
|
+
for workflow trigger configurations.
|
|
358
|
+
|
|
359
|
+
Follow the engineering standards documented in the repo.
|
|
360
|
+
|
|
361
|
+
After implementation, run the verification steps in the task
|
|
362
|
+
and confirm they pass.
|
|
363
|
+
```
|
|
364
|
+
|
|
365
|
+
## Constraints
|
|
366
|
+
|
|
367
|
+
- **Avoid vague appeals to "best practices."** These terms are subjective and can change. Be specific about what you recommend and why.
|
|
368
|
+
|
|
369
|
+
## Diagram Requirements
|
|
370
|
+
|
|
371
|
+
All diagrams in specs must use **Mermaid** syntax for consistency and GitHub rendering support.
|
|
372
|
+
|
|
373
|
+
### Supported Diagram Types
|
|
374
|
+
|
|
375
|
+
| Diagram Type | Mermaid Type | Use Case |
|
|
376
|
+
| ------------------- | -------------------------------- | --------------------------------------------- |
|
|
377
|
+
| Data Flow | `flowchart TB` or `flowchart LR` | Show how data moves between components |
|
|
378
|
+
| Sequence | `sequenceDiagram` | Show interaction order between actors/systems |
|
|
379
|
+
| State | `stateDiagram-v2` | Show state transitions |
|
|
380
|
+
| Entity Relationship | `erDiagram` | Show data model relationships |
|
|
381
|
+
| Class | `classDiagram` | Show object relationships and structure |
|
|
382
|
+
|
|
383
|
+
### Example: Data Flow Diagram
|
|
384
|
+
|
|
385
|
+
````markdown
|
|
386
|
+
```mermaid
|
|
387
|
+
flowchart TB
|
|
388
|
+
subgraph CLI["CLI Layer"]
|
|
389
|
+
CMD["command"]
|
|
390
|
+
end
|
|
391
|
+
subgraph UseCases["Use Cases Layer"]
|
|
392
|
+
UC["use case logic"]
|
|
393
|
+
end
|
|
394
|
+
CMD --> UC
|
|
395
|
+
```
|
|
396
|
+
````
|
|
397
|
+
|
|
398
|
+
### Example: Sequence Diagram
|
|
399
|
+
|
|
400
|
+
````markdown
|
|
401
|
+
```mermaid
|
|
402
|
+
sequenceDiagram
|
|
403
|
+
participant User
|
|
404
|
+
participant System
|
|
405
|
+
User->>System: request
|
|
406
|
+
System-->>User: response
|
|
407
|
+
```
|
|
408
|
+
````
|
|
409
|
+
|
|
410
|
+
### Guidelines
|
|
411
|
+
|
|
412
|
+
- Use subgraphs to group related components by architectural layer
|
|
413
|
+
- Include descriptive labels for each node
|
|
414
|
+
- Show data types flowing between components where relevant
|
|
415
|
+
- For complex flows, prefer sequence diagrams to show interaction order
|
|
416
|
+
|
|
417
|
+
## Integration with Engineering Guidance
|
|
418
|
+
|
|
419
|
+
For technical decisions, implementation patterns, and architectural standards, defer to whatever engineering guidance the target repo provides — common examples include `AGENTS.md`, `CONTRIBUTING.md`, `.github/copilot-instructions.md`, `CLAUDE.md`, or files under `.github/instructions/`.
|
|
420
|
+
|
|
421
|
+
**This spec file governs:**
|
|
422
|
+
|
|
423
|
+
- What to build and why (product decisions)
|
|
424
|
+
- Who it's for (personas)
|
|
425
|
+
- How to know it's done (acceptance criteria)
|
|
426
|
+
- Task breakdown for agent assignment
|
|
427
|
+
|
|
428
|
+
**The repo's engineering guidance governs:**
|
|
429
|
+
|
|
430
|
+
- How to build it (technical approach)
|
|
431
|
+
- Code standards and patterns
|
|
432
|
+
- Testing and validation requirements
|
|
433
|
+
|
|
434
|
+
When a spec requires architectural input, note it in Open Questions and recommend review against engineering guidance before implementation begins.
|
|
@@ -3,14 +3,14 @@
|
|
|
3
3
|
"image": "mcr.microsoft.com/devcontainers/base:ubuntu-24.04@sha256:4bcb1b466771b1ba1ea110e2a27daea2f6093f9527fb75ee59703ec89b5561cb",
|
|
4
4
|
"features": {
|
|
5
5
|
"ghcr.io/devcontainers/features/node:1.7.1": {
|
|
6
|
-
"version": "24.
|
|
6
|
+
"version": "24.16.0"
|
|
7
7
|
},
|
|
8
8
|
"ghcr.io/devcontainers/features/github-cli:1.1.0": {
|
|
9
9
|
"version": "latest"
|
|
10
10
|
},
|
|
11
11
|
"ghcr.io/devcontainers/features/copilot-cli:1.0.0": {},
|
|
12
12
|
"ghcr.io/anthropics/devcontainer-features/claude-code:1": {
|
|
13
|
-
"version": "v2.1.
|
|
13
|
+
"version": "v2.1.160"
|
|
14
14
|
},
|
|
15
15
|
"ghcr.io/rocker-org/devcontainer-features/apt-packages:1.0.2": {
|
|
16
16
|
"packages": "libnss3, libnspr4, libatk1.0-0t64, libatk-bridge2.0-0t64, libcups2t64, libdrm2, libdbus-1-3, libatspi2.0-0t64, libxcomposite1, libxdamage1, libxfixes3, libxrandr2, libgbm1, libxkbcommon0, libasound2t64, yamllint, shellcheck",
|
|
@@ -40,15 +40,23 @@ body:
|
|
|
40
40
|
id: extra-instructions
|
|
41
41
|
attributes:
|
|
42
42
|
label: Extra Instructions
|
|
43
|
-
|
|
43
|
+
# yamllint disable rule:line-length
|
|
44
|
+
description: >-
|
|
45
|
+
Skill invocation for the agent.
|
|
46
|
+
This will be posted as a comment to guide the bot.
|
|
44
47
|
value: |
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
48
|
+
## MANDATORY — Do not skip this step
|
|
49
|
+
|
|
50
|
+
You **MUST** invoke the `feature-to-plan` skill to produce the
|
|
51
|
+
spec for this issue. This is not optional — the skill defines the
|
|
52
|
+
authoritative procedure (Orient → Approval Gate → Create → Validate) and output
|
|
53
|
+
format. Do not attempt to produce the spec manually or deviate
|
|
54
|
+
from the skill's procedure.
|
|
55
|
+
|
|
56
|
+
Invoke the skill with this issue number as the argument.
|
|
57
|
+
|
|
58
|
+
Failure to use the `feature-to-plan` skill will result in the
|
|
59
|
+
spec being rejected.
|
|
60
|
+
# yamllint enable rule:line-length
|
|
53
61
|
validations:
|
|
54
|
-
required:
|
|
62
|
+
required: true
|
|
@@ -48,7 +48,9 @@ This repository includes a GitHub issue template for streamlined spec creation w
|
|
|
48
48
|
2. Select **"Copilot Feature To Spec"** template
|
|
49
49
|
3. Fill in the **Context & Goal** section describing what you want to build
|
|
50
50
|
4. Fill in the **Acceptance Criteria** section with testable requirements
|
|
51
|
-
5.
|
|
51
|
+
5. Keep the default **Extra Instructions** unchanged — it mandates
|
|
52
|
+
invoking the `feature-to-plan` skill, which is the authoritative
|
|
53
|
+
spec-authoring workflow
|
|
52
54
|
6. Submit the issue
|
|
53
55
|
|
|
54
56
|
### Automatic Copilot Assignment
|
|
@@ -56,7 +58,8 @@ This repository includes a GitHub issue template for streamlined spec creation w
|
|
|
56
58
|
When you create an issue with the `copilot-ready` label (applied automatically by the template):
|
|
57
59
|
|
|
58
60
|
1. The `assign-copilot.yml` workflow triggers
|
|
59
|
-
2. Copilot is mentioned in a comment
|
|
61
|
+
2. Copilot is mentioned in a comment that includes the mandatory
|
|
62
|
+
`feature-to-plan` invocation instructions
|
|
60
63
|
3. Copilot begins working on the spec in `.github/specs/`
|
|
61
64
|
|
|
62
65
|
### Related Files
|
|
@@ -1 +1 @@
|
|
|
1
|
-
24.
|
|
1
|
+
24.16.0
|
|
@@ -16,29 +16,29 @@
|
|
|
16
16
|
"@emotion/server": "11.11.0",
|
|
17
17
|
"@mui/material": "9.0.1",
|
|
18
18
|
"@mui/material-nextjs": "9.0.1",
|
|
19
|
-
"next": "16.2.
|
|
20
|
-
"react": "19.2.
|
|
21
|
-
"react-dom": "19.2.
|
|
19
|
+
"next": "16.2.7",
|
|
20
|
+
"react": "19.2.7",
|
|
21
|
+
"react-dom": "19.2.7"
|
|
22
22
|
},
|
|
23
23
|
"devDependencies": {
|
|
24
|
-
"@biomejs/biome": "2.4.
|
|
24
|
+
"@biomejs/biome": "2.4.16",
|
|
25
25
|
"@eslint/eslintrc": "3.3.5",
|
|
26
|
-
"@lousy-agents/mcp": "5.14.
|
|
26
|
+
"@lousy-agents/mcp": "5.14.10",
|
|
27
27
|
"@modelcontextprotocol/server-sequential-thinking": "2025.12.18",
|
|
28
28
|
"@testing-library/jest-dom": "6.9.1",
|
|
29
29
|
"@testing-library/react": "16.3.2",
|
|
30
30
|
"@types/node": "24.12.4",
|
|
31
|
-
"@types/react": "19.2.
|
|
31
|
+
"@types/react": "19.2.16",
|
|
32
32
|
"@types/react-dom": "19.2.3",
|
|
33
|
-
"@upstash/context7-mcp": "
|
|
33
|
+
"@upstash/context7-mcp": "3.1.0",
|
|
34
34
|
"@vitejs/plugin-react": "6.0.2",
|
|
35
|
-
"@vitest/ui": "4.1.
|
|
36
|
-
"eslint": "10.4.
|
|
37
|
-
"eslint-config-next": "16.2.
|
|
35
|
+
"@vitest/ui": "4.1.8",
|
|
36
|
+
"eslint": "10.4.1",
|
|
37
|
+
"eslint-config-next": "16.2.7",
|
|
38
38
|
"happy-dom": "20.9.0",
|
|
39
39
|
"jsdom": "29.1.1",
|
|
40
40
|
"typescript": "6.0.3",
|
|
41
|
-
"vitest": "4.1.
|
|
41
|
+
"vitest": "4.1.8",
|
|
42
42
|
"whatwg-fetch": "3.6.20"
|
|
43
43
|
}
|
|
44
44
|
}
|