AUR-385: log actor -> profile handoff + identity coverage docs - #35
Merged
Conversation
Wires the end-to-end "log actor -> profile" cross-provider handoff and closes out the tight definition-of-done for the shared-identity epic. - New `warcraft actor-profile <report-code> <actor-name>` cross-walks a Warcraft Logs report actor to a Raider.IO `character` profile: resolves the actor from `report-player-details` (`--fight-id`, `--allow-unlisted`), looks up the profile by region/realm/name (`--region` override), and emits both `class_spec_identity` blocks with a soft agree/conflict reconciliation. The join is a soft region + realm + name match, explicitly not a canonical cross-provider actor id. - Honest failure contract: ambiguous actor names (same name on different realms, or multiple class/specs across fights) and unresolved profiles (missing region/realm/ name, or a Raider.IO error) return ok:false / exit 1 with guidance, rather than a misleading success. - Pure, unit-tested crosswalk helpers in `warcraft_cli.crosswalk`. - Encounter/ability identity emit-shape contract tests (normalized + unknown). - Documents the provider x identity coverage matrix and the demonstrated handoffs (guide -> simc, log actor -> profile) in docs/foundation/IDENTITY_CONTRACT.md. make check green (998 passed, 237 deselected). diffwarden converged clean across codex-gpt54, codex-gpt55, grok, droid (every valid finding fixed with a test). Refs AUR-385 Co-Authored-By: OpenAI Codex <noreply@openai.com> Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Wires the end-to-end log actor → profile cross-provider handoff and closes out the tight definition-of-done for AUR-385 (shared identity + cross-provider handoffs). Builds directly on slice 1 (Raider.IO
class_spec_identity).What changed
warcraft actor-profile <report-code> <actor-name>— cross-walks a Warcraft Logs report actor to a Raider.IOcharacterprofile:warcraftlogs report-player-details(--fight-idto narrow,--allow-unlistedfor unlisted reports).--regionoverride when the log omits region).class_spec_identityblocks with a soft agree/conflict reconciliation. The join is a soft region + realm + name match — explicitly not a canonical cross-provider actor id (per the contract's scope rules).--fight-id) and unresolved profiles (missing region/realm/name, or a Raider.IO error) returnok:false/ exit 1, rather than a misleading success.warcraft_cli.crosswalk(actor lookup, ambiguity detection, reconciliation).docs/foundation/IDENTITY_CONTRACT.md.AUR-385 definition-of-done status
This completes the tight DoD: contract + per-type tests, coverage-matrix doc, the already-shipping guide→simc handoff documented, and one additional honest handoff (log actor → profile) wired. Genuinely-gated work (Blizzard identity → AUR-455) and universal-equivalence work remain out of scope, as recorded in the issue.
Verification
make checkgreen — 998 passed, 237 deselected; ruff / mypy / import-linter clean.diffwarden --target uncommitted→ patch is correct, no findings across codex-gpt54, codex-gpt55, grok, droid (three review rounds; every valid finding — ambiguity, tri-state reconciliation, missing-field accuracy, empty-region override,--allow-unlisted, single-row multi-spec, failure exit codes — fixed with tests).Refs AUR-385
🤖 Generated with Claude Code