Skip to content

fix: parse backlog refine writeback fields and refactor refine command#224

Merged
djm81 merged 3 commits intodevfrom
bugfix/backlog-refine-writeback-field-splitting
Feb 12, 2026
Merged

fix: parse backlog refine writeback fields and refactor refine command#224
djm81 merged 3 commits intodevfrom
bugfix/backlog-refine-writeback-field-splitting

Conversation

@djm81
Copy link
Copy Markdown
Collaborator

@djm81 djm81 commented Feb 12, 2026

Description

Fixes backlog refine --write behavior so structured refinement output is parsed into canonical fields instead of being written verbatim into a single body field. This restores provider-aware writeback behavior for ADO (description + acceptance criteria split) and hardens GitHub rendering fallback when structured sections omit canonical headings.

Also refactors the backlog refine command by extracting focused helper methods from an oversized command function to reduce complexity and improve readability/maintainability.

Fixes #N/A

New Features #N/A

Contract References: No new public contract decorators were introduced; existing command and adapter behavior was validated through targeted unit tests and contract-first quality gates already executed for this change.

Type of Change

Please check all that apply:

  • 🐛 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

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: Added targeted regression tests for refinement output parsing and provider writeback splitting, then validated with formatting/type-check gates and focused unit suites for backlog command and ADO/GitHub adapters.

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

Test Environment

  • Python version: 3.12
  • OS: Linux

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 (basedpyright, ruff, pylint)
  • All tests pass locally
  • 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)
  • 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

Loading
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bug Something isn't working devops-backlog DevOps Agile Backlog integrations openspec

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

Backlog Refine Writeback Field Splitting for ADO/GitHub

1 participant