Skip to content

bug(unic-archon-dlc): three /qa nodes emit prose that nothing reads and nothing keeps #458

Closed as not planned

Description

@orioltf

What happened

Three nodes in /qa emit prose as structured output that nothing reads and nothing writes to disk. The content exists in Archon's SQLite event row and nowhere else. When /cleanup prunes the worktree, it is gone.

Field Emitted at Read by Can write a file?
e2e.summary unic-dlc-qa.yaml:113 nothing No — allowed_tools: [Read, Bash] at :96
coverage-gate.summary :146 nothing No — allowed_tools: [Read, Bash] at :126
uat-prep.criteria :186 nothing —

The only $e2e|$coverage-gate|$uat-prep.output.* reference in the whole file is line 337, which reads .result on the first two. summary and criteria have no reader at all.

uat-prep's own prompt states the purpose the emission fails to serve, at :181:

Emit the numbered criteria as structured output so the finding-capture step can reference them

The finding-capture step is uat-gate.on_reject. It references $REJECTION_REASON and nothing else.

Why it matters

uat-gate is the one place in /qa where a human judges the run. Its approval message, :216, tells that human:

review the UAT checklist printed by uat-prep above against the e2e and coverage-gate results

"Above" is console scrollback. So the evidence at the only human gate in this Box is terminal output, and /qa has no report node, so nothing it produces survives the worktree. A reviewer on the pull request sees none of it.

How this was found, and what it is not

It came out of #438's grilling. That ticket claimed /build's implement-review-precheck recorded its findings nowhere. That claim is false — unic-dlc-build.yaml:578 has the report node fold $implement-review-precheck.output.findings in verbatim, and run 2's thirteen findings are committed in workflows/profile-card/report.md § 4 on origin/feature/43004_build-profile-card in DXP-DesignSystem (commit c66eac9).

Surveying the other three Boxes for the same shape is what found these three fields. /build routes its prose correctly. /qa does not.

One observation seeded #438's false conclusion, and it applies here too. "The run's artifacts directory was empty" was true of $ARTIFACTS_DIR, which resolves outside the repo under ~/.archon/workspaces/<name>/artifacts/, is always gitignored, and is reused on resume. The repo-relative Session dir, <artifacts_dir>/<slug>/, is a different place and is deliberately committed. Name the home in every criterion that names a path. A criterion saying "the node writes its summary to the artifacts directory" is satisfiable in a way that fixes nothing.

The pattern that already works here

unic-dlc-pr-review.yaml solves the same problem without a DAG edge: prep writes SESSION/prep.json, and reconcile reads it back at :395. That is why prep's has_source / has_tests / has_types / has_docs / touches_error_handling / prior_findings fields look orphaned to a grep for $prep.output.* and are not. Write the file, read the file.

The open question, to be grilled before criteria

Does /qa gain a durable artefact of its own, or does each node write its own file into <artifacts_dir>/<slug>/?

Neither is decided. The first mirrors /build's report node and gives the human at uat-gate one thing to open; the second is smaller and matches what pr-review already does. A prior question sits under both, the same one #438 turned on: who is the reader, and when do they read? The human at uat-gate during the run, and the reviewer on the pull request afterwards, pull in different directions.

Overlap to state in whatever criteria this gets

#430's criterion 10 was amended on 2026-09-03 to require its unresolved-needs block to be durable, in a file under <artifacts_dir>/<slug>/. In /qa that block attaches to exactly the two summaries above. So #430 and this ticket touch the same file and the same nodes, and #430 is the one dispatched. Whichever lands first, the other rebases. If #430 lands first it will have created a file-writing surface in /qa that this ticket then generalises, which is the cheaper order.

Out of scope for run 3

Ruled by the maintainer on 2026-09-03: /qa is not needed for run 3 or for the #456 map. This ticket carries the /qa half so #438 can keep only its /build half.

Activity

  1. added
    bugSomething isn't working
    needs-specsEnough info from reporter; ready to write a spec
    p2Medium priority
    on Sep 3, 2026
  2. orioltf commented on Nov 3, 2026

    @orioltf
    MemberAuthor

    Closing: unic-archon-dlc is frozen, and adlc, its successor, does not inherit this work. Its lesson is recorded in adlc's spec.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    app:unic-archon-dlcbugSomething isn't workingneeds-specsEnough info from reporter; ready to write a specp2Medium priority

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions