정보
이 기술은 개발자들이 기술 아이디어의 역사적 변천을 추적하여 현재의 접근 방식이 존재하는 이유와 과거에 시도되었던 대안들을 이해하도록 돕습니다. 이는 기존 시스템을 의심할 때, 부활한 것일 수 있는 '새로운' 아이디어를 평가할 때, 또는 오래된 패턴을 포기하기 전에 사용됩니다. 이 과정은 과거의 실패를 반복하는 것을 피하게 하며, 가치 있게 여겨졌으나 버려진 해결책을 재발견할 수 있게 합니다.
빠른 설치
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 LineagesClaude 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은(는) obra이(가) 만든 Claude Skill입니다. Skill은 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에 등록되어 있으며 무료로 설치할 수 있습니다.
연관 스킬
이 Claude Skill은 스프레드, 오버/언더, 프로프 베트를 포함한 스포츠 베팅 시장을 분석합니다. 역사적 추이와 상황별 통계를 검토하여 가치 베트를 발견하고, 교육적 목적으로 실행 가능한 권장 사항이 담긴 구조화된 마크다운 결과를 제공합니다. 개발자는 이 기능을 스포츠 베팅 분석 도구에 활용할 수 있으며, 단순히 엔터테인먼트/교육 목적으로만 설계되었음을 유의해야 합니다.
LlamaGuard는 폭력 및 혐오 발언 등 6가지 안전 범주에서 LLM 입력과 출력을 조정하기 위한 Meta의 70-80억 파라미터 모델입니다. 94-95% 정확도를 제공하며 vLLM, Hugging Face 또는 Amazon SageMaker를 사용해 배포할 수 있습니다. 이 기술을 사용하여 AI 애플리케이션에 콘텐츠 필터링 및 안전 가드레일을 손쉽게 통합하세요.
이 Claude Skill은 리소스 적정화, 태깅 전략, 지출 분석을 통해 개발자들이 클라우드 비용을 최적화할 수 있도록 지원합니다. AWS, Azure, GCP에서 클라우드 비용을 절감하고 비용 거버넌스를 구현하기 위한 프레임워크를 제공합니다. 인프라 비용을 분석하거나, 리소스를 적정화하거나, 예산 제약을 충족해야 할 때 사용하세요.
이 스킬은 bitsandbytes를 사용하여 LLM을 8비트 또는 4비트 정밀도로 양자화하며, 최소한의 정확도 손실로 50-75%의 메모리 감소를 달성합니다. 제한된 GPU 메모리에서 더 큰 모델을 실행하거나 추론을 가속화하는 데 이상적이며, INT8, NF4, FP4와 같은 형식을 지원합니다. 이 스킬은 HuggingFace Transformers와 통합되어 QLoRA 학습 및 8비트 옵티마이저를 가능하게 합니다.
