Answer user questions about QwenPaw installation and configuration: first locate and read local documentation, then distill the answer; if local information is insufficient, fall back to the official website documentation.
53
61%
Does it follow best practices?
Run evals on this skill
Adds up to 20 points to the overall score
View guide
Low
Low-risk findings worth noting
Fix and improve this skill with Tessl
tessl review fix ./src/qwenpaw/agents/skills/guidance-en/SKILL.mdUse this skill when the user asks about QwenPaw installation, initialization, environment configuration, dependency requirements, or common configuration options.
Core principles:
Use built-in path resolution (works for all install methods)
DOCS_DIR=$(python3 -c "from qwenpaw.constant import DOCS_DIR; print(DOCS_DIR or '')" 2>/dev/null)If the above returns a non-empty path and the directory exists, use it directly and skip to Step 2.
If it fails (e.g., older version without DOCS_DIR), fall back in the following order:
Check for documentation directory in memory
First, check whether there is a documentation directory in memory. If found, use it directly; otherwise, proceed to the next step.
# Get the documentation directory from memory
DOCS_DIR=$(find ~/.qwenpaw/memory/ -type d -name "docs")If there is no documentation directory in memory, continue with the following logic.
Check the documentation directory in the project source code
Run the following script logic to obtain the variable $QWENPAW_ROOT:
# Get the absolute path of the binary
QWENPAW_PATH=$(which qwenpaw 2>/dev/null || whereis qwenpaw | awk '{print $2}')
# Logical deduction: if the path contains .qwenpaw/bin/qwenpaw, the root is three levels up
# Example: /path/to/QwenPaw/.qwenpaw/bin/qwenpaw -> /path/to/QwenPaw
if [[ "$QWENPAW_PATH" == *".qwenpaw/bin/qwenpaw" ]]; then
QWENPAW_ROOT=$(echo "$QWENPAW_PATH" | sed 's/\/\.qwenpaw\/bin\/qwenpaw//')
else
# Fallback: try to get the parent of the parent directory
QWENPAW_ROOT=$(dirname $(dirname "$QWENPAW_PATH") 2>/dev/null || echo ".")
fi
echo "Detected QwenPaw Root: $QWENPAW_ROOT"Verify and list the documentation directory: Use the derived $QWENPAW_ROOT to locate the documentation:
# Construct the standard documentation path
DOCS_DIR="$QWENPAW_ROOT/website/public/docs/"
# Check if the path exists and list files
if [ -d "$DOCS_DIR" ]; then
find "$DOCS_DIR" -type f -name "*.md" | head -n 100
else
# If the derived path is incorrect, perform a global fuzzy search
find "$QWENPAW_ROOT" -type d -name "docs" | grep "website/public/docs"
fiIf project documentation does not exist, search the working directory
If documentation is still not found, search for available documentation content under the qwenpaw installation path:
# Look for characteristic files such as faq.en.md or config.zh.md
FILE_PATH=$(find . -type f -name "faq.en.md" -o -name "config.zh.md" | head -n 1)
if [ -n "$FILE_PATH" ]; then
# Use dirname to get the directory containing the file
DOCS_DIR=$(dirname "$FILE_PATH")
fiIf a documentation directory is found, save it in memory in this format:
# Documentation Directory
$DOCS_DIR = <doc_path>Documentation files follow the naming format <topic>.<lang>.md (e.g., config.zh.md, config.en.md, quickstart.zh.md).
Use the find command to list all matching documents in the target directory, and identify the target as <doc_path> based on filename keywords (e.g., install, env, setup).
# List all matching documents
find $DOCS_DIR -type f -name "*.md"If no suitable document is found, read all documentation contents in the next step.
After finding candidate documents, read and identify the paragraphs relevant to the question. You can use:
cat <doc_path>file_reader skill (recommended for longer documents or paginated reading)If the documentation is long, prioritize reading the sections most relevant to the question (installation steps, configuration options, example commands, notes, version requirements).
Extract key information from the documentation and organize it into an actionable answer:
Language requirement: the answer language must match the language of the user's question (answer in Chinese if asked in Chinese, answer in English if asked in English).
If the previous steps cannot be completed (no local documentation, missing documentation, or insufficient information), use the official website as a fallback:
Answer based on the content available from the official website, and clearly state in the answer that the conclusion comes from the official website documentation.
734c8b9
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.