Skip to content

feat(build): epic mode builds and merges locally, one push per epic - #585

Merged
buchbend merged 6 commits into
mainfrom
feat/epic-local-build
Nov 11, 2026
Merged

buchbend merged 6 commits into
mainfrom
feat/epic-local-build

Conversation

@buchbend

Copy link
Copy Markdown
Owner

What this PR does

build epic mode builds and merges on the local machine. The epic branch reaches GitHub once, so CI runs once per epic.

Before this PR, each feature pushed a branch and opened a PR into epic/<issue>. The lead pushed epic/<issue> after each merge. ci.yml ran on push and on pull_request, so each feature caused about three CI runs.

Changes

  • lore-workflow/skills/build/epic.md: the lead creates epic/<issue> locally and pushes nothing during the build. The lead merges each feature branch after a green local run of the full suite and ruff.
  • lore-workflow/skills/build/teammate-brief.md: the teammate commits, does not push and opens no PR. The teammate posts its summary and the red→green evidence as a sub-issue comment.
  • lore-workflow/skills/build/review.md: in epic mode the review reads --range epic/<issue>..feat/<n>-<slug>. The reviewer posts the verdict block on the sub-issue. The whole-epic verdict goes on the epic issue.
  • lore-workflow/skills/build/epic-tail.md: ledger, docs, whole-epic review, logbook entry and version bump are local commits. Then the lead runs the suite once more, pushes once and opens the epic PR.
  • .github/workflows/ci.yml: the push trigger is limited to main. A PR commit runs CI once.
  • docs/how-to/run-an-epic.md, docs/conventions.md: one line each.
  • Version bump to 0.100.0.

What stays on GitHub

  • Issues, sub-issue comments and the board comment. These are API calls and start no CI run.
  • The epic PR, its CI run and the merge approval.

Known limits

  • The epic lives on one machine until the final push. A second machine cannot resume the run.
  • A cross-repo pin that resolves only from the remote (image, package) needs one early push of the producer's epic/<issue>. epic.md names this exception.
  • The earlier behaviour kept each feature PR and its CI run on GitHub (CHANGELOG.md, entry "build epic mode stops waiting for CI per feature"). This PR ends that. No ADR records the change.
  • No logbook entry is part of this PR.

Checks

  • tests/test_workflow_build_skill.py::test_an_epic_reaches_the_remote_once and ::test_ci_runs_once_per_pr_push are new. Both failed before the skill edits.
  • Local run of pytest -q: 2502 passed, 1 failed. tests/test_skill_cli_drift.py::test_lore_cli_top_level_verbs_match_skill_invocations fails on main too in the local shell: the test calls a bare python that lacks lore_cli.

Feature branches get no PR and no push. The lead merges them into the
local epic/<issue> on a green local run. The epic tail commits docs,
logbook and version bump locally, then pushes once and opens the epic PR.
The verdict block and the teammate's summary go on the sub-issue.

ci.yml limits the push trigger to main: push plus pull_request ran each
PR commit twice.
@buchbend
buchbend merged commit d7b085a into main Nov 11, 2026
1 check passed
@buchbend
buchbend deleted the feat/epic-local-build branch November 11, 2026 13:11
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