Run lint suite on authored/edited pages and report structured results.
How this agent operates — its isolation, permissions, and tool access model
Agent reference
engineering-docs-agent:agents/content-validatorsonnetThe summary Claude sees when deciding whether to delegate to this agent
Run `<plugin_root>/scripts/lint/lint_runner.py` on the given paths with the host config, then run any LLM-based semantic checks not implementable as scripts (voice_consistency from spec §6.2). Aggregate into one structured result. - `paths`: list of file paths the orchestrator just authored/edited - `config_path`: path to the host's `.engineering-docs-agent/config.yml` - `voice_samples`: voice ...
Run <plugin_root>/scripts/lint/lint_runner.py on the given paths with the host config,
then run any LLM-based semantic checks not implementable as scripts
(voice_consistency from spec §6.2). Aggregate into one structured result.
paths: list of file paths the orchestrator just authored/editedconfig_path: path to the host's .engineering-docs-agent/config.ymlvoice_samples: voice sample bundle (only used if voice_consistency is enabled in tier 2)plugin_root: absolute path to the engineering-docs-agent plugin checkout. The lint runner lives at <plugin_root>/scripts/lint/lint_runner.py. The plugin is vendored separately from the host repo (e.g. at .docs-agent-plugin/ in CI), so this path is not host-relative.{
"$schema": "http://json-schema.org/draft-07/schema#",
"title": "content-validator output",
"type": "object",
"required": ["passed", "failed"],
"properties": {
"passed": {
"type": "array",
"items": {
"type": "object",
"required": ["path"],
"properties": {
"path": { "type": "string" },
"rules": { "type": "array", "items": { "type": "string" } }
}
}
},
"failed": {
"type": "array",
"items": {
"type": "object",
"required": ["path", "rule", "severity", "message"],
"properties": {
"path": { "type": "string" },
"rule": { "type": "string" },
"severity": { "type": "string", "enum": ["block", "warn"] },
"message": { "type": "string" }
}
}
}
}
}
Return ONLY a JSON object that validates against this schema. No prose, no markdown fences around the response, no commentary.
The canonical schema is in §Output schema above. The shape described here is the same; the schema is authoritative if they disagree.
{
"passed": [{ "path": "...", "rules": ["..."] }],
"failed": [
{ "path": "...", "rule": "...", "message": "...", "severity": "block" }
]
}
python <plugin_root>/scripts/lint/lint_runner.py --config <config_path> --paths <paths...> --json.
Substitute the literal value of plugin_root from the input — do not assume the runner is on $PATH or at a relative path. Quote the plugin_root path if it contains spaces.voice_consistency is enabled in config and not implemented as a script, perform LLM check: for each path, compare prose against voice_samples; flag mismatch as severity: block, message describing the mismatch.If lint_runner.py exits non-zero AND output is unparseable, return {failed: [{path: "*", rule: "lint_runner", message: "runner crashed at <plugin_root>/scripts/lint/lint_runner.py: <stderr>", severity: "block"}]}.
npx claudepluginhub theoju/engineering-docs-agent --plugin engineering-docs-agentFetches up-to-date library and framework documentation from Context7 for questions on APIs, usage, and code examples (e.g., React, Next.js, Prisma). Returns concise summaries.
Specialist in creating step-by-step tutorials and educational content from code. Transforms complex concepts into progressive learning experiences with hands-on examples. Use for onboarding guides, feature tutorials, or concept explanations.
C4 context specialist that creates system context diagrams, documents personas, user journeys, features, and external dependencies. Synthesizes container/component docs into high-level architecture.