尚未检测到更新。GitHub 发布版本后会显示在这里。
个人 GitHub 账号下公开仓库的所有者可以登录并验证所有权,自行管理介绍,无需管理员批准。
登录并生成验证文件,在 30 分钟内将其提交到此仓库的默认分支。其他分支或分叉仓库中的文件无效。然后在下方检查文件,即可无需管理员批准直接管理项目。请保留文件以维持管理权限。
如需登录,将前往登录页面。登录后请回到此处,再次点击所选的验证按钮。
在项目文件夹中运行 /nomorevibe verify,即可验证所有权并自行管理介绍。
一分钟完成验证Structured failure knowledge infrastructure for AI agents — dead ends, workarounds, and error transition graphs.
翻译准备中
取自仓库 README
正在加载完整 README。 以下为已保存的摘录。
Stop AI agents from repeating known failures - in code AND in the real world.
AI assistants reliably fumble two kinds of problems: known-failed code fixes, and
country-specific real-world rules they've never been exposed to in training.
deadends.dev now covers both:查看完整 README ↗Stop AI agents from repeating known failures - in code AND in the real world.
AI assistants reliably fumble two kinds of problems: known-failed code fixes, and country-specific real-world rules they've never been exposed to in training. deadends.dev now covers both:
ModuleNotFoundError, CUDA OOM, CrashLoopBackOff, etc.Why the expansion? Coding dead ends are largely solved by a good LLM. Country-specific friction - Japanese hanko requirements, Schengen 90/180 math, Ramadan business hours, Saudi alcohol ban, Indian beef taboos - is where generic AI advice breaks hardest. The codebase and schema are identical; the env segment just carries a country code.
90% Precision@1 · 0.935 MRR · Data Quality Dashboard
Website: deadends.dev · MCP Server: Smithery · PyPI: deadends-dev · API: /api/v1/index.json Repository: https://github.com/dbwls99706/deadends.dev
| Without deadends.dev | With deadends.dev |
|---|---|
Agent tries sudo pip install → breaks system Python → wastes 3 retries | Agent sees "dead end: sudo pip - fails 70%" → skips it immediately |
| Agent tells user to tip 15% at a Tokyo restaurant | Agent knows tipping is refused in Japan (culture/tipping-refused/jp) |
| Agent drafts a Thai social post referencing King Rama X | Agent stops: Article 112 lèse-majesté risk (legal/lese-majeste-article-112/th) |
| Agent fixes error A, gets confused by error B | Agent knows "A leads to B 78% of the time" → handles both |
| Agent tells unmarried couple to kiss publicly in Dubai | Agent flags UAE public decency law (legal/unmarried-public-affection/ae) |
What makes this different from asking an LLM?
{domain}/{slug}/{env} - env holds the country
code (kr, jp, us, de...) so the same taboo can be answered
differently for different jurisdictions.report_outcome로 빠르게 보완합니다.pip install deadends-dev
deadends "CUDA error: out of memory"
Add to ~/.claude/claude_desktop_config.json:
{
"mcpServers": {
"deadend": {
"command": "python",
"args": ["-m", "mcp.server"],
"cwd": "/path/to/deadends.dev"
}
}
}
Or install via Smithery (no local setup):
npx -y @smithery/cli@latest install deadend/deadends-dev --client claude
Unauthorized 빠른 해결 가이드 (사람용)deadend: calling "initialize": sending "initialize": Unauthorized 에러가 보이면 아래를 순서대로 그대로 실행/확인하세요.
# 로컬 서버 확인 (정상 시 툴 목록이 출력됨)
python -m mcp.server --help
cwd는 실제 경로여야 함)cat ~/.claude/claude_desktop_config.json
cd /path/to/deadends.dev
python -m mcp.server
npx -y @smithery/cli@latest uninstall deadend/deadends-dev --client claude
npx -y @smithery/cli@latest install deadend/deadends-dev --client claude
# macOS 예시
osascript -e 'quit app "Claude"'
open -a Claude
팁:
Unauthorized는 보통 잘못된cwd, 중복 서버 설정(로컬+원격 동시), 또는 만료된 인증 상태에서 발생합니다.
Add as a remote MCP server - no authentication required:
{
"mcpServers": {
"deadend": {
"serverUrl": "https://deadends.dev/mcp",
"type": "http"
}
}
}
Note: Antigravity uses
serverUrl(noturl). If you getUnauthorized, remove any existing deadend entries from the MCP Store and re-add manually using the config above. See the Antigravity MCP auth guide for general troubleshooting.
from generator.lookup import lookup, batch_lookup, search
# Single error lookup
result = lookup("ModuleNotFoundError: No module named 'torch'")
# What NOT to try (saves tokens and time)
for d in result["dead_ends"]:
print(f"AVOID: {d['action']} - fails {int(d['fail_rate']*100)}%")
# What actually works
for w in result["workarounds"]:
print(f"TRY: {w['action']} - works {int(w['success_rate']*100)}%")
# Batch lookup (multiple errors at once)
results = batch_lookup(["error1", "error2", "error3"])
## ModuleNotFoundError: No module named 'X' (Python 3.11+)
Resolvable: true | Fix rate: 0.88
### Dead Ends (DO NOT TRY):
- pip install X with system Python (fails 70%): venv not activated
### Workarounds (TRY THESE):
- Create venv, activate, then pip install (works 95%)
- Use python -m pip install instead of bare pip (works 90%)
| Tool | Description |
|---|---|
lookup_error | Match an error message against 2000+ known patterns |
get_error_detail | Full canon by ID |
list_error_domains | All 54 domains with counts |
search_errors | TF-IDF keyword search across all domains |
list_errors_by_domain | All errors in a domain |
list_errors_by_country | All country-scoped dead ends for an ISO alpha-2 code |
get_country_summary | Country-level summary (entries, fix rate, domain mix) |
batch_lookup | Look up multiple errors at once (max 10) |
get_domain_stats | Domain quality metrics and confidence levels |
get_error_chain | Traverse the error transition graph |
report_outcome | Report whether a workaround worked (feeds back into success rates) |
| Endpoint | Description |
|---|---|
/api/v1/match.json | Lightweight regex matching (fits in context window) |
/api/v1/index.json | Full error index with metadata (entries include country field for country canons) |
/api/v1/{id}.json | Individual ErrorCanon |
/api/v1/countries.json | Country index with counts and update dates |
/api/v1/country/{cc}.json | Per-country aggregate (one call returns all entries for that country) |
/api/v1/openapi.json | OpenAPI 3.1 spec |
/api/v1/stats.json | Dataset quality metrics by domain |
/api/v1/errors.ndjson | NDJSON streaming |
/llms.txt | LLM-optimized listing (llmstxt.org) |
/dashboard/ | Data quality dashboard |
| Domain | Errors | Examples |
|---|---|---|
| Python | 88 | ModuleNotFoundError, TypeError, KeyError, MemoryError, RecursionError |
| Node | 70 | ERR_MODULE_NOT_FOUND, EACCES, EADDRINUSE, heap OOM, ERR_REQUIRE_ESM |
| Docker | 65 | no space left, exec format error, bind address in use, healthcheck |
| Kubernetes | 61 | CrashLoopBackOff, ImagePullBackOff, OOMKilled, RBAC forbidden, HPA |
| Git | 60 | failed to push, merge conflicts, detached HEAD, stash apply, tags |
| CUDA | 57 | OOM, device-side assert, NCCL, cuDNN, tensor device mismatch |
| Go | 54 | nil pointer, unused import, interface conversion, slice out of range |
| Java | 54 | NullPointerException, ClassNotFound, OutOfMemoryError, connection pool |
| Database | 52 | deadlock, connection pool, slow query, replication lag |
| AWS | 51 | AccessDenied, S3 NoSuchBucket, Lambda timeout, CloudFormation rollback |
| .NET | 50 | NullReferenceException, LINQ translation, DI circular, EF concurrency |
| ROS 2 | 50 | node spin, launch error, QoS mismatch, tf2 transform |
| TypeScript | 49 | TS2307, TS2322, TS2345, TS2532, TS7053 |
| Rust | 48 | E0382 borrow, E0308 mismatch, E0277 trait, E0106 lifetime |
| + 37 more domains | 40+ each | CI/CD, PHP, Terraform, Networking, Next.js, React, pip, Android, ... |
| Domain | Covers | Example dead ends |
|---|---|---|
visa | Pre-travel authorization, overstay, re-entry bans | ESTA 90-day rule (US), K-ETA (KR), ETIAS/EES (Schengen), Schengen 90/180 (DE) |
banking | Account opening, KYC, foreigner rules | ARC required (KR), residence card 6-month (JP), SSN/ITIN (US) |
emergency | Correct emergency numbers, transit | 112 not 911 (DE), 999/101/111 (UK) |
medical | Insurance, Rx import, coverage | Shaho/Kokuho (JP), NHIS 6-month (KR), EHIC ineligibility (DE), Adderall import ban (JP) |
legal | Criminal liability, contract norms | §86a Nazi symbols (DE), Article 112 (TH), Article 301 (TR), alcohol ban (SA), key money (JP) |
culture | Etiquette, taboos, social norms | Chopsticks in rice (JP), clock gifts (CN), Tiananmen silence, red ink names (KR), bonjour (FR) |
food-safety | Water, pathogens, religious taboos | Tap water (MX), fugu license (JP), beef in India, pork in Indonesia |
communication | Language register, terminology | Honorifics (KR), American War framing (VN), 'gringo' (MX), Cantonese vs Mandarin (HK) |
safety | Driving, public-safety norms | Left-side drive (JP), Autobahn rules (DE), horn-language (IN) |
All metrics are publicly available on the Data Quality Dashboard:
report_outcome updates fix success rates from real usagereview_status: human_reviewed), no LLM bulk generationkr · jp · us · de · uk · fr · it · es · nl · ch · pt ·
ie · at · be · se · no · dk · fi · pl · gr · cn · hk ·
tw · th · in · vn · id · sg · ph · my · pk · bd · sa ·
ae · tr · il · ru · br · mx · ar · cl · co · pe · au ·
nz · eg · ma · et · ng · ke · za · ca
See /country/ hub or /api/v1/countries.json for the authoritative list with counts.
See docs/country-canon-guide.md for the
authoring workflow, sourcing requirements, and confidence calibration.
See CONTRIBUTING.md for full details.
GitHub 자동 수집 운영안: docs/GITHUB_DATA_COLLECTION_STRATEGY.md
자동 수집 주기: 6시간마다(하루 4회), 기본 품질 필터: min_score=2
수집 데이터는 후보이며, 최종 반영은 maintainer 검수 후 진행
Use report_outcome via MCP after trying a workaround
pip install -e ".[dev]"
python -m generator.pipeline # Full pipeline
python -m generator.build_site # Build static site
python -m generator.validate # Validate data + site
python -m pytest tests/ -v # Run tests
ruff check generator/ tests/ # Lint
python benchmarks/run_benchmark.py # Run benchmarks
아래 명령은 템플릿에 핵심 SEO 신호가 있는지 빠르게 점검합니다.
python - <<'PY'
from pathlib import Path
files=[
'generator/templates/index.html',
'generator/templates/domain.html',
'generator/templates/error_summary.html',
'generator/templates/page.html',
'generator/templates/search.html',
'generator/templates/dashboard.html',
]
required=[
'<title',
'meta name="description"',
'meta name="robots"',
'link rel="canonical"',
'meta property="og:title"',
'meta name="twitter:card"',
]
for f in files:
txt=Path(f).read_text()
missing=[r for r in required if r not in txt]
print(f'✅ {f}' if not missing else f'❌ {f} missing: {", ".join(missing)}')
PY
실제 빌드 결과물까지 확인하려면:
python -m generator.build_site
python -m http.server -d public 8080
그 후 브라우저에서 아래를 점검:
view-source:http://localhost:8080/search/view-source:http://localhost:8080/dashboard/<priority> weighted by page strength (country/high-evidence
pages ranked higher); JSON-LD omits empty datesvisa, banking, emergency (plus extended use of
existing legal, culture, medical, communication, food-safety,
safety domains with country env segment)/country/{cc}/ (e.g.
/country/jp/)generator.country_canon_template helper for authoring new country
canons with validated env-segment + audience + jurisdiction metadatadocs/country-canon-guide.md: sourcing standards (primary > embassy
reputable media), confidence calibration, slug/regex conventions
/dashboard/ - transparent metricsreport_outcome → aggregated stats → fix_success_rate updatesreport_outcome)page_url field added to index.json, errors.ndjson, and all SDK/MCP responsesMIT (code) · CC BY 4.0 (data)
docs/SEO_OPERATIONS_GUIDE.mddocs/PYPI_RELEASE_MANUAL.md