Tracing Knowledge Lineages
Understand how ideas evolved over time to find old solutions for new problems and avoid repeating past failures
Best use case
Tracing Knowledge Lineages is best used when you need a repeatable AI agent workflow instead of a one-off prompt.
Understand how ideas evolved over time to find old solutions for new problems and avoid repeating past failures
Teams using Tracing Knowledge Lineages should expect a more consistent output, faster repeated execution, less prompt rewriting.
When to use this skill
- You want a reusable workflow that can be run more than once with consistent structure.
When not to use this skill
- You only need a quick one-off answer and do not need a reusable workflow.
- You cannot install or maintain the underlying files, dependencies, or repository context.
Installation
Claude Code / Cursor / Codex
Manual Installation
- Download SKILL.md from GitHub
- Place it in
.claude/skills/sp-tracing-knowledge-lineages/SKILL.mdinside your project - Restart your AI agent — it will auto-discover the skill
How Tracing Knowledge Lineages Compares
| Feature / Agent | Tracing Knowledge Lineages | Standard Approach |
|---|---|---|
| Platform Support | Not specified | Limited / Varies |
| Context Awareness | High | Baseline |
| Installation Complexity | Unknown | N/A |
Frequently Asked Questions
What does this skill do?
Understand how ideas evolved over time to find old solutions for new problems and avoid repeating past failures
Where can I find the source code?
You can find the source code on GitHub using the link provided at the top of the page.
SKILL.md Source
# Tracing Knowledge Lineages ## Overview Ideas have history. Understanding why we arrived at current approaches - and what was tried before - prevents repeating failures and rediscovers abandoned solutions. **Core principle:** Before judging current approaches or proposing "new" ones, trace their lineage. ## When to Trace Lineages **Trace before:** - Proposing to replace existing approach (understand why it exists first) - Dismissing "old" patterns (they might have been abandoned for wrong reasons) - Implementing "new" ideas (they might be revivals worth reconsidering) - Declaring something "best practice" (understand its evolution) **Red flags triggering lineage tracing:** - "This seems overcomplicated" (was it simpler before? why did it grow?) - "Why don't we just..." (someone probably tried, what happened?) - "This is the modern way" (what did the old way teach us?) - "We should switch to X" (what drove us away from X originally?) ## Tracing Techniques ### Technique 1: Decision Archaeology Search for when/why current approach was chosen: 1. **Check decision records** (common locations: `docs/decisions/`, `docs/adr/`, `.decisions/`, architecture decision records) 2. **Search conversations** (skills/collaboration/remembering-conversations) 3. **Git archaeology** (`git log --all --full-history -- path/to/file`) 4. **Ask the person who wrote it** (if available) **Document:** ```markdown ## Lineage: [Current Approach] **When adopted:** [Date/commit] **Why adopted:** [Original problem it solved] **What it replaced:** [Previous approach] **Why replaced:** [What was wrong with old approach] **Context that drove change:** [External factors, new requirements] ``` ### Technique 2: Failed Attempt Analysis When someone says "we tried X and it didn't work": **Don't assume:** X is fundamentally flawed **Instead trace:** 1. **What was the context?** (constraints that no longer apply) 2. **What specifically failed?** (the whole approach or one aspect?) 3. **Why did it fail then?** (technology limits, team constraints, time pressure) 4. **Has context changed?** (new tools, different requirements, more experience) **Document:** ```markdown ## Failed Attempt: [Approach] **When attempted:** [Timeframe] **Why attempted:** [Original motivation] **What failed:** [Specific failure mode] **Why it failed:** [Root cause, not symptoms] **Context at time:** [Constraints that existed then] **Context now:** [What's different today] **Worth reconsidering?:** [Yes/No + reasoning] ``` ### Technique 3: Revival Detection When evaluating "new" approaches: 1. **Search for historical precedents** (was this tried before under different name?) 2. **Identify what's genuinely new** (vs. what's rebranded) 3. **Understand why it died** (if it's a revival) 4. **Check if resurrection conditions exist** (has context changed enough?) **Common revival patterns:** - Microservices ← Service-Oriented Architecture ← Distributed Objects - GraphQL ← SOAP ← RPC - Serverless ← CGI scripts ← Cloud functions - NoSQL ← Flat files ← Document stores **Ask:** "What did we learn from the previous incarnation?" ### Technique 4: Paradigm Shift Mapping When major architectural changes occurred: **Map the transition:** ```markdown ## Paradigm Shift: From [Old] to [New] **Pre-shift thinking:** [How we thought about problem] **Catalyst:** [What triggered the shift] **Post-shift thinking:** [How we think now] **What was gained:** [New capabilities] **What was lost:** [Old capabilities sacrificed] **Lessons preserved:** [What we kept from old paradigm] **Lessons forgotten:** [What we might need to relearn] ``` ## Search Strategies **Where to look for lineage:** 1. **Decision records** (common locations: `docs/decisions/`, `docs/adr/`, `.adr/`, or search for "ADR", "decision record") 2. **Conversation history** (search with skills/collaboration/remembering-conversations) 3. **Git history** (`git log --grep="keyword"`, `git blame`) 4. **Issue/PR discussions** (GitHub/GitLab issue history) 5. **Documentation evolution** (`git log -- docs/`) 6. **Team knowledge** (ask: "Has anyone tried this before?") **Search patterns:** ```bash # Find when approach was introduced git log --all --grep="introduce.*caching" # Find what file replaced git log --diff-filter=D --summary | grep pattern # Find discussion of abandoned approach git log --all --grep="remove.*websocket" ``` ## Red Flags - You're Ignoring History - "Let's just rewrite this" (without understanding why it's complex) - "The old way was obviously wrong" (without understanding context) - "Nobody uses X anymore" (without checking why it died) - Dismissing approaches because they're "old" (age ≠ quality) - Adopting approaches because they're "new" (newness ≠ quality) **All of these mean: STOP. Trace the lineage first.** ## When to Override History **You CAN ignore lineage when:** 1. **Context fundamentally changed** - Technology that didn't exist is now available - Constraints that forced decisions no longer apply - Team has different capabilities now 2. **We learned critical lessons** - Industry-wide understanding evolved - Past attempt taught us what to avoid - Better patterns emerged and were proven 3. **Original reasoning was flawed** - Based on assumptions later proven wrong - Cargo-culting without understanding - Fashion-driven, not needs-driven **But document WHY you're overriding:** Future you needs to know this was deliberate, not ignorant. ## Documentation Format When proposing changes, include lineage: ```markdown ## Proposal: Switch from [Old] to [New] ### Current Approach Lineage - **Adopted:** [When/why] - **Replaced:** [What it replaced] - **Worked because:** [Its strengths] - **Struggling because:** [Current problems] ### Previous Attempts at [New] - **Attempted:** [When, if ever] - **Failed because:** [Why it didn't work then] - **Context change:** [What's different now] ### Decision [Proceed/Defer/Abandon] because [reasoning with historical context] ``` ## Examples ### Good Lineage Tracing "We used XML before JSON. XML died because verbosity hurt developer experience. But XML namespaces solved a real problem. If we hit namespace conflicts in JSON, we should study how XML solved it, not reinvent." ### Bad Lineage Ignorance "REST is old, let's use GraphQL." (Ignores: Why did REST win over SOAP? What problems does it solve well? Are those problems gone?) ### Revival with Context "We tried client-side routing in 2010, abandoned it due to poor browser support. Now that support is universal and we have better tools, worth reconsidering with lessons learned." ## Remember - Current approaches exist for reasons (trace those reasons) - Past failures might work now (context changes) - "New" approaches might be revivals (check for precedents) - Evolution teaches (study the transitions) - Ignorance of history = doomed to repeat it
Related Skills
youtube-knowledge-extractor
This skill performs deep analysis of YouTube videos through **both information channels** Multimodal YouTube video analysis through both audio (transcript) and visual (frame extraction + image analysis) channels. Especially powerful for HowTo videos, tutorials, demos, and explainer videos where what is SHOWN (screenshots, UI demos, diagrams, code, physical actions) is just as important as what is SAID. Use this skill whenever a user wants to analyze, summarize, or create step-by-step guides from YouTube videos, or when they share a YouTube URL and want to understand what happens in the video. Triggers on requests like "Analyze this YouTube video", "Create a step-by-step guide from this video", "What does this video show?", "Summarize this tutorial", or any YouTube URL shared with analysis intent.
Root Cause Tracing
Systematically trace bugs backward through call stack to find original trigger
distributed-tracing
Implement distributed tracing with Jaeger and Tempo for request flow visibility across microservices.
wemp-operator
> 微信公众号全功能运营——草稿/发布/评论/用户/素材/群发/统计/菜单/二维码 API 封装
zsxq-smart-publish
Publish and manage content on 知识星球 (zsxq.com). Supports talk posts, Q&A, long articles, file sharing, digest/bookmark, homework tasks, and tag management. Use when publishing content to 知识星球, creating/editing posts, uploading files/images/audio, managing digests, batch publishing, or formatting content for 知识星球.
zoom-automation
Automate Zoom meeting creation, management, recordings, webinars, and participant tracking via Rube MCP (Composio). Always search tools first for current schemas.
zoho-crm-automation
Automate Zoho CRM tasks via Rube MCP (Composio): create/update records, search contacts, manage leads, and convert leads. Always search tools first for current schemas.
ziliu-publisher
字流(Ziliu) - AI驱动的多平台内容分发工具。用于一次创作、智能适配排版、一键分发到16+平台(公众号/知乎/小红书/B站/抖音/微博/X等)。当用户需要多平台发布、内容排版、格式适配时使用。触发词:字流、ziliu、多平台发布、一键分发、内容分发、排版发布。
zhihu-post-skill
> 知乎文章发布——知乎平台内容创作与发布自动化
zendesk-automation
Automate Zendesk tasks via Rube MCP (Composio): tickets, users, organizations, replies. Always search tools first for current schemas.
youtube-factory
Generate complete YouTube videos from a single prompt - script, voiceover, stock footage, captions, thumbnail. Self-contained, no external modules. 100% free tools.
youtube-automation
Automate YouTube tasks via Rube MCP (Composio): upload videos, manage playlists, search content, get analytics, and handle comments. Always search tools first for current schemas.