Releases: mbachaud/MaxExpressKit
v0.1.3 — lint honesty + approvals privacy
Two dogfood findings shipped together.
Fixed
score_lintconfidence honesty. Previously the scorer returned(0.99, 1.0)— high confidence, fabricated score — wheneverrufffailed to launch or its output couldn't be parsed. Now returns the same(0.0, 0.0)"unmeasured" sentinel thatscore_securityuses. Also switched the invocation from bare\"ruff\"tosys.executable -m rufffor PATH-resolution consistency with the other v0.1.2 scorers. Surfaced when running/mek-drift initon a project where ruff wasn't installed —lint_scorereported confidence 1.0 while every other dim correctly reported 0.0.
Added
- Privacy default for HITL approvals.
/mek-initnow drops acompliance/.gitignorethat ignoresapprovals/by default. HITL records often carry names, infrastructure details, and rationale that don't belong in public git history. Opt specific (redacted) approvals into tracking via!approvals/<file>negations. /mek-compliance-auditprivacy check. Surfaces files currently tracked undercompliance/approvals/as an advisory warning. Pass--strictto fail the audit on any tracked approval.docs/compliance.mdhardening section. Documents both the static-block pattern (repo_visibility_flip = \"block\"in mek.toml) and a conditional-block recipe (project-local hook that escalates only when approvals exist on disk).
Bonus
.markdownlint.jsonwithMD024 siblings_only=trueso Keep-a-Changelog's repeated### Added/### Fixedheadings stop firing lint warnings on every release.docs/compliance.mdupdated to enumerate all six risky-op categories (was still listing five — drift since v0.1.2 addedrepo_visibility_flip)..mek/drift-baseline.jsonre-seeded with the corrected lint scorer behavior.
Testing
97 tests passing (up from 92): 4 new unit tests for the lint sentinel, 1 new integration test for the scaffold gitignore. All four CI legs green (ubuntu/windows × py3.11/3.12).
Install
/plugin marketplace add mbachaud/MaxExpressKit
/plugin install maxexpresskit@mek-marketplace
/reload-plugins
v0.1.2 — dogfood-driven hardening
Second patch release, driven by dogfooding the compliance and drift subagents on the MEK repo itself.
Added
repo_visibility_fliprisky-op category — the compliance classifier now matchesgh repo edit <repo> --visibility (public|internal). Effectively irreversible due to search-index/Wayback caching, so it deserves the same HITL nudge asforce_push_main. Default gate: warn.- Real
score_securityin the python drift preset —banditruns againstlib/andhooks/. Medium severity costs 0.1, high costs 0.5. Previously a silent no-op stub (auto=0.0, confidence=0.0). .mek/drift-baseline.jsonseeded for MEK itself — checked in at the repo root. Manual grades left null so users can hand-grade later; current auto-scores: tests=1.0, lint=1.0, coverage=0.76, security=1.0.
Fixed
lib/source_app_detect.has_cosmictashanow refuses non-http/https URLs (bandit B310). Previouslyfile://and other schemes would have been accepted.lib/drift_scoring/python_preset.pynow usessys.executableinstead of literal"python"when spawning subprocesses — fixes the case wherePATHresolvespythonto a different interpreter than the one running MEK.
Dependencies
- New dev dep:
bandit>=1.7. CI install viapip install -e ".[dev]"already covers it.
Testing
92 tests passing (up from 88). Full suite green on local Python 3.14. CI matrix covers Ubuntu + Windows × Python 3.11 + 3.12.
Install
/plugin marketplace add mbachaud/MaxExpressKit
/plugin install maxexpresskit@mek-marketplace
/reload-plugins
v0.1.1 — ledger contract hardening
First patch release. Surfaced by dogfooding the new maxexpresskit:ledger subagent on lib/decimal_math.py itself.
Fixed
to_decimalrejectsfloatwithTypeError. Previously it silently routed floats throughstr(value), contradicting the module's "no floats" contract and giving callers a quiet bypass.sum_moneyquantizes on exit toMONEY_PLACES. Public contract is now strictly "money in, money out" — 4 decimal places always.rebalanceedge cases:- Empty
weights→ValueError("weights must not be empty")(was returning[total]). - Negative weights →
ValueError("weights must be non-negative")(was producing nonsensical splits). - Residual bucket now quantized — previously carried excess precision when
totalhad > 4 decimal places.
- Empty
Testing
22 ledger unit tests (up from 17). Full suite: 88/88 passing on local Python 3.14. CI matrix covers Ubuntu + Windows × Python 3.11 + 3.12.
Install
/plugin marketplace add mbachaud/MaxExpressKit # public form
/plugin install maxexpresskit@mek-marketplace
v0.1.0 — initial release
First public release of MaxExpressKit — three guardrails for Claude Code: compliance, drift, ledger.
Added
- Three distilled guardrails:
compliance,drift,ledger. - Three named subagents matching each guardrail.
using-mekentry skill.- Slash commands:
/mek-init,/mek-status,/mek-drift,/mek-compliance-audit. - Layer 2 wrapper stubs:
/mek-books,/mek-soc2. - Hooks:
pre_risky_op.py(warn-only default),money_math_guard.py,post_task_drift.py. lib/decimal_math.pyported from BookKeeper with new helpers (sum_money,pct_of,rebalance).lib/drift_scoring/(grades, baseline, python preset).lib/source_app_detect.pyfor CosmicTasha / ScoreRift / BookKeeper.lib/config.pyformek.toml.scaffold/payload for/mek-init.- Docs: concepts + per-guardrail + source-app integration.
- CI: pytest + ruff on Ubuntu + Windows, Python 3.11 and 3.12.
Stubbed
skills/ledger-companion/— placeholder for the v0.2.0 mini-ledger.- Full Layer 2 pass-through wrappers — v0.2.0.
Known limitations
- Drift preset is Python-only.
- CosmicTasha integration is a localhost probe, not a full handshake.
- No telemetry. Noise suppression is config-driven (
mek.toml > [compliance.gates]).
83 tests passing on local Python 3.14; CI matrix covers Ubuntu + Windows on 3.11 and 3.12.