arggon-harness 0.1.2 → 0.2.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/README.md +45 -39
- package/dist/init.d.ts +26 -1
- package/dist/init.d.ts.map +1 -1
- package/dist/init.js +98 -4
- package/dist/init.js.map +1 -1
- package/dist/plugin/engine/types.d.ts +1 -0
- package/dist/plugin/engine/types.d.ts.map +1 -1
- package/dist/plugin/tools/spec-artifact-instr.d.ts +10 -0
- package/dist/plugin/tools/spec-artifact-instr.d.ts.map +1 -1
- package/dist/plugin/tools/spec-artifact-instr.js +40 -1
- package/dist/plugin/tools/spec-artifact-instr.js.map +1 -1
- package/dist/plugin/tools/util.d.ts.map +1 -1
- package/dist/plugin/tools/util.js +2 -0
- package/dist/plugin/tools/util.js.map +1 -1
- package/package.json +1 -1
- package/src/schemas/ui-driven.yaml +1 -0
- package/src/templates/hybrid/schema.yaml +32 -0
- package/src/templates/hybrid/tasks.yaml +103 -0
- package/src/templates/spec-driven/design-tech.yaml +42 -0
- package/src/templates/spec-driven/proposal.yaml +43 -0
- package/src/templates/spec-driven/schema.yaml +32 -0
- package/src/templates/spec-driven/spec.yaml +56 -0
- package/src/templates/tdd/design-tech.yaml +42 -0
- package/src/templates/tdd/proposal.yaml +43 -0
- package/src/templates/tdd/schema.yaml +32 -0
- package/src/templates/tdd/spec.yaml +56 -0
- package/src/templates/tdd/tasks.yaml +77 -0
- package/src/templates/ui-driven/design-html.html +224 -0
- package/src/templates/ui-driven/schema.yaml +33 -0
- /package/src/templates/{design-tech.yaml → hybrid/design-tech.yaml} +0 -0
- /package/src/templates/{proposal.yaml → hybrid/proposal.yaml} +0 -0
- /package/src/templates/{spec.yaml → hybrid/spec.yaml} +0 -0
- /package/src/templates/{tasks.yaml → spec-driven/tasks.yaml} +0 -0
- /package/src/templates/{design-hifi.yaml → ui-driven/design-hifi.yaml} +0 -0
- /package/src/templates/{design-wireframe.yaml → ui-driven/design-wireframe.yaml} +0 -0
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
# Hybrid Workflow Tasks Template
|
|
2
|
+
#
|
|
3
|
+
# Supports both standard task patterns and TDD RED→GREEN→REFACTOR tasks.
|
|
4
|
+
#
|
|
5
|
+
# Use STANDARD tasks when:
|
|
6
|
+
# - Implementing well-understood features with clear requirements
|
|
7
|
+
# - Making infrastructure/config/build changes
|
|
8
|
+
# - Writing documentation or non-code artifacts
|
|
9
|
+
# - Making small, low-risk changes
|
|
10
|
+
#
|
|
11
|
+
# Use TDD tasks (with tdd_phase) when:
|
|
12
|
+
# - Implementing core business logic
|
|
13
|
+
# - Making changes with high regression risk
|
|
14
|
+
# - Building new APIs or data processing pipelines
|
|
15
|
+
# - Refactoring complex code
|
|
16
|
+
#
|
|
17
|
+
# Standard tasks use: id, group, description, depends_on, complexity,
|
|
18
|
+
# estimated_minutes, spec_refs, affected_files, acceptance, status
|
|
19
|
+
#
|
|
20
|
+
# TDD tasks add: tdd_phase: 'red' | 'green' | 'refactor'
|
|
21
|
+
#
|
|
22
|
+
# You can mix both patterns in the same task list.
|
|
23
|
+
# Standard tasks typically go first (setup), then TDD loops for each behavior.
|
|
24
|
+
|
|
25
|
+
workflow: hybrid
|
|
26
|
+
|
|
27
|
+
agent:
|
|
28
|
+
critical_path:
|
|
29
|
+
- t1
|
|
30
|
+
- t2
|
|
31
|
+
- t3
|
|
32
|
+
- t4
|
|
33
|
+
total_estimated_minutes: 200
|
|
34
|
+
|
|
35
|
+
tasks:
|
|
36
|
+
# ── Standard task example (infrastructure/setup) ──
|
|
37
|
+
- id: t1
|
|
38
|
+
group: Setup
|
|
39
|
+
description: Configure [dependency/infrastructure]
|
|
40
|
+
depends_on: []
|
|
41
|
+
complexity: low
|
|
42
|
+
estimated_minutes: 20
|
|
43
|
+
spec_refs:
|
|
44
|
+
- [capability-id]/REQ-[requirement-id]
|
|
45
|
+
affected_files:
|
|
46
|
+
- [path/to/config/file]
|
|
47
|
+
acceptance:
|
|
48
|
+
- [dependency] is configured and working
|
|
49
|
+
- Configuration follows project conventions
|
|
50
|
+
status: pending
|
|
51
|
+
|
|
52
|
+
# ── TDD loop: RED → GREEN → REFACTOR for [behavior-1] ──
|
|
53
|
+
- id: t2
|
|
54
|
+
group: "TDD: RED"
|
|
55
|
+
description: Write failing test for [behavior-1]
|
|
56
|
+
depends_on:
|
|
57
|
+
- t1
|
|
58
|
+
complexity: low
|
|
59
|
+
estimated_minutes: 15
|
|
60
|
+
spec_refs:
|
|
61
|
+
- [capability-id]/REQ-[requirement-id]
|
|
62
|
+
affected_files:
|
|
63
|
+
- test/[test-file].test.ts
|
|
64
|
+
acceptance:
|
|
65
|
+
- Test compiles and runs
|
|
66
|
+
- Test fails with expected message
|
|
67
|
+
tdd_phase: red
|
|
68
|
+
status: pending
|
|
69
|
+
|
|
70
|
+
- id: t3
|
|
71
|
+
group: "TDD: GREEN"
|
|
72
|
+
description: Implement minimal code to pass [behavior-1] test
|
|
73
|
+
depends_on:
|
|
74
|
+
- t2
|
|
75
|
+
complexity: low
|
|
76
|
+
estimated_minutes: 20
|
|
77
|
+
spec_refs:
|
|
78
|
+
- [capability-id]/REQ-[requirement-id]
|
|
79
|
+
affected_files:
|
|
80
|
+
- src/[implementation].ts
|
|
81
|
+
acceptance:
|
|
82
|
+
- All existing tests still pass
|
|
83
|
+
- New test from t2 now passes
|
|
84
|
+
tdd_phase: green
|
|
85
|
+
status: pending
|
|
86
|
+
|
|
87
|
+
- id: t4
|
|
88
|
+
group: "TDD: REFACTOR"
|
|
89
|
+
description: Refactor [behavior-1] implementation and tests
|
|
90
|
+
depends_on:
|
|
91
|
+
- t3
|
|
92
|
+
complexity: medium
|
|
93
|
+
estimated_minutes: 25
|
|
94
|
+
spec_refs:
|
|
95
|
+
- [capability-id]/REQ-[requirement-id]
|
|
96
|
+
affected_files:
|
|
97
|
+
- src/[implementation].ts
|
|
98
|
+
- test/[test-file].test.ts
|
|
99
|
+
acceptance:
|
|
100
|
+
- All tests still pass
|
|
101
|
+
- Code is clean and follows conventions
|
|
102
|
+
tdd_phase: refactor
|
|
103
|
+
status: pending
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
# Design Template
|
|
2
|
+
#
|
|
3
|
+
# Instructions:
|
|
4
|
+
# - Focus on HOW to implement
|
|
5
|
+
# - Include alternatives considered
|
|
6
|
+
# - Only create if change is complex enough
|
|
7
|
+
|
|
8
|
+
id: <change-name>
|
|
9
|
+
schema: <schema-name>
|
|
10
|
+
|
|
11
|
+
agent:
|
|
12
|
+
context_files:
|
|
13
|
+
- <relevant files>
|
|
14
|
+
affected_paths:
|
|
15
|
+
- <paths affected>
|
|
16
|
+
|
|
17
|
+
body:
|
|
18
|
+
context: |
|
|
19
|
+
<Background, current state, constraints>
|
|
20
|
+
|
|
21
|
+
goals:
|
|
22
|
+
- <What this design achieves>
|
|
23
|
+
- <Another goal>
|
|
24
|
+
|
|
25
|
+
non_goals:
|
|
26
|
+
- <What's explicitly out of scope>
|
|
27
|
+
- <Another non-goal>
|
|
28
|
+
|
|
29
|
+
decisions:
|
|
30
|
+
- title: <decision title>
|
|
31
|
+
approach: |
|
|
32
|
+
<Chosen approach and rationale>
|
|
33
|
+
alternatives: |
|
|
34
|
+
<Alternatives considered and why not chosen>
|
|
35
|
+
|
|
36
|
+
- title: <another decision>
|
|
37
|
+
approach: |
|
|
38
|
+
<approach>
|
|
39
|
+
|
|
40
|
+
risks:
|
|
41
|
+
- <Risk and mitigation strategy>
|
|
42
|
+
- <Another risk>
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
# Proposal Template
|
|
2
|
+
#
|
|
3
|
+
# Instructions:
|
|
4
|
+
# - Replace <placeholders> with actual values
|
|
5
|
+
# - Remove comment lines (starting with #) before saving
|
|
6
|
+
# - Keep the structure intact
|
|
7
|
+
|
|
8
|
+
id: <change-name-kebab-case>
|
|
9
|
+
schema: <schema-name>
|
|
10
|
+
created: <YYYY-MM-DD>
|
|
11
|
+
status: active
|
|
12
|
+
|
|
13
|
+
agent:
|
|
14
|
+
priority: <low|medium|high>
|
|
15
|
+
context_files:
|
|
16
|
+
- <file1.ts>
|
|
17
|
+
- <file2.ts>
|
|
18
|
+
affected_paths:
|
|
19
|
+
- <src/path/**>
|
|
20
|
+
hints:
|
|
21
|
+
- <implementation hint>
|
|
22
|
+
|
|
23
|
+
body:
|
|
24
|
+
why: |
|
|
25
|
+
<1-3 sentences explaining the problem and why this change is needed>
|
|
26
|
+
|
|
27
|
+
what_changes:
|
|
28
|
+
- <bullet point describing a change>
|
|
29
|
+
- <another change>
|
|
30
|
+
|
|
31
|
+
capabilities:
|
|
32
|
+
new:
|
|
33
|
+
- id: <capability-id>
|
|
34
|
+
description: <what this capability does>
|
|
35
|
+
modified:
|
|
36
|
+
- id: <existing-capability-id>
|
|
37
|
+
description: <what changed>
|
|
38
|
+
|
|
39
|
+
impact:
|
|
40
|
+
- path: <src/file.ts>
|
|
41
|
+
change: <what changes in this file>
|
|
42
|
+
- path: <src/another.ts>
|
|
43
|
+
change: <description>
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
name: spec-driven
|
|
2
|
+
version: 1
|
|
3
|
+
description: Standard spec-driven workflow with proposal, specs, design, and tasks
|
|
4
|
+
|
|
5
|
+
artifacts:
|
|
6
|
+
- id: proposal
|
|
7
|
+
generates: proposal.yaml
|
|
8
|
+
description: Change proposal with why, what, and impact
|
|
9
|
+
template: proposal.yaml
|
|
10
|
+
requires: []
|
|
11
|
+
|
|
12
|
+
- id: specs
|
|
13
|
+
generates: specs/*.yaml
|
|
14
|
+
description: Delta specifications for each capability with requirement scenarios
|
|
15
|
+
template: spec.yaml
|
|
16
|
+
requires: [proposal]
|
|
17
|
+
|
|
18
|
+
- id: design-tech
|
|
19
|
+
generates: design-tech.yaml
|
|
20
|
+
description: Technical design with architecture decisions, alternatives, and risks
|
|
21
|
+
template: design-tech.yaml
|
|
22
|
+
requires: [proposal]
|
|
23
|
+
|
|
24
|
+
- id: tasks
|
|
25
|
+
generates: tasks.yaml
|
|
26
|
+
description: Implementation task list with dependencies and acceptance criteria
|
|
27
|
+
template: tasks.yaml
|
|
28
|
+
requires: [specs, design-tech]
|
|
29
|
+
|
|
30
|
+
apply:
|
|
31
|
+
requires: [tasks]
|
|
32
|
+
tracks: tasks.yaml
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
# Delta Spec Template
|
|
2
|
+
#
|
|
3
|
+
# Instructions:
|
|
4
|
+
# - One file per capability
|
|
5
|
+
# - Use operations: add, modify, remove, rename
|
|
6
|
+
# - Each requirement must have at least one scenario
|
|
7
|
+
# - Add verify blocks for testable assertions
|
|
8
|
+
|
|
9
|
+
capability: <capability-id>
|
|
10
|
+
version: 1
|
|
11
|
+
|
|
12
|
+
agent:
|
|
13
|
+
related_specs:
|
|
14
|
+
- <other-capability>
|
|
15
|
+
affected_paths:
|
|
16
|
+
- <src/auth/**>
|
|
17
|
+
|
|
18
|
+
operations:
|
|
19
|
+
- op: add
|
|
20
|
+
requirement:
|
|
21
|
+
id: <requirement-id>
|
|
22
|
+
description: |
|
|
23
|
+
The system SHALL <behavior description>.
|
|
24
|
+
scenarios:
|
|
25
|
+
- id: <scenario-id>
|
|
26
|
+
given:
|
|
27
|
+
- <precondition>
|
|
28
|
+
when:
|
|
29
|
+
- <action or event>
|
|
30
|
+
then:
|
|
31
|
+
- <expected outcome>
|
|
32
|
+
verify:
|
|
33
|
+
- type: assertion
|
|
34
|
+
code: "<testable assertion>"
|
|
35
|
+
|
|
36
|
+
# Example modify operation:
|
|
37
|
+
# - op: modify
|
|
38
|
+
# requirement:
|
|
39
|
+
# id: <existing-requirement-id>
|
|
40
|
+
# description: |
|
|
41
|
+
# <complete updated requirement>
|
|
42
|
+
# scenarios:
|
|
43
|
+
# - id: <scenario-id>
|
|
44
|
+
# given: [...]
|
|
45
|
+
# when: [...]
|
|
46
|
+
# then: [...]
|
|
47
|
+
|
|
48
|
+
# Example remove operation:
|
|
49
|
+
# - op: remove
|
|
50
|
+
# requirement:
|
|
51
|
+
# id: <requirement-to-remove>
|
|
52
|
+
|
|
53
|
+
# Example rename operation:
|
|
54
|
+
# - op: rename
|
|
55
|
+
# from: <old-id>
|
|
56
|
+
# to: <new-id>
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
# Design Template
|
|
2
|
+
#
|
|
3
|
+
# Instructions:
|
|
4
|
+
# - Focus on HOW to implement
|
|
5
|
+
# - Include alternatives considered
|
|
6
|
+
# - Only create if change is complex enough
|
|
7
|
+
|
|
8
|
+
id: <change-name>
|
|
9
|
+
schema: <schema-name>
|
|
10
|
+
|
|
11
|
+
agent:
|
|
12
|
+
context_files:
|
|
13
|
+
- <relevant files>
|
|
14
|
+
affected_paths:
|
|
15
|
+
- <paths affected>
|
|
16
|
+
|
|
17
|
+
body:
|
|
18
|
+
context: |
|
|
19
|
+
<Background, current state, constraints>
|
|
20
|
+
|
|
21
|
+
goals:
|
|
22
|
+
- <What this design achieves>
|
|
23
|
+
- <Another goal>
|
|
24
|
+
|
|
25
|
+
non_goals:
|
|
26
|
+
- <What's explicitly out of scope>
|
|
27
|
+
- <Another non-goal>
|
|
28
|
+
|
|
29
|
+
decisions:
|
|
30
|
+
- title: <decision title>
|
|
31
|
+
approach: |
|
|
32
|
+
<Chosen approach and rationale>
|
|
33
|
+
alternatives: |
|
|
34
|
+
<Alternatives considered and why not chosen>
|
|
35
|
+
|
|
36
|
+
- title: <another decision>
|
|
37
|
+
approach: |
|
|
38
|
+
<approach>
|
|
39
|
+
|
|
40
|
+
risks:
|
|
41
|
+
- <Risk and mitigation strategy>
|
|
42
|
+
- <Another risk>
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
# Proposal Template
|
|
2
|
+
#
|
|
3
|
+
# Instructions:
|
|
4
|
+
# - Replace <placeholders> with actual values
|
|
5
|
+
# - Remove comment lines (starting with #) before saving
|
|
6
|
+
# - Keep the structure intact
|
|
7
|
+
|
|
8
|
+
id: <change-name-kebab-case>
|
|
9
|
+
schema: <schema-name>
|
|
10
|
+
created: <YYYY-MM-DD>
|
|
11
|
+
status: active
|
|
12
|
+
|
|
13
|
+
agent:
|
|
14
|
+
priority: <low|medium|high>
|
|
15
|
+
context_files:
|
|
16
|
+
- <file1.ts>
|
|
17
|
+
- <file2.ts>
|
|
18
|
+
affected_paths:
|
|
19
|
+
- <src/path/**>
|
|
20
|
+
hints:
|
|
21
|
+
- <implementation hint>
|
|
22
|
+
|
|
23
|
+
body:
|
|
24
|
+
why: |
|
|
25
|
+
<1-3 sentences explaining the problem and why this change is needed>
|
|
26
|
+
|
|
27
|
+
what_changes:
|
|
28
|
+
- <bullet point describing a change>
|
|
29
|
+
- <another change>
|
|
30
|
+
|
|
31
|
+
capabilities:
|
|
32
|
+
new:
|
|
33
|
+
- id: <capability-id>
|
|
34
|
+
description: <what this capability does>
|
|
35
|
+
modified:
|
|
36
|
+
- id: <existing-capability-id>
|
|
37
|
+
description: <what changed>
|
|
38
|
+
|
|
39
|
+
impact:
|
|
40
|
+
- path: <src/file.ts>
|
|
41
|
+
change: <what changes in this file>
|
|
42
|
+
- path: <src/another.ts>
|
|
43
|
+
change: <description>
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
name: tdd
|
|
2
|
+
version: 1
|
|
3
|
+
description: Test-driven development with RED-GREEN-REFACTOR vertical slices
|
|
4
|
+
|
|
5
|
+
artifacts:
|
|
6
|
+
- id: proposal
|
|
7
|
+
generates: proposal.yaml
|
|
8
|
+
description: Change proposal with testable acceptance criteria
|
|
9
|
+
template: proposal.yaml
|
|
10
|
+
requires: []
|
|
11
|
+
|
|
12
|
+
- id: specs
|
|
13
|
+
generates: specs/*.yaml
|
|
14
|
+
description: Requirements with Gherkin scenarios and test verification blocks
|
|
15
|
+
template: spec.yaml
|
|
16
|
+
requires: [proposal]
|
|
17
|
+
|
|
18
|
+
- id: design-tech
|
|
19
|
+
generates: design-tech.yaml
|
|
20
|
+
description: Technical design with testability decisions and interface contracts
|
|
21
|
+
template: design-tech.yaml
|
|
22
|
+
requires: [specs]
|
|
23
|
+
|
|
24
|
+
- id: tasks
|
|
25
|
+
generates: tasks.yaml
|
|
26
|
+
description: Vertical slice tasks organized as RED-GREEN-REFACTOR per behavior
|
|
27
|
+
template: tasks.yaml
|
|
28
|
+
requires: [specs, design-tech]
|
|
29
|
+
|
|
30
|
+
apply:
|
|
31
|
+
requires: [tasks]
|
|
32
|
+
tracks: tasks.yaml
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
# Delta Spec Template
|
|
2
|
+
#
|
|
3
|
+
# Instructions:
|
|
4
|
+
# - One file per capability
|
|
5
|
+
# - Use operations: add, modify, remove, rename
|
|
6
|
+
# - Each requirement must have at least one scenario
|
|
7
|
+
# - Add verify blocks for testable assertions
|
|
8
|
+
|
|
9
|
+
capability: <capability-id>
|
|
10
|
+
version: 1
|
|
11
|
+
|
|
12
|
+
agent:
|
|
13
|
+
related_specs:
|
|
14
|
+
- <other-capability>
|
|
15
|
+
affected_paths:
|
|
16
|
+
- <src/auth/**>
|
|
17
|
+
|
|
18
|
+
operations:
|
|
19
|
+
- op: add
|
|
20
|
+
requirement:
|
|
21
|
+
id: <requirement-id>
|
|
22
|
+
description: |
|
|
23
|
+
The system SHALL <behavior description>.
|
|
24
|
+
scenarios:
|
|
25
|
+
- id: <scenario-id>
|
|
26
|
+
given:
|
|
27
|
+
- <precondition>
|
|
28
|
+
when:
|
|
29
|
+
- <action or event>
|
|
30
|
+
then:
|
|
31
|
+
- <expected outcome>
|
|
32
|
+
verify:
|
|
33
|
+
- type: assertion
|
|
34
|
+
code: "<testable assertion>"
|
|
35
|
+
|
|
36
|
+
# Example modify operation:
|
|
37
|
+
# - op: modify
|
|
38
|
+
# requirement:
|
|
39
|
+
# id: <existing-requirement-id>
|
|
40
|
+
# description: |
|
|
41
|
+
# <complete updated requirement>
|
|
42
|
+
# scenarios:
|
|
43
|
+
# - id: <scenario-id>
|
|
44
|
+
# given: [...]
|
|
45
|
+
# when: [...]
|
|
46
|
+
# then: [...]
|
|
47
|
+
|
|
48
|
+
# Example remove operation:
|
|
49
|
+
# - op: remove
|
|
50
|
+
# requirement:
|
|
51
|
+
# id: <requirement-to-remove>
|
|
52
|
+
|
|
53
|
+
# Example rename operation:
|
|
54
|
+
# - op: rename
|
|
55
|
+
# from: <old-id>
|
|
56
|
+
# to: <new-id>
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
# TDD Workflow Tasks Template
|
|
2
|
+
#
|
|
3
|
+
# Tasks are structured around the RED → GREEN → REFACTOR loop.
|
|
4
|
+
# Each vertical slice of behavior produces three tasks:
|
|
5
|
+
#
|
|
6
|
+
# RED: Write a failing test that defines the desired behavior
|
|
7
|
+
# GREEN: Write the minimal implementation to pass the test
|
|
8
|
+
# REFACTOR: Clean up both test and implementation
|
|
9
|
+
#
|
|
10
|
+
# The tdd_phase field marks which phase each task belongs to.
|
|
11
|
+
# Tasks without a tdd_phase use the standard task format.
|
|
12
|
+
|
|
13
|
+
workflow: tdd
|
|
14
|
+
|
|
15
|
+
agent:
|
|
16
|
+
critical_path:
|
|
17
|
+
- t1
|
|
18
|
+
- t2
|
|
19
|
+
- t3
|
|
20
|
+
total_estimated_minutes: 120
|
|
21
|
+
|
|
22
|
+
tasks:
|
|
23
|
+
- id: t1
|
|
24
|
+
group: RED
|
|
25
|
+
description: Write failing test for [behavior]
|
|
26
|
+
depends_on: []
|
|
27
|
+
complexity: low
|
|
28
|
+
estimated_minutes: 15
|
|
29
|
+
spec_refs:
|
|
30
|
+
- [capability-id]/REQ-[requirement-id]
|
|
31
|
+
affected_files:
|
|
32
|
+
- test/[path-to-test-file].test.ts
|
|
33
|
+
acceptance:
|
|
34
|
+
- Test compiles and runs
|
|
35
|
+
- Test fails with expected error/message
|
|
36
|
+
- Test name describes the expected behavior
|
|
37
|
+
tdd_phase: red
|
|
38
|
+
status: pending
|
|
39
|
+
|
|
40
|
+
- id: t2
|
|
41
|
+
group: GREEN
|
|
42
|
+
description: Implement minimal code to pass [behavior] test
|
|
43
|
+
depends_on:
|
|
44
|
+
- t1
|
|
45
|
+
complexity: low
|
|
46
|
+
estimated_minutes: 20
|
|
47
|
+
spec_refs:
|
|
48
|
+
- [capability-id]/REQ-[requirement-id]
|
|
49
|
+
affected_files:
|
|
50
|
+
- src/[path-to-implementation].ts
|
|
51
|
+
acceptance:
|
|
52
|
+
- All existing tests still pass
|
|
53
|
+
- New test from t1 now passes
|
|
54
|
+
- Implementation is minimal (no premature optimization)
|
|
55
|
+
- No new failing tests introduced
|
|
56
|
+
tdd_phase: green
|
|
57
|
+
status: pending
|
|
58
|
+
|
|
59
|
+
- id: t3
|
|
60
|
+
group: REFACTOR
|
|
61
|
+
description: Refactor [behavior] implementation and tests
|
|
62
|
+
depends_on:
|
|
63
|
+
- t2
|
|
64
|
+
complexity: medium
|
|
65
|
+
estimated_minutes: 25
|
|
66
|
+
spec_refs:
|
|
67
|
+
- [capability-id]/REQ-[requirement-id]
|
|
68
|
+
affected_files:
|
|
69
|
+
- src/[path-to-implementation].ts
|
|
70
|
+
- test/[path-to-test-file].test.ts
|
|
71
|
+
acceptance:
|
|
72
|
+
- All tests still pass
|
|
73
|
+
- Code follows project conventions
|
|
74
|
+
- No duplicated logic
|
|
75
|
+
- Names and structure are clean
|
|
76
|
+
tdd_phase: refactor
|
|
77
|
+
status: pending
|