Skip to content

[Change] Fix ADO selective bridge import payload contract and title-based change IDs #427

@djm81

Description

@djm81

Why

Issue #425 confirmed that selective Azure DevOps bridge import currently breaks valid backlog-to-OpenSpec sync flows. The selective import path fetches a reduced summary payload instead of the native ADO work item document expected by proposal import, so valid work items fail with ADO work item must have fields. After a local payload hotfix restores import, the generated OpenSpec change ID still falls back to the numeric work item ID when no prior OpenSpec metadata exists, which produces unreadable and collision-prone change names.

What Changes

  • MODIFY ADO selective import so fetch_backlog_item() preserves the native work item payload, including fields, while keeping compatibility summary keys for existing call sites.
  • MODIFY backlog proposal import so missing OpenSpec metadata falls back to a title-derived kebab-case change ID instead of a numeric-only source ID.
  • MODIFY shared import normalization so duplicate slugs keep the readable title slug and append a deterministic source-ID suffix when needed.
  • ADD regression coverage for selective bridge import, title-based slug generation, duplicate-slug handling, and nearby adapter import contracts.
  • REVIEW similar command paths that rely on fetch_backlog_item(), extract_change_proposal_data(), or import_backlog_item_as_proposal() so the same contract bug does not recur elsewhere.

Acceptance Criteria

  • Selective ADO bridge import preserves the native work item payload required for proposal import.
  • Valid ADO work items no longer fail with ADO work item must have fields during selective import.
  • Imported ADO proposals derive human-readable change IDs from title slugs when no prior OpenSpec metadata exists.
  • Duplicate title slugs append a deterministic source-ID suffix instead of degrading to numeric-only names.
  • Adjacent adapter import commands are audited and covered so the same payload-contract bug is prevented in similar paths.

Dependencies

Related Issues/PRs

Additional Context

This issue tracks OpenSpec change bugfix-02-ado-import-payload-slugging.


OpenSpec Change Proposal: bugfix-02-ado-import-payload-slugging

Metadata

Metadata

Assignees

Type

Projects

Status

Done

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions