Skip to content

bug(unic-archon-dlc): the pr-review summary states what the Box instructed, and attributes a check a sub-agent reports #660

Closed

Description

@orioltf

What to build

Implement the decision recorded in #487 (§ Decisions and § Acceptance criteria). The criteria live there and are not copied here, so they have one home. Read #487's body in full before you start.

In short, the pr-review summary's block "Checks this review did not run" no longer claims that nothing ran. It states what the Box instructed. review records in reported_checks the checks its sub-agents report, each named by need, and the block renders them as attributed claims. ADR-0037 §8 is amended in place.

Order

This ticket edits apps/claude-code/unic-archon-dlc/.archon/workflows/unic-dlc-pr-review.yaml after #482 has merged. #482 rewrites reconcile's summary frame and post. Every criterion in #487 that touches the summary frame is written against #482's criteria. Read the file on develop after #482 has merged, not as it stands today.

What the PR meets, and what it does not

The PR meets every criterion in #487 except the two under "Checked in run 4 (#502), not at merge". Those are checked when run 4 is scored, under #502, and the PR does not tick them. The criterion under "What a run here does not prove" is a merge criterion: the PR states that the change is unproven in the Consumer until a Consumer run reads it.

Release

unic-archon-dlc is on 0.x. This change adds a field to review.json and renames a summary heading, so it is a minor bump. If you find a reader outside this Box that parses the old heading, add a ### Breaking entry and say so in the PR.

Decision ticket: #487, closed when its criteria were approved. Parent map: #498.

Activity

  1. self-assigned this
    on Oct 28, 2026
  2. orioltf commented on Oct 28, 2026

    @orioltf
    MemberAuthor

    Opener for #660

    Written 2026-10-28 by the /afk-loop 498 orchestrator, at dispatch.

    What this session produces

    One pull request to develop that changes apps/claude-code/unic-archon-dlc/.archon/workflows/unic-dlc-pr-review.yaml so that the summary block on checks states what the Box instructed, and renders as attributed claims the checks a review sub-agent reports. It also revises ADR-0037 § Decision item 8, updates the Box doc and records the change in the changelog. The criteria are in #487's body, not in this ticket's body. Do not invoke /tdd or /to-tickets: the Box is prose, and the bar is a run and a read (AGENTS.md § Acceptance criteria are prose).

    Read in this order

    1. This ticket's body, then bug(unic-archon-dlc): the summary's § "Checks this review did not run" is false when a sub-agent ran a declared command #487's body, whole. bug(unic-archon-dlc): the summary's § "Checks this review did not run" is false when a sub-agent ran a declared command #487 is closed because its criteria were approved. Its § Decisions explains each criterion.
    2. unic-dlc-pr-review.yaml on origin/develop. #482 merged on 2026-10-28 as unic-archon-dlc 0.32.0, so the tree is already the one bug(unic-archon-dlc): the summary's § "Checks this review did not run" is false when a sub-agent ran a declared command #487's criteria are written against. Read bootstrap (its paragraph on checks), review (both sub-agent prompts and every path that writes SESSION/findings/review.json), synthesize, and reconcile step 5b and its summary frame.
    3. apps/claude-code/unic-archon-dlc/docs/adr/0037-config-declares-sdlc-needs.md § Decision item 8, and docs/adr/README.md for the plugin's inline-revision convention.
    4. apps/claude-code/unic-archon-dlc/docs/boxes/unic-dlc-pr-review.md, where it describes the block.

    The trap that costs an hour

    Naming a check by its command. Decision 5 and its criterion say review assigns the need by judging what a command does, from the sdlc_needs key names, never by comparing the command text with the declared value, and the block never names a command. The tempting shortcut is a string match of the reported command against $bootstrap.output.sdlc_needs. It reports a declared need as undeclared whenever the Consumer's value has another shape (#637). Write the rule into review's prompt as a judgement, and check that no sentence in reconcile prints a command. Count the key names in bootstrap yourself: #487 says nine.

    What this ticket does not decide

    Other traps

    • Every path writes reported_checks, including the path where the Agent tool is unavailable. There the array is empty, and the block must not say a sub-agent may have run a check.
    • install never enters reported_checks and is never a reported check.
    • A finding a sub-agent raised from a failed check stays in its severity section. The block only says where the check result came from.
    • synthesize puts no check result in "What's good" or anywhere else as a fact.
    • bootstrap's paragraph on checks cites ADR-0026 today. It must cite ADR-0037 §8. Do not edit ADR-0026 or ADR-0030.
    • The change adds no node and no edge, so the pr-review diagram is not touched. If you find you need a node, stop and report.
    • A $node.output token inside a comment of a script: body is a real dependency edge. Write node ids in plain words in comments.
    • The release. This adds a field to review.json and renames a summary heading. It is a minor bump. Search the repository and the other Boxes for a reader that parses the old heading text. If you find one, add a ### Breaking entry and say so in the PR.
    • #662 is open on the same file. Absorb nothing from it.
    • This repository is public. Name no client and no Consumer repository. Use synthetic examples only.
    • Use absolute paths in every shell call, and never cd. The NDA hook refuses a gh command that changes directory.

    The bar that proves it

    A read of the YAML at your head, one line per case in the PR body:

    • no sub-agent reports a check: the block names the declared keys, says the Box instructed none of them and that a sub-agent may still have run one, and lists no reported check;
    • one sub-agent reports a type-check that passed: the block carries one attributed line naming typecheck and the outcome, and no command;
    • a sub-agent reports a command that serves no declared need: the block calls it a check that matches none of the project's declared needs;
    • the Agent tool is unavailable: reported_checks is empty, and the block does not say a sub-agent may have run a check;
    • a sub-agent reports pnpm install: nothing enters reported_checks.

    Then grep the head for "did not run" and "executed none" in the Box, its doc and the ADR, and put the counts in the PR body. A false pass is a block whose heading changed while a sentence below still says no check ran.

    On landing

    1. Add the entry to apps/claude-code/unic-archon-dlc/CHANGELOG.md under ## [Unreleased], and commit it with the change.
    2. Bump with pnpm --filter unic-archon-dlc bump minor, and commit the result on its own as chore(unic-archon-dlc): release <version>.
    3. The PR body holds Closes #660, the case walk, the grep counts, a line saying the two run-4 criteria of bug(unic-archon-dlc): the summary's § "Checks this review did not run" is false when a sub-agent ran a declared command #487 are checked under #502 and not ticked here, and a line saying the change is unproven in the Consumer until a Consumer run reads it.

    Report back

    Report in your final answer, as your worker prompt's step 7 says, and stop after the handover. The orchestrator may continue you with fix rounds.

    Review and handover

    The orchestrator runs the review rounds, sends you the findings to fix, and merges when the gate holds. You do not merge, and you do not answer review threads.

  3. added
    resolvedImplemented; ready for a PR
    and removed
    ready-for-agentFully specified, ready for an AFK agent
    on Oct 28, 2026
  4. added
    closedPR has been merged
    and removed
    resolvedImplemented; ready for a PR
    on Oct 28, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions