From f984fb559d19fe31761ad2148cc6a48c35a26f3a Mon Sep 17 00:00:00 2001 From: Andre Brait Date: Thu, 10 Sep 2026 15:29:26 +0000 Subject: [PATCH] fix: harden generated Graphify commands --- graphify/skill-agents.md | 8 ++--- graphify/skill-aider.md | 6 ++-- graphify/skill-amp.md | 8 ++--- graphify/skill-claw.md | 8 ++--- graphify/skill-codex.md | 8 ++--- graphify/skill-copilot.md | 8 ++--- graphify/skill-devin.md | 6 ++-- graphify/skill-droid.md | 8 ++--- graphify/skill-kilo.md | 8 ++--- graphify/skill-kiro.md | 8 ++--- graphify/skill-opencode.md | 8 ++--- graphify/skill-pi.md | 8 ++--- graphify/skill-trae.md | 8 ++--- graphify/skill-vscode.md | 8 ++--- graphify/skill-windows.md | 8 ++--- graphify/skill.md | 8 ++--- .../skills/agents/references/add-watch.md | 6 ++-- graphify/skills/amp/references/add-watch.md | 6 ++-- .../skills/claude/references/add-watch.md | 6 ++-- graphify/skills/claw/references/add-watch.md | 6 ++-- graphify/skills/codex/references/add-watch.md | 6 ++-- .../skills/copilot/references/add-watch.md | 6 ++-- graphify/skills/droid/references/add-watch.md | 6 ++-- graphify/skills/kilo/references/add-watch.md | 6 ++-- graphify/skills/kiro/references/add-watch.md | 6 ++-- .../skills/opencode/references/add-watch.md | 6 ++-- graphify/skills/pi/references/add-watch.md | 6 ++-- graphify/skills/trae/references/add-watch.md | 6 ++-- .../skills/vscode/references/add-watch.md | 6 ++-- .../skills/windows/references/add-watch.md | 6 ++-- tests/test_skillgen.py | 33 +++++++++++++++++++ .../expected/graphify__skill-agents.md | 8 ++--- .../expected/graphify__skill-aider.md | 6 ++-- .../skillgen/expected/graphify__skill-amp.md | 8 ++--- .../skillgen/expected/graphify__skill-claw.md | 8 ++--- .../expected/graphify__skill-codex.md | 8 ++--- .../expected/graphify__skill-copilot.md | 8 ++--- .../expected/graphify__skill-devin.md | 6 ++-- .../expected/graphify__skill-droid.md | 8 ++--- .../skillgen/expected/graphify__skill-kilo.md | 8 ++--- .../skillgen/expected/graphify__skill-kiro.md | 8 ++--- .../expected/graphify__skill-opencode.md | 8 ++--- tools/skillgen/expected/graphify__skill-pi.md | 8 ++--- .../skillgen/expected/graphify__skill-trae.md | 8 ++--- .../expected/graphify__skill-vscode.md | 8 ++--- .../expected/graphify__skill-windows.md | 8 ++--- tools/skillgen/expected/graphify__skill.md | 8 ++--- ...__skills__agents__references__add-watch.md | 6 ++-- ...ify__skills__amp__references__add-watch.md | 6 ++-- ...__skills__claude__references__add-watch.md | 6 ++-- ...fy__skills__claw__references__add-watch.md | 6 ++-- ...y__skills__codex__references__add-watch.md | 6 ++-- ..._skills__copilot__references__add-watch.md | 6 ++-- ...y__skills__droid__references__add-watch.md | 6 ++-- ...fy__skills__kilo__references__add-watch.md | 6 ++-- ...fy__skills__kiro__references__add-watch.md | 6 ++-- ...skills__opencode__references__add-watch.md | 6 ++-- ...hify__skills__pi__references__add-watch.md | 6 ++-- ...fy__skills__trae__references__add-watch.md | 6 ++-- ...__skills__vscode__references__add-watch.md | 6 ++-- ..._skills__windows__references__add-watch.md | 6 ++-- tools/skillgen/fragments/core/aider.md | 6 ++-- tools/skillgen/fragments/core/core.md | 6 ++-- tools/skillgen/fragments/core/devin.md | 6 ++-- .../skillgen/fragments/query-stub/default.md | 2 +- .../fragments/references/shared/add-watch.md | 6 ++-- tools/skillgen/gen.py | 23 ++++++++++++- 67 files changed, 276 insertions(+), 222 deletions(-) diff --git a/graphify/skill-agents.md b/graphify/skill-agents.md index 78361e1bde..02be4d1f6f 100644 --- a/graphify/skill-agents.md +++ b/graphify/skill-agents.md @@ -534,14 +534,14 @@ If `--obsidian` was given: - If `--obsidian-dir ` was also given, pass it via `--dir`. Otherwise defaults to `graphify-out/obsidian`. ```bash -graphify export obsidian -# or with custom dir: graphify export obsidian --dir ~/vaults/my-project +$(cat graphify-out/.graphify_python) -m graphify export obsidian +# Add `--dir ~/vaults/my-project` to use a custom directory. ``` Generate the HTML graph (always, unless `--no-viz`): ```bash -graphify export html # auto-aggregates to community view if graph > 5000 nodes +$(cat graphify-out/.graphify_python) -m graphify export html # auto-aggregates to community view if graph > 5000 nodes ``` ### Steps 6b-8 - Wiki, Neo4j, FalkorDB, SVG, GraphML, MCP, benchmark (only on their flags) @@ -681,7 +681,7 @@ Both are non-default subcommands. `--update` re-extracts only new or changed fil When `graphify-out/graph.json` already exists and the user asks a question about the corpus, answer from the graph rather than rebuilding it: ```bash -graphify query "" +$(cat graphify-out/.graphify_python) -m graphify query "" ``` Before traversal, expand the question against the graph's own vocabulary so a wording mismatch does not collapse the answer to noise. If the `graphify query` CLI is unavailable, fall back to an inline NetworkX traversal of `graphify-out/graph.json`. Answer using only what the graph output contains, and quote `source_location` when citing a specific fact. For that vocab-expansion step, the BFS/DFS traversal modes, the `--budget` cap, the NetworkX fallback, `save-result` feedback, and the `/graphify path` and `/graphify explain` flows, see `references/query.md`. diff --git a/graphify/skill-aider.md b/graphify/skill-aider.md index 085be97cd2..aacd9f31fc 100644 --- a/graphify/skill-aider.md +++ b/graphify/skill-aider.md @@ -1200,7 +1200,7 @@ from graphify.ingest import ingest from pathlib import Path try: - out = ingest('URL', Path('./raw'), author='AUTHOR', contributor='CONTRIBUTOR') + out = ingest(sys.argv[1], Path('./raw'), author=sys.argv[2] or None, contributor=sys.argv[3] or None) print(f'Saved to {out}') except ValueError as e: print(f'error: {e}', file=sys.stderr) @@ -1208,10 +1208,10 @@ except ValueError as e: except RuntimeError as e: print(f'error: {e}', file=sys.stderr) sys.exit(1) -" +" "URL" "AUTHOR" "CONTRIBUTOR" ``` -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. +Replace `URL` with the actual URL and pass the user's `AUTHOR` or `CONTRIBUTOR` when provided; use an empty string for either omitted value. 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): - Twitter/X → fetched via oEmbed, saved as `.md` with tweet text and author diff --git a/graphify/skill-amp.md b/graphify/skill-amp.md index 78361e1bde..02be4d1f6f 100644 --- a/graphify/skill-amp.md +++ b/graphify/skill-amp.md @@ -534,14 +534,14 @@ If `--obsidian` was given: - If `--obsidian-dir ` was also given, pass it via `--dir`. Otherwise defaults to `graphify-out/obsidian`. ```bash -graphify export obsidian -# or with custom dir: graphify export obsidian --dir ~/vaults/my-project +$(cat graphify-out/.graphify_python) -m graphify export obsidian +# Add `--dir ~/vaults/my-project` to use a custom directory. ``` Generate the HTML graph (always, unless `--no-viz`): ```bash -graphify export html # auto-aggregates to community view if graph > 5000 nodes +$(cat graphify-out/.graphify_python) -m graphify export html # auto-aggregates to community view if graph > 5000 nodes ``` ### Steps 6b-8 - Wiki, Neo4j, FalkorDB, SVG, GraphML, MCP, benchmark (only on their flags) @@ -681,7 +681,7 @@ Both are non-default subcommands. `--update` re-extracts only new or changed fil When `graphify-out/graph.json` already exists and the user asks a question about the corpus, answer from the graph rather than rebuilding it: ```bash -graphify query "" +$(cat graphify-out/.graphify_python) -m graphify query "" ``` Before traversal, expand the question against the graph's own vocabulary so a wording mismatch does not collapse the answer to noise. If the `graphify query` CLI is unavailable, fall back to an inline NetworkX traversal of `graphify-out/graph.json`. Answer using only what the graph output contains, and quote `source_location` when citing a specific fact. For that vocab-expansion step, the BFS/DFS traversal modes, the `--budget` cap, the NetworkX fallback, `save-result` feedback, and the `/graphify path` and `/graphify explain` flows, see `references/query.md`. diff --git a/graphify/skill-claw.md b/graphify/skill-claw.md index 7e7c797563..55b77d6828 100644 --- a/graphify/skill-claw.md +++ b/graphify/skill-claw.md @@ -537,14 +537,14 @@ If `--obsidian` was given: - If `--obsidian-dir ` was also given, pass it via `--dir`. Otherwise defaults to `graphify-out/obsidian`. ```bash -graphify export obsidian -# or with custom dir: graphify export obsidian --dir ~/vaults/my-project +$(cat graphify-out/.graphify_python) -m graphify export obsidian +# Add `--dir ~/vaults/my-project` to use a custom directory. ``` Generate the HTML graph (always, unless `--no-viz`): ```bash -graphify export html # auto-aggregates to community view if graph > 5000 nodes +$(cat graphify-out/.graphify_python) -m graphify export html # auto-aggregates to community view if graph > 5000 nodes ``` ### Steps 6b-8 - Wiki, Neo4j, FalkorDB, SVG, GraphML, MCP, benchmark (only on their flags) @@ -684,7 +684,7 @@ Both are non-default subcommands. `--update` re-extracts only new or changed fil When `graphify-out/graph.json` already exists and the user asks a question about the corpus, answer from the graph rather than rebuilding it: ```bash -graphify query "" +$(cat graphify-out/.graphify_python) -m graphify query "" ``` Before traversal, expand the question against the graph's own vocabulary so a wording mismatch does not collapse the answer to noise. If the `graphify query` CLI is unavailable, fall back to an inline NetworkX traversal of `graphify-out/graph.json`. Answer using only what the graph output contains, and quote `source_location` when citing a specific fact. For that vocab-expansion step, the BFS/DFS traversal modes, the `--budget` cap, the NetworkX fallback, `save-result` feedback, and the `/graphify path` and `/graphify explain` flows, see `references/query.md`. diff --git a/graphify/skill-codex.md b/graphify/skill-codex.md index 5e085f0a6f..fbd068db2b 100644 --- a/graphify/skill-codex.md +++ b/graphify/skill-codex.md @@ -534,14 +534,14 @@ If `--obsidian` was given: - If `--obsidian-dir ` was also given, pass it via `--dir`. Otherwise defaults to `graphify-out/obsidian`. ```bash -graphify export obsidian -# or with custom dir: graphify export obsidian --dir ~/vaults/my-project +$(cat graphify-out/.graphify_python) -m graphify export obsidian +# Add `--dir ~/vaults/my-project` to use a custom directory. ``` Generate the HTML graph (always, unless `--no-viz`): ```bash -graphify export html # auto-aggregates to community view if graph > 5000 nodes +$(cat graphify-out/.graphify_python) -m graphify export html # auto-aggregates to community view if graph > 5000 nodes ``` ### Steps 6b-8 - Wiki, Neo4j, FalkorDB, SVG, GraphML, MCP, benchmark (only on their flags) @@ -681,7 +681,7 @@ Both are non-default subcommands. `--update` re-extracts only new or changed fil When `graphify-out/graph.json` already exists and the user asks a question about the corpus, answer from the graph rather than rebuilding it: ```bash -graphify query "" +$(cat graphify-out/.graphify_python) -m graphify query "" ``` Before traversal, expand the question against the graph's own vocabulary so a wording mismatch does not collapse the answer to noise. If the `graphify query` CLI is unavailable, fall back to an inline NetworkX traversal of `graphify-out/graph.json`. Answer using only what the graph output contains, and quote `source_location` when citing a specific fact. For that vocab-expansion step, the BFS/DFS traversal modes, the `--budget` cap, the NetworkX fallback, `save-result` feedback, and the `/graphify path` and `/graphify explain` flows, see `references/query.md`. diff --git a/graphify/skill-copilot.md b/graphify/skill-copilot.md index 7e7c797563..55b77d6828 100644 --- a/graphify/skill-copilot.md +++ b/graphify/skill-copilot.md @@ -537,14 +537,14 @@ If `--obsidian` was given: - If `--obsidian-dir ` was also given, pass it via `--dir`. Otherwise defaults to `graphify-out/obsidian`. ```bash -graphify export obsidian -# or with custom dir: graphify export obsidian --dir ~/vaults/my-project +$(cat graphify-out/.graphify_python) -m graphify export obsidian +# Add `--dir ~/vaults/my-project` to use a custom directory. ``` Generate the HTML graph (always, unless `--no-viz`): ```bash -graphify export html # auto-aggregates to community view if graph > 5000 nodes +$(cat graphify-out/.graphify_python) -m graphify export html # auto-aggregates to community view if graph > 5000 nodes ``` ### Steps 6b-8 - Wiki, Neo4j, FalkorDB, SVG, GraphML, MCP, benchmark (only on their flags) @@ -684,7 +684,7 @@ Both are non-default subcommands. `--update` re-extracts only new or changed fil When `graphify-out/graph.json` already exists and the user asks a question about the corpus, answer from the graph rather than rebuilding it: ```bash -graphify query "" +$(cat graphify-out/.graphify_python) -m graphify query "" ``` Before traversal, expand the question against the graph's own vocabulary so a wording mismatch does not collapse the answer to noise. If the `graphify query` CLI is unavailable, fall back to an inline NetworkX traversal of `graphify-out/graph.json`. Answer using only what the graph output contains, and quote `source_location` when citing a specific fact. For that vocab-expansion step, the BFS/DFS traversal modes, the `--budget` cap, the NetworkX fallback, `save-result` feedback, and the `/graphify path` and `/graphify explain` flows, see `references/query.md`. diff --git a/graphify/skill-devin.md b/graphify/skill-devin.md index bea72f7eea..8740ca565a 100644 --- a/graphify/skill-devin.md +++ b/graphify/skill-devin.md @@ -1332,7 +1332,7 @@ from graphify.ingest import ingest from pathlib import Path try: - out = ingest('URL', Path('./raw'), author='AUTHOR', contributor='CONTRIBUTOR') + out = ingest(sys.argv[1], Path('./raw'), author=sys.argv[2] or None, contributor=sys.argv[3] or None) print(f'Saved to {out}') except ValueError as e: print(f'error: {e}', file=sys.stderr) @@ -1340,10 +1340,10 @@ except ValueError as e: except RuntimeError as e: print(f'error: {e}', file=sys.stderr) sys.exit(1) -" +" "URL" "AUTHOR" "CONTRIBUTOR" ``` -Replace `URL` with the actual URL, `AUTHOR` with the user's name if provided, `CONTRIBUTOR` likewise. After a successful save, automatically run the `--update` pipeline on `./raw` to merge the new file into the existing graph. +Replace `URL` with the actual URL and pass the user's `AUTHOR` or `CONTRIBUTOR` when provided; use an empty string for either omitted value. 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): - Twitter/X -> fetched via oEmbed, saved as `.md` with tweet text and author diff --git a/graphify/skill-droid.md b/graphify/skill-droid.md index 2a896a6fa1..b9de11f80c 100644 --- a/graphify/skill-droid.md +++ b/graphify/skill-droid.md @@ -534,14 +534,14 @@ If `--obsidian` was given: - If `--obsidian-dir ` was also given, pass it via `--dir`. Otherwise defaults to `graphify-out/obsidian`. ```bash -graphify export obsidian -# or with custom dir: graphify export obsidian --dir ~/vaults/my-project +$(cat graphify-out/.graphify_python) -m graphify export obsidian +# Add `--dir ~/vaults/my-project` to use a custom directory. ``` Generate the HTML graph (always, unless `--no-viz`): ```bash -graphify export html # auto-aggregates to community view if graph > 5000 nodes +$(cat graphify-out/.graphify_python) -m graphify export html # auto-aggregates to community view if graph > 5000 nodes ``` ### Steps 6b-8 - Wiki, Neo4j, FalkorDB, SVG, GraphML, MCP, benchmark (only on their flags) @@ -681,7 +681,7 @@ Both are non-default subcommands. `--update` re-extracts only new or changed fil When `graphify-out/graph.json` already exists and the user asks a question about the corpus, answer from the graph rather than rebuilding it: ```bash -graphify query "" +$(cat graphify-out/.graphify_python) -m graphify query "" ``` Before traversal, expand the question against the graph's own vocabulary so a wording mismatch does not collapse the answer to noise. If the `graphify query` CLI is unavailable, fall back to an inline NetworkX traversal of `graphify-out/graph.json`. Answer using only what the graph output contains, and quote `source_location` when citing a specific fact. For that vocab-expansion step, the BFS/DFS traversal modes, the `--budget` cap, the NetworkX fallback, `save-result` feedback, and the `/graphify path` and `/graphify explain` flows, see `references/query.md`. diff --git a/graphify/skill-kilo.md b/graphify/skill-kilo.md index 05d3e9f4a0..ef93d78a4d 100644 --- a/graphify/skill-kilo.md +++ b/graphify/skill-kilo.md @@ -537,14 +537,14 @@ If `--obsidian` was given: - If `--obsidian-dir ` was also given, pass it via `--dir`. Otherwise defaults to `graphify-out/obsidian`. ```bash -graphify export obsidian -# or with custom dir: graphify export obsidian --dir ~/vaults/my-project +$(cat graphify-out/.graphify_python) -m graphify export obsidian +# Add `--dir ~/vaults/my-project` to use a custom directory. ``` Generate the HTML graph (always, unless `--no-viz`): ```bash -graphify export html # auto-aggregates to community view if graph > 5000 nodes +$(cat graphify-out/.graphify_python) -m graphify export html # auto-aggregates to community view if graph > 5000 nodes ``` ### Steps 6b-8 - Wiki, Neo4j, FalkorDB, SVG, GraphML, MCP, benchmark (only on their flags) @@ -684,7 +684,7 @@ Both are non-default subcommands. `--update` re-extracts only new or changed fil When `graphify-out/graph.json` already exists and the user asks a question about the corpus, answer from the graph rather than rebuilding it: ```bash -graphify query "" +$(cat graphify-out/.graphify_python) -m graphify query "" ``` Before traversal, expand the question against the graph's own vocabulary so a wording mismatch does not collapse the answer to noise. If the `graphify query` CLI is unavailable, fall back to an inline NetworkX traversal of `graphify-out/graph.json`. Answer using only what the graph output contains, and quote `source_location` when citing a specific fact. For that vocab-expansion step, the BFS/DFS traversal modes, the `--budget` cap, the NetworkX fallback, `save-result` feedback, and the `/graphify path` and `/graphify explain` flows, see `references/query.md`. diff --git a/graphify/skill-kiro.md b/graphify/skill-kiro.md index 7e7c797563..55b77d6828 100644 --- a/graphify/skill-kiro.md +++ b/graphify/skill-kiro.md @@ -537,14 +537,14 @@ If `--obsidian` was given: - If `--obsidian-dir ` was also given, pass it via `--dir`. Otherwise defaults to `graphify-out/obsidian`. ```bash -graphify export obsidian -# or with custom dir: graphify export obsidian --dir ~/vaults/my-project +$(cat graphify-out/.graphify_python) -m graphify export obsidian +# Add `--dir ~/vaults/my-project` to use a custom directory. ``` Generate the HTML graph (always, unless `--no-viz`): ```bash -graphify export html # auto-aggregates to community view if graph > 5000 nodes +$(cat graphify-out/.graphify_python) -m graphify export html # auto-aggregates to community view if graph > 5000 nodes ``` ### Steps 6b-8 - Wiki, Neo4j, FalkorDB, SVG, GraphML, MCP, benchmark (only on their flags) @@ -684,7 +684,7 @@ Both are non-default subcommands. `--update` re-extracts only new or changed fil When `graphify-out/graph.json` already exists and the user asks a question about the corpus, answer from the graph rather than rebuilding it: ```bash -graphify query "" +$(cat graphify-out/.graphify_python) -m graphify query "" ``` Before traversal, expand the question against the graph's own vocabulary so a wording mismatch does not collapse the answer to noise. If the `graphify query` CLI is unavailable, fall back to an inline NetworkX traversal of `graphify-out/graph.json`. Answer using only what the graph output contains, and quote `source_location` when citing a specific fact. For that vocab-expansion step, the BFS/DFS traversal modes, the `--budget` cap, the NetworkX fallback, `save-result` feedback, and the `/graphify path` and `/graphify explain` flows, see `references/query.md`. diff --git a/graphify/skill-opencode.md b/graphify/skill-opencode.md index 313958ae2d..f1afcb1aa3 100644 --- a/graphify/skill-opencode.md +++ b/graphify/skill-opencode.md @@ -529,14 +529,14 @@ If `--obsidian` was given: - If `--obsidian-dir ` was also given, pass it via `--dir`. Otherwise defaults to `graphify-out/obsidian`. ```bash -graphify export obsidian -# or with custom dir: graphify export obsidian --dir ~/vaults/my-project +$(cat graphify-out/.graphify_python) -m graphify export obsidian +# Add `--dir ~/vaults/my-project` to use a custom directory. ``` Generate the HTML graph (always, unless `--no-viz`): ```bash -graphify export html # auto-aggregates to community view if graph > 5000 nodes +$(cat graphify-out/.graphify_python) -m graphify export html # auto-aggregates to community view if graph > 5000 nodes ``` ### Steps 6b-8 - Wiki, Neo4j, FalkorDB, SVG, GraphML, MCP, benchmark (only on their flags) @@ -676,7 +676,7 @@ Both are non-default subcommands. `--update` re-extracts only new or changed fil When `graphify-out/graph.json` already exists and the user asks a question about the corpus, answer from the graph rather than rebuilding it: ```bash -graphify query "" +$(cat graphify-out/.graphify_python) -m graphify query "" ``` Before traversal, expand the question against the graph's own vocabulary so a wording mismatch does not collapse the answer to noise. If the `graphify query` CLI is unavailable, fall back to an inline NetworkX traversal of `graphify-out/graph.json`. Answer using only what the graph output contains, and quote `source_location` when citing a specific fact. For that vocab-expansion step, the BFS/DFS traversal modes, the `--budget` cap, the NetworkX fallback, `save-result` feedback, and the `/graphify path` and `/graphify explain` flows, see `references/query.md`. diff --git a/graphify/skill-pi.md b/graphify/skill-pi.md index 7e7c797563..55b77d6828 100644 --- a/graphify/skill-pi.md +++ b/graphify/skill-pi.md @@ -537,14 +537,14 @@ If `--obsidian` was given: - If `--obsidian-dir ` was also given, pass it via `--dir`. Otherwise defaults to `graphify-out/obsidian`. ```bash -graphify export obsidian -# or with custom dir: graphify export obsidian --dir ~/vaults/my-project +$(cat graphify-out/.graphify_python) -m graphify export obsidian +# Add `--dir ~/vaults/my-project` to use a custom directory. ``` Generate the HTML graph (always, unless `--no-viz`): ```bash -graphify export html # auto-aggregates to community view if graph > 5000 nodes +$(cat graphify-out/.graphify_python) -m graphify export html # auto-aggregates to community view if graph > 5000 nodes ``` ### Steps 6b-8 - Wiki, Neo4j, FalkorDB, SVG, GraphML, MCP, benchmark (only on their flags) @@ -684,7 +684,7 @@ Both are non-default subcommands. `--update` re-extracts only new or changed fil When `graphify-out/graph.json` already exists and the user asks a question about the corpus, answer from the graph rather than rebuilding it: ```bash -graphify query "" +$(cat graphify-out/.graphify_python) -m graphify query "" ``` Before traversal, expand the question against the graph's own vocabulary so a wording mismatch does not collapse the answer to noise. If the `graphify query` CLI is unavailable, fall back to an inline NetworkX traversal of `graphify-out/graph.json`. Answer using only what the graph output contains, and quote `source_location` when citing a specific fact. For that vocab-expansion step, the BFS/DFS traversal modes, the `--budget` cap, the NetworkX fallback, `save-result` feedback, and the `/graphify path` and `/graphify explain` flows, see `references/query.md`. diff --git a/graphify/skill-trae.md b/graphify/skill-trae.md index 2b73e78216..052dc548af 100644 --- a/graphify/skill-trae.md +++ b/graphify/skill-trae.md @@ -535,14 +535,14 @@ If `--obsidian` was given: - If `--obsidian-dir ` was also given, pass it via `--dir`. Otherwise defaults to `graphify-out/obsidian`. ```bash -graphify export obsidian -# or with custom dir: graphify export obsidian --dir ~/vaults/my-project +$(cat graphify-out/.graphify_python) -m graphify export obsidian +# Add `--dir ~/vaults/my-project` to use a custom directory. ``` Generate the HTML graph (always, unless `--no-viz`): ```bash -graphify export html # auto-aggregates to community view if graph > 5000 nodes +$(cat graphify-out/.graphify_python) -m graphify export html # auto-aggregates to community view if graph > 5000 nodes ``` ### Steps 6b-8 - Wiki, Neo4j, FalkorDB, SVG, GraphML, MCP, benchmark (only on their flags) @@ -682,7 +682,7 @@ Both are non-default subcommands. `--update` re-extracts only new or changed fil When `graphify-out/graph.json` already exists and the user asks a question about the corpus, answer from the graph rather than rebuilding it: ```bash -graphify query "" +$(cat graphify-out/.graphify_python) -m graphify query "" ``` Before traversal, expand the question against the graph's own vocabulary so a wording mismatch does not collapse the answer to noise. If the `graphify query` CLI is unavailable, fall back to an inline NetworkX traversal of `graphify-out/graph.json`. Answer using only what the graph output contains, and quote `source_location` when citing a specific fact. For that vocab-expansion step, the BFS/DFS traversal modes, the `--budget` cap, the NetworkX fallback, `save-result` feedback, and the `/graphify path` and `/graphify explain` flows, see `references/query.md`. diff --git a/graphify/skill-vscode.md b/graphify/skill-vscode.md index c187cd7d33..a251e12c02 100644 --- a/graphify/skill-vscode.md +++ b/graphify/skill-vscode.md @@ -533,14 +533,14 @@ If `--obsidian` was given: - If `--obsidian-dir ` was also given, pass it via `--dir`. Otherwise defaults to `graphify-out/obsidian`. ```bash -graphify export obsidian -# or with custom dir: graphify export obsidian --dir ~/vaults/my-project +$(cat graphify-out/.graphify_python) -m graphify export obsidian +# Add `--dir ~/vaults/my-project` to use a custom directory. ``` Generate the HTML graph (always, unless `--no-viz`): ```bash -graphify export html # auto-aggregates to community view if graph > 5000 nodes +$(cat graphify-out/.graphify_python) -m graphify export html # auto-aggregates to community view if graph > 5000 nodes ``` ### Steps 6b-8 - Wiki, Neo4j, FalkorDB, SVG, GraphML, MCP, benchmark (only on their flags) @@ -680,7 +680,7 @@ Both are non-default subcommands. `--update` re-extracts only new or changed fil When `graphify-out/graph.json` already exists and the user asks a question about the corpus, answer from the graph rather than rebuilding it: ```bash -graphify query "" +$(cat graphify-out/.graphify_python) -m graphify query "" ``` Before traversal, expand the question against the graph's own vocabulary so a wording mismatch does not collapse the answer to noise. If the `graphify query` CLI is unavailable, fall back to an inline NetworkX traversal of `graphify-out/graph.json`. Answer using only what the graph output contains, and quote `source_location` when citing a specific fact. For that vocab-expansion step, the BFS/DFS traversal modes, the `--budget` cap, the NetworkX fallback, `save-result` feedback, and the `/graphify path` and `/graphify explain` flows, see `references/query.md`. diff --git a/graphify/skill-windows.md b/graphify/skill-windows.md index 9534fbd706..fbbf2277ab 100644 --- a/graphify/skill-windows.md +++ b/graphify/skill-windows.md @@ -564,14 +564,14 @@ If `--obsidian` was given: - If `--obsidian-dir ` was also given, pass it via `--dir`. Otherwise defaults to `graphify-out/obsidian`. ```powershell -graphify export obsidian -# or with custom dir: graphify export obsidian --dir ~/vaults/my-project +& (Get-Content graphify-out\.graphify_python) -m graphify export obsidian +# Add `--dir ~/vaults/my-project` to use a custom directory. ``` Generate the HTML graph (always, unless `--no-viz`): ```powershell -graphify export html # auto-aggregates to community view if graph > 5000 nodes +& (Get-Content graphify-out\.graphify_python) -m graphify export html # auto-aggregates to community view if graph > 5000 nodes ``` ### Steps 6b-8 - Wiki, Neo4j, FalkorDB, SVG, GraphML, MCP, benchmark (only on their flags) @@ -713,7 +713,7 @@ Both are non-default subcommands. `--update` re-extracts only new or changed fil When `graphify-out/graph.json` already exists and the user asks a question about the corpus, answer from the graph rather than rebuilding it: ```powershell -graphify query "" +& (Get-Content graphify-out\.graphify_python) -m graphify query "" ``` Before traversal, expand the question against the graph's own vocabulary so a wording mismatch does not collapse the answer to noise. If the `graphify query` CLI is unavailable, fall back to an inline NetworkX traversal of `graphify-out/graph.json`. Answer using only what the graph output contains, and quote `source_location` when citing a specific fact. For that vocab-expansion step, the BFS/DFS traversal modes, the `--budget` cap, the NetworkX fallback, `save-result` feedback, and the `/graphify path` and `/graphify explain` flows, see `references/query.md`. diff --git a/graphify/skill.md b/graphify/skill.md index 7e7c797563..55b77d6828 100644 --- a/graphify/skill.md +++ b/graphify/skill.md @@ -537,14 +537,14 @@ If `--obsidian` was given: - If `--obsidian-dir ` was also given, pass it via `--dir`. Otherwise defaults to `graphify-out/obsidian`. ```bash -graphify export obsidian -# or with custom dir: graphify export obsidian --dir ~/vaults/my-project +$(cat graphify-out/.graphify_python) -m graphify export obsidian +# Add `--dir ~/vaults/my-project` to use a custom directory. ``` Generate the HTML graph (always, unless `--no-viz`): ```bash -graphify export html # auto-aggregates to community view if graph > 5000 nodes +$(cat graphify-out/.graphify_python) -m graphify export html # auto-aggregates to community view if graph > 5000 nodes ``` ### Steps 6b-8 - Wiki, Neo4j, FalkorDB, SVG, GraphML, MCP, benchmark (only on their flags) @@ -684,7 +684,7 @@ Both are non-default subcommands. `--update` re-extracts only new or changed fil When `graphify-out/graph.json` already exists and the user asks a question about the corpus, answer from the graph rather than rebuilding it: ```bash -graphify query "" +$(cat graphify-out/.graphify_python) -m graphify query "" ``` Before traversal, expand the question against the graph's own vocabulary so a wording mismatch does not collapse the answer to noise. If the `graphify query` CLI is unavailable, fall back to an inline NetworkX traversal of `graphify-out/graph.json`. Answer using only what the graph output contains, and quote `source_location` when citing a specific fact. For that vocab-expansion step, the BFS/DFS traversal modes, the `--budget` cap, the NetworkX fallback, `save-result` feedback, and the `/graphify path` and `/graphify explain` flows, see `references/query.md`. diff --git a/graphify/skills/agents/references/add-watch.md b/graphify/skills/agents/references/add-watch.md index 3ca94f656e..fcbe0cd488 100644 --- a/graphify/skills/agents/references/add-watch.md +++ b/graphify/skills/agents/references/add-watch.md @@ -13,7 +13,7 @@ from graphify.ingest import ingest from pathlib import Path try: - out = ingest('URL', Path('./raw'), author='AUTHOR', contributor='CONTRIBUTOR') + out = ingest(sys.argv[1], Path('./raw'), author=sys.argv[2] or None, contributor=sys.argv[3] or None) print(f'Saved to {out}') except ValueError as e: print(f'error: {e}', file=sys.stderr) @@ -21,10 +21,10 @@ except ValueError as e: except RuntimeError as e: print(f'error: {e}', file=sys.stderr) sys.exit(1) -" +" "URL" "AUTHOR" "CONTRIBUTOR" ``` -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 the scan root recorded in `graphify-out/.graphify_root` to merge the new file into the existing graph. +Replace `URL` with the actual URL and pass the user's `AUTHOR` or `CONTRIBUTOR` when provided; use an empty string for either omitted value. 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 the scan root recorded in `graphify-out/.graphify_root` 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]'`) diff --git a/graphify/skills/amp/references/add-watch.md b/graphify/skills/amp/references/add-watch.md index 3ca94f656e..fcbe0cd488 100644 --- a/graphify/skills/amp/references/add-watch.md +++ b/graphify/skills/amp/references/add-watch.md @@ -13,7 +13,7 @@ from graphify.ingest import ingest from pathlib import Path try: - out = ingest('URL', Path('./raw'), author='AUTHOR', contributor='CONTRIBUTOR') + out = ingest(sys.argv[1], Path('./raw'), author=sys.argv[2] or None, contributor=sys.argv[3] or None) print(f'Saved to {out}') except ValueError as e: print(f'error: {e}', file=sys.stderr) @@ -21,10 +21,10 @@ except ValueError as e: except RuntimeError as e: print(f'error: {e}', file=sys.stderr) sys.exit(1) -" +" "URL" "AUTHOR" "CONTRIBUTOR" ``` -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 the scan root recorded in `graphify-out/.graphify_root` to merge the new file into the existing graph. +Replace `URL` with the actual URL and pass the user's `AUTHOR` or `CONTRIBUTOR` when provided; use an empty string for either omitted value. 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 the scan root recorded in `graphify-out/.graphify_root` 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]'`) diff --git a/graphify/skills/claude/references/add-watch.md b/graphify/skills/claude/references/add-watch.md index 3ca94f656e..fcbe0cd488 100644 --- a/graphify/skills/claude/references/add-watch.md +++ b/graphify/skills/claude/references/add-watch.md @@ -13,7 +13,7 @@ from graphify.ingest import ingest from pathlib import Path try: - out = ingest('URL', Path('./raw'), author='AUTHOR', contributor='CONTRIBUTOR') + out = ingest(sys.argv[1], Path('./raw'), author=sys.argv[2] or None, contributor=sys.argv[3] or None) print(f'Saved to {out}') except ValueError as e: print(f'error: {e}', file=sys.stderr) @@ -21,10 +21,10 @@ except ValueError as e: except RuntimeError as e: print(f'error: {e}', file=sys.stderr) sys.exit(1) -" +" "URL" "AUTHOR" "CONTRIBUTOR" ``` -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 the scan root recorded in `graphify-out/.graphify_root` to merge the new file into the existing graph. +Replace `URL` with the actual URL and pass the user's `AUTHOR` or `CONTRIBUTOR` when provided; use an empty string for either omitted value. 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 the scan root recorded in `graphify-out/.graphify_root` 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]'`) diff --git a/graphify/skills/claw/references/add-watch.md b/graphify/skills/claw/references/add-watch.md index 3ca94f656e..fcbe0cd488 100644 --- a/graphify/skills/claw/references/add-watch.md +++ b/graphify/skills/claw/references/add-watch.md @@ -13,7 +13,7 @@ from graphify.ingest import ingest from pathlib import Path try: - out = ingest('URL', Path('./raw'), author='AUTHOR', contributor='CONTRIBUTOR') + out = ingest(sys.argv[1], Path('./raw'), author=sys.argv[2] or None, contributor=sys.argv[3] or None) print(f'Saved to {out}') except ValueError as e: print(f'error: {e}', file=sys.stderr) @@ -21,10 +21,10 @@ except ValueError as e: except RuntimeError as e: print(f'error: {e}', file=sys.stderr) sys.exit(1) -" +" "URL" "AUTHOR" "CONTRIBUTOR" ``` -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 the scan root recorded in `graphify-out/.graphify_root` to merge the new file into the existing graph. +Replace `URL` with the actual URL and pass the user's `AUTHOR` or `CONTRIBUTOR` when provided; use an empty string for either omitted value. 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 the scan root recorded in `graphify-out/.graphify_root` 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]'`) diff --git a/graphify/skills/codex/references/add-watch.md b/graphify/skills/codex/references/add-watch.md index 3ca94f656e..fcbe0cd488 100644 --- a/graphify/skills/codex/references/add-watch.md +++ b/graphify/skills/codex/references/add-watch.md @@ -13,7 +13,7 @@ from graphify.ingest import ingest from pathlib import Path try: - out = ingest('URL', Path('./raw'), author='AUTHOR', contributor='CONTRIBUTOR') + out = ingest(sys.argv[1], Path('./raw'), author=sys.argv[2] or None, contributor=sys.argv[3] or None) print(f'Saved to {out}') except ValueError as e: print(f'error: {e}', file=sys.stderr) @@ -21,10 +21,10 @@ except ValueError as e: except RuntimeError as e: print(f'error: {e}', file=sys.stderr) sys.exit(1) -" +" "URL" "AUTHOR" "CONTRIBUTOR" ``` -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 the scan root recorded in `graphify-out/.graphify_root` to merge the new file into the existing graph. +Replace `URL` with the actual URL and pass the user's `AUTHOR` or `CONTRIBUTOR` when provided; use an empty string for either omitted value. 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 the scan root recorded in `graphify-out/.graphify_root` 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]'`) diff --git a/graphify/skills/copilot/references/add-watch.md b/graphify/skills/copilot/references/add-watch.md index 3ca94f656e..fcbe0cd488 100644 --- a/graphify/skills/copilot/references/add-watch.md +++ b/graphify/skills/copilot/references/add-watch.md @@ -13,7 +13,7 @@ from graphify.ingest import ingest from pathlib import Path try: - out = ingest('URL', Path('./raw'), author='AUTHOR', contributor='CONTRIBUTOR') + out = ingest(sys.argv[1], Path('./raw'), author=sys.argv[2] or None, contributor=sys.argv[3] or None) print(f'Saved to {out}') except ValueError as e: print(f'error: {e}', file=sys.stderr) @@ -21,10 +21,10 @@ except ValueError as e: except RuntimeError as e: print(f'error: {e}', file=sys.stderr) sys.exit(1) -" +" "URL" "AUTHOR" "CONTRIBUTOR" ``` -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 the scan root recorded in `graphify-out/.graphify_root` to merge the new file into the existing graph. +Replace `URL` with the actual URL and pass the user's `AUTHOR` or `CONTRIBUTOR` when provided; use an empty string for either omitted value. 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 the scan root recorded in `graphify-out/.graphify_root` 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]'`) diff --git a/graphify/skills/droid/references/add-watch.md b/graphify/skills/droid/references/add-watch.md index 3ca94f656e..fcbe0cd488 100644 --- a/graphify/skills/droid/references/add-watch.md +++ b/graphify/skills/droid/references/add-watch.md @@ -13,7 +13,7 @@ from graphify.ingest import ingest from pathlib import Path try: - out = ingest('URL', Path('./raw'), author='AUTHOR', contributor='CONTRIBUTOR') + out = ingest(sys.argv[1], Path('./raw'), author=sys.argv[2] or None, contributor=sys.argv[3] or None) print(f'Saved to {out}') except ValueError as e: print(f'error: {e}', file=sys.stderr) @@ -21,10 +21,10 @@ except ValueError as e: except RuntimeError as e: print(f'error: {e}', file=sys.stderr) sys.exit(1) -" +" "URL" "AUTHOR" "CONTRIBUTOR" ``` -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 the scan root recorded in `graphify-out/.graphify_root` to merge the new file into the existing graph. +Replace `URL` with the actual URL and pass the user's `AUTHOR` or `CONTRIBUTOR` when provided; use an empty string for either omitted value. 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 the scan root recorded in `graphify-out/.graphify_root` 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]'`) diff --git a/graphify/skills/kilo/references/add-watch.md b/graphify/skills/kilo/references/add-watch.md index 3ca94f656e..fcbe0cd488 100644 --- a/graphify/skills/kilo/references/add-watch.md +++ b/graphify/skills/kilo/references/add-watch.md @@ -13,7 +13,7 @@ from graphify.ingest import ingest from pathlib import Path try: - out = ingest('URL', Path('./raw'), author='AUTHOR', contributor='CONTRIBUTOR') + out = ingest(sys.argv[1], Path('./raw'), author=sys.argv[2] or None, contributor=sys.argv[3] or None) print(f'Saved to {out}') except ValueError as e: print(f'error: {e}', file=sys.stderr) @@ -21,10 +21,10 @@ except ValueError as e: except RuntimeError as e: print(f'error: {e}', file=sys.stderr) sys.exit(1) -" +" "URL" "AUTHOR" "CONTRIBUTOR" ``` -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 the scan root recorded in `graphify-out/.graphify_root` to merge the new file into the existing graph. +Replace `URL` with the actual URL and pass the user's `AUTHOR` or `CONTRIBUTOR` when provided; use an empty string for either omitted value. 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 the scan root recorded in `graphify-out/.graphify_root` 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]'`) diff --git a/graphify/skills/kiro/references/add-watch.md b/graphify/skills/kiro/references/add-watch.md index 3ca94f656e..fcbe0cd488 100644 --- a/graphify/skills/kiro/references/add-watch.md +++ b/graphify/skills/kiro/references/add-watch.md @@ -13,7 +13,7 @@ from graphify.ingest import ingest from pathlib import Path try: - out = ingest('URL', Path('./raw'), author='AUTHOR', contributor='CONTRIBUTOR') + out = ingest(sys.argv[1], Path('./raw'), author=sys.argv[2] or None, contributor=sys.argv[3] or None) print(f'Saved to {out}') except ValueError as e: print(f'error: {e}', file=sys.stderr) @@ -21,10 +21,10 @@ except ValueError as e: except RuntimeError as e: print(f'error: {e}', file=sys.stderr) sys.exit(1) -" +" "URL" "AUTHOR" "CONTRIBUTOR" ``` -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 the scan root recorded in `graphify-out/.graphify_root` to merge the new file into the existing graph. +Replace `URL` with the actual URL and pass the user's `AUTHOR` or `CONTRIBUTOR` when provided; use an empty string for either omitted value. 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 the scan root recorded in `graphify-out/.graphify_root` 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]'`) diff --git a/graphify/skills/opencode/references/add-watch.md b/graphify/skills/opencode/references/add-watch.md index 3ca94f656e..fcbe0cd488 100644 --- a/graphify/skills/opencode/references/add-watch.md +++ b/graphify/skills/opencode/references/add-watch.md @@ -13,7 +13,7 @@ from graphify.ingest import ingest from pathlib import Path try: - out = ingest('URL', Path('./raw'), author='AUTHOR', contributor='CONTRIBUTOR') + out = ingest(sys.argv[1], Path('./raw'), author=sys.argv[2] or None, contributor=sys.argv[3] or None) print(f'Saved to {out}') except ValueError as e: print(f'error: {e}', file=sys.stderr) @@ -21,10 +21,10 @@ except ValueError as e: except RuntimeError as e: print(f'error: {e}', file=sys.stderr) sys.exit(1) -" +" "URL" "AUTHOR" "CONTRIBUTOR" ``` -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 the scan root recorded in `graphify-out/.graphify_root` to merge the new file into the existing graph. +Replace `URL` with the actual URL and pass the user's `AUTHOR` or `CONTRIBUTOR` when provided; use an empty string for either omitted value. 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 the scan root recorded in `graphify-out/.graphify_root` 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]'`) diff --git a/graphify/skills/pi/references/add-watch.md b/graphify/skills/pi/references/add-watch.md index 3ca94f656e..fcbe0cd488 100644 --- a/graphify/skills/pi/references/add-watch.md +++ b/graphify/skills/pi/references/add-watch.md @@ -13,7 +13,7 @@ from graphify.ingest import ingest from pathlib import Path try: - out = ingest('URL', Path('./raw'), author='AUTHOR', contributor='CONTRIBUTOR') + out = ingest(sys.argv[1], Path('./raw'), author=sys.argv[2] or None, contributor=sys.argv[3] or None) print(f'Saved to {out}') except ValueError as e: print(f'error: {e}', file=sys.stderr) @@ -21,10 +21,10 @@ except ValueError as e: except RuntimeError as e: print(f'error: {e}', file=sys.stderr) sys.exit(1) -" +" "URL" "AUTHOR" "CONTRIBUTOR" ``` -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 the scan root recorded in `graphify-out/.graphify_root` to merge the new file into the existing graph. +Replace `URL` with the actual URL and pass the user's `AUTHOR` or `CONTRIBUTOR` when provided; use an empty string for either omitted value. 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 the scan root recorded in `graphify-out/.graphify_root` 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]'`) diff --git a/graphify/skills/trae/references/add-watch.md b/graphify/skills/trae/references/add-watch.md index 3ca94f656e..fcbe0cd488 100644 --- a/graphify/skills/trae/references/add-watch.md +++ b/graphify/skills/trae/references/add-watch.md @@ -13,7 +13,7 @@ from graphify.ingest import ingest from pathlib import Path try: - out = ingest('URL', Path('./raw'), author='AUTHOR', contributor='CONTRIBUTOR') + out = ingest(sys.argv[1], Path('./raw'), author=sys.argv[2] or None, contributor=sys.argv[3] or None) print(f'Saved to {out}') except ValueError as e: print(f'error: {e}', file=sys.stderr) @@ -21,10 +21,10 @@ except ValueError as e: except RuntimeError as e: print(f'error: {e}', file=sys.stderr) sys.exit(1) -" +" "URL" "AUTHOR" "CONTRIBUTOR" ``` -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 the scan root recorded in `graphify-out/.graphify_root` to merge the new file into the existing graph. +Replace `URL` with the actual URL and pass the user's `AUTHOR` or `CONTRIBUTOR` when provided; use an empty string for either omitted value. 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 the scan root recorded in `graphify-out/.graphify_root` 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]'`) diff --git a/graphify/skills/vscode/references/add-watch.md b/graphify/skills/vscode/references/add-watch.md index 3ca94f656e..fcbe0cd488 100644 --- a/graphify/skills/vscode/references/add-watch.md +++ b/graphify/skills/vscode/references/add-watch.md @@ -13,7 +13,7 @@ from graphify.ingest import ingest from pathlib import Path try: - out = ingest('URL', Path('./raw'), author='AUTHOR', contributor='CONTRIBUTOR') + out = ingest(sys.argv[1], Path('./raw'), author=sys.argv[2] or None, contributor=sys.argv[3] or None) print(f'Saved to {out}') except ValueError as e: print(f'error: {e}', file=sys.stderr) @@ -21,10 +21,10 @@ except ValueError as e: except RuntimeError as e: print(f'error: {e}', file=sys.stderr) sys.exit(1) -" +" "URL" "AUTHOR" "CONTRIBUTOR" ``` -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 the scan root recorded in `graphify-out/.graphify_root` to merge the new file into the existing graph. +Replace `URL` with the actual URL and pass the user's `AUTHOR` or `CONTRIBUTOR` when provided; use an empty string for either omitted value. 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 the scan root recorded in `graphify-out/.graphify_root` 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]'`) diff --git a/graphify/skills/windows/references/add-watch.md b/graphify/skills/windows/references/add-watch.md index 3ca94f656e..fcbe0cd488 100644 --- a/graphify/skills/windows/references/add-watch.md +++ b/graphify/skills/windows/references/add-watch.md @@ -13,7 +13,7 @@ from graphify.ingest import ingest from pathlib import Path try: - out = ingest('URL', Path('./raw'), author='AUTHOR', contributor='CONTRIBUTOR') + out = ingest(sys.argv[1], Path('./raw'), author=sys.argv[2] or None, contributor=sys.argv[3] or None) print(f'Saved to {out}') except ValueError as e: print(f'error: {e}', file=sys.stderr) @@ -21,10 +21,10 @@ except ValueError as e: except RuntimeError as e: print(f'error: {e}', file=sys.stderr) sys.exit(1) -" +" "URL" "AUTHOR" "CONTRIBUTOR" ``` -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 the scan root recorded in `graphify-out/.graphify_root` to merge the new file into the existing graph. +Replace `URL` with the actual URL and pass the user's `AUTHOR` or `CONTRIBUTOR` when provided; use an empty string for either omitted value. 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 the scan root recorded in `graphify-out/.graphify_root` 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]'`) diff --git a/tests/test_skillgen.py b/tests/test_skillgen.py index edf9c654a0..bdde04c2e7 100644 --- a/tests/test_skillgen.py +++ b/tests/test_skillgen.py @@ -116,6 +116,26 @@ def test_rendered_instructions_preserve_scan_root_and_runnable_commands(): assert "'INPUT_PATH'" not in artifact.content, artifact.path assert "'SPEC_PATH'" not in artifact.content, artifact.path + ingest_artifacts = [ + artifact + for artifact in artifacts + if "from graphify.ingest import ingest" in artifact.content + ] + assert ingest_artifacts + for artifact in ingest_artifacts: + assert ( + "out = ingest(sys.argv[1], Path('./raw'), author=sys.argv[2] or None, " + "contributor=sys.argv[3] or None)" + ) in artifact.content, artifact.path + assert "ingest('URL'" not in artifact.content, artifact.path + argv_close = ( + gen._PY_INVOKE_PS_CLOSE + ' "URL" "AUTHOR" "CONTRIBUTOR"' + if artifact.path == "graphify/skill-windows.md" + else '" "URL" "AUTHOR" "CONTRIBUTOR"' + ) + assert argv_close in artifact.content, artifact.path + + agents_core = next( artifact for artifact in artifacts @@ -125,6 +145,19 @@ def test_rendered_instructions_preserve_scan_root_and_runnable_commands(): assert "After each Agent call completes" not in agents_core.content assert "You MUST use the subagent tool here" in agents_core.content assert "After each subagent call completes" in agents_core.content + for command in ( + "export obsidian", + "export html", + 'query ""', + ): + assert ( + f"$(cat graphify-out/.graphify_python) -m graphify {command}" + in agents_core.content + ), command + assert ( + f"& (Get-Content graphify-out\\.graphify_python) -m graphify {command}" + in windows_core.content + ), command transcription_artifacts = [ artifact diff --git a/tools/skillgen/expected/graphify__skill-agents.md b/tools/skillgen/expected/graphify__skill-agents.md index 78361e1bde..02be4d1f6f 100644 --- a/tools/skillgen/expected/graphify__skill-agents.md +++ b/tools/skillgen/expected/graphify__skill-agents.md @@ -534,14 +534,14 @@ If `--obsidian` was given: - If `--obsidian-dir ` was also given, pass it via `--dir`. Otherwise defaults to `graphify-out/obsidian`. ```bash -graphify export obsidian -# or with custom dir: graphify export obsidian --dir ~/vaults/my-project +$(cat graphify-out/.graphify_python) -m graphify export obsidian +# Add `--dir ~/vaults/my-project` to use a custom directory. ``` Generate the HTML graph (always, unless `--no-viz`): ```bash -graphify export html # auto-aggregates to community view if graph > 5000 nodes +$(cat graphify-out/.graphify_python) -m graphify export html # auto-aggregates to community view if graph > 5000 nodes ``` ### Steps 6b-8 - Wiki, Neo4j, FalkorDB, SVG, GraphML, MCP, benchmark (only on their flags) @@ -681,7 +681,7 @@ Both are non-default subcommands. `--update` re-extracts only new or changed fil When `graphify-out/graph.json` already exists and the user asks a question about the corpus, answer from the graph rather than rebuilding it: ```bash -graphify query "" +$(cat graphify-out/.graphify_python) -m graphify query "" ``` Before traversal, expand the question against the graph's own vocabulary so a wording mismatch does not collapse the answer to noise. If the `graphify query` CLI is unavailable, fall back to an inline NetworkX traversal of `graphify-out/graph.json`. Answer using only what the graph output contains, and quote `source_location` when citing a specific fact. For that vocab-expansion step, the BFS/DFS traversal modes, the `--budget` cap, the NetworkX fallback, `save-result` feedback, and the `/graphify path` and `/graphify explain` flows, see `references/query.md`. diff --git a/tools/skillgen/expected/graphify__skill-aider.md b/tools/skillgen/expected/graphify__skill-aider.md index 085be97cd2..aacd9f31fc 100644 --- a/tools/skillgen/expected/graphify__skill-aider.md +++ b/tools/skillgen/expected/graphify__skill-aider.md @@ -1200,7 +1200,7 @@ from graphify.ingest import ingest from pathlib import Path try: - out = ingest('URL', Path('./raw'), author='AUTHOR', contributor='CONTRIBUTOR') + out = ingest(sys.argv[1], Path('./raw'), author=sys.argv[2] or None, contributor=sys.argv[3] or None) print(f'Saved to {out}') except ValueError as e: print(f'error: {e}', file=sys.stderr) @@ -1208,10 +1208,10 @@ except ValueError as e: except RuntimeError as e: print(f'error: {e}', file=sys.stderr) sys.exit(1) -" +" "URL" "AUTHOR" "CONTRIBUTOR" ``` -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. +Replace `URL` with the actual URL and pass the user's `AUTHOR` or `CONTRIBUTOR` when provided; use an empty string for either omitted value. 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): - Twitter/X → fetched via oEmbed, saved as `.md` with tweet text and author diff --git a/tools/skillgen/expected/graphify__skill-amp.md b/tools/skillgen/expected/graphify__skill-amp.md index 78361e1bde..02be4d1f6f 100644 --- a/tools/skillgen/expected/graphify__skill-amp.md +++ b/tools/skillgen/expected/graphify__skill-amp.md @@ -534,14 +534,14 @@ If `--obsidian` was given: - If `--obsidian-dir ` was also given, pass it via `--dir`. Otherwise defaults to `graphify-out/obsidian`. ```bash -graphify export obsidian -# or with custom dir: graphify export obsidian --dir ~/vaults/my-project +$(cat graphify-out/.graphify_python) -m graphify export obsidian +# Add `--dir ~/vaults/my-project` to use a custom directory. ``` Generate the HTML graph (always, unless `--no-viz`): ```bash -graphify export html # auto-aggregates to community view if graph > 5000 nodes +$(cat graphify-out/.graphify_python) -m graphify export html # auto-aggregates to community view if graph > 5000 nodes ``` ### Steps 6b-8 - Wiki, Neo4j, FalkorDB, SVG, GraphML, MCP, benchmark (only on their flags) @@ -681,7 +681,7 @@ Both are non-default subcommands. `--update` re-extracts only new or changed fil When `graphify-out/graph.json` already exists and the user asks a question about the corpus, answer from the graph rather than rebuilding it: ```bash -graphify query "" +$(cat graphify-out/.graphify_python) -m graphify query "" ``` Before traversal, expand the question against the graph's own vocabulary so a wording mismatch does not collapse the answer to noise. If the `graphify query` CLI is unavailable, fall back to an inline NetworkX traversal of `graphify-out/graph.json`. Answer using only what the graph output contains, and quote `source_location` when citing a specific fact. For that vocab-expansion step, the BFS/DFS traversal modes, the `--budget` cap, the NetworkX fallback, `save-result` feedback, and the `/graphify path` and `/graphify explain` flows, see `references/query.md`. diff --git a/tools/skillgen/expected/graphify__skill-claw.md b/tools/skillgen/expected/graphify__skill-claw.md index 7e7c797563..55b77d6828 100644 --- a/tools/skillgen/expected/graphify__skill-claw.md +++ b/tools/skillgen/expected/graphify__skill-claw.md @@ -537,14 +537,14 @@ If `--obsidian` was given: - If `--obsidian-dir ` was also given, pass it via `--dir`. Otherwise defaults to `graphify-out/obsidian`. ```bash -graphify export obsidian -# or with custom dir: graphify export obsidian --dir ~/vaults/my-project +$(cat graphify-out/.graphify_python) -m graphify export obsidian +# Add `--dir ~/vaults/my-project` to use a custom directory. ``` Generate the HTML graph (always, unless `--no-viz`): ```bash -graphify export html # auto-aggregates to community view if graph > 5000 nodes +$(cat graphify-out/.graphify_python) -m graphify export html # auto-aggregates to community view if graph > 5000 nodes ``` ### Steps 6b-8 - Wiki, Neo4j, FalkorDB, SVG, GraphML, MCP, benchmark (only on their flags) @@ -684,7 +684,7 @@ Both are non-default subcommands. `--update` re-extracts only new or changed fil When `graphify-out/graph.json` already exists and the user asks a question about the corpus, answer from the graph rather than rebuilding it: ```bash -graphify query "" +$(cat graphify-out/.graphify_python) -m graphify query "" ``` Before traversal, expand the question against the graph's own vocabulary so a wording mismatch does not collapse the answer to noise. If the `graphify query` CLI is unavailable, fall back to an inline NetworkX traversal of `graphify-out/graph.json`. Answer using only what the graph output contains, and quote `source_location` when citing a specific fact. For that vocab-expansion step, the BFS/DFS traversal modes, the `--budget` cap, the NetworkX fallback, `save-result` feedback, and the `/graphify path` and `/graphify explain` flows, see `references/query.md`. diff --git a/tools/skillgen/expected/graphify__skill-codex.md b/tools/skillgen/expected/graphify__skill-codex.md index 5e085f0a6f..fbd068db2b 100644 --- a/tools/skillgen/expected/graphify__skill-codex.md +++ b/tools/skillgen/expected/graphify__skill-codex.md @@ -534,14 +534,14 @@ If `--obsidian` was given: - If `--obsidian-dir ` was also given, pass it via `--dir`. Otherwise defaults to `graphify-out/obsidian`. ```bash -graphify export obsidian -# or with custom dir: graphify export obsidian --dir ~/vaults/my-project +$(cat graphify-out/.graphify_python) -m graphify export obsidian +# Add `--dir ~/vaults/my-project` to use a custom directory. ``` Generate the HTML graph (always, unless `--no-viz`): ```bash -graphify export html # auto-aggregates to community view if graph > 5000 nodes +$(cat graphify-out/.graphify_python) -m graphify export html # auto-aggregates to community view if graph > 5000 nodes ``` ### Steps 6b-8 - Wiki, Neo4j, FalkorDB, SVG, GraphML, MCP, benchmark (only on their flags) @@ -681,7 +681,7 @@ Both are non-default subcommands. `--update` re-extracts only new or changed fil When `graphify-out/graph.json` already exists and the user asks a question about the corpus, answer from the graph rather than rebuilding it: ```bash -graphify query "" +$(cat graphify-out/.graphify_python) -m graphify query "" ``` Before traversal, expand the question against the graph's own vocabulary so a wording mismatch does not collapse the answer to noise. If the `graphify query` CLI is unavailable, fall back to an inline NetworkX traversal of `graphify-out/graph.json`. Answer using only what the graph output contains, and quote `source_location` when citing a specific fact. For that vocab-expansion step, the BFS/DFS traversal modes, the `--budget` cap, the NetworkX fallback, `save-result` feedback, and the `/graphify path` and `/graphify explain` flows, see `references/query.md`. diff --git a/tools/skillgen/expected/graphify__skill-copilot.md b/tools/skillgen/expected/graphify__skill-copilot.md index 7e7c797563..55b77d6828 100644 --- a/tools/skillgen/expected/graphify__skill-copilot.md +++ b/tools/skillgen/expected/graphify__skill-copilot.md @@ -537,14 +537,14 @@ If `--obsidian` was given: - If `--obsidian-dir ` was also given, pass it via `--dir`. Otherwise defaults to `graphify-out/obsidian`. ```bash -graphify export obsidian -# or with custom dir: graphify export obsidian --dir ~/vaults/my-project +$(cat graphify-out/.graphify_python) -m graphify export obsidian +# Add `--dir ~/vaults/my-project` to use a custom directory. ``` Generate the HTML graph (always, unless `--no-viz`): ```bash -graphify export html # auto-aggregates to community view if graph > 5000 nodes +$(cat graphify-out/.graphify_python) -m graphify export html # auto-aggregates to community view if graph > 5000 nodes ``` ### Steps 6b-8 - Wiki, Neo4j, FalkorDB, SVG, GraphML, MCP, benchmark (only on their flags) @@ -684,7 +684,7 @@ Both are non-default subcommands. `--update` re-extracts only new or changed fil When `graphify-out/graph.json` already exists and the user asks a question about the corpus, answer from the graph rather than rebuilding it: ```bash -graphify query "" +$(cat graphify-out/.graphify_python) -m graphify query "" ``` Before traversal, expand the question against the graph's own vocabulary so a wording mismatch does not collapse the answer to noise. If the `graphify query` CLI is unavailable, fall back to an inline NetworkX traversal of `graphify-out/graph.json`. Answer using only what the graph output contains, and quote `source_location` when citing a specific fact. For that vocab-expansion step, the BFS/DFS traversal modes, the `--budget` cap, the NetworkX fallback, `save-result` feedback, and the `/graphify path` and `/graphify explain` flows, see `references/query.md`. diff --git a/tools/skillgen/expected/graphify__skill-devin.md b/tools/skillgen/expected/graphify__skill-devin.md index bea72f7eea..8740ca565a 100644 --- a/tools/skillgen/expected/graphify__skill-devin.md +++ b/tools/skillgen/expected/graphify__skill-devin.md @@ -1332,7 +1332,7 @@ from graphify.ingest import ingest from pathlib import Path try: - out = ingest('URL', Path('./raw'), author='AUTHOR', contributor='CONTRIBUTOR') + out = ingest(sys.argv[1], Path('./raw'), author=sys.argv[2] or None, contributor=sys.argv[3] or None) print(f'Saved to {out}') except ValueError as e: print(f'error: {e}', file=sys.stderr) @@ -1340,10 +1340,10 @@ except ValueError as e: except RuntimeError as e: print(f'error: {e}', file=sys.stderr) sys.exit(1) -" +" "URL" "AUTHOR" "CONTRIBUTOR" ``` -Replace `URL` with the actual URL, `AUTHOR` with the user's name if provided, `CONTRIBUTOR` likewise. After a successful save, automatically run the `--update` pipeline on `./raw` to merge the new file into the existing graph. +Replace `URL` with the actual URL and pass the user's `AUTHOR` or `CONTRIBUTOR` when provided; use an empty string for either omitted value. 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): - Twitter/X -> fetched via oEmbed, saved as `.md` with tweet text and author diff --git a/tools/skillgen/expected/graphify__skill-droid.md b/tools/skillgen/expected/graphify__skill-droid.md index 2a896a6fa1..b9de11f80c 100644 --- a/tools/skillgen/expected/graphify__skill-droid.md +++ b/tools/skillgen/expected/graphify__skill-droid.md @@ -534,14 +534,14 @@ If `--obsidian` was given: - If `--obsidian-dir ` was also given, pass it via `--dir`. Otherwise defaults to `graphify-out/obsidian`. ```bash -graphify export obsidian -# or with custom dir: graphify export obsidian --dir ~/vaults/my-project +$(cat graphify-out/.graphify_python) -m graphify export obsidian +# Add `--dir ~/vaults/my-project` to use a custom directory. ``` Generate the HTML graph (always, unless `--no-viz`): ```bash -graphify export html # auto-aggregates to community view if graph > 5000 nodes +$(cat graphify-out/.graphify_python) -m graphify export html # auto-aggregates to community view if graph > 5000 nodes ``` ### Steps 6b-8 - Wiki, Neo4j, FalkorDB, SVG, GraphML, MCP, benchmark (only on their flags) @@ -681,7 +681,7 @@ Both are non-default subcommands. `--update` re-extracts only new or changed fil When `graphify-out/graph.json` already exists and the user asks a question about the corpus, answer from the graph rather than rebuilding it: ```bash -graphify query "" +$(cat graphify-out/.graphify_python) -m graphify query "" ``` Before traversal, expand the question against the graph's own vocabulary so a wording mismatch does not collapse the answer to noise. If the `graphify query` CLI is unavailable, fall back to an inline NetworkX traversal of `graphify-out/graph.json`. Answer using only what the graph output contains, and quote `source_location` when citing a specific fact. For that vocab-expansion step, the BFS/DFS traversal modes, the `--budget` cap, the NetworkX fallback, `save-result` feedback, and the `/graphify path` and `/graphify explain` flows, see `references/query.md`. diff --git a/tools/skillgen/expected/graphify__skill-kilo.md b/tools/skillgen/expected/graphify__skill-kilo.md index 05d3e9f4a0..ef93d78a4d 100644 --- a/tools/skillgen/expected/graphify__skill-kilo.md +++ b/tools/skillgen/expected/graphify__skill-kilo.md @@ -537,14 +537,14 @@ If `--obsidian` was given: - If `--obsidian-dir ` was also given, pass it via `--dir`. Otherwise defaults to `graphify-out/obsidian`. ```bash -graphify export obsidian -# or with custom dir: graphify export obsidian --dir ~/vaults/my-project +$(cat graphify-out/.graphify_python) -m graphify export obsidian +# Add `--dir ~/vaults/my-project` to use a custom directory. ``` Generate the HTML graph (always, unless `--no-viz`): ```bash -graphify export html # auto-aggregates to community view if graph > 5000 nodes +$(cat graphify-out/.graphify_python) -m graphify export html # auto-aggregates to community view if graph > 5000 nodes ``` ### Steps 6b-8 - Wiki, Neo4j, FalkorDB, SVG, GraphML, MCP, benchmark (only on their flags) @@ -684,7 +684,7 @@ Both are non-default subcommands. `--update` re-extracts only new or changed fil When `graphify-out/graph.json` already exists and the user asks a question about the corpus, answer from the graph rather than rebuilding it: ```bash -graphify query "" +$(cat graphify-out/.graphify_python) -m graphify query "" ``` Before traversal, expand the question against the graph's own vocabulary so a wording mismatch does not collapse the answer to noise. If the `graphify query` CLI is unavailable, fall back to an inline NetworkX traversal of `graphify-out/graph.json`. Answer using only what the graph output contains, and quote `source_location` when citing a specific fact. For that vocab-expansion step, the BFS/DFS traversal modes, the `--budget` cap, the NetworkX fallback, `save-result` feedback, and the `/graphify path` and `/graphify explain` flows, see `references/query.md`. diff --git a/tools/skillgen/expected/graphify__skill-kiro.md b/tools/skillgen/expected/graphify__skill-kiro.md index 7e7c797563..55b77d6828 100644 --- a/tools/skillgen/expected/graphify__skill-kiro.md +++ b/tools/skillgen/expected/graphify__skill-kiro.md @@ -537,14 +537,14 @@ If `--obsidian` was given: - If `--obsidian-dir ` was also given, pass it via `--dir`. Otherwise defaults to `graphify-out/obsidian`. ```bash -graphify export obsidian -# or with custom dir: graphify export obsidian --dir ~/vaults/my-project +$(cat graphify-out/.graphify_python) -m graphify export obsidian +# Add `--dir ~/vaults/my-project` to use a custom directory. ``` Generate the HTML graph (always, unless `--no-viz`): ```bash -graphify export html # auto-aggregates to community view if graph > 5000 nodes +$(cat graphify-out/.graphify_python) -m graphify export html # auto-aggregates to community view if graph > 5000 nodes ``` ### Steps 6b-8 - Wiki, Neo4j, FalkorDB, SVG, GraphML, MCP, benchmark (only on their flags) @@ -684,7 +684,7 @@ Both are non-default subcommands. `--update` re-extracts only new or changed fil When `graphify-out/graph.json` already exists and the user asks a question about the corpus, answer from the graph rather than rebuilding it: ```bash -graphify query "" +$(cat graphify-out/.graphify_python) -m graphify query "" ``` Before traversal, expand the question against the graph's own vocabulary so a wording mismatch does not collapse the answer to noise. If the `graphify query` CLI is unavailable, fall back to an inline NetworkX traversal of `graphify-out/graph.json`. Answer using only what the graph output contains, and quote `source_location` when citing a specific fact. For that vocab-expansion step, the BFS/DFS traversal modes, the `--budget` cap, the NetworkX fallback, `save-result` feedback, and the `/graphify path` and `/graphify explain` flows, see `references/query.md`. diff --git a/tools/skillgen/expected/graphify__skill-opencode.md b/tools/skillgen/expected/graphify__skill-opencode.md index 313958ae2d..f1afcb1aa3 100644 --- a/tools/skillgen/expected/graphify__skill-opencode.md +++ b/tools/skillgen/expected/graphify__skill-opencode.md @@ -529,14 +529,14 @@ If `--obsidian` was given: - If `--obsidian-dir ` was also given, pass it via `--dir`. Otherwise defaults to `graphify-out/obsidian`. ```bash -graphify export obsidian -# or with custom dir: graphify export obsidian --dir ~/vaults/my-project +$(cat graphify-out/.graphify_python) -m graphify export obsidian +# Add `--dir ~/vaults/my-project` to use a custom directory. ``` Generate the HTML graph (always, unless `--no-viz`): ```bash -graphify export html # auto-aggregates to community view if graph > 5000 nodes +$(cat graphify-out/.graphify_python) -m graphify export html # auto-aggregates to community view if graph > 5000 nodes ``` ### Steps 6b-8 - Wiki, Neo4j, FalkorDB, SVG, GraphML, MCP, benchmark (only on their flags) @@ -676,7 +676,7 @@ Both are non-default subcommands. `--update` re-extracts only new or changed fil When `graphify-out/graph.json` already exists and the user asks a question about the corpus, answer from the graph rather than rebuilding it: ```bash -graphify query "" +$(cat graphify-out/.graphify_python) -m graphify query "" ``` Before traversal, expand the question against the graph's own vocabulary so a wording mismatch does not collapse the answer to noise. If the `graphify query` CLI is unavailable, fall back to an inline NetworkX traversal of `graphify-out/graph.json`. Answer using only what the graph output contains, and quote `source_location` when citing a specific fact. For that vocab-expansion step, the BFS/DFS traversal modes, the `--budget` cap, the NetworkX fallback, `save-result` feedback, and the `/graphify path` and `/graphify explain` flows, see `references/query.md`. diff --git a/tools/skillgen/expected/graphify__skill-pi.md b/tools/skillgen/expected/graphify__skill-pi.md index 7e7c797563..55b77d6828 100644 --- a/tools/skillgen/expected/graphify__skill-pi.md +++ b/tools/skillgen/expected/graphify__skill-pi.md @@ -537,14 +537,14 @@ If `--obsidian` was given: - If `--obsidian-dir ` was also given, pass it via `--dir`. Otherwise defaults to `graphify-out/obsidian`. ```bash -graphify export obsidian -# or with custom dir: graphify export obsidian --dir ~/vaults/my-project +$(cat graphify-out/.graphify_python) -m graphify export obsidian +# Add `--dir ~/vaults/my-project` to use a custom directory. ``` Generate the HTML graph (always, unless `--no-viz`): ```bash -graphify export html # auto-aggregates to community view if graph > 5000 nodes +$(cat graphify-out/.graphify_python) -m graphify export html # auto-aggregates to community view if graph > 5000 nodes ``` ### Steps 6b-8 - Wiki, Neo4j, FalkorDB, SVG, GraphML, MCP, benchmark (only on their flags) @@ -684,7 +684,7 @@ Both are non-default subcommands. `--update` re-extracts only new or changed fil When `graphify-out/graph.json` already exists and the user asks a question about the corpus, answer from the graph rather than rebuilding it: ```bash -graphify query "" +$(cat graphify-out/.graphify_python) -m graphify query "" ``` Before traversal, expand the question against the graph's own vocabulary so a wording mismatch does not collapse the answer to noise. If the `graphify query` CLI is unavailable, fall back to an inline NetworkX traversal of `graphify-out/graph.json`. Answer using only what the graph output contains, and quote `source_location` when citing a specific fact. For that vocab-expansion step, the BFS/DFS traversal modes, the `--budget` cap, the NetworkX fallback, `save-result` feedback, and the `/graphify path` and `/graphify explain` flows, see `references/query.md`. diff --git a/tools/skillgen/expected/graphify__skill-trae.md b/tools/skillgen/expected/graphify__skill-trae.md index 2b73e78216..052dc548af 100644 --- a/tools/skillgen/expected/graphify__skill-trae.md +++ b/tools/skillgen/expected/graphify__skill-trae.md @@ -535,14 +535,14 @@ If `--obsidian` was given: - If `--obsidian-dir ` was also given, pass it via `--dir`. Otherwise defaults to `graphify-out/obsidian`. ```bash -graphify export obsidian -# or with custom dir: graphify export obsidian --dir ~/vaults/my-project +$(cat graphify-out/.graphify_python) -m graphify export obsidian +# Add `--dir ~/vaults/my-project` to use a custom directory. ``` Generate the HTML graph (always, unless `--no-viz`): ```bash -graphify export html # auto-aggregates to community view if graph > 5000 nodes +$(cat graphify-out/.graphify_python) -m graphify export html # auto-aggregates to community view if graph > 5000 nodes ``` ### Steps 6b-8 - Wiki, Neo4j, FalkorDB, SVG, GraphML, MCP, benchmark (only on their flags) @@ -682,7 +682,7 @@ Both are non-default subcommands. `--update` re-extracts only new or changed fil When `graphify-out/graph.json` already exists and the user asks a question about the corpus, answer from the graph rather than rebuilding it: ```bash -graphify query "" +$(cat graphify-out/.graphify_python) -m graphify query "" ``` Before traversal, expand the question against the graph's own vocabulary so a wording mismatch does not collapse the answer to noise. If the `graphify query` CLI is unavailable, fall back to an inline NetworkX traversal of `graphify-out/graph.json`. Answer using only what the graph output contains, and quote `source_location` when citing a specific fact. For that vocab-expansion step, the BFS/DFS traversal modes, the `--budget` cap, the NetworkX fallback, `save-result` feedback, and the `/graphify path` and `/graphify explain` flows, see `references/query.md`. diff --git a/tools/skillgen/expected/graphify__skill-vscode.md b/tools/skillgen/expected/graphify__skill-vscode.md index c187cd7d33..a251e12c02 100644 --- a/tools/skillgen/expected/graphify__skill-vscode.md +++ b/tools/skillgen/expected/graphify__skill-vscode.md @@ -533,14 +533,14 @@ If `--obsidian` was given: - If `--obsidian-dir ` was also given, pass it via `--dir`. Otherwise defaults to `graphify-out/obsidian`. ```bash -graphify export obsidian -# or with custom dir: graphify export obsidian --dir ~/vaults/my-project +$(cat graphify-out/.graphify_python) -m graphify export obsidian +# Add `--dir ~/vaults/my-project` to use a custom directory. ``` Generate the HTML graph (always, unless `--no-viz`): ```bash -graphify export html # auto-aggregates to community view if graph > 5000 nodes +$(cat graphify-out/.graphify_python) -m graphify export html # auto-aggregates to community view if graph > 5000 nodes ``` ### Steps 6b-8 - Wiki, Neo4j, FalkorDB, SVG, GraphML, MCP, benchmark (only on their flags) @@ -680,7 +680,7 @@ Both are non-default subcommands. `--update` re-extracts only new or changed fil When `graphify-out/graph.json` already exists and the user asks a question about the corpus, answer from the graph rather than rebuilding it: ```bash -graphify query "" +$(cat graphify-out/.graphify_python) -m graphify query "" ``` Before traversal, expand the question against the graph's own vocabulary so a wording mismatch does not collapse the answer to noise. If the `graphify query` CLI is unavailable, fall back to an inline NetworkX traversal of `graphify-out/graph.json`. Answer using only what the graph output contains, and quote `source_location` when citing a specific fact. For that vocab-expansion step, the BFS/DFS traversal modes, the `--budget` cap, the NetworkX fallback, `save-result` feedback, and the `/graphify path` and `/graphify explain` flows, see `references/query.md`. diff --git a/tools/skillgen/expected/graphify__skill-windows.md b/tools/skillgen/expected/graphify__skill-windows.md index 9534fbd706..fbbf2277ab 100644 --- a/tools/skillgen/expected/graphify__skill-windows.md +++ b/tools/skillgen/expected/graphify__skill-windows.md @@ -564,14 +564,14 @@ If `--obsidian` was given: - If `--obsidian-dir ` was also given, pass it via `--dir`. Otherwise defaults to `graphify-out/obsidian`. ```powershell -graphify export obsidian -# or with custom dir: graphify export obsidian --dir ~/vaults/my-project +& (Get-Content graphify-out\.graphify_python) -m graphify export obsidian +# Add `--dir ~/vaults/my-project` to use a custom directory. ``` Generate the HTML graph (always, unless `--no-viz`): ```powershell -graphify export html # auto-aggregates to community view if graph > 5000 nodes +& (Get-Content graphify-out\.graphify_python) -m graphify export html # auto-aggregates to community view if graph > 5000 nodes ``` ### Steps 6b-8 - Wiki, Neo4j, FalkorDB, SVG, GraphML, MCP, benchmark (only on their flags) @@ -713,7 +713,7 @@ Both are non-default subcommands. `--update` re-extracts only new or changed fil When `graphify-out/graph.json` already exists and the user asks a question about the corpus, answer from the graph rather than rebuilding it: ```powershell -graphify query "" +& (Get-Content graphify-out\.graphify_python) -m graphify query "" ``` Before traversal, expand the question against the graph's own vocabulary so a wording mismatch does not collapse the answer to noise. If the `graphify query` CLI is unavailable, fall back to an inline NetworkX traversal of `graphify-out/graph.json`. Answer using only what the graph output contains, and quote `source_location` when citing a specific fact. For that vocab-expansion step, the BFS/DFS traversal modes, the `--budget` cap, the NetworkX fallback, `save-result` feedback, and the `/graphify path` and `/graphify explain` flows, see `references/query.md`. diff --git a/tools/skillgen/expected/graphify__skill.md b/tools/skillgen/expected/graphify__skill.md index 7e7c797563..55b77d6828 100644 --- a/tools/skillgen/expected/graphify__skill.md +++ b/tools/skillgen/expected/graphify__skill.md @@ -537,14 +537,14 @@ If `--obsidian` was given: - If `--obsidian-dir ` was also given, pass it via `--dir`. Otherwise defaults to `graphify-out/obsidian`. ```bash -graphify export obsidian -# or with custom dir: graphify export obsidian --dir ~/vaults/my-project +$(cat graphify-out/.graphify_python) -m graphify export obsidian +# Add `--dir ~/vaults/my-project` to use a custom directory. ``` Generate the HTML graph (always, unless `--no-viz`): ```bash -graphify export html # auto-aggregates to community view if graph > 5000 nodes +$(cat graphify-out/.graphify_python) -m graphify export html # auto-aggregates to community view if graph > 5000 nodes ``` ### Steps 6b-8 - Wiki, Neo4j, FalkorDB, SVG, GraphML, MCP, benchmark (only on their flags) @@ -684,7 +684,7 @@ Both are non-default subcommands. `--update` re-extracts only new or changed fil When `graphify-out/graph.json` already exists and the user asks a question about the corpus, answer from the graph rather than rebuilding it: ```bash -graphify query "" +$(cat graphify-out/.graphify_python) -m graphify query "" ``` Before traversal, expand the question against the graph's own vocabulary so a wording mismatch does not collapse the answer to noise. If the `graphify query` CLI is unavailable, fall back to an inline NetworkX traversal of `graphify-out/graph.json`. Answer using only what the graph output contains, and quote `source_location` when citing a specific fact. For that vocab-expansion step, the BFS/DFS traversal modes, the `--budget` cap, the NetworkX fallback, `save-result` feedback, and the `/graphify path` and `/graphify explain` flows, see `references/query.md`. diff --git a/tools/skillgen/expected/graphify__skills__agents__references__add-watch.md b/tools/skillgen/expected/graphify__skills__agents__references__add-watch.md index 3ca94f656e..fcbe0cd488 100644 --- a/tools/skillgen/expected/graphify__skills__agents__references__add-watch.md +++ b/tools/skillgen/expected/graphify__skills__agents__references__add-watch.md @@ -13,7 +13,7 @@ from graphify.ingest import ingest from pathlib import Path try: - out = ingest('URL', Path('./raw'), author='AUTHOR', contributor='CONTRIBUTOR') + out = ingest(sys.argv[1], Path('./raw'), author=sys.argv[2] or None, contributor=sys.argv[3] or None) print(f'Saved to {out}') except ValueError as e: print(f'error: {e}', file=sys.stderr) @@ -21,10 +21,10 @@ except ValueError as e: except RuntimeError as e: print(f'error: {e}', file=sys.stderr) sys.exit(1) -" +" "URL" "AUTHOR" "CONTRIBUTOR" ``` -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 the scan root recorded in `graphify-out/.graphify_root` to merge the new file into the existing graph. +Replace `URL` with the actual URL and pass the user's `AUTHOR` or `CONTRIBUTOR` when provided; use an empty string for either omitted value. 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 the scan root recorded in `graphify-out/.graphify_root` 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]'`) diff --git a/tools/skillgen/expected/graphify__skills__amp__references__add-watch.md b/tools/skillgen/expected/graphify__skills__amp__references__add-watch.md index 3ca94f656e..fcbe0cd488 100644 --- a/tools/skillgen/expected/graphify__skills__amp__references__add-watch.md +++ b/tools/skillgen/expected/graphify__skills__amp__references__add-watch.md @@ -13,7 +13,7 @@ from graphify.ingest import ingest from pathlib import Path try: - out = ingest('URL', Path('./raw'), author='AUTHOR', contributor='CONTRIBUTOR') + out = ingest(sys.argv[1], Path('./raw'), author=sys.argv[2] or None, contributor=sys.argv[3] or None) print(f'Saved to {out}') except ValueError as e: print(f'error: {e}', file=sys.stderr) @@ -21,10 +21,10 @@ except ValueError as e: except RuntimeError as e: print(f'error: {e}', file=sys.stderr) sys.exit(1) -" +" "URL" "AUTHOR" "CONTRIBUTOR" ``` -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 the scan root recorded in `graphify-out/.graphify_root` to merge the new file into the existing graph. +Replace `URL` with the actual URL and pass the user's `AUTHOR` or `CONTRIBUTOR` when provided; use an empty string for either omitted value. 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 the scan root recorded in `graphify-out/.graphify_root` 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]'`) diff --git a/tools/skillgen/expected/graphify__skills__claude__references__add-watch.md b/tools/skillgen/expected/graphify__skills__claude__references__add-watch.md index 3ca94f656e..fcbe0cd488 100644 --- a/tools/skillgen/expected/graphify__skills__claude__references__add-watch.md +++ b/tools/skillgen/expected/graphify__skills__claude__references__add-watch.md @@ -13,7 +13,7 @@ from graphify.ingest import ingest from pathlib import Path try: - out = ingest('URL', Path('./raw'), author='AUTHOR', contributor='CONTRIBUTOR') + out = ingest(sys.argv[1], Path('./raw'), author=sys.argv[2] or None, contributor=sys.argv[3] or None) print(f'Saved to {out}') except ValueError as e: print(f'error: {e}', file=sys.stderr) @@ -21,10 +21,10 @@ except ValueError as e: except RuntimeError as e: print(f'error: {e}', file=sys.stderr) sys.exit(1) -" +" "URL" "AUTHOR" "CONTRIBUTOR" ``` -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 the scan root recorded in `graphify-out/.graphify_root` to merge the new file into the existing graph. +Replace `URL` with the actual URL and pass the user's `AUTHOR` or `CONTRIBUTOR` when provided; use an empty string for either omitted value. 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 the scan root recorded in `graphify-out/.graphify_root` 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]'`) diff --git a/tools/skillgen/expected/graphify__skills__claw__references__add-watch.md b/tools/skillgen/expected/graphify__skills__claw__references__add-watch.md index 3ca94f656e..fcbe0cd488 100644 --- a/tools/skillgen/expected/graphify__skills__claw__references__add-watch.md +++ b/tools/skillgen/expected/graphify__skills__claw__references__add-watch.md @@ -13,7 +13,7 @@ from graphify.ingest import ingest from pathlib import Path try: - out = ingest('URL', Path('./raw'), author='AUTHOR', contributor='CONTRIBUTOR') + out = ingest(sys.argv[1], Path('./raw'), author=sys.argv[2] or None, contributor=sys.argv[3] or None) print(f'Saved to {out}') except ValueError as e: print(f'error: {e}', file=sys.stderr) @@ -21,10 +21,10 @@ except ValueError as e: except RuntimeError as e: print(f'error: {e}', file=sys.stderr) sys.exit(1) -" +" "URL" "AUTHOR" "CONTRIBUTOR" ``` -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 the scan root recorded in `graphify-out/.graphify_root` to merge the new file into the existing graph. +Replace `URL` with the actual URL and pass the user's `AUTHOR` or `CONTRIBUTOR` when provided; use an empty string for either omitted value. 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 the scan root recorded in `graphify-out/.graphify_root` 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]'`) diff --git a/tools/skillgen/expected/graphify__skills__codex__references__add-watch.md b/tools/skillgen/expected/graphify__skills__codex__references__add-watch.md index 3ca94f656e..fcbe0cd488 100644 --- a/tools/skillgen/expected/graphify__skills__codex__references__add-watch.md +++ b/tools/skillgen/expected/graphify__skills__codex__references__add-watch.md @@ -13,7 +13,7 @@ from graphify.ingest import ingest from pathlib import Path try: - out = ingest('URL', Path('./raw'), author='AUTHOR', contributor='CONTRIBUTOR') + out = ingest(sys.argv[1], Path('./raw'), author=sys.argv[2] or None, contributor=sys.argv[3] or None) print(f'Saved to {out}') except ValueError as e: print(f'error: {e}', file=sys.stderr) @@ -21,10 +21,10 @@ except ValueError as e: except RuntimeError as e: print(f'error: {e}', file=sys.stderr) sys.exit(1) -" +" "URL" "AUTHOR" "CONTRIBUTOR" ``` -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 the scan root recorded in `graphify-out/.graphify_root` to merge the new file into the existing graph. +Replace `URL` with the actual URL and pass the user's `AUTHOR` or `CONTRIBUTOR` when provided; use an empty string for either omitted value. 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 the scan root recorded in `graphify-out/.graphify_root` 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]'`) diff --git a/tools/skillgen/expected/graphify__skills__copilot__references__add-watch.md b/tools/skillgen/expected/graphify__skills__copilot__references__add-watch.md index 3ca94f656e..fcbe0cd488 100644 --- a/tools/skillgen/expected/graphify__skills__copilot__references__add-watch.md +++ b/tools/skillgen/expected/graphify__skills__copilot__references__add-watch.md @@ -13,7 +13,7 @@ from graphify.ingest import ingest from pathlib import Path try: - out = ingest('URL', Path('./raw'), author='AUTHOR', contributor='CONTRIBUTOR') + out = ingest(sys.argv[1], Path('./raw'), author=sys.argv[2] or None, contributor=sys.argv[3] or None) print(f'Saved to {out}') except ValueError as e: print(f'error: {e}', file=sys.stderr) @@ -21,10 +21,10 @@ except ValueError as e: except RuntimeError as e: print(f'error: {e}', file=sys.stderr) sys.exit(1) -" +" "URL" "AUTHOR" "CONTRIBUTOR" ``` -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 the scan root recorded in `graphify-out/.graphify_root` to merge the new file into the existing graph. +Replace `URL` with the actual URL and pass the user's `AUTHOR` or `CONTRIBUTOR` when provided; use an empty string for either omitted value. 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 the scan root recorded in `graphify-out/.graphify_root` 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]'`) diff --git a/tools/skillgen/expected/graphify__skills__droid__references__add-watch.md b/tools/skillgen/expected/graphify__skills__droid__references__add-watch.md index 3ca94f656e..fcbe0cd488 100644 --- a/tools/skillgen/expected/graphify__skills__droid__references__add-watch.md +++ b/tools/skillgen/expected/graphify__skills__droid__references__add-watch.md @@ -13,7 +13,7 @@ from graphify.ingest import ingest from pathlib import Path try: - out = ingest('URL', Path('./raw'), author='AUTHOR', contributor='CONTRIBUTOR') + out = ingest(sys.argv[1], Path('./raw'), author=sys.argv[2] or None, contributor=sys.argv[3] or None) print(f'Saved to {out}') except ValueError as e: print(f'error: {e}', file=sys.stderr) @@ -21,10 +21,10 @@ except ValueError as e: except RuntimeError as e: print(f'error: {e}', file=sys.stderr) sys.exit(1) -" +" "URL" "AUTHOR" "CONTRIBUTOR" ``` -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 the scan root recorded in `graphify-out/.graphify_root` to merge the new file into the existing graph. +Replace `URL` with the actual URL and pass the user's `AUTHOR` or `CONTRIBUTOR` when provided; use an empty string for either omitted value. 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 the scan root recorded in `graphify-out/.graphify_root` 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]'`) diff --git a/tools/skillgen/expected/graphify__skills__kilo__references__add-watch.md b/tools/skillgen/expected/graphify__skills__kilo__references__add-watch.md index 3ca94f656e..fcbe0cd488 100644 --- a/tools/skillgen/expected/graphify__skills__kilo__references__add-watch.md +++ b/tools/skillgen/expected/graphify__skills__kilo__references__add-watch.md @@ -13,7 +13,7 @@ from graphify.ingest import ingest from pathlib import Path try: - out = ingest('URL', Path('./raw'), author='AUTHOR', contributor='CONTRIBUTOR') + out = ingest(sys.argv[1], Path('./raw'), author=sys.argv[2] or None, contributor=sys.argv[3] or None) print(f'Saved to {out}') except ValueError as e: print(f'error: {e}', file=sys.stderr) @@ -21,10 +21,10 @@ except ValueError as e: except RuntimeError as e: print(f'error: {e}', file=sys.stderr) sys.exit(1) -" +" "URL" "AUTHOR" "CONTRIBUTOR" ``` -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 the scan root recorded in `graphify-out/.graphify_root` to merge the new file into the existing graph. +Replace `URL` with the actual URL and pass the user's `AUTHOR` or `CONTRIBUTOR` when provided; use an empty string for either omitted value. 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 the scan root recorded in `graphify-out/.graphify_root` 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]'`) diff --git a/tools/skillgen/expected/graphify__skills__kiro__references__add-watch.md b/tools/skillgen/expected/graphify__skills__kiro__references__add-watch.md index 3ca94f656e..fcbe0cd488 100644 --- a/tools/skillgen/expected/graphify__skills__kiro__references__add-watch.md +++ b/tools/skillgen/expected/graphify__skills__kiro__references__add-watch.md @@ -13,7 +13,7 @@ from graphify.ingest import ingest from pathlib import Path try: - out = ingest('URL', Path('./raw'), author='AUTHOR', contributor='CONTRIBUTOR') + out = ingest(sys.argv[1], Path('./raw'), author=sys.argv[2] or None, contributor=sys.argv[3] or None) print(f'Saved to {out}') except ValueError as e: print(f'error: {e}', file=sys.stderr) @@ -21,10 +21,10 @@ except ValueError as e: except RuntimeError as e: print(f'error: {e}', file=sys.stderr) sys.exit(1) -" +" "URL" "AUTHOR" "CONTRIBUTOR" ``` -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 the scan root recorded in `graphify-out/.graphify_root` to merge the new file into the existing graph. +Replace `URL` with the actual URL and pass the user's `AUTHOR` or `CONTRIBUTOR` when provided; use an empty string for either omitted value. 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 the scan root recorded in `graphify-out/.graphify_root` 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]'`) diff --git a/tools/skillgen/expected/graphify__skills__opencode__references__add-watch.md b/tools/skillgen/expected/graphify__skills__opencode__references__add-watch.md index 3ca94f656e..fcbe0cd488 100644 --- a/tools/skillgen/expected/graphify__skills__opencode__references__add-watch.md +++ b/tools/skillgen/expected/graphify__skills__opencode__references__add-watch.md @@ -13,7 +13,7 @@ from graphify.ingest import ingest from pathlib import Path try: - out = ingest('URL', Path('./raw'), author='AUTHOR', contributor='CONTRIBUTOR') + out = ingest(sys.argv[1], Path('./raw'), author=sys.argv[2] or None, contributor=sys.argv[3] or None) print(f'Saved to {out}') except ValueError as e: print(f'error: {e}', file=sys.stderr) @@ -21,10 +21,10 @@ except ValueError as e: except RuntimeError as e: print(f'error: {e}', file=sys.stderr) sys.exit(1) -" +" "URL" "AUTHOR" "CONTRIBUTOR" ``` -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 the scan root recorded in `graphify-out/.graphify_root` to merge the new file into the existing graph. +Replace `URL` with the actual URL and pass the user's `AUTHOR` or `CONTRIBUTOR` when provided; use an empty string for either omitted value. 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 the scan root recorded in `graphify-out/.graphify_root` 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]'`) diff --git a/tools/skillgen/expected/graphify__skills__pi__references__add-watch.md b/tools/skillgen/expected/graphify__skills__pi__references__add-watch.md index 3ca94f656e..fcbe0cd488 100644 --- a/tools/skillgen/expected/graphify__skills__pi__references__add-watch.md +++ b/tools/skillgen/expected/graphify__skills__pi__references__add-watch.md @@ -13,7 +13,7 @@ from graphify.ingest import ingest from pathlib import Path try: - out = ingest('URL', Path('./raw'), author='AUTHOR', contributor='CONTRIBUTOR') + out = ingest(sys.argv[1], Path('./raw'), author=sys.argv[2] or None, contributor=sys.argv[3] or None) print(f'Saved to {out}') except ValueError as e: print(f'error: {e}', file=sys.stderr) @@ -21,10 +21,10 @@ except ValueError as e: except RuntimeError as e: print(f'error: {e}', file=sys.stderr) sys.exit(1) -" +" "URL" "AUTHOR" "CONTRIBUTOR" ``` -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 the scan root recorded in `graphify-out/.graphify_root` to merge the new file into the existing graph. +Replace `URL` with the actual URL and pass the user's `AUTHOR` or `CONTRIBUTOR` when provided; use an empty string for either omitted value. 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 the scan root recorded in `graphify-out/.graphify_root` 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]'`) diff --git a/tools/skillgen/expected/graphify__skills__trae__references__add-watch.md b/tools/skillgen/expected/graphify__skills__trae__references__add-watch.md index 3ca94f656e..fcbe0cd488 100644 --- a/tools/skillgen/expected/graphify__skills__trae__references__add-watch.md +++ b/tools/skillgen/expected/graphify__skills__trae__references__add-watch.md @@ -13,7 +13,7 @@ from graphify.ingest import ingest from pathlib import Path try: - out = ingest('URL', Path('./raw'), author='AUTHOR', contributor='CONTRIBUTOR') + out = ingest(sys.argv[1], Path('./raw'), author=sys.argv[2] or None, contributor=sys.argv[3] or None) print(f'Saved to {out}') except ValueError as e: print(f'error: {e}', file=sys.stderr) @@ -21,10 +21,10 @@ except ValueError as e: except RuntimeError as e: print(f'error: {e}', file=sys.stderr) sys.exit(1) -" +" "URL" "AUTHOR" "CONTRIBUTOR" ``` -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 the scan root recorded in `graphify-out/.graphify_root` to merge the new file into the existing graph. +Replace `URL` with the actual URL and pass the user's `AUTHOR` or `CONTRIBUTOR` when provided; use an empty string for either omitted value. 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 the scan root recorded in `graphify-out/.graphify_root` 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]'`) diff --git a/tools/skillgen/expected/graphify__skills__vscode__references__add-watch.md b/tools/skillgen/expected/graphify__skills__vscode__references__add-watch.md index 3ca94f656e..fcbe0cd488 100644 --- a/tools/skillgen/expected/graphify__skills__vscode__references__add-watch.md +++ b/tools/skillgen/expected/graphify__skills__vscode__references__add-watch.md @@ -13,7 +13,7 @@ from graphify.ingest import ingest from pathlib import Path try: - out = ingest('URL', Path('./raw'), author='AUTHOR', contributor='CONTRIBUTOR') + out = ingest(sys.argv[1], Path('./raw'), author=sys.argv[2] or None, contributor=sys.argv[3] or None) print(f'Saved to {out}') except ValueError as e: print(f'error: {e}', file=sys.stderr) @@ -21,10 +21,10 @@ except ValueError as e: except RuntimeError as e: print(f'error: {e}', file=sys.stderr) sys.exit(1) -" +" "URL" "AUTHOR" "CONTRIBUTOR" ``` -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 the scan root recorded in `graphify-out/.graphify_root` to merge the new file into the existing graph. +Replace `URL` with the actual URL and pass the user's `AUTHOR` or `CONTRIBUTOR` when provided; use an empty string for either omitted value. 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 the scan root recorded in `graphify-out/.graphify_root` 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]'`) diff --git a/tools/skillgen/expected/graphify__skills__windows__references__add-watch.md b/tools/skillgen/expected/graphify__skills__windows__references__add-watch.md index 3ca94f656e..fcbe0cd488 100644 --- a/tools/skillgen/expected/graphify__skills__windows__references__add-watch.md +++ b/tools/skillgen/expected/graphify__skills__windows__references__add-watch.md @@ -13,7 +13,7 @@ from graphify.ingest import ingest from pathlib import Path try: - out = ingest('URL', Path('./raw'), author='AUTHOR', contributor='CONTRIBUTOR') + out = ingest(sys.argv[1], Path('./raw'), author=sys.argv[2] or None, contributor=sys.argv[3] or None) print(f'Saved to {out}') except ValueError as e: print(f'error: {e}', file=sys.stderr) @@ -21,10 +21,10 @@ except ValueError as e: except RuntimeError as e: print(f'error: {e}', file=sys.stderr) sys.exit(1) -" +" "URL" "AUTHOR" "CONTRIBUTOR" ``` -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 the scan root recorded in `graphify-out/.graphify_root` to merge the new file into the existing graph. +Replace `URL` with the actual URL and pass the user's `AUTHOR` or `CONTRIBUTOR` when provided; use an empty string for either omitted value. 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 the scan root recorded in `graphify-out/.graphify_root` 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]'`) diff --git a/tools/skillgen/fragments/core/aider.md b/tools/skillgen/fragments/core/aider.md index 085be97cd2..aacd9f31fc 100644 --- a/tools/skillgen/fragments/core/aider.md +++ b/tools/skillgen/fragments/core/aider.md @@ -1200,7 +1200,7 @@ from graphify.ingest import ingest from pathlib import Path try: - out = ingest('URL', Path('./raw'), author='AUTHOR', contributor='CONTRIBUTOR') + out = ingest(sys.argv[1], Path('./raw'), author=sys.argv[2] or None, contributor=sys.argv[3] or None) print(f'Saved to {out}') except ValueError as e: print(f'error: {e}', file=sys.stderr) @@ -1208,10 +1208,10 @@ except ValueError as e: except RuntimeError as e: print(f'error: {e}', file=sys.stderr) sys.exit(1) -" +" "URL" "AUTHOR" "CONTRIBUTOR" ``` -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. +Replace `URL` with the actual URL and pass the user's `AUTHOR` or `CONTRIBUTOR` when provided; use an empty string for either omitted value. 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): - Twitter/X → fetched via oEmbed, saved as `.md` with tweet text and author diff --git a/tools/skillgen/fragments/core/core.md b/tools/skillgen/fragments/core/core.md index f295ab8c6d..bab7b4b5a5 100644 --- a/tools/skillgen/fragments/core/core.md +++ b/tools/skillgen/fragments/core/core.md @@ -472,14 +472,14 @@ If `--obsidian` was given: - If `--obsidian-dir ` was also given, pass it via `--dir`. Otherwise defaults to `graphify-out/obsidian`. ```bash -graphify export obsidian -# or with custom dir: graphify export obsidian --dir ~/vaults/my-project +$(cat graphify-out/.graphify_python) -m graphify export obsidian +# Add `--dir ~/vaults/my-project` to use a custom directory. ``` Generate the HTML graph (always, unless `--no-viz`): ```bash -graphify export html # auto-aggregates to community view if graph > 5000 nodes +$(cat graphify-out/.graphify_python) -m graphify export html # auto-aggregates to community view if graph > 5000 nodes ``` ### Steps 6b-8 - Wiki, Neo4j, FalkorDB, SVG, GraphML, MCP, benchmark (only on their flags) diff --git a/tools/skillgen/fragments/core/devin.md b/tools/skillgen/fragments/core/devin.md index bea72f7eea..8740ca565a 100644 --- a/tools/skillgen/fragments/core/devin.md +++ b/tools/skillgen/fragments/core/devin.md @@ -1332,7 +1332,7 @@ from graphify.ingest import ingest from pathlib import Path try: - out = ingest('URL', Path('./raw'), author='AUTHOR', contributor='CONTRIBUTOR') + out = ingest(sys.argv[1], Path('./raw'), author=sys.argv[2] or None, contributor=sys.argv[3] or None) print(f'Saved to {out}') except ValueError as e: print(f'error: {e}', file=sys.stderr) @@ -1340,10 +1340,10 @@ except ValueError as e: except RuntimeError as e: print(f'error: {e}', file=sys.stderr) sys.exit(1) -" +" "URL" "AUTHOR" "CONTRIBUTOR" ``` -Replace `URL` with the actual URL, `AUTHOR` with the user's name if provided, `CONTRIBUTOR` likewise. After a successful save, automatically run the `--update` pipeline on `./raw` to merge the new file into the existing graph. +Replace `URL` with the actual URL and pass the user's `AUTHOR` or `CONTRIBUTOR` when provided; use an empty string for either omitted value. 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): - Twitter/X -> fetched via oEmbed, saved as `.md` with tweet text and author diff --git a/tools/skillgen/fragments/query-stub/default.md b/tools/skillgen/fragments/query-stub/default.md index 696796ec5c..54e1999630 100644 --- a/tools/skillgen/fragments/query-stub/default.md +++ b/tools/skillgen/fragments/query-stub/default.md @@ -1,7 +1,7 @@ When `graphify-out/graph.json` already exists and the user asks a question about the corpus, answer from the graph rather than rebuilding it: ```bash -graphify query "" +$(cat graphify-out/.graphify_python) -m graphify query "" ``` Before traversal, expand the question against the graph's own vocabulary so a wording mismatch does not collapse the answer to noise. If the `graphify query` CLI is unavailable, fall back to an inline NetworkX traversal of `graphify-out/graph.json`. Answer using only what the graph output contains, and quote `source_location` when citing a specific fact. For that vocab-expansion step, the BFS/DFS traversal modes, the `--budget` cap, the NetworkX fallback, `save-result` feedback, and the `/graphify path` and `/graphify explain` flows, see `references/query.md`. diff --git a/tools/skillgen/fragments/references/shared/add-watch.md b/tools/skillgen/fragments/references/shared/add-watch.md index 3ca94f656e..fcbe0cd488 100644 --- a/tools/skillgen/fragments/references/shared/add-watch.md +++ b/tools/skillgen/fragments/references/shared/add-watch.md @@ -13,7 +13,7 @@ from graphify.ingest import ingest from pathlib import Path try: - out = ingest('URL', Path('./raw'), author='AUTHOR', contributor='CONTRIBUTOR') + out = ingest(sys.argv[1], Path('./raw'), author=sys.argv[2] or None, contributor=sys.argv[3] or None) print(f'Saved to {out}') except ValueError as e: print(f'error: {e}', file=sys.stderr) @@ -21,10 +21,10 @@ except ValueError as e: except RuntimeError as e: print(f'error: {e}', file=sys.stderr) sys.exit(1) -" +" "URL" "AUTHOR" "CONTRIBUTOR" ``` -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 the scan root recorded in `graphify-out/.graphify_root` to merge the new file into the existing graph. +Replace `URL` with the actual URL and pass the user's `AUTHOR` or `CONTRIBUTOR` when provided; use an empty string for either omitted value. 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 the scan root recorded in `graphify-out/.graphify_root` 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]'`) diff --git a/tools/skillgen/gen.py b/tools/skillgen/gen.py index afb3c826d3..a7c6dc5222 100644 --- a/tools/skillgen/gen.py +++ b/tools/skillgen/gen.py @@ -388,6 +388,9 @@ def _render_frontmatter(platform: Platform) -> str: '"': _PY_INVOKE_PS_CLOSE, '" "INPUT_PATH"': _PY_INVOKE_PS_CLOSE + ' "INPUT_PATH"', '" "INPUT_PATH" "SPEC_PATH"': _PY_INVOKE_PS_CLOSE + ' "INPUT_PATH" "SPEC_PATH"', + '" "URL" "AUTHOR" "CONTRIBUTOR"': ( + _PY_INVOKE_PS_CLOSE + ' "URL" "AUTHOR" "CONTRIBUTOR"' + ), } _MKDIR_POSIX = "mkdir -p graphify-out" _MKDIR_PS = "New-Item -ItemType Directory -Force -Path graphify-out | Out-Null" @@ -399,6 +402,8 @@ def _render_frontmatter(platform: Platform) -> str: # Bash-only tokens that must never survive in a powershell-shell render. _POWERSHELL_BANNED_TOKENS = ("$(cat ", "rm -f ", "2>/dev/null", "```bash") +_GRAPHIFY_INVOKE_POSIX = "$(cat graphify-out/.graphify_python) -m graphify " +_GRAPHIFY_INVOKE_PS = "& (Get-Content graphify-out\\.graphify_python) -m graphify " def _unescape_bash_dq(line: str) -> str: @@ -453,8 +458,10 @@ def _translate_bash_block(lines: list[str]) -> list[str]: out.append(_FIND_CHUNKS_PS) elif line.strip().startswith("rm -f "): out.append(_rm_to_remove_item(line)) + elif line.startswith(_GRAPHIFY_INVOKE_POSIX): + out.append(_GRAPHIFY_INVOKE_PS + line.removeprefix(_GRAPHIFY_INVOKE_POSIX)) elif not line.strip() or line.lstrip().startswith("#") or line.startswith("graphify "): - out.append(line) # blank lines, comments, and graphify CLI calls are shell-neutral + out.append(line) # blanks, comments, and explicit installer commands are shell-neutral else: raise ValueError(f"cannot translate bash line to PowerShell: {line!r}") if in_py: @@ -1195,6 +1202,19 @@ def _is_python_path_argument_fix_line(line: str) -> bool: } +def _is_ingest_argument_fix_line(line: str) -> bool: + """Whether URL metadata is passed as argv instead of Python source.""" + return line.strip() in { + "out = ingest('URL', Path('./raw'), author='AUTHOR', contributor='CONTRIBUTOR')", + "out = ingest(sys.argv[1], Path('./raw'), author=sys.argv[2] or None, contributor=sys.argv[3] or None)", + '" "URL" "AUTHOR" "CONTRIBUTOR"', + "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.", + "Replace `URL` with the actual URL and pass the user's `AUTHOR` or `CONTRIBUTOR` when provided; use an empty string for either omitted value. 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.", + "Replace `URL` with the actual URL, `AUTHOR` with the user's name if provided, `CONTRIBUTOR` likewise. After a successful save, automatically run the `--update` pipeline on `./raw` to merge the new file into the existing graph.", + "Replace `URL` with the actual URL and pass the user's `AUTHOR` or `CONTRIBUTOR` when provided; use an empty string for either omitted value. After a successful save, automatically run the `--update` pipeline on `./raw` to merge the new file into the existing graph.", + } + + def _is_transcription_analysis_fix_line(line: str) -> bool: """Whether transcription uses prior analysis rather than detect's nonexistent god nodes.""" return line.strip() in { @@ -1231,6 +1251,7 @@ def _is_transcription_analysis_fix_line(line: str) -> bool: _is_graph_loader_fix_line, _is_watch_path_quote_fix_line, _is_python_path_argument_fix_line, + _is_ingest_argument_fix_line, _is_transcription_analysis_fix_line, )