Skip to content

fix: harden end-to-end refactor workflow (#63-#70)#71

Merged
caoergou merged 9 commits into
mainfrom
fix/ignore-owloop-paths-in-dirty-check
Jul 7, 2026
Merged

fix: harden end-to-end refactor workflow (#63-#70)#71
caoergou merged 9 commits into
mainfrom
fix/ignore-owloop-paths-in-dirty-check

Conversation

@caoergou

@caoergou caoergou commented Jul 7, 2026

Copy link
Copy Markdown
Owner

This PR addresses the workflow gaps found during the end-to-end refactor run on xyz-data-website.

Changes

  1. fix(engine): ignore owloop-owned paths in dirty-workspace check

  2. fix(verification): honor → no output acceptance-criteria expectations

  3. fix(report): auto-generate HTML report in worktree and fall back to session file

  4. fix(verification): restore excluded files mutated by acceptance-criteria commands

  5. feat(engine): add --no-push for review-before-push workflows

  6. feat(engine): include spec slug in owloop branch names

  7. feat(verification): classify functional vs meta-check failures as soft failures

  8. feat(engine): skip subagents for small/scoped specs to reduce token cost

    • --subagents now only enables the Orient/Implement/Verify subagent orchestration when a spec's ## Files scope exceeds the threshold (default 3 files). Small, scoped changes run as a single agent iteration to save coordination tokens.
    • Closes Reduce token cost for simple/scoped refactors #70

Verification

  • uv run pytest -q: 381 passed
  • uv run ruff check src/owloop tests: All checks passed
  • uv run mypy src/owloop tests: Success

caoergou added 8 commits July 7, 2026 17:55
Parse expectations such as '→ no output' from spec Acceptance Criteria
bullets. For no-output commands, treat exit codes 0/1 with empty stdout as
passing instead of requiring exit code 0.

Closes #64
…ession file

Generate the static HTML report inside the worktree at the end of each run
so it reflects the actual branch/iterations/status. Also make
ReportGenerator fall back to session_latest.json when the detailed summary
file is not present in the current directory (e.g. main repo).

Closes #65
The workspace was flagged as dirty whenever .owloop/ existed untracked,
which is normal because owloop stores specs/logs there. Filter out paths
owned by owloop (currently .owloop/) from git status --porcelain before
deciding whether to prompt the user.

Closes #63
Branch names now look like owloop/<date>-<slug>-<session_id>, e.g.
owloop/20260707-extract-issue-service-3c0c9b3c, so it is obvious what a
branch is doing at a glance. Legacy branch names without a slug are still
supported for --resume.

Closes #68
@caoergou caoergou changed the title fix: dirty-workspace check, no-output verifier, and auto report generation fix: harden end-to-end refactor workflow (#63-#70) Jul 7, 2026
@caoergou caoergou merged commit 733ee83 into main Jul 7, 2026
6 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment