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: prpm.json
+4-4Lines changed: 4 additions & 4 deletions
Original file line number
Diff line number
Diff line change
@@ -1,6 +1,6 @@
1
1
{
2
2
"name": "agent-workforce-skills",
3
-
"version": "1.0.1",
3
+
"version": "1.0.2",
4
4
"description": "Skills for multi-agent coordination - swarm patterns, workflow building, relay usage, and headless orchestration",
5
5
"author": "khaliqgant",
6
6
"organization": "agent-relay",
@@ -28,7 +28,7 @@
28
28
},
29
29
{
30
30
"name": "writing-agent-relay-workflows",
31
-
"version": "1.6.2",
31
+
"version": "1.6.3",
32
32
"description": "Use when building multi-agent workflows with the relay broker-sdk - covers conversation-shape vs pipeline-shape coordination, WorkflowBuilder API, DAG step dependencies, agent definitions, output chaining via {{steps.X.output}}, verification gates, evidence-based completion, channels, swarm patterns, chat-native coordination recipes (Q/A, broadcast-ack, peer review, standup, hand-off), error handling, event listeners, step sizing, lead+workers team pattern, and parallel wave planning",
33
33
"format": "claude",
34
34
"subtype": "skill",
@@ -107,7 +107,7 @@
107
107
},
108
108
{
109
109
"name": "relay-80-100-workflow",
110
-
"version": "1.0.0",
110
+
"version": "1.0.1",
111
111
"description": "Use when writing agent-relay workflows that must fully validate features end-to-end before merging - covers the 80-to-100 pattern with PGlite in-memory Postgres testing, mock sandbox patterns, test-fix-rerun loops, verify gates, and full lifecycle from implementation through passing tests to commit",
112
112
"format": "claude",
113
113
"subtype": "skill",
@@ -166,7 +166,7 @@
166
166
"id": "agent-relay-starter",
167
167
"name": "Agent Relay Starter",
168
168
"description": "Essential skills for building multi-agent systems with Agent Relay - swarm pattern selection, workflow authoring, and trail debugging",
Copy file name to clipboardExpand all lines: skills/relay-80-100-workflow/SKILL.md
+83-18Lines changed: 83 additions & 18 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,6 +1,6 @@
1
1
---
2
2
name: relay-80-100-workflow
3
-
description: Use when writing agent-relay workflows that must fully validate features end-to-end before merging. Covers the 80-to-100 pattern - going beyond "code compiles" to "feature works, tested E2E locally." Includes PGlite for in-memory Postgres testing, mock sandbox patterns, test-fix-rerun loops, verify gates after every edit, and the full lifecycle from implementation through passing tests to commit.
3
+
description: Use when writing agent-relay workflows that must fully validate features end-to-end before merging. Covers the 80-to-100 pattern - going beyond "code compiles" to "feature works, tested E2E locally." Includes repair-before-failure validation gates, PGlite for in-memory Postgres testing, mock sandbox patterns, test-fix-rerun loops, verify gates after every edit, and the full lifecycle from implementation through passing tests to commit.
This means the commit at the end of the workflow represents code that is **proven working**, not just code that an agent wrote and claimed works.
28
28
29
+
## Repair Before Failure
30
+
31
+
An 80-to-100 workflow should not stop merely because a test, typecheck, lint, schema, or E2E gate turns red. That red output is work for the agent team. Capture it, hand it to a repair owner, fix it, and rerun. Reserve workflow failure for cases the team cannot repair in the current run, such as missing credentials, wrong repository, exhausted repair budget, or an unsafe dirty worktree.
32
+
33
+
Use this shape for every meaningful gate:
34
+
35
+
1.`run-*`: deterministic command with `captureOutput: true` and `failOnError: false`.
36
+
2.`fix-*`: agent step that reads `{{steps.run-*.output}}`, fixes source/tests/config, and reruns the command locally until green.
37
+
3.`verify-*`: deterministic rerun, usually still `failOnError: false`, followed by a final repair step if red.
38
+
4.`commit-if-green`: deterministic step that reruns the full acceptance command and commits only when every exit code is zero.
39
+
40
+
AgentWorkforce/relay#827 added repair-aware reliability to the SDK (`.reliable()` / `.repairable()` and repair-aware retry-mode workflows). Prefer those presets when available, but still model explicit repair owners when gate output needs domain-specific fixing.
41
+
29
42
## The Test-Fix-Rerun Pattern
30
43
31
-
Every testable feature in a workflow should follow this three-step pattern:
44
+
Every testable feature in a workflow should follow this four-step pattern:
32
45
33
46
```typescript
34
47
// Step 1: Run tests (allow failure — we expect issues on first run)
@@ -58,20 +71,31 @@ If there are failures:
58
71
verification: { type: 'exit_code' },
59
72
})
60
73
61
-
// Step 3: Deterministic final run — this one MUST pass
74
+
// Step 3: Deterministic rerun — capture result for a final repair pass
| No regressions | Existing test suite runs after changes |
392
-
| Every edit is verified |`git diff --quiet` + grep after each agent edit |
393
-
| Commit only happens after all gates|`dependsOn` chains to final verification|
456
+
| Every edit is verified and repairable |`git diff --quiet` + grep after each agent edit, followed by a fix step|
457
+
| Commit only happens after green evidence|Final commit step reruns acceptance checks and commits only on zero exit codes|
394
458
395
459
## Common Anti-Patterns
396
460
397
461
| Anti-pattern | Why it fails | Fix |
398
462
|-------------|-------------|-----|
399
463
| Tests written but never executed | Agent claims they pass, they don't | Add deterministic `run-tests` step |
400
-
| Single `failOnError: true` test run | First failure kills workflow, no chance to fix | Use the three-step test-fix-rerun pattern|
464
+
| Single `failOnError: true` test run | First failure kills workflow, no chance to fix | Use repairable run-fix-rerun-final-fix loops|
401
465
| No regression test | New feature works, old features break | Run `npm test` after build check |
402
466
| Agent asked to "write and run tests" in one step | Agent writes tests, runs them, they fail, it edits, output is garbled | Separate write/run/fix into distinct steps |
403
467
| PGlite DDL doesn't match Drizzle schema | Tests pass on wrong schema | Derive DDL from schema.ts or test with real migration |
404
-
|`failOnError: false` on final test run | Broken tests get committed|Always `failOnError: true` on the gate step|
468
+
|Final test output not handed to an agent | Broken tests can stop the run or get ignored|Add a final repair owner before commit|
405
469
| Testing only happy path | Edge cases break in prod | Specify edge case tests in the task prompt |
406
-
| No verify gate after agent edits | Agent exits 0 without writing anything | Add `git diff --quiet` check after every edit |
470
+
| No verify gate after agent edits | Agent exits 0 without writing anything | Add `git diff --quiet` check after every edit, then route failures to a repair step |
471
+
| Committing after `failOnError: false` without checking exits | Broken work can be committed because the shell step returned successfully | In `commit-if-green`, record each exit code and skip commit unless all are zero |
0 commit comments