Releases: gitmoot/gitmoot-skillopt
Release list
gitmoot-skillopt v0.4.2
Patch: sanitize Mode A PR-ref item ids instead of rejecting them.
safe_item_path_segment raised ValueError on item ids containing / (e.g. a gitmoot PR ref owner/repo#5, which Mode A trace harvesting (#465) uses as the eval-item id), so optimizing a package built from real merged/blocked PR outcomes crashed in the dataloader. Already-safe ids now pass through unchanged; unsafe ids are deterministically sanitized into a safe path segment (slug + short stable hash), which also neutralizes path-traversal ids. Found by a live end-to-end Mode A optimization run (#79).
Install: pip install https://github.com/jerryfane/gitmoot-skillopt/releases/download/v0.4.2/gitmoot_skillopt-0.4.2-py3-none-any.whl
gitmoot-skillopt v0.4.1
Patch: accept the kimi runtime in template runtime_compatibility.
gitmoot supports the Kimi runtime and its default agent-template scaffold lists kimi, but the contract validator's _VALID_RUNTIMES whitelist only had codex/claude/shell — so the optimizer crashed (ContractError: invalid runtime_compatibility 'kimi') on any real gitmoot template declaring kimi compatibility. Added kimi to the whitelist (#78). Found by a live end-to-end codex optimization run.
Install: pip install https://github.com/jerryfane/gitmoot-skillopt/releases/download/v0.4.1/gitmoot_skillopt-0.4.1-py3-none-any.whl
gitmoot-skillopt v0.4.0
Evaluator features for the gitmoot judge.
- Trajectory digest for the judge (#348 Phase 1, #75) — a budgeted, secrets-redacted
## Process Summary(reusingparse_codex_raw) so the judge sees what the agent did, not just the final artifact. Off by default, exec-backends only, fail-closed, no contract bump, no raw chain-of-thought. - Live-pairwise evaluation mode (#77a, #76) — opt-in mode reruns promoted + candidate templates live over the validation set, emitting a blinded paired review packet (secret A/B map separate) + per-item token/cost/failure artifacts. No optimizer/score-gate, manual promotion, additive contract; saved-baseline path unchanged. (Go side ingests it: gitmoot #508.)
Install: pip install https://github.com/jerryfane/gitmoot-skillopt/releases/download/v0.4.0/gitmoot_skillopt-0.4.0-py3-none-any.whl
v0.3.1 — default-on hard verifiers
v0.3.1 — default-on hard verifiers
Adds a default-on deterministic hard-verifier floor to the gitmoot evaluator (#346). evaluate_response now runs _run_hard_verifiers before the LLM judge and short-circuits with a hard=0 failure packet — shrinking the gameable surface and giving the optimizer crisp, actionable failures.
- Built-in checks keyed by
task_kind:agent_template— valid YAML frontmatter, required "update format" section, fenced ```json blocks must parse, no secrets / absolute paths / remote-mutation·auto-promote language, size bounds.package— valid JSON, strictcontract_version == 1.
- Honors declared
evaluator_profile.checks; unknown task kinds with no declared checks are a no-op (behavior unchanged). - Fail-closed: every check runs under a guard that converts any crash (e.g.
RecursionErrorfrom adversarial deeply-nested input) into a cleanhard=0failure instead of taking down the evaluator.
Verified: 403 pytest passing; reviewed (7 findings fixed); E2E with a real codex-generated agent-template (clean → judge; planted secret/abs-path → hard-failed before the judge).
Install: pipx install https://github.com/jerryfane/gitmoot-skillopt/releases/download/v0.3.1/gitmoot_skillopt-0.3.1-py3-none-any.whl
gitmoot-skillopt v0.3.0
gitmoot-skillopt v0.3.0
Ships judge-prompt optimization (#345 Phase 2) — the freeze-and-alternate counterpart to skill optimization. optimize can now tune the judge prompt against a held-out human-labeled set instead of the skill, gated on held-out human agreement.
Highlights
- New
optimizeflags:--judge-prompt-optimization,--judge-human-labeled-path,--judge-prompt-init,--judge-prompt-version,--judge-edit-budget. - Runs a global pass plus one per
task_kind; reflects a candidate judge prompt, scores its verdicts against the human-labeled set, and accepts only when held-out agreement improves (human_agreementgate). Judge verdicts are memoized by(prompt, item_id). - Emits a judge-candidate package (
kind: gitmoot-skillopt-judge-candidate) with per-task_kindbest prompt + version + agreement + gate history. - Validated on real data (live Codex judge): on a real held-out correctness set, agreement rose 0.333 → 0.667 (gate-accepted), with non-improving variants correctly rejected.
See docs/guide/judge-prompt-optimization.md and docs/reference/cli.md. Merged via #70 + #71.
Install
pipx install https://github.com/jerryfane/gitmoot-skillopt/releases/download/v0.3.0/gitmoot_skillopt-0.3.0-py3-none-any.whlgitmoot-skillopt Beta v0.2.0b2
gitmoot-skillopt Beta v0.2.0b2
Patch beta for the paired Gitmoot SkillOpt optimizer package. This release fixes Claude Code structured-output compatibility for optimizer runs.
Highlights
- Uses Claude Code's public
--json-schemaflag for schema-backed structured output. - Keeps a legacy
--schemafallback when an installed Claude CLI advertises that flag. - Fails early with actionable guidance when Claude Code has no schema-backed structured-output flag.
- Keeps prompt-only JSON fallback disabled for structured optimizer messages, preserving machine-readable SkillOpt automation.
User Impact
This resolves the beta mismatch where gitmoot-skillopt v0.2.0b1 could fail Claude-backed optimization with an unknown --schema flag on current public Claude Code builds.
Assets
gitmoot_skillopt-0.2.0b2-py3-none-any.whl— Python wheel with thegitmoot-skillopt,skillopt-train, andskillopt-evalconsole scripts.gitmoot_skillopt-0.2.0b2.tar.gz— source distribution.sha256sums.txt— SHA256 checksums for the release artifacts.
Verification
PYTHONDONTWRITEBYTECODE=1 .venv/bin/python -m pytest-> 328 passed..venv/bin/ruff check skillopt/model/claude_backend.py tests/test_model_backend_config.py-> passed.git diff --check-> passed.- Built wheel installed in a fresh temporary venv and reported
gitmoot-skillopt 0.2.0b2. - Installed wheel detected local Claude Code structured-output flag as
--json-schema.
Known Limits
- No PyPI publish was performed; this release follows the local/GitHub beta pattern used for
v0.2.0b1. - Model-backed optimizer, target, and evaluator calls still depend on local environment credentials and model availability.
gitmoot-skillopt Beta v0.2.0b1
gitmoot-skillopt Beta
The paired optimizer package for Gitmoot SkillOpt Beta. This release consolidates the gitmoot-skillopt alpha cycle through v0.2.0a17.
Highlights
- Registers target exec text responses as candidate sample artifacts for Gitmoot preview rendering.
- Supports optimizer views and retry optimizer views for human-feedback-driven SkillOpt training.
- Improves feedback scoping, judge facts handling, and retry behavior.
- Pairs with
gitmoot v0.1.0-beta.8.
Features
- Candidate packages attach selected text samples when no structured artifact is available.
- Structured artifacts keep priority over text response fallback.
- Optimizer views provide multiple independent perspectives over the same full human feedback set.
- Retry optimizer views can inherit, auto-resolve, or use an explicit count.
- Feedback-direct optimization can update skills from imported ranked human feedback.
- Selection and retry records include gate rejection context, evaluator facts, and retry metadata.
Workflow Changes
- Old review feedback is scoped to the reviewed baseline outputs instead of automatically capping new candidate outputs.
- Judge/evaluator facts are treated as structured evaluation output for downstream scoring and retry prompts.
- Final test evaluation is disabled by default unless Gitmoot explicitly enables it.
- Candidate sample artifacts are exported so Gitmoot can show candidate previews in review comments.
Known Limits
- This beta is intended to be driven by Gitmoot, not as a polished standalone CLI for every upstream SkillOpt workflow.
- Model-backed optimizer, target, and evaluator calls still depend on local environment credentials/config.
- Prompt optimization behavior remains beta-quality and should be validated through human review loops.
- No PyPI publish was performed; this release follows the local/GitHub beta pattern used during development.
Assets
gitmoot_skillopt-0.2.0b1-py3-none-any.whl— Python wheel with thegitmoot-skillopt,skillopt-train, andskillopt-evalconsole scripts.gitmoot_skillopt-0.2.0b1.tar.gz— source distribution.sha256sums.txt— SHA256 checksums for the release artifacts.
Verification
- Focused pytest coverage for target exec response sample discovery and candidate package sample artifact registration.
- Local package version check with
gitmoot-skillopt --version. - Paired end-to-end Gitmoot training flow verified through the SmithyX review-item workflow.