Improve outcome intent attribution#39718
Conversation
mnkiefer
commented
Jun 17, 2026
- Replaces ad hoc outcome root tracing with a dedicated intent resolver.
- Adds attribution status and source to outcome reports, keeps direct label fallback for clearly attributable items, and marks PRs with multiple closing issues as ambiguous instead of choosing one implicitly.
- Adds coverage for the new resolver behavior and replaces the older objective-mapping spec with an intent-attribution/governance spec.
|
@copilot resolve the merge conflicts in this pull request |
There was a problem hiding this comment.
Pull request overview
This PR introduces a dedicated intent resolver for outcome attribution, replacing ad hoc PR root tracing and enriching outcome reports with explicit attribution status/source while avoiding implicit selection when multiple closing issues exist.
Changes:
- Added a new
pkg/intentresolver that deterministically classifies attribution (mapped/unmapped/unlinked/ambiguous) and records the attribution source. - Updated outcome evaluation to use the intent resolver, populate
attribution_status/attribution_source, and treat multiple closing issues as ambiguous (no implicit “first issue wins”). - Replaced the prior objective-mapping/portfolio-reporting spec with a new intent-attribution & governance specification and added/updated tests accordingly.
Show a summary per file
| File | Description |
|---|---|
| specs/objective-mapping-portfolio-reporting.md | Removed superseded objective-mapping/portfolio-reporting spec document. |
| specs/intent-attribution-agent-governance.md | Added new intent attribution + agent governance specification (replacing the old spec). |
| pkg/workflow/action_resolver.go | Minor formatting cleanup in ResolveGhAwRef error handling block. |
| pkg/intent/resolver.go | Added new intent resolver types and deterministic PR/issue attribution resolution. |
| pkg/intent/resolver_test.go | Added unit tests for resolver behavior (mapped/unmapped/unlinked/ambiguous + fallbacks). |
| pkg/cli/outcome_eval.go | Switched objective enrichment to intent-based attribution; added status/source fields to reports. |
| pkg/cli/outcome_eval_test.go | Updated/added tests for intent attribution behavior, including ambiguous multi-closing-issue case. |
| actions/setup/js/assign_agent_helpers.test.cjs | Formatting-only change for the dynamic import statement. |
Copilot's findings
Tip
Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
- Files reviewed: 7/8 changed files
- Comments generated: 3
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
# Conflicts: # specs/objective-mapping-portfolio-reporting.md Co-authored-by: mnkiefer <8320933+mnkiefer@users.noreply.github.com>
Co-authored-by: mnkiefer <8320933+mnkiefer@users.noreply.github.com>
…mprove-outcome-resolver Co-authored-by: mnkiefer <8320933+mnkiefer@users.noreply.github.com>
…tifact" Co-authored-by: mnkiefer <8320933+mnkiefer@users.noreply.github.com>
Merge conflicts resolved. The only conflict was |
|
@copilot Revert changes to |
Agent-Logs-Url: https://github.com/github/gh-aw/sessions/145b93b5-a658-47fb-bd00-703e7adace08 Co-authored-by: mnkiefer <8320933+mnkiefer@users.noreply.github.com>
|
@copilot Recompile workflows |
|
✅ smoke-ci: safeoutputs CLI comment + comment-memory run (27664528235)
|
Comment MemoryNote This comment is managed by comment memory.It stores persistent context for this thread in the code block at the top of this comment.
|