Tracing Knowledge Lineages

Trace knowledge lineages from decision records, git history, and collaboration notes.

737|164|Updated Oct 11, 2025
One-click install
npx skills add https://github.com/obra/superpowers-skills --skill tracing-knowledge-lineages
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: Tracing Knowledge Lineages
Source: https://github.com/obra/superpowers-skills/tree/main/skills/research/tracing-knowledge-lineages
Command: npx skills add https://github.com/obra/superpowers-skills --skill tracing-knowledge-lineages

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

Teams often repeat past mistakes, abandon viable solutions prematurely, or reinvent "new" ideas without understanding their historical context. This leads to wasted effort and suboptimal decisions. This skill provides a structured approach to understanding the evolution of ideas and decisions.

Core Features & Use Cases

  • Decision Archaeology: Guides searching decision records, conversations, and Git history to understand "why X was chosen."
  • Failed Attempt Analysis: Provides a framework to re-evaluate past failures, considering changed contexts and preventing premature dismissal of solutions.
  • Revival Detection: Helps identify if "new" ideas are actually old ones, and what lessons can be learned from their previous incarnations.
  • Use Case: Before proposing to replace an existing system, trace its lineage to understand the original problems it solved and why previous alternatives were rejected, ensuring your new proposal addresses historical challenges.

Quick Start

Before proposing a new approach, trace its lineage:

  1. Check decision records (e.g., docs/decisions/, docs/adr/)
  2. Search conversations (using Remembering Conversations skill)
  3. Git archaeology (e.g., git log --all --full-history -- path/to/file)
  4. Ask the original author (if available)

Frequently Asked Questions about Tracing Knowledge Lineages

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I avoid repeating past architectural decisions that failed before?

Trace knowledge lineages by searching decision records, git history, and team conversations to understand why previous approaches were rejected. This reveals whether past failures apply to your current context or if circumstances have changed, preventing duplicate effort and premature dismissal of viable solutions.

Why should I check git history before proposing a new system design?

Git archaeology uncovers the original problems a system solved and alternatives that were already evaluated. Understanding this lineage ensures your proposal addresses historical challenges and doesn't reinvent rejected ideas without learning from their previous incarnations.

How do I know if my new idea is actually an old pattern being revived?

Revival detection traces whether a proposed approach has been attempted before by examining decision records, conversations, and commit history. This surfaces lessons from its previous lifecycle and prevents wasted effort on ideas already tested under different constraints.

What's the best way to document why a technical decision was made?

Maintain decision records (ADRs or similar artifacts) alongside git commit messages and collaboration notes. Structured lineage evidence enables future teams to perform decision archaeology and understand the context, trade-offs, and alternatives evaluated when the original choice was made.

Can I use git log to understand abandoned solutions and their reasoning?

Yes. Git log with full history reveals when code was removed, but decision archaeology requires pairing commit history with decision records and conversations to surface the reasoning. Git alone shows what changed; lineage tracing explains why alternatives were rejected.

When should I re-evaluate a solution that was previously rejected?

Re-evaluate when context shifts—team expertise, business priorities, dependencies, or scale change. Failed attempt analysis frames when to reconsider by distinguishing fundamental flaws from constraints that no longer apply, preventing both premature abandonment and repeating mistakes under identical conditions.