agentsclimarketplace

Rag skill

Skill uts58/my-random-skills/rag-skill

A curated repo of random AI Skills that I use everyday

Install
npx -y skills add uts58/my-random-skills --skill rag-skill

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

2 things to look at

  • no licenseNo license file was found in the repository. Code published without one is not open source by default, so using it at work is a question for whoever answers licensing questions where you are.
  • 0 stars0 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.

What its author says it does

Copied from the file, not written here

A retrieval and Q&A assistant for local knowledge base directories. Core process: (1) Hierarchical index navigation (2) For PDF/Excel, references must be read first to learn processing methods (3) Process files before retrieval. Uses a combination of grep, Read, pdfplumber, and pandas for progressive retrieval based on file type, avoiding full file loading. Use when user questions involve "answering questions/retrieving information/finding data from a knowledge base directory".

SKILL.md

15.5 KB, ~3.4k tokens by cl100k_base, as published. Nobody here has run it

Local Knowledge Base Retrieval Skill (kb-retriever)

Knowledge Base Directory Description

  • Knowledge is stored in a root directory containing various file types (e.g., .md / .txt, .pdf, .xlsx, etc.), usually split into multi-level subdirectories by type or business purpose.
  • Hierarchical Directory Index Files:
    • The root directory has a data_structure.md, explaining the main "domain directories" and their purposes.
    • Each domain directory can have its own data_structure.md, explaining the subdirectories/files within it and their respective purposes.
    • Deeper subdirectories can continue to have data_structure.md, forming a multi-level index tree.
  • Knowledge Base Root Directory Conventions:
    • By default, the knowledge base is assumed to be in the knowledge/ directory under the current project root.
    • If the user explicitly specifies another path in the conversation (e.g., "My knowledge base is at /data/kb" or "Use the ./docs directory as the knowledge base"), the user-specified path is used as the root.
    • When the default path knowledge/ does not exist or fails to be accessed, confirm the actual knowledge base root directory location with the user instead of guessing.
  • Individual business files may be very large:
    • Do not use Read to read the entire file directly.
    • For PDF and Excel, use the corresponding skills for structured processing first, then combine with grep / partial reading for fine-grained retrieval.

Locating the knowledge Root Directory

  • Prioritize the user: If the user provides a path (e.g., ./docs, ./knowledge-personal), use it directly.
  • Default root directory: Otherwise, the root directory is assumed to be knowledge/ under the current project.
    • Explicitly check if the directory exists using the shell: Prefer test -d knowledge, or failing that, ls -d knowledge.
    • Note: Prohibit using patterns like Glob "knowledge" in . to determine if a directory exists. Glob only returns file paths, not the directory itself; an empty result doesn't distinguish between "directory doesn't exist" and "directory exists but is empty".
  • Only when the root directory is confirmed to exist via test -d or similar, use Glob to retrieve content within that directory and treat the directory as the path. For example:
    • Index files: pattern="**/data_structure.md", path="knowledge"
    • All Markdown: pattern="**/*.md", path="knowledge"
  • If the default knowledge/ does not exist (test -d fails): Do not guess other directories. Clearly tell the user that the default root directory was not found and ask them to specify the actual knowledge base path.

Key Principle: Learn First, Process Later

Mandatory Checklist when encountering PDF or Excel files:

  • ✅ Read the corresponding references document to learn processing methods.
  • ✅ Understand the recommended tools and commands.
  • ✅ Complete file processing (extraction/conversion).
  • ⏭️ Now retrieval can begin.

Prohibited Actions:

  • ❌ Attempting to process a PDF without reading pdf_reading.md.
  • ❌ Attempting to process an Excel without reading excel_reading.md.
  • ❌ Skipping the file processing step and retrieving directly from the original PDF/Excel.

Overall Process

  1. Understand User Requirements

    • Read the user's question and extract:
      • Topic/Domain keywords (e.g., "sales report", "system architecture", "API documentation").
      • Time or scope constraints (e.g., "2023 Q1", "recent version").
      • Desired output type (explanation, summary, specific field values, etc.).
    • Determine the knowledge base root directory:
      • Check if the user specified a knowledge base path in the question first.
      • Otherwise, use the default root directory knowledge/.
      • If the default root directory doesn't exist or the structure is abnormal, ask the user for confirmation instead of making assumptions.
  2. Hierarchically Review Directory Index data_structure.md

    • Use the concept of a "Current Working Directory":
      • Start from the user-specified knowledge base root directory by default; if not specified, use the current directory.
    • If data_structure.md exists in the current working directory:
      • Use Read to read the first few hundred lines (e.g., limit=300), and continue reading in segments if necessary.
      • Goal:
        • Understand what subdirectories and files are in the current directory.
        • Understand the purpose description for each subdirectory/file.
      • Based on the user's question, select the most relevant subdirectories or files as candidates.
    • For candidate subdirectories:
      • Recursively enter the subdirectory, treating it as the new "Current Working Directory", and repeat the process of searching for data_structure.md.
      • During recursion, avoid diving into all branches at once; prioritize paths most relevant to the question.
    • For candidate business files (md/text, PDF, Excel, etc.):
      • After completing the necessary directory level exploration, collect these files as the final retrieval target list.
    • When prioritizing:
      • Prioritize domain directories and files whose purpose descriptions highly match the question topic.
      • Secondly, consider constraints like time/version (if reflected in the index).
      • General documentation (like README.md, overall design documents) should have lower priority.
  3. Learn File Processing Methods (Mandatory for PDF/Excel)

    • Before processing PDF files:
      • Must read references/pdf_reading.md (note this directory is under Skills, not Knowledge) to learn extraction methods.
      • Key focus: pdftotext command, pdfplumber usage, table extraction methods.
    • Before processing Excel files:
    • Purpose: Ensure correct tools and methods are used, avoiding blind retrieval.
  4. Execute Processing and Retrieval by File Type

    • Use the learned methods to process files (extraction, conversion, structuring).
    • For each category of candidate files, follow the "Markdown/Text", "PDF", or "Excel" strategies below.
    • General Principles:
      • Start with the most relevant and precise files.
      • Perform progressive local retrieval within each file to avoid loading the entire content at once.
      • If the current file doesn't provide satisfactory information, switch to the next candidate file.
  5. Iterative Retrieval

    • All file types use a unified "Multi-round Iterative Retrieval Mechanism" (see Common Retrieval Principles above).
  6. Answer Organization and Sourcing

    • Consolidate the context obtained from multiple rounds of retrieval to answer the user's question comprehensively.
    • Aim to:
      • Provide clear and direct answers.
      • Indicate the filenames used (including approximate locations like sections or line/page numbers where necessary).
    • If the answer is based on inference or incomplete information:
      • Clearly mark assumptions and uncertainties.
      • Prompt the user to provide a more specific file scope or keywords.

Common Retrieval Principles

Keyword Selection Strategy

  • Extract 3-8 keywords from the user's question (including possible English abbreviations, synonyms, hypernyms/hyponyms).
  • Use combinable phrases (e.g., "sales report", "API interface timeout").
  • Include business terms, technical jargon, and common abbreviations (e.g., "uv", "pv", "GMV") as necessary.

grep Retrieval Basic Principles

  • Always specify the most precise include and path possible, avoiding searching the entire directory.
  • Prioritize core nouns and terms from the question in the pattern, then try synonyms.
  • For each hit, only read the local area around the match (a few lines above and below).
  • Save "Filename + Position Information + Text Snippet".

Multi-round Iterative Retrieval Mechanism (Max 5 times)

A unified iterative strategy for all file types:

  1. Iteration Control
    • Maintain an "Attempted Retrieval Count", max 5 times.
    • Increment the count after each retrieval.
  2. Each Round Workflow
    1. Generate/update retrieval keywords based on the question (can include synonyms, extensions).
    2. Select files or file parts that haven't been fully retrieved yet.
    3. Execute retrieval (grep / partial read / specialized Skill call).
    4. Analyze the obtained context snippets.
    5. Determine if it's enough to answer the question.
  3. Termination Conditions
    • Found enough context to support the answer; OR
    • Reached 5 attempts without finding suitable information.
  4. Handling Insufficient Information
    • Clearly inform the user if information is missing or might not be in the current knowledge base.
    • Provide the closest information found and explain the uncertainty.
    • Suggest how the user can narrow the scope (more specific filenames, keywords, time range, etc.).

Important Notes

  • Prohibit calling Glob "knowledge" in . or any attempt to use Glob to determine directory existence for the first time. Directory existence should be checked via shell commands (e.g., test -d).
  • When using this Skill to query the knowledge base, prohibit using other tools like web search to obtain knowledge.

Specific Strategies for Different File Types

1. Markdown / Text Files (.md, .txt, .log, etc.)

  1. Candidate File Selection

    • Judge relevance based on data_structure.md, filenames, and paths.
    • Prioritize retrieving title and index files (e.g., summary documents, design overviews).
  2. grep Positioning and Partial Reading

    • Use the Grep tool on specified candidate files, limiting include to specific suffixes (e.g., "*.md").
    • For files with matches, use Read to only read the local area around the match:
      • Control reading via line number offset and limit (e.g., read a few dozen lines before and after the matching line).
      • Avoid reading the entire file.
  3. Special Handling

    • If the content is just a table of contents/title, continue to locate deeper content based on links or section names.
    • Apply the "Multi-round Iterative Retrieval Mechanism" (see Common Retrieval Principles above).

2. PDF File Retrieval Strategy

Workflow:

  1. First: Read Processing Guide

    • Before processing any PDF, must read references/pdf_reading.md (note this directory is under Skills, not Knowledge).
    • Key focus: pdftotext command, pdfplumber usage, table extraction methods, Quick Decision Table.
  2. Select Candidate PDFs

    • Based on the description in data_structure.md, select the 1-3 most relevant files.
    • If the user specifies a particular PDF file, prioritize that file.
  3. Apply Learned Methods to Extract Text

    • Use tools recommended in pdf_reading.md (prefer pdftotext or pdfplumber).
    • IMPORTANT: Use pdftotext input.pdf output.txt to extract text to a file; do not output directly to stdout (to avoid consuming many tokens).
    • If tables need to be extracted, use pdfplumber's table extraction functionality.
  4. Execute Retrieval on Extraction Results

    • Use grep to perform keyword searches on the extracted text.
    • For each hit, extract the context around the match (dozens of lines above/below or adjacent pages).
    • Save "Filename + Page Number/Approximate Position + Text Snippet".
    • Apply the "Multi-round Iterative Retrieval Mechanism" (see Common Retrieval Principles above).

3. Excel File Retrieval Strategy

Workflow:

  1. First: Read Processing Guide

    • Before processing any Excel, must read:
    • Key focus: pandas reading methods, column filtering, data filtering, aggregation operations.
  2. Select Candidate Excels

    • Based on data_structure.md and file/worksheet names, select the most relevant sheets.
    • Prioritize workbooks/sheets containing keywords like "report", "statistics", "log", "config", "mapping", etc.
    • If the user specifies a particular Excel file, prioritize that file.
  3. Apply Learned Methods to Explore Structure

    • Use pandas to read the first 10-50 rows (using the nrows parameter).
    • Key mastery: Column/field names, data types (numeric, date, text), key fields.
    • Compare column names with the user's question to identify potential key fields (e.g., "revenue", "sales", "error_code", etc.).
  4. Execute Data Retrieval and Analysis

    • Use learned pandas methods for filtering and aggregation (e.g., df[df['column'] == value]).
    • Read only the data around the matching rows at a time, avoiding reading the entire sheet at once.
    • If the question includes a time range, add time filtering to the retrieval.
    • Apply the "Multi-round Iterative Retrieval Mechanism" (see Common Retrieval Principles above).

Synergy with Other Tools

PDF Processing

  • Must read references/pdf_reading.md before processing PDF to learn methods.
  • Use pdfplumber / pypdf for text extraction, table extraction, and metadata reading.
  • Prioritize using the pdftotext command-line tool for fast text extraction.

Excel Processing

Tool Usage Principles

  • Grep: Used to find line numbers and matching snippets by keyword in specified files; always specify the most precise include and path possible.
  • Read: Only used for partial file reading; always set a reasonable limit (e.g., 200-500 lines) and appropriate offset.
  • For any file that may be large:
    • Prohibit reading directly from beginning to end.
    • Always narrow the range via indexes, table of contents, or keywords before reading.

Answer Style and Error Handling

  • Answer Style
    • Try to answer in the language the user asked (Chinese/English).
    • Give the conclusion first, then the brief rationale.
    • If needed, list the files cited and their approximate locations at the end, for example:
      • Source: design/api_gateway.md near line 100
      • Source: reports/2023_Q1_sales.xlsx Summary worksheet
  • Missing or Uncertain Information
    • Clearly state if no exact match was found in the current knowledge base or if only a partial answer can be given.
    • Do not fabricate facts.
    • Suggest how the user can help narrow the scope:
      • Specify a more specific directory/file.
      • Provide more precise keywords or field names.
      • Specify a time/version range.

Gives 0 of the 12 instructions most pdf office docs skills give in ~3.4k tokens

Counted across 636 of the 690 authors here whose files we hold, read 2026-08-07

  • extract text using pdfplumberin 89 of 636, across 23 files
  • create PDFs using reportlabin 83 of 636, across 16 files
  • read forms.md to fill out pdf formsin 80 of 636, across 13 files
  • OCR scanned PDFs using pytesseractin 77 of 636, across 10 files
  • merge or split PDFs using qpdfin 70 of 636, across 3 files
  • use excel formulas instead of hardcoded calculated valuesin 68 of 636, across 13 files
  • unpack edit xml and repack existing documentsin 63 of 636, across 8 files
  • document sources for hardcoded valuesin 61 of 636, across 9 files
  • write minimal python code without unnecessary commentsin 59 of 636, across 7 files
  • run the recalculation script after adding or modifying formulasin 59 of 636, across 7 files
  • fix all identified formula errors and recalculatein 58 of 636, across 6 files
  • format years as text stringsin 57 of 636, across 5 files

Said here and by no other author read

  • read directory index files hierarchically
  • extract scope constraints from the user question
  • use shell commands to check directory existence
  • ask the user if the default root directory is missing
  • read reference documents before processing pdf files
  • use grep for local keyword retrieval

Grouped from the skills themselves: near-identical wordings counted once, and counted by distinct author, so one author publishing three of these counts once. Length counted with cl100k_base; the agent that loads this file may tokenize it differently.

Keep looking

Skills are one crate of 328,083. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.