ð³ Yggdrasil
æ°ãã AI ã»ãã·ã§ã³ã®ãã³ã«ãããžã§ã¯ãã説æãçŽãã®ã¯ãããçµããã«ããŸãããã
Claude CodeãCodexããããã MCP ãšãŒãžã§ã³ãã®ããã®ããã£ãã²ãšã€ã®ããŒã«ã«ã¡ã¢ãª â ã»ãã·ã§ã³ã»ããŒã«ã»ãããžã§ã¯ãããŸããã§å
±æãããŸããäŸåé¢ä¿ãŒããããŒã¿ãããªãã®ãã·ã³ã®å€ã«åºãããšã¯ãããŸããã
ã€ã³ã¹ããŒã« ·
ä»çµã¿ ·
æ°åã§èŠã ·
æ¯èŒ ·
FAQ
ä»ã®èšèªã§èªã: English · Ð ÑÑÑкОй · ç®äœäžæ · Español · Français · Deutsch
---
æ°ãããã£ãããå§ãããã³ã«ãAI ã¯ãã¹ãŠãå¿ããŠããŸãããããžã§ã¯ããæ±ºå®äºé
ããããã©ããã â æ¯åãã©ã®ããŒã«ã§ã â 説æãçŽãããšã«ãªããŸãã**Yggdrasil ã¯ãã©ããªãšãŒãžã§ã³ãã§ãæ¥ç¶ã§ãããåžžæçšŒåã®å°ããªã¡ã¢ãªã§ãã** ã©ã®ãããžã§ã¯ãã§ããã©ã® AI ã§ããæ°ããã»ãã·ã§ã³ãéãã°ãããªããäœã決ããäœãå£ããäœããŸã æªè§£æ±ºãªã®ãããã§ã«ææ¡ããŠããŸãã
```text
$ cd ~/projects/checkout-api && claude # a brand-new session
ð³ Yggdrasil (injected automatically at session start)
⢠[project_status] payments refactor: idempotency keys added; open: e2e tests
⢠[lesson] webhook 401 â signing secret rotated; update env + redeploy
> "have I solved a flaky websocket reconnect anywhere before?"
ð³ recall â found in project `realtime-dash`:
refresh the token *before* opening the socket, then retry with capped backoff.
```
ãæšæ¥ãã£ãããšãæãåºãããŠãã ãããã¯äžèŠã§ããæåããããã«ãããŸãã
## ð ã€ã³ã¹ããŒã«
**Claude Code** ã®äžã§ãã³ãã³ã㯠2 ã€ã ãïŒãã©ã°ã€ã³ã¯ [`uv`](https://docs.astral.sh/uv/) çµç±ã§èµ·åããŸã):
```text
/plugin marketplace add VonderVuflya/Yggdrasil
/plugin install yggdrasil
```
ãšã³ãžã³ã¯ååå©çšæã«é
å»¶èµ·åããç¬èªã®ããŒã«ã«ããŒã¯ã³ãçæããŸã â API ããŒäžèŠãã¯ã©ãŠãäžèŠãèšå®ãããã®ã¯äœããããŸãããCodex ãš Cursor ãåãæµãã§ãã
ãã®ä»ãã¹ãŠã®çµè·¯ â CLI ããŒã¢ã³ãHomebrewãnpmãClaude DesktopããœãŒã¹ããâŠ
| ãã¹ã / ããŒã« | ã³ãã³ã |
| --- | --- |
| **uvx** _(æšå¥š CLI)_ | `uvx --from yggdrasil-memory ygg install` |
| **npm / npx** | `npx yggdrasil-memory install` |
| **pipx** | `pipx install yggdrasil-memory && ygg install` |
| **pip** | `pip install yggdrasil-memory && ygg install` |
| **Homebrew** _(macOS)_ | `brew install VonderVuflya/tap/yggdrasil && ygg install` |
| **Claude Desktop** _(ã¢ããª)_ | [ææ°ãªãªãŒã¹](https://github.com/VonderVuflya/Yggdrasil/releases/latest) ãã `.mcpb` ã Settings â Extensions ã«ãã©ãã°ããããŒã¯ã³ïŒ`ygg token`ïŒã貌ãä»ããŸã â ããã§ãã¹ã¯ãããã¢ããªã¯ CLI ãšãŒãžã§ã³ããšåãã¡ã¢ãªãå
±æããŸãïŒ[ã¬ã€ã](../packaging/mcpb/README.md)) |
| **ãœãŒã¹ãã** | `uvx --from git+https://github.com/VonderVuflya/yggdrasil.git ygg install` |
`ygg install` ã¯äžåºŠããã®ã¬ã€ãä»ãã»ããã¢ããã§ããåžžæçšŒåã®ããã¯ã°ã©ãŠã³ããµãŒãã¹ãã€ã³ã¹ããŒã«ããèŠã€ãã£ããã¹ãŠã®ãšãŒãžã§ã³ããã¹ã â **Claude CodeãCodexãOpenCode** â ã« MCP ããŒã«ãç»é²ããããŒããŠã§ã¢ãèš±ãã°ãªãã·ã§ã³ã®ããŒã«ã«ã¢ãã«ãæšå¥šããŸãïŒ`none` ãéžã¹ã°èšå®äžèŠã®ãŸãŸã«ã§ããŸã)ã
OpenCode â èšå®ã¯äžèŠ
ãŸã [OpenCode](https://opencode.ai) ãã€ã³ã¹ããŒã«ããæ¬¡ã« `ygg install` ãå®è¡ããŠãã ããïŒYggdrasil ããã§ã«ã»ããã¢ããæžã¿ãªã `ygg redeploy`) â ãšã³ããªã¯èªåçæãããæ¢åã® `opencode.json` ã«ããŒãžãããŸãã確èªã¯:
```bash
opencode mcp list # -> â yggdrasil connected
```
Yggdrasil ã®*ããšã«* OpenCode ãã€ã³ã¹ããŒã«ããŸããã? `ygg install` ãåå®è¡ããã ãã§æ§ããŸããã
èªåã§ææžããããå Žåã¯æ³šæããŠãã ãã â OpenCode ã®ã¹ããŒã㯠Claude ã®ãã®ãš 4 ãæåæã«ç°ãªããŸãããµãŒããŒã¯ `mcpServers` ã§ã¯ãªã `mcp` ã®äžã«çœ®ããã`type` ãå¿
é ã§ã`command` 㯠`command` + `args` ã§ã¯ãªãåäžã®é
åã«ãªããç°å¢å€æ°ã¯ `env` ã§ã¯ãªã `environment` ã§ãããã®ãã Claude çšã®ã¹ããããã¯ãã®ãŸãŸç§»æ€ã§ããŸãã:
```jsonc
// ~/.config/opencode/opencode.json
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"yggdrasil": {
"type": "local",
"command": ["/path/to/python3", "~/.yggdrasil/scripts/ygg_mcp_server.py"],
"enabled": true,
"environment": { "YGG_ENGINE_URL": "http://127.0.0.1:42069" }
}
}
}
```
ããŒã¯ã³ã¯èšå®ãã¡ã€ã«ã«ã¯å
¥ããŸãã â ãšã³ãžã³ã 0600 ã® `~/.yggdrasil/token` ãçŽæ¥èªã¿èŸŒã¿ãŸããããŒã«ã衚瀺ãããªãå Žå㯠`ygg doctor` ãå®è¡ããŠãã ããã
ãããã Claude ãµãŒãã§ã¹åãã« [`yggdrasil-memory` skill](../skills/) ããããŸããMCP ã¯*ããŒã«*ãæ¥ç¶ããskill ã¯ãšãŒãžã§ã³ãã«*ãã€äœ¿ãã*ãæããŸããæè¯ã®æåãåŸãã«ã¯äž¡æ¹ã䜿ã£ãŠãã ããã
äœãã€ã³ã¹ããŒã«ãããäœ¿ãæšãŠã® DB ã§è©Šãã«ã¯: `uvx --from yggdrasil-memory ygg serve --reset --db /tmp/ygg.sqlite`ã
ããšã¯äœæ¥ããã ãã§ãããšãŒãžã§ã³ãã« *ããã®ãããžã§ã¯ãã«ã€ããŠæ±ºããããšãæãåºããŠã* ãšå°ãããã*ããã®æ±ºå®ãèšæ¶ããŠã* ãšäŒãããããã° â æ¬¡ã®ã»ãã·ã§ã³ã§ã¯ããããã«ãããŸããã€ã³ã¹ããŒã«ã®ç¢ºèªã¯ãã€ã§ã `ygg doctor` ã§ã§ããŸãã
**ãã§ã«å±¥æŽããããŸãã?** æ¢åã® Claude Code + Codex ã®ãã©ã³ã¹ã¯ãªãããObsidian vaultã`CLAUDE.md` ãªããžããªããã¡ã¢ãªãã·ãŒãã§ããŸã â ãã¹ãŠããŒã«ã«ã§èžçãããŸã:
```bash
ygg seed --dry-run # see what it would import; drop the flag to distill for real
```
**ä»ã®ã¡ã¢ãªããŒã«ããä¹ãæããŸãã?** `ygg import --from mcp-memory --path memory.json` ã§ããã®ã¹ãã¢å
šäœã Yggdrasil ã«åã蟌ããŸãïŒéè€æé€ã»ã·ãŒã¯ã¬ããä¿è·ã€ãïŒâ ãã®ããšã¯åé€ããŠããŸã£ãŠæ§ããŸããã
## ãªã Yggdrasil ãªã®ã
- ð§ **æ°žç¶ãã** â æ±ºå®ã»æèšã»ãããžã§ã¯ãã®ç¶æ³ãã»ãã·ã§ã³ããŸããã§æ®ããŸãã
- ð **ã©ã®ããŒã«ã§ããé è³ã¯ã²ãšã€** â Claude CodeãCodexãOpenCodeããããã MCP ãã¹ããåãã¡ã¢ãªãå
±æããŸãã
- ð **ãããžã§ã¯ã暪æã®æ³èµ·** â *ãããã¯ãããžã§ã¯ã B ã§ãã£ãããšã«äŒŒãŠããŸã â åå©çšããŸãã?ã*
- ð§¹ **ãã£ããã£ã§ã¯ãªããå³éž** â ãšãŒãžã§ã³ãã¯æ¬åœã«éèŠãªæ°å°ãªããã®ã ããä¿åããŸããã¬ããã³ã¹ãéè€æé€ãšã¢ãŒã«ã€ããè¡ããåé€ã¯æ±ºããŠããŸããã
- ð± **èªå·±ã¡ã³ããã³ã¹** *ïŒãªããã€ã³)* â å°ããªããŒã«ã«ã¢ãã«ãããã¯ã°ã©ãŠã³ãã§ã¡ã¢ãªãçµ±åããŸããAPI ããŒã¯ã³ã¯ãŒãã
- 𪪠**ã©ãã§ãåãã¢ã€ãã³ãã£ãã£** â ãªãã·ã§ã³ã®ååãšäººæ Œããã¹ãŠã®ãšãŒãžã§ã³ããåŒãç¶ããClaude Code ãš Codex ãåãã¢ã·ã¹ã¿ã³ãã®ããã«æããããŸãã
- ð **100% ããŒã«ã«** â ããªãã®ã¡ã¢ãªã¯ããªãã®ãã·ã³ã«çœ®ãããŸããã¯ã©ãŠããªããã¢ã«ãŠã³ãäžèŠããã¬ã¡ããªãªãã
## ð§ ä»çµã¿
Yggdrasil 㯠**ã¡ã¢ãª + ããŒã«** ã§ã â *ç¥èœ*ã¯ããªãã® LLM ãæ
ããŸããYggdrasil ã¯ãé©åãªã¡ã¢ãªãé©åãªãšãŒãžã§ã³ãã®åã«é©åãªã¿ã€ãã³ã°ã§å±ããããšã ããè¡ããŸãã
- ðïž **åžžæçšŒåã®ããŒã¢ã³** â ãšãŒãžã§ã³ãã MCP ããŒã«ïŒ`ygg_search`ã`ygg_recall`ã`ygg_remember` âŠïŒã§æ¥ç¶ããå°ããªããŒã«ã«ãµãŒãã¹ïŒRAM çŽ 21 MB)ã
- ðª **ããã¯** â ã»ãã·ã§ã³éå§æã«ã¢ã€ãã³ãã£ãã£ã»ãããžã§ã¯ãã®ç¶æ³ã»æªè§£æ±ºã®ãã©ããŒã¢ãããèªå泚å
¥ããŸãïŒçŽ 300 ããŒã¯ã³)ããªãã·ã§ã³ã®ããã³ããããšã®ããã¯ã¯ã*ãªã¯ãšã¹ãããš*ã«é¢é£ããã¡ã¢ãªãèªåçã«æ³èµ·ããŸãã
- ð **ã©ã³ãã³ã°** â ãã³çããããã¡ã¢ãªãé »ç¹ã«æ³èµ·ãããã¡ã¢ãªãæåã«è¡šç€ºãããŸãã
- ð§¹ **ã¬ããã³ã¹** â éè€ãççŸã¯ã¬ãã¥ãŒåŸ
ã¡ã®ãã¥ãŒã«å
¥ãã倿Žã¯éç Žå£çã§ãïŒã¢ãŒã«ã€ãã®ã¿ãåé€ã¯ããŸãã)ã
- ð **Obsidian** â ãã¹ãŠã®ã¡ã¢ãªã¯ãèªãã»ç·šéããã»grep ãããã§ãããã¬ãŒã³ãª Markdown ããŒãã§ããããŸãã
## ðïž ã¡ã¢ãªã®ãã£ã¢ â æ¢å®ã§ã¯èšå®äžèŠ
Yggdrasil ã¯ç®±ããåºããŠããã**äŸåãŒãã® SQLite + FTS5** ã§åäœããŸã â 峿ã®ããŒã¯ãŒãæ€çŽ¢ãã¢ãã«äžèŠãããŠã³ããŒããããã®ããããŸããã[Ollama](https://ollama.com) çµç±ã®ãªãã·ã§ã³ã®**ããŒã«ã«**ã¢ãã«ã§ãç¬ç«ãã 2 ã€ã®ãã£ã¢ã远å ã§ããŸã:
| ãã£ã¢ | 远å ãããã® | åŸããããã® |
| --- | --- | --- |
| **0 · æ¢å®** | äœãäžèŠ â SQLite + FTS5 | ããŒã¯ãŒãæ€çŽ¢ãäŸåãŒãã峿 â recall@1 = **0.77** |
| **1 · ã»ãã³ãã£ãã¯** | **åã蟌ã¿**ã¢ãã«ïŒ`all-minilm` 45 MB · `paraphrase-multilingual` ~560 MB) | **æå³**ã«ãããèšèªããŸããã æ€çŽ¢ â recall@1 = **0.94**ãrecall@3 **1.00** |
| **2 · èªå·±ã¡ã³ããã³ã¹** | å°ã㪠**LLM**ïŒ`qwen2.5:1.5b` ~1 GB) | ããã¯ã°ã©ãŠã³ãã§ã®ã¡ã¢ãªã®éè€æé€/çµ±åïŒææ¡ã®ã¿) |
Ollama ã¯ãã¯ãã«ã®*èšç®*ãšããã¯ã°ã©ãŠã³ãã¢ãã«ã®å®è¡ã ããè¡ããŸã â ãã¹ãŠã®ã¡ã¢ãªãšãã¯ãã«ã¯åãããŒã«ã«ã® SQLite ã«çœ®ããããŸãŸã§ãã`ygg install` ã¯ããŒããŠã§ã¢ãæ€åºããŠé©åããã¢ãã«ãæšå¥šããŸãïŒ`ygg recommend` ã§å
šã«ã¿ãã°ã衚瀺ã§ããŸã)ã
ã¢ãã«ã®å
šã¡ãã¥ãŒ
**åã蟌ã¿ïŒã»ãã³ãã£ãã¯æ€çŽ¢):**
| ã¢ãã« | ãµã€ãº | é©ããçšé |
| --- | --- | --- |
| `all-minilm` | 45 MB | è±èªã極å°ã§é«é |
| `nomic-embed-text` | 274 MB | è±èªãããé«å質ïŒ768d) |
| `mxbai-embed-large` | 670 MB | è±èªãé«å質ïŒ1024d) |
| `paraphrase-multilingual` | ~560 MB | å€èšèªïŒEN/RU + 50 èšèªã768d) |
| `bge-m3` | 1.2 GB | å€èšèªãæé«å質ïŒããéã) |
**åã蟌ã¿ããã¯ãšã³ã** â æ¢å®ã¯ Ollama ã§ãã代ããã« OpenAI äºæã®
`/v1/embeddings` ãµãŒããŒïŒllama.cpp ã® `llama-server --embeddings`ã
OpenRouterãLM StudioãvLLMïŒã䜿ãã«ã¯ã`embed_backend` ãèšå®ããŸã:
```bash
# local llama.cpp â no key needed
ygg config set embed_backend openai
ygg config set embed_url http://127.0.0.1:8080/v1
ygg config set embed_model bge-small-en-v1.5
ygg redeploy
# OpenRouter â free embeddings, no GPU needed
ygg config set embed_backend openai
ygg config set embed_url https://openrouter.ai/api/v1
ygg config set embed_model nvidia/llama-nemotron-embed-vl-1b-v2:free
ygg config set embed_api_key sk-or-... # or export YGG_EMBED_API_KEY
ygg redeploy
```
ããŒã¯ `config.json` ã§ã¯ãªã `~/.yggdrasil/embed_api_key`ïŒ0600ïŒã«ä¿åããã
ããŒã¢ã³ã«ã¯**ãã¡ã€ã«ãã¹**ãšããŠæž¡ãããŸã â ãã®ãã `ps`ãlaunchd ã® plistã
systemd ã®ãŠãããã®ã©ãã«ãçŸããŸããã`ygg config list` ã¯ããŒããã¹ã¯ããŸãã
åæ ãããã㯠`ygg doctor` ã§ç¢ºèªã§ããŸã â dense ãããªãã®ã¢ãã«åã瀺ãã¯ãã§ã:
```
â dense active (nvidia/llama-nemotron-embed-vl-1b-v2:free)
```
LM Studio ã OpenRouter ãæåã§æ¥ç¶ããå Žåã®æ³šæç¹ïŒURL ã® 2 ã€ã®åœ¢åŒãã¢ãã« IDãJIT ããŒããæšè«ããŒãšããããžã§ãã³ã°ããŒã®éãããã©ã€ãã·ãŒãã£ã«ã¿ãŒïŒã¯ [docs/model-backends.md](../docs/model-backends.md) ã«ãããŸãã
å質ãš*ãã©ã€ãã·ãŒ*ã®äž¡æ¹ã§ãããŒã«ã«ã®ãŸãŸãäŸç¶ãšããŠåããŸã: ã¡ã¢ãª 232 ä»¶ã»ã¯ãšãª 110 ä»¶ã®
ã³ãŒãã¹ã§ãããŒã«ã«ã® `paraphrase-multilingual` 㯠recall@1 **0.964** ãèšé²ããç¡æã®ãã¹ãåã¢ãã«ã®
**0.946** ãäžåããŸã â ãããã¡ã¢ãªã¯ãã·ã³ã®å€ã«åºãŸããããã¹ãåããã¯ãšã³ãã¯ã粟床ãè¿œãæ±ãã
ããã§ã¯ãªãããã·ã³ã Ollama ãåãããªããšãã®éžæè¢ãšããŠäœ¿ã£ãŠãã ããã
ãã®ããŒã¿ã§ã¯ãã¯ãã«ã倧ããããŠã粟床ã¯äžãããŸãã â åãã³ãŒãã¹ã§ `mxbai-embed-large`ïŒ1024dïŒã¯
0.809ã`nomic-embed-text`ïŒ768dïŒã¯ 0.818 ã§ããã®å·®ã¯ä¿¡é Œåºéã«ãã£ãœãåãŸã£ãŠããŸããŸããå®éã«æ°åã
åããã®ã¯ãã¢ãã«ã*ããªãã®*èšèªã«å¯Ÿå¿ããŠãããã©ããã§ã: ã©ã¡ããè±èªå°çšã§ãèšèªããŸããã¯ãšãªã§ã¯
0.40â0.45 ãŸã§èœã¡èŸŒã¿ãŸãããå€èšèªå¯Ÿå¿ã®æ¢å®ã¢ãã«ã¯ 0.95 ãç¶æããŸãã
**ããã¯ã°ã©ãŠã³ãçµ±åïŒå°å LLM):**
| ã¢ãã« | ãµã€ãº | é©ããçšé |
| --- | --- | --- |
| `qwen2.5:0.5b` | ~400 MB | 極å°ãCPU ã§é«é |
| `qwen2.5:1.5b` | ~1 GB | CPU ã§ã®æé©ãªæ¢å® |
| `llama3.2:3b` | ~2 GB | ããé«å質ãCPU ã§ã¯äœé |
ãšã³ãžã³èªäœã¯å·®ãæ¿ãå¯èœã§ã â `MemoryBackend` å¥çŽãæºãããµãŒãã¹ãªãã©ãã§ããã®ãŸãŸçµã¿èŸŒããŸãïŒ`YGG_ENGINE_URL`)ã[docs/backend-boundary.md](../docs/backend-boundary.md) ãåç
§ããŠãã ããã
## ð è€æ°ã®ãã·ã³ã§äžã€ã®ã¡ã¢ãª
ããŒã PC ãšé«æ§èœãªãã·ã³ã§äœæ¥ããŠããŸãã? äžåºŠãªã³ã¯ããã°ãããäºã€ã®é è³ã§ã¯ãªããªããŸãã
```text
# on the laptop
$ ygg link
ð pairing code valid 5 minutes · single use
ygg://192.168.3.152:42070/a4e0df489737#FOucjgJ1FrUBâŠ
# on the other machine â paste it
$ ygg link ygg://192.168.3.152:42070/a4e0df489737#FOucjgJ1FrUBâŠ
â linked with laptop https://192.168.3.152:42070
â laptop: fetch 84 · push 12 · delete 0 · tombstones 0
```
ããã§å®äºã§ãã以åŸãäžæ¹ã®ãã·ã³ã«æžãããã¡ã¢ãªã¯çŽ 1 ç§ã§ããäžæ¹ã«å±ãã`ygg delete` ã¯**äž¡æ¹**ããåé€ããŸããããäžæ¹ãç ã£ãŠããŠããã©ã¡ãã®ãã·ã³ãèªåã®ããŒã«ã«ã³ããŒã§åãç¶ããŸã â èªã¿åãããããã¯ãŒã¯ãåŸ
ã€ããšã¯ãããŸããããã·ã³ãæ»ã£ãŠãããšãäž¡è
ã¯æçŽãæ¯èŒããåãããŒããåãèªåã§ä¿®åŸ©ããŸããäœããå®è¡ããå¿
èŠã¯ãããŸããã
**ããŒãªã³ã°ã¯ããŸããã** Yggdrasil 㯠1 æ¥ã«æ°åããåŒã³åºãããªããããæžã蟌ã¿ã¯çºçæã«ããã·ã¥ãããåæã¯èªã¿åãã«ãã£ãŠèµ·åãããŸããã¢ã€ãã«ç¶æ
ã®ãã·ã³ã¯äœãéä¿¡ããŸããã
**ããã¯äœã§ã¯ãªãã:** ã¯ã©ãŠãã§ã¯ãããŸãããäžç¶ãµãŒããŒãã¢ã«ãŠã³ãããçµè·¯äžã«ç§ãã¡ã®ãµãŒããŒããããŸããããã·ã³å士ã¯ããªãèªèº«ã®ãããã¯ãŒã¯äžã§çŽæ¥éä¿¡ããäºãã®èšŒææžããã³çããã TLS ã§æ¥ç¶ããŸããéµãã¢ã¯ããã® 2 å°ã®ãã·ã³ã«ããååšããŸããããã¢ãªã³ã°ã³ãŒãèªäœãçºè¡å
ãã·ã³ã®èšŒææžãæå®ããŠãããããæåã®æ¥ç¶ã§ããæ€èšŒãããŸã â å¥ã®äœãããããã¯ãŒã¯äžã§ä»£ããã«å¿çãããšãã³ãŒãã®ç§å¯ãéãããåã«æåŠãããŸãã`ygg link` ãå®è¡ãããŸã§ã¯ãããã¯ãŒã¯ããŒããäžåãã€ã³ãããŸãã â Yggdrasil ãã€ã³ã¹ããŒã«ããŠãããããŸã§ã©ããã«ãŒãããã¯ã«ãšã©ãŸããŸãã
```text
ygg link --list # what's linked, and whether writes are actually arriving
ygg link --sync # reconcile now, don't wait for a read
ygg unlink # revoke that machine's key here
```
詳现: äœãéãããäœãæ®ããã〠ygg sync ã䜿ãã
**éããããã®:** ã¡ã¢ãªããããã®é¢ä¿ããããŠåé€ã**æ®ããã®:** ããªããã¡ã¢ãªãéããåæ°ãšãã©ã®ãã·ã³ã§èªãã ã â ããã¯ç¥èã§ã¯ãªãããŒã«ã«ã®ã©ã³ãã³ã°ã§ããåã蟌ã¿ãã¯ãã«ãéåžžã¯ããŒã«ã«ã«æ®ããŸãããäŸå€ãäžã€ãããŸã: äž¡æ¹ã®ãã·ã³ãåãåã蟌ã¿ã¢ãã«ãå®è¡ããŠããå Žåããã¯ãã«ãäžç·ã«éããããããèšç®çšãã·ã³ãããŒã PC ã®åãŸã§åã蟌ã¿ãè¡ããããŒã PC ã¯äžåºŠãã¢ãã«ãåãããã«æžã¿ãŸãã
**æ°ããç·šéãåã¡ãŸãã** äºå°ãéä¿¡ããåã«ãäž¡æ¹ã®ãã·ã³ã§åãã¡ã¢ãªãç·šéããå Žåãããæ°ããç·šéãäž¡æ¹ã«æ®ããŸãïŒçãèšæ£ã§ãã£ãŠãåãã§ãïŒã
**åé€ãåã¡ãŸãã** äžæ¹ã®ãã·ã³ã§ã¡ã¢ãªãåé€ããåæã«ããäžæ¹ã§ç·šéããå Žåãåé€ãåã¡ãç·šéã¯å€±ãããŸããããã¯æå³çãªèšèšã§ã: ãæŒæŽ©ããããŒã¯ã³ãåé€ãããã¯ãäºã€ã®æèšãé£ãéã£ãŠããŠãæç«ããªããã°ãªããŸããããèããå€ãã£ãããšããæå³ãªãã代ããã«ã¢ãŒã«ã€ãããŠãã ãã â äœã倱ãããã`ygg unarchive` ã§äž¡æ¹ã®ãã·ã³ã«æ»ããŸãïŒåŸã®å€æãåã¡ãŸãïŒã
**ãã¡ã€ã¢ãŠã©ãŒã«ã¯ãã¢ãªã³ã°æã«æ€åºãããŸãã** ã³ãŒãã衚瀺ãããã·ã³ã¯ãããã«ããäžæ¹ãžæãè¿ãæ¥ç¶ããŸããããã«å±ããªãå Žåã`ygg link` ããã®æšã衚瀺ãããã®ãã·ã³ã ãã«ããŒããéãã 1 ã€ã®ã³ãã³ããåºåããŸãïŒufwãfirewalldãWindowsïŒããã®åŸã `ygg link --list` ãš `ygg doctor` ã確èªãç¶ããŸãããã¢ã« â ã衚瀺ãããã®ã¯æžã蟌ã¿ãå±ãããšç¢ºèªã§ãããšãã ãã§ããã以å€ã®å Žåã¯ãšã©ãŒãšåŸ
æ©äžã®å€æŽæ°ã衚瀺ãããŸããDHCP ã§æ°ããã¢ãã¬ã¹ãåãåã£ããã·ã³ã¯ã次ã«éä¿¡ãããšãã«åã³èŠã€ãããŸãã
**`ygg sync`ïŒgitïŒã¯åŒãç¶ãååšããŸã**ããã¡ãã¯å¥ã®åœ¹å²ãæ
ããŸã: äºãã«èŠããªããã·ã³ãå¥ã®ãããã¯ãŒã¯ã«ããè·å Žã®ããŒã PCãæã¡æ©ããŠãã USB ã¡ã¢ãªäžã®ãã¢ãªããžããªãªã©ã§ããåããããã¯ãŒã¯äžã®ãã·ã³ã«ã¯ `ygg link`ããã以å€ã«ã¯ `ygg sync` ã䜿ã£ãŠãã ãããäž¡è
ã¯åãããŒãžèŠåãå
±æããã®ã§ã䜵çšã§ããŸããäž¡æ¹ã®ãã·ã³ã Tailscale ã® tailnet äžã«ããã°ã`ygg link --tailscale` ã§ãããã¯ãŒã¯ããŸããã§ã䜿ããŸãã
**ãã¢ãªã³ã°ã³ãŒãã誀ã£ãã¢ãã¬ã¹ã衚瀺ããå Žå**ïŒå®éã® Ethernet ã Wi-Fi ããVM ã®ããªããžã VPN ããåªå
ããŸããããã§ãæšæž¬ã誀ãããšããããŸãïŒãåºå®ããŠãã ãã: `ygg config set sync_host 192.168.3.152` â ãŸãã¯ããäžæ¹ã®ãã·ã³ã§ã³ãŒãã衚瀺ãããŠãã ãããã³ãŒããå
¥åããåŽã¯ãçµè·¯ãå®éã«éãã¢ãã¬ã¹ãåžžã«äœ¿ããŸãã
## ð æ°åã§èŠã
[`eval/ygg_eval.py`](../eval/ygg_eval.py) ã§æž¬å® â ã¡ã¢ãª 232 ä»¶ãã©ãã«ä»ãã¯ãšãª 110 ä»¶ãã©ã³ãã³ã°ã®éã¿ã¯ *dev* åå²ã®ã¿ã§èª¿æŽããŠããããã**holdout ããããã€ã¢ã¹ã®ãªãæ°å**ã§ãïŒrecall@1ã`paraphrase-multilingual` ã¢ãã«):
| æ€çŽ¢ãã¥ãŒ | holdout recall@1 | recall@3 | äŸåãŒãã®åå¥ |
| --- | --- | --- | --- |
| **ãããžã§ã¯ãå
**ïŒå®éã®çµè·¯ãããŒã«çŽ 11) | **0.94** | **1.00** | 0.76 |
| **ã¹ãã¢å
šäœ**ïŒãã£ã«ã¿ãªããããŒã« 232) | 0.72 | **0.87** | 0.69 |
**ãããžã§ã¯ãå
â ããªããå®éã«äœ¿ãçµè·¯ â ã§ã¯ãæ£ããã¡ã¢ãªã¯ã¯ãšãªã® 0.94 ã§ 1 äœã«ãªããæ¯åããã 3 ã«å
¥ããŸãïŒrecall@3 = 1.00ïŒã** ãã£ã«ã¿ãªãã§ã¹ãã¢å
šäœãæ€çŽ¢ããã®ã¯ããé£ãããªããŸãïŒrecall@1 0.72ãrecall@3 0.87ãå
š 232 ä»¶ã«ããã£ãŠïŒãäŸåãŒãã®åå¥ã¢ãŒãã¯ãããŒã¯ãŒããšã³ãŒãèå¥åã®ã¯ãšãªããã§ã«è§£æ±ºã§ããŸãïŒ1.00ïŒãããŒã«ã«ã¢ãã«ã¯æå³ãšèšèªæšªæãå ããŸãïŒcrosslingual 0.25 â 0.95ïŒã[BENCHMARKS.md ã®å®å
šãªå
èš³](../BENCHMARKS.md)ã§ã¯ 95% ä¿¡é ŒåºéãããŒã«ãµã€ãºãã¯ã©ã¹å¥ã¹ã³ã¢ã瀺ããŠããŸã â ãããŠçŽ 1 åã§åå®è¡ã§ããŸã: `python3 eval/ygg_eval.py --report`ã
**ã³ãŒãã¹ã®èŠæš¡ãæ°åã®äžéšã§ãã** å®éã® 4,799 ä»¶ã®ã¹ãã¢ã§ã¯ãæ¢å®ã®å€èšèªåã蟌ã¿ã¯åå¥ããŒã¹ã©ã€ã³ïŒrecall@1 0.55ïŒãŸã§èœã¡èŸŒã¿ãŸãã`bge-m3` ã§ã¯ããã§ 0.775 ãä¿ã¡ãŸããã¹ãã¢ãæ°åä»¶ã«è²ã€ãªã `bge-m3` ãéžãã§ãã ãã â 詳现㯠[BENCHMARKS.md](../BENCHMARKS.md) ã«ãããŸãã
## ð Yggdrasil ãšä»ããŒã«ã®æ¯èŒ
ä»ã®ããŒã«ã¯ããã©ã³ã¹ã¯ãªãããèªåãã£ããã£ããããã¯ã©ãŠãã売ãã€ãããã®ã©ã¡ããã§ããYggdrasil ã®è³ãã¯ããã§ã: **æ¬åœã«éèŠãªæ°å°ãªããã®**ã ãããå³éžã»éè€æé€ããŠãããªããææããçŽ ã®ã¬ã³ãŒããšããŠä¿æã â ããã**ãã¹ãŠ**ã®ããŒã«ãšãããžã§ã¯ãã§å
±æããããšã
| | **Yggdrasil** | çµã¿èŸŒã¿ã¡ã¢ãª (Claude Code · Codex) | [claude-mem](https://github.com/thedotmack/claude-mem) | [mem0](https://github.com/mem0ai/mem0) / OpenMemory | [basic-memory](https://github.com/basicmachines-co/basic-memory) |
| --- | --- | --- | --- | --- | --- |
| å³éžãããæ±ºå® / æèš / ç¶æ³ïŒãã©ã³ã¹ã¯ãªããã§ã¯ãªã) | â
| â ïž èªåã¡ã¢ | â ãã¹ãŠãã£ãã㣠| â ïž | â ïž èªç±åœ¢åŒããŒã |
| **ããŒã«æšªæ**ã®åäžã¡ã¢ãª | â
| â ãã³ããŒå
ã«éãã | â
| â
| â
|
| **ãããžã§ã¯ã暪æ**ã®æ³èµ·ïŒããããžã§ã¯ã B ã§è§£æ±ºæžã¿ã) | â
| â ãªããžããªåäœ | â ïž | â ïž | â ïž |
| æ¢å®ã§ **100% ããŒã«ã«** | â
| â
| â ïž ã¯ã©ãŠãåæã¢ããªã³ | â ãã¹ãåãäž» | â
|
| **äŸåãŒã**ïŒstdlib + SQLite) | â
| â | â Node + Bun + åžžé§ã¯ãŒã«ãŒ | â Docker + Qdrant + LLM ã㌠| â |
| **LLM ã API ããŒãäžèŠ**ã§åäœ | â
| â
| â AI ã§å§çž® | â | â
|
| **å®å
šããŒã«ã«ã®ã»ãã³ãã£ãã¯æ€çŽ¢** | â
ãªããã€ã³ã® Ollama | â grep ã®ã¿ | â ïž ãªãã·ã§ã³ã® Chroma | â ïž API ããŒã Docker ã¹ã¿ãã¯ãå¿
èŠ | â |
| ããªããææãããã¬ãŒã³ãª **Markdown**ïŒObsidian 察å¿) | â
| â
| â | â | â
|
**æãè¿ãé£äºº â claude-mem:** ãã¹ãŠã®ã»ãã·ã§ã³ãèšé²ã㊠AI ã§å§çž®ããããã¹ãŠããã£ããã£ãããã¡ã¢ãªã§ãïŒNode 20+ *ãš* Bunãåžžé§ã¯ãŒã«ãŒããŒã¢ã³ãå¿
èŠãChroma ã¯ãªãã·ã§ã³)ãYggdrasil ã¯ãã®æ£å察ã®è³ãã§ã: å¢ãç¶ãã奿µã§ã¯ãªããå°ããé«ä¿¡å·ãªã¹ãã¢ã**mem0** ã¯ã*ã¢ããª*ã*ãã®ãŠãŒã¶ãŒ*ãèšæ¶ããããã® SDK + ãã¹ãåãã©ãããã©ãŒã ã§ãã»ã«ããã¹ãã§ã LLM ã® API ããŒãå¿
èŠã§ãã**çµã¿èŸŒã¿ã¡ã¢ãª**ã¯æ¬åœã«äŸ¿å©ã§ã â ãããŠæ§é çã«éããŠããŸã: ã²ãšã€ã®ãã³ããŒãã²ãšã€ã®ãªããžããªãã²ãšã€ã®ãã·ã³ãæåã©ããã® grepãYggdrasil ã¯ãã®äžæ®µäžã®ã¬ã€ã€ãŒã§ãïŒãã㊠`ygg seed` ã¯ããŸãã«ãã®ãã©ã³ã¹ã¯ãªããããèªèº«ãããŒãã¹ãã©ããã§ããŸã)ããŸã£ããå¥ã®ã¬ã€ã€ãŒãšããŠ: [context-mode](https://github.com/mksglu/context-mode)ïŒã©ã€ããªã³ã³ããã¹ããŠã£ã³ããŠïŒãš [Context7](https://github.com/upstash/context7)ïŒææ°ã®ã©ã€ãã©ãªããã¥ã¡ã³ã) â ã©ã¡ãã Yggdrasil ãšåé¡ãªã䜵çšã§ããŸãã
## ð§° ã³ãã³ã
ãšãŒãžã§ã³ãã«ã¯ 6 ã€ã® MCP ããŒã«ãèŠããŸã: `ygg_health`ã`ygg_bootstrap`ã`ygg_search`ã`ygg_recall`ã`ygg_remember`ã`ygg_materialize` â ãã©ã°ã€ã³ãŸã㯠`ygg install` ã«ããèªåç»é²ãããŸãã
ygg CLI ã®å®å
šãªãã¡ã¬ã³ã¹
**ã¡ã¢ãªæäœ**
| ã³ãã³ã | äœãããã |
| --- | --- |
| `ygg recall --query "âŠ"` | **ãããžã§ã¯ã暪æ**æ€çŽ¢ â ããããã©ããã§ãã£ãããšã¯ããã?ã |
| `ygg search --project P --query "âŠ"` | ãããžã§ã¯ãã«çµã£ãæ€çŽ¢ïŒ`--type`ã`--tag`ã`--limit`ã`--json`) |
| `ygg remember --project P --type lesson --content "âŠ"` | æ°žç¶ã¡ã¢ãªãä¿åïŒã·ãŒã¯ã¬ããä¿è·ã€ããéè€æé€ãã) |
| `ygg bootstrap --project P` | äœæ¥ãå§ããåã«ãããžã§ã¯ãã®ã¡ã¢ãªãåã蟌ã |
| `ygg pin --id ID` · `ygg unpin --id ID` | ã¡ã¢ãªããã³çãããŠç¢ºå®ã«è¡šç€ºãããããã«ãã |
| `ygg supersede --id ID` | æ°ããã¡ã¢ãªã眮ãæããå€ãã¡ã¢ãªãã¢ãŒã«ã€ããã |
| `ygg unarchive --id ID` | ã¢ãŒã«ã€ããããã¡ã¢ãªãæ»ãïŒãªã³ã¯æžã¿ã®ãã·ã³ã«ãåæ ïŒ |
| `ygg materialize --id ID --project P` | 1 ã€ã®ã¡ã¢ãªã Obsidian ããŒãã«ãšã¯ã¹ããŒããã |
| `ygg export-native --project P` | å³éžãããã€ãžã§ã¹ãã `AGENTS.md`/`MEMORY.md` ã«æžãåºã â Claude Code ãš Codex ã®ãã€ãã£ãã¡ã¢ãªã«äŸçµŠãã |
| `ygg import --from TOOL --path P` | ä»ã®ã¡ã¢ãªããŒã«ã®ã¹ãã¢ã Yggdrasil ã«ç§»è¡ããïŒ`mcp-memory`ã`basic-memory`ããŸã `--dry-run` ã) |
| `ygg review [--apply]` | ã¬ããã³ã¹ãã¥ãŒãåŠçãã â éè€ãçµ±åããå€ã/ççŸããã¡ã¢ãªã«ãã©ã°ãç«ãŠãïŒã¢ãŒã«ã€ãã®ã¿ãåãæ¶ãå¯èœ) |
| `ygg delete --id ID` · `ygg reset âŠ` | 1 ã€ã®ã¡ã¢ãªãå®å
šåé€ãã · 倱æãã `ygg seed` ãäžæ¬åãæ¶ãããïŒèŠç¢ºèª) |
**ã³ãŒã«ãã¹ã¿ãŒã**
| ã³ãã³ã | äœãããã |
| --- | --- |
| `ygg seed` | Claude Code + Codex ã®ãã©ã³ã¹ã¯ãªãããObsidian vaultã`CLAUDE.md` ãªããžããªãèžç â å¢åçã»éè€æé€æžã¿ã»å®å
šããŒã«ã« |
| `ygg seed --dry-run` · `--force` | çºèŠãšèŠç©ããã®ã¿ · ãã¹ãŠãåèžç |
| `ygg link` · `ygg link ` | **èªåã®**2å°ã®ãã·ã³ãåäžãããã¯ãŒã¯äžã§çŽæ¥ãªã³ã¯ â ã©ã€ãã§å
±æãããã¡ã¢ãªããã³çãããã TLSãäžç¶ãªã |
| `ygg link --list` · `ygg unlink ` | ãªã³ã¯æžã¿ã®ãã·ã³ã衚瀺 · 1 å°ã®æ¥ç¶ãåãæ¶ã |
| `ygg distill --source PATH` | 1 ã€ã®ãã£ã¬ã¯ããª/ãã¡ã€ã«ãæèšãžèžç |
| `ygg reindex` | æ¬ ããŠããåã蟌ã¿ãè£å®ïŒå¯ãªæ³èµ·ã埩å
) |
**ãµãŒãã¹ãšã»ããã¢ãã**
| ã³ãã³ã | äœãããã |
| --- | --- |
| `ygg install` · `ygg doctor` · `ygg update` | ã¬ã€ãä»ãã»ããã¢ãã · å®è¡å¯èœãªä¿®æ£ã€ãã®èšºæ Â· ã¢ããã°ã¬ãŒã |
| `ygg config` | æ°žç¶çãªèšå®ã®è¡šç€º/倿ŽïŒ`list` · `get` · `set` · `unset`) |
| `ygg status` · `start` · `stop` · `restart` · `logs` | åžžæçšŒåããŒã¢ã³ã管ç |
| `ygg hooks` · `unhooks` · `register` | SessionStart ããã¯ã®æå¹å/ç¡å¹å · MCP ã®(å)ç»é² |
| `ygg recommend` · `token` · `uninstall` | ã¢ãã«ã«ã¿ã㰠· èªèšŒããŒã¯ã³ã®è¡šç€º · ãã¹ãŠãåé€ |
äººæ ŒãäžããŸããã â `~/.yggdrasil/identity.json` ãç·šéããŸã:
```json
{ "name": "Jarvis", "persona": "concise, proactive, dry wit", "user_facts": ["prefers TypeScript", "ships small PRs"] }
```
ã·ãŒããéããã©ããããããéå? èžçåŠçã LAN äžã®*ã©ããª*ãã·ã³ã«ã§ãåããããŸã â OllamaãLM Studioãllama.cpp ãåãããã¹ã¯ãããã**ããŒã«ã« LLM ãµãŒããŒã¢ããªãåãã iPhone ã§ãæ§ããŸãã**: `ygg config set distill_url http://:11434`ãYggdrasil 㯠API ã®æ¹èšïŒOllama ã OpenAI äºæãïŒãèªåå€å¥ããŸããããŒã¿ãããªãã®ãããã¯ãŒã¯ã®å€ã«åºãããšã¯å€ããããããŸãã â 詳现㯠[docs/ygg-cli.md](../docs/ygg-cli.md) ãåç
§ããŠãã ããã
## â ãããã質å
Claude Code ã«ã¯ãã§ã«çµã¿èŸŒã¿ã¡ã¢ãªããããŸã â ãªã Yggdrasil ãå¿
�
çµã¿èŸŒã¿ã¡ã¢ãªã¯ãã³ããŒããšã»ãªããžããªããšã»ãã·ã³ããšã«éããŠãããåãåºãã¯æåã©ããã®ããã¹ãäžèŽã§ããYggdrasil ã¯ãã®äžæ®µäžã®ã¬ã€ã€ãŒã§ã: Claude CodeãCodexããããã MCP ãã¹ãã§*åã*ã¡ã¢ãªããããžã§ã¯ãã*ãŸããã *æ³èµ·ããªãã·ã§ã³ã®ã»ãã³ãã£ãã¯æ€çŽ¢ â ããã§ã㊠100% ããŒã«ã«ãäž¡è
ã¯çµã¿åãããããŸã: ãã€ãã£ãã®ã¡ã¢ãªã¯ãã®ãŸãŸã«ã`ygg seed` ã«æ¢åã®å±¥æŽãèžçãããŠå
±æã®é è³ã«åã蟌ã¿ãŸãããã
ã³ãŒããã¡ã¢ãªãã¯ã©ãŠãã«éä¿¡ããŸãã?
ãããããšã³ãžã³ãããŒã¿ããŒã¹ããªãã·ã§ã³ã®ã¢ãã«ã¯ãã¹ãŠããŒã«ã«ã§åäœããŸããã¢ã«ãŠã³ãããã¬ã¡ããªããããŸãããå¯äžã®å€åãé信㯠PyPI ãžã®ããŒãžã§ã³ãã§ãã¯ã§ãã
`ygg link` ã§èªåã® 2 å°ã®ãã·ã³ããªã³ã¯ãããšãã¡ã¢ãªã¯èªåã®ãããã¯ãŒã¯äžã§**ãã® 2 å°ã®ãã·ã³ã®é**ãç§»åããŸã â çŽæ¥ãåºå®èšŒææžã«ãã TLS ã§ãäžç¶ããã¡ãã®ãµãŒããŒãçµç±ããã«ããã®ã³ãã³ããå®è¡ãããŸã§ã¯ãã«ãŒãããã¯ããå€ã§åŸ
ã¡åãããã®ã¯äœããããŸããã
æªæã®ãããªããžããªãã¡ã¢ãªã«æç€ºãä»èŸŒããŸãã?
æ³èµ·ãããã¡ã¢ãªã¯ã*æç€ºã§ã¯ãªãåèã¡ã¢*ãšããŠæç¢ºã«æ ä»ããããŠæ³šå
¥ãããŸããåã¡ã¢ãç±æ¥ããå Žæãšãå¥ã®ãããžã§ã¯ãã«å±ããå Žåã®ç®å°ãæ·»ããããããããšãŒãžã§ã³ãã¯ãããããŒã¿ãšããŠæ±ããããã«å«ãŸãããã®ã«åºã¥ããŠè¡åããåã«ç¢ºèªãæ±ããŸããã·ãŒã¯ã¬ããã¯èžçã®åã«ãã©ã³ã¹ã¯ãªããããåé€ãããæžãèŸŒã¿æã«ã¯æåŠãããŸããããã§ããã¡ã¢ãªã¯æžã蟌ãŸããå
容ãšåãçšåºŠã«ããä¿¡é Œã§ããŸãã â ãšãã©ã `ygg review` ã確èªããŠãã ããã
ãã¹ãŠãèªåçã«èšæ¶ããŸãã?
ããã â æå³çãªèšèšã§ããåãåºãã¯èªåã§ããã*æžã蟌ã¿*ã¯æå³çã§ãïŒãšãŒãžã§ã³ãã¯æ°žç¶çãªæèšã®ããã« `ygg_remember` ãåŒã³åºããŸã)ããã¹ãŠããã£ããã£ãããšã¡ã¢ãªãæ±æããããŒã¯ã³ã浪費ãããããããã¯ããŸããããªãã·ã§ã³ã®ããã¯ã°ã©ãŠã³ãã¢ãã«ã¯ããã§ã«ä¿åæžã¿ã®ãã®ãçµ±åããŸãïŒææ¡ã®ã¿)ã
GPU ã API ããŒã¯å¿
èŠã§ãã?
ããããæ¢å®ã¯çŽç²ãªå奿€çŽ¢ã§ã â äŸåãŒãã§å³æãã»ãã³ãã£ãã¯æ€çŽ¢ã¯ãªããã€ã³ã§ãOllama çµç±ã®*ããŒã«ã«*ã¢ãã«ã䜿ããŸããã€ã³ã¹ããŒã©ãŒãããªãã®ããŒããŠã§ã¢ã«é©åããã¢ãã«ãæšå¥šããŸãã
ã©ããããéããããŒã¯ã³ã¯ã©ããããããããŸãã?
ãšã³ãžã³ã®ã¢ã€ãã«æã¯ **RAM çŽ 21 MB**ïŒå奿€çŽ¢ã®æ¢å®ïŒãCPU çŽ 0%ããã£ã¹ã¯ã¯ã¡ã¢ãª 1 ä»¶ãããæ°å KB ã§ããã»ãã·ã§ã³éå§æã«çŽ 300 ããŒã¯ã³ã泚å
¥ãããåããŒã«åŒã³åºãã¯å°ããªæç²ãè¿ããŸããéãåŠçïŒã€ã³ããã¯ã¹äœæãåã蟌ã¿ãçµ±åïŒã¯ãã¹ãŠ LLM ã®å€åŽãããªãã®ãã·ã³äžã§å®è¡ãããŸãã
ã¡ã¢ãªãæäœæ¥ã§ç·šéã»åé€ã§ããŸãã?
ã¯ããã¡ã¢ãªã¯ Obsidian vault å
ã® Markdown ããŒããšããŠå
·çŸåãããŸã â ä»ã®ãã¡ã€ã«ãšåãããã«èªãã ããç·šéããããåé€ãããã§ããŸããã¬ããã³ã¹ãšã¬ãã¥ãŒã¯äœãåé€ããŸãã â ã¢ãŒã«ã€ãããã ãã§ãããã¯åãæ¶ããŸããå®å
šåé€ã¯ãããªããæç€ºçã« `ygg delete` ãå®è¡ãããšãã ãè¡ãããŸãïŒãªã³ã¯ããããã·ã³ã§ã¯ããã®åé€ã¯äž¡æ¹ã«åã³ãŸãïŒã
## ðŠ ã¹ããŒã¿ã¹ãšããŒãããã
**ã¢ã«ãã¡çã§ãã** ããããŒãã¹ãšã¬ããã³ã¹ã«ãŒãã¯ã²ãŒããã¹ãæžã¿ã§ãïŒ`scripts/run_gates.sh`)ããã«ããŠãŒã¶ãŒãæ¬çªçšéåãã«ã¯ãŸã å
ç¢åãããŠããŸãããçŸåšã¯ macOS 察å¿ã§ãLinux/Windows ã®ãµãŒãã¹ã€ã³ã¹ããŒã©ãŒã¯å®è£
æžã¿ã»ããã€ã¹äžã§ã®æçµãã¹ãäžã§ãã
æè¿ãªãªãŒã¹ããããã®: ð ãã·ã³éã®ã¡ã¢ãªå
±æïŒ`ygg link`ïŒÂ· é¢ä¿ã°ã©ãïŒ`ygg relate`: `solves` / `supersedes` / `contradicts`ïŒã
次ã®äºå®: ð°ïž ãµãŒãã§ã¹æšªæã®åæïŒCLIã»Webã»ã¹ããŒããã©ã³ããŸããåäžã®ã¡ã¢ãª â HTTP ãã¡ãµãŒãã¯å°å
¥æžã¿ã§ã[docs/cross-surface.md](../docs/cross-surface.md) ãåç
§ïŒ · ð§ Linux/Windows ã® GAã
## ð€ ã³ã³ããªãã¥ãŒã
Issue ã PR ãæè¿ããŸããæåºåã« `scripts/run_gates.sh` ãš `python3 -m unittest discover -s tests` ãå®è¡ããŠãã ãã â ãã¹ãŠã®ã²ãŒããã°ãªãŒã³ãä¿ã€å¿
èŠããããŸãã
## ð ã©ã€ã»ã³ã¹
**GNU AGPL v3.0** â [LICENSE](../LICENSE) ãåç
§ããŠãã ãããèªç±ãªãªãŒãã³ãœãŒã¹ã§ã: 䜿çšã»æ¹å€ã»ã»ã«ããã¹ãã»åé
åžãå¯èœã§ããæ¹å€ããå ŽåããŸãã¯ãããã¯ãŒã¯ãµãŒãã¹ãšããŠæäŸããå Žåã¯ãåãã©ã€ã»ã³ã¹ã§ãœãŒã¹ã³ãŒããå
¬éããå¿
èŠããããŸãã