关于
This skill helps developers trace the historical evolution of technical ideas to understand why current approaches exist and what alternatives were previously attempted. It is used when questioning existing systems, evaluating "new" ideas that might be revivals, or before abandoning old patterns. This process helps avoid repeating past failures and can rediscover valuable abandoned solutions.
快速安装
Claude Code
推荐npx skills add obra/superpowers-skills -a claude-code/plugin add https://github.com/obra/superpowers-skillsgit clone https://github.com/obra/superpowers-skills.git ~/.claude/skills/Tracing Knowledge Lineages在 Claude Code 中复制并粘贴此命令以安装该技能
技能文档
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:
- Check decision records (common locations:
docs/decisions/,docs/adr/,.decisions/, architecture decision records) - Search conversations (skills/collaboration/remembering-conversations)
- Git archaeology (
git log --all --full-history -- path/to/file) - Ask the person who wrote it (if available)
Document:
## 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:
- What was the context? (constraints that no longer apply)
- What specifically failed? (the whole approach or one aspect?)
- Why did it fail then? (technology limits, team constraints, time pressure)
- Has context changed? (new tools, different requirements, more experience)
Document:
## 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:
- Search for historical precedents (was this tried before under different name?)
- Identify what's genuinely new (vs. what's rebranded)
- Understand why it died (if it's a revival)
- 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:
## 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:
- Decision records (common locations:
docs/decisions/,docs/adr/,.adr/, or search for "ADR", "decision record") - Conversation history (search with skills/collaboration/remembering-conversations)
- Git history (
git log --grep="keyword",git blame) - Issue/PR discussions (GitHub/GitLab issue history)
- Documentation evolution (
git log -- docs/) - Team knowledge (ask: "Has anyone tried this before?")
Search patterns:
# 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:
-
Context fundamentally changed
- Technology that didn't exist is now available
- Constraints that forced decisions no longer apply
- Team has different capabilities now
-
We learned critical lessons
- Industry-wide understanding evolved
- Past attempt taught us what to avoid
- Better patterns emerged and were proven
-
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:
## 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
GitHub 仓库
常见问题
什么是 Tracing Knowledge Lineages Skill?
Tracing Knowledge Lineages 是一个 Claude Skill,作者为 obra。Skill 将 Claude 按需加载的说明和资源打包,让 Claude 无需额外提示即可执行与 Tracing Knowledge Lineages 相关的任务。
如何安装 Tracing Knowledge Lineages?
使用本页的安装命令:将 Tracing Knowledge Lineages 作为插件添加到 Claude Code,或将其仓库克隆到 skills 目录,然后重启 Claude 以加载该 Skill。
Tracing Knowledge Lineages 属于哪个分类?
Tracing Knowledge Lineages 属于其他分类。
Tracing Knowledge Lineages 可以免费使用吗?
可以。Tracing Knowledge Lineages 已收录在 AIMCP,可免费安装。
相关推荐技能
该Skill为开发者提供体育博彩数据分析工具,可分析盘口、大小球和特殊投注,识别价值投注机会。它整合历史数据和情景统计,生成包含时间戳的结构化Markdown报告。适用于需要快速获取博彩市场洞察的娱乐或教育类应用开发。
LlamaGuard是Meta推出的7-8B参数内容审核模型,专门用于过滤LLM的输入和输出内容。它能检测六大安全风险类别(暴力/仇恨、性内容、武器、违禁品、自残、犯罪计划),准确率达94-95%。开发者可通过HuggingFace、vLLM或Sagemaker快速部署,并能与NeMo Guardrails集成实现自动化安全防护。
这个Claude Skill帮助开发者优化云成本,通过资源调整、标记策略和预留实例来降低AWS、Azure和GCP的开支。它适用于减少云支出、分析基础设施成本或实施成本治理策略的场景。关键功能包括提供成本可视化、资源规模调整指导和定价模型优化建议。
这个Skill使用bitsandbytes库量化大语言模型,能在GPU内存有限时通过8位或4位量化减少50-75%内存占用,同时保持精度损失最小。它支持INT8、NF4、FP4等多种量化格式,可与HuggingFace Transformers无缝集成,适用于需要部署更大模型或加速推理的场景。还提供QLoRA训练和8位优化器支持,让开发者能轻松实现高效模型压缩。
