Skip to content

Releases: gitmoot/gitmoot-skillopt

gitmoot-skillopt v0.4.2

Choose a tag to compare

@jerryfane jerryfane released this 30 Jun 12:53
8f56201

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

Choose a tag to compare

@jerryfane jerryfane released this 30 Jun 07:44
91b51a6

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

Choose a tag to compare

@jerryfane jerryfane released this 27 Jun 19:49
5227506

Evaluator features for the gitmoot judge.

  • Trajectory digest for the judge (#348 Phase 1, #75) — a budgeted, secrets-redacted ## Process Summary (reusing parse_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

Choose a tag to compare

@jerryfane jerryfane released this 23 Jun 05:06
b381dcc

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, strict contract_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. RecursionError from adversarial deeply-nested input) into a clean hard=0 failure 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

Choose a tag to compare

@jerryfane jerryfane released this 21 Jun 07:37
8dcefa2

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 optimize flags: --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_agreement gate). Judge verdicts are memoized by (prompt, item_id).
  • Emits a judge-candidate package (kind: gitmoot-skillopt-judge-candidate) with per-task_kind best 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.whl

gitmoot-skillopt Beta v0.2.0b2

Pre-release

Choose a tag to compare

@jerryfane jerryfane released this 12 Jun 15:55

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-schema flag for schema-backed structured output.
  • Keeps a legacy --schema fallback 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 the gitmoot-skillopt, skillopt-train, and skillopt-eval console 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

Pre-release

Choose a tag to compare

@jerryfane jerryfane released this 08 Jun 07:34

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 the gitmoot-skillopt, skillopt-train, and skillopt-eval console 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.