Changelog
All notable changes to this project are documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
[Unreleased]
Added
- Bilingual MkDocs documentation site (EN/中文) published to GitHub Pages and ReadTheDocs; eval section and docs links added to README; developer artifacts excluded from the site build.
Fixed
- Fixed the language-switcher links on GitHub Pages and ReadTheDocs by injecting a
host-specific
site_urlat build time (scripts/build_docs.py).
[0.2.0] - 2026-08-15
Added
- Source-checkout verification:
scripts/doctor.pyandscripts/run_acceptance.pyforwarders reliably resolve a nested or siblingcloudQuant/backtradercheckout, honor explicit--target/--repositoryoverrides, and return structuredSOURCE_CHECKOUT_NOT_FOUND/BACKTRADER_SOURCE_MISMATCHcodes instead of guessing. - Approval-token concurrency: a single token is protected across local processes; exactly
one claim or consume wins, a failed claim leaves the token
ISSUED, and lock timeouts map toAPPROVAL_LOCK_TIMEOUT(filelockdeclared as a dependency). - Manifest-tool safety:
scripts/build_manifest.py --checkand--helpare read-only and never modifymanifest.json; the read-only check is wired into CI. - Comparison-contract typing: complete key sets for metrics and events comparison results
with a recomputable
comparison_hash, plus amypy src/backtrader_skillsCI gate. - Supported-Python CI matrix: a quality job on 3.11 and a pytest matrix across Python 3.10–3.13 with the correct extras per job.
- Clean-wheel dependency isolation: acceptance installs the built wheel with
--ignore-installed --targetand probesfilelockunderpython -I -Sinside the install root, proving the distribution does not borrow host site-packages. - Published acceptance evidence: the full 7×2 matrix result is refreshed through the public forwarder and packaged, with historical baselines clearly labeled as such.
- Portable dependency evidence: published evidence records the
filelockorigin and a relativemodule_paththat contains no absolute paths or..components. - Clean-wheel installer smoke: an isolated
python -I -Ssubprocess completes a Codex preview → approve → apply cycle from the clean wheel, installing all three canonical skills. - Validation-report integrity:
applyrejects a tampered validation report withIntegrityErrorbefore claiming the token, leaving the tokenISSUEDand writing no target files. - cloudQuant provenance hardening: URL normalization, Git-remote and PEP 610 verification,
missing-package installation,
BACKTRADER_SOURCE_WARNINGfor unverifiable installed packages, andBACKTRADER_INSTALL_FAILEDwith a sanitized diagnostic. - Skill grounding: the three canonical skills ship complete reference contracts, diagnostic catalogs, worked examples, failure playbooks, and pipeline handoffs, drift-locked to runtime facts by tests.
- CI: a master-only full-acceptance workflow checks out the cloudQuant Backtrader fork,
runs the full suite with an 80% coverage gate over
src/backtrader_skills, then runs the complete 7×2 acceptance matrix; pull requests keep the lighter quality and supported-Python jobs. - Evals: a golden-prompt skill eval suite (seven archetype prompts plus adversarial and
cross-skill prompts) with a mechanical scorer (
scripts/record_eval.py) and a runbook. - Repo hygiene: added
CLAUDE.md,AGENTS.md,CHANGELOG.md, anddocs/roadmap.en.md; the README now links the maintainer docs and states the SemVer policy.