Forensics · Assignment lineage

Trace assignment lineage

See which requirement reached which attempt, what superseded it, and whether the attempt was actually exposed to the approved guidance.

For: engineers investigating AI-assisted work, reviewers deciding what the evidence establishes, and team owners checking the same record across devices

What it does, and why it helps

Assignment lineage groups stable requirement shapes under a versioned rule, preserves numbers, negation, and target scope, and links each attempt only to the delivery record for that attempt. A parent's exposure never credits a child.

The pain. A requirement copied through several prompts becomes impossible to distinguish from a later amendment.

The point of view. Treat assignments as versioned constraints, not bags of similar words.

What gets easier. Separating an omitted requirement from one delivered to the wrong attempt.

When it helps. A case contains delegation, amendments, or competing instructions.

Its limits. Normalization groups shape; it does not decide semantic ambiguity, and model analysis is disabled by default.

Where to find it

  • Desktop: AI incidents, open a case, then Attribution and Assignment lineage.
  • Hosted: /team/agent-incidents, case Attribution section.
  • API: GET /api/ai-incidents/detail

When to use it

Find a dropped constraint

Situation. An AI-assisted change needs an answer that another reviewer can reproduce.

What you do. Open Attribution and compare the assignment group with each attempt's delivery record.

What you see. The original constraint, amendment, supersession, and per-attempt exposure are separate rows.

What it establishes. A missing handoff is distinguished from a requirement the attempt received and violated.

Before you start

Supported versions
RepoOps v0.3.1, verified against the 2026-09-17 completion worktree.
Where it runs
The local view needs a tracked repository. The team view needs a bound device and an authenticated team membership.
Permissions
Local evidence follows the repository's own access. Hosted reads are tenant and repository scoped before rows, counts, filters, or exports are built.
Connections
Local inspection works offline. Team delivery needs the device binding and repoops.ai; a failed delivery keeps its cursor and reports the failure.
Plan
Local deterministic analysis is available without a paid runner. Hosted compute, private runners, and model analysis are disabled by default and never silently substituted.

Configure it

  1. Record the case's assignment and amendments.

    This establishes the scope before any conclusion is computed.

  2. Confirm or dispute the lineage edge from the case.

    The receipt records the decision and the evidence ids it used.

SettingWhereA sensible choiceWhy it matters
ⓘ
To stop or undo
Withdraw a wrong edge; the withdrawal remains on the timeline.

What you should see

A superseded requirement

Configuration. Use a tracked repository and leave every unknown or disputed input in its real state.

Expect. The old group remains visible and the amendment names it as superseded.

Verify. The current group id carries the rule version and the intended attempt scope.

Data and cost

What is captured
Normalized constraint shape, digest, references, dates, URLs, scope, supersession, and evidence ids.
Who can see it
Hosted rows are case and repository scoped; raw transcript text requires its own live grant.
How long it is kept
Assignment rows are count-bounded or deleted with their case according to the record-family contract.
What leaves the machine
Only the normalized record and pointers, never unrestricted transcript text.
What it costs
Deterministic grouping has no model charge.

When the result differs

SymptomLikely causeNext action
Two assignments grouped together unexpectedly.They normalize to the same versioned shape.Compare number, negation, and target scope; record an amendment when the requirement changed.
Disable
Stop the relevant capture or prevention toggle in Settings; already recorded evidence remains a historical record.
Roll back
Restore the earlier package version or withdraw the disputed edge. Append the correction; do not rewrite the earlier decision.
Revoke access
Revoke the device or transcript grant. Later reads become restricted while identifiers and non-secret receipts remain auditable.
Delete
Delete the owning case or team through its deletion flow. Prevention groups also expire coherently after 365 days of inactivity.

Maintenance evidence

Feature id
assignment-lineage (spine leaf assignment-lineage)
Owner
Forensics runtime and public-story owners (LDG-0695 through LDG-0699, LDG-0722)
Supported product version
RepoOps v0.3.1
Last verified
2026-09-17
Example fixtures
Deterministic unit and integration fixtures cited by the source modules; external acceptance gates remain named separately.
Source references
lib/assignment-shape.mjs, lib/causal/chain-edges.mjs, lib/ai-incident-case.mjs, website/lib/ai-incident-cases/edge-producer.ts
Documentation review
Claims checked against the implementation and dated evidence. Unknown, disputed, restricted, not-run, and unavailable states are retained.
Video review
No licensed rendered story is published for this guide yet. The guide does not render a placeholder player.

Last updated