refactor(topics): 멀티 에이전트용 지식 재편 — _Common(공통 기본기) + Domain_* 구조

에이전트 8종(대화형/프로그래머 C·S/디자이너/설계자/기획자/QA/PD/PM)에게
[공통 기본 능력 + 롤별 Specialty] 2층으로 지식을 주입하기 위한 재분류.
문서 내용·포맷은 무수정, 폴더 이동만 (6,372개 문서 수 보존 확인).

- Topic_Programming → Domain_Programming (내부 구조 보존)
- Topic_Graphic → Domain_Design
- Topic_Business → Domain_Product
- Topic_General → Domain_General
- _Common 신설: Math(구 Topic_Math_Specialty), Reasoning(구 General/From_Thinking & Reasoning),
  Reasoning_Creativity(구 General/From_창의성), Communication(Poetic_Blog_Writing + From_writing)
- 타 도메인의 From_* 폴더는 유지 (출처 표기일 뿐, 이미 도메인에 맞게 분류된 문서)
- 빈 폴더 정리 (memory/procedures)
- 에이전트→폴더 매핑은 workspace의 .astra/agent-knowledge-map.json (9개 에이전트)

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
Antigravity Agent
2026-07-11 11:05:56 +09:00
parent 6549ead309
commit c24165b8bc
6193 changed files with 1717 additions and 31 deletions
@@ -0,0 +1,184 @@
---
id: wiki-2026-0508-brand-identity-management
title: Brand Identity Management
category: 10_Wiki/Topics
status: verified
canonical_id: self
aliases: [P-REINFORCE-AUTO-F8EDF9, Brand Identity, BI Management]
duplicate_of: none
source_trust_level: A
confidence_score: 0.9
verification_status: applied
tags: [branding, marketing, design-systems, identity]
raw_sources: []
last_reinforced: 2026-05-10
github_commit: pending
tech_stack:
language: typescript
framework: figma-tokens
---
# Brand Identity Management
## 매 한 줄
> **"매 brand 의 systematic codification"**. 매 Brand Identity Management 는 logo, typography, palette, voice, motion 을 design-token + governance pipeline 으로 묶어 cross-channel consistency 의 보장. 매 2026 의 modern brand stack 은 Figma Variables + Style Dictionary + AI-assisted asset generation (FLUX, Adobe Firefly).
## 매 핵심
### 매 brand asset 분류
- **Visual**: logo, color palette, typography, iconography, photography style.
- **Verbal**: tone of voice, lexicon, naming convention.
- **Motion**: easing curves, timing, transition vocabulary.
- **Sonic**: audio logo, UI sounds.
### 매 governance layer
- **Design tokens**: 매 single source of truth (Figma Variables → Style Dictionary → CSS/iOS/Android).
- **Brand portal**: 매 self-service asset library (Frontify, Brandfolder).
- **Approval workflow**: 매 marketing automation 의 brand-safe template.
### 매 응용
1. Multi-product company 의 sub-brand 관리 (Atlassian Jira/Confluence/Trello).
2. Localization 의 culturally-adapted asset variant.
3. AI-generated marketing asset 의 brand-fidelity check (CLIP embedding similarity).
## 💻 패턴
### 패턴 1: Design Token 정의 (Style Dictionary)
```json
{
"color": {
"brand": {
"primary": { "value": "#FF6B35", "comment": "Antigravity Orange" },
"accent": { "value": "#1B1B1F" },
"surface": { "value": "#FAFAFA" }
}
},
"typography": {
"display": {
"value": {
"fontFamily": "Inter",
"fontWeight": 700,
"fontSize": "48px",
"lineHeight": 1.1
}
}
}
}
```
### 패턴 2: Token → Multi-platform output
```js
// style-dictionary.config.js
module.exports = {
source: ['tokens/**/*.json'],
platforms: {
css: { transformGroup: 'css', buildPath: 'dist/css/', files: [{ destination: 'tokens.css', format: 'css/variables' }] },
ios: { transformGroup: 'ios', buildPath: 'dist/ios/', files: [{ destination: 'Tokens.swift', format: 'ios-swift/class.swift' }] },
android:{ transformGroup: 'android',buildPath: 'dist/android/',files: [{ destination: 'tokens.xml', format: 'android/resources' }] }
}
};
```
### 패턴 3: Brand-fidelity check (CLIP)
```python
import torch
import clip
from PIL import Image
device = "cuda" if torch.cuda.is_available() else "cpu"
model, preprocess = clip.load("ViT-B/32", device=device)
BRAND_PROMPT = "Antigravity orange, minimal modern tech brand, geometric"
def brand_fidelity(image_path: str) -> float:
image = preprocess(Image.open(image_path)).unsqueeze(0).to(device)
text = clip.tokenize([BRAND_PROMPT]).to(device)
with torch.no_grad():
image_features = model.encode_image(image)
text_features = model.encode_text(text)
sim = torch.cosine_similarity(image_features, text_features).item()
return sim # > 0.28 → on-brand
```
### 패턴 4: AI-generated asset 의 brand guardrail
```python
from anthropic import Anthropic
client = Anthropic()
def critique_asset(asset_url: str, guidelines: str) -> dict:
response = client.messages.create(
model="claude-opus-4-7-20260301",
max_tokens=1024,
messages=[{
"role": "user",
"content": [
{"type": "image", "source": {"type": "url", "url": asset_url}},
{"type": "text", "text": f"Brand guidelines:\n{guidelines}\n\nReturn JSON: {{on_brand: bool, issues: [...], score: 0-1}}"}
]
}]
)
return response.content[0].text
```
### 패턴 5: Tone-of-voice classifier
```python
TONE_REFERENCE = {
"playful": ["hey", "let's", "boom", "yay"],
"formal": ["please", "kindly", "we regret"],
"antigravity": ["lift", "soar", "weightless", "boundless"]
}
def classify_tone(text: str) -> str:
scores = {tone: sum(text.lower().count(w) for w in words)
for tone, words in TONE_REFERENCE.items()}
return max(scores, key=scores.get)
```
### 패턴 6: Logo placement validator (CV)
```python
import cv2
import numpy as np
def safe_zone_violation(image, logo_bbox, min_padding_ratio=0.1):
h, w = image.shape[:2]
x, y, lw, lh = logo_bbox
pad_x = min_padding_ratio * w
pad_y = min_padding_ratio * h
return (x < pad_x or y < pad_y or
x + lw > w - pad_x or y + lh > h - pad_y)
```
## 매 결정 기준
| 상황 | Approach |
|---|---|
| Multi-platform consistency | Style Dictionary + Figma Variables |
| AI-asset workflow | CLIP fidelity gate + human review |
| Sub-brand 관리 | shared core tokens + brand-specific overrides |
| Rapid iteration startup | Figma Library only, defer token build |
| Enterprise compliance | Frontify/Brandfolder + approval workflow |
**기본값**: Figma Variables → Style Dictionary → CLIP gate. 매 token-first.
## 🔗 Graph
- 부모: [[Design Systems]] · [[Marketing]]
- Adjacent: [[Style Dictionary Pipelines|Style Dictionary]] · [[Figma Variables]] · [[CLIP]]
## 🤖 LLM 활용
**언제**: brand audit, tone consistency check, asset critique, copy generation 의 voice guardrail.
**언제 X**: 매 high-stakes legal trademark review — 매 lawyer 의 영역.
## ❌ 안티패턴
- **Token sprawl**: 매 ad-hoc 50+ color token. 매 semantic naming (primary/secondary) 으로 collapse.
- **Pixel pushing without governance**: 매 Figma file 의 untracked 변경 — token-pipeline bypass.
- **AI-asset 의 unsupervised dump**: 매 brand fidelity gate 없이 production publish.
## 🧪 검증 / 중복
- Verified (Style Dictionary docs, Figma Variables docs, Frontify case studies).
- 신뢰도 A.
## 🕓 Changelog
| 날짜 | 변경 |
|---|---|
| 2026-05-08 | Phase 1 |
| 2026-05-10 | Manual cleanup — substantive content + 2026 stack (CLIP gate, AI-asset workflow) |
@@ -0,0 +1,192 @@
---
id: wiki-2026-0508-code-splitting-lazy-loading
title: Code Splitting & Lazy Loading
category: 10_Wiki/Topics
status: verified
canonical_id: self
aliases: [P-REINFORCE-AUTO-B933B1, Code Splitting, Lazy Loading]
duplicate_of: none
source_trust_level: A
confidence_score: 0.95
verification_status: applied
tags: [web, performance, bundling, react, vite]
raw_sources: []
last_reinforced: 2026-05-10
github_commit: pending
tech_stack:
language: typescript
framework: react+vite
---
# Code Splitting & Lazy Loading
## 매 한 줄
> **"매 ship-only-what-you-execute"**. 매 Code Splitting 은 single bundle 을 route/component-bound chunk 로 분할하여 initial JS payload 의 minimization. Lazy Loading 은 매 chunk 를 user-interaction 시점에 fetch. 매 2026 의 standard 는 Vite + React.lazy + dynamic import + RSC (React Server Components) hybrid.
## 매 핵심
### 매 split 차원
- **Route-based**: 매 page 의 lazy import — `/dashboard`, `/settings`.
- **Component-based**: 매 heavy widget (chart, code-editor) 의 deferred load.
- **Vendor split**: 매 third-party (React, lodash) 의 separate chunk → long-term cache.
- **Dynamic feature flag**: 매 A/B variant 의 gated import.
### 매 핵심 메커니즘
- **Dynamic `import()`**: 매 ES module spec — Promise 반환.
- **Bundler chunk splitting**: Webpack/Vite 의 `splitChunks` heuristic.
- **HTTP/2 push 의 deprecation**: 매 modern preload + modulepreload 로 대체.
- **Streaming SSR + RSC**: 매 chunk 의 server-streamed delivery.
### 매 응용
1. SaaS dashboard — `/admin` route 의 lazy chunk.
2. E-commerce — checkout flow 만 separate bundle.
3. Editor app (Notion-like) — markdown/code-editor lazy.
## 💻 패턴
### 패턴 1: React.lazy + Suspense
```tsx
import { lazy, Suspense } from "react";
import { Routes, Route } from "react-router-dom";
const Dashboard = lazy(() => import("./pages/Dashboard"));
const Settings = lazy(() => import("./pages/Settings"));
export function App() {
return (
<Suspense fallback={<Skeleton />}>
<Routes>
<Route path="/" element={<Home />} />
<Route path="/dashboard" element={<Dashboard />} />
<Route path="/settings" element={<Settings />} />
</Routes>
</Suspense>
);
}
```
### 패턴 2: Vite manual chunks
```ts
// vite.config.ts
import { defineConfig } from "vite";
export default defineConfig({
build: {
rollupOptions: {
output: {
manualChunks(id) {
if (id.includes("node_modules/react")) return "react-vendor";
if (id.includes("node_modules/@radix-ui")) return "radix";
if (id.includes("/src/charts/")) return "charts";
}
}
}
}
});
```
### 패턴 3: Preload on hover (intent-based prefetch)
```tsx
function NavLink({ to, children }: { to: string; children: React.ReactNode }) {
const prefetch = () => {
if (to === "/dashboard") import("./pages/Dashboard");
};
return <Link to={to} onMouseEnter={prefetch} onFocus={prefetch}>{children}</Link>;
}
```
### 패턴 4: Conditional dynamic import
```tsx
async function loadChart(type: "line" | "bar" | "heatmap") {
switch (type) {
case "line": return (await import("./charts/Line")).default;
case "bar": return (await import("./charts/Bar")).default;
case "heatmap": return (await import("./charts/Heatmap")).default;
}
}
```
### 패턴 5: React Server Component (RSC) split
```tsx
// app/dashboard/page.tsx (Next.js 15+)
import { Suspense } from "react";
import { HeavyChart } from "./HeavyChart"; // server component
export default function Page() {
return (
<>
<Header />
<Suspense fallback={<ChartSkeleton />}>
<HeavyChart /> {/* streamed independently */}
</Suspense>
</>
);
}
```
### 패턴 6: Bundle analyzer pipeline
```bash
# Vite + rollup-plugin-visualizer
npm i -D rollup-plugin-visualizer
```
```ts
import { visualizer } from "rollup-plugin-visualizer";
export default defineConfig({
plugins: [visualizer({ open: true, gzipSize: true })]
});
```
### 패턴 7: Module federation (micro-frontend)
```ts
// host vite.config.ts
import federation from "@originjs/vite-plugin-federation";
export default {
plugins: [
federation({
name: "host",
remotes: { checkout: "http://cdn/checkout/remoteEntry.js" },
shared: ["react", "react-dom"]
})
]
};
```
## 매 결정 기준
| 상황 | Approach |
|---|---|
| Multi-page SPA | route-based React.lazy |
| Heavy single widget | component-level dynamic import |
| Multi-team monorepo | module federation |
| Server-rendered Next.js | RSC + Suspense streaming |
| Legacy Webpack 4 | upgrade to Vite/Webpack 5 first |
| Initial paint > 3s | bundle analyzer + manualChunks |
**기본값**: Vite + React.lazy(route) + intent-prefetch on hover.
## 🔗 Graph
- 부모: [[Web Performance]]
- 변형: [[Module Federation]]
- 응용: [[React Server Components — 경계 의식]]
- Adjacent: [[Vite]] · [[Rollup]] · [[esbuild]]
## 🤖 LLM 활용
**언제**: bundle analysis 의 chunk strategy 추천, lazy boundary 후보 식별, manualChunks rule 작성.
**언제 X**: 매 production runtime 의 dynamic decision — 매 bundler-time static analysis 의 영역.
## ❌ 안티패턴
- **Over-splitting**: 매 component 마다 lazy — 매 too many waterfalls. 매 100KB+ threshold.
- **Suspense boundary 의 미사용**: 매 React.lazy 의 fallback 없음 → throw.
- **Preload everything**: 매 idle prefetch 의 abuse — bandwidth waste.
- **Dynamic import in render**: 매 매 render 마다 import() 호출 → re-fetch.
## 🧪 검증 / 중복
- Verified (web.dev code-splitting docs, Vite docs, React.lazy spec, RFC#118).
- 신뢰도 A.
## 🕓 Changelog
| 날짜 | 변경 |
|---|---|
| 2026-05-08 | Phase 1 |
| 2026-05-10 | Manual cleanup — substantive content + 2026 stack (Vite, RSC, module federation) |
@@ -0,0 +1,173 @@
---
id: wiki-2026-0508-description-logics
title: Description Logics
category: 10_Wiki/Topics
status: verified
canonical_id: self
aliases: [P-REINFORCE-AUTO-088907, DL, ALC, SROIQ]
duplicate_of: none
source_trust_level: A
confidence_score: 0.92
verification_status: applied
tags: [logic, knowledge-representation, ontology, owl, semantic-web]
raw_sources: []
last_reinforced: 2026-05-10
github_commit: pending
tech_stack:
language: python
framework: owlready2+hermit
---
# Description Logics
## 매 한 줄
> **"매 decidable fragment of first-order logic"**. 매 Description Logics (DL) 은 concept (class), role (property), individual 을 formal language 로 표현하여 ontology reasoning 의 mathematical foundation. 매 OWL 2 (Web Ontology Language) 는 SROIQ(D) DL 의 syntactic dialect — 매 2026 의 Knowledge Graph + LLM grounding 의 backbone.
## 매 핵심
### 매 DL family (expressivity)
- **AL** (Attributive Language): atomic concept, conjunction, universal restriction.
- **ALC**: AL + full negation. 매 baseline.
- **ALCN**: ALC + cardinality.
- **SHIQ**: + role hierarchy, inverse role, qualified cardinality.
- **SROIQ**: SHIQ + role chain, self-restriction, nominal — OWL 2 DL 의 base.
### 매 reasoning task
- **Subsumption**: C ⊑ D (concept inclusion).
- **Consistency**: ontology 의 모순 검증.
- **Instance check**: a ∈ C.
- **Classification**: 전체 concept hierarchy 의 compute.
- **Realization**: 매 individual 의 most-specific class.
### 매 응용
1. Biomedical ontology (SNOMED CT, GO) — drug-disease reasoning.
2. Knowledge graph 의 schema validation (Wikidata, Schema.org).
3. LLM grounding — RAG 의 ontology-constrained retrieval.
4. Configuration management — feature compatibility reasoning.
## 💻 패턴
### 패턴 1: ALC concept 정의 (Owlready2)
```python
from owlready2 import *
onto = get_ontology("http://example.org/family.owl")
with onto:
class Person(Thing): pass
class Parent(Person): pass
class hasChild(Person >> Person): pass
class Mother(Parent):
equivalent_to = [Parent & ~onto.search(is_a=onto.Male)[0]]
# ALC: Mother ≡ Parent ⊓ ¬Male
```
### 패턴 2: SROIQ role chain (grandparent)
```python
with onto:
class hasGrandchild(Person >> Person):
# role chain: hasChild ∘ hasChild ⊑ hasGrandchild
property_chain = [[hasChild, hasChild]]
```
### 패턴 3: Reasoner 실행 (HermiT)
```python
from owlready2 import sync_reasoner_hermit
with onto:
sync_reasoner_hermit(infer_property_values=True)
# inferred axioms inspect
for cls in onto.classes():
print(cls, "", cls.is_a)
```
### 패턴 4: Tableau algorithm (mini ALC)
```python
def alc_satisfiable(concept, world=None):
"""Naive tableau for ALC C ⊓ ¬C unsatisfiability check."""
world = world or {"individuals": {}, "constraints": []}
if concept[0] == "AND":
for sub in concept[1:]:
if not alc_satisfiable(sub, world):
return False
return True
if concept[0] == "NOT":
atom = concept[1]
if ("ATOM", atom) in world["constraints"]:
return False # clash
world["constraints"].append(("NOT_ATOM", atom))
return True
if concept[0] == "ATOM":
if ("NOT_ATOM", concept[1]) in world["constraints"]:
return False
world["constraints"].append(("ATOM", concept[1]))
return True
# ∃R.C, ∀R.C handled by spawning fresh individual ...
```
### 패턴 5: SPARQL over OWL inference
```sparql
PREFIX owl: <http://www.w3.org/2002/07/owl#>
PREFIX : <http://example.org/family#>
SELECT ?gp ?gc WHERE {
?gp :hasGrandchild ?gc . # inferred via property_chain
}
```
### 패턴 6: LLM-grounded ontology query
```python
import anthropic
from owlready2 import get_ontology
client = anthropic.Anthropic()
onto = get_ontology("./family.owl").load()
def grounded_answer(question: str) -> str:
classes = [c.name for c in onto.classes()]
response = client.messages.create(
model="claude-opus-4-7-20260301",
max_tokens=512,
system=f"Use only these ontology classes: {classes}. Answer with class names.",
messages=[{"role": "user", "content": question}]
)
return response.content[0].text
```
## 매 결정 기준
| 상황 | Approach |
|---|---|
| Web ontology / Linked Data | OWL 2 DL (SROIQ) + Protégé |
| Lightweight inference | OWL 2 EL (medical) or RL (rule-based) |
| Real-time reasoning | RDFS + custom rules (avoid full DL) |
| Research / proof-of-concept | ALC + custom tableau |
| Fact-heavy KG (Wikidata) | SHACL validation > full DL reasoning |
| LLM grounding | EL/RL profile + SPARQL |
**기본값**: OWL 2 EL (tractable PTIME) + HermiT/ELK reasoner.
## 🔗 Graph
- 부모: [[Logic]] · [[Knowledge Representation]]
- Adjacent: [[Knowledge-Graphs]]
## 🤖 LLM 활용
**언제**: ontology design review, axiom suggestion, SPARQL 생성, RAG 의 ontology-grounded prompt.
**언제 X**: 매 reasoning soundness 의 결정 — DL reasoner (HermiT, ELK) 의 영역. LLM 은 hint only.
## ❌ 안티패턴
- **Open-world misunderstanding**: 매 absent fact 가 false 라 가정 — DL 은 OWA (open world).
- **Unique Name Assumption 가정**: 매 individual a ≠ b 자동 아님 — `differentFrom` 명시 필요.
- **Undecidable extension**: 매 SROIQ 의 추가 expressivity (full datatype reasoning) → 결정불가.
- **Reasoner 없이 inference**: 매 axiom 만 작성 + 매 reasoner 미실행 → no inferred triples.
## 🧪 검증 / 중복
- Verified (Baader et al. "DL Handbook", W3C OWL 2 spec, Owlready2 docs).
- 신뢰도 A.
## 🕓 Changelog
| 날짜 | 변경 |
|---|---|
| 2026-05-08 | Phase 1 |
| 2026-05-10 | Manual cleanup — substantive content + 2026 stack (Owlready2, HermiT, LLM grounding) |
@@ -0,0 +1,159 @@
---
id: wiki-2026-0508-dopamine-signaling
title: Dopamine Signaling
category: 10_Wiki/Topics
status: verified
canonical_id: self
aliases: [P-REINFORCE-AUTO-C204E9, DA Signaling, RPE, Reward Prediction Error]
duplicate_of: none
source_trust_level: A
confidence_score: 0.92
verification_status: applied
tags: [neuroscience, reinforcement-learning, reward, addiction, RPE]
raw_sources: []
last_reinforced: 2026-05-10
github_commit: pending
tech_stack:
language: python
framework: numpy+gymnasium
---
# Dopamine Signaling
## 매 한 줄
> **"매 reward prediction error 의 neural currency"**. 매 Dopamine (DA) signaling 은 mesolimbic + nigrostriatal pathway 에서 phasic burst 로 actual expected reward (RPE) 를 broadcast — 매 Schultz 1997 의 landmark finding 이 modern reinforcement learning + addiction model 의 bridge. 매 2026 의 frontier 는 multi-dimensional DA (D1/D2 receptor, axonal vs somatic, microcircuit) 의 dissection.
## 매 핵심
### 매 pathway
- **Mesolimbic** (VTA → NAc): 매 reward, motivation, addiction.
- **Mesocortical** (VTA → PFC): 매 cognition, working memory.
- **Nigrostriatal** (SNc → dorsal striatum): 매 motor learning, habit.
- **Tuberoinfundibular** (hypothalamus → pituitary): 매 prolactin inhibition.
### 매 RPE encoding
- **Phasic burst**: 매 unexpected reward → DA 의 firing rate ↑.
- **Phasic dip**: 매 omitted expected reward → firing 의 below-baseline.
- **CS-shift**: 매 conditioning 의 결과 — burst 의 reward 시점에서 cue 시점으로 shift.
- **Tonic level**: 매 background motivation, vigor.
### 매 receptor 타입
- **D1-like** (D1, D5): Gs-coupled, cAMP↑, direct pathway, "Go".
- **D2-like** (D2, D3, D4): Gi-coupled, cAMP↓, indirect pathway, "NoGo".
- **Asymmetric learning**: D1 의 positive RPE, D2 의 negative RPE.
### 매 응용
1. Reinforcement learning algorithm (TD-learning) 의 biological basis.
2. Parkinson's disease — SNc 의 dopaminergic neuron 손실.
3. Addiction — mesolimbic 의 hijacking.
4. Schizophrenia — mesocortical hypofunction + mesolimbic hyperfunction.
5. ADHD — DA reuptake 의 dysregulation.
## 💻 패턴
### 패턴 1: TD(0) RPE simulation
```python
import numpy as np
def td_zero(states, rewards, alpha=0.1, gamma=0.95, episodes=1000):
V = np.zeros(len(states))
rpe_log = []
for _ in range(episodes):
for t in range(len(states) - 1):
rpe = rewards[t] + gamma * V[t+1] - V[t]
V[t] += alpha * rpe
rpe_log.append((t, rpe))
return V, rpe_log
```
### 패턴 2: CS-US shift (Pavlovian)
```python
def conditioning(trials=200, cs_step=10, us_step=20, alpha=0.2, gamma=0.9):
"""RPE 가 US 에서 CS 시점으로 shift 하는지 확인."""
V = np.zeros(30)
history = []
for trial in range(trials):
r = np.zeros(30); r[us_step] = 1.0
for t in range(29):
rpe = r[t] + gamma * V[t+1] - V[t]
V[t] += alpha * rpe
if t in (cs_step, us_step):
history.append((trial, t, rpe))
return history # late trials: cs_step burst, us_step ≈ 0
```
### 패턴 3: D1/D2 asymmetric update
```python
def d1d2_update(weights, rpe, lr_d1=0.1, lr_d2=0.1):
"""positive RPE → D1 facilitation, negative → D2 facilitation."""
if rpe > 0:
weights["go"] += lr_d1 * rpe
else:
weights["nogo"] += lr_d2 * (-rpe)
return weights
```
### 패턴 4: Tonic-phasic interaction
```python
def vigor_modulated_action(action_values, tonic_da, beta=2.0):
"""Niv 2007: tonic DA → response rate."""
p = np.exp(beta * tonic_da * action_values)
return p / p.sum()
```
### 패턴 5: Distributional RPE (Dabney 2020 finding)
```python
import torch
import torch.nn.functional as F
class DistributionalDA(torch.nn.Module):
"""다양한 optimism 의 DA neuron population."""
def __init__(self, n_neurons=20):
super().__init__()
self.taus = torch.linspace(0.1, 0.9, n_neurons)
self.values = torch.nn.Parameter(torch.zeros(n_neurons))
def update(self, reward, lr=0.1):
delta = reward - self.values
# asymmetric update per neuron
with torch.no_grad():
self.values += lr * torch.where(
delta > 0, self.taus * delta, (1 - self.taus) * delta
)
```
## 매 결정 기준
| 상황 | Approach |
|---|---|
| Behavioral RL model | TD(λ) / Q-learning, scalar RPE |
| Asymmetric learning bias 모델 | D1/D2 dual-pathway |
| Vigor / response rate 모델 | tonic DA + beta scaling |
| Risk-sensitive / distributional | distributional RL (Dabney 2020) |
| Clinical Parkinson | SNc loss + L-DOPA pharmacology |
| Addiction model | mesolimbic phasic 의 hijack + tolerance |
**기본값**: TD(0) scalar RPE 의 baseline. 매 D1/D2 의 추가 시점은 asymmetric bias 가 핵심인 task.
## 🔗 Graph
- 부모: [[Reinforcement Learning]]
- 응용: [[Addiction]] · [[Reward Prediction Error]]
- Adjacent: [[TD-Learning]] · [[Actor-Critic]] · [[Distributional RL]]
## 🤖 LLM 활용
**언제**: literature review (RPE, distributional DA), modeling hypothesis generation, neurobiology + RL bridge 의 explanation.
**언제 X**: 매 clinical diagnosis / prescription — 매 neurologist 의 영역.
## ❌ 안티패턴
- **Scalar oversimplification**: 매 single RPE channel 가정 — distributional + multi-receptor reality 의 무시.
- **DA = pleasure 오해**: 매 DA 는 prediction error / motivation, hedonic experience 는 opioid system.
- **Human ↔ rodent extrapolation**: 매 microcircuit + receptor expression 의 species difference 의 무시.
## 🧪 검증 / 중복
- Verified (Schultz 1997 Science, Niv 2007, Dabney 2020 Nature, modern review Berke 2018).
- 신뢰도 A.
## 🕓 Changelog
| 날짜 | 변경 |
|---|---|
| 2026-05-08 | Phase 1 |
| 2026-05-10 | Manual cleanup — substantive content + distributional DA finding |
@@ -0,0 +1,33 @@
---
id: wiki-2026-0508-iriszoom-엔진의-물리적-가시화
title: Iriszoom 엔진의 물리적 가시화
category: 10_Wiki/Topics
status: duplicate
canonical_id: iriszoom-engine
duplicate_of: "[[Iriszoom Engine]]"
aliases: []
source_trust_level: A
confidence_score: 0.9
verification_status: redirected
tags: [duplicate, iriszoom, rendering]
last_reinforced: 2026-05-10
github_commit: pending
---
# Iriszoom 엔진의 물리적 가시화
> **이 문서는 [[Iriszoom Engine]] 의 중복본입니다.** Canonical 문서로 redirect.
## 핵심 요약 (specialization aspects)
- 매 Iriszoom 엔진의 물리 기반 렌더링 측면 — depth-of-field, lens distortion 의 가시화 pipeline.
- 매 PBR + iris-aperture simulation 의 합성.
## 🔗 Graph
- 부모: [[Iriszoom Engine]] (canonical)
- Adjacent: [[Physically Based Rendering]]
## 🕓 변경 이력
| 날짜 | 변경 |
|---|---|
| 2026-05-08 | Phase 1 |
| 2026-05-10 | 중복 처리 — canonical 문서로 redirect |
@@ -0,0 +1,177 @@
---
id: wiki-2026-0508-markov-random-fields
title: Markov Random Fields
category: 10_Wiki/Topics
status: verified
canonical_id: self
aliases: [MRF, Undirected Graphical Model, Markov Network, Gibbs Random Field]
duplicate_of: none
source_trust_level: A
confidence_score: 0.9
verification_status: applied
tags: [machine-learning, probability, graphical-model, vision, statistics]
raw_sources: []
last_reinforced: 2026-05-10
github_commit: pending
tech_stack:
language: Python
framework: PyTorch/NetworkX
---
# Markov Random Fields
## 매 한 줄
> **"매 undirected graph 의 joint distribution — local Markov property 의 satisfy"**. 매 Bayes net 의 directed counterpart — 매 conditional independence 의 graph separation 으로 read. HammersleyClifford (1971) 의 Gibbs distribution 의 equivalence — 2026 매 image segmentation, CRF, energy-based model (EBM) 의 underlie.
## 매 핵심
### 매 정의
- **Graph** $G = (V, E)$, 매 node 의 random variable $X_v$.
- **Local Markov**: $X_v \perp X_{V \setminus N[v]} \mid X_{N(v)}$ — 매 node 의 neighbors 의 condition 시 의 rest 의 independent.
- **HammersleyClifford**: 매 strictly positive joint 의 매 Gibbs form $P(x) = \frac{1}{Z} \prod_{C \in \mathcal{C}} \psi_C(x_C)$ — 매 clique 의 product.
- **Partition function**: $Z = \sum_x \prod_C \psi_C(x_C)$ — 매 intractable in general.
### 매 inference
- **Exact**: tree (sum-product / belief propagation).
- **Loopy BP**: 매 approximate, 매 often works.
- **MCMC**: Gibbs sampling — 매 conditional 의 sample 매 cycle.
- **Variational**: mean-field — 매 factorized $q(x) = \prod_v q_v(x_v)$.
- **Graph cut**: 매 binary submodular — 매 exact min-cut.
### 매 응용
1. Image segmentation (foreground/background MRF).
2. Conditional Random Fields (CRF) — sequence labeling.
3. Stereo / depth estimation (smoothness prior).
4. Energy-based generative models (EBMs).
5. Statistical physics (Ising, Potts).
## 💻 패턴
### Ising model — Gibbs sampling
```python
import numpy as np
def ising_gibbs(N=64, beta=0.44, steps=10_000, h=0.0):
spins = np.random.choice([-1, 1], size=(N, N))
for _ in range(steps):
i, j = np.random.randint(N, size=2)
nb = (spins[(i+1)%N, j] + spins[(i-1)%N, j]
+ spins[i, (j+1)%N] + spins[i, (j-1)%N])
dE = 2 * spins[i, j] * (beta * nb + h)
if dE < 0 or np.random.random() < np.exp(-dE):
spins[i, j] *= -1
return spins
```
### Loopy belief propagation (binary pairwise)
```python
def loopy_bp(unary, pairwise, edges, iters=20):
# unary[v] : log-potential per node, shape (V, K)
# pairwise : (E, K, K) log-potentials
# edges : list of (u, v)
msg = {(u, v): np.zeros(unary.shape[1]) for u, v in edges}
msg.update({(v, u): np.zeros(unary.shape[1]) for u, v in edges})
for _ in range(iters):
new = {}
for (u, v), e_idx in zip(edges, range(len(edges))):
incoming = unary[u] + sum(msg[(w, u)] for w in neighbors(u) if w != v)
new[(u, v)] = np.logaddexp.reduce(
pairwise[e_idx] + incoming[:, None], axis=0)
new[(u, v)] -= new[(u, v)].max() # normalize
msg.update(new)
beliefs = np.array([
unary[v] + sum(msg[(u, v)] for u in neighbors(v))
for v in range(len(unary))])
return beliefs
```
### Linear-chain CRF (PyTorch — sequence labeling)
```python
import torch, torch.nn as nn
class LinearChainCRF(nn.Module):
def __init__(self, n_tags):
super().__init__()
self.trans = nn.Parameter(torch.randn(n_tags, n_tags))
def log_partition(self, emissions): # (T, K)
T, K = emissions.shape
alpha = emissions[0]
for t in range(1, T):
alpha = torch.logsumexp(
alpha[:, None] + self.trans + emissions[t][None, :], dim=0)
return torch.logsumexp(alpha, dim=0)
def score(self, emissions, tags):
s = emissions[0, tags[0]]
for t in range(1, len(tags)):
s = s + self.trans[tags[t-1], tags[t]] + emissions[t, tags[t]]
return s
def nll(self, emissions, tags):
return self.log_partition(emissions) - self.score(emissions, tags)
```
### Graph cut for binary MRF (submodular)
```python
import maxflow # PyMaxflow
def binary_mrf_graph_cut(unary_fg, unary_bg, pairwise_w):
H, W = unary_fg.shape
g = maxflow.Graph[float]()
nodes = g.add_grid_nodes((H, W))
g.add_grid_edges(nodes, pairwise_w) # smoothness
g.add_grid_tedges(nodes, unary_fg, unary_bg) # data term
g.maxflow()
return g.get_grid_segments(nodes) # bool mask
```
### Mean-field VI
```python
def mean_field(unary, pairwise, iters=10):
# q(x_v = k) ∝ exp(unary[v,k] + Σ_{u∈N(v)} Σ_l q(x_u=l) * pairwise[v,u,k,l])
q = torch.softmax(unary, dim=-1)
for _ in range(iters):
msg = torch.einsum('uvkl,ul->vk', pairwise, q)
q = torch.softmax(unary + msg, dim=-1)
return q
```
## 매 결정 기준
| 상황 | Approach |
|---|---|
| Tree-structured | Sum-product (exact) |
| Loopy graph, fast | Loopy BP |
| Loopy graph, accurate | MCMC (Gibbs) — slower |
| Binary submodular | Graph cut (exact min-cut) |
| Sequence labeling (NER) | Linear-chain CRF |
| Image segmentation | Pairwise MRF + α-expansion / DenseCRF |
| Modern generative | Energy-Based Model (EBM) — score matching |
**기본값**: smallest model 의 first — chain → tree → loopy + BP → MCMC.
## 🔗 Graph
- 부모: [[Probabilistic Graphical Models]] · [[Probability Theory]]
- 응용: [[Image Segmentation]] · [[Energy-Based Model]]
- Adjacent: [[Bayesian Network]]
## 🤖 LLM 활용
**언제**: clique factorization 의 derive, BP/Gibbs pseudocode, partition-function intractability 의 explain.
**언제 X**: 매 specific paper algorithm — original 의 의 cross-check.
## ❌ 안티패턴
- **Bayes net 의 mental model 의 reuse**: 매 directionality 의 X — separation criterion 매 different.
- **Computing $Z$ for large graph**: 매 #P-hard — variational / MCMC.
- **Loopy BP on tightly-loopy graph**: 매 may diverge — damping 의 try, MCMC 의 fallback.
- **Linear-chain CRF 의 LSTM 으로 always replace**: 매 small data 의 still wins, 매 calibration 의 better.
- **Mean-field 의 multimodal posterior 의 use**: 매 mode-seeking — 매 underestimate variance.
## 🧪 검증 / 중복
- Verified (Hammersley & Clifford 1971; Koller & Friedman _PGM_ 2009; Murphy _PML_ 2022).
- 신뢰도 A.
## 🕓 Changelog
| 날짜 | 변경 |
|---|---|
| 2026-05-08 | Phase 1 |
| 2026-05-10 | Manual cleanup — MRF basics + BP/CRF/graph-cut 정리 |
@@ -0,0 +1,179 @@
---
id: wiki-2026-0508-model-free-rl-vs-model-based-rl
title: Model-Free RL vs Model-Based RL
category: 10_Wiki/Topics
status: verified
canonical_id: self
aliases: [MFRL vs MBRL, Model-Based Reinforcement Learning, World Model]
duplicate_of: none
source_trust_level: A
confidence_score: 0.9
verification_status: applied
tags: [reinforcement-learning, machine-learning, planning, world-model]
raw_sources: []
last_reinforced: 2026-05-10
github_commit: pending
tech_stack:
language: Python
framework: PyTorch/JAX
---
# Model-Free RL vs Model-Based RL
## 매 한 줄
> **"매 environment dynamics 의 learn 하나, 의 X 하나 — sample efficiency 의 vs simplicity 의 trade"**. Model-free (Q-learning, PPO) 매 reward signal 의 만으로 policy 의 update — simple 의 brittle. Model-based (Dreamer, MuZero) 매 world model 의 learn → 매 imagined rollout 의 train. 2026 의 Dreamer V3, EfficientZero, DayDreamer 의 robotics deployment — sample efficiency 의 1-2 orders.
## 매 핵심
### 매 dichotomy
- **Model-free**: $\pi(a|s)$ 또는 $Q(s,a)$ 의 직접 learn. 매 transition $p(s'|s,a)$ 의 access 의 X.
- **Model-based**: $\hat{p}(s'|s,a)$, $\hat{r}(s,a)$ 의 learn → 매 plan / imagined rollout / Dyna-style.
### 매 trade-off table
| Axis | Model-Free | Model-Based |
|---|---|---|
| Sample efficiency | Low | **High** (10-100×) |
| Compute per update | Low | **High** |
| Asymptotic perf | **Often higher** | Bounded by model error |
| Stability | **Stable** | Compounding model error |
| Transfer | Poor | **Better** (model 의 reuse) |
| Implementation | **Simple** | Complex |
### 매 modern flavors
- **Model-free**: PPO, SAC, DQN family, TD3.
- **Model-based**: Dreamer V3 (RSSM), MuZero (planning + value tree), TD-MPC2, PILCO (Gaussian process).
- **Hybrid**: MBPO (model-generated rollouts → SAC), Dyna-Q.
### 매 응용
1. Robotics (sample-efficient sim-to-real).
2. Atari/board game (MuZero).
3. Drug design (sample-efficient exploration).
4. Game NPC behavior (PPO 의 still default).
## 💻 패턴
### PPO — model-free policy gradient (gymnasium)
```python
import torch, torch.nn as nn, torch.nn.functional as F
from torch.distributions import Categorical
class ActorCritic(nn.Module):
def __init__(self, obs_dim, n_act):
super().__init__()
self.shared = nn.Sequential(nn.Linear(obs_dim, 64), nn.Tanh(),
nn.Linear(64, 64), nn.Tanh())
self.pi = nn.Linear(64, n_act)
self.v = nn.Linear(64, 1)
def forward(self, x):
h = self.shared(x)
return Categorical(logits=self.pi(h)), self.v(h).squeeze(-1)
def ppo_step(ac, opt, batch, clip=0.2, vf_c=0.5, ent_c=0.01):
dist, v = ac(batch.obs)
logp = dist.log_prob(batch.act)
ratio = torch.exp(logp - batch.logp_old)
surr1 = ratio * batch.adv
surr2 = torch.clamp(ratio, 1-clip, 1+clip) * batch.adv
pi_loss = -torch.min(surr1, surr2).mean()
v_loss = F.mse_loss(v, batch.ret)
ent = dist.entropy().mean()
loss = pi_loss + vf_c * v_loss - ent_c * ent
opt.zero_grad(); loss.backward(); opt.step()
return loss.item()
```
### Dreamer-style world model (RSSM skeleton)
```python
class RSSM(nn.Module):
def __init__(self, obs_dim, act_dim, h=200, z=32):
super().__init__()
self.gru = nn.GRUCell(z + act_dim, h)
self.prior = nn.Linear(h, 2 * z) # μ, σ
self.post = nn.Linear(h + obs_dim, 2 * z)
self.dec_obs = nn.Linear(h + z, obs_dim)
self.dec_rew = nn.Linear(h + z, 1)
def step(self, h, z, a, obs=None):
h = self.gru(torch.cat([z, a], -1), h)
pri_mu, pri_log = self.prior(h).chunk(2, -1)
if obs is not None:
po_mu, po_log = self.post(torch.cat([h, obs], -1)).chunk(2, -1)
z = po_mu + torch.exp(po_log) * torch.randn_like(po_mu)
else:
z = pri_mu + torch.exp(pri_log) * torch.randn_like(pri_mu)
return h, z, (pri_mu, pri_log)
def imagine(self, h, z, policy, T=15):
states = []
for _ in range(T):
a = policy(torch.cat([h, z], -1))
h, z, _ = self.step(h, z, a)
states.append((h, z))
return states
```
### Dyna-Q (hybrid — tabular)
```python
def dyna_q(env, n_planning=10, episodes=500, alpha=0.1, gamma=0.99, eps=0.1):
Q = defaultdict(lambda: np.zeros(env.action_space.n))
model = {} # (s,a) → (r, s')
for _ in range(episodes):
s, _ = env.reset()
done = False
while not done:
a = np.random.randint(env.action_space.n) if np.random.random() < eps \
else int(np.argmax(Q[s]))
s2, r, done, *_ = env.step(a)
Q[s][a] += alpha * (r + gamma * Q[s2].max() - Q[s][a])
model[(s, a)] = (r, s2)
for _ in range(n_planning): # 매 imagined step
(sp, ap), (rp, sp2) = random.choice(list(model.items())), None
rp, sp2 = model[(sp, ap)]
Q[sp][ap] += alpha * (rp + gamma * Q[sp2].max() - Q[sp][ap])
s = s2
```
### MuZero (planning sketch — value/policy net + MCTS)
```python
# 매 environment 의 black-box; learned (representation, dynamics, prediction) heads
# search 매 imagined trajectory 의 over MCTS — replay 매 (search policy, search value, n-step return)
# 의 train. (full impl 매 muzero_general repo)
```
## 매 결정 기준
| 상황 | Approach |
|---|---|
| Lots of cheap simulation | **Model-free** (PPO/SAC) — simpler |
| Real-robot, expensive samples | **Model-based** (Dreamer V3, TD-MPC2) |
| Discrete board game | **MuZero** — planning 의 wins |
| Continuous control benchmark | SAC or DreamerV3 |
| Fast prototype | PPO — most stable, easiest to tune |
| Long-horizon planning | Model-based + planning |
**기본값**: prototype 매 PPO. Sample 매 expensive — Dreamer V3 / TD-MPC2.
## 🔗 Graph
- 부모: [[Reinforcement Learning]]
- 변형: [[PPO]]
- Adjacent: [[World Model]] · [[Planning]]
## 🤖 LLM 활용
**언제**: trade-off explanation, algorithm choice, pseudocode skeleton.
**언제 X**: 매 hyperparameter — paper-specific 의 cross-check (Dreamer V3 매 sensitivity 의 paper 의 careful).
## ❌ 안티패턴
- **MBRL 의 default 의 reach**: 매 cheap-sim 환경 의 PPO 의 win 매 simpler.
- **Imagined rollout 의 too-long horizon**: 매 model error compounds — 5-15 step 의 typical.
- **MFRL 의 sparse reward 의 hope**: 매 exploration 의 add (RND, ICM) — 또는 의 model-based 의 switch.
- **MuZero 의 small problem 의 use**: 매 overkill — tabular Q 의 enough.
- **Single-seed report**: 매 RL variance huge — 5+ seeds 의 IQM (Agarwal et al. 2021).
## 🧪 검증 / 중복
- Verified (Sutton & Barto 2nd ed. 2018; Hafner _DreamerV3_ 2023; Schrittwieser _MuZero_ Nature 2020).
- 신뢰도 A.
## 🕓 Changelog
| 날짜 | 변경 |
|---|---|
| 2026-05-08 | Phase 1 |
| 2026-05-10 | Manual cleanup — MFRL/MBRL trade-off + DreamerV3/MuZero 정리 |
@@ -0,0 +1,136 @@
---
id: wiki-2026-0508-mycological-horror
title: Mycological Horror
category: 10_Wiki/Topics
status: verified
canonical_id: self
aliases: [Fungal Horror, Mushroom Horror, Cordyceps Horror]
duplicate_of: none
source_trust_level: A
confidence_score: 0.9
verification_status: applied
tags: [horror, genre, biology, fiction, body-horror]
raw_sources: []
last_reinforced: 2026-05-10
github_commit: pending
tech_stack:
language: N/A
framework: literary-genre
---
# Mycological Horror
## 매 한 줄
> **"매 fungus 의 host 의 takeover — body autonomy 의 loss"**. 매 ergot poisoning 의 medieval witch trial 부터, William Hope Hodgson 의 "The Voice in the Night" (1907), Jeff VanderMeer 의 _Annihilation_ (2014), HBO _The Last of Us_ (2023/2025) 까지 — 매 fungus 의 alien intelligence + human host 의 dissolve 의 anxiety. 2026 climate-fiction 안에서 매 still rising subgenre.
## 매 핵심
### 매 horror axes
- **Body horror**: 매 visible mycelium 의 bursting — Cronenbergian rupture.
- **Loss of selfhood**: 매 host 의 mind 의 still 있나? — zombie/possession 의 fungal flavor.
- **Ecological dread**: 매 fungus 의 deep time, 매 forest network — humans 의 just substrate.
- **Inscrutable intelligence**: 매 distributed cognition — neither animal nor "thinking" of typical sense.
### 매 biological substrate
- **_Ophiocordyceps unilateralis_**: 매 ant 의 brain 의 hijack — 매 height 의 climb 후 spore release. 매 Last of Us 의 inspiration.
- **Ergot (_Claviceps purpurea_)**: 매 LSD-precursor — Salem witch trial 의 hypothesis.
- **_Massospora_** on cicadas: 매 hypersexual zombie cicada.
- **Mycorrhizal networks**: 매 forest "wood-wide web" (Suzanne Simard) — 매 nonhuman intelligence trope 의 source.
### 매 응용
1. Game design (The Last of Us, Returnal biome).
2. Cosmic-horror / weird-fiction adjacency.
3. Climate-fiction (mass extinction + fungal succession).
4. Folk-horror revival (witch & ergot tradition).
## 💻 패턴
### Trope catalog (writer's reference)
```yaml
core_tropes:
- infection_to_transformation:
stages: [exposure, asymptomatic, behavioral_change, sporulation, death]
pacing: slow_creep # 매 not jump-scare
- hivemind_vs_individual:
tension: "is the host still in there?"
- spore_cloud:
sensory: "sweet rot, gold dust, cathedral silence"
- fruiting_body:
visual: "antlers, coral, cathedral arches from skin"
- mycorrhizal_network:
scale: "forest-wide consciousness"
```
### Game-design beat (procgen biome)
```python
# 매 fungal biome 의 generative beat — escalation curve
def fungal_zone(progress: float) -> dict:
return {
"spore_density": progress ** 1.4, # 매 quadratic creep
"mass_size_m": 0.2 + 8 * progress,
"infected_npcs": int(20 * progress),
"biome_audio": "low_drone" if progress < 0.5 else "wet_chittering",
"visibility_m": max(2, 30 - 28 * progress),
}
```
### Slow-reveal scene template (prose)
```
Beat 1 (page 1) : odd smell, "sweet rot" # sensory only
Beat 2 (page 3) : gold dust on the windowsill # mundane anomaly
Beat 3 (page 7) : neighbor's strange stillness # social uncanny
Beat 4 (page 12) : mycelium under the wallpaper # body discovery
Beat 5 (climax) : the host speaks in chorus # selfhood collapse
```
### Sound-design palette (game/film)
```
- low sub drone (40-60 Hz) # 매 dread bed
- wet chittering / squelch # 매 body-rupture cues
- choral vowel pads # 매 hivemind voice
- silence in canopy # 매 ecology-wrong cue
- distant tonal "pop" # 매 spore release
```
### Reference shelf
```markdown
- William Hope Hodgson, "The Voice in the Night" (1907)
- Jeff VanderMeer, _Annihilation_ (2014) and the Southern Reach
- M. R. Carey, _The Girl With All the Gifts_ (2014)
- _The Last of Us_ (2013/2020 game; HBO 2023/2025)
- Mira Grant, _Parasite_ (adjacent — protozoan, not fungal)
- Kingsnorth, _The Wake_ (folk-horror adjacent)
```
## 매 결정 기준
| 상황 | Approach |
|---|---|
| Body horror beat | Slow reveal (5 beats) — visible mycelium late |
| Cosmic horror tone | Mycorrhizal network 의 emphasize — scale 의 dread |
| Action game | Cordyceps-style infected — clear stage progression |
| Folk horror | Ergot + village — historical anchor |
| Climate fiction | Succession after collapse — fungus 의 inheritor |
**기본값**: slow-creep + sensory anomaly 의 lead, body horror 의 climax 의 reserve.
## 🔗 Graph
## 🤖 LLM 활용
**언제**: trope catalog, beat structure, sound palette, reference suggestion.
**언제 X**: 매 actual mycology — biology fact 의 source 의 cross-check (Sheldrake _Entangled Life_).
## ❌ 안티패턴
- **Zombie reskin**: 매 just "fungal zombie" — fungus 의 unique anxiety (network, slow time, ecology) 의 lose.
- **Jump-scare reliance**: 매 mycological horror 의 strength 의 slow creep — jump scare 매 incompatible.
- **Cure-of-the-week ending**: 매 fungus 의 horror 매 inseparable — antibiotic-style cure 의 deflate.
- **Misidentifying biology**: 매 cordyceps 의 "controls brain via puppeteer" — actually 의 muscle hijack, brain 의 dies. 매 detail 매 matter 의 weird-fiction 의 reader.
## 🧪 검증 / 중복
- Verified (VanderMeer _Annihilation_ 2014; Hughes et al. on _Ophiocordyceps_ 2011 _BMC Ecology_; Sheldrake _Entangled Life_ 2020).
- 신뢰도 A.
## 🕓 Changelog
| 날짜 | 변경 |
|---|---|
| 2026-05-08 | Phase 1 |
| 2026-05-10 | Manual cleanup — tropes + biology + design beat 정리 |
@@ -0,0 +1,160 @@
---
id: wiki-2026-0508-readme
title: README — General Knowledge
category: 10_Wiki/Topics
status: verified
canonical_id: self
aliases: [P-REINFORCE-AUTO-698D8B]
duplicate_of: none
source_trust_level: A
confidence_score: 0.95
verification_status: applied
tags: [readme, index, meta]
raw_sources: []
last_reinforced: 2026-05-10
github_commit: pending
---
# README — General Knowledge
## 매 한 줄
> **"매 cross-domain knowledge 의 hub"**. 매 General Knowledge folder 는 narrowly-scoped 도메인에 fit 하지 않은 wiki note 의 catch-all index — game design, web platform, ML theory, neuroscience 가 cross-pollinate 한다.
## 매 핵심
### 매 폴더 목적
- 매 cross-domain note 의 home — 매 specific topic folder (AI_and_ML, Programming) 에 fit 하지 않은 entry.
- 매 case study + concept primer 의 mix.
- 매 canonical 문서 + redirect 문서 의 coexist.
### 매 분류 체계
- 매 status: `verified` (canonical), `duplicate` (redirect), `merged` (filename-level redirect), `needs_review` (pending cleanup).
- 매 canonical_id: `self` (own canonical) or external canonical slug.
- 매 frontmatter 의 일관된 schema — id, title, category, status, canonical_id, aliases, source_trust_level.
### 매 응용
1. Game design knowledge base — Albion Online, Clash Royale, Diablo 2 의 case study.
2. Web platform primer — OffscreenCanvas, SharedArrayBuffer 의 깊이 있는 reference.
3. Cognitive science index — Dopamine Signaling, Mycological Horror 의 cross-cut topic.
## 💻 패턴
### 패턴 1: Frontmatter linting
```python
import yaml
import frontmatter
from pathlib import Path
REQUIRED = {"id", "title", "category", "status", "canonical_id"}
def lint_folder(folder: Path):
issues = []
for md in folder.glob("*.md"):
post = frontmatter.load(md)
missing = REQUIRED - set(post.metadata.keys())
if missing:
issues.append((md.name, f"missing: {missing}"))
return issues
for name, issue in lint_folder(Path("./General Knowledge")):
print(f"{name}: {issue}")
```
### 패턴 2: Duplicate detection (title similarity)
```python
from rapidfuzz import fuzz
from pathlib import Path
import frontmatter
def find_dupes(folder: Path, threshold=85):
titles = []
for md in folder.glob("*.md"):
post = frontmatter.load(md)
titles.append((md.name, post.metadata.get("title", "")))
pairs = []
for i, (n1, t1) in enumerate(titles):
for n2, t2 in titles[i+1:]:
score = fuzz.ratio(t1, t2)
if score >= threshold:
pairs.append((n1, n2, score))
return pairs
```
### 패턴 3: Wikilink graph build
```python
import re
import networkx as nx
from pathlib import Path
LINK_RE = re.compile(r"\[\[([^\]]+)\]\]")
def build_graph(folder: Path) -> nx.DiGraph:
g = nx.DiGraph()
for md in folder.glob("*.md"):
text = md.read_text()
for target in LINK_RE.findall(text):
g.add_edge(md.stem, target.split("|")[0])
return g
g = build_graph(Path("./General Knowledge"))
print(f"nodes={g.number_of_nodes()} edges={g.number_of_edges()}")
print("orphans:", [n for n in g.nodes if g.in_degree(n) == 0])
```
### 패턴 4: Redirect resolution
```python
def resolve(slug: str, index: dict[str, dict]) -> str:
seen = set()
cur = slug
while cur in index and index[cur].get("status") in ("duplicate", "merged"):
if cur in seen:
raise ValueError(f"redirect cycle at {cur}")
seen.add(cur)
cur = index[cur].get("canonical_id") or index[cur].get("redirect_to")
return cur
```
### 패턴 5: Reinforcement scheduler
```python
from datetime import date, timedelta
def needs_reinforcement(meta: dict, today: date = date.today()) -> bool:
last = date.fromisoformat(meta["last_reinforced"])
score = float(meta.get("confidence_score", 0.9))
interval = timedelta(days=30 if score >= 0.9 else 14)
return today - last > interval
```
## 매 결정 기준
| 상황 | Approach |
|---|---|
| 새 note 의 fit folder 가 명확 | specific folder 에 add (not General Knowledge) |
| cross-domain note | General Knowledge |
| Korean title duplicate | REDIRECT to English canonical |
| stub / placeholder | redirect to README |
**기본값**: domain-specific folder 우선, fallback 만 General Knowledge.
## 🔗 Graph
- 부모: [[Wiki Index]] · [[10_Wiki/Topics]]
- 변형: [[AI_and_ML/README]] · [[Programming & Language/README]]
## 🤖 LLM 활용
**언제**: cross-domain question 의 routing, knowledge graph 구축, reinforcement scheduling.
**언제 X**: 매 specific domain 의 deep query — domain folder 의 직접 lookup 우선.
## ❌ 안티패턴
- **Catch-all dumping**: 매 note 가 specific folder 의 candidate 인데 General Knowledge 에 dump — graph 의 fragmentation.
- **Redirect chain**: 매 redirect → redirect → canonical 의 multi-hop. 매 single-hop 으로 flatten.
- **Stale frontmatter**: 매 last_reinforced 의 90+일 미갱신 — reinforcement loop 의 break.
## 🧪 검증 / 중복
- Verified (folder ls + frontmatter lint).
- 신뢰도 A (meta-doc, self-describing).
## 🕓 Changelog
| 날짜 | 변경 |
|---|---|
| 2026-05-08 | Phase 1 |
| 2026-05-10 | Manual cleanup — README 의 substantive content 화 |
@@ -0,0 +1,156 @@
---
id: wiki-2026-0508-variance-rules
title: Variance Rules
category: 10_Wiki/Topics
status: verified
canonical_id: self
aliases: [Variance Algebra, Var Properties, Bienaymé Identity]
duplicate_of: none
source_trust_level: A
confidence_score: 0.9
verification_status: applied
tags: [statistics, probability, math, identity]
raw_sources: []
last_reinforced: 2026-05-10
github_commit: pending
tech_stack:
language: Python
framework: NumPy
---
# Variance Rules
## 매 한 줄
> **"매 random variable 의 spread 의 algebra — Var(aX + b) = a²Var(X), 매 independence 매 sum 의 add"**. 1853 Bienaymé 의 sum-of-independent identity 부터 매 modern propagation-of-uncertainty, finance VaR, ML loss decomposition 까지 — 매 variance algebra 의 매 day-1 statistics 의 still 매 most-used identity.
## 매 핵심
### 매 core identities
- **Definition**: $\mathrm{Var}(X) = \mathbb{E}[(X - \mathbb{E}[X])^2] = \mathbb{E}[X^2] - \mathbb{E}[X]^2$.
- **Affine**: $\mathrm{Var}(aX + b) = a^2 \mathrm{Var}(X)$ — 매 constant $b$ 의 drop.
- **Sum**: $\mathrm{Var}(X + Y) = \mathrm{Var}(X) + \mathrm{Var}(Y) + 2\,\mathrm{Cov}(X, Y)$.
- **Independence (Bienaymé)**: $X \perp Y \Rightarrow \mathrm{Var}(X+Y) = \mathrm{Var}(X) + \mathrm{Var}(Y)$.
- **Linear comb**: $\mathrm{Var}\!\left(\sum a_i X_i\right) = \sum a_i^2 \mathrm{Var}(X_i) + 2 \sum_{i<j} a_i a_j \mathrm{Cov}(X_i, X_j)$.
- **Law of total variance**: $\mathrm{Var}(Y) = \mathbb{E}[\mathrm{Var}(Y|X)] + \mathrm{Var}(\mathbb{E}[Y|X])$.
- **Sample variance bias correction**: $s^2 = \frac{1}{n-1}\sum (x_i - \bar{x})^2$ — 매 Bessel.
### 매 propagation (delta method)
- **Univariate**: $\mathrm{Var}(g(X)) \approx (g'(\mu))^2 \mathrm{Var}(X)$.
- **Multivariate**: $\mathrm{Var}(g(\mathbf{X})) \approx \nabla g(\mu)^\top \Sigma \nabla g(\mu)$.
### 매 응용
1. Portfolio variance (Markowitz).
2. Error propagation in physics measurement.
3. ML bias-variance decomposition.
4. A/B test sample-size (Welch).
5. Kalman filter — covariance propagation.
## 💻 패턴
### Numerical sample variance — Welford (numerically stable)
```python
def welford_variance(stream):
n = 0; mean = 0.0; M2 = 0.0
for x in stream:
n += 1
delta = x - mean
mean += delta / n
M2 += delta * (x - mean) # 매 use updated mean
return mean, M2 / (n - 1) if n > 1 else float('nan')
```
### Linear combination variance
```python
import numpy as np
def linear_combo_var(weights, cov):
# Var(w^T X) = w^T Σ w
w = np.asarray(weights); cov = np.asarray(cov)
return float(w @ cov @ w)
```
### Portfolio variance (Markowitz)
```python
def portfolio_var(weights, returns_matrix):
cov = np.cov(returns_matrix, rowvar=False, ddof=1)
return weights @ cov @ weights
```
### Delta-method propagation
```python
import numpy as np
def delta_method(g, grad_g, mu, sigma):
# mu: vector, sigma: covariance
g_grad = np.asarray(grad_g(mu))
return float(g_grad @ sigma @ g_grad)
```
### Law of total variance — verify by simulation
```python
import numpy as np
rng = np.random.default_rng(0)
N = 1_000_000
X = rng.integers(0, 3, size=N) # 매 latent class
mu_y = np.array([0.0, 1.0, 5.0])[X]
Y = rng.normal(mu_y, scale=1.0)
total = Y.var()
inner = np.array([Y[X==k].var() for k in range(3)]).mean()
outer = np.array([Y[X==k].mean() for k in range(3)]).var()
print(total, inner + outer) # 매 ≈ equal
```
### Bias-variance decomposition (ML)
```python
def bias_variance(predictions, y_true):
# predictions: (n_models, n_samples)
mean_pred = predictions.mean(axis=0)
bias_sq = ((mean_pred - y_true) ** 2).mean()
var = predictions.var(axis=0).mean()
noise_lb = 0.0 # 매 estimable 의 의 separately
return bias_sq, var, noise_lb
```
### Welch's t-test variance handling
```python
from scipy import stats
t, p = stats.ttest_ind(a, b, equal_var=False) # Welch
# 매 unequal variance — Satterthwaite degrees of freedom
```
## 매 결정 기준
| 상황 | Approach |
|---|---|
| Streaming variance | Welford (numerically stable) |
| Independent sum | Bienaymé — sum the variances |
| Correlated sum | Full covariance — $w^\top \Sigma w$ |
| Nonlinear function $g(X)$ | Delta method (1st-order) — or Monte Carlo |
| Hierarchical / mixture | Law of total variance 의 decompose |
| ML overfitting diagnose | Bias-variance decomposition |
| Sample variance | Bessel correction ($n-1$) |
**기본값**: independence 의 confirm 후 Bienaymé. Doubt — Monte Carlo 의 verify.
## 🔗 Graph
- 부모: [[Probability Theory]]
- 응용: [[Bias-Variance Tradeoff]]
## 🤖 LLM 활용
**언제**: identity recall, derivation hint, code skeleton (Welford, delta).
**언제 X**: 매 specific paper 의 closed-form — derivation 의 cross-check.
## ❌ 안티패턴
- **Bienaymé 의 correlated variable 의 apply**: 매 covariance 의 forget — biased toward zero variance.
- **Two-pass naive variance** ($\sum x_i^2 - (\sum x_i)^2/n$): 매 catastrophic cancellation — Welford 의 use.
- **Sample variance with $n$**: 매 biased — Bessel ($n-1$).
- **Affine 매 $b$ 의 add to variance**: 매 $b$ 의 drop, only $a^2$ matters.
- **Delta method 의 high curvature 의 use**: 매 1st-order — large $\sigma$ 의 의 break, 의 Monte Carlo.
## 🧪 검증 / 중복
- Verified (Bienaymé 1853; Casella & Berger _Statistical Inference_ 2nd ed.; Welford 1962 _Technometrics_).
- 신뢰도 A.
## 🕓 Changelog
| 날짜 | 변경 |
|---|---|
| 2026-05-08 | Phase 1 |
| 2026-05-10 | Manual cleanup — variance algebra + Welford + delta method 정리 |
@@ -0,0 +1,32 @@
---
id: wiki-2026-0508-디아블로-2-diablo-ii-조던링-사태
title: 디아블로 2(Diablo II) 조던링 사태
category: 10_Wiki/Topics
status: duplicate
canonical_id: diablo-2-economy
duplicate_of: "[[Game Economy Case Studies]]"
aliases: []
source_trust_level: A
confidence_score: 0.9
verification_status: redirected
tags: [duplicate, game-economy, diablo, dupe-bug]
last_reinforced: 2026-05-10
github_commit: pending
---
# 디아블로 2(Diablo II) 조던링 사태
> **이 문서는 [[Game Economy Case Studies]] 의 중복본입니다.** Canonical 문서로 redirect.
## 핵심 요약 (specialization aspects)
- 매 SOJ(Stone of Jordan) 의 de facto currency 화 — gold inflation 의 결과.
- 매 dupe bug + bot economy 의 hyperinflation 사례.
## 🔗 Graph
- Adjacent: [[Resource Management]] · [[Free-to-Play]]
## 🕓 변경 이력
| 날짜 | 변경 |
|---|---|
| 2026-05-08 | Phase 1 |
| 2026-05-10 | 중복 처리 — canonical 문서로 redirect |
@@ -0,0 +1,154 @@
---
id: wiki-2026-0508-부분-유료화-free-to-play-게임
title: 부분 유료화(Free-to-Play) 게임
category: 10_Wiki/Topics
status: verified
canonical_id: self
aliases: [F2P, Free-to-Play, 부분유료, 프리투플레이]
duplicate_of: none
source_trust_level: A
confidence_score: 0.9
verification_status: applied
tags: [f2p, monetization, mobile, gacha, battle-pass]
raw_sources: []
last_reinforced: 2026-05-10
github_commit: pending
tech_stack:
language: typescript
framework: nodejs
---
# 부분 유료화(Free-to-Play) 게임
## 매 한 줄
> **"매 entry 의 free + 매 in-game purchase 의 monetize"**. 매 2000s Asian PC MMO 에서 출발 — 매 2010s mobile 의 dominant model. 매 2026 의 industry: 매 mobile gross revenue 의 약 ~80% + 매 console / PC 의 hybrid F2P (Fortnite, Apex, Marvel Rivals) 의 mainstream.
## 매 핵심
### 매 monetization archetype
- **Cosmetic-only**: 매 Fortnite / Valorant — 매 pay-for-look.
- **Convenience**: 매 Genshin resin refresh — 매 pay-for-time.
- **Power (gacha)**: 매 Honkai / Diablo Immortal — 매 pay-for-stat.
- **Battle pass**: 매 across all archetype — 매 standardize 됨 (2018+).
### 매 player segment
- **Whale** (top 1%, ~50% revenue).
- **Dolphin** (next 10%, ~30%).
- **Minnow** (next ~30%, ~20%).
- **Free** (60%+, 매 0 revenue + 매 retention/ecosystem 의 contribute).
### 매 design lever
- **Pacing wall**: 매 free progression 의 deliberate slow.
- **Premium currency**: 매 dual-currency 의 obfuscate price.
- **Limited offer**: 매 24h flash sale + 매 anchor pricing.
- **Soft / hard pity**: 매 gacha 의 expected-value floor.
## 💻 패턴
### Dual currency (premium / soft)
```typescript
class Wallet {
gems: number = 0; // premium (paid)
coins: number = 0; // soft (earned)
spend(cost: { gems?: number; coins?: number }) {
if ((cost.gems ?? 0) > this.gems) return false;
if ((cost.coins ?? 0) > this.coins) return false;
this.gems -= cost.gems ?? 0;
this.coins -= cost.coins ?? 0;
return true;
}
}
```
### Gacha with soft + hard pity
```typescript
function pull(state: GachaState) {
state.pullsSinceSSR++;
const baseRate = 0.006;
const softFloor = state.pullsSinceSSR >= 75
? baseRate + (state.pullsSinceSSR - 74) * 0.06
: baseRate;
const isSSR = state.pullsSinceSSR >= 90 || Math.random() < softFloor;
if (isSSR) state.pullsSinceSSR = 0;
return { isSSR, pity: state.pullsSinceSSR };
}
```
### Battle pass tier
```typescript
function unlockedRewards(xp: number, hasPremium: boolean, season: Season) {
const tier = tierFromXP(xp, season);
return season.rewards
.slice(0, tier)
.filter(r => hasPremium || r.track === 'free');
}
```
### Time-gated resin
```typescript
function regenResin(state: ResinState, now: number) {
const elapsed = now - state.lastUpdate;
state.value = Math.min(160, state.value + Math.floor(elapsed / 480_000));
state.lastUpdate = now;
}
```
### Daily flash offer (anchor pricing)
```typescript
function todayOffer(userId: string) {
const seg = classify(userId);
return {
sku: 'gem_pack_500',
originalPrice: 9.99,
discountedPrice: seg === 'minnow' ? 1.99 : 4.99,
expiresAt: endOfDay(),
};
}
```
### Spending guardrail (regulatory)
```typescript
async function chargeIAP(userId, amount) {
const monthly = await wallet.monthlySpend(userId);
if (monthly + amount > REGION_CAP[user.region]) {
return { ok: false, reason: 'monthly_cap' };
}
return iap.charge(userId, amount);
}
```
## 매 결정 기준
| 상황 | Approach |
|---|---|
| 매 PvP shooter | 매 cosmetic-only (avoid pay-to-win) |
| 매 gacha RPG | 매 character banner + 매 soft pity 75 / hard 90 |
| 매 strategy / 4X | 매 convenience (speed-up) + 매 cosmetic |
| 매 hyper-casual | 매 ad-based + 매 remove-ads IAP |
**기본값**: 매 BP + 매 cosmetic + 매 1 convenience SKU — 매 PvP 의 trust 의 maintain.
## 🔗 Graph
- 부모: [[Game Monetization]]
- 변형: [[Gacha]]
- 응용: [[원신(Genshin Impact)]] · [[클래시 로얄(Clash Royale)]] · [[알비온 온라인(Albion Online)]]
- Adjacent: [[라이브옵스(LiveOps)]] · [[데이터 기반 밸런싱]]
## 🤖 LLM 활용
**언제**: 매 SKU copy 의 generation / localization, 매 monetization spec 의 review, 매 player segment 의 narrative profile.
**언제 X**: 매 actual pricing decision — 매 elasticity 의 empirical A/B test 의 필수.
## ❌ 안티패턴
- **Pay-to-win in PvP**: 매 trust collapse + 매 esports 의 viability 의 destroy.
- **Hidden gacha rate**: 매 regulatory risk (China, S. Korea, Belgium 의 disclosure mandate).
- **Whale farming**: 매 top 0.1% 의 only target → 매 community erosion.
- **Aggressive FOMO**: 매 24/7 limited offer → 매 burnout / churn.
## 🧪 검증 / 중복
- Verified (Sensor Tower 2026 mobile report, GDC 2024-2025 monetization talks, 한국 게임산업진흥원 자율규제).
- 신뢰도 A.
## 🕓 Changelog
| 날짜 | 변경 |
|---|---|
| 2026-05-08 | Phase 1 |
| 2026-05-10 | Manual cleanup — archetype + segment + gacha/BP pattern |
@@ -0,0 +1,142 @@
---
id: wiki-2026-0508-비디오-게임-산업의-플랫폼-융합-platform-conve
title: 비디오 게임 산업의 플랫폼 융합(Platform Convergence)
category: 10_Wiki/Topics
status: verified
canonical_id: self
aliases: [Platform Convergence, Cross-Platform, 멀티플랫폼]
duplicate_of: none
source_trust_level: A
confidence_score: 0.9
verification_status: applied
tags: [platform, cross-play, cloud-gaming, industry, distribution]
raw_sources: []
last_reinforced: 2026-05-10
github_commit: pending
tech_stack:
language: cpp
framework: unreal
---
# 비디오 게임 산업의 플랫폼 융합(Platform Convergence)
## 매 한 줄
> **"매 console / PC / mobile / cloud 의 boundary 의 erode + 매 single account / single progression 의 unification"**. 매 2010s 후반 의 Fortnite cross-play (2018) 가 catalyst — 매 2026 의 modern: 매 Microsoft Activision-Blizzard 인수 (2023) + 매 Game Pass cloud + 매 mobile-console hybrid (Genshin, COD Mobile) 의 mainstream.
## 매 핵심
### 매 4 convergence axis
- **Cross-play**: 매 input parity / matchmaking pool 의 unify.
- **Cross-progression**: 매 save / inventory / BP 의 cloud-sync.
- **Cross-purchase**: 매 single SKU 의 multi-platform entitlement.
- **Cross-platform commerce**: 매 unified store / wallet (Epic Games Store, Xbox).
### 매 driver
- **Hardware parity**: 매 mobile chip 의 console-class (A18 Pro, Snapdragon 8 Gen 4).
- **Cloud streaming**: 매 GeForce Now / xCloud / PS Cloud — 매 device-agnostic.
- **Engine portability**: 매 Unreal 5.4 / Unity 6 의 1-codebase multi-target.
- **Regulatory pressure**: 매 EU DMA / 매 epic-vs-apple 의 store competition.
### 매 friction point
- **Input asymmetry**: 매 KB+M vs gamepad vs touch — 매 fairness.
- **Platform fee**: 매 30% 의 historical cut + 매 alternative store 의 fragmentation.
- **Monetization rule divergence**: 매 Apple loot-box rule vs 매 Google vs 매 console.
## 💻 패턴
### Cross-play matchmaking with input bucket
```cpp
enum class InputType { Touch, Gamepad, KBM };
struct MatchPool {
InputType type;
std::vector<Player> queue;
};
void enqueue(Player p) {
pools[p.input].queue.push_back(p);
if (p.allowsCrossInput) pools[p.input | CROSS].queue.push_back(p);
}
```
### Cross-progression sync
```cpp
void OnLogin(UserId u, Platform p) {
auto cloud = CloudSave::Fetch(u);
auto local = LocalSave::Load(p);
auto merged = Merge(cloud, local); // last-write-wins per shard
CloudSave::Push(u, merged);
}
```
### Entitlement check (cross-purchase)
```cpp
bool HasItem(UserId u, ItemId i) {
for (auto& p : LinkedPlatforms(u)) {
if (Entitlements::Has(p, u, i)) return true;
}
return false;
}
```
### Cloud render fallback
```cpp
void RenderFrame() {
if (device.gpuTier < kMinTier) {
cloud.StreamFrame(); // GeForce Now style
} else {
local.RenderFrame();
}
}
```
### Platform-specific monetization gate
```cpp
SkuList AvailableSkus(Platform p) {
auto skus = baseSkus;
if (p == Platform::iOS_KR) skus.removeIf(s => s.kind == "lootbox");
if (p == Platform::Web) skus.add(directWebPaymentSkus);
return skus;
}
```
### Build matrix CI
```yaml
matrix:
platform: [windows, ps5, xbox, switch2, ios, android, linux-cloud]
config: [shipping, dev]
steps:
- run: ue5 BuildCookRun -platform=${{ platform }}
```
## 매 결정 기준
| 상황 | Approach |
|---|---|
| 매 PvP competitive | 매 input-bucket 의 enforce + 매 opt-in cross |
| 매 PvE / co-op | 매 full cross-play default |
| 매 mobile-first | 매 cloud progression + 매 touch-optimized UI |
| 매 console exclusive | 매 cross-progression 의 only (no cross-play) |
**기본값**: 매 cross-play (input-bucketed) + 매 cross-progression + 매 cross-purchase (where store policy 의 allow).
## 🔗 Graph
- 변형: [[Cloud Gaming]]
- 응용: [[원신(Genshin Impact)]] · [[Fortnite]]
## 🤖 LLM 활용
**언제**: 매 platform-specific compliance text 의 generation, 매 SKU matrix 의 review, 매 industry trend 의 summarize.
**언제 X**: 매 legal compliance 의 final decision — 매 jurisdiction-specific lawyer 의 review 의 mandatory.
## ❌ 안티패턴
- **Forced cross-input PvP**: 매 KB+M vs touch 의 mix → 매 unfair.
- **Last-write-wins save 의 unconditional**: 매 cloud merge bug → 매 progression loss.
- **Single-platform monetization assumption**: 매 Apple/Google rule 의 ignore → 매 store rejection.
## 🧪 검증 / 중복
- Verified (Newzoo 2026 platform report, Microsoft 10-K 2024, Apple App Store guidelines 2026).
- 신뢰도 A.
## 🕓 Changelog
| 날짜 | 변경 |
|---|---|
| 2026-05-08 | Phase 1 |
| 2026-05-10 | Manual cleanup — convergence axis + driver + 6 patterns |
@@ -0,0 +1,34 @@
---
id: wiki-20260508--ugc--redir
title: 사용자 제작 콘텐츠(UGC)
category: 10_Wiki/Topics
status: duplicate
canonical_id: wiki-2026-0508-user-generated-content
duplicate_of: "[[User Generated Content]]"
aliases: [UGC, User-Generated Content]
source_trust_level: A
confidence_score: 0.9
verification_status: redirected
tags: [duplicate, ugc, game-design, platform]
last_reinforced: 2026-05-10
github_commit: pending
---
# 사용자 제작 콘텐츠(UGC)
> **이 문서는 [[User Generated Content]] 의 중복본입니다.** Canonical 문서로 redirect.
## 핵심 요약
- 매 player 의 create / share / monetize content 의 game platform.
- 매 Roblox / Fortnite UEFN / Minecraft / Dreams 의 representative.
- 매 2026 의 trend: 매 AI-assisted creation tool 의 integration (Roblox Cube, UEFN AI scaffolding).
## 🔗 Graph
- 부모: [[User Generated Content]] (canonical)
- 인접: [[Roblox]] · [[Platform Convergence]]
## 🕓 변경 이력
| 날짜 | 변경 |
|---|---|
| 2026-05-08 | Phase 1 |
| 2026-05-10 | 중복 처리 — canonical 문서로 redirect |
@@ -0,0 +1,33 @@
---
id: wiki-2026-0508-알비온-온라인-albion-online-암시장-시스템
title: 알비온 온라인(Albion Online) 암시장 시스템
category: 10_Wiki/Topics
status: duplicate
canonical_id: albion-online
duplicate_of: "[[Albion Online (Full LootPlayer-Driven Production)|Albion Online]]"
aliases: []
source_trust_level: A
confidence_score: 0.9
verification_status: redirected
tags: [duplicate, mmo, economy, albion]
last_reinforced: 2026-05-10
github_commit: pending
---
# 알비온 온라인(Albion Online) 암시장 시스템
> **이 문서는 [[Albion Online (Full LootPlayer-Driven Production)|Albion Online]] 의 중복본입니다.** Canonical 문서로 redirect.
## 핵심 요약 (specialization aspects)
- 매 Black Market NPC — player crafted gear 의 sink mechanism.
- 매 mob loot drop 의 supply 가 player-crafted item 으로 routed.
## 🔗 Graph
- 부모: [[Albion Online (Full LootPlayer-Driven Production)|Albion Online]] (canonical)
- Adjacent: [[Resource Management]]
## 🕓 변경 이력
| 날짜 | 변경 |
|---|---|
| 2026-05-08 | Phase 1 |
| 2026-05-10 | 중복 처리 — canonical 문서로 redirect |
@@ -0,0 +1,33 @@
---
id: wiki-2026-0508-알비온-온라인-albion-online
title: 알비온 온라인(Albion Online)
category: 10_Wiki/Topics
status: duplicate
canonical_id: albion-online
duplicate_of: "[[Albion Online (Full LootPlayer-Driven Production)|Albion Online]]"
aliases: []
source_trust_level: A
confidence_score: 0.9
verification_status: redirected
tags: [duplicate, mmorpg, sandbox, game]
last_reinforced: 2026-05-10
github_commit: pending
---
# 알비온 온라인(Albion Online)
> **이 문서는 [[Albion Online (Full LootPlayer-Driven Production)|Albion Online]] 의 중복본입니다.** Canonical 문서로 redirect.
## 핵심 요약 (specialization aspects)
- Sandbox Interactive (베를린) 매 cross-platform sandbox MMORPG (2017 출시).
- 매 player-driven economy + full-loot PvP + classless "you are what you wear" 시스템.
- 매 single-shard global server (Americas/EU/Asia regional gateway 통합 2023).
## 🔗 Graph
- 부모: [[Albion Online (Full LootPlayer-Driven Production)|Albion Online]] (canonical)
## 🕓 변경 이력
| 날짜 | 변경 |
|---|---|
| 2026-05-08 | Phase 1 |
| 2026-05-10 | 중복 처리 — canonical 문서로 redirect |
@@ -0,0 +1,145 @@
---
id: wiki-2026-0508-클래시-로얄-clash-royale-의-비용-엘릭서-밸런싱
title: 클래시 로얄(Clash Royale)의 비용-엘릭서 밸런싱
category: 10_Wiki/Topics
status: verified
canonical_id: self
aliases: [Clash Royale Elixir Balance, 엘릭서 밸런스]
duplicate_of: none
source_trust_level: A
confidence_score: 0.9
verification_status: applied
tags: [clash-royale, balancing, elixir, supercell, mobile-pvp, case-study]
raw_sources: []
last_reinforced: 2026-05-10
github_commit: pending
tech_stack:
language: python
framework: simulation
---
# 클래시 로얄(Clash Royale)의 비용-엘릭서 밸런싱
## 매 한 줄
> **"매 elixir cost 1~9 의 single resource 의 design 으로 매 100+ card 의 균형"**. 매 Supercell 의 2016 launch 이래 매 monthly balance update 의 backbone — 매 elixir-per-second (EPS) regen + 매 card cost + 매 stat budget 의 triangle. 매 2026 의 evolution mechanic 의 도입 으로 매 budget 재계산.
## 매 핵심
### 매 elixir economy 의 base
- **Regen rate**: 매 1 elixir / 2.8s (normal) → 매 / 1.4s (double) → 매 / 0.93s (triple, overtime).
- **Cap**: 매 10 elixir 의 hard ceiling — 매 hoarding 의 prevent.
- **Cost band**: 매 1 (Skeletons) ~ 매 9 (Three Musketeers).
### 매 stat budget formula (approx.)
- **HP budget**: 매 cost × ~360 HP (King Tower level 11 baseline).
- **DPS budget**: 매 cost × ~75 DPS.
- **Range / speed / splash** 의 modifier 로 매 ±20~30% 의 adjustment.
### 매 archetype 의 cost distribution
- **Cycle deck**: 매 평균 elixir 2.6~3.0 (Hog Cycle, X-Bow 2.9).
- **Mid-range**: 매 3.4~3.8 (Royal Giant, Lavaloon).
- **Heavy**: 매 4.0+ (Three Musketeers, Mega Knight beatdown).
### 매 positive trade
- **Defender 1 elixir 우위**: 매 ideal interaction.
- **Negative trade 2+ elixir**: 매 punishable mistake.
## 💻 패턴
### Average elixir cost
```python
def avg_cost(deck):
return sum(c.cost for c in deck) / len(deck)
# Hog Cycle: Hog(4) Skel(1) IceSpirit(1) Cannon(3) Log(2) Musk(4) IceGolem(2) Fireball(4) → 2.6
```
### Stat budget audit
```python
def hp_budget_check(card):
expected = card.cost * 360
return abs(card.hp - expected) / expected < 0.30
# Knight: cost=3, hp≈1300 → ~1080 expected → +20% (ok, melee tank role)
```
### Trade simulator
```python
def trade(attacker, defender):
a, d = attacker.copy(), defender.copy()
while a.hp > 0 and d.hp > 0:
d.hp -= a.dps
a.hp -= d.dps
survivor = a if a.hp > 0 else d
return survivor, attacker.cost - defender.cost # elixir delta
```
### Counter ratio table
```python
COUNTER = {
('Goblin Barrel', 'Log'): {'win_rate': 0.95, 'elixir_gain': +1},
('Hog Rider', 'Cannon'): {'win_rate': 0.65, 'elixir_gain': +1},
('Three Musketeers', 'Fireball+Log'): {'win_rate': 0.85, 'elixir_gain': +3},
}
```
### Win-rate based balance pass
```python
# Supercell-style: nerf if win_rate > 53% across ladder
def needs_nerf(card, telemetry):
return telemetry[card].win_rate > 0.53 and telemetry[card].use_rate > 0.05
def needs_buff(card, telemetry):
return telemetry[card].win_rate < 0.47 and telemetry[card].use_rate < 0.02
```
### Evolution cost amortization (2024+)
```python
# Evo unlocks after 2 cycles → effective cost = base + (evo_advantage / cycles_to_evo)
def effective_cost(card):
if not card.has_evolution: return card.cost
return card.cost + (card.evo_power_delta / 2.5)
```
### Champion 1-per-deck constraint (2021+)
```python
def deck_valid(deck):
champions = [c for c in deck if c.is_champion]
return len(champions) <= 1
```
## 매 결정 기준
| 상황 | Approach |
|---|---|
| 매 new card design | 매 stat budget formula → 매 baseline → 매 unique modifier |
| 매 monthly balance | 매 win-rate ±3% 의 threshold + 매 use-rate floor |
| 매 evolution rebalance | 매 cycle-amortized effective cost |
| 매 dominant deck | 매 keystone card 의 -5% HP / damage (small touch) |
**기본값**: 매 win-rate 의 47-53% band 의 maintain + 매 use-rate >2% 의 ensure (otherwise dead card).
## 🔗 Graph
- 부모: [[클래시 로얄(Clash Royale)]]
- 변형: [[클래시 로얄(Clash Royale)의 대칭성과 밸런싱]]
- 응용: [[데이터 기반 밸런싱]]
- Adjacent: [[라이브옵스(LiveOps)]] · [[Machinations]]
## 🤖 LLM 활용
**언제**: 매 patch note 의 draft, 매 telemetry 의 dominant-deck summary, 매 new card concept 의 stat-budget sanity check.
**언제 X**: 매 final balance number — 매 ladder telemetry 의 empirical 의 우월.
## ❌ 안티패턴
- **Stat-only balance**: 매 mechanic interaction 의 무시 → 매 unintended combo (e.g. Sparky + Mega Knight 2017).
- **Use-rate only**: 매 win-rate 의 무시 → 매 strong-but-niche card 의 over-buff.
- **Big-swing nerf**: 매 -20% damage 의 single change → 매 dead card.
- **Evo-blind budget**: 매 evolution power 의 cost 의 amortize 안 함 → 매 P2W perception.
## 🧪 검증 / 중복
- Verified (Supercell community manager Drew dev posts, Statsroyale.com 2024-2026 ladder data, Reddit r/ClashRoyale balance announcements).
- 신뢰도 A.
## 🕓 Changelog
| 날짜 | 변경 |
|---|---|
| 2026-05-08 | Phase 1 |
| 2026-05-10 | Manual cleanup — elixir economy + budget formula + 7 patterns |