Skip to content

feat: mandatory decomposition gate + pre-PR test shard runner (Closes #579 #580)#596

Merged
Lexus2016 merged 1 commit into
mainfrom
evolution/issue-579-580-decomposition-test-shard
Jun 27, 2026
Merged

feat: mandatory decomposition gate + pre-PR test shard runner (Closes #579 #580)#596
Lexus2016 merged 1 commit into
mainfrom
evolution/issue-579-580-decomposition-test-shard

Conversation

@Lexus2016

Copy link
Copy Markdown
Owner

Policy update and pre-PR local test runner for the evolution pipeline.

Changes:

  • skills/evolution/evolution-implementation/SKILL.md: adds a blocking needs-split child-issue gate, PR deferral rules, and an output-report section.
  • skills/evolution/evolution-analysis/SKILL.md: updates the decomposition step to use the canonical needs-split label and documents the parent-update ritual.
  • scripts/evolution_test_shard.py: deterministic changed-file to pytest shard mapper.
  • tests/scripts/test_evolution_test_shard.py: full coverage for the shard mapper.

Local validation:

  • python -m pytest tests/scripts/test_evolution_test_shard.py -q: 16 passed
  • ruff check scripts/evolution_test_shard.py tests/scripts/test_evolution_test_shard.py: passed
  • ruff format --check: passed

Closes #579
Closes #580

Co-authored-by: Hermes Evolution evolution@hermes.ai

Policy:
- Add a blocking  child-issue gate to evolution-implementation
  (step 1c). Issues flagged for decomposition cannot be selected until
  child issues exist.
- Update evolution-analysis decomposition step (6b) to use the canonical
   label and to document the parent update ritual.
- Add output-report section to evolution-implementation so runs are
  persisted in ~/.hermes/profiles/user1/evolution/implementation/.

Tooling:
- Introduce , a deterministic mapper from
  changed files to the smallest relevant pytest shard. It uses the mirrored
  test layout first, falls back to  patterns, then to the
  affected  directory.
- Add  covering mirrored,
  fallback, deduplication, test-only, and CLI-with-git-diff paths.

Closes #579
Closes #580

Co-Authored-By: Hermes Evolution <evolution@hermes.ai>
@github-actions

Copy link
Copy Markdown
Contributor

🔎 Lint report: evolution/issue-579-580-decomposition-test-shard vs origin/main

ruff

Total: 0 on HEAD, 0 on base (➖ 0)

🆕 New issues: none

✅ Fixed issues: none

Unchanged: 0 pre-existing issues carried over.

ty (type checker)

Total: 11819 on HEAD, 11817 on base (🆕 +2)

🆕 New issues (2):

Rule Count
unresolved-import 2
First entries
tests/scripts/test_evolution_test_shard.py:8: [unresolved-import] unresolved-import: Cannot resolve imported module `pytest`
tests/scripts/test_evolution_test_shard.py:14: [unresolved-import] unresolved-import: Cannot resolve imported module `evolution_test_shard`

✅ Fixed issues: none

Unchanged: 6226 pre-existing issues carried over.

Diagnostics are surfaced as warnings — this check never fails the build.

@Lexus2016 Lexus2016 merged commit 2999b61 into main Jun 27, 2026
33 checks passed
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.

[IMPROVEMENT] Pre-PR local test runner for the targeted change [IMPROVEMENT] Mandatory small-slice decomposition before implementation selection

1 participant