Bump 0.8.13 -> 0.8.45. Extract the SKILL.md monolith (~530 lines) into references/ for progressive disclosure: github-and-merge, transcribe, extraction-spec, exports, update, query, add-watch, hooks. SKILL.md now points to each reference and loads it only on the path that needs it. Inline fixes carried by the new version: empty-extraction guard before any write (#1392), shrink-guard ordering so GRAPH_REPORT/analysis never describe a graph.json that was refused (#479), root= relativization for build/manifest parity across clones (#1361/#1417), stale-cache cleanup and code-only semantic pre-write (#1392), edge-direction preserving merge (#801). Adds FalkorDB export (--falkordb/--falkordb-push) and rewrites the frontmatter description (drops the obsolete trigger: field). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_0169vjUD1sP9Nx4ZiCa8wvAw
57 lines
2.4 KiB
Markdown
57 lines
2.4 KiB
Markdown
# graphify reference: add a URL and watch a folder
|
|
|
|
Load this when the user ran `/graphify add <url>` or passed `--watch`. Neither is part of the default build.
|
|
|
|
## For /graphify add
|
|
|
|
Fetch a URL and add it to the corpus, then update the graph.
|
|
|
|
```bash
|
|
$(cat graphify-out/.graphify_python) -c "
|
|
import sys
|
|
from graphify.ingest import ingest
|
|
from pathlib import Path
|
|
|
|
try:
|
|
out = ingest('URL', Path('./raw'), author='AUTHOR', contributor='CONTRIBUTOR')
|
|
print(f'Saved to {out}')
|
|
except ValueError as e:
|
|
print(f'error: {e}', file=sys.stderr)
|
|
sys.exit(1)
|
|
except RuntimeError as e:
|
|
print(f'error: {e}', file=sys.stderr)
|
|
sys.exit(1)
|
|
"
|
|
```
|
|
|
|
Replace `URL` with the actual URL, `AUTHOR` with the user's name if provided, `CONTRIBUTOR` likewise. If the command exits with an error, tell the user what went wrong - do not silently continue. After a successful save, automatically run the `--update` pipeline on `./raw` to merge the new file into the existing graph.
|
|
|
|
Supported URL types (auto-detected):
|
|
- YouTube / any video URL → audio downloaded via yt-dlp, transcribed to `.txt` on next run (requires `pip install 'graphifyy[video]'`)
|
|
- Twitter/X → fetched via oEmbed, saved as `.md` with tweet text and author
|
|
- arXiv → abstract + metadata saved as `.md`
|
|
- PDF → downloaded as `.pdf`
|
|
- Images (.png/.jpg/.webp) → downloaded, Claude vision extracts on next run
|
|
- Any webpage → converted to markdown via html2text
|
|
|
|
---
|
|
|
|
## For --watch
|
|
|
|
Start a background watcher that monitors a folder and auto-updates the graph when files change.
|
|
|
|
```bash
|
|
$(cat graphify-out/.graphify_python) -m graphify.watch INPUT_PATH --debounce 3
|
|
```
|
|
|
|
Replace INPUT_PATH with the folder to watch. Behavior depends on what changed:
|
|
|
|
- **Code files only (.py, .ts, .go, etc.):** re-runs AST extraction + rebuild + cluster immediately, no LLM needed. `graph.json` and `GRAPH_REPORT.md` are updated automatically.
|
|
- **Docs, papers, or images:** writes a `graphify-out/needs_update` flag and prints a notification to run `/graphify --update` (LLM semantic re-extraction required).
|
|
|
|
Debounce (default 3s): waits until file activity stops before triggering, so a wave of parallel agent writes doesn't trigger a rebuild per file.
|
|
|
|
Press Ctrl+C to stop.
|
|
|
|
For agentic workflows: run `--watch` in a background terminal. Code changes from agent waves are picked up automatically between waves. If agents are also writing docs or notes, you'll need a manual `/graphify --update` after those waves.
|