Repository navigation
Releases: doruksahin/decree
Releases · doruksahin/decree
Release list
v3.2.1
Features
decree intent-check --undernow renders the decision-relative framing in
the human output, not only in--json: an "Active decision" block lists the
files it owns, the contextual overlaps (other governors to treat as context),
and any contradictions, and the recommended next command guides you to
proceed under the active decision instead of re-suggesting--under.
v3.2.0
Features
- Teach the
decree-dddagent skill to classify the work mode, name an
authoritative decision and preferintent-check --under, and interpret
intent-checkexit-1 findings by severity (blocking vs advisory vs corpus
maintenance) instead of resolving every finding first. decree healthgained two advisory governance-quality signals:
lifecycle_drift(a decision at 100% primary acceptance criteria with
commits attached but still non-terminal, or a terminal decision whose
governance has gone stale/dead) andbroad_governance(governs-count,
exact/directory split, commits ratio, and shared-hot-file overlap). Both are
advisory and never affect the health exit code.decree intent-checkgained a first-class--underview — additive
owned_files,contextual_overlaps, andcontradictionskeys that frame
multi-governed paths around the active decision — plus an advisory
directory_overlapslist that surfaces co-governance via directory
governs:entries the exact-path conflict query cannot see. Both are
additive and never change the exit code.decree intent-checknow classifies planned files assource_changes/
corpus_changes/generated_artifact_changes(a decree-document self-edit
no longer earnsadd_governance) and classes findings asblocking_findings
/advisory_findings/corpus_hygiene_findings, with the human report
leading with a "Block now / Clean later" summary and a recommended next
command. The new keys are additive and the exit code is unchanged
(ADR-01KWXMRRB44CE78H0659D9WDY7).
Bug Fixes
decree sprint dropnow works on backlog and draft-pool items, not only
active-sprint items, so a backlog item that shipped and reached a terminal
status can be removed from live membership (previously it errored and could
only be resolved by editing the store by hand).
Documentation
- Add the Agentkith research backlog
(docs/dogfooding-feedback/06-research-backlog.md) grading the dogfooding
proposals against the real code and external precedent, with prioritized
buildable itemsB1–B15. - Document Agentkith dogfooding feedback for improving decree command output
and agent skill usage.
Internal Changes
- Guard that the two
decree-dddSKILL.md copies (dev-facing and packaged
template) stay byte-identical so shipped agent guidance cannot silently
drift.
v3.1.0
Features
- Add
decree sprint moveto promote backlog and draft-pool items into the
active sprint or move open items out with a reason.
v3.0.0
Breaking Changes
- Replace the monolithic sprint ledger
decree/sprints/ledger.yamlwith a
directory store (state.yamlplus onelive/<DOC-ID>.yamlfile per
membership and oneclosed/<SPRINT-ID>.yamlarchive per closed sprint);
existing projects must rundecree migrate sprint-ledger --applyonce.
Features
- Add
decree sprint completeanddecree sprint dropto record item-level
outcomes mid-sprint; the one-file-per-membership sprint store makes parallel
worktree development conflict-free.
Documentation
- Add Homebrew version and install badges to the README.
v2.0.0
Features
- Add
decree agents installanddecree agents statusfor Codex and Claude
Code skill onboarding. - Add
decree init --with-agentsto scaffold a project and install
project-local Codex/Claude Code skills in one command. - Add document markdown overlays to the generated HTML board.
- Require buckets for new documents and add a
decree generate-htmlstatic
sprint board export.
Bug Fixes
- Speed up CLI startup by loading command modules only for the command being
run.
v1.3.0
Features
- Add foldered document buckets with
decree new --bucketand the read-only
decree listbrowser.
Documentation
- Document the planned foldered document bucket workflow for organizing PRDs,
ADRs, and SPECs by concern without changing decision relationships.
v1.2.0
Features
- Add optional sprint ledger tracking with
decree sprint, active-sprint
defaults for new SPEC/progress/DDD, sprint lint invariants, and MCP progress
scope parity.
Documentation
- Document and prototype the planned sprint-scoped execution workflow and
end-user behavior.
v1.1.0
Features
- Add
decree commit-check: a deterministic trailer-coverage gate (and
matching MCP tool) that reports which governed-file changes in a diff lack an
Implements:/Refs:/Fixes:trailer linking them to their in-flight decision.
Advisory by default;--strict/--min-coveragegate CI on the net diff
(squash-safe via--diff-base). Reads only declaredgoverns:; coverage you
can gate, not a guarantee. - Add
decree init: a deterministic, idempotent project scaffolder that
creates a canonicaldecree.toml, the type directories, a worked
PRD→ADR→SPEC example chain, a.gitignorerule for the derived.decree/
cache, and a built index — reporting every action with a reason (created /
skipped / wrote / appended / rebuilt). It respects an existingdecree.toml:
it leaves it untouched and scaffolds its declared types rather than
imposing the default trio (no orphan directories in a custom corpus), and
reports a malformed config clearly without touching it. The report is clean
and ordered: the derived index cache is reported as rebuilt (never counted
as a creation), and a re-run on a set-up project printsAlready initialized — nothing to create (index refreshed).. Flags:--dry-run,--json,
--no-examples, and--project. The scaffolded project lints clean
immediately. - Add a machine-readable error contract for
--jsonconsumers: when a command
run with--jsonhits an unexpected error, decree now emits a stable
{"schema": "decree.error.v1", "error": {...}}object on stdout (and a clean
one-line summary on stderr) and exits 2, instead of leaking a Python
traceback. Without--json, the human/developer path is unchanged.
Bug Fixes
- CI and release workflows now run
decree index rebuildbeforedecree index verify, so the verify step no longer fails on a fresh checkout (the
.decree/index.sqlitecache is gitignored and absent until rebuilt). The
link check tolerates slow external reference links. - Correct stale "publishes to PyPI" release-automation wording in the README
and capability index — decree distributes via GitHub Releases and a Homebrew
tap, not PyPI. The link check now verifies the project homepage
(decree.doruk.uk) instead of excluding it.
Documentation
- Add
docs/json-contracts.md: the reference for programmatic consumers — the
--jsonstdout/stderr split, the exit-code contract (0 = clean, 1 =
findings with JSON still on stdout, 2 = hard error), thedecree.error.v1
shape, and per-command payload keys. Also document copy-paste recipes for
gating decree in a consumer repo (hand-rolled git hook,pre-commit
framework, and CI) indocs/usage.md.
v1.0.0
Breaking Changes
- Remove in-core LLM provider execution from governs migration and
intent-check; replace it with deterministic analyze/apply JSON contracts for
agent-owned suggestion generation.
Features
- Add
decree graph --jsonemitting the full decision graph (documents +
reference edges) as a stable, ULID-aware machine contract for external
consumers, without touching index.md. - Add
decree progress --jsonemitting structured per-document and aggregate
acceptance-criteria counts (doc/chain/whole-corpus scopes) as a stable
machine contract for external consumers. - Add
progressandreportMCP tools and another_active_filesparameter
tointent_check(surfacing cross-sessionlive_conflicts), so agent hosts
can run governed parallel sessions: scoped governance preflight, live
file-overlap detection, and objective acceptance-criteria closeout over MCP. - Add a
governsfield to each document indecree graph --json, exposing the
repo-relative paths a decision governs (with any#symbolsuffix stripped)
so external consumers can seed governed sessions from a decision. - Add parallel-safe
TYPE-ULIDdocument identity, explicit ID migration,
scoped progress/DDD views, and fail-closed generated-artifact ownership. - Add tag-triggered release automation that validates releases, builds
distributions, creates GitHub Releases with the wheel and sdist, bumps the
Homebrew tap, and keeps workflow YAML under actionlint CI. - Expose
decree --versionand single-source runtime package version reads
from installedpyproject.tomlmetadata. - The MCP
healthtool anddecree dddnow surface the governance-drift
signals — dead governance (SPEC-01KT6EEAHKWDQB2Y6S4TTKB77D) and advisory
suggested governance (SPEC-01KT6NCQC7DMJ3NG1MPWBGBVFQ). The MCPhealth
payload is serialized through the same formatter asdecree health --json,
so the two never diverge and agents receive both signals over MCP.decree dddreports per-corpus dead/suggested-governance counts as a lifecycle hint
— a fail-safe, pure index read (no git walk; zero, never an error, when there
is no index).decree lintis deliberately left untouched: it validates
document structure and never reads the index, and the codebase keeps
validation separate from coherence. decree healthnow reports dead governance — declaredgoverns:paths
that no trailer-linked commit has ever touched — backed by a new
observed_governsindex. Advisory and fail-safe: a decision with no
trailer-linked commits is reported "unobserved", not dead, and the output is
coverage-honest (per-decision linked-commit counts and an "as of last index
sync" timestamp).decree healthnow reports suggested governance (advisory) — files a
decision's own trailer-linked commits repeat-touch (≥2 distinct commits) but
that it does not declare ingoverns:and no decision owns, surfaced as
"ungoverned files with a proposed owner." It is the inverse of
dead-governance and deliberately lower-authority: it never affectsdecree health's exit status and is never read bywhy(). Precision rests on
per-decision repeat-touch attribution rather than cross-decision frequency
(which squash commits defeat), with a shared-infrastructure floor and
deterministic, path-based filtering (no working-tree reads).decree intent-checkanddecree intent-reviewaccept--under <decision>
(and anunderparameter on the matching MCP tools). When a governed session
passes the decision it works under, the report surfacesgoverns_gaps—
planned/changed files that decision's own trailer-linked commits repeat-touch
(>=2 commits, squash-immune) but it does not declare — plus a soft
declare_governsrecommendation. It is the point-of-change counterpart to
batch missing-governance (decree health): scoped to a known decision and a
live edit, it drops the cross-decision filters the batch surface needs, so it
surfaces decision-specific gaps the batch surface suppresses. Advisory only —
it never changes the exit code, never feedswhy(), and never writes; the
agent makes the deliberategoverns:edit. An unknown--underid exits 2.
Bug Fixes
- Install instructions now install decree from its GitHub repository; the bare
namedecreeon PyPI is an unrelated third-party project. - decree is distributed from GitHub Releases and a Homebrew tap, not PyPI: the
namedecreethere is an unrelated third-party project, so Trusted Publishing
could never succeed. The release workflow ships the wheel and sdist as GitHub
Release assets and auto-bumps the tap. decree healthno longer proposes documentation files (.md/.rst) as
suggested-governance candidates. A decision's implementing commit and a later
docs commit can both carry its trailer, repeat-touchingREADME.md/
AGENTS.md/docs/*.md; documentation is never agoverns:target, so it
is now excluded from missing-governance alongside tests and changelog
fragments. Surfaced by the decree dogfood once the governance feature itself
was developed across multiple trailer-linked commits.
Documentation
- Add runnable example scenarios under
examples/: six self-contained scripts
that build a throwaway git corpus and run realdecreecommands (why,
intent-check,intent-review,health, and the--undergoverns-gap),
each printing real output with aVALUE:line (what you gain) and a
HONESTY:line (where decree refuses to overclaim — advisory vs finding,
structural vs semantic, convention vs certainty). They walk the lifecycle of
one change (before → while → after → over time), use pinned IDs for
reproducibility, and double as smoke tests for the--jsonshapes and the
exit-code contract. - Document decree's capability map, LLM agent integration contract,
link-checking policy, package version source of truth, and Towncrier-based
release workflow. - Document progressive-disclosure AGENTS files so future LLM sessions can
safely contribute to the repository. - Document the agentkith MCP integration: add SPEC-01KT3M6NY02TXXPJCP52QEYFW1,
and sync the agent-integration / usage / capability-index docs anddecree mcphelp to theprogress/reporttools andintent_checkcross-session
other_active_files/live_conflicts. - Documented the governance-drift health signals end to end. A new Health
Signals reference covers all fourdecree health
signals (stale decisions, ungoverned hotspots, dead governance, advisory
suggested governance), their exit semantics, the JSON/MCP payload, and the
detect → interpret → act flow. Thedecree healthanddecree ddd--help
text and the MCPhealthtool description now name every signal and state
which are findings (exit 1) versus advisory (exit 0), and the provenance
model, capability index, usage guide, and agent-integration docs link the new
reference.
Dependency Changes
- Add Towncrier as the changelog-fragment tool and enforce news fragments
through pre-commit and pull-request CI.