Use when detecting a project's programming language and documentation framework from filesystem markers — package.json, Cargo.toml, pyproject.toml, mkdocs.yml, etc.
From docs-guardiannpx claudepluginhub xiaolai/claude-plugin-marketplace --plugin docs-guardianThis skill uses the workspace's default tool permissions.
Enables AI agents to execute x402 payments with per-task budgets, spending controls, and non-custodial wallets via MCP tools. Use when agents pay for APIs, services, or other agents.
Designs and optimizes AI agent action spaces, tool definitions, observation formats, error recovery, and context for higher task completion rates.
Compares coding agents like Claude Code and Aider on custom YAML-defined codebase tasks using git worktrees, measuring pass rate, cost, time, and consistency.
Scan the project root for these marker files. First match wins; if multiple match, use the one with the highest priority.
| Priority | Marker File | Language |
|---|---|---|
| 1 | Cargo.toml | Rust |
| 2 | go.mod | Go |
| 3 | pyproject.toml, setup.py, setup.cfg, Pipfile | Python |
| 4 | tsconfig.json | TypeScript |
| 5 | package.json (without tsconfig) | JavaScript |
| 6 | *.csproj, *.sln | C# |
| 7 | pom.xml, build.gradle, build.gradle.kts | Java/Kotlin |
| 8 | None of the above | Generic |
When config.language is not "auto", skip detection and use the configured value.
Scan for documentation framework config files. First match wins.
| Priority | Marker File | Framework | Doc Root |
|---|---|---|---|
| 1 | mkdocs.yml or mkdocs.yaml | MkDocs | docs/ (or per mkdocs.yml docs_dir) |
| 2 | .vitepress/config.ts or .vitepress/config.js or .vitepress/config.mts | VitePress | directory containing .vitepress/ |
| 3 | docusaurus.config.js or docusaurus.config.ts | Docusaurus | docs/ (or per config docsDir) |
| 4 | conf.py (with extensions containing sphinx) | Sphinx | source/ or directory containing conf.py |
| 5 | docs/ directory exists with .md files | Plain Markdown | docs/ |
| 6 | README.md only | Plain Markdown | project root |
When config.framework is not "auto", skip detection and use the configured value.
Return a JSON object:
{
"language": "typescript",
"languageConfidence": "high",
"framework": "vitepress",
"frameworkConfidence": "high",
"docRoot": "docs/",
"markers": ["tsconfig.json", ".vitepress/config.ts"]
}
Confidence levels:
high: marker file found and unambiguousmedium: marker found but could be misidentified (e.g., JS project with stale tsconfig)low: fallback / guessing