-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathfull-cycle.harness.yaml
More file actions
139 lines (125 loc) · 4.2 KB
/
Copy pathfull-cycle.harness.yaml
File metadata and controls
139 lines (125 loc) · 4.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
apiVersion: devspark.ai/v1
kind: HarnessSpec
name: full-cycle
# Genuinely unattended lifecycle runner. Unlike templates/workflows/full-cycle.yaml
# (which is sequenced by `devspark run` and expects an already-present driving
# agent to read each "invoke X via Y" line), this spec is executed by
# `devspark harness run`, which shells out to a real adapter CLI per step.
#
# devspark harness run full-cycle.harness.yaml --adapter claude_code --hands-off
#
# Run `devspark adapter doctor` first to confirm a write-capable adapter is
# actually available (claude_code/codex shell out to `claude`/`codex --print`;
# copilot/cursor require their respective CLIs on PATH).
#
# Validation rules below deliberately avoid hardcoding a feature directory —
# none exists yet when this spec is authored — by resolving the most recently
# modified .documentation/specs/*/ directory at validation time instead.
scope:
type: repo
defaults:
adapter: noop
mode: agent
retry:
maxAttempts: 2
backoff: fixed
telemetry:
emit_jsonl: true
run_dir: .documentation/devspark/runs
steps:
- id: specify
name: Write Feature Specification
type: agent_task
prompt_file: templates/commands/specify.md
validation:
- id: spec-present
type: command.exit_code
severity: error
command: "test -f \"$(ls -td .documentation/specs/*/ 2>/dev/null | head -1)spec.md\""
on_success: plan
- id: plan
name: Build Implementation Plan
type: agent_task
prompt_file: templates/commands/plan.md
validation:
- id: plan-present
type: command.exit_code
severity: error
command: "test -f \"$(ls -td .documentation/specs/*/ 2>/dev/null | head -1)plan.md\""
on_success: generate-tasks
- id: generate-tasks
name: Generate Task List
type: agent_task
prompt_file: templates/commands/tasks.md
validation:
- id: tasks-present
type: command.exit_code
severity: error
command: "test -f \"$(ls -td .documentation/specs/*/ 2>/dev/null | head -1)tasks.md\""
on_success: critic
- id: critic
name: Adversarial Risk Review
type: agent_task
prompt_file: templates/commands/critic.md
validation:
- id: critic-gate-present
type: command.exit_code
severity: warning
command: "test -f \"$(ls -td .documentation/specs/*/ 2>/dev/null | head -1)gates/critic.md\""
on_success: analyze
- id: analyze
name: Cross-Artifact Consistency Review
type: agent_task
prompt_file: templates/commands/analyze.md
validation:
- id: analyze-gate-present
type: command.exit_code
severity: warning
command: "test -f \"$(ls -td .documentation/specs/*/ 2>/dev/null | head -1)gates/analyze.md\""
on_success: remediate-gates
- id: remediate-gates
name: Merge Gate Findings Into Tasks
type: agent_task
prompt_file: templates/commands/tasks.md
validation:
- id: tasks-still-present
type: command.exit_code
severity: warning
command: "test -f \"$(ls -td .documentation/specs/*/ 2>/dev/null | head -1)tasks.md\""
on_success: implement
- id: implement
name: Execute Tasks
type: agent_task
prompt_file: templates/commands/implement.md
validation:
- id: delivery-evidence
type: command.exit_code
severity: error
command: "git diff --name-only origin/main...HEAD -- src/ test/ | grep -q ."
on_success: pre-pr-human-review
- id: pre-pr-human-review
name: Human Review Gate
type: human_gate
mode: manual
adapter: manual
prompt_file: templates/commands/create-pr.md
on_success: create-pr
- id: create-pr
name: Draft or Update Pull Request
type: agent_task
prompt_file: templates/commands/create-pr.md
validation:
- id: pr-exists
type: command.exit_code
severity: warning
command: "gh pr view --json number >/dev/null 2>&1"
on_success: review-pr
- id: review-pr
name: Constitution-Based PR Review
type: agent_task
prompt_file: templates/commands/pr-review.md
validation:
- id: review-dir-present
type: command.exit_code
severity: warning
command: "test -d .documentation/specs/pr-review"