Skip to content

Repo lane receipts always ship checks: [], nothing writes .agent-sdlc/checks.jsonl #244

Description

@ale-aguirre

Summary

The repo lane's receipt collector reads check evidence from .agent-sdlc/checks.jsonl and returns { items: [], total: 0 } when the file doesn't exist (packages/cli/templates/receipts/collect.mjs:203). All six generated workflows point FACILITY_RECEIPT_CHECKS_FILE at that same path, but none of them, or anything else under packages/cli/templates, ever writes it.

The builder prompt tells the agent to "run the configured suite" (packages/cli/templates/prompts/builder.md:34-38), using CHECKS_INLINE, the raw shell command joined with ; (packages/cli/src/init.mjs:384), through its own bash tool. That's a prose instruction with no wrapper capturing the result into the file the collector reads. So on every repo lane run today, receipt.checks comes back empty, indistinguishable from "this repo has no checks configured."

Where

  • packages/cli/templates/receipts/collect.mjs:202-203 (parseChecks returns empty on missing file)
  • packages/cli/templates/prompts/builder.md:34-38 (instructs the agent to run checks, nothing captures the result)
  • packages/cli/src/init.mjs:384 (CHECKS_INLINE is the raw shell command, unwrapped)
  • Confirmed by grep across packages/cli/templates, including every workflow: no file writes .agent-sdlc/checks.jsonl.

Contrast with the platform lane

runner/src/index.ts:1591-1600 (runChecks) runs the configured check commands itself, outside the agent's turn, and emits each result with self_reported: false (runner/src/index.ts:1607). That lane works correctly. The repo lane has the schema (packages/core/src/receipts.ts:4-8) and the reader, but nothing plays the role runChecks plays on the platform side.

Why it matters

The repo lane is the path most people adopting Facility hit first, no platform dependency, just vendored GitHub Actions. Right now the receipt from that lane, the artifact meant to answer "did this really pass its checks", carries no check evidence at all, and silently, nobody has to misreport anything for this to happen.

Suggested fix

Add a step to the generated workflows that sets FACILITY_RECEIPT_CHECKS_FILE (facility-crew.yml, facility-codex.yml, facility-review.yml, facility-address-review.yml, facility-doctor.yml, facility-security-sweep.yml) that runs CHECKS_INLINE itself, outside the agent's turn, and appends the result to checks.jsonl with self_reported: false before the receipt-collect step runs, mirroring runChecks in the runner.

Activity

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

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions