Agent Codeyard

Examples

This site is built with Agent Codeyard. These are real runs of this repository, ordered by risk, followed from the Issue to the merged pull request with the records each step left.

  1. The examples by risk
  2. High risk, end to end: #217
  3. High risk, more runs: #189, #193, #204, #16
  4. Medium risk: #241
  5. What is not shown
  6. Where the figures come from

The examples by risk

The levels as each run recorded them. Risk-proportionate workflow.

The risk level of a feature decides which model writes it and what the review rounds require. This repository runs the shipped risk policy, without a profile line, so every feature is medium or high.

From the risk lines of each pull request description and the run records. Run: from the start of run-feature.sh to the pull request.
levelexamplewhy this levelroundsrunmerge approval
high#217, PR #222It changes the reviewer's contract, the review schema and gate scripts51 h 30 minrequired
medium#241, PR #249Website pages that no class of the policy names: the default313 minnot required
low–Exists only under profile: light, which this repository does not use–––

Under the shipped policy, medium and high run the same rounds: full verification, full review and full triage. What the level changed between these two runs is the model of the fixes and the owner's approval of the merge.

High risk, end to end: #217

Issue #217, PR #222. One unattended run of run-feature.sh, 28 October 2026.

The feature that gave every later review round the decisions of the earlier ones. It came out of Codeyard's analysis of its own runs, and it is followed here from its requirements to the merge.

Requirements

The run analysis of 28 October 2026 found that in five runs the reviewer raised a finding again as unresolved after it had been fixed, and that in one feature it raised findings again that the triage had accepted. The Issue asks that every review after round 1 receives the decisions of all earlier rounds, that a finding names the one it continues (unresolved or worsened), and that the stored review is checked against the recorded decisions. It has six acceptance criteria; the last one reads “No gate is weakened: a FIX_NOW finding that is really unresolved is still reported and still blocks.” Out of scope: the triage rules, the round limit, and the owner-exception mechanism.

Risk level and agents

risk
high: the feature changes .agents/prompts/reviewer.md and .agents/schemas/feature-review.schema.json, existing contract files; scripts/lib/review-data.sh and scripts/review-feature.sh, listed as high in risk.conf; and four existing test files. The reviewer also classified the impact on the architecture as major.
implementer
claude opus. The first session started before there was a diff, so the level was still the default, medium. That gap became #227: you can now raise the level before the first session (PR #229).
fixes
claude fable, selected by the line triage-implementer@high
review
codex gpt-6-luna, read-only
triage
claude sonnet, read-only

Implementation and tests

The change adds the earlier decisions to the reviewer's context in scripts/review-feature.sh, the optional previous field to the finding schema, and the validation in review_artifact_errors of scripts/lib/review-data.sh. A new test file, tests/review-data-test.sh, covers each invalid case; existing tests only gained blocks, no assertion was changed. Each re-raise becomes a finding event in the run record, and report-runs.sh counts them per feature.

Independent review and triage

Rounds 1, 3 and 5 reviewed the complete feature, 2 and 4 only the fixes. The triage of each round with findings is published on the Issue, marked as approved by an unattended run.
roundreviewedverdictfindingdecision
1complete featureCHANGES REQUIREDM1, major: earlier approved decisions can disappear when a newer triage is invalidFIX_NOW
2the fixesno findings––
3complete featureCHANGES REQUIREDM1, major: predecessor validation allows re-raises to weaken a FIX_NOW gateFIX_NOW
4the fixesno findings––
5complete featurePASS WITH MINOR FINDINGSMIN1, minor: the review schema makes previous requiredACCEPT

Round 3 is the review doing its job: the fix of round 1 was correct, but the new rule could still let a re-raised finding lower its severity, which would have weakened the very gate the Issue protects. Round 5 found one minor point, and the triage accepted it with a rationale, quoted below.

github.com/taspinar/agent-codeyard/issues/217 · round 5 · triage, excerpt### MIN1. The review schema makes `previous` required

- Severity: minor
- Rationale: Listing `previous` in `required` while allowing null
  is deliberate. It follows the strict structured-output
  convention, where every property is required and optionality
  is expressed as nullable. [...] The runtime validators accept
  artifacts that omit it, so old artifacts stay valid [...]
  The mismatch is cosmetic and blocks nothing.

Verification evidence

The full verification ran three times, once after each writing session: 1046, 1049 and 1118 seconds. Eight more times a step required a verification and reused the recorded pass, because the content had not changed since. Every review report names the reviewed tree and the verification that passed for it.

The run

The run of #217: Issue, implementation, round 1 and its fixes, rounds 2 and 3 and their fixes, rounds 4 and 5, commit and pull request, and the merge by the owner.Issue21:37Implement21:38Round 122:22Fixes22:22Rounds 2–322:43Fixes22:43Rounds 4–523:07Commit, PR23:08Merge29 Oct, 01:14
  1. Issue created21:37 UTC

    From the run analysis, with six acceptance criteria.

  2. Implementation21:38 – 22:22

    claude opus, unattended; verification 1046 s; completion record: complete.

  3. Round 1 and triage22:22

    M1 major, FIX_NOW.

  4. Fixes22:22 – 22:42

    claude fable; verification 1049 s.

  5. Rounds 2 and 3, triage22:43

    Round 2: no findings. Round 3: M1 major, FIX_NOW.

  6. Fixes22:43 – 23:07

    claude fable; verification 1118 s.

  7. Rounds 4 and 5, triage23:07 – 23:08

    Round 4: no findings. Round 5: PASS WITH MINOR FINDINGS, MIN1 accepted.

  8. Commit and pull request23:08

    The completion gate passed; finish-feature.sh committed and publish-feature.sh opened PR #222.

  9. Merge by the owner29 October, 01:14 UTC

    The pull request said “Merge approval: required from the project owner, for exactly this commit”.

The pull request

The description of PR #222 carries the completion record with evidence for all six criteria, the verification, the review line, the risk level with its reasons, and the merge approval block. The home page shows it annotated.

github.com/taspinar/agent-codeyard/pull/222 · excerptReview: round 5, PASS WITH MINOR FINDINGS, by codex (gpt-6-luna); triage published on #217

Merge approval:
- required from the project owner, for exactly this commit
[...]
- scripts/review-feature.sh: the file defines or carries out the workflow and its gate
- the independent review classified the impact on the architecture as major: [...]
[...]
- approval request: .agents/approval-requests/217.json (asks and records; grants nothing)

High risk, more runs

From the run record of each feature and the description of its pull request. Sources.

Four more features of the audit's candidate list. All four changed the workflow and its gate, so all were high risk: the full triage applied, and each pull request said that the merge needed the owner's approval.

Verification: each full run of verify.sh, in seconds, on the maintainer's server; every other verification of the feature reused a recorded pass. Run: from the start of run-feature.sh to the pull request.
issuechangeroundsfindingsfull verifications (s)runresult
#189Compute the risk level of a feature from one policy3none556, 575, 572four runs; the implementer resumed by handPR #194
#193Treat performance budgets as measurements41 major, re-raised once; 1 minor; all fixed761, 762, 7611 h 18 minPR #199
#204Show the reviewer no change in paths the fingerprint leaves out1none90938 minPR #205
#16Add the feature clarification gate1none84926 minPR #213

High risk, the owner in the loop: #189

Issue #189, PR #194, 27 October 2026.

The feature that introduced the risk level. The owner sharpened its scope in a comment, and caught a defect before the merge.

  • A comment as a decision. After the first run, the owner's comment set two rules from experience with another project: an escalation reads only changed or removed lines of existing files, and a feature already in progress is not refused.
  • A resumed session. The owner resumed the implementer by hand, which the run record notes as an intervention. The record also shows the comment passed on to the resumed implementer and to each later review.
  • A correction before the merge. The owner found that a failed listing of the changed files fell back to the default level. The fix makes it high, with a test that fails against the earlier commit and passes with the fix, as the completion record in the pull request states.
  • Three rounds, no findings. Review by codex gpt-6-luna, ten of ten criteria met; full verifications of 556, 575 and 572 seconds.

Source files changed by PR #194: scripts/lib/risk.sh, scripts/check-risk.sh, scripts/finish-feature.sh, scripts/publish-feature.sh, tests/risk-test.sh.

High risk, a fix that did not hold: #193

Issue #193, PR #199, 27 October 2026.

The feature that made budget checks measurements. In round 1 the reviewer found that a failing timeout utility was reported as an exceeded budget (major) and that a budget's output was cut short (minor); the triage decided to fix both. In round 2 the reviewer raised the major finding again, as “Unresolved M1”: the fix now treated exit status 128 as a failure of the call, though a measurement can return it. A second fix round resolved it, and rounds 3 and 4 passed. Each round's report and triage is on the Issue.

Source files changed by PR #199: scripts/verify.sh, scripts/lib/verification.sh, scripts/run-feature.sh, tests/verify-test.sh.

High risk, the short path: #204 and #16

PR #205 and PR #213, 28 October 2026.

Most features do not need several rounds. #204 ran from run-feature.sh to the pull request in 38 minutes: one implementation session, one verification of 909 seconds reused twice, one review that passed. #16, the clarification gate itself, took 26 minutes: the implementer received the owner's two comments with the Issue, which settled the design, and the single review passed.

Source files changed by #204 in PR #205: scripts/review-feature.sh, .agents/prompts/reviewer.md, tests/review-feature-test.sh.

Source files changed by #16 in PR #213: scripts/run-feature.sh, .agents/prompts/implementer.md, scripts/lib/completion.sh, tests/run-feature-test.sh.

Medium risk: #241

Issue #241, PR #249. One unattended run of run-feature.sh, 30 October 2026.

The feature that wrote the first Features, Examples and About pages of this site. It changed website pages only, and it is followed here with the same records as #217.

Requirements

The Issue asks for the three pages from real repository evidence, with six acceptance criteria; the first reads “Every statement links to or matches its source; no invented figure or testimonial”, and the Examples criterion asks for examples linked to their Issues, pull requests and source files.

Risk level and agents

risk
medium: the four changed files, three pages and the style sheet, are named by no class of risk.conf, so each gets the default. No escalation applied, the reviewer classified the impact on the architecture as minor, and the triage was full, the default.
implementer
claude opus, the plain line implementer
fixes
claude opus, the plain line triage-implementer; at high, as in #217, claude fable
review
codex gpt-6-luna, read-only
triage
claude sonnet, read-only

Independent review and triage

Rounds 1 and 3 reviewed the complete feature, round 2 only the fix. The triage of round 1 is published on the Issue, marked as approved by an unattended run.
roundreviewedverdictfindingdecision
1complete featureCHANGES REQUIREDM1, major: examples do not link each candidate to its source filesFIX_NOW
2the fixesno findings––
3complete featurePASS––

A medium feature gets the same review as a high one under the shipped policy, and round 1 shows why: the pages linked the source files of only one example, which the Issue asked for every example. A major finding is always fixed; the fix added the source files of the other four, the same lists this page shows under High risk, more runs.

Verification evidence

The full verification ran twice, after the implementation and after the fix: 14 and 15 seconds, of which 13 were the check of this site. The workflow's own self-tests in verify-workflow.conf run only when a workflow file changes. #217 changed several, so its verifications of 1046 to 1118 seconds included that suite, which the file's header records at 915 seconds when its budget was set; #241 changed none. Five more times a step reused the recorded pass.

The run

The run of #241: implementation, round 1 and its fix, rounds 2 and 3, commit and pull request, and the merge by the owner.Implement19:27Round 119:38Fix19:38Rounds 2–319:40Commit, PR19:40Merge20:09
  1. Implementation19:27 – 19:38 UTC

    claude opus, unattended, 642 s; completion record: complete, six of six criteria met.

  2. Round 1 and triage19:38

    M1 major, FIX_NOW.

  3. Fix19:38 – 19:40

    claude opus, 85 s; verification 15 s.

  4. Rounds 2 and 319:40

    Round 2: no findings. Round 3, the complete feature: PASS.

  5. Commit and pull request19:40

    finish-feature.sh committed and publish-feature.sh opened PR #249.

  6. Merge by the owner20:09 UTC

    No approval was required; no script merges, so the owner merged it.

github.com/taspinar/agent-codeyard/pull/249 · excerptReview: round 3, PASS, by codex (gpt-6-luna); triage published on #241

Merge approval:
- not required
- the independent review classified the impact on the architecture as minor, and no protected path is changed
[...]
Risk: medium
[...]
- profile: none

What is not shown

risk.conf of this repository; Issue #170.

  • A low-risk run. A low level exists only under profile: light, or with a low: class in risk.conf. This repository has neither, so none of its features was low, and this page does not invent one. Under the light profile a low feature may be committed without a review; the commit and the pull request say so, and the merge then needs your approval.
  • Onboarding an existing repository. Codeyard starts new projects from the template with gh repo create --template. Bringing an existing repository into the workflow is planned in #170 and not built, so there is no run of it to show.

Where the figures come from

Each figure on this page has one of three sources:

sourcewhat it holdswhere
Issue commentsThe review report and the triage of every round with findings, published by triage-review.shGitHub, linked above
Pull requestCompletion record, verification, review line, risk level and merge approval, written by finish-feature.sh and publish-feature.shGitHub, linked above
Run recordTimes, agents, models and levels, verification seconds and reuses, interventions, comments passed on.agents/records/feature-<n>.jsonl, on the maintainer's machine

The run records are local by design and not published; the figures from them are copied here as recorded. Durations depend on the machine and the size of the test suite and are not benchmarks.