Skip to content

senior-dev: a pass that ran no command says so, instead of that the build and tests passed - #1801

Open
ZeroPoint95 wants to merge 3 commits into
devfrom
zeropoint95/senior-dev-ending-no-checks
Open

ZeroPoint95 wants to merge 3 commits into
devfrom
zeropoint95/senior-dev-ending-no-checks

Conversation

@ZeroPoint95

@ZeroPoint95 ZeroPoint95 commented Oct 9, 2026 •

Copy link
Copy Markdown
Collaborator

What changed

Makes senior-dev's ending say what was checked when its check ran no commands, instead of saying the build and tests passed.

  • Before: a folder with only a README ended submitted a change, and the project's own build and tests passed, and the line under it said the project has no build or tests it could find to run.
  • Now, with zero commands: submitted a change; the project has no build or tests it could find to run.
  • With one or more commands, the old sentence is unchanged.
  • The ending and the observation share one constant (nothingToCheck), so they can't drift.
  • The run's longer reason, which codeaf appends to the landing note, said submitted, and its build and tests passed. It now says submitted, and found no build or tests to run.
  • The inner status is still pass. Exit codes and codeaf's classification are unchanged.

Manual (internal/manual/chat/senior-dev.md)

  • New section for a folder with nothing to run. It says the chat still counts the run as passed and offers to merge it, so look at the change first.
  • The line that quoted the old sentence now says when it applies.
  • The finished: … bullet in "Why did senior-dev stop" now covers a run that found nothing to run.
  • chat_test.go gains a test that four questions in a person's own words reach the new section.

Not in this PR

  • codeaf's chat still files a zero-command pass as passed (programVerdictOf, internal/session/program_outcome.go). The manual section says so.

How it was checked

  1. go test -count=1 -run '^(TestPassEndingSaysOnlyWhatWasChecked|TestFolderWithNothingToRunEndsWithoutSayingItPassed)$' ./internal/seniordev/app/
    • ok on this branch.
    • On dev's run.go and solo_ship.go, both fail on assertions: message = "…build and tests passed", want "…no build or tests it could find to run", and the second also on reason = "submitted, and its build and tests passed: …".
  2. go test -race -count=1 ./internal/seniordev/app/ ./internal/seniordev/: ok.
  3. go test -count=1 ./internal/manual/ and make test-packed-manual: ok (includes TestSeniorDevNothingToRunQuestionsReachItsSection).
  4. go run ./cmd/codeaf-changes check: 19 entries, all well formed.
  5. Not run: a live senior-dev run against a real model. The offline test drives the same ship and ending code with a scripted model.

Checklist

  • A change entry — docs/changes/unreleased/1801-senior-dev-ending-no-checks.md.
  • The manual knows about it — internal/manual/chat/senior-dev.md updated in this change.
  • No new line in .github/known-red.txt.
  • Only my own paths are staged.

🤖 Generated with Claude Code

ZeroPoint95 and others added 3 commits October 9, 2026 11:01
…ests passed

A real run in a folder holding only a README ended

    senior-dev finished: submitted a change, and the project's own build and tests passed
      senior-dev observed: the project has no build or tests it could find to run

because messageOf read the inner status and never the count of commands
behind it. A folder that does not look like a project has nothing for
discovery to find, so its check comes back clean having run zero commands.

The ending now says "submitted a change; the project has no build or tests
it could find to run" in that case, in the same words the observation uses
(one constant, nothingToCheck), and keeps the old sentence when at least one
command ran. The run's longer reason, which codeaf appends to the landing
note, made the same claim ("submitted, and its build and tests passed") and
now says "submitted, and found no build or tests to run".

The chat manual quotes the sentence only where it is true, gains a section
for a folder with nothing to run, and a test proves that section is reached.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
Co-Authored-By: Claude Opus 5.5 <[email protected]>
The manual's new section now says the chat still counts such a run as
passed and offers to merge it without a check of its own, so the person
should look at the change first. messageOf reads verification_commands
the way observedOf does, telling absent from zero. The end-to-end test
spells its expected sentences as literals, so on dev it fails on an
assertion rather than failing to build.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
@ZeroPoint95
ZeroPoint95 marked this pull request as ready for review October 9, 2026 16:00
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant