Skip to content

docs(perfile): design — resolved-item outcomes & per-item activity (#43)#68

Draft
jordanrburger wants to merge 2 commits into
mainfrom
feat/perfile-resolved-outcomes-43
Draft

docs(perfile): design — resolved-item outcomes & per-item activity (#43)#68
jordanrburger wants to merge 2 commits into
mainfrom
feat/perfile-resolved-outcomes-43

Conversation

@jordanrburger

Copy link
Copy Markdown
Collaborator

Design spec for review — #43 resolved-item outcomes

This PR is a design spec only — no code. Opening it for review of the approach before implementation.

Adds docs/superpowers/specs/2026-06-28-perfile-resolved-outcomes-design.md: a per-item, git-derived activity timeline for the Wishlist/Research tabs, shown in a Control-Center-style detail pane.

What it proposes

  • A detail pane (mirroring Control Center's existing .side/.full panel — no navigation-model surgery) that lists the commits touching an item's file, newest first.
  • Each row is labeled with the Scout run that made the commit (reverse of SessionLogService.commits(for:)'s time-window + subject-prefix heuristic) or "you" for in-app/manual changes, and expands in place to that commit's diff.
  • For resolved items, the latest commit surfaces as the outcome ("Resolved by Dreaming · Jun 22"), with an "Open run in Control Center" jump.

Decisions captured (from brainstorming)

Decision Choice
Mechanism App-side, git-derived only (no scout-plugin changes in v1)
Scope Resolved and active items
Layout Dedicated detail pane (Control Center pattern)
Diff depth Per-commit expandable diff

New/changed pieces (preview of the plan)

  • GitService.commits(touching:)git log --follow -- <relPath>
  • CommitRunLinker — reverse commit→run mapping, colocated with SessionLogService
  • ItemActivityEntry, PerFileItemActivityModel, PerFileItemDetailView, CommitDiffView
  • PerFileListView/PerFileItemCardView selection + side panel; AppState.requestOpenRun(_:) cross-tab hook

Honest limit

The commit→run link is the same heuristic the app already trusts, run in reverse — it can mis-attribute or miss. That's acceptable because the diff is always shown regardless of the run link, so evidence is never hidden.

Process

Built via the brainstorming skill (context exploration → 4 scoping decisions → design → spec self-review). Implementation plan (writing-plans) follows once the spec is approved.

Relates to #43. Pairs with #42 ("Do now") and #50 (implemented-proposal detail).

🤖 Generated with Claude Code

jordanrburger and others added 2 commits June 28, 2026 12:23
App-side, git-derived per-item activity timeline in a detail pane (mirrors
Control Center's .side/.full panel); per-commit expandable diffs; reverse
commit→run linkage. Resolved+active items. No scout-plugin changes (v1).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
7 tasks: GitService per-file history + single-commit diff, CommitRunLinker
(reverse commit→run), ItemActivityEntry builder, PerFileItemActivityModel,
detail/diff views, selectable cards + side/full pane, cross-tab open-run.
Tasks 1-4 TDD (14 new tests); 5-7 build-verified views/wiring.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant