Skip to content

Releases: mrmaxsteel/mindspec

v0.7.0

21 Apr 17:06
d04a417

Choose a tag to compare

Changelog

  • 1895aa5 Merge pull request #77 from mrmaxsteel/install_non_priv
  • 1c9d36c Merge pull request #78 from mrmaxsteel/chore/beads-1.0.2-upgrade
  • 346267f Merge pull request #79 from mrmaxsteel/fix/plan-approve-hard-commit
  • d04a417 Merge pull request #80 from mrmaxsteel/fix/plan-validate-zfc
  • 2368436 Merge remote-tracking branch 'origin/main' into install_non_priv
  • 71ebd26 fix(approve): hard-fail when plan/spec approve leaves dirty worktree
  • 44b7900 fix(install): address review — walk up to existing parent, warn when INSTALL_DIR not on PATH
  • 08a8e2d fix(install): default to ~/.local/bin for unprivileged installs
  • 7faf530 fix(validate): address PR review — shared frontmatter helper, full-status phase derivation, metadata-path tests
  • a2399cd fix(validate): remove ZFC violations from plan/spec validation and workflow
  • 0bee7e0 refactor: read bd custom statuses from config instead of hardcoding; reframe bd auto-add disable as project policy

v0.6.2

20 Mar 05:14
ed567a5

Choose a tag to compare

What's Changed

Bug Fixes

  • Session-start hook no longer hangs — Fixed two causes of infinite hang: io.ReadAll(os.Stdin) blocking before the session-start branch, and instruct triggering 5.5s dolt cold starts before the protected-branch short-circuit. Session-start on main now completes in ~0.5s (was: infinite hang). (#73)

  • Phase derivation between beadsDerivePhaseFromChildren now returns implement (not plan) when some beads are closed and some open but none in_progress. Eliminates the spurious warning: "stored phase 'implement' disagrees with child-derived phase 'plan'" during multi-bead workflows. (#73)

  • Atomic bead claimingmindspec next now uses bd update --claim (atomic, fails if already claimed) instead of --status=in_progress. Prevents two concurrent agents from claiming the same bead. (#73)

  • Dolt pre-warm respects server modeprewarmDolt now checks BEADS_DOLT_SERVER_MODE env var and metadata.json before spawning bd dolt start. Embedded mode users skip the unnecessary server start. (#75)

Performance

  • Dolt pre-warm on session start — When server mode is configured, the session-start hook fires bd dolt start in the background (~300ms). Subsequent bd calls connect to the running server (~50ms vs ~5.5s cold start).
  • Protected branch fast path — On main/master, instruct and session-start render idle guidance inline without querying beads at all.
  • Fewer bd callsDiscoverActiveSpecs now queries only open/in_progress epics (2 calls) instead of all statuses (3+ calls).

Improvements

  • IsValidPhase in state package — Includes terminal states like "done" that are valid in metadata but not operating modes. Replaces ad-hoc ModeDone checks.
  • RenderIdleIfProtected — Shared function in instruct package eliminates duplication between hook.go and instruct.go.
  • Gitignore cleanup.beads/backup/ and .beads/push-state.json added to .beads/.gitignore to stop polluting git status. (#74)

Other

  • Install scripts for convenience (#72)
  • Enforce HTTPS and TLS v1.2 (#72)

Full Changelog: v0.6.1...v0.6.2

v0.6.1

18 Mar 08:33
a18b759

Choose a tag to compare

Improvements

  • STOP messages after mindspec complete and mindspec plan approve now include /clear + mindspec next hint, giving agents clearer guidance on what to do next (#71)

Internal

  • LLM test harness hardened for Haiku reliability (SingleBead, StopAfterComplete, StopDoesNotBlockApproveImpl)
  • HISTORY.md updated with /clear hint test results

v0.6.0

11 Mar 14:35
9d9505a

Choose a tag to compare

Highlights

Execution Layer Interface (Spec 077) — New Executor interface cleanly separates enforcement logic (what should happen) from execution (how it happens). All approve/complete/cleanup commands now accept an Executor, enabling mock-based testing without git. GitExecutor renamed to MindspecExecutor.

Location-Agnostic Commands (Spec 079)mindspec next and mindspec complete now work from anywhere in the repo. No need to be in a specific worktree. Multi-spec prompt when ambiguous, --spec flag for explicit targeting, integer prefix resolution (e.g. --spec 079).

Epic Lifecycle Metadata (Spec 080) — Phase derivation is now metadata-first: approval commands write phase to bead metadata, eliminating drift between bead state and lifecycle phase. Removes auto-next behavior in favor of explicit per-bead claiming.

Features

  • Self-Contained Beads (Spec 074) — Bead fields (spec context, acceptance criteria, branch, worktree path) populated at plan approval. Replaced primer.go with RenderBeadContext. Plan re-approval safeguards prevent accidental overwrites.
  • ADR Store Interface (Spec 075)Store interface abstracts ADR access, enabling future backend flexibility (e.g. beads-backed ADR storage).
  • Plan Decomposition Quality (Spec 076) — Research-backed heuristics for plan decomposition quality validation. New validate/plan.go checks for bead sizing, dependency structure, and acceptance criteria completeness.
  • Per-Bead Acceptance Criteria (Spec 078) — Plans now require explicit acceptance criteria per bead, enforced at plan approval. Validation rejects vague or missing criteria.
  • Executor Docs & Tests (Spec 081) — Architecture documentation overhaul with two-layer model. Renamed internal/specinit/ to internal/spec/. Added stop-behavior LLM tests (StopAfterComplete, StopDoesNotBlockApproveImpl).

Improvements

  • Auto-claim first bead on plan approve (#56)
  • llm-test-fix skill for autonomous test fixing (#63)
  • STOP messages now include /clear + mindspec next guidance (#71)
  • Instruct templates cleaned up: removed stale auto-claims text, dead --no-next flag
  • Architecture docs rewritten with two-layer model (workflow layer + execution engine)
  • README rewritten with clearer architecture framing

Bug Fixes

  • Correct --acceptance flag for bd create (#64)
  • Dolt port isolation for LLM test sandbox (#57)
  • SingleBead harness template syntax, phase sync, cleanup hardening (#69)
  • Verify bead branch is merged before force-removing worktree
  • Resolve spec from bead ID for cross-worktree operations
  • Phase derivation handles beads auto-close correctly
  • DiscoverActiveSpecs filters childless epics regardless of status
  • Complete command requires bead ID (no more implicit targeting)

Refactoring

  • Go module renamed to github.com/mrmaxsteel/mindspec (#58)
  • internal/gitops/internal/gitutil/ (all import paths updated)
  • internal/specinit/internal/spec/ with package spec
  • GitExecutorMindspecExecutor throughout codebase
  • Deleted primer.go (220 lines) — replaced by beadctx.go (94 lines)

Testing

  • 18 LLM behavioral test scenarios, 16/18 passing on Opus
  • New stop-behavior tests validate agent respects STOP instructions
  • Mock executor enables unit testing approval logic without git operations
  • Plan validation has 386+ lines of new test coverage

Stats

15 PRs merged · 8 specs implemented · 62 Go files changed · +5,145 / -2,558 lines

Full Changelog: v0.5.1...v0.6.0

v0.5.1

06 Mar 12:21
15ba1c9

Choose a tag to compare

Changelog

  • 22f50a0 Add llm-test Codex skill
  • f7ca592 Merge bead/mindspec-3y4t.1
  • f310d41 Merge bead/mindspec-3y4t.2
  • 79a560a Merge bead/mindspec-7yzq.1
  • c03c35b Merge bead/mindspec-9dx0.1 into spec/059-harness-coverage
  • 432d08b Merge bead/mindspec-9dx0.2 into spec/059-harness-coverage
  • 40754ac Merge bead/mindspec-9dx0.4 into spec/059-harness-coverage
  • 78dfc7e Merge bead/mindspec-9dx0.5 into spec/059-harness-coverage
  • d8b08d5 Merge bead/mindspec-9dx0.6 into spec/059-harness-coverage
  • 62f080e Merge bead/mindspec-pwa1.4
  • eb8b476 Merge bead/mindspec-pwa1.5
  • a0e9595 Merge bead/mindspec-pwa1.6
  • 633d7c5 Merge bead/mindspec-scal.1
  • 605e09b Merge bead/mindspec-sx1h.1
  • 2b0ea00 Merge branch 'main' into cleanup/068-lifecycle-yaml
  • a445192 Merge branch 'main' into spec/065-freshness-gate-messaging
  • e57b9f9 Merge branch 'main' into spec/070-sandbox-beads-isolation
  • b3d0a3b Merge branch 'main' of https://github.com/mrmaxsteel/mindspec
  • 8a18aab Merge branch 'spec/059-harness-coverage'
  • c56c37f Merge pull request #25 from mrmaxsteel/codex/skill-llm-test
  • d8935de Merge pull request #26 from mrmaxsteel/codex/fix-mindspec-bas1-main-guard
  • b887b0c Merge pull request #27 from mrmaxsteel/fix/revert-skill-names-to-ms-dash
  • 4004adc Merge pull request #28 from mrmaxsteel/chore/lifecycle-yaml-open-specs
  • ef9c112 Merge pull request #29 from mrmaxsteel/fix/042-lifecycle-done
  • e306fc7 Merge pull request #30 from mrmaxsteel/fix/056-remaining-items
  • 9854227 Merge pull request #31 from mrmaxsteel/fix/056-lifecycle-done
  • f56841e Merge pull request #32 from mrmaxsteel/spec/058-zero-git-lifecycle
  • 589b142 Merge pull request #33 from mrmaxsteel/fix/remove-gh-from-impl-approve
  • 4857cea Merge pull request #34 from mrmaxsteel/fix/harness-push-only-assertions
  • 79d6701 Merge pull request #35 from mrmaxsteel/merge/059-harness-coverage
  • 8e8ab82 Merge pull request #36 from mrmaxsteel/spec/060-eliminate-focus-lifecycle
  • 21fc92f Merge pull request #37 from mrmaxsteel/spec/061-spec-list
  • fa1fa78 Merge pull request #38 from mrmaxsteel/spec/062-lifecycle-bugs
  • 8afdb70 Merge pull request #39 from mrmaxsteel/spec/063-impl-approve-auto-cd
  • 71377c7 Merge pull request #40 from mrmaxsteel/spec/064-stale-lifecycle-cleanup
  • a3a6363 Merge pull request #41 from mrmaxsteel/spec/065-freshness-gate-messaging
  • b505579 Merge pull request #42 from mrmaxsteel/spec/066-impl-approve-no-main-commit
  • 7517d0e Merge pull request #43 from mrmaxsteel/spec/067-lifecycle-test-epic-leak
  • a0e740e Merge pull request #44 from mrmaxsteel/spec/067-harness-adr023-compat
  • 5c5347d Merge pull request #45 from mrmaxsteel/cleanup/068-lifecycle-yaml
  • ab8fc08 Merge pull request #46 from mrmaxsteel/spec/069-complete-idempotent
  • a0ec328 Merge pull request #47 from mrmaxsteel/spec/070-sandbox-beads-isolation
  • 9115bf1 Merge pull request #48 from mrmaxsteel/spec/071-recording-config-flag
  • 8b672b0 Merge pull request #49 from mrmaxsteel/fix/skip-next-false-positives
  • 2f3885d Merge pull request #50 from mrmaxsteel/fix/harness-worktree-topology
  • 9402ae5 Merge pull request #51 from mrmaxsteel/fix/testing-md-update
  • 2fd8300 Merge pull request #52 from mrmaxsteel/spec/072-hook-cleanup
  • 5952506 Merge pull request #54 from mrmaxsteel/spec/073-llm-test-coverage
  • b5aa8fd Merge pull request #55 from mrmaxsteel/fix/llm-test-improvements
  • 21b2dbf Merge pull request #56 from mrmaxsteel/feat/plan-approve-auto-next
  • 9b1c455 Merge pull request #57 from mrmaxsteel/fix/dolt-port-isolation
  • 15ba1c9 Merge pull request #58 from mrmaxsteel/refactor/module-path
  • c4d9464 Merge remote-tracking branch 'origin/main' into fix/harness-worktree-topology
  • aa89b17 adr: accept ADR-0023 — eliminate focus file, beads as single state authority
  • 3626908 adr: amend ADR-0023 to also eliminate lifecycle.yaml
  • 719d8c1 adr: propose ADR-0023 — eliminate focus file, beads as single state authority
  • 908384b adr: update ADR-0023 to use spec_num/spec_title metadata schema
  • db81d87 approve: plan 058-zero-git-lifecycle
  • 4685070 approve: spec 058-zero-git-lifecycle
  • fabbfa2 bd init: initialize beads issue tracking
  • f55daf3 bd: backup 2026-03-01 21:12
  • 3ca1ebd bd: backup 2026-03-01 21:48
  • b67a9ba bd: backup 2026-03-01 22:19
  • 1211e99 bd: backup 2026-03-01 22:45
  • 64b617b bd: backup 2026-03-01 23:32
  • 66c7c3b bd: backup 2026-03-02 09:01
  • e2c2a99 bd: backup 2026-03-02 09:17
  • b252029 bd: backup 2026-03-02 09:37
  • 364c7a3 bd: backup 2026-03-02 09:54
  • 213639a bd: backup 2026-03-02 10:28
  • b66b16a bd: backup 2026-03-02 10:56
  • 82200ea bd: backup 2026-03-02 12:49
  • b317962 bd: backup 2026-03-02 15:04
  • d404b9b bd: backup 2026-03-02 22:57
  • d2b6ae8 bd: backup 2026-03-02 23:15
  • fac3197 bd: backup 2026-03-02 23:44
  • da54a4e bd: backup 2026-03-03 08:54
  • 4c25d16 bd: backup 2026-03-03 09:19
  • ab64a76 bd: backup 2026-03-03 09:36
  • 65f504c bd: backup 2026-03-03 09:58
  • 8877839 bd: backup 2026-03-03 11:09
  • 811aff2 bd: backup 2026-03-03 13:04
  • 946630e bd: backup 2026-03-03 14:15
  • 4d0a782 bd: backup 2026-03-03 15:04
  • eafa724 bd: backup 2026-03-03 16:09
  • 70cab2e bd: backup 2026-03-03 16:37
  • 9c5b50c bd: backup 2026-03-03 17:06
  • 0c3fce4 bd: backup 2026-03-03 18:04
  • 384f712 bd: backup 2026-03-03 18:50
  • 47c7693 bd: backup 2026-03-03 20:44
  • a95a1cb bd: backup 2026-03-03 22:17
  • 033884a bd: backup 2026-03-03 22:35
  • 155ec6f bd: backup 2026-03-03 23:03
  • c25ec44 bd: backup 2026-03-03 23:23
  • 1221fe1 bd: backup 2026-03-03 23:39
  • b66958a bd: backup 2026-03-04 00:02
  • 563cac2 bd: backup 2026-03-04 00:17
  • 01c9f41 bd: backup 2026-03-04 01:03
  • 5d500ba bd: backup 2026-03-04 01:26
  • e103646 bd: backup 2026-03-04 02:15
  • 73f20ab bd: backup 2026-03-04 02:31
  • ad51002 bd: backup 2026-03-04 02:46
  • 5430e92 bd: backup 2026-03-04 03:32
  • d1e216f bd: backup 2026-03-04 07:28
  • 670c777 bd: backup 2026-03-04 08:03
  • 35a0035 bd: backup 2026-03-04 08:31
  • 7a2605f bd: backup 2026-03-04 10:08
  • 3c7ae27 bd: backup 2026-03-04 10:24
  • 9a1a588 bd: backup 2026-03-04 11:38
  • 8394674 bd: backup 2026-03-04 13:46
  • bbc2ed0 bd: backup 2026-03-04 14:02
  • cdeb1ce bd: backup 2026-03-04 16:12
  • 512fb72 bd: backup 2026-03-04 16:32
  • d1cdf55 bd: backup 2026-03-04 17:00
  • 20cf6bf bd: backup 2026-03-04 17:32
  • 5a2...
Read more

v0.5.0

05 Mar 11:56

Choose a tag to compare

v0.5.0

Architecture: Beads as Single State Authority (ADR-0023, Spec 060)

The focus file and lifecycle.yaml have been eliminated. All workflow state is now derived from beads — the issue tracker is the single source of truth for spec phase, active work, and progress. This is the biggest internal change since v0.1.0.

  • Migrate all commands (approve, next, complete, instruct, state) to beads-derived state
  • Remove focus.yaml and lifecycle.yaml reads/writes entirely
  • Phase derivation from epic + child bead statuses
  • Clean up 12 stale lifecycle.yaml files from historical specs (Spec 064)

Zero Raw Git Lifecycle (Spec 058)

Agents no longer need raw git for the happy path — all git operations are handled by mindspec commands.

  • Worktree enforcement for next and complete — commands auto-redirect to the correct worktree
  • Removed --allow-main escape hatch
  • Updated all CLI messages to reference mindspec commands instead of raw git

Hook Cleanup (Spec 072)

  • Replaced guard hooks with thin-shim pre-commit + session-start hooks
  • Added stale hook cleanup in setup claude
  • Simplified hook architecture significantly

New Commands

  • mindspec spec list (Spec 061) — table and JSON output for all specs with phase status
  • mindspec cleanup — deferred worktree/branch cleanup after impl approve

Workflow Improvements

  • Complete idempotency (Spec 069) — running mindspec complete twice won't fail; unmerged-bead guard added to next
  • Impl approve auto-cd (Spec 063) — auto-cd into spec worktree when approving
  • Freshness gate messaging (Spec 065) — removed --force hint from error messages
  • Recording config flag (Spec 071) — recording.enabled config, default off

Bug Fixes

  • Fix bead-to-spec merge for nested worktrees (Spec 062)
  • Fix queryEpics to return all statuses (open, in_progress, closed)
  • Auto-commit spec worktree in impl approve before cleanup
  • Fix DiscoverActiveSpecs filtering childless epics regardless of status
  • Fix SpecIDFromMetadata slugification to match spec ID format
  • Fix pre-commit hook blocking impl commits on spec/ branches

LLM Test Harness (Specs 059, 067, 073)

  • Added skip_next and skip_complete analyzer rules
  • New assertion helpers: focus fields, beads state, merge topology, commit messages
  • New scenarios: BlockedBeadTransition, lifecycle test with ADR-0023 format
  • Sandbox beads isolation — each sandbox gets its own dolt server on a random port (Spec 070)
  • Turn-based lifecycle proximity for skip_next exemption

Full Changelog: v0.4.1...v0.5.0

v0.4.1

01 Mar 21:01
5f6bf98

Choose a tag to compare

What's Changed

README overhaul

  • Add comprehensive feature list organized by category (Lifecycle, Context Engineering, Workflow Automation, Observability, Setup & Integration)
  • Add "Tested Against Real Agents" section describing the behavioral test harness
  • Trim redundant sections (AgentMind Quick Start, How It Works, CLI Reference) — content lives in guides
  • Fix guide links to match current docs layout (.mindspec/docs/user/guides/)
  • Update project structure tree to reflect current state
  • Add Codex support to feature list and setup examples

Workflow improvements

  • Migrate commands to skills, add agents and copilot setup (#23)
  • Fix BEGIN/END managed markers, rename ms-* to ms:* everywhere (#22)
  • Copilot setup no longer generates .github/prompts/ (#21)
  • Claude setup uses .claude/skills/ instead of .claude/commands/ (#20)

Worktree-aware spec resolution (Spec 057)

  • SpecDir() automatically finds spec artifacts regardless of which worktree the process runs from
  • ActiveSpecs is now worktree-aware
  • Removes EffectiveSpecRoot — all callers use the new worktree-aware SpecDir

Bug fixes

  • Fix mindspec complete from spec worktree
  • Fix stale focus file deadlock when worktree deleted
  • Fix focus file deadlock by handling absolute paths in hook guards
  • Enforce branch protection in idle mode via config
  • Block file edits in idle mode instead of warning
  • Make focus per-worktree so workflow guard doesn't block unrelated worktrees
  • Instruct emits idle guidance on protected branches instead of erroring

Testing

  • Add LLM test scenarios: BugfixBranch, MultipleActiveSpecs, StaleWorktree, CompleteFromSpecWorktree
  • Deterministic behavioral tests for post-checkout hook

Full Changelog: v0.4.0...v0.4.1

v0.4.0

01 Mar 01:34

Choose a tag to compare

Full Changelog: v0.3.0...v0.4.0

v0.3.0

28 Feb 09:38

Choose a tag to compare

What's Changed

  • [SPEC 048-impl-approve-cleanup] Merge spec branch to main by @mrmaxsteel in #2
  • chore: set merge_strategy to pr by @mrmaxsteel in #3
  • [SPEC 049-hook-command] Merge spec branch to main by @mrmaxsteel in #4
  • feat(049): consolidate hooks into mindspec hook CLI command by @mrmaxsteel in #5
  • feat(049): hook command, workflow guards, and impl-approve preflight by @mrmaxsteel in #6
  • [SPEC 050-lifecycle-autocommit] Merge spec branch to main by @mrmaxsteel in #7
  • [SPEC 051-worktree-state-propagation] Merge spec branch to main by @mrmaxsteel in #8
  • [SPEC 052-session-freshness-gate] Merge spec branch to main by @mrmaxsteel in #9
  • [SPEC 053-drop-state-json] Merge spec branch to main by @mrmaxsteel in #10
  • [SPEC 054-simplify-lifecycle-beads] Merge spec branch to main by @mrmaxsteel in #11
  • fix(054): complete mode-cache → focus migration by @mrmaxsteel in #13
  • [SPEC 033-security-hardening-sast-findings] Merge spec branch to main by @mrmaxsteel in #12

Full Changelog: v0.2.0...v0.3.0

v0.2.0

26 Feb 15:05
22acca6

Choose a tag to compare

What's Changed

  • feat: clean context enforcement for bead starts (Spec 047) by @mrmaxsteel in #1

New Contributors

Full Changelog: v0.1.2...v0.2.0