Repository navigation
Releases
v0.11.2
v0.11.1
v0.11.0
v0.10.0 — optional work plans
Optional work plans connect goals and tasks to project memory without introducing a task-tracker runtime.
- Set
plan: docs/work-plan.mdin.omut/brief.mdto include an existing Markdown plan in project context and pack overviews. - Set
plan: work/README.mdin.omut/local/instance.mdfor a copy-only package, relative to.omut/local/. Local plans stay out of pack overviews and remain in the main checkout when working in linked worktrees. contextand startup hooks include the selected index with source locations. Linked cards are not followed, and task states are never edited automatically.checkreports invalid, missing, unreadable or out-of-layer plan pointers and warns above 80 lines or 8000 Unicode characters. Case aliases on case-insensitive filesystems cannot bypass the local-layer exclusion.- Project rules include an example organized by goals, task IDs, dependencies and acceptance criteria, with one authoritative task state and explicit ownership of active work.
Plans are optional. Existing projects and task packages require no migration; start and zero do not create or rewrite plans.
After upgrading, run omut zero only where you want to refresh the agent rules; in a pack, refresh the pack root for the new lead guidance. Preserve active task packages and coordinate changes with their keeper.
Verified locally with go vet ./..., go test ./..., strict meta checks, and CLI fixtures for plan provenance, privacy, worktrees, error handling, size budgets and preservation of plan/card files.
omut v0.9.1 — Git observations in context
Local Git observations in context
This patch improves the v0.9 pack overview: omut context and the pack startup hook now include the local Git state alongside recorded project memory. The lead can use the supplied overview without a routine status/diff loop over every project.
- Branch or detached/unborn HEAD, upstream and ahead/behind from cached local refs.
- Changed, staged and untracked paths with XY index/worktree status, rename sources, submodule state and conflicts.
- Changes scoped to the project directory; private-worktree status comes from the actual working copy while its meta remains in the main checkout.
- Explicit non-Git and unavailable states. Git failures retain readable meta and mark the context incomplete; unknown cleanliness/divergence remain null in JSON.
- Read-only Git inspection disables optional index refresh and fsmonitor hooks. No fetch or full diff is included.
Both Markdown and --json carry these observations. The lead's instructions reserve specific diffs for questions, conflicts or discrepancies; changed paths alone do not establish unfinished work or its priority.
After upgrading, run omut zero in the pack root to refresh the lead's instructions. Existing hook configuration continues to work. No metadata migration is needed.
Validation covers real Git divergence, conflicts, renames and unusual filenames, private subproject worktrees, missing upstream refs, failed reads, unchanged Git indices and fsmonitor suppression. Local vet/tests and a six-project pack smoke pass. Token or task-quality gains have not been measured.
omut v0.9.0 — deterministic context
Deterministic context for the pack lead
omut context assembles recorded project state without a model or a persistent index. At a pack root it gives the lead one overview; omut context <project> gives the project's current records. --json exposes the same selection for other tools.
- Pack overview: pack context, project status and current brief sections, waiting decisions and ADRs, unfinished thread summaries, and existing check findings.
- Project context: full brief and decisions, unfinished threads, waiting ADR bodies, filled local instance memory, and the latest five entries from each log.
- Every excerpt carries a source path and line. Selection and omissions are explicit. Read or shape errors retain partial output, mark it incomplete, and return exit 1; warnings alone return 0.
- Private memory and main-checkout/worktree layers follow the existing rules. Context assembly never runs a claim's
how.
The pack's startup hook now supplies this same overview, so the lead does not need to discover and assemble those files itself. Agents still interpret records and verify their claims. Token or task-quality savings have not been established.
After upgrading, run omut zero in the pack root to refresh the lead's instructions. Existing hook configuration works as before. No metadata migration is required.
Also included: the completed exploratory handoff pilot and reproducible research runner, with results and limitations in docs/research/handoff-benchmark-results.md.
Validation: Go vet/tests; context provenance, selection, read-only behavior, partial failures, ADRs and private/shared worktrees; smoke on a six-project pack. Release publication additionally runs the macOS gate and builds Linux, macOS and Windows archives for amd64 and arm64.
v0.8.0
Changes
- Bound long paragraphs as well as lines: briefs warn above 6000 Unicode characters, threads above 8000, retaining the 60/80-line limits. Counts are independent of UTF-8 byte width and normalize LF/CRLF. The CLI reports findings without rewriting content.
- Clarify private Codex setup and hook trust, including per-worktree configuration and access to the main checkout's memory.
- Add a worked continuation on real omut source, covering a recorded stop, a controlled interrupted patch and native startup-hook evidence. These are concrete cases, not claims about general model quality or token savings.
- Explain what the freshness badge establishes and how to stop using omut while preserving existing notes, agent rules and unrelated hooks.
Upgrading
Run omut zero in each existing project to refresh its embedded rules. Existing briefs or threads with long paragraphs may now produce size warnings; check --fail-on warn treats those as failures. Move history and detailed evidence behind links rather than squeezing it into fewer physical lines.
Verification
go vet ./..., go test ./..., and the project's own check --fail-on warn pass. Size regressions cover ASCII/Cyrillic, exact and exceeded boundaries, and LF/CRLF.