Installs into .claude/skills of the current project.
Are you the author of Prompt?
Add the live security badge to your README. It updates with every re-scan.
[](https://www.skillsdirectory.com/skills/bitwikiorg-prompt)
---
description: Imported skill prompt from agentskills
name: prompt
signature: 8ed90a61685b84050a8fde32e63d5f3f04c205b05bfc5f8ef4bb2f101cc9cf15
source: /a0/tmp/skills_research/agentskills/skills-ref/src/skills_ref/prompt.py
---
"""Generate <available_skills> XML prompt block for agent system prompts."""
import html
from pathlib import Path
from .parser import find_skill_md, read_properties
def to_prompt(skill_dirs: list[Path]) -> str:
"""Generate the <available_skills> XML block for inclusion in agent prompts.
This XML format is what Anthropic uses and recommends for Claude models.
Skill Clients may format skill information differently to suit their
models or preferences.
Args:
skill_dirs: List of paths to skill directories
Returns:
XML string with <available_skills> block containing each skill's
name, description, and location.
Example output:
<available_skills>
<skill>
<name>pdf-reader</name>
<description>Read and extract text from PDF files</description>
<location>/path/to/pdf-reader/SKILL.md</location>
</skill>
</available_skills>
"""
if not skill_dirs:
return "<available_skills>\n</available_skills>"
lines = ["<available_skills>"]
for skill_dir in skill_dirs:
skill_dir = Path(skill_dir).resolve()
props = read_properties(skill_dir)
lines.append("<skill>")
lines.append("<name>")
lines.append(html.escape(props.name))
lines.append("</name>")
lines.append("<description>")
lines.append(html.escape(props.description))
lines.append("</description>")
skill_md_path = find_skill_md(skill_dir)
lines.append("<location>")
lines.append(str(skill_md_path))
lines.append("</location>")
lines.append("</skill>")
lines.append("</available_skills>")
return "\n".join(lines)