feat: v0.5.0a3 β Smart Init, Mutation Campaign + Tiered QA Doctrine#30
Merged
PythonWoods-Dev merged 9 commits intomainfrom Apr 4, 2026
Merged
feat: v0.5.0a3 β Smart Init, Mutation Campaign + Tiered QA Doctrine#30PythonWoods-Dev merged 9 commits intomainfrom
PythonWoods-Dev merged 9 commits intomainfrom
Conversation
- Unified Panel: banner + report fused into single Indigo block. - Traceback Gutter: β 16 β± spacing implemented. - Caret Chirurgico: surgical underline, no noise. - LinkInfo NamedTuple in validator.py (used by downstream test modules). - Core fixes: validator, scanner, rules adjustments. - Closes #4, #6, #13.
80 targeted mutant-killing tests added to test_rules.py: - TestExtractInlineLinksWithLines (14): empty hrefs, escaped brackets, multi-link. - TestVSMBrokenLinkRuleMutantKill (22): check_vsm path/anchor, orphan, severity. - TestAdaptiveRuleEngineRunMutantKill (4): run() short-circuit, content propagation. - TestAdaptiveRuleEngineRunVsmMutantKill (6): run_vsm() findings, file iteration. - TestAssertPickleableMutantKill (2): deep-copy guard, UNREACHABLE sentinel. - TestPluginRegistryMutantKill (27): discovery, duplicates, case, validate_rule(). - TestExtractLinksDeepMutantKill (5): fence-block skip, ref links, empty docs. Result: 242/279 killed (86.7%), 37 equivalent/framework survivors. 694 tests pass. Suite grew from 614 to 694 (+80 targeted tests).
- Add 'Mutation Testing Campaign' section to CHANGELOG.md and RELEASE.md. - Update Quality Gates: 694 tests, 86.7% mutation score, 80%+ coverage. - Fix stale 98.4% coverage in docs/guide/index.md (EN/IT) β β₯ 80% gate. - Fix stale 529/433 test counts in RELEASE.md checksums β 694. - Fix CHANGELOG link refs: [0.5.0a3] compare range, add missing [0.5.0a2]. - Add just test-full, nox mutation entries to workflow tables (EN/IT). - Document Hypothesis profiles and mutation testing in developer guide.
`zenzic init` now detects `pyproject.toml` and interactively asks whether to embed config as [tool.zenzic] instead of a standalone zenzic.toml. - Add --pyproject flag to skip the prompt and write directly - Add --force support for both standalone and pyproject modes - Extract _detect_init_engine(), _engine_feedback() helpers - Extract _init_standalone(), _init_pyproject() from init() - Engine auto-detection (mkdocs/zensical) works in both modes
Cover standalone, pyproject, interactive prompt, --force overwrite, error states, engine auto-detection, and vanilla fallback. 706 tests pass.
- Add --pyproject flag to commands.md (EN/IT) - Add --pyproject to Getting Started in configuration/index.md (EN/IT) - Add Project setup section with zenzic init to README.md and README.it.md - Add smart init entry to CHANGELOG.md and RELEASE.md - Update test counts 694 β 706 across CHANGELOG.md and RELEASE.md
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Ships Smart Initialization (
zenzic init --pyproject), the "Mutant War"campaign (80 new tests, mutation score 58% β 86.7%), tiered Hypothesis profiles,
and the Vanguard UI refresh for v0.5.0a3.
Smart Initialization β
zenzic init --pyprojectpyproject.tomlexists,zenzic initasks whether to embed config as[tool.zenzic]instead ofcreating a separate
zenzic.toml--pyprojectflag: skip the interactive prompt and write directly--force: overwrite existing config in both standalone and pyproject modesmkdocs.ymlβ mkdocs,zensical.tomlβ zensical,otherwise vanilla defaults β works in both modes
force, error states, engine detection)
Mutation Testing Campaign β "The Mutant War"
test_rules.pyacross 7 specialised test classes[tool.mutmut]in pyproject.tomlQA Infrastructure (Team Sentinel)
tests/conftest.py):dev(50),ci(500),purity(1 000)just test-full: thorough test run with ci profilenox -s mutation: mutmut onsrc/zenzic/core/rules.py.hypothesis/,.mutmut-cache/added to.gitignoreandjust cleanUI Refresh (Team Vanguard)
β 16 β±spacingDocumentation
Test results