Releases: geuben/perturb
Release list
v0.0.2
Added
-
adr migratenow carries**Amends:**,**Extends:**,**Amended by:**, and
**Extended by:**body lines intoamends:andamended_by:front-matter. A clean
whole-ADR line is absorbed and removed from the body; a line with a reason clause keeps
the line in the body and warns; a partial line (non-whole-ADR refs) keeps the line and warns
with a consequence-anchor hint. Continuation lines are joined. Body-line refs merge with
status-line refs, de-duplicated, status-line first. Closes #12. -
superseded_by_unresolvedfinding.perturb checknow reportssuperseded_by_unresolved
when an ADR'ssuperseded_byvalue is malformed, anchored (adr:NNNN#id), names an ADR not in
the directory, or is a list of two or more entries. Previously all four forms were silently
skipped, allowingstatus: supersededADRs to passcheckwith no verified backlink. -
amendsandamended_byfront-matter keys for Architecture Decision Records. An ADR that
amends an earlier one lists it inamends: ["adr:NNNN"]oramends: ["adr:NNNN#consequence-id"];
the earlier ADR lists the amending ADR inamended_by: ["adr:NNNN"]. Both stay in force. -
amendevent kind.perturb proposeraisesamendevents (viapush --kind amendor from
amends:front-matter) to the issues that acknowledged events from the amended ADR or
consequence.perturb push --kind amendnow accepted. -
Check findings for amends/amended_by symmetry:
amends_invalid,amends_unresolved,
amended_by_unresolved,amend_backlink, andamended_by_missing— analogous to the existing
supersedes findings. -
perturb adr migratecarries a**Supersedes:**line that names ADRs by bare number.
**Supersedes:** 0003,**Supersedes:** [0003](0003-x.md) and 4, and**Supersedes:** 0003; 0004
are now carried intosupersedes:front-matter, matching the existing behaviour forADR-prefixed
refs. -
perturb adr migratecarriesamends/amended_byfrom the status line. Bare
amends ADR NNNN,amended by ADR NNNN,extends ADR NNNN, and list forms
(amends ADR 4 and 0005) are carried into front-matter; anchored refs and segments with
surrounding prose are reported as warnings so the author can verify what is lost.
Fixed
-
supersede_backlinknow matches equivalent ADR ref spellings.adr:2,adr:0002, and
adr:0002#consequence-idin asupersedeslist are all accepted as pointing at ADR 2.
Previously the check used string equality, causing falsesupersede_backlinkfindings for
alternative spellings of the same ADR number. -
A bare-string
supersedesis no longer iterated character by character.supersedes: adr:0001
(without brackets) is normalised to["adr:0001"]at parse time, soperturb checkand
perturb proposesee a one-element list. Previously it caused onesupersedes_invalidfinding
per character. -
perturb propose friction:andperturb show plan:no longer flag a planned test edit as
outside the plan. A tdd-cli cycle'stest,testsandmodifies_testsids are resolved to
file paths viatdd plan paths(tdd-cli >= 0.11.0) and counted as declared. On older tdd-cli a
warning is emitted and the tool falls back to the previous behaviour. -
perturb checkno longer fails on an indexREADME.mdindocs/adr. Only files named
NNNN-<title>.mdare now treated as ADRs; other Markdown in that directory is ignored. -
perturb adr migratedeleted consequences written as paragraphs. Only-bullets were
carried; a Consequences section of prose paragraphs (**Gains.** …) was rewritten as an empty
list. Each paragraph is now a consequence, like each bullet. -
perturb adr migratewrote front-matter that didn't parse when a title contained a colon or
started with a YAML indicator. Titles are now quoted, and anADR-0021:prefix is stripped as
well asADR 0021 —. -
perturb adr migrateno longer overwrites an ADR with a result it can't parse. It refuses
with the parser's reason and leaves the file untouched. -
A status line wrapped over several lines is read as one annotation instead of leaving its
continuation lines in the body. -
Consequence
affectsno longer picks up refs that don't name issues: a#Ninside a link
to something other than an issue ([Risk #9](../hardware.md#risks)), or afterPRor
pull request.
v0.0.1
First public release. perturb was developed privately under the name planner; nothing was
published under that name. Repositories that used a private build need these changes:
Changed
- Renamed. The command is
perturb, the committed ledger isperturb/(wasplanning/), and
the local cache is.perturb/(was.planner/). - The label marking a planned issue is
ready-to-implement(washardened), configurable as
labels.ready_to_implementinperturb/config.yaml. perturb show plan:<slug>reportsfiles, the plan's declared files, instead ofcycles.
Added
perturb/config.yamlsets where plans, friction logs and audits live, and which labels mark
epics and ready issues.PERTURB_GHnames the GitHub CLI to call; the default isgh.- Friction logs can list their commits in front-matter (
commits:). perturb initadds.perturb/to.gitignore, creating the file if needed.- An ADR can supersede a single consequence of an earlier one:
supersedes: ["adr:0003#postgres-over-sqlite"]raisessupersedeevents only to the issues that
acknowledged that consequence, andperturb checkreports entries that don't resolve. - Every verb has
--helpwith a description of the verb and each argument.
Fixed
perturb adr migrateno longer drops text silently. A**Supersedes:**line naming whole
ADRs is carried intosupersedes; one it can't interpret stays in the body with a warning, as
does any annotation on the status line. Prose between the status line and the first heading is
kept.