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
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
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
fetch_backlog_item()preserves the native work item payload, includingfields, while keeping compatibility summary keys for existing call sites.fetch_backlog_item(),extract_change_proposal_data(), orimport_backlog_item_as_proposal()so the same contract bug does not recur elsewhere.Acceptance Criteria
ADO work item must have fieldsduring selective import.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