Repository navigation
refactor(decisions): migrate ADR mechanics to Python - #197
Merged
Merged
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Why
Closes #179. Run decision-management mechanics natively on Windows, Linux, and macOS while preserving the existing ADR and canonical-scope contracts.
What changed
Replace
bin/decisionwith a contained, dependency-free Python package invoked throughuv run --quiet --frozen --no-dev --project <plugin-root>/backend darrow-decision. Shared records, focused Markdown parsing, native paths, iterative supersession validation, and atomic catalog replacement replace shell pipelines and temporary inventory files; v2 catalog bytes, public records, diagnostics, and exit codes remain covered by regression comparisons. Update all callers, fixtures, specs, documentation, package registration, and matching 0.2.0 manifests, and add native platform matrices plus fresh copied-plugin checks.Refine capture discovery for unresolved authority and listing's silent-filter report after observed Claude failures; preserve authority/refusal rules and add an ordinary-comparison non-activation case.
Verification
bun run check:python: all registered packages pass; decisions has 160 tests with 100% statement and branch coverage, including deterministic generated cases.bashand/bin/bash(both resolve to Bash 3.2 locally).bun run lint,bun run lint:shell,bun run lint:ts,bun run typecheck,bun run check:decisions,bun run check:docs, andbun run check:docs:externalpass; 7 documentation tests, both skill inspectors, and Claude manifest validation pass.claude-sonnet-5/ medium and Codexgpt-5.6-terra/ medium. The pre-migration Claude catalog-fallback case exposed excluded-result leakage; the corrected candidate passes. An unresolved-authority activation failure was repaired and passes on both hosts.Review notes
The old runtime path is intentionally removed; the skills and repository callers use the frozen package entrypoint directly. Persisted catalog format and raw-worktree fingerprint semantics are preserved. Contextual authority remains in the skills. Independent fresh-context review found no material issues.
Live eval evidence uses one trial per case/host at the configured 80% threshold; it establishes bounded acceptance, not a reliability estimate. All 103 Python workflow jobs and documentation CI passed on the published head. Claude's manifest validator retains its pre-existing optional-author warning.
Checklist
CONTRIBUTING.md, including the contributionlicensing terms.
this change does not affect a capability invariant.
behavior.
change does not affect plugin content.
bun run check:python, or this change does not affect registeredPython packages or their repository quality infrastructure.