Skip to content

Conversation

@djm81
Copy link
Collaborator

@djm81 djm81 commented Feb 3, 2026

Description

This PR addresses issue #179 by updating the patch version to 0.26.17 and introducing the --comments (alias --annotations) flag for the specfact backlog daily command. This new flag enables the inclusion of item descriptions and comment annotations in --copilot-export and --summarize/--summarize-to outputs, leveraging adapter capabilities (e.g., GitHub's get_comments).

Additionally, this PR includes minor formatting fixes in openspec/config.yaml to comply with yamllint rules and updates relevant documentation to reflect the new flags and their usage.

Fixes #179

New Features

  • Introduced --comments / --annotations flags for specfact backlog daily command.

Contract References: None.

Type of Change

  • 🐛 Bug fix (non-breaking change which fixes an issue)
  • ✨ New feature (non-breaking change which adds functionality)
  • 💥 Breaking change (fix or feature that would cause existing functionality to not work as expected)
  • 📚 Documentation update
  • 🔒 Contract enforcement (adding/updating @icontract decorators)
  • 🧪 Test enhancement (scenario tests, property-based tests)
  • 🔧 Refactoring (code improvement without functionality change)

Contract-First Testing Evidence

Required for all changes affecting CLI commands or public APIs:

Contract Validation

  • Runtime contracts added/updated (@icontract decorators on public APIs)
  • Type checking enforced (@beartype decorators applied)
  • CrossHair exploration completed: hatch run contract-test-exploration
  • Contract violations reviewed and addressed

Test Execution

  • Contract validation: hatch run contract-test-contracts
  • Contract exploration: hatch run contract-test-exploration
  • Scenario tests: hatch run contract-test-scenarios
  • Full test suite: hatch run contract-test-full ❌ (Pre-existing failures)

Test Quality

  • CLI commands tested with typer test client
  • Edge cases covered with Hypothesis property tests
  • Error handling tested with invalid inputs
  • Rich console output verified manually or with snapshots

How Has This Been Tested?

Contract-First Approach:
The changes were validated using existing contract tests and new unit tests. hatch run contract-test-contracts and hatch run contract-test-scenarios passed.

Manual Testing

  • Tested CLI commands manually
  • Verified rich console output
  • Tested with different input scenarios
  • Checked error messages for clarity

Automated Testing

  • Contract validation passes
  • Property-based tests cover edge cases
  • Scenario tests cover user workflows
  • All existing tests still pass (Pre-existing failures in hatch test --cover -v were observed, as detailed in the conversation summary. New unit tests for comment inclusion pass.)

Test Environment

  • Python version: 3.12
  • OS: Ubuntu 22.04

Checklist

  • My code follows the style guidelines (PEP 8, ruff format, isort)
  • I have performed a self-review of my code
  • I have added/updated contracts (@icontract, @beartype)
  • I have added/updated docstrings (Google style)
  • I have made corresponding changes to documentation
  • My changes generate no new warnings (Pre-existing warnings/errors remain, but no new ones were introduced by this change.)
  • All tests pass locally (Pre-existing test failures, as noted above.)
  • I have added tests that prove my fix/feature works
  • Any dependent changes have been merged

Quality Gates Status

  • Type checking ✅ (hatch run type-check)
  • Linting ❌ (hatch run lint) (Failed due to pre-existing issues)
  • Contract validation ✅ (hatch run contract-test-contracts)
  • Contract exploration ✅ (hatch run contract-test-exploration)
  • Scenario tests ✅ (hatch run contract-test-scenarios)

Screenshots/Recordings (if applicable)

N/A


Open in Cursor Open in Web

djm81 and others added 4 commits February 3, 2026 09:50
Co-authored-by: dominikus.nold <dominikus.nold@web.de>
Co-authored-by: dominikus.nold <dominikus.nold@web.de>
Co-authored-by: dominikus.nold <dominikus.nold@web.de>
@cursor
Copy link

cursor bot commented Feb 3, 2026

Cursor Agent can help with this pull request. Just @cursor in comments and I'll start working on changes in this branch.
Learn more about Cursor Agents

@github-actions
Copy link

github-actions bot commented Feb 3, 2026

SpecFact CLI Validation Report

All validations passed!
Duration: 44.08s
Checks: 4 total (4 passed)

@djm81 djm81 changed the base branch from main to dev February 3, 2026 11:51
Co-authored-by: dominikus.nold <dominikus.nold@web.de>
@djm81 djm81 marked this pull request as ready for review February 3, 2026 12:12
Copy link

@chatgpt-codex-connector chatgpt-codex-connector bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: e112789a2e

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment on lines 622 to 624
if suggest_next and n > 1:
pending = [i for i in items if not i.assignees or item.story_points is not None]
if pending:

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Use per-item story points when building suggest-next pool

The pending-item filter for --suggest-next uses item.story_points from the currently selected story instead of each candidate (i.story_points). That means the pool of candidates changes depending on which story you are viewing: if the current story has story points, every item is considered (even those without story points); if it doesn’t, assigned items with story points are incorrectly excluded. This can skip the actual highest-value pending item or produce inconsistent recommendations across selections. Use the candidate item’s story points (i.story_points) to make the filter stable and accurate.

Useful? React with 👍 / 👎.

Co-authored-by: dominikus.nold <dominikus.nold@web.de>
@github-actions
Copy link

github-actions bot commented Feb 3, 2026

SpecFact CLI Validation Report

All validations passed!
Duration: 42.80s
Checks: 4 total (4 passed)

Co-authored-by: dominikus.nold <dominikus.nold@web.de>
@github-actions
Copy link

github-actions bot commented Feb 3, 2026

SpecFact CLI Validation Report

All validations passed!
Duration: 44.12s
Checks: 4 total (4 passed)

@djm81 djm81 merged commit b596766 into dev Feb 3, 2026
12 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants