[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M71NDNKTDKC6EXFSRM8P4Q4Y":3,"skill-same:01M71NDNKTDKC6EXFSRM8P4Q4Y":126},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":16,"categories":17,"keywords":23,"publishedAt":44,"linkOnly":45,"markdownContent":46,"markdownBody":47,"frontMatter":48,"refName":50,"commitSha":51,"skillDirectory":52,"forksCount":53,"repositoryHtmlUrl":54,"repositoryHomepageUrl":6,"ownerHtmlUrl":55,"ownerBlogUrl":6,"ownerDescription":56,"updatedAt":57,"install":58,"resources":71},"01M71NDNKTDKC6EXFSRM8P4Q4Y","ln-614-docs-fact-checker",null,"Verifies claims in .md files (paths, versions, counts, configs, endpoints) against codebase, cross-checks contradictions. Use when auditing docs accuracy.","vitalikpestov\u002FSkills-Catalog","vitalikpestov","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F13882997?v=4","01M71N4QG0CWRXX4R24JQZXDDQ","Vitalik Pestov","01M71N4QGMSYRW607DDSE0CQMM",2,"MIT","https:\u002F\u002Fgithub.com\u002Fvitalikpestov\u002FSkills-Catalog\u002Fblob\u002Fmain\u002F_AI-Automation\u002Fclaude-code-skills-levnikolaevich\u002Fplugins\u002Fcodebase-audit-suite\u002Fskills\u002Fln-614-docs-fact-checker\u002FSKILL.md",[18],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000023","Skill与智能体开发","SCENARIO","使用场景",[24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43],"ln 614 docs fact checker","ln","fact checker","docs","checker","file","use","accuracy","graph","paths","read","line","references","claims","Bash","when","MCP","files","hex","project","2026-11-10 10:56:23",false,"---\nname: ln-614-docs-fact-checker\ndescription: \"Verifies claims in .md files (paths, versions, counts, configs, endpoints) against codebase, cross-checks contradictions. Use when auditing docs accuracy.\"\nallowed-tools: Read, Grep, Glob, Bash, mcp__hex-line__outline, mcp__hex-line__read_file, mcp__hex-graph__index_project, mcp__hex-graph__find_symbols, mcp__hex-graph__find_references\nlicense: MIT\n---\n\n> **Paths:** File paths (`references\u002F`, `..\u002Fln-*`) are relative to this skill directory.\n\n# Documentation Fact-Checker (L3 Worker)\n\n**Type:** L3 Worker\n\nSpecialized worker that extracts verifiable claims from documentation and validates each against the actual codebase.\n\n## Purpose & Scope\n\n- Prioritize canonical and high-claim docs, then extract verifiable claims from markdown documentation\n- Verify each claim against codebase (Grep\u002FGlob\u002FRead\u002FBash)\n- Detect **cross-document contradictions** (same fact stated differently)\n- Includes `docs\u002Freference\u002F`, `docs\u002Ftasks\u002F`, `tests\u002F` in scope\n- Single invocation (not per-document) -> cross-doc checks require global view\n- Does NOT check scope alignment or structural quality\n\n## Inputs\n\n**MANDATORY READ:** Load `references\u002Faudit_worker_core_contract.md`, `references\u002Fdocs_quality_contract.md`, and `references\u002Fmarkdown_read_protocol.md`.\nOptional rule catalog: load `references\u002Fdocs_quality_rules.json` only when exact rule IDs, path matrices, or allowlisted placeholder exceptions are needed.\nTool policy: follow host AGENTS.md MCP preferences; load `references\u002Fmcp_tool_preferences.md` and `references\u002Fmcp_integration_patterns.md` only when host policy is absent or MCP behavior is unclear.\n\nReceives `contextStore` with: `tech_stack`, `project_root`, `output_dir`.\n\n## Workflow\n\n### Phase 1: Parse Context\n\nExtract tech stack, project root, output_dir from contextStore.\n\n### Phase 2: Discover Documents\n\nGlob markdown docs in project. Exclude:\n- `node_modules\u002F`, `.git\u002F`, `dist\u002F`, `build\u002F`\n- `docs\u002Fproject\u002F.audit\u002F` (audit output, not project docs)\n- `CHANGELOG.md` (historical by design)\n\nIf `docs\u002Fproject\u002F.context\u002Fdoc_registry.json` exists:\n- load it first\n- prioritize `doc_role=canonical`\n- prioritize files with dense claim types (paths, endpoints, versions, commands)\n- de-prioritize navigation hubs unless contradictions point back to them\n\n### Phase 3: Extract Claims (Layer 1)\n\nDetection policy: use two-layer detection (candidate scan, then context verification); load `references\u002Ftwo_layer_detection.md` only when the verification method is ambiguous.\n\nFor each prioritized document, use section-first reads to extract verifiable claims using Grep\u002Fregex patterns.\n\nFor code files referenced by docs, use `outline()` and discovery-first `read_file()` before built-in reads. Only request `edit_ready=true, verbosity=\"full\"` if verification turns into a follow-up edit. Use `hex-graph` only when entity identity or reference resolution remains ambiguous after direct manifest\u002Ffile checks.\n\n**MANDATORY READ:** Load [references\u002Fclaim_extraction_rules.md](references\u002Fclaim_extraction_rules.md) for detailed extraction patterns per claim type.\n\n9 claim types:\n\n| # | Claim Type | What to Extract | Extraction Pattern |\n|---|-----------|-----------------|-------------------|\n| 1 | **File paths** | Paths to source files, dirs, configs | Backtick paths, link targets matching `src\u002F`, `lib\u002F`, `app\u002F`, `docs\u002F`, `config\u002F`, `tests\u002F` |\n| 2 | **Versions** | Package\u002Ftool\u002Fimage versions | Semver patterns near dependency\u002Fpackage\u002Fimage names |\n| 3 | **Counts\u002FStatistics** | Numeric claims about codebase | `\\d+ (modules|formats|endpoints|services|tables|parsers|files|workers)` |\n| 4 | **API endpoints** | HTTP method + path | `(GET|POST|PUT|DELETE|PATCH) \u002F[\\w\u002F{}:]+` |\n| 5 | **Config keys\u002Fenv vars** | Environment variables, config keys | `[A-Z][A-Z_]{2,}` in config context, `process.env.`, `os.environ` |\n| 6 | **CLI commands** | Shell commands | `npm run`, `python`, `docker`, `make` in backtick blocks |\n| 7 | **Function\u002Fclass names** | Code entity references | CamelCase\u002Fsnake_case in backticks or code context |\n| 8 | **Line number refs** | file:line patterns | `[\\w\u002F.]+:\\d+` patterns |\n| 9 | **Docker\u002Finfra claims** | Image tags, ports, service names | Image names with tags, port mappings in docker context |\n\nOutput per claim: `{doc_path, line, claim_type, claim_value, raw_context}`.\n\n### Phase 4: Verify Claims (Layer 2)\n\nFor each extracted claim, verify against codebase:\n\n| Claim Type | Verification Method | Finding Type |\n|------------|-------------------|--------------|\n| File paths | Glob or `ls` for existence | PATH_NOT_FOUND |\n| Versions | Grep package files (package.json, requirements.txt, docker-compose.yml), compare | VERSION_MISMATCH |\n| Counts | Glob\u002FGrep to count actual entities, compare with claimed number | COUNT_MISMATCH |\n| API endpoints | Grep route\u002Fcontroller definitions | ENDPOINT_NOT_FOUND |\n| Config keys | Grep in source for actual usage | CONFIG_NOT_FOUND |\n| CLI commands | Check package.json scripts, Makefile targets, binary existence | COMMAND_NOT_FOUND |\n| Function\u002Fclass | Grep in source for definition | ENTITY_NOT_FOUND |\n| Line numbers | Read file at line, check content matches claimed context | LINE_MISMATCH |\n| Docker\u002Finfra | Grep docker-compose.yml for image tags, ports | INFRA_MISMATCH |\n\n**False positive filtering (Layer 2 reasoning):**\n- Template placeholders (`{placeholder}`, `YOUR_*`, `\u003Cproject>`, `xxx`) -> skip\n- Example\u002Fhypothetical paths (preceded by \"e.g.\", \"for example\", \"such as\") -> skip\n- Future-tense claims (\"will add\", \"planned\", \"TODO\") -> skip or LOW\n- Conditional claims (\"if using X, configure Y\") -> verify only if X detected in tech_stack\n- External service paths (URLs, external repos) -> skip\n- Paths in SCOPE\u002Fcomment HTML blocks describing other projects -> skip\n- `.env.example` values -> skip (expected to differ from actual)\n\n### Phase 5: Cross-Document Consistency\n\nCompare extracted claims across documents to find contradictions:\n\n| Check | Method | Finding Type |\n|-------|--------|--------------|\n| Same path, different locations | Group file path claims, check if all point to same real path | CROSS_DOC_PATH_CONFLICT |\n| Same entity, different version | Group version claims by entity name, compare values | CROSS_DOC_VERSION_CONFLICT |\n| Same metric, different count | Group count claims by subject, compare values | CROSS_DOC_COUNT_CONFLICT |\n| Endpoint in spec but not in guide | Compare endpoint claims across api_spec.md vs guides\u002Frunbook | CROSS_DOC_ENDPOINT_GAP |\n\nAlgorithm:\n```\nclaim_index = {}  # key: normalized(claim_type + entity), value: [{doc, line, value}]\nFOR claim IN all_verified_claims WHERE claim.verified == true:\n  key = normalize(claim.claim_type, claim.entity_name)\n  claim_index[key].append({doc: claim.doc_path, line: claim.line, value: claim.claim_value})\n\nFOR key, entries IN claim_index:\n  unique_values = set(entry.value for entry in entries)\n  IF len(unique_values) > 1:\n    CREATE finding(type=CROSS_DOC_*_CONFLICT, severity=HIGH,\n      location=entries[0].doc + \":\" + entries[0].line,\n      issue=\"'\" + key + \"' stated as '\" + val1 + \"' in \" + doc1 + \" but '\" + val2 + \"' in \" + doc2)\n```\n\n### Phase 6: Score & Report\n\n**MANDATORY READ:** Load `references\u002Faudit_scoring.md`.\n\nCalculate score using penalty formula. Write report.\n\n## Audit Categories (for Checks table)\n\n| ID | Check | What It Covers |\n|----|-------|---------------|\n| `path_claims` | File\u002FDirectory Paths | All path references verified against filesystem |\n| `version_claims` | Version Numbers | Package, tool, image versions against manifests |\n| `count_claims` | Counts & Statistics | Numeric assertions against actual counts |\n| `endpoint_claims` | API Endpoints | Route definitions against controllers\u002Frouters |\n| `config_claims` | Config & Env Vars | Environment variables, config keys against source |\n| `command_claims` | CLI Commands | Scripts, commands against package.json\u002FMakefile |\n| `entity_claims` | Code Entity Names | Functions, classes against source definitions |\n| `line_ref_claims` | Line Number References | file:line against actual file content |\n| `cross_doc` | Cross-Document Consistency | Same facts across documents agree |\n\n## Severity Mapping\n\n| Issue Type | Severity | Rationale |\n|------------|----------|-----------|\n| PATH_NOT_FOUND (critical file: AGENTS.md, CLAUDE.md, runbook, api_spec) | CRITICAL | Setup\u002Fonboarding fails |\n| PATH_NOT_FOUND (other docs) | HIGH | Misleading reference |\n| VERSION_MISMATCH (major version) | HIGH | Fundamentally wrong |\n| VERSION_MISMATCH (minor\u002Fpatch) | MEDIUM | Cosmetic drift |\n| COUNT_MISMATCH | MEDIUM | Misleading metric |\n| ENDPOINT_NOT_FOUND | HIGH | API consumers affected |\n| CONFIG_NOT_FOUND | HIGH | Deployment breaks |\n| COMMAND_NOT_FOUND | HIGH | Setup\u002FCI breaks |\n| ENTITY_NOT_FOUND | MEDIUM | Confusion |\n| LINE_MISMATCH | LOW | Minor inaccuracy |\n| INFRA_MISMATCH | HIGH | Docker\u002Fdeployment affected |\n| CROSS_DOC_*_CONFLICT | HIGH | Trust erosion, contradictory docs |\n\n## Output Format\n\n**MANDATORY READ:** Load `references\u002Ftemplates\u002Faudit_worker_report_template.md`.\n\nWrite JSON summary per `references\u002Faudit_summary_contract.md`. In managed mode the caller passes both `runId` and `summaryArtifactPath`; in standalone mode the worker generates its own run-scoped artifact path per shared contract.\n\nWrite report to `{output_dir}\u002Fln-614--global.md` with `category: \"Fact Accuracy\"` and checks: path_claims, version_claims, count_claims, endpoint_claims, config_claims, command_claims, entity_claims, line_ref_claims, cross_doc.\n\nReturn summary per `references\u002Faudit_summary_contract.md`.\n\nWhen `summaryArtifactPath` is absent, write the standalone runtime summary under `.hex-skills\u002Fruntime-artifacts\u002Fruns\u002F{run_id}\u002Fevaluation-worker\u002F{worker}--{identifier}.json` and optionally echo the same summary in structured output.\n```\nReport written: .hex-skills\u002Fruntime-artifacts\u002Fruns\u002F{run_id}\u002Faudit-report\u002Fln-614--global.md\nScore: X.X\u002F10 | Issues: N (C:N H:N M:N L:N)\n```\n\n## Critical Rules\n\nApply the already-loaded `references\u002Faudit_worker_core_contract.md`.\n\n- **Do not auto-fix:** Report violations only; coordinator aggregates for user\n- **Code is truth:** When docs contradict code, document is wrong (unless code is a bug)\n- **Evidence required:** Every finding includes verification command used and result\n- **No false positives:** Better to miss an issue than report incorrectly. When uncertain, classify as LOW with note\n- **Location precision:** Always include `file:line` for programmatic navigation\n- **Broad scope:** Scan ALL .md files -- do not skip docs\u002Freference\u002F, tests\u002F, or task docs\n- **Targeted depth:** Spend the deepest verification effort on canonical and high-claim docs first\n- **Cross-doc matters:** Contradictions between documents erode trust more than single-doc errors\n- **Batch efficiently:** Extract all claims first, then verify in batches by type (all paths together, all versions together)\n- **Shared placeholder policy:** Respect allowlisted setup placeholders from `docs_quality_rules.json`; do not escalate them in task setup docs\n- **Use hex-graph only for semantic ambiguity:** For code entities and references, prefer graph queries over repeated grep only when direct manifest\u002Ffile checks leave symbol identity or reference resolution ambiguous\n\n## Definition of Done\n\nApply the already-loaded `references\u002Faudit_worker_core_contract.md`.\n\n- [ ] contextStore parsed successfully (including output_dir)\n- [ ] All `.md` files discovered (broad scope)\n- [ ] Claims extracted across 9 types\n- [ ] Each claim verified against codebase with evidence\n- [ ] Cross-document consistency checked\n- [ ] False positives filtered via Layer 2 reasoning\n- [ ] Score calculated using penalty algorithm\n- [ ] Report written to `{output_dir}\u002Fln-614--global.md` (atomic single Write call)\n- [ ] Summary written per contract\n\n## Reference Files\n\n- **Audit output schema:** `references\u002Faudit_output_schema.md`\n- **Detection methodology:** `references\u002Ftwo_layer_detection.md`\n- Claim extraction rules: [references\u002Fclaim_extraction_rules.md](references\u002Fclaim_extraction_rules.md)\n\n---\n**Version:** 1.0.0\n**Last Updated:** 2026-03-06\n","> **Paths:** File paths (`references\u002F`, `..\u002Fln-*`) are relative to this skill directory.\n\n# Documentation Fact-Checker (L3 Worker)\n\n**Type:** L3 Worker\n\nSpecialized worker that extracts verifiable claims from documentation and validates each against the actual codebase.\n\n## Purpose & Scope\n\n- Prioritize canonical and high-claim docs, then extract verifiable claims from markdown documentation\n- Verify each claim against codebase (Grep\u002FGlob\u002FRead\u002FBash)\n- Detect **cross-document contradictions** (same fact stated differently)\n- Includes `docs\u002Freference\u002F`, `docs\u002Ftasks\u002F`, `tests\u002F` in scope\n- Single invocation (not per-document) -> cross-doc checks require global view\n- Does NOT check scope alignment or structural quality\n\n## Inputs\n\n**MANDATORY READ:** Load `references\u002Faudit_worker_core_contract.md`, `references\u002Fdocs_quality_contract.md`, and `references\u002Fmarkdown_read_protocol.md`.\nOptional rule catalog: load `references\u002Fdocs_quality_rules.json` only when exact rule IDs, path matrices, or allowlisted placeholder exceptions are needed.\nTool policy: follow host AGENTS.md MCP preferences; load `references\u002Fmcp_tool_preferences.md` and `references\u002Fmcp_integration_patterns.md` only when host policy is absent or MCP behavior is unclear.\n\nReceives `contextStore` with: `tech_stack`, `project_root`, `output_dir`.\n\n## Workflow\n\n### Phase 1: Parse Context\n\nExtract tech stack, project root, output_dir from contextStore.\n\n### Phase 2: Discover Documents\n\nGlob markdown docs in project. Exclude:\n- `node_modules\u002F`, `.git\u002F`, `dist\u002F`, `build\u002F`\n- `docs\u002Fproject\u002F.audit\u002F` (audit output, not project docs)\n- `CHANGELOG.md` (historical by design)\n\nIf `docs\u002Fproject\u002F.context\u002Fdoc_registry.json` exists:\n- load it first\n- prioritize `doc_role=canonical`\n- prioritize files with dense claim types (paths, endpoints, versions, commands)\n- de-prioritize navigation hubs unless contradictions point back to them\n\n### Phase 3: Extract Claims (Layer 1)\n\nDetection policy: use two-layer detection (candidate scan, then context verification); load `references\u002Ftwo_layer_detection.md` only when the verification method is ambiguous.\n\nFor each prioritized document, use section-first reads to extract verifiable claims using Grep\u002Fregex patterns.\n\nFor code files referenced by docs, use `outline()` and discovery-first `read_file()` before built-in reads. Only request `edit_ready=true, verbosity=\"full\"` if verification turns into a follow-up edit. Use `hex-graph` only when entity identity or reference resolution remains ambiguous after direct manifest\u002Ffile checks.\n\n**MANDATORY READ:** Load [references\u002Fclaim_extraction_rules.md](references\u002Fclaim_extraction_rules.md) for detailed extraction patterns per claim type.\n\n9 claim types:\n\n| # | Claim Type | What to Extract | Extraction Pattern |\n|---|-----------|-----------------|-------------------|\n| 1 | **File paths** | Paths to source files, dirs, configs | Backtick paths, link targets matching `src\u002F`, `lib\u002F`, `app\u002F`, `docs\u002F`, `config\u002F`, `tests\u002F` |\n| 2 | **Versions** | Package\u002Ftool\u002Fimage versions | Semver patterns near dependency\u002Fpackage\u002Fimage names |\n| 3 | **Counts\u002FStatistics** | Numeric claims about codebase | `\\d+ (modules|formats|endpoints|services|tables|parsers|files|workers)` |\n| 4 | **API endpoints** | HTTP method + path | `(GET|POST|PUT|DELETE|PATCH) \u002F[\\w\u002F{}:]+` |\n| 5 | **Config keys\u002Fenv vars** | Environment variables, config keys | `[A-Z][A-Z_]{2,}` in config context, `process.env.`, `os.environ` |\n| 6 | **CLI commands** | Shell commands | `npm run`, `python`, `docker`, `make` in backtick blocks |\n| 7 | **Function\u002Fclass names** | Code entity references | CamelCase\u002Fsnake_case in backticks or code context |\n| 8 | **Line number refs** | file:line patterns | `[\\w\u002F.]+:\\d+` patterns |\n| 9 | **Docker\u002Finfra claims** | Image tags, ports, service names | Image names with tags, port mappings in docker context |\n\nOutput per claim: `{doc_path, line, claim_type, claim_value, raw_context}`.\n\n### Phase 4: Verify Claims (Layer 2)\n\nFor each extracted claim, verify against codebase:\n\n| Claim Type | Verification Method | Finding Type |\n|------------|-------------------|--------------|\n| File paths | Glob or `ls` for existence | PATH_NOT_FOUND |\n| Versions | Grep package files (package.json, requirements.txt, docker-compose.yml), compare | VERSION_MISMATCH |\n| Counts | Glob\u002FGrep to count actual entities, compare with claimed number | COUNT_MISMATCH |\n| API endpoints | Grep route\u002Fcontroller definitions | ENDPOINT_NOT_FOUND |\n| Config keys | Grep in source for actual usage | CONFIG_NOT_FOUND |\n| CLI commands | Check package.json scripts, Makefile targets, binary existence | COMMAND_NOT_FOUND |\n| Function\u002Fclass | Grep in source for definition | ENTITY_NOT_FOUND |\n| Line numbers | Read file at line, check content matches claimed context | LINE_MISMATCH |\n| Docker\u002Finfra | Grep docker-compose.yml for image tags, ports | INFRA_MISMATCH |\n\n**False positive filtering (Layer 2 reasoning):**\n- Template placeholders (`{placeholder}`, `YOUR_*`, `\u003Cproject>`, `xxx`) -> skip\n- Example\u002Fhypothetical paths (preceded by \"e.g.\", \"for example\", \"such as\") -> skip\n- Future-tense claims (\"will add\", \"planned\", \"TODO\") -> skip or LOW\n- Conditional claims (\"if using X, configure Y\") -> verify only if X detected in tech_stack\n- External service paths (URLs, external repos) -> skip\n- Paths in SCOPE\u002Fcomment HTML blocks describing other projects -> skip\n- `.env.example` values -> skip (expected to differ from actual)\n\n### Phase 5: Cross-Document Consistency\n\nCompare extracted claims across documents to find contradictions:\n\n| Check | Method | Finding Type |\n|-------|--------|--------------|\n| Same path, different locations | Group file path claims, check if all point to same real path | CROSS_DOC_PATH_CONFLICT |\n| Same entity, different version | Group version claims by entity name, compare values | CROSS_DOC_VERSION_CONFLICT |\n| Same metric, different count | Group count claims by subject, compare values | CROSS_DOC_COUNT_CONFLICT |\n| Endpoint in spec but not in guide | Compare endpoint claims across api_spec.md vs guides\u002Frunbook | CROSS_DOC_ENDPOINT_GAP |\n\nAlgorithm:\n```\nclaim_index = {}  # key: normalized(claim_type + entity), value: [{doc, line, value}]\nFOR claim IN all_verified_claims WHERE claim.verified == true:\n  key = normalize(claim.claim_type, claim.entity_name)\n  claim_index[key].append({doc: claim.doc_path, line: claim.line, value: claim.claim_value})\n\nFOR key, entries IN claim_index:\n  unique_values = set(entry.value for entry in entries)\n  IF len(unique_values) > 1:\n    CREATE finding(type=CROSS_DOC_*_CONFLICT, severity=HIGH,\n      location=entries[0].doc + \":\" + entries[0].line,\n      issue=\"'\" + key + \"' stated as '\" + val1 + \"' in \" + doc1 + \" but '\" + val2 + \"' in \" + doc2)\n```\n\n### Phase 6: Score & Report\n\n**MANDATORY READ:** Load `references\u002Faudit_scoring.md`.\n\nCalculate score using penalty formula. Write report.\n\n## Audit Categories (for Checks table)\n\n| ID | Check | What It Covers |\n|----|-------|---------------|\n| `path_claims` | File\u002FDirectory Paths | All path references verified against filesystem |\n| `version_claims` | Version Numbers | Package, tool, image versions against manifests |\n| `count_claims` | Counts & Statistics | Numeric assertions against actual counts |\n| `endpoint_claims` | API Endpoints | Route definitions against controllers\u002Frouters |\n| `config_claims` | Config & Env Vars | Environment variables, config keys against source |\n| `command_claims` | CLI Commands | Scripts, commands against package.json\u002FMakefile |\n| `entity_claims` | Code Entity Names | Functions, classes against source definitions |\n| `line_ref_claims` | Line Number References | file:line against actual file content |\n| `cross_doc` | Cross-Document Consistency | Same facts across documents agree |\n\n## Severity Mapping\n\n| Issue Type | Severity | Rationale |\n|------------|----------|-----------|\n| PATH_NOT_FOUND (critical file: AGENTS.md, CLAUDE.md, runbook, api_spec) | CRITICAL | Setup\u002Fonboarding fails |\n| PATH_NOT_FOUND (other docs) | HIGH | Misleading reference |\n| VERSION_MISMATCH (major version) | HIGH | Fundamentally wrong |\n| VERSION_MISMATCH (minor\u002Fpatch) | MEDIUM | Cosmetic drift |\n| COUNT_MISMATCH | MEDIUM | Misleading metric |\n| ENDPOINT_NOT_FOUND | HIGH | API consumers affected |\n| CONFIG_NOT_FOUND | HIGH | Deployment breaks |\n| COMMAND_NOT_FOUND | HIGH | Setup\u002FCI breaks |\n| ENTITY_NOT_FOUND | MEDIUM | Confusion |\n| LINE_MISMATCH | LOW | Minor inaccuracy |\n| INFRA_MISMATCH | HIGH | Docker\u002Fdeployment affected |\n| CROSS_DOC_*_CONFLICT | HIGH | Trust erosion, contradictory docs |\n\n## Output Format\n\n**MANDATORY READ:** Load `references\u002Ftemplates\u002Faudit_worker_report_template.md`.\n\nWrite JSON summary per `references\u002Faudit_summary_contract.md`. In managed mode the caller passes both `runId` and `summaryArtifactPath`; in standalone mode the worker generates its own run-scoped artifact path per shared contract.\n\nWrite report to `{output_dir}\u002Fln-614--global.md` with `category: \"Fact Accuracy\"` and checks: path_claims, version_claims, count_claims, endpoint_claims, config_claims, command_claims, entity_claims, line_ref_claims, cross_doc.\n\nReturn summary per `references\u002Faudit_summary_contract.md`.\n\nWhen `summaryArtifactPath` is absent, write the standalone runtime summary under `.hex-skills\u002Fruntime-artifacts\u002Fruns\u002F{run_id}\u002Fevaluation-worker\u002F{worker}--{identifier}.json` and optionally echo the same summary in structured output.\n```\nReport written: .hex-skills\u002Fruntime-artifacts\u002Fruns\u002F{run_id}\u002Faudit-report\u002Fln-614--global.md\nScore: X.X\u002F10 | Issues: N (C:N H:N M:N L:N)\n```\n\n## Critical Rules\n\nApply the already-loaded `references\u002Faudit_worker_core_contract.md`.\n\n- **Do not auto-fix:** Report violations only; coordinator aggregates for user\n- **Code is truth:** When docs contradict code, document is wrong (unless code is a bug)\n- **Evidence required:** Every finding includes verification command used and result\n- **No false positives:** Better to miss an issue than report incorrectly. When uncertain, classify as LOW with note\n- **Location precision:** Always include `file:line` for programmatic navigation\n- **Broad scope:** Scan ALL .md files -- do not skip docs\u002Freference\u002F, tests\u002F, or task docs\n- **Targeted depth:** Spend the deepest verification effort on canonical and high-claim docs first\n- **Cross-doc matters:** Contradictions between documents erode trust more than single-doc errors\n- **Batch efficiently:** Extract all claims first, then verify in batches by type (all paths together, all versions together)\n- **Shared placeholder policy:** Respect allowlisted setup placeholders from `docs_quality_rules.json`; do not escalate them in task setup docs\n- **Use hex-graph only for semantic ambiguity:** For code entities and references, prefer graph queries over repeated grep only when direct manifest\u002Ffile checks leave symbol identity or reference resolution ambiguous\n\n## Definition of Done\n\nApply the already-loaded `references\u002Faudit_worker_core_contract.md`.\n\n- [ ] contextStore parsed successfully (including output_dir)\n- [ ] All `.md` files discovered (broad scope)\n- [ ] Claims extracted across 9 types\n- [ ] Each claim verified against codebase with evidence\n- [ ] Cross-document consistency checked\n- [ ] False positives filtered via Layer 2 reasoning\n- [ ] Score calculated using penalty algorithm\n- [ ] Report written to `{output_dir}\u002Fln-614--global.md` (atomic single Write call)\n- [ ] Summary written per contract\n\n## Reference Files\n\n- **Audit output schema:** `references\u002Faudit_output_schema.md`\n- **Detection methodology:** `references\u002Ftwo_layer_detection.md`\n- Claim extraction rules: [references\u002Fclaim_extraction_rules.md](references\u002Fclaim_extraction_rules.md)\n\n---\n**Version:** 1.0.0\n**Last Updated:** 2026-03-06\n",{"name":5,"license":15,"description":7,"allowed-tools":49},"Read, Grep, Glob, Bash, mcp__hex-line__outline, mcp__hex-line__read_file, mcp__hex-graph__index_project, mcp__hex-graph__find_symbols, mcp__hex-graph__find_references","main","fbfb242f793fdf040f3a1a6b100896c188c228c8","_AI-Automation\u002Fclaude-code-skills-levnikolaevich\u002Fplugins\u002Fcodebase-audit-suite\u002Fskills\u002Fln-614-docs-fact-checker",1,"https:\u002F\u002Fgithub.com\u002Fvitalikpestov\u002FSkills-Catalog","https:\u002F\u002Fgithub.com\u002Fvitalikpestov","Listing on crypto exchanges","2026-06-15 22:12:56",{"source":8,"skillName":5,"commands":59,"prompt":69,"zipAvailable":70},[60,63,66],{"tool":61,"command":62},"npx","npx skills add vitalikpestov\u002FSkills-Catalog --skill ln-614-docs-fact-checker",{"tool":64,"command":65},"bunx","bunx skills add vitalikpestov\u002FSkills-Catalog --skill ln-614-docs-fact-checker",{"tool":67,"command":68},"pnpm","pnpm dlx skills add vitalikpestov\u002FSkills-Catalog --skill ln-614-docs-fact-checker","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fvitalikpestov\u002FSkills-Catalog\u002Fblob\u002Fmain\u002F_AI-Automation\u002Fclaude-code-skills-levnikolaevich\u002Fplugins\u002Fcodebase-audit-suite\u002Fskills\u002Fln-614-docs-fact-checker\u002FSKILL.md",true,[72,78,82,86,90,94,98,102,106,110,114,118,122],{"path":73,"resourceType":74,"resourceTypeDesc":75,"sizeBytes":76,"sourceHtmlUrl":77},"references\u002Faudit_output_schema.md","REFERENCE","参考文档",4439,"https:\u002F\u002Fgithub.com\u002Fvitalikpestov\u002FSkills-Catalog\u002Fblob\u002Fmain\u002F_AI-Automation\u002Fclaude-code-skills-levnikolaevich\u002Fplugins\u002Fcodebase-audit-suite\u002Fskills\u002Fln-614-docs-fact-checker\u002Freferences\u002Faudit_output_schema.md",{"path":79,"resourceType":74,"resourceTypeDesc":75,"sizeBytes":80,"sourceHtmlUrl":81},"references\u002Faudit_scoring.md",1117,"https:\u002F\u002Fgithub.com\u002Fvitalikpestov\u002FSkills-Catalog\u002Fblob\u002Fmain\u002F_AI-Automation\u002Fclaude-code-skills-levnikolaevich\u002Fplugins\u002Fcodebase-audit-suite\u002Fskills\u002Fln-614-docs-fact-checker\u002Freferences\u002Faudit_scoring.md",{"path":83,"resourceType":74,"resourceTypeDesc":75,"sizeBytes":84,"sourceHtmlUrl":85},"references\u002Faudit_summary_contract.md",2206,"https:\u002F\u002Fgithub.com\u002Fvitalikpestov\u002FSkills-Catalog\u002Fblob\u002Fmain\u002F_AI-Automation\u002Fclaude-code-skills-levnikolaevich\u002Fplugins\u002Fcodebase-audit-suite\u002Fskills\u002Fln-614-docs-fact-checker\u002Freferences\u002Faudit_summary_contract.md",{"path":87,"resourceType":74,"resourceTypeDesc":75,"sizeBytes":88,"sourceHtmlUrl":89},"references\u002Faudit_worker_core_contract.md",1851,"https:\u002F\u002Fgithub.com\u002Fvitalikpestov\u002FSkills-Catalog\u002Fblob\u002Fmain\u002F_AI-Automation\u002Fclaude-code-skills-levnikolaevich\u002Fplugins\u002Fcodebase-audit-suite\u002Fskills\u002Fln-614-docs-fact-checker\u002Freferences\u002Faudit_worker_core_contract.md",{"path":91,"resourceType":74,"resourceTypeDesc":75,"sizeBytes":92,"sourceHtmlUrl":93},"references\u002Fclaim_extraction_rules.md",7831,"https:\u002F\u002Fgithub.com\u002Fvitalikpestov\u002FSkills-Catalog\u002Fblob\u002Fmain\u002F_AI-Automation\u002Fclaude-code-skills-levnikolaevich\u002Fplugins\u002Fcodebase-audit-suite\u002Fskills\u002Fln-614-docs-fact-checker\u002Freferences\u002Fclaim_extraction_rules.md",{"path":95,"resourceType":74,"resourceTypeDesc":75,"sizeBytes":96,"sourceHtmlUrl":97},"references\u002Fdocs_quality_contract.md",2236,"https:\u002F\u002Fgithub.com\u002Fvitalikpestov\u002FSkills-Catalog\u002Fblob\u002Fmain\u002F_AI-Automation\u002Fclaude-code-skills-levnikolaevich\u002Fplugins\u002Fcodebase-audit-suite\u002Fskills\u002Fln-614-docs-fact-checker\u002Freferences\u002Fdocs_quality_contract.md",{"path":99,"resourceType":74,"resourceTypeDesc":75,"sizeBytes":100,"sourceHtmlUrl":101},"references\u002Fdocs_quality_rules.json",8029,"https:\u002F\u002Fgithub.com\u002Fvitalikpestov\u002FSkills-Catalog\u002Fblob\u002Fmain\u002F_AI-Automation\u002Fclaude-code-skills-levnikolaevich\u002Fplugins\u002Fcodebase-audit-suite\u002Fskills\u002Fln-614-docs-fact-checker\u002Freferences\u002Fdocs_quality_rules.json",{"path":103,"resourceType":74,"resourceTypeDesc":75,"sizeBytes":104,"sourceHtmlUrl":105},"references\u002Fdocs_quality_rules.json.SOURCE.md",1283,"https:\u002F\u002Fgithub.com\u002Fvitalikpestov\u002FSkills-Catalog\u002Fblob\u002Fmain\u002F_AI-Automation\u002Fclaude-code-skills-levnikolaevich\u002Fplugins\u002Fcodebase-audit-suite\u002Fskills\u002Fln-614-docs-fact-checker\u002Freferences\u002Fdocs_quality_rules.json.SOURCE.md",{"path":107,"resourceType":74,"resourceTypeDesc":75,"sizeBytes":108,"sourceHtmlUrl":109},"references\u002Fmarkdown_read_protocol.md",1505,"https:\u002F\u002Fgithub.com\u002Fvitalikpestov\u002FSkills-Catalog\u002Fblob\u002Fmain\u002F_AI-Automation\u002Fclaude-code-skills-levnikolaevich\u002Fplugins\u002Fcodebase-audit-suite\u002Fskills\u002Fln-614-docs-fact-checker\u002Freferences\u002Fmarkdown_read_protocol.md",{"path":111,"resourceType":74,"resourceTypeDesc":75,"sizeBytes":112,"sourceHtmlUrl":113},"references\u002Fmcp_integration_patterns.md",1567,"https:\u002F\u002Fgithub.com\u002Fvitalikpestov\u002FSkills-Catalog\u002Fblob\u002Fmain\u002F_AI-Automation\u002Fclaude-code-skills-levnikolaevich\u002Fplugins\u002Fcodebase-audit-suite\u002Fskills\u002Fln-614-docs-fact-checker\u002Freferences\u002Fmcp_integration_patterns.md",{"path":115,"resourceType":74,"resourceTypeDesc":75,"sizeBytes":116,"sourceHtmlUrl":117},"references\u002Fmcp_tool_preferences.md",2338,"https:\u002F\u002Fgithub.com\u002Fvitalikpestov\u002FSkills-Catalog\u002Fblob\u002Fmain\u002F_AI-Automation\u002Fclaude-code-skills-levnikolaevich\u002Fplugins\u002Fcodebase-audit-suite\u002Fskills\u002Fln-614-docs-fact-checker\u002Freferences\u002Fmcp_tool_preferences.md",{"path":119,"resourceType":74,"resourceTypeDesc":75,"sizeBytes":120,"sourceHtmlUrl":121},"references\u002Ftemplates\u002Faudit_worker_report_template.md",1686,"https:\u002F\u002Fgithub.com\u002Fvitalikpestov\u002FSkills-Catalog\u002Fblob\u002Fmain\u002F_AI-Automation\u002Fclaude-code-skills-levnikolaevich\u002Fplugins\u002Fcodebase-audit-suite\u002Fskills\u002Fln-614-docs-fact-checker\u002Freferences\u002Ftemplates\u002Faudit_worker_report_template.md",{"path":123,"resourceType":74,"resourceTypeDesc":75,"sizeBytes":124,"sourceHtmlUrl":125},"references\u002Ftwo_layer_detection.md",1504,"https:\u002F\u002Fgithub.com\u002Fvitalikpestov\u002FSkills-Catalog\u002Fblob\u002Fmain\u002F_AI-Automation\u002Fclaude-code-skills-levnikolaevich\u002Fplugins\u002Fcodebase-audit-suite\u002Fskills\u002Fln-614-docs-fact-checker\u002Freferences\u002Ftwo_layer_detection.md",[127,166,190,206,229,262],{"skillNo":128,"name":129,"nameZh":6,"description":130,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":131,"categories":132,"keywords":145,"publishedAt":165},"01M71V1MC994P553631JZSWVYD","solana-dev","Use when user asks to \"build a Solana dapp\", \"write an Anchor program\", \"create a token\", \"debug Solana errors\", \"set up wallet connection\", \"test my Solana program\", \"deploy to devnet\", or \"explain Solana concepts\" (rent, accounts, PDAs, CPIs, etc.). End-to-end Solana development playbook covering wallet connection, Anchor\u002FPinocchio programs, Codama client generation, LiteSVM\u002FMollusk\u002FSurfpool testing, and security checklists. Integrates with the Solana MCP server for live documentation search. Prefers framework-kit (@solana\u002Fclient + @solana\u002Freact-hooks) for UI, wallet-standard-first connection (incl. ConnectorKit), @solana\u002Fkit for client\u002FRPC code, and @solana\u002Fweb3-compat for legacy boundaries.","https:\u002F\u002Fgithub.com\u002Fvitalikpestov\u002FSkills-Catalog\u002Fblob\u002Fmain\u002F_Web3\u002Fsolana-dev\u002Fskill\u002FSKILL.md",[133,136,139,140],{"categoryNo":134,"categoryName":135,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000008","测试与质量",{"categoryNo":137,"categoryName":138,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000009","前端开发",{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},{"categoryNo":141,"categoryName":142,"taxonomyType":143,"taxonomyTypeDesc":144},"01JBSEEDCAT000000000000030","开发工程师","PROFESSION","适用职业",[146,147,148,149,150,151,152,153,40,154,155,156,157,158,159,160,161,162,163,164],"dev","solana dev","solana","Wallet","search","testing","solana cli","kit","web3","react","create","server","write","playbook","live","security","ui","concepts","toolchain","2026-11-10 13:02:02",{"skillNo":167,"name":168,"nameZh":6,"description":169,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":170,"categories":171,"keywords":172,"publishedAt":165},"01M71TYQPHE2YGKTT7DG9QCW3K","generating-trading-signals","Generate trading signals using technical indicators (RSI, MACD, Bollinger Bands, etc.).\nCombines multiple indicators into composite signals with confidence scores.\nUse when analyzing assets for trading opportunities or checking technical indicators.\nTrigger with phrases like \"get trading signals\", \"check indicators\", \"analyze for entry\",\n\"scan for opportunities\", \"generate buy\u002Fsell signals\", or \"technical analysis\".","https:\u002F\u002Fgithub.com\u002Fvitalikpestov\u002FSkills-Catalog\u002Fblob\u002Fmain\u002F_Trading-Finance\u002Fgenerating-trading-signals\u002FSKILL.md",[],[173,174,175,176,177,178,179,180,181,182,183,184,30,39,38,185,186,187,188,189],"generating trading signals","signals","trading signals","trading","get","technical indicators","for","scan","rsi","trigger","python","technical","analysis","code","io","check","analyze",{"skillNo":191,"name":192,"nameZh":6,"description":193,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":194,"categories":195,"keywords":196,"publishedAt":165},"01M71TY4CR3GKGQ3M12X9WN95Y","prediction-monitor","Prediction Monitor - Auto-activating skill for ML Deployment.\nTriggers on: prediction monitor, prediction monitor\nPart of the ML Deployment skill category.","https:\u002F\u002Fgithub.com\u002Fvitalikpestov\u002FSkills-Catalog\u002Fblob\u002Fmain\u002F_Trading-Finance\u002FAI Predictions\u002Fprediction-monitor\u002FSKILL.md",[],[197,198,199,179,200,34,158,201,202,203,204,205,38],"prediction","monitor","prediction monitor","deployment","edit","triggers","grep","auto","ml",{"skillNo":207,"name":208,"nameZh":6,"description":209,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":210,"categories":211,"keywords":212,"publishedAt":165},"01M71TXD9MYXZC39HCPP909HTZ","strategy-advisor","High-level strategic thinking and business decision guidance for planning and direction-setting.\nUse when: making strategic decisions, evaluating business options, setting direction, analyzing\ntrade-offs, or when user mentions strategy, business planning, competitive analysis, or long-term planning.","https:\u002F\u002Fgithub.com\u002Fvitalikpestov\u002FSkills-Catalog\u002Fblob\u002Fmain\u002F_Product-Apps\u002Fstrategy-advisor\u002FSKILL.md",[],[213,214,215,216,217,218,219,220,221,179,222,223,224,30,225,226,39,227,185,228],"strategy advisor","strategy","advisor","competitive","setting","thinking","planning","direction","trade-offs","long","decision","strategic","business","apps","decisions","trade",{"skillNo":230,"name":231,"nameZh":6,"description":232,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":233,"sourceHtmlUrl":234,"categories":235,"keywords":242,"publishedAt":165},"01M71TWHBT2R1P1FNWTW67ZREP","app-paywall-pilot","Design, audit, debug, and implement App Store-compliant mobile paywalls, subscription flows, pricing screens, trials, offers, feature gates, and subscription lifecycle UX. Use when the user asks to audit my paywall, fix App Store 3.1.2 rejection, improve trial-to-paid, choose plans\u002Fprices\u002Ftrials, review RevenueCat\u002FAdapty\u002FApphud\u002FSuperwall setup, calculate LTV\u002FROAS, or build paywall implementation.","https:\u002F\u002Fgithub.com\u002Fvitalikpestov\u002FSkills-Catalog\u002Fblob\u002Fmain\u002F_Product-Apps\u002Ffrom-dosesync\u002Fapp-paywall-pilot\u002FLICENSE","https:\u002F\u002Fgithub.com\u002Fvitalikpestov\u002FSkills-Catalog\u002Fblob\u002Fmain\u002F_Product-Apps\u002Ffrom-dosesync\u002Fapp-paywall-pilot\u002FSKILL.md",[236,239],{"categoryNo":237,"categoryName":238,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000015","视觉设计",{"categoryNo":240,"categoryName":241,"taxonomyType":143,"taxonomyTypeDesc":144},"01JBSEEDCAT000000000000032","设计师",[243,244,245,246,247,248,249,250,251,252,253,254,39,255,256,257,258,259,260,261],"app","paywall","app paywall pilot","paid","paywalls","prices","choose","flows","fix","improve","design","app store","review","audit","ux","subscription","mobile","my","calculate",{"skillNo":263,"name":264,"nameZh":6,"description":265,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":266,"licenseFileUrl":267,"sourceHtmlUrl":268,"categories":269,"keywords":272,"publishedAt":165},"01M71TWET8GFKEB7ZHJPMQX29V","figma","Use the Figma MCP server to fetch design context, screenshots, variables, and assets from Figma, and to translate Figma nodes into production code. Trigger when a task involves Figma URLs, node IDs, design-to-code implementation, or Figma MCP setup and troubleshooting.","Apache-2.0","https:\u002F\u002Fgithub.com\u002Fvitalikpestov\u002FSkills-Catalog\u002Fblob\u002Fmain\u002F_Product-Apps\u002Ffigma\u002FLICENSE.txt","https:\u002F\u002Fgithub.com\u002Fvitalikpestov\u002FSkills-Catalog\u002Fblob\u002Fmain\u002F_Product-Apps\u002Ffigma\u002FSKILL.md",[270,271],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},{"categoryNo":240,"categoryName":241,"taxonomyType":143,"taxonomyTypeDesc":144},[264,273,274,275,276,182,253,40,30,39,277,278,186,279,157,280,281,282,283,284],"fetch","ids","mcp setup","translate","mcp server","Variables","task","Nodes","figma mcp","code implementation","node","assets"]