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.
Files changed (35) hide show
  1. package/README.md +45 -39
  2. package/dist/init.d.ts +26 -1
  3. package/dist/init.d.ts.map +1 -1
  4. package/dist/init.js +98 -4
  5. package/dist/init.js.map +1 -1
  6. package/dist/plugin/engine/types.d.ts +1 -0
  7. package/dist/plugin/engine/types.d.ts.map +1 -1
  8. package/dist/plugin/tools/spec-artifact-instr.d.ts +10 -0
  9. package/dist/plugin/tools/spec-artifact-instr.d.ts.map +1 -1
  10. package/dist/plugin/tools/spec-artifact-instr.js +40 -1
  11. package/dist/plugin/tools/spec-artifact-instr.js.map +1 -1
  12. package/dist/plugin/tools/util.d.ts.map +1 -1
  13. package/dist/plugin/tools/util.js +2 -0
  14. package/dist/plugin/tools/util.js.map +1 -1
  15. package/package.json +1 -1
  16. package/src/schemas/ui-driven.yaml +1 -0
  17. package/src/templates/hybrid/schema.yaml +32 -0
  18. package/src/templates/hybrid/tasks.yaml +103 -0
  19. package/src/templates/spec-driven/design-tech.yaml +42 -0
  20. package/src/templates/spec-driven/proposal.yaml +43 -0
  21. package/src/templates/spec-driven/schema.yaml +32 -0
  22. package/src/templates/spec-driven/spec.yaml +56 -0
  23. package/src/templates/tdd/design-tech.yaml +42 -0
  24. package/src/templates/tdd/proposal.yaml +43 -0
  25. package/src/templates/tdd/schema.yaml +32 -0
  26. package/src/templates/tdd/spec.yaml +56 -0
  27. package/src/templates/tdd/tasks.yaml +77 -0
  28. package/src/templates/ui-driven/design-html.html +224 -0
  29. package/src/templates/ui-driven/schema.yaml +33 -0
  30. /package/src/templates/{design-tech.yaml → hybrid/design-tech.yaml} +0 -0
  31. /package/src/templates/{proposal.yaml → hybrid/proposal.yaml} +0 -0
  32. /package/src/templates/{spec.yaml → hybrid/spec.yaml} +0 -0
  33. /package/src/templates/{tasks.yaml → spec-driven/tasks.yaml} +0 -0
  34. /package/src/templates/{design-hifi.yaml → ui-driven/design-hifi.yaml} +0 -0
  35. /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