Compare commits

..

1 Commits

Author SHA1 Message Date
Hermes Pipeline 6ab9cb3000 Add Skill: local-document-research-with-traceable-citations
Extracted from: https://github.com/0verL1nk/PaperSage.git
Score: 1.0
2026-08-10 17:07:46 +00:00
9 changed files with 139 additions and 170 deletions
@@ -1,81 +0,0 @@
---
name: conditional-request-routing-workflow
version: 1.0.0
description: Collect a request, classify it via branching logic, and route to an approval
or rejection handler to produce a final result
inputs:
- name: request
type: string
description: The input text or request to be evaluated and routed
steps:
- node: Start
agent_type: input
description: Prompt user and capture the request into state field 'request'
next: Classify
- node: Classify
agent_type: branching
description: Evaluate the request and set 'decision' field, routing to Approve on
success or Reject on failure
input_fields:
- request
output_field: decision
next_node: Approve
on_failure: Reject
- node: Approve
agent_type: default
description: Format and output an approval message containing the request
input_fields:
- request
output_field: result
prompt: 'Request approved: {request}'
- node: Reject
agent_type: default
description: Format and output a rejection message containing the request
input_fields:
- request
output_field: result
prompt: 'Request rejected: {request}'
outputs:
- name: result
type: string
description: Final formatted message indicating the outcome (approved or rejected)
- name: decision
type: string
description: Routing decision produced by the branching node
tags: []
metadata:
source_repo: https://github.com/jwwelbor/AgentMap.git
extracted_at: ''
confidence: 0.92
---
# conditional-request-routing-workflow
Collect a request, classify it via branching logic, and route to an approval or rejection handler to produce a final result
## Steps
1. {'node': 'Start', 'agent_type': 'input', 'description': "Prompt user and capture the request into state field 'request'", 'next': 'Classify'}
2. {'node': 'Classify', 'agent_type': 'branching', 'description': "Evaluate the request and set 'decision' field, routing to Approve on success or Reject on failure", 'input_fields': ['request'], 'output_field': 'decision', 'next_node': 'Approve', 'on_failure': 'Reject'}
3. {'node': 'Approve', 'agent_type': 'default', 'description': 'Format and output an approval message containing the request', 'input_fields': ['request'], 'output_field': 'result', 'prompt': 'Request approved: {request}'}
4. {'node': 'Reject', 'agent_type': 'default', 'description': 'Format and output a rejection message containing the request', 'input_fields': ['request'], 'output_field': 'result', 'prompt': 'Request rejected: {request}'}
## Inputs
- {'name': 'request', 'type': 'string', 'description': 'The input text or request to be evaluated and routed'}
## Outputs
- {'name': 'result', 'type': 'string', 'description': 'Final formatted message indicating the outcome (approved or rejected)'}
- {'name': 'decision', 'type': 'string', 'description': 'Routing decision produced by the branching node'}
## Failure Modes
- Empty or missing request input prevents meaningful classification
- Branching node fails to resolve a valid route and defaults to rejection path
- Prompt template variable missing causes malformed output
## Source
Extracted from: [https://github.com/jwwelbor/AgentMap.git](https://github.com/jwwelbor/AgentMap.git)
Confidence: 0.92
@@ -1,6 +0,0 @@
# Commands: conditional-request-routing-workflow
## Available Commands
- `/skill conditional-request-routing-workflow` — Load this skill
- `/run conditional-request-routing-workflow` — Execute workflow
@@ -1,10 +0,0 @@
# Examples: conditional-request-routing-workflow
## Usage Example
```python
# How to use this skill
# Inputs: {'name': 'request', 'type': 'string', 'description': 'The input text or request to be evaluated and routed'}
# Process: {'node': 'Start', 'agent_type': 'input', 'description': "Prompt user and capture the request into state field 'request'", 'next': 'Classify'} → {'node': 'Classify', 'agent_type': 'branching', 'description': "Evaluate the request and set 'decision' field, routing to Approve on success or Reject on failure", 'input_fields': ['request'], 'output_field': 'decision', 'next_node': 'Approve', 'on_failure': 'Reject'} → {'node': 'Approve', 'agent_type': 'default', 'description': 'Format and output an approval message containing the request', 'input_fields': ['request'], 'output_field': 'result', 'prompt': 'Request approved: {request}'}
# Outputs: {'name': 'result', 'type': 'string', 'description': 'Final formatted message indicating the outcome (approved or rejected)'}, {'name': 'decision', 'type': 'string', 'description': 'Routing decision produced by the branching node'}
```
@@ -1,72 +0,0 @@
{
"name": "conditional-request-routing-workflow",
"version": "1.0.0",
"goal": "Collect a request, classify it via branching logic, and route to an approval or rejection handler to produce a final result",
"inputs": [
{
"name": "request",
"type": "string",
"description": "The input text or request to be evaluated and routed"
}
],
"steps": [
{
"node": "Start",
"agent_type": "input",
"description": "Prompt user and capture the request into state field 'request'",
"next": "Classify"
},
{
"node": "Classify",
"agent_type": "branching",
"description": "Evaluate the request and set 'decision' field, routing to Approve on success or Reject on failure",
"input_fields": [
"request"
],
"output_field": "decision",
"next_node": "Approve",
"on_failure": "Reject"
},
{
"node": "Approve",
"agent_type": "default",
"description": "Format and output an approval message containing the request",
"input_fields": [
"request"
],
"output_field": "result",
"prompt": "Request approved: {request}"
},
{
"node": "Reject",
"agent_type": "default",
"description": "Format and output a rejection message containing the request",
"input_fields": [
"request"
],
"output_field": "result",
"prompt": "Request rejected: {request}"
}
],
"outputs": [
{
"name": "result",
"type": "string",
"description": "Final formatted message indicating the outcome (approved or rejected)"
},
{
"name": "decision",
"type": "string",
"description": "Routing decision produced by the branching node"
}
],
"failure_modes": [
"Empty or missing request input prevents meaningful classification",
"Branching node fails to resolve a valid route and defaults to rejection path",
"Prompt template variable missing causes malformed output"
],
"confidence": 0.92,
"explanation": "Extracted from the ReviewFlow CSV example in the AgentMap README. This is a declarative, CSV-defined LangGraph workflow demonstrating the reusable pattern of input -> branching classification -> conditional handling paths. It can be generalized for ticket triage, content moderation, or any route-by-condition use case.",
"source_repo": "https://github.com/jwwelbor/AgentMap.git",
"score": 1.0
}
@@ -0,0 +1,82 @@
---
name: local-document-research-with-traceable-citations
version: 1.0.0
description: Enable users to import local documents, asynchronously process them into
an indexed knowledge base, and obtain AI-generated answers that cite specific page
locations and OCR evidence.
inputs:
- Local document files (PDF, DOCX, PPTX, XLSX, images, TXT)
- Configured LLM API endpoint and keys (via .env or settings)
- Optional web search service config if enabled
- Local OCR model cache (downloaded on first use)
steps:
- Import documents into a project; files are queued for asynchronous processing.
- Convert non-PDF formats (DOCX, PPTX, XLSX) to PDF using native Office or LibreOffice
fallback.
- Run OCR (PaddleOCR) on PDF pages/images to extract text, page numbers, polygons,
and confidence scores.
- Chunk text and generate embeddings; publish to LanceDB hybrid index (dense vector
+ full-text) only when fully processed.
- User starts a research session or branch; Leader agent analyzes query.
- Hybrid RAG retrieves candidate chunks from ready documents; dynamic material scope
ensures no half-indexed docs.
- Leader delegates tasks to sub-agents (researcher, reviewer, writer) via constrained
task capability; each delegation logs start, completion, duration, and evidence.
- Generate answer that references only actually used evidence; citations include document
ID, page, coordinates.
- User clicks citation to open original document and view highlighted OCR location.
outputs:
- Project with indexed document library (SQLite metadata + LanceDB vectors)
- AI answers with verifiable citations to source pages
- Evidence preview with page image and OCR highlight polygons
- Persistent session history, branches, and long-term memory
tags: []
metadata:
source_repo: https://github.com/0verL1nk/PaperSage.git
extracted_at: ''
confidence: 0.85
---
# local-document-research-with-traceable-citations
Enable users to import local documents, asynchronously process them into an indexed knowledge base, and obtain AI-generated answers that cite specific page locations and OCR evidence.
## Steps
1. Import documents into a project; files are queued for asynchronous processing.
2. Convert non-PDF formats (DOCX, PPTX, XLSX) to PDF using native Office or LibreOffice fallback.
3. Run OCR (PaddleOCR) on PDF pages/images to extract text, page numbers, polygons, and confidence scores.
4. Chunk text and generate embeddings; publish to LanceDB hybrid index (dense vector + full-text) only when fully processed.
5. User starts a research session or branch; Leader agent analyzes query.
6. Hybrid RAG retrieves candidate chunks from ready documents; dynamic material scope ensures no half-indexed docs.
7. Leader delegates tasks to sub-agents (researcher, reviewer, writer) via constrained task capability; each delegation logs start, completion, duration, and evidence.
8. Generate answer that references only actually used evidence; citations include document ID, page, coordinates.
9. User clicks citation to open original document and view highlighted OCR location.
## Inputs
- Local document files (PDF, DOCX, PPTX, XLSX, images, TXT)
- Configured LLM API endpoint and keys (via .env or settings)
- Optional web search service config if enabled
- Local OCR model cache (downloaded on first use)
## Outputs
- Project with indexed document library (SQLite metadata + LanceDB vectors)
- AI answers with verifiable citations to source pages
- Evidence preview with page image and OCR highlight polygons
- Persistent session history, branches, and long-term memory
## Failure Modes
- OCR quality low for scanned images leading to poor extraction
- Missing Office/LibreOffice causes conversion failure for Office docs
- Interrupted indexing leaves documents unpublished and excluded from retrieval
- LLM API outage or misconfiguration yields no answer
- Citation coordinates mismatch due to chunk drift
- Sub-agent recursion if constraints not enforced
## Source
Extracted from: [https://github.com/0verL1nk/PaperSage.git](https://github.com/0verL1nk/PaperSage.git)
Confidence: 0.85
@@ -0,0 +1,6 @@
# Commands: local-document-research-with-traceable-citations
## Available Commands
- `/skill local-document-research-with-traceable-citations` — Load this skill
- `/run local-document-research-with-traceable-citations` — Execute workflow
@@ -0,0 +1,10 @@
# Examples: local-document-research-with-traceable-citations
## Usage Example
```python
# How to use this skill
# Inputs: Local document files (PDF, DOCX, PPTX, XLSX, images, TXT), Configured LLM API endpoint and keys (via .env or settings), Optional web search service config if enabled, Local OCR model cache (downloaded on first use)
# Process: Import documents into a project; files are queued for asynchronous processing. → Convert non-PDF formats (DOCX, PPTX, XLSX) to PDF using native Office or LibreOffice fallback. → Run OCR (PaddleOCR) on PDF pages/images to extract text, page numbers, polygons, and confidence scores.
# Outputs: Project with indexed document library (SQLite metadata + LanceDB vectors), AI answers with verifiable citations to source pages, Evidence preview with page image and OCR highlight polygons, Persistent session history, branches, and long-term memory
```
@@ -0,0 +1,40 @@
{
"name": "local-document-research-with-traceable-citations",
"version": "1.0.0",
"goal": "Enable users to import local documents, asynchronously process them into an indexed knowledge base, and obtain AI-generated answers that cite specific page locations and OCR evidence.",
"inputs": [
"Local document files (PDF, DOCX, PPTX, XLSX, images, TXT)",
"Configured LLM API endpoint and keys (via .env or settings)",
"Optional web search service config if enabled",
"Local OCR model cache (downloaded on first use)"
],
"steps": [
"Import documents into a project; files are queued for asynchronous processing.",
"Convert non-PDF formats (DOCX, PPTX, XLSX) to PDF using native Office or LibreOffice fallback.",
"Run OCR (PaddleOCR) on PDF pages/images to extract text, page numbers, polygons, and confidence scores.",
"Chunk text and generate embeddings; publish to LanceDB hybrid index (dense vector + full-text) only when fully processed.",
"User starts a research session or branch; Leader agent analyzes query.",
"Hybrid RAG retrieves candidate chunks from ready documents; dynamic material scope ensures no half-indexed docs.",
"Leader delegates tasks to sub-agents (researcher, reviewer, writer) via constrained task capability; each delegation logs start, completion, duration, and evidence.",
"Generate answer that references only actually used evidence; citations include document ID, page, coordinates.",
"User clicks citation to open original document and view highlighted OCR location."
],
"outputs": [
"Project with indexed document library (SQLite metadata + LanceDB vectors)",
"AI answers with verifiable citations to source pages",
"Evidence preview with page image and OCR highlight polygons",
"Persistent session history, branches, and long-term memory"
],
"failure_modes": [
"OCR quality low for scanned images leading to poor extraction",
"Missing Office/LibreOffice causes conversion failure for Office docs",
"Interrupted indexing leaves documents unpublished and excluded from retrieval",
"LLM API outage or misconfiguration yields no answer",
"Citation coordinates mismatch due to chunk drift",
"Sub-agent recursion if constraints not enforced"
],
"confidence": 0.85,
"explanation": "The README outlines a clear pipeline from document import to cited answer with evidence location, which is a reusable pattern for local-first RAG applications requiring traceability.",
"source_repo": "https://github.com/0verL1nk/PaperSage.git",
"score": 1.0
}
@@ -1,4 +1,4 @@
# Tests: conditional-request-routing-workflow
# Tests: local-document-research-with-traceable-citations
## Test Checklist