From 5f92123ef26bf268f745c28c5d766ee6a55083a2 Mon Sep 17 00:00:00 2001 From: Hermes Pipeline Date: Wed, 5 Aug 2026 15:14:04 +0000 Subject: [PATCH] Add Skill: research-pipeline Extracted from: https://github.com/temiroff/Blacknode.git Score: 1.0 --- skills/research-pipeline/SKILL.md | 90 ++++++++++++++++++++++++++ skills/research-pipeline/commands.md | 6 ++ skills/research-pipeline/examples.md | 10 +++ skills/research-pipeline/metadata.json | 26 ++++++++ skills/research-pipeline/tests.md | 9 +++ 5 files changed, 141 insertions(+) create mode 100644 skills/research-pipeline/SKILL.md create mode 100644 skills/research-pipeline/commands.md create mode 100644 skills/research-pipeline/examples.md create mode 100644 skills/research-pipeline/metadata.json create mode 100644 skills/research-pipeline/tests.md diff --git a/skills/research-pipeline/SKILL.md b/skills/research-pipeline/SKILL.md new file mode 100644 index 0000000..dc3cf29 --- /dev/null +++ b/skills/research-pipeline/SKILL.md @@ -0,0 +1,90 @@ +--- +name: research-pipeline +version: 1.0.0 +description: Fetch a Wikipedia page, summarise its content using an AI agent, and + write the summary to a file. +inputs: +- URL of the Wikipedia page +steps: +- 'Step 1: Import necessary modules from `_bootstrap` and `blacknode`: Run `from _bootstrap + import NIM_MODEL, require_nim_api_key; import blacknode as bn`' +- 'Step 2: Require NVIDIA NIM API key: Call `require_nim_api_key()` to ensure the + API key is set.' +- 'Step 3: Create a graph instance: Initialize `g = bn.Graph()`.' +- 'Step 4: Add nodes for URL, HTTPGet, summarisation, and file writing: `url = g.node(''Literal'', + value=''URL of the Wikipedia page''); fetcher = g.node(''HTTPGet''); summarise = + g.node(''LLMAgent'', system=''You are a technical writer. Summarise the text in + 3 bullet points.'', model=NIM_MODEL); writer = g.node(''FileWrite'', path=''summary.txt'')`' +- 'Step 5: Connect nodes with edges: `url.out(''value'') >> fetcher.inp(''url''); + fetcher.out(''text'') >> summarise.inp(''prompt''); summarise.out(''text'') >> writer.inp(''text'')`' +- 'Step 6: Cook the graph to execute and get output: `result = g.cook(writer, ''path''); + print(f''Summary written to: {result}'')`' +outputs: +- Path of the summary file +tags: [] +metadata: + source_repo: https://github.com/temiroff/Blacknode.git + extracted_at: '' + confidence: 0.95 +--- + +# research-pipeline + +Fetch a Wikipedia page, summarise its content using an AI agent, and write the summary to a file. + +## Setup + +**Dependencies:** + +```text +pip install anthropic>=0.25 docker>=7.1 openai>=1.0 +``` + +**Setup steps:** + +1. Ensure NVIDIA NIM API key is set in the environment or editor +1. Install required dependencies: `pip install -r requirements.txt` + +## Key Files + +- `examples/research_pipeline.py - Contains the research pipeline workflow` + +## Steps + +1. Step 1: Import necessary modules from `_bootstrap` and `blacknode`: Run `from _bootstrap import NIM_MODEL, require_nim_api_key; import blacknode as bn` +2. Step 2: Require NVIDIA NIM API key: Call `require_nim_api_key()` to ensure the API key is set. +3. Step 3: Create a graph instance: Initialize `g = bn.Graph()`. +4. Step 4: Add nodes for URL, HTTPGet, summarisation, and file writing: `url = g.node('Literal', value='URL of the Wikipedia page'); fetcher = g.node('HTTPGet'); summarise = g.node('LLMAgent', system='You are a technical writer. Summarise the text in 3 bullet points.', model=NIM_MODEL); writer = g.node('FileWrite', path='summary.txt')` +5. Step 5: Connect nodes with edges: `url.out('value') >> fetcher.inp('url'); fetcher.out('text') >> summarise.inp('prompt'); summarise.out('text') >> writer.inp('text')` +6. Step 6: Cook the graph to execute and get output: `result = g.cook(writer, 'path'); print(f'Summary written to: {result}')` + +## Implementation Details + +```python +from _bootstrap import NIM_MODEL, require_nim_api_key; import blacknode as bn +``` + +```python +url = g.node('Literal', value='https://en.wikipedia.org/w/api.php?action=query&prop=extracts&exintro=1&explaintext=1&titles=Houdini_(software)&format=json&formatversion=2&origin=*'); fetcher = g.node('HTTPGet'); summarise = g.node('LLMAgent', system='You are a technical writer. Summarise the text in 3 bullet points.', model=NIM_MODEL); writer = g.node('FileWrite', path='summary.txt') +``` + +```python +url.out('value') >> fetcher.inp('url'); fetcher.out('text') >> summarise.inp('prompt'); summarise.out('text') >> writer.inp('text') +``` + +## Inputs + +- URL of the Wikipedia page + +## Outputs + +- Path of the summary file + +## Failure Modes + +- If the URL is invalid or unreachable, the HTTPGet node will fail; if the summarisation fails, the output text might be empty + +## Source + +Extracted from: [https://github.com/temiroff/Blacknode.git](https://github.com/temiroff/Blacknode.git) +Confidence: 0.95 diff --git a/skills/research-pipeline/commands.md b/skills/research-pipeline/commands.md new file mode 100644 index 0000000..e33ab75 --- /dev/null +++ b/skills/research-pipeline/commands.md @@ -0,0 +1,6 @@ +# Commands: research-pipeline + +## Available Commands + +- `/skill research-pipeline` — Load this skill +- `/run research-pipeline` — Execute workflow diff --git a/skills/research-pipeline/examples.md b/skills/research-pipeline/examples.md new file mode 100644 index 0000000..e78b24c --- /dev/null +++ b/skills/research-pipeline/examples.md @@ -0,0 +1,10 @@ +# Examples: research-pipeline + +## Usage Example + +```python +# How to use this skill +# Inputs: URL of the Wikipedia page +# Process: Step 1: Import necessary modules from `_bootstrap` and `blacknode`: Run `from _bootstrap import NIM_MODEL, require_nim_api_key; import blacknode as bn` → Step 2: Require NVIDIA NIM API key: Call `require_nim_api_key()` to ensure the API key is set. → Step 3: Create a graph instance: Initialize `g = bn.Graph()`. +# Outputs: Path of the summary file +``` diff --git a/skills/research-pipeline/metadata.json b/skills/research-pipeline/metadata.json new file mode 100644 index 0000000..8dffb85 --- /dev/null +++ b/skills/research-pipeline/metadata.json @@ -0,0 +1,26 @@ +{ + "name": "research-pipeline", + "version": "1.0.0", + "goal": "Fetch a Wikipedia page, summarise its content using an AI agent, and write the summary to a file.", + "inputs": [ + "URL of the Wikipedia page" + ], + "steps": [ + "Step 1: Import necessary modules from `_bootstrap` and `blacknode`: Run `from _bootstrap import NIM_MODEL, require_nim_api_key; import blacknode as bn`", + "Step 2: Require NVIDIA NIM API key: Call `require_nim_api_key()` to ensure the API key is set.", + "Step 3: Create a graph instance: Initialize `g = bn.Graph()`.", + "Step 4: Add nodes for URL, HTTPGet, summarisation, and file writing: `url = g.node('Literal', value='URL of the Wikipedia page'); fetcher = g.node('HTTPGet'); summarise = g.node('LLMAgent', system='You are a technical writer. Summarise the text in 3 bullet points.', model=NIM_MODEL); writer = g.node('FileWrite', path='summary.txt')`", + "Step 5: Connect nodes with edges: `url.out('value') >> fetcher.inp('url'); fetcher.out('text') >> summarise.inp('prompt'); summarise.out('text') >> writer.inp('text')`", + "Step 6: Cook the graph to execute and get output: `result = g.cook(writer, 'path'); print(f'Summary written to: {result}')`" + ], + "outputs": [ + "Path of the summary file" + ], + "failure_modes": [ + "If the URL is invalid or unreachable, the HTTPGet node will fail; if the summarisation fails, the output text might be empty" + ], + "confidence": 0.95, + "explanation": "This workflow can be adapted to fetch and summarise any Wikipedia page or similar content source.", + "source_repo": "https://github.com/temiroff/Blacknode.git", + "score": 1.0 +} \ No newline at end of file diff --git a/skills/research-pipeline/tests.md b/skills/research-pipeline/tests.md new file mode 100644 index 0000000..f24dab4 --- /dev/null +++ b/skills/research-pipeline/tests.md @@ -0,0 +1,9 @@ +# Tests: research-pipeline + +## Test Checklist + +- [ ] Workflow has at least 3 steps +- [ ] All inputs are defined +- [ ] All outputs are defined +- [ ] Failure modes are documented +- [ ] Skill can be loaded without errors