Releases: nold-ai/specfact-cli
Releases · nold-ai/specfact-cli
v0.35.0
Added
- Central module marketplace foundations (OpenSpec change
marketplace-01-central-module-registry) with multi-location discovery, source tracking (builtin/marketplace/custom), and source-priority shadow handling. - New module registry client and installer workflows for fetching registry index, secure module download with checksum verification, install/uninstall operations, and core compatibility validation.
- New
specfact modulecommand group withinstall,uninstall,search,list, andupgradesubcommands. - New docs: Installing Modules and Module Marketplace, plus architecture and sidebar updates for marketplace workflows.
Changed
- Module package metadata now includes
sourceto persist module origin across discovery and lifecycle registration. - README module lifecycle baseline now includes marketplace command entry points.
v0.34.1
Fixed
specfact backlog refine --auto-bundleno longer persists bundle mapping history into bundle manifest files (for example.specfact/bundle.yaml); mapping history remains in dedicated mapping config state.- Bundle ID candidate derivation no longer falls back to the manifest filename stem (
bundle.yaml->bundle), preventing false rejection of valid explicitbundle:<id>tags. - OpenSpec change order/archive tracking was synchronized for Wave 1 closure (
verification-01-wave1-delta-closure) and related archived status markers.
v0.33.0
Added
- New
policy-enginemodule package with lazy-loadedspecfact policycommand group. specfact policy validatefor deterministic policy evaluation with hard failures and dual output (json,markdown, orboth).specfact policy suggestfor confidence-scored, patch-ready suggestions with explicit no-auto-write behavior.- Policy configuration loader for
.specfact/policy.yamlsupporting Scrum DoR/DoD fields, Kanban column entry/exit requirements, and SAFe PI readiness fields. - Integration tests for policy commands in
tests/integration/commands/test_policy_engine_commands.pywith recorded TDD evidence.
Changed
- Updated Agile/Scrum and DevOps adapter integration guides with policy engine command usage and workflow guidance.
specfact policy validateandspecfact policy suggestnow apply--limitto backlog item group count when--group-by-itemis enabled (instead of truncating sub-item findings/suggestions).- Grouped-mode policy output now avoids duplicate top-level flat arrays and emits grouped payloads with summary metadata for cleaner consumption.
- Policy command docs and OpenSpec change artifacts were updated to document grouped-limit semantics and grouped output behavior.
Fixed
- Resolved type-check errors in
policy_engine/main.pyby introducing typed grouped payload structures and explicit payload typing.
v0.32.1
Added
- Git worktree lifecycle helper:
scripts/worktree.shwithcreate,list,cleanup, andhelpcommands. - Worktree helper unit tests:
tests/unit/tools/test_worktree_helper.pycovering protected-branch rejection, branch-type guardrails, deterministic paths, and cleanup behavior. - New OpenSpec change package:
workflow-01-git-worktree-managementwith proposal, design, spec delta, validation report, and TDD evidence.
Changed
- Repository instructions now enforce worktree-first development for parallel branches and explicitly block
dev/mainworktrees. - OpenSpec workflow command docs (
.cursor/commands/wf-create-change-from-plan.md,.cursor/commands/wf-validate-change.md) now require dedicated worktree execution and validate worktree-aware task structure. - Active OpenSpec change task files were normalized to worktree-first branch setup commands to reduce direct-work-on-
devrisk.
v0.32.0
Added
-
Enhanced module manifest security and integrity (arch-06, fixes #208)
- Publisher and integrity metadata in
module-package.yaml(publisher,integrity.checksum, optionalintegrity.signature). - Versioned dependency entries (
module_dependencies_versioned,pip_dependencies_versioned) with name and version specifier. crypto_validator: checksum verification (sha256/sha384/sha512) and optional signature verification.- Registration-time trust checks: manifest checksum verified before module load; failed trust skips that module only.
SPECFACT_ALLOW_UNSIGNEDandallow_unsignedparameter for explicit opt-in when using unsigned modules.- Signing automation:
scripts/sign-module.shand.github/workflows/sign-modules.ymlfor checksum generation. - Documentation:
docs/reference/module-security.mdand architecture updates for module trust and integrity lifecycle.
- Publisher and integrity metadata in
-
Schema extension system (arch-07, Resolves #213)
extensionsdict field onFeatureandProjectBundlewith namespace-prefixed keys (e.g.backlog.ado_work_item_id).- Type-safe
get_extension(module_name, field, default=None)andset_extension(module_name, field, value)with contract enforcement. - Optional
schema_extensionsinmodule-package.yamlto declare target model, field, type_hint, and description. ExtensionRegistryfor collision detection and introspection; module registration loads and validates schema extensions.- Guide: Extending ProjectBundle.
v0.31.1
Added
- CI log artifacts: PR Orchestrator workflow now uploads test logs (
test-logs) fromhatch run smart-test-fulland repro logs/reports (repro-logs,repro-reports) from the contract-first-ci job so failed runs can be debugged by downloading full logs from the Actions Artifacts section without re-running locally. - Documentation: "CI and GitHub Actions" section in Troubleshooting describing artifact names and how to download and use them.
Changed
- Tests job in
.github/workflows/pr-orchestrator.ymlnow runshatch run smart-test-full(single full-suite step with log output tologs/tests/) and uploadslogs/tests/as thetest-logsartifact. - Contract-first-ci job captures
specfact reprostdout/stderr tologs/repro/and uploadsrepro-logsandrepro-reports(.specfact/reports/enforcement/) as artifacts on every run.
v0.31.0
Added
- Backlog dependency-analysis module package (
backlog-core) with provider-agnostic graph models and analyzers. specfact backlogcommand suite for dependency-centric workflows:analyze-depstrace-impactsyncverify-readinessdiffpromotegenerate-release-notes
- Nested backlog delta workflow under
specfact backlog delta:statusimpactcost-estimaterollback-analysis
- Project backlog integration commands:
specfact project link-backlogspecfact project health-checkspecfact project devops-flowspecfact project snapshotspecfact project regeneratespecfact project export-roadmap
Changed
- Backlog command discoverability now follows impact-first ordering with command groups shown before leaf commands.
- Backlog ceremony workflows are grouped under
specfact backlog ceremonywith clearer subcommands:standuprefinement
project regeneratemismatch UX:- default summary-only output for plan/backlog mismatches
- optional
--verbosefor detailed mismatch lines - optional
--strictto fail on mismatches
Fixed
- Resolved legacy/duplicate command registration behavior for backlog module integration under a shared
backlogtop-level group. - Resolved missing backlog-core lazy-load path in project health/dependency flows (
No module named 'backlog_core'). - Enriched provider dependency extraction for graph analysis:
- GitHub: normalized relationship extraction (
blocks,blocked by, related, parent/child conventions) and graph type enrichment - ADO: relationship mapping parity for hierarchy/dependency/related links
- GitHub: normalized relationship extraction (
v0.30.4
Fixed (0.30.4)
- Backlog refine mixed-format parsing hardening
- Prevented duplicate
Notescontent in normalized writeback output when mixed## Description+ inline**Notes**:formatting is returned by Copilot. - Preserved internal headings (for example
## Risks) inside label-styleNotes:blocks instead of truncating at the heading line. - Improved parser section-boundary handling so label capture flushes only at canonical section boundaries.
- Prevented duplicate
- Copilot refinement instruction quality
- Added explicit expected output scaffold for refinement responses.
- Added explicit rule to omit unknown metadata fields (no placeholders such as
(unspecified)orprovide area path).
Changed (0.30.4)
- Version: Bumped to
0.30.4(patch).
v0.30.3
Fixed (0.30.3)
- Backlog refine writeback parsing for ADO/GitHub
specfact backlog refine --writenow parses structured refinement output (markdown headings and label-style fields likeDescription:,Acceptance Criteria:,Story Points:,Business Value:,Priority:) into canonical fields before adapter writeback.- ADO writeback now avoids writing labeled refinement blocks verbatim into description and instead updates mapped fields with split canonical values.
- GitHub writeback now preserves canonical field updates even when refined bodies include structured headings that do not explicitly include all core field sections.
- Refine command maintainability
- Decomposed
backlog refineorchestration into focused helper methods (stdin refinement capture, update-field construction, writeback, optional OpenSpec comment) to reduce top-level command complexity while keeping behavior parity.
- Decomposed
Changed (0.30.3)
- Version: Bumped to
0.30.3(patch).
v0.30.2
Fixed (0.30.2)
- Backlog daily/refine filter parity and selection semantics
- Added missing global filter flags to
specfact backlog daily:--search,--release,--id(parity with refine). - Fixed daily issue-window semantics so
--first-issues/--last-issuesare applied over the full filtered candidate set (not pre-truncated by default limit). - Added assignee column in daily standup tables and fixed GitHub
--assignee me/@mehandling to use provider semantics without incorrect literal local post-filtering.
- Added missing global filter flags to
- Interactive comment UX
specfact backlog daily --interactivenow renders comments in scoped panel blocks (refine-like) for clearer context.- Interactive default remains latest-comment-first; explicit
--first-comments/--last-commentsnow controls the displayed comment window and shows omitted-count hints. - Interactive navigation now supports Post standup update on the currently selected story; successful post feedback includes explicit story ID and URL.
- GitHub adapter contract binding bug
- Fixed icontract decorator placement in
GitHubAdapterso interactive standup comment posting no longer fails with contract-argument binding errors (item/update_fields) when checking comment capability.
- Fixed icontract decorator placement in
- Docs and prompt updates
- Updated daily/refine docs and prompt templates with standardized filter parity guidance (
--search,--release,--id,--first-issues,--last-issues) and clarified comment behavior (interactive latest-only vs export/summarize full context by default).
- Updated daily/refine docs and prompt templates with standardized filter parity guidance (
Changed (0.30.2)
- Version: Bumped to
0.30.2(patch).