Repository navigation
Releases: mairistem/codev
Release list
v0.6.1
Fixed
codev validateno longer fails when_codev/specs/holds a Markdown file other thanspec.md, andcodev list --specsno longer shows such a file as a capability.- A change created with a project schema whose
name:differs from its folder can now be used;codev schemaswarns about the mismatch withschema_name_mismatch. archiveis refused as a change name, bycodev new changeand by--change, instead of being treated as a change.- A failed
codev instructions --jsonnow carrieslanguage, like a successful one. - Paths in JSON output use
/separators on Windows too, as documented.
What's Changed
- chore(codev): align the repository with codev 0.6.0 by @ludovic-nicaise in #22
- docs(specs): specify the core commands that predate codev's own specs by @ludovic-nicaise in #23
- fix: core-command edge cases found while specifying them by @ludovic-nicaise in #24
- chore(release): v0.6.1 by @ludovic-nicaise in #25
Full Changelog: v0.6.0...v0.6.1
v0.6.0
Added
codev self-updatedownloads the latest release for your platform, verifies its SHA-256, replaces the binary and refreshes the current project;--checkonly reports,--snoozesilences the notice for 7 days, and a cargo or package-manager installation is left alone with the right command printed instead.codev statustells you when a newer codev is available — at most one anonymous request to GitHub per day, never in CI or withCODEV_NO_UPDATE_CHECK=1— andcodev status --jsonexposes it in anupdateobject; the skills offer to update at the start of an action.codev_versionin_codev/config.yamlsets the codev versions a team accepts;codev doctorreports acodev_versioncheck when the running codev does not satisfy it, or when a newer release is known.
Changed
- A key of
_codev/config.yamlthat your codev does not know — typically one added by a newer codev — is now a warningunknown_config_keyinstead of an error, naming the key and the project'scodev_version, and pointing tocodev self-update;codev validate --strictand the newconfig.keyscheck ofcodev doctorreport it. codev 0.5 and earlier still reject such keys.
Fixed
- When the running codev is newer than the project's
codev_versionallows,codev doctornow suggestscodev self-update --version <X.Y.Z>with a version that satisfies it, instead of acodev self-updatethat refuses to downgrade.
What's Changed
- feat(update): update notice and codev self-update by @ludovic-nicaise in #19
- feat(config): forward-compatible configuration; doctor fix for a too-new codev by @ludovic-nicaise in #20
- chore(release): v0.6.0 by @ludovic-nicaise in #21
Full Changelog: v0.5.0...v0.6.0
codev 0.5.0
Changed
- BREAKING:
codev decision supersede,codev decision deviateand
codev decision promotenow create aproposeddecision, unsealed, like
codev decision new: write or rework it, then runcodev decision accept <ID>to make it take effect. Scripts that relied on these commands taking
effect at once must add that step. codev decision supersedeno longer modifies the old decision: it stays
accepted, and in effect, until the new one is accepted. It now refuses a
decision that is notaccepted(predecessor_not_accepted).- A deviation created by
codev decision deviateonly sets the inherited
decision aside once it is accepted. codev decision deviate --jsonandcodev decision promote --jsonno
longer returnbodySha256, since nothing is sealed.
Added
codev decision acceptmarks the decisions listed insupersedesas
supersededin the same step, leaving their body and seal untouched, and
lists them in a newsupersededfield of its JSON output. It refuses a
predecessor that is no longeraccepted— for example, one another decision
superseded in the meantime — withpredecessor_not_accepted.- Each artifact instruction of the
spec-drivenschema opens with an explicit
role and its "Done when" criteria: product owner (proposal), QA analyst
(specs), architect (design), tech lead (tasks). /codev-proposechecks traceability between capabilities, spec files,
scenarios and task verifications before presenting the plan, and fixes the
gaps in the artifacts./codev-proposethen challenges the plan as a skeptical reviewer — need,
scope, specs, decisions, assumptions, tasks, plus security, compatibility,
operability, performance or accessibility lenses when the proposal's Impact
touches them, and the project'srules:— and ends its summary with at most
five "Points to challenge", or says none was found.codev init --inherit <SOURCE>(repeatable) declares inherited sources in
the generatedconfig.yaml— a git URL with an optional@<ref>(mainby
default) or a local folder — and pins the git ones in_codev/codev.lock
right away. A pinning failure only warns (inherit_pin_failed); an invalid
value is refused before anything is written (invalid_inherit).codev initintegrates codev into the repository: a codev section in
CLAUDE.mdtelling Claude Code to plan behavior changes with
/codev-propose, and on GitHub a.github/workflows/codev.ymlrunning
codev validate --strictwith codev pinned to the running version, and a
codev section in the pull request template. On GitLab it prints a job to
paste. Opt out with--no-claude-md,--no-ci,--no-pr-templateor
--no-integration. codev's text sits between<!-- codev:begin -->and
<!-- codev:end -->markers and never replaces yours.codev updaterefreshes those managed sections and the managed workflow,
and never adds one a project does not have.codev init --jsonandcodev update --jsongain anintegrationarray.codev doctor [--json] [--strict]lists what the codev setup still lacks —
rules, language, skills, specs, decisions, source pins,CLAUDE.md, CI,
pull request template, validation — with the command or skill that fixes
each item.codev initandcodev statuspoint to it when something is
missing, and/codev-onboardrelays its findings.- The tech lead's "Done when" criteria of the
spec-drivenschema require the
affected documentation to be updated in a task (or the plan to say none is),
every spec scenario to be covered by an automated test, and tests to follow
the project's existing suite, its language's conventions and itsrules.
The proposal's Impact names the documentation to update. /codev-propose's traceability check also requires an automated test per
scenario and a documentation task when Impact touches documented behavior./codev-applywrites tests like the project's existing suite, takes the
test command from the configuration, manifest or CI instead of guessing it,
and runs the full test suite once before reporting the change as done./codev-configureproposes testing rules grounded in the project's existing
tests, falling back on mainstream Rust, TypeScript/JavaScript, Python, Go
and Java conventions when there are none yet.codev changeloggenerates release notes from the archived changes — Keep a
Changelog, plain markdown or JSON — between two git refs, by default since
the latestv*tag, and--writekeeps a managed[Unreleased]section of
CHANGELOG.mdup to date;--release <version>turns it into a dated
version block.- Proposals carry a
## Release notesection, categorized for end users;
codev validatewarns when an active change has none
(release_note_missing) and rejects an unknown category or an empty item
(release_note_invalid). codev doctorchecks thatCHANGELOG.mdmatches whatcodev changelog
generates (changelog, a warning only).changelog.excludein_codev/config.yamlleaves out archived changes
already described by hand inCHANGELOG.md.
Install: curl -sSL https://raw.githubusercontent.com/mairistem/codev/main/install.sh | sh (macOS, Linux) · iwr -useb https://raw.githubusercontent.com/mairistem/codev/main/install.ps1 | iex (Windows)
Documentation: https://mairistem.github.io/codev/ · Full changelog: v0.4.0...v0.5.0
codev 0.4.0
Changed
- BREAKING: codev now speaks English throughout — CLI output and help,
skills, and artifact templates. Template headings are now English
(# Proposal:,## Why,## What Changes,## Capabilities,## Impact,
## Context,## Decisions,# Tasks…). Scripts or tooling that relied on
French output or headings must be updated; runcodev updateto regenerate
the skills. - BREAKING:
codev init --presettakesfull,minimalorcustom. - The minimal preset now installs
propose,explore,onboardand
configure, and the full preset includesconfigure(eight workflows). - Decisions of the project itself are identified as
project/NNNNin
qualified ids and in the JSON output. - The installers print their messages in English. On Windows,
install.ps1
now suggests a PATH command that updates only the userPATH, instead of
setx, which can truncate it. codev decision newnow creates aproposeddecision, unsealed, so its
body can be written before it is sealed; accept it with
codev decision accept. Pass--status acceptedto create and seal it at
once, as before.
Added
-
codev decision accept <ID>sets a localproposeddecision toaccepted
and seals its body in the same step. It refuses inherited decisions
(cannot_accept_inherited) and decisions that are notproposed
(decision_not_proposed). -
Artifact language: a
language:key in_codev/config.yaml(an ISO 639
code such asen,frorpt-BR) sets the language skills write proposals,
specs, designs and tasks in. Structural keywords stay in English. -
codev init --language <CODE>sets it; otherwise it is detected from the
locale, falling back toen.codev instructions --jsonexposes it in a
languagefield. -
Documentation in English and French, published as a website and embedded in
the binary.codev docs --lang en|frselects the language. -
The documentation website follows the Mairistem design system, with a
landing page, light and dark themes, and a language switch between the
English and French editions;codev docsrenders in the same style. -
Continuous integration: formatting, lints, tests on Linux, macOS and
Windows, a minimum Rust version check, validation of codev's own specs, and
a dependency audit. -
Issue forms for bug reports and feature requests.
Dependencies
- Updated
dialoguerto 0.12,tomlto 1.1,pulldown-cmarkto 0.13 and
sha2to 0.11, plus minor updates. Existing seals andcodev.lockfiles
are read and written exactly as before.
Fixed
codev syncvalidates the change first and refuses on errors, like
codev archive; both now report the stable JSON codevalidation_failed.- A
RENAMEDdelta written with the template's### Requirement: <name>form
is applied instead of being silently ignored, and renaming a requirement
that does not exist is reported asrename_source_missing. - Renaming and modifying the same requirement in one delta now works.
- A
MODIFIEDmerge keeps the blank line before the next requirement. - Validation reports unexpected headings inside delta sections
(delta_unexpected_heading) and empty delta sections
(delta_section_empty). - The
subpathof a git inherited source now also applies to its decisions. codev initcounts the generatedconfig.yamlamong the files it created.codev docs --printno longer prints an error when its output is piped to a
command that exits early, such ashead.- Decisions saved with Windows (CRLF) line endings are parsed, and changing
their status keeps their sealed body intact.
Install: curl -sSL https://raw.githubusercontent.com/mairistem/codev/main/install.sh | sh (macOS, Linux) · iwr -useb https://raw.githubusercontent.com/mairistem/codev/main/install.ps1 | iex (Windows)
Documentation: https://mairistem.github.io/codev/ · Full changelog: v0.3.2...v0.4.0