github Fission-AI/OpenSpec v1.13.1
v1.13.1 - Hardened CLI, safer archives

2 hours ago

What's New in v1.13.1

This release makes OpenSpec safer to run in repositories you have not reviewed yet, and makes archive, validation, and the agent workflows more predictable.

Improved

  • Security hardening - OpenSpec is safer in a freshly cloned repository. A config.yaml value can no longer inject directives into agent instructions, crafted files can no longer hang openspec update or openspec archive, and a repository's .npmrc can no longer redirect the update check.
  • Next step in openspec status - Status now ends with a Next: line naming the exact command that moves the change forward, so resuming a change no longer means knowing the workflow by heart.
  • Profile-aware skills - Generated skills and commands name only the workflows your profile installs, and they match natural phrasing such as "openspec propose" or "do an openspec apply".
  • Project check - Workflows confirm the project has run openspec init before writing anything, and never create an openspec/ folder as a side effect.
  • Explore and update workflows - Explore names /opsx:propose and /opsx:apply at every handoff and treats your explicit request to capture a change as confirmation. /opsx:update drafts its revisions first and writes only after you confirm.
  • Artifact templates - Generated proposal, spec, design, and tasks files open with a top-level heading, so markdownlint no longer flags every artifact.
  • Tool picker - The vendor-neutral target is listed as "Other / Universal" and can be found by searching for terms like universal, generic, or custom.
  • Nix - The flake package now ships bash, zsh, and fish completions.

Fixed

  • Archive - Archive refuses a requirement name that differs from an existing one only in case, a RENAMED section whose FROM: and TO: lines do not pair up, and a delta file it would never read. Bulk archive checks every target before writing any spec, and agent-driven archive and sync create the main spec for a new capability.
  • Validation - openspec validate reports requirements written outside a delta section, rejects a scenario with no body, warns when tracked tasks have no checkboxes, and checks a schema's apply.requires against its artifacts.
  • Task progress - Tasks under +, 1., and 1) list markers now count, and an unrecognized marker such as [~] counts as unfinished, so ✓ Complete no longer hides open work.
  • Spec parsing - Requirement headings with a closing ### sequence resolve correctly, and openspec show --json --deltas-only reports exactly the deltas archive applies.
  • Changes and lists - A change nested inside a namespace folder is reported instead of silently misread, and one dangling symlink no longer breaks openspec list.
  • Stores - openspec store remove no longer deletes a store nested inside the one being removed, a store named specs or changes no longer becomes the planning root, and store setup --no-init-git works inside an existing Git repository.
  • Configuration - A global config file with a syntax error is left untouched instead of being overwritten, openspec config edit supports an EDITOR with arguments such as code --wait, and DO_NOT_TRACK=true now disables telemetry.
  • Setup and completions - Legacy cleanup keeps your own files in old command folders, and uninstalling bash completions restores .bashrc byte for byte.

New Contributors

Full Changelog: v1.13.0...v1.13.1

Don't miss a new OpenSpec release

NewReleases is sending notifications on new releases.