You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: .github/aw/designer.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -30,7 +30,7 @@ Capture:
30
30
31
31
### Phase 1a: Intent
32
32
33
-
Before selecting a trigger or implementation, load [intent.md](intent.md) and derive the concise canonical outcome and transient IntentSpec. Confirm the outcome when it is ambiguous and persist it later as `intent:`. For explicit, narrow requests, keep this step lightweight.
33
+
Before selecting a trigger or implementation, load [intent.md](intent.md) and derive the concise canonical outcome and transient IntentSpec. Use it to derive PromptPex eval and inverse-eval scenarios and, when needed, operational value. Confirm the outcome when it is ambiguous and persist it later as `intent:`. For explicit, narrow requests, keep this step lightweight.
Copy file name to clipboardExpand all lines: .github/aw/intent.md
+28-2Lines changed: 28 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -10,7 +10,7 @@ Start every workflow design by extracting a concise, implementation-independent
10
10
intent: Reduce maintainer effort spent identifying recurring actionable CI regressions without generating duplicate work.
11
11
```
12
12
13
-
An intent describes the outcome for an actor and subject, not a trigger, tool, schedule, or write action. It must remain valid if the implementation changes from an immediate issue to a weekly digest.
13
+
An **intent** is the repository outcome that a workflow should attain for a defined actor and subject. It describes why the workflow exists, not its trigger, tool, schedule, output volume, or write action. It must remain valid if the implementation changes from an immediate issue to a weekly digest.
14
14
15
15
## Derive an IntentSpec
16
16
@@ -43,7 +43,14 @@ Use the model to derive implementation rather than mapping the request directly
43
43
44
44
For example, an intent to surface actionable CI regressions can require completed relevant CI, actionable and novel evidence, and sufficient diagnostics. Known flakes, infrastructure failures, already-tracked regressions, closed pull requests, and insufficient evidence are counter-cases. An immediate incident, PR comment, daily digest, and weekly trend report are alternative architectures; choose the one that best meets the intent without unnecessary attention cost.
45
45
46
-
## Derive Evals from Intent
46
+
## Apply PromptPex to Derive Evals
47
+
48
+
PromptPex treats the prompt as a behavioral specification and expands each intent condition into a concrete scenario. Use the IntentSpec to generate both sides of the behavior:
49
+
50
+
1. For each activation condition and required effect, create a positive fixture in which the workflow should produce an observable result. Derive an eval that returns `YES` only when the output demonstrates that result.
51
+
2. Invert each activation condition, required effect, and evidence threshold to find counter-intent cases such as irrelevant, duplicate, benign, stale, or insufficiently evidenced input.
52
+
3. Create an inverse fixture for each meaningful counter-case. Derive an inverse eval that returns `YES` only when the output demonstrates the intended no-op, bounded investigation, or other safe behavior.
53
+
4. Check that the positive and inverse fixtures jointly cover the intent without prescribing the implementation.
47
54
48
55
Create representative positive and adversarial scenario fixtures from required effects and no-op conditions. A BinEval run evaluates one provided scenario and one `agent_output.json`; do not combine mutually exclusive scenarios into one unconditional question list. For each fixture, use a separate scenario-specific eval question about the observable agent output:
49
56
@@ -53,6 +60,25 @@ Create representative positive and adversarial scenario fixtures from required e
53
60
54
61
Keep eval questions binary and output-observable. If a shared eval suite must accept different scenarios, make applicability explicit and treat a scenario that was not provided as `UNKNOWN`, not as a failure. Do not ask a judge whether the intent itself is good or whether the agent made sufficient effort.
55
62
63
+
See [evals.md](evals.md) for BinEval syntax and question constraints.
64
+
65
+
## Infer Operational Value from Intent
66
+
67
+
Operational value is the degree to which the workflow's intended repository outcome is attained for the opportunity assigned to a run, demonstrated by accepted repository evidence. Infer it from the IntentSpec rather than from execution quality, output volume, or the agent's own assessment:
68
+
69
+
1. Turn the actors, subject, and activation conditions into a stable per-run opportunity.
70
+
2. Turn the required effects and success conditions into accepted repository evidence and one direct attainment metric in `[0,1]`.
71
+
3. Turn no-op conditions into the zero rule, and uncertainties into explicit missing-evidence behavior.
72
+
4. Define when evidence matures and which repositories and matching rules are accepted.
73
+
74
+
Evals and operational value answer different questions. PromptPex evals test whether output follows the intended behavior for representative scenarios; operational value measures whether the intended repository outcome was attained for a real run. When adding an `operational-value` grader, use the `operational-value-designer` skill to freeze the evidence and metric contract.
75
+
76
+
## Infer Trace Graders from Intent
77
+
78
+
Select graders that test a concrete risk to achieving the intent; do not enable metrics merely because they are available. Start with the known builtin graders: use `tool-success-rate` and `tool-failure-count` when reliable collection is required; `retries`, `loops`, `execution-step-count`, and `execution-duration` when boundedness or timely escalation matters; `working-set-rebuild-factor` and `context-growth` when repeated context is an attention or cost risk; `trajectory-efficiency` when unnecessary tool churn is a concern; and `artifact-production` only when producing the intended artifacts is itself useful diagnostic evidence.
79
+
80
+
Then inspect the implemented fragments in [`shared/graders/`](../workflows/shared/graders/README.md). Use `policy-near-miss` for explicit guard or no-op requirements. For intents that require efficient investigation rather than repeated exploration, consider `state-revisit-probability-rep`, `recurrence-rate`, `recurrence-determinism`, `recurrence-laminarity`, or `recurrence-trapping-time`. For intents where varied, non-repetitive investigation is relevant, consider `event-entropy-rate` or `lempel-ziv-trajectory-complexity`. Import only the applicable implemented fragments and ensure their documented trace prerequisites are available. These trace graders diagnose execution behavior; they do not replace scenario evals or the operational-value attainment metric.
81
+
56
82
## Preserve Intent on Updates
57
83
58
84
Read the existing `intent:` before changing an existing workflow. Preserve it for an implementation-only change, including a trigger or output-channel redesign. Reconsider and update it only when the request materially expands, contracts, or otherwise changes the outcome. When it changes, re-derive conditions, architecture, prompt behavior, and evals.
0 commit comments