Skip to content

Phase 8's rebase fence force-pushes on TEST_CMD alone, so a lint-gated required check survives it #115

Description

@dmccoystephenson

The gap

A generated dev-loop's open-PR grooming step verifies a rebase with the test command alone, then force-pushes on the strength of that single result. Where a repository's required checks also run a formatter, a linter or static analysis, a branch can be pushed still-red and the failure rediscovered from CI several minutes later.

Observed in the medieval-factions-dev-loop instance (dmccoystephenson/medieval-factions-dev-loop#41), where the grooming snippet reads:

git rebase origin/main
./gradlew clean test          # must pass post-rebase
git push --force-with-lease

On the cycle of 2026-08-11, Dans-Plugins/Medieval-Factions#2000 was carried forward with its required build check red on a lint failure (Execution failed for task ':lintKotlinMain'), not a test failure — ./gradlew clean test passes on that exact tree. The same skill's Phase 3 already lists the full local verification set (compile, test, and lint); only the grooming step lists the subset, and nothing explains the difference.

Why it is proposed as template-wide

Nothing in the mechanism is Medieval-Factions-specific. Any repository whose required checks include a task the generated TEST_CMD does not cover has the same hole, and the grooming path is where it hurts most, because a force-push commits to the result.

Suggested direction

The post-rebase verification in the grooming step should run the same tasks the repository's required checks run, rather than a hand-picked subset — ideally by reusing whatever verification set the template already substitutes into Phase 3, so the two cannot drift. A stronger version would derive the task list from the workflow file.

Caveat on verification

The exact upstream wording could not be confirmed during this dispatch: reading create-dev-loop.md here would have required a clone or a gh api/gh search call, all of which the harness refused. The finding above is reported from the generated instance; whether the grooming step's verification line lives in the template or was added locally should be checked before the fix is scoped.

This issue was filed while routing a template-rule finding out of dmccoystephenson/medieval-factions-dev-loop#41, per that skill's rule that template-wide rules are fixed here rather than folded into one instance.

This issue body was drafted during a Gardener session (https://github.com/Stephenson-Software/gardener).


drafted by Claude on behalf of Daniel Stephenson

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