-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathtasks.yaml
More file actions
359 lines (315 loc) · 13.2 KB
/
tasks.yaml
File metadata and controls
359 lines (315 loc) · 13.2 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
- id: TASK-001
requirementId: FR-PARSE-001
title: Implement requirements.yaml parser with validation (id uniqueness, non-empty fields, FR/AR prefix, MUST/SHOULD directive in description)
status: done
assignee: ziimakc
createdAt: "2026-03-08T18:10:09Z"
updatedAt: "2026-03-08T18:10:09Z"
- id: TASK-002
requirementId: FR-PARSE-001
title: "Tests: requirements.yaml parsing — valid input, missing file, malformed YAML, empty fields, duplicate ids, missing prefix"
status: done
assignee: ziimakc
createdAt: "2026-03-08T18:10:09Z"
updatedAt: "2026-03-08T18:10:09Z"
- id: TASK-003
requirementId: FR-PARSE-002
title: Implement tasks.yaml parser with validation (id, requirementId, title, status, createdAt, updatedAt fields)
status: done
assignee: ziimakc
createdAt: "2026-03-08T18:10:09Z"
updatedAt: "2026-03-08T18:10:09Z"
- id: TASK-004
requirementId: FR-PARSE-002
title: "Tests: tasks.yaml parsing — valid input, missing file, malformed YAML, missing required fields"
status: done
assignee: ziimakc
createdAt: "2026-03-08T18:10:09Z"
updatedAt: "2026-03-08T18:10:09Z"
- id: TASK-005
requirementId: FR-PARSE-003
title: Implement structured parse error type with file path, YAML line number, and human-readable message for both requirements.yaml and tasks.yaml
status: done
assignee: ziimakc
createdAt: "2026-03-08T18:10:09Z"
updatedAt: "2026-03-08T18:10:09Z"
- id: TASK-006
requirementId: FR-PARSE-003
title: "Tests: parse error messages include correct path and YAML line number for missing file, wrong type, and malformed input"
status: done
assignee: ziimakc
createdAt: "2026-03-08T18:10:09Z"
updatedAt: "2026-03-08T18:10:09Z"
- id: TASK-007
requirementId: FR-SCAN-001
title: Implement recursive source directory walker that finds @req annotations in .rs/.ts/.js/.py/.dart/.go files, records file path, line number, req ID, and 2-3 line snippet; configure comment styles once
status: done
assignee: ziimakc
createdAt: "2026-03-08T18:10:09Z"
updatedAt: "2026-03-08T18:10:09Z"
- id: TASK-008
requirementId: FR-SCAN-001
title: "Tests: annotation scanning — no annotations, mixed languages, nested directories; use fixtures/ directory"
status: done
assignee: ziimakc
createdAt: "2026-03-08T18:10:09Z"
updatedAt: "2026-03-08T18:10:09Z"
- id: TASK-009
requirementId: FR-SCAN-002
title: Implement annotation classifier that sets type=test for files matching test_*/*_test.*/*.test.* patterns, /tests/ directory, or above \#[test]/#[tokio::test]; otherwise type=impl
status: done
assignee: ziimakc
createdAt: "2026-03-08T18:10:09Z"
updatedAt: "2026-03-08T18:10:09Z"
- id: TASK-010
requirementId: FR-SCAN-002
title: "Tests: annotation classification — impl vs test for each pattern (test_ prefix, _test suffix, .test. infix, /tests/ dir, #[test] attribute)"
status: done
assignee: ziimakc
createdAt: "2026-03-08T18:10:09Z"
updatedAt: "2026-03-08T18:10:09Z"
- id: TASK-011
requirementId: FR-SCAN-003
title: Implement orphan annotation detection — mark annotations with is_orphan=true when their req ID is absent from requirements.yaml
status: done
assignee: ziimakc
createdAt: "2026-03-08T18:10:09Z"
updatedAt: "2026-03-08T18:10:09Z"
- id: TASK-012
requirementId: FR-SCAN-003
title: "Tests: orphan annotation detection — known req IDs are not orphaned, unknown req IDs are marked orphan; use fixtures/"
status: done
assignee: ziimakc
createdAt: "2026-03-08T18:10:09Z"
updatedAt: "2026-03-08T18:10:09Z"
- id: TASK-013
requirementId: FR-SCAN-004
title: Implement orphan task detection — mark tasks with is_orphan=true when their requirementId is absent from requirements.yaml
status: done
assignee: ziimakc
createdAt: "2026-03-08T18:10:09Z"
updatedAt: "2026-03-08T18:10:09Z"
- id: TASK-014
requirementId: FR-SCAN-004
title: "Tests: orphan task detection — valid requirementId not orphaned, non-existent requirementId marked orphan; use fixtures/"
status: done
assignee: ziimakc
createdAt: "2026-03-08T18:10:09Z"
updatedAt: "2026-03-08T18:10:09Z"
- id: TASK-015
requirementId: FR-SCAN-005
title: Implement graceful error handling in scanner — skip permission-denied files with a warning, warn on empty source directory, no panics on any input
status: done
assignee: ziimakc
createdAt: "2026-03-08T18:10:09Z"
updatedAt: "2026-03-08T18:10:09Z"
- id: TASK-016
requirementId: FR-SCAN-005
title: "Tests: scanner resilience — empty source dir emits warning, unreadable file is skipped, empty requirements/no annotations produce no panic"
status: done
assignee: ziimakc
createdAt: "2026-03-08T18:10:09Z"
updatedAt: "2026-03-08T18:10:09Z"
- id: TASK-017
requirementId: FR-COV-001
title: Implement per-requirement coverage computation returning impl count, test count, and status (covered/partial/missing) for each requirement
status: done
assignee: ziimakc
createdAt: "2026-03-08T18:10:09Z"
updatedAt: "2026-03-08T18:10:09Z"
- id: TASK-018
requirementId: FR-COV-001
title: "Tests: per-requirement coverage — covered (impl>=1 AND test>=1), partial (impl only or test only), missing (no annotations)"
status: done
assignee: ziimakc
createdAt: "2026-03-08T18:10:09Z"
updatedAt: "2026-03-08T18:10:09Z"
- id: TASK-019
requirementId: FR-COV-002
title: Implement project-level coverage summary — total, covered/partial/missing counts, and overall percentage (covered/total*100)
status: done
assignee: ziimakc
createdAt: "2026-03-08T18:10:09Z"
updatedAt: "2026-03-08T18:10:09Z"
- id: TASK-020
requirementId: FR-COV-002
title: "Tests: project-level summary counts and percentage for zero requirements, all covered, all missing, and mixed states"
status: done
assignee: ziimakc
createdAt: "2026-03-08T18:10:09Z"
updatedAt: "2026-03-08T18:10:09Z"
- id: TASK-021
requirementId: FR-CLI-001
title: Implement scan subcommand with --requirements, --source, and --tests flags; run full scanner pipeline and print human-readable coverage report to stdout
status: done
assignee: ziimakc
createdAt: "2026-03-08T18:10:09Z"
updatedAt: "2026-03-08T18:10:09Z"
- id: TASK-022
requirementId: FR-CLI-001
title: "Tests: scan subcommand — correct output format, all three flags accepted, report contains per-requirement and summary sections"
status: done
assignee: ziimakc
createdAt: "2026-03-08T18:10:09Z"
updatedAt: "2026-03-08T18:10:09Z"
- id: TASK-023
requirementId: FR-CLI-002
title: Implement --strict flag on scan subcommand — exit non-zero if any requirement lacks impl or test annotation
status: done
assignee: ziimakc
createdAt: "2026-03-08T18:10:09Z"
updatedAt: "2026-03-08T18:10:09Z"
- id: TASK-024
requirementId: FR-CLI-002
title: "Tests: --strict flag — exits 0 when all requirements covered, exits non-zero when any requirement is partial/missing; self-hosting check against own codebase"
status: done
assignee: ziimakc
createdAt: "2026-03-08T18:10:09Z"
updatedAt: "2026-03-08T18:10:09Z"
- id: TASK-025
requirementId: FR-API-001
title: Implement GET /healthcheck endpoint returning HTTP 200 with status (healthy/degraded), version from Cargo.toml, and current timestamp
status: done
assignee: ziimakc
createdAt: "2026-03-08T18:10:09Z"
updatedAt: "2026-03-08T17:09:37Z"
- id: TASK-026
requirementId: FR-API-001
title: "Tests: GET /healthcheck — HTTP 200, status field is healthy or degraded, version matches Cargo.toml, timestamp is valid date-time"
status: done
assignee: ziimakc
createdAt: "2026-03-08T18:10:09Z"
updatedAt: "2026-03-08T17:09:37Z"
- id: TASK-027
requirementId: FR-API-002
title: Implement POST /scan — trigger async re-scan of own codebase, return HTTP 202 with ScanStatus (status=scanning, startedAt set); enforce 5-second cooldown between scans
status: done
assignee: ziimakc
createdAt: "2026-03-08T18:10:09Z"
updatedAt: "2026-03-08T18:10:09Z"
- id: TASK-028
requirementId: FR-API-002
title: "Tests: POST /scan — returns 202 with status=scanning, startedAt present; cooldown rejects second scan within 5s; completedAt/duration present after completion"
status: done
assignee: ziimakc
createdAt: "2026-03-08T18:10:09Z"
updatedAt: "2026-03-08T18:10:09Z"
- id: TASK-029
requirementId: FR-API-003
title: Implement GET /scan returning HTTP 200 with ScanStatus (status, startedAt, completedAt, duration); status=idle when no scan has run
status: done
assignee: ziimakc
createdAt: "2026-03-08T18:10:09Z"
updatedAt: "2026-03-08T18:10:09Z"
- id: TASK-030
requirementId: FR-API-003
title: "Tests: GET /scan — idle before first scan; transitions to scanning then completed; completedAt and duration present on completion"
status: done
assignee: ziimakc
createdAt: "2026-03-08T18:10:09Z"
updatedAt: "2026-03-08T18:10:09Z"
- id: TASK-031
requirementId: FR-API-004
title: Implement GET /requirements/{requirementId} returning HTTP 200 with RequirementDetail (id, type, title, description, status, createdAt, updatedAt, annotations, tasks) and HTTP 404 with Error body for unknown IDs
status: done
assignee: ziimakc
createdAt: "2026-03-08T18:10:09Z"
updatedAt: "2026-03-08T18:10:09Z"
- id: TASK-032
requirementId: FR-API-004
title: "Tests: GET /requirements/{requirementId} — 200 with full traceability chain for existing ID; 404 with error body for unknown ID; annotations and tasks arrays populated correctly"
status: done
assignee: ziimakc
createdAt: "2026-03-08T18:10:09Z"
updatedAt: "2026-03-08T18:10:09Z"
- id: TASK-033
requirementId: FR-API-005
title: Implement GET /requirements with query params (type, status, sort, order) returning HTTP 200 with filtered and sorted Requirement array
status: done
assignee: ziimakc
createdAt: "2026-03-08T18:10:09Z"
updatedAt: "2026-03-08T18:10:09Z"
- id: TASK-034
requirementId: FR-API-005
title: "Tests: GET /requirements — unfiltered returns all; type filter; status filter; sort by id and updatedAt; order asc and desc"
status: done
assignee: ziimakc
createdAt: "2026-03-08T18:10:09Z"
updatedAt: "2026-03-08T18:10:09Z"
- id: TASK-035
requirementId: FR-API-006
title: Implement GET /annotations sorted by file+line, with query params (type, orphans) returning HTTP 200 with Annotation array
status: done
assignee: ziimakc
createdAt: "2026-03-08T18:10:09Z"
updatedAt: "2026-03-08T18:10:09Z"
- id: TASK-036
requirementId: FR-API-006
title: "Tests: GET /annotations — all returned sorted by file+line; type=impl/test filter; orphans=true returns only orphan annotations"
status: done
assignee: ziimakc
createdAt: "2026-03-08T18:10:09Z"
updatedAt: "2026-03-08T18:10:09Z"
- id: TASK-037
requirementId: FR-API-007
title: Implement GET /tasks with query params (status, orphans, sort, order) returning HTTP 200 with Task array
status: done
assignee: ziimakc
createdAt: "2026-03-08T18:10:09Z"
updatedAt: "2026-03-08T18:10:09Z"
- id: TASK-038
requirementId: FR-API-007
title: "Tests: GET /tasks — unfiltered returns all; status filter; orphans=true returns only orphan tasks; sort and order params"
status: done
assignee: ziimakc
createdAt: "2026-03-08T18:10:09Z"
updatedAt: "2026-03-08T18:10:09Z"
- id: TASK-039
requirementId: FR-API-008
title: Implement GET /stats returning HTTP 200 with Stats (requirements by type/status, annotation counts, task counts, coverage percentage, lastScanAt)
status: done
assignee: ziimakc
createdAt: "2026-03-08T18:10:09Z"
updatedAt: "2026-03-08T18:10:09Z"
- id: TASK-040
requirementId: FR-API-008
title: "Tests: GET /stats — all fields present; byType/byStatus keys match enum values; coverage = covered/total*100; orphan counts correct"
status: done
assignee: ziimakc
createdAt: "2026-03-08T18:10:09Z"
updatedAt: "2026-03-08T18:10:09Z"
- id: TASK-041
requirementId: FR-SH-001
title: "Tests: self-hosting — cargo fmt --check, cargo clippy -D warnings, cargo test, cargo build --release, and strict self-scan all pass; add dummy @req comment in main.rs"
status: done
assignee: ziimakc
createdAt: "2026-03-08T18:10:09Z"
updatedAt: "2026-03-08T18:10:09Z"
- id: TASK-044
requirementId: FR-SH-003
title: Write README.md covering what the service does, how to build, CLI usage, server mode usage, and API endpoint reference; add dummy @req comment in main.rs
status: done
assignee: ziimakc
createdAt: "2026-03-08T18:10:09Z"
updatedAt: "2026-03-08T17:36:09Z"
- id: TASK-045
requirementId: FR-SH-003
title: "Tests: README.md exists, contains build instructions, CLI and server sections, and API reference headings"
status: done
assignee: ziimakc
createdAt: "2026-03-08T18:10:09Z"
updatedAt: "2026-03-08T18:10:09Z"
- id: TASK-046
requirementId: FR-SH-004
title: Generate PROCESS.md from AI conversation history (tools used, conversation log, timeline, key decisions, developer control, course corrections, self-assessment); add dummy @req comment in main.rs
status: done
assignee: ziimakc
createdAt: "2026-03-08T18:10:09Z"
updatedAt: "2026-03-08T18:10:09Z"
- id: TASK-047
requirementId: FR-SH-004
title: "Tests: PROCESS.md exists and contains all seven required sections (Tools Used, Conversation Log, Timeline, Key Decisions, What the Developer Controlled, Course Corrections, Self-Assessment)"
status: done
assignee: ziimakc
createdAt: "2026-03-08T18:10:09Z"
updatedAt: "2026-03-08T18:10:09Z"