@nebulacomponents/citable 1.13.0 → 1.14.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +269 -0
- package/README.md +43 -5
- package/dist/universal/.agents/skills/citable/SKILL.md +13 -4
- package/dist/universal/.agents/skills/citable/VERSION +1 -1
- package/dist/universal/.agents/skills/citable/agents/citable-auditor.md +64 -0
- package/dist/universal/.agents/skills/citable/agents/citable-semantic-reviewer.md +66 -0
- package/dist/universal/.agents/skills/citable/commands/action-findings.md +9 -1
- package/dist/universal/.agents/skills/citable/commands/observe-and-act.md +50 -3
- package/dist/universal/.agents/skills/citable/commands/plan-audit.md +35 -0
- package/dist/universal/.agents/skills/citable/manifest.json +26 -14
- package/dist/universal/.agents/skills/citable/schemas/action-plan.schema.json +13 -0
- package/dist/universal/.agents/skills/citable/schemas/browser-evidence-plan.schema.json +14 -0
- package/dist/universal/.agents/skills/citable/schemas/canonical-index-import.schema.json +30 -0
- package/dist/universal/.agents/skills/citable/schemas/common.defs.json +12 -1
- package/dist/universal/.agents/skills/citable/schemas/corroboration-import.schema.json +48 -0
- package/dist/universal/.agents/skills/citable/schemas/entity-graph.schema.json +75 -0
- package/dist/universal/.agents/skills/citable/schemas/entity.schema.json +13 -0
- package/dist/universal/.agents/skills/citable/schemas/observation.schema.json +1 -1
- package/dist/universal/.agents/skills/citable/schemas/page.schema.json +3 -0
- package/dist/universal/.agents/skills/citable/schemas/regional-network-import.schema.json +55 -0
- package/dist/universal/.agents/skills/citable/schemas/source-identity-chain.schema.json +83 -0
- package/dist/universal/.agents/skills/citable/scripts/README.md +3 -1
- package/dist/universal/.claude/agents/citable/citable-auditor.md +64 -0
- package/dist/universal/.claude/agents/citable/citable-semantic-reviewer.md +66 -0
- package/dist/universal/.claude/agents/citable/manifest.json +12 -0
- package/dist/universal/.claude/skills/citable/SKILL.md +13 -4
- package/dist/universal/.claude/skills/citable/VERSION +1 -1
- package/dist/universal/.claude/skills/citable/agents/citable-auditor.md +64 -0
- package/dist/universal/.claude/skills/citable/agents/citable-semantic-reviewer.md +66 -0
- package/dist/universal/.claude/skills/citable/commands/action-findings.md +9 -1
- package/dist/universal/.claude/skills/citable/commands/observe-and-act.md +50 -3
- package/dist/universal/.claude/skills/citable/commands/plan-audit.md +35 -0
- package/dist/universal/.claude/skills/citable/manifest.json +31 -14
- package/dist/universal/.claude/skills/citable/schemas/action-plan.schema.json +13 -0
- package/dist/universal/.claude/skills/citable/schemas/browser-evidence-plan.schema.json +14 -0
- package/dist/universal/.claude/skills/citable/schemas/canonical-index-import.schema.json +30 -0
- package/dist/universal/.claude/skills/citable/schemas/common.defs.json +12 -1
- package/dist/universal/.claude/skills/citable/schemas/corroboration-import.schema.json +48 -0
- package/dist/universal/.claude/skills/citable/schemas/entity-graph.schema.json +75 -0
- package/dist/universal/.claude/skills/citable/schemas/entity.schema.json +13 -0
- package/dist/universal/.claude/skills/citable/schemas/observation.schema.json +1 -1
- package/dist/universal/.claude/skills/citable/schemas/page.schema.json +3 -0
- package/dist/universal/.claude/skills/citable/schemas/regional-network-import.schema.json +55 -0
- package/dist/universal/.claude/skills/citable/schemas/source-identity-chain.schema.json +83 -0
- package/dist/universal/.claude/skills/citable/scripts/README.md +3 -1
- package/dist/universal/.cursor/skills/citable/SKILL.md +13 -4
- package/dist/universal/.cursor/skills/citable/VERSION +1 -1
- package/dist/universal/.cursor/skills/citable/agents/citable-auditor.md +64 -0
- package/dist/universal/.cursor/skills/citable/agents/citable-semantic-reviewer.md +66 -0
- package/dist/universal/.cursor/skills/citable/commands/action-findings.md +9 -1
- package/dist/universal/.cursor/skills/citable/commands/observe-and-act.md +50 -3
- package/dist/universal/.cursor/skills/citable/commands/plan-audit.md +35 -0
- package/dist/universal/.cursor/skills/citable/manifest.json +26 -14
- package/dist/universal/.cursor/skills/citable/schemas/action-plan.schema.json +13 -0
- package/dist/universal/.cursor/skills/citable/schemas/browser-evidence-plan.schema.json +14 -0
- package/dist/universal/.cursor/skills/citable/schemas/canonical-index-import.schema.json +30 -0
- package/dist/universal/.cursor/skills/citable/schemas/common.defs.json +12 -1
- package/dist/universal/.cursor/skills/citable/schemas/corroboration-import.schema.json +48 -0
- package/dist/universal/.cursor/skills/citable/schemas/entity-graph.schema.json +75 -0
- package/dist/universal/.cursor/skills/citable/schemas/entity.schema.json +13 -0
- package/dist/universal/.cursor/skills/citable/schemas/observation.schema.json +1 -1
- package/dist/universal/.cursor/skills/citable/schemas/page.schema.json +3 -0
- package/dist/universal/.cursor/skills/citable/schemas/regional-network-import.schema.json +55 -0
- package/dist/universal/.cursor/skills/citable/schemas/source-identity-chain.schema.json +83 -0
- package/dist/universal/.cursor/skills/citable/scripts/README.md +3 -1
- package/dist/universal/.gemini/skills/citable/SKILL.md +13 -4
- package/dist/universal/.gemini/skills/citable/VERSION +1 -1
- package/dist/universal/.gemini/skills/citable/agents/citable-auditor.md +64 -0
- package/dist/universal/.gemini/skills/citable/agents/citable-semantic-reviewer.md +66 -0
- package/dist/universal/.gemini/skills/citable/commands/action-findings.md +9 -1
- package/dist/universal/.gemini/skills/citable/commands/observe-and-act.md +50 -3
- package/dist/universal/.gemini/skills/citable/commands/plan-audit.md +35 -0
- package/dist/universal/.gemini/skills/citable/manifest.json +26 -14
- package/dist/universal/.gemini/skills/citable/schemas/action-plan.schema.json +13 -0
- package/dist/universal/.gemini/skills/citable/schemas/browser-evidence-plan.schema.json +14 -0
- package/dist/universal/.gemini/skills/citable/schemas/canonical-index-import.schema.json +30 -0
- package/dist/universal/.gemini/skills/citable/schemas/common.defs.json +12 -1
- package/dist/universal/.gemini/skills/citable/schemas/corroboration-import.schema.json +48 -0
- package/dist/universal/.gemini/skills/citable/schemas/entity-graph.schema.json +75 -0
- package/dist/universal/.gemini/skills/citable/schemas/entity.schema.json +13 -0
- package/dist/universal/.gemini/skills/citable/schemas/observation.schema.json +1 -1
- package/dist/universal/.gemini/skills/citable/schemas/page.schema.json +3 -0
- package/dist/universal/.gemini/skills/citable/schemas/regional-network-import.schema.json +55 -0
- package/dist/universal/.gemini/skills/citable/schemas/source-identity-chain.schema.json +83 -0
- package/dist/universal/.gemini/skills/citable/scripts/README.md +3 -1
- package/dist/universal/.github/skills/citable/SKILL.md +13 -4
- package/dist/universal/.github/skills/citable/VERSION +1 -1
- package/dist/universal/.github/skills/citable/agents/citable-auditor.md +64 -0
- package/dist/universal/.github/skills/citable/agents/citable-semantic-reviewer.md +66 -0
- package/dist/universal/.github/skills/citable/commands/action-findings.md +9 -1
- package/dist/universal/.github/skills/citable/commands/observe-and-act.md +50 -3
- package/dist/universal/.github/skills/citable/commands/plan-audit.md +35 -0
- package/dist/universal/.github/skills/citable/manifest.json +26 -14
- package/dist/universal/.github/skills/citable/schemas/action-plan.schema.json +13 -0
- package/dist/universal/.github/skills/citable/schemas/browser-evidence-plan.schema.json +14 -0
- package/dist/universal/.github/skills/citable/schemas/canonical-index-import.schema.json +30 -0
- package/dist/universal/.github/skills/citable/schemas/common.defs.json +12 -1
- package/dist/universal/.github/skills/citable/schemas/corroboration-import.schema.json +48 -0
- package/dist/universal/.github/skills/citable/schemas/entity-graph.schema.json +75 -0
- package/dist/universal/.github/skills/citable/schemas/entity.schema.json +13 -0
- package/dist/universal/.github/skills/citable/schemas/observation.schema.json +1 -1
- package/dist/universal/.github/skills/citable/schemas/page.schema.json +3 -0
- package/dist/universal/.github/skills/citable/schemas/regional-network-import.schema.json +55 -0
- package/dist/universal/.github/skills/citable/schemas/source-identity-chain.schema.json +83 -0
- package/dist/universal/.github/skills/citable/scripts/README.md +3 -1
- package/dist/universal/.kiro/skills/citable/SKILL.md +13 -4
- package/dist/universal/.kiro/skills/citable/VERSION +1 -1
- package/dist/universal/.kiro/skills/citable/agents/citable-auditor.md +64 -0
- package/dist/universal/.kiro/skills/citable/agents/citable-semantic-reviewer.md +66 -0
- package/dist/universal/.kiro/skills/citable/commands/action-findings.md +9 -1
- package/dist/universal/.kiro/skills/citable/commands/observe-and-act.md +50 -3
- package/dist/universal/.kiro/skills/citable/commands/plan-audit.md +35 -0
- package/dist/universal/.kiro/skills/citable/manifest.json +26 -14
- package/dist/universal/.kiro/skills/citable/schemas/action-plan.schema.json +13 -0
- package/dist/universal/.kiro/skills/citable/schemas/browser-evidence-plan.schema.json +14 -0
- package/dist/universal/.kiro/skills/citable/schemas/canonical-index-import.schema.json +30 -0
- package/dist/universal/.kiro/skills/citable/schemas/common.defs.json +12 -1
- package/dist/universal/.kiro/skills/citable/schemas/corroboration-import.schema.json +48 -0
- package/dist/universal/.kiro/skills/citable/schemas/entity-graph.schema.json +75 -0
- package/dist/universal/.kiro/skills/citable/schemas/entity.schema.json +13 -0
- package/dist/universal/.kiro/skills/citable/schemas/observation.schema.json +1 -1
- package/dist/universal/.kiro/skills/citable/schemas/page.schema.json +3 -0
- package/dist/universal/.kiro/skills/citable/schemas/regional-network-import.schema.json +55 -0
- package/dist/universal/.kiro/skills/citable/schemas/source-identity-chain.schema.json +83 -0
- package/dist/universal/.kiro/skills/citable/scripts/README.md +3 -1
- package/dist/universal/.opencode/skills/citable/SKILL.md +13 -4
- package/dist/universal/.opencode/skills/citable/VERSION +1 -1
- package/dist/universal/.opencode/skills/citable/agents/citable-auditor.md +64 -0
- package/dist/universal/.opencode/skills/citable/agents/citable-semantic-reviewer.md +66 -0
- package/dist/universal/.opencode/skills/citable/commands/action-findings.md +9 -1
- package/dist/universal/.opencode/skills/citable/commands/observe-and-act.md +50 -3
- package/dist/universal/.opencode/skills/citable/commands/plan-audit.md +35 -0
- package/dist/universal/.opencode/skills/citable/manifest.json +26 -14
- package/dist/universal/.opencode/skills/citable/schemas/action-plan.schema.json +13 -0
- package/dist/universal/.opencode/skills/citable/schemas/browser-evidence-plan.schema.json +14 -0
- package/dist/universal/.opencode/skills/citable/schemas/canonical-index-import.schema.json +30 -0
- package/dist/universal/.opencode/skills/citable/schemas/common.defs.json +12 -1
- package/dist/universal/.opencode/skills/citable/schemas/corroboration-import.schema.json +48 -0
- package/dist/universal/.opencode/skills/citable/schemas/entity-graph.schema.json +75 -0
- package/dist/universal/.opencode/skills/citable/schemas/entity.schema.json +13 -0
- package/dist/universal/.opencode/skills/citable/schemas/observation.schema.json +1 -1
- package/dist/universal/.opencode/skills/citable/schemas/page.schema.json +3 -0
- package/dist/universal/.opencode/skills/citable/schemas/regional-network-import.schema.json +55 -0
- package/dist/universal/.opencode/skills/citable/schemas/source-identity-chain.schema.json +83 -0
- package/dist/universal/.opencode/skills/citable/scripts/README.md +3 -1
- package/dist/universal/.pi/agent/skills/citable/SKILL.md +13 -4
- package/dist/universal/.pi/agent/skills/citable/VERSION +1 -1
- package/dist/universal/.pi/agent/skills/citable/agents/citable-auditor.md +64 -0
- package/dist/universal/.pi/agent/skills/citable/agents/citable-semantic-reviewer.md +66 -0
- package/dist/universal/.pi/agent/skills/citable/commands/action-findings.md +9 -1
- package/dist/universal/.pi/agent/skills/citable/commands/observe-and-act.md +50 -3
- package/dist/universal/.pi/agent/skills/citable/commands/plan-audit.md +35 -0
- package/dist/universal/.pi/agent/skills/citable/manifest.json +26 -14
- package/dist/universal/.pi/agent/skills/citable/schemas/action-plan.schema.json +13 -0
- package/dist/universal/.pi/agent/skills/citable/schemas/browser-evidence-plan.schema.json +14 -0
- package/dist/universal/.pi/agent/skills/citable/schemas/canonical-index-import.schema.json +30 -0
- package/dist/universal/.pi/agent/skills/citable/schemas/common.defs.json +12 -1
- package/dist/universal/.pi/agent/skills/citable/schemas/corroboration-import.schema.json +48 -0
- package/dist/universal/.pi/agent/skills/citable/schemas/entity-graph.schema.json +75 -0
- package/dist/universal/.pi/agent/skills/citable/schemas/entity.schema.json +13 -0
- package/dist/universal/.pi/agent/skills/citable/schemas/observation.schema.json +1 -1
- package/dist/universal/.pi/agent/skills/citable/schemas/page.schema.json +3 -0
- package/dist/universal/.pi/agent/skills/citable/schemas/regional-network-import.schema.json +55 -0
- package/dist/universal/.pi/agent/skills/citable/schemas/source-identity-chain.schema.json +83 -0
- package/dist/universal/.pi/agent/skills/citable/scripts/README.md +3 -1
- package/dist/universal/.qoder/skills/citable/SKILL.md +13 -4
- package/dist/universal/.qoder/skills/citable/VERSION +1 -1
- package/dist/universal/.qoder/skills/citable/agents/citable-auditor.md +64 -0
- package/dist/universal/.qoder/skills/citable/agents/citable-semantic-reviewer.md +66 -0
- package/dist/universal/.qoder/skills/citable/commands/action-findings.md +9 -1
- package/dist/universal/.qoder/skills/citable/commands/observe-and-act.md +50 -3
- package/dist/universal/.qoder/skills/citable/commands/plan-audit.md +35 -0
- package/dist/universal/.qoder/skills/citable/manifest.json +26 -14
- package/dist/universal/.qoder/skills/citable/schemas/action-plan.schema.json +13 -0
- package/dist/universal/.qoder/skills/citable/schemas/browser-evidence-plan.schema.json +14 -0
- package/dist/universal/.qoder/skills/citable/schemas/canonical-index-import.schema.json +30 -0
- package/dist/universal/.qoder/skills/citable/schemas/common.defs.json +12 -1
- package/dist/universal/.qoder/skills/citable/schemas/corroboration-import.schema.json +48 -0
- package/dist/universal/.qoder/skills/citable/schemas/entity-graph.schema.json +75 -0
- package/dist/universal/.qoder/skills/citable/schemas/entity.schema.json +13 -0
- package/dist/universal/.qoder/skills/citable/schemas/observation.schema.json +1 -1
- package/dist/universal/.qoder/skills/citable/schemas/page.schema.json +3 -0
- package/dist/universal/.qoder/skills/citable/schemas/regional-network-import.schema.json +55 -0
- package/dist/universal/.qoder/skills/citable/schemas/source-identity-chain.schema.json +83 -0
- package/dist/universal/.qoder/skills/citable/scripts/README.md +3 -1
- package/dist/universal/.rovodev/skills/citable/SKILL.md +13 -4
- package/dist/universal/.rovodev/skills/citable/VERSION +1 -1
- package/dist/universal/.rovodev/skills/citable/agents/citable-auditor.md +64 -0
- package/dist/universal/.rovodev/skills/citable/agents/citable-semantic-reviewer.md +66 -0
- package/dist/universal/.rovodev/skills/citable/commands/action-findings.md +9 -1
- package/dist/universal/.rovodev/skills/citable/commands/observe-and-act.md +50 -3
- package/dist/universal/.rovodev/skills/citable/commands/plan-audit.md +35 -0
- package/dist/universal/.rovodev/skills/citable/manifest.json +26 -14
- package/dist/universal/.rovodev/skills/citable/schemas/action-plan.schema.json +13 -0
- package/dist/universal/.rovodev/skills/citable/schemas/browser-evidence-plan.schema.json +14 -0
- package/dist/universal/.rovodev/skills/citable/schemas/canonical-index-import.schema.json +30 -0
- package/dist/universal/.rovodev/skills/citable/schemas/common.defs.json +12 -1
- package/dist/universal/.rovodev/skills/citable/schemas/corroboration-import.schema.json +48 -0
- package/dist/universal/.rovodev/skills/citable/schemas/entity-graph.schema.json +75 -0
- package/dist/universal/.rovodev/skills/citable/schemas/entity.schema.json +13 -0
- package/dist/universal/.rovodev/skills/citable/schemas/observation.schema.json +1 -1
- package/dist/universal/.rovodev/skills/citable/schemas/page.schema.json +3 -0
- package/dist/universal/.rovodev/skills/citable/schemas/regional-network-import.schema.json +55 -0
- package/dist/universal/.rovodev/skills/citable/schemas/source-identity-chain.schema.json +83 -0
- package/dist/universal/.rovodev/skills/citable/scripts/README.md +3 -1
- package/dist/universal/.trae/skills/citable/SKILL.md +13 -4
- package/dist/universal/.trae/skills/citable/VERSION +1 -1
- package/dist/universal/.trae/skills/citable/agents/citable-auditor.md +64 -0
- package/dist/universal/.trae/skills/citable/agents/citable-semantic-reviewer.md +66 -0
- package/dist/universal/.trae/skills/citable/commands/action-findings.md +9 -1
- package/dist/universal/.trae/skills/citable/commands/observe-and-act.md +50 -3
- package/dist/universal/.trae/skills/citable/commands/plan-audit.md +35 -0
- package/dist/universal/.trae/skills/citable/manifest.json +26 -14
- package/dist/universal/.trae/skills/citable/schemas/action-plan.schema.json +13 -0
- package/dist/universal/.trae/skills/citable/schemas/browser-evidence-plan.schema.json +14 -0
- package/dist/universal/.trae/skills/citable/schemas/canonical-index-import.schema.json +30 -0
- package/dist/universal/.trae/skills/citable/schemas/common.defs.json +12 -1
- package/dist/universal/.trae/skills/citable/schemas/corroboration-import.schema.json +48 -0
- package/dist/universal/.trae/skills/citable/schemas/entity-graph.schema.json +75 -0
- package/dist/universal/.trae/skills/citable/schemas/entity.schema.json +13 -0
- package/dist/universal/.trae/skills/citable/schemas/observation.schema.json +1 -1
- package/dist/universal/.trae/skills/citable/schemas/page.schema.json +3 -0
- package/dist/universal/.trae/skills/citable/schemas/regional-network-import.schema.json +55 -0
- package/dist/universal/.trae/skills/citable/schemas/source-identity-chain.schema.json +83 -0
- package/dist/universal/.trae/skills/citable/scripts/README.md +3 -1
- package/dist/universal/.trae-cn/skills/citable/SKILL.md +13 -4
- package/dist/universal/.trae-cn/skills/citable/VERSION +1 -1
- package/dist/universal/.trae-cn/skills/citable/agents/citable-auditor.md +64 -0
- package/dist/universal/.trae-cn/skills/citable/agents/citable-semantic-reviewer.md +66 -0
- package/dist/universal/.trae-cn/skills/citable/commands/action-findings.md +9 -1
- package/dist/universal/.trae-cn/skills/citable/commands/observe-and-act.md +50 -3
- package/dist/universal/.trae-cn/skills/citable/commands/plan-audit.md +35 -0
- package/dist/universal/.trae-cn/skills/citable/manifest.json +26 -14
- package/dist/universal/.trae-cn/skills/citable/schemas/action-plan.schema.json +13 -0
- package/dist/universal/.trae-cn/skills/citable/schemas/browser-evidence-plan.schema.json +14 -0
- package/dist/universal/.trae-cn/skills/citable/schemas/canonical-index-import.schema.json +30 -0
- package/dist/universal/.trae-cn/skills/citable/schemas/common.defs.json +12 -1
- package/dist/universal/.trae-cn/skills/citable/schemas/corroboration-import.schema.json +48 -0
- package/dist/universal/.trae-cn/skills/citable/schemas/entity-graph.schema.json +75 -0
- package/dist/universal/.trae-cn/skills/citable/schemas/entity.schema.json +13 -0
- package/dist/universal/.trae-cn/skills/citable/schemas/observation.schema.json +1 -1
- package/dist/universal/.trae-cn/skills/citable/schemas/page.schema.json +3 -0
- package/dist/universal/.trae-cn/skills/citable/schemas/regional-network-import.schema.json +55 -0
- package/dist/universal/.trae-cn/skills/citable/schemas/source-identity-chain.schema.json +83 -0
- package/dist/universal/.trae-cn/skills/citable/scripts/README.md +3 -1
- package/dist/universal/manifest.json +270 -171
- package/package.json +1 -1
- package/release/surfaces.json +1 -1
- package/schemas/action-plan.schema.json +13 -0
- package/schemas/browser-evidence-plan.schema.json +14 -0
- package/schemas/canonical-index-import.schema.json +30 -0
- package/schemas/common.defs.json +12 -1
- package/schemas/corroboration-import.schema.json +48 -0
- package/schemas/entity-graph.schema.json +75 -0
- package/schemas/entity.schema.json +13 -0
- package/schemas/observation.schema.json +1 -1
- package/schemas/page.schema.json +3 -0
- package/schemas/regional-network-import.schema.json +55 -0
- package/schemas/source-identity-chain.schema.json +83 -0
- package/scripts/build-dist.js +36 -3
- package/skill/SKILL.md +13 -4
- package/skill/agents/citable-auditor.md +64 -0
- package/skill/agents/citable-semantic-reviewer.md +66 -0
- package/skill/commands/action-findings.md +9 -1
- package/skill/commands/observe-and-act.md +50 -3
- package/skill/commands/plan-audit.md +35 -0
- package/src/cli/index.js +38 -5
- package/src/commands/actionPlan.js +12 -1
- package/src/commands/audit.js +4 -0
- package/src/commands/demo.js +36 -0
- package/src/commands/fixtures/demo/.citable/claims.yaml +27 -0
- package/src/commands/fixtures/demo/.citable/competitors.yaml +3 -0
- package/src/commands/fixtures/demo/.citable/config.yaml +18 -0
- package/src/commands/fixtures/demo/.citable/crawlers.yaml +30 -0
- package/src/commands/fixtures/demo/.citable/entities.yaml +28 -0
- package/src/commands/fixtures/demo/.citable/evidence.yaml +19 -0
- package/src/commands/fixtures/demo/.citable/experiments.yaml +3 -0
- package/src/commands/fixtures/demo/.citable/pages.yaml +54 -0
- package/src/commands/fixtures/demo/.citable/prompts.yaml +11 -0
- package/src/commands/fixtures/demo/.citable/queries.yaml +10 -0
- package/src/commands/fixtures/demo/site/index.html +12 -0
- package/src/commands/fixtures/demo/site/learn/execution-governance/index.html +14 -0
- package/src/commands/fixtures/demo/site/pricing/index.html +10 -0
- package/src/commands/fixtures/demo/site/products/gatekeeper/index.html +15 -0
- package/src/commands/fixtures/demo/site/robots.txt +7 -0
- package/src/commands/fixtures/demo/site/sitemap.xml +7 -0
- package/src/commands/init.js +5 -2
- package/src/commands/observe.js +313 -15
- package/src/commands/planAudit.js +151 -0
- package/src/commands/schemaCmd.js +5 -1
- package/src/commands/substantiate.js +22 -10
- package/src/crawler/fetch.js +34 -6
- package/src/extractor/page.js +17 -0
- package/src/installer/index.js +282 -28
- package/src/installer/providers.js +11 -0
- package/src/observations/browserJourney.js +15 -7
- package/src/observations/claimDiff.js +83 -0
- package/src/observations/common.js +15 -0
- package/src/observations/entityGraph.js +89 -0
- package/src/observations/renderParity.js +49 -0
- package/src/observations/sourceIdentity.js +62 -0
- package/src/registries/seed.js +95 -0
- package/src/registries/seeds/saas-pricing/claims.yaml +18 -0
- package/src/registries/seeds/saas-pricing/entities.yaml +20 -0
- package/src/registries/seeds/saas-pricing/seed.json +6 -0
- package/src/shared/checklist.js +19 -0
package/CHANGELOG.md
CHANGED
|
@@ -1,7 +1,276 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## Fail-Closed Hall of Fame
|
|
4
|
+
|
|
5
|
+
Permanent, append-only record of confirmed breaches of Citable's fail-closed
|
|
6
|
+
guarantee, found and fixed under [`BOUNTY.md`](BOUNTY.md), whose "What
|
|
7
|
+
Qualifies" section is the authoritative scope (e.g. a claim reaching
|
|
8
|
+
`verified` without sufficient or unexpired evidence or required human
|
|
9
|
+
semantic review, or a detector/rubric silently passing a case that should
|
|
10
|
+
have been `blocked` or `unverified`). A reproducing fixture now guards
|
|
11
|
+
against each entry's regression. Entries are never edited or removed once
|
|
12
|
+
merged.
|
|
13
|
+
|
|
14
|
+
_No entries yet. See [`BOUNTY.md`](BOUNTY.md) to submit the first one._
|
|
15
|
+
|
|
3
16
|
## Unreleased
|
|
4
17
|
|
|
18
|
+
## 1.14.0 — 2026-07-26
|
|
19
|
+
|
|
20
|
+
### Added — Evidence-Phase Agent Profiles
|
|
21
|
+
|
|
22
|
+
- Added canonical `citable-auditor` and `citable-semantic-reviewer` profiles.
|
|
23
|
+
The auditor may run guarded Citable collection commands but cannot edit the
|
|
24
|
+
target; the reviewer is read-only and cannot collect evidence, approve
|
|
25
|
+
publication, or upgrade claims.
|
|
26
|
+
- Claude Code installs generate and manage the profiles under its recursively
|
|
27
|
+
discovered agent directory with a separate hash manifest. Dry-run, check,
|
|
28
|
+
collision refusal, idempotent update, and uninstall preserve the profile
|
|
29
|
+
boundary independently from the skill.
|
|
30
|
+
- Other agent hosts continue to receive the canonical skill but report native
|
|
31
|
+
profiles as unsupported until their discovery and permission contracts are
|
|
32
|
+
verified.
|
|
33
|
+
|
|
34
|
+
### Documentation — Task Guides and MCP Transport Roadmap
|
|
35
|
+
|
|
36
|
+
- Added task-oriented command, integration, troubleshooting, and migration
|
|
37
|
+
guides with a documentation index.
|
|
38
|
+
- Documented MCP as a future evidence transport rather than an authority,
|
|
39
|
+
including staged delivery, provenance requirements, security gates, and
|
|
40
|
+
explicit non-goals. Citable does not currently implement an MCP client or
|
|
41
|
+
connector.
|
|
42
|
+
|
|
43
|
+
### Added — Question-to-Passage Review Context
|
|
44
|
+
|
|
45
|
+
- Passage observations now use a versioned record and join each page's declared
|
|
46
|
+
prompt IDs to canonical questions and expected answer components.
|
|
47
|
+
- Registry linkage creates review context only. Every candidate remains
|
|
48
|
+
`review_required`; Citable does not infer question-to-passage suitability or
|
|
49
|
+
semantic completeness.
|
|
50
|
+
|
|
51
|
+
### Added — Regional Network Imports
|
|
52
|
+
|
|
53
|
+
- `observe network --input <regional-network-import.json>` validates and seals
|
|
54
|
+
timestamped regional observations covering network label, request identity,
|
|
55
|
+
DNS answers, TLS authorization and certificate fingerprint, HTTP status,
|
|
56
|
+
latency, and cache state.
|
|
57
|
+
- Authority, authenticity, and representativeness remain explicit. Citable does
|
|
58
|
+
not operate a managed multi-region runner, infer global coverage, or treat
|
|
59
|
+
imported probes as crawler-identity evidence.
|
|
60
|
+
|
|
61
|
+
### Added — Render Semantic Review Policies
|
|
62
|
+
|
|
63
|
+
- Browser evidence plans may declare a semantic-impact policy with a review
|
|
64
|
+
owner and thresholds for main-text retention, headings, links, and structured
|
|
65
|
+
data. Each successful journey records deterministic initial/rendered hashes,
|
|
66
|
+
additions, removals, and policy violations.
|
|
67
|
+
- Policy evaluation always remains `review_required`. A passing deterministic
|
|
68
|
+
comparison does not establish semantic, retrieval, citation, ranking, or
|
|
69
|
+
business equivalence.
|
|
70
|
+
|
|
71
|
+
### Added — Engine Canonical Consensus
|
|
72
|
+
|
|
73
|
+
- `observe consensus --input <canonical-index-import.json>` joins strict,
|
|
74
|
+
timestamped engine-selected canonical observations with final URL, HTML,
|
|
75
|
+
Open Graph, and sitemap signals.
|
|
76
|
+
- Collection authority and authenticity remain attached to each engine
|
|
77
|
+
observation. Missing engine evidence remains `null`, and malformed or
|
|
78
|
+
incomplete imports fail closed.
|
|
79
|
+
|
|
80
|
+
### Added — Competitive Citation Profiles
|
|
81
|
+
|
|
82
|
+
- Citation objects may carry a strict source profile with content format, word
|
|
83
|
+
and heading counts, freshness date, and disclosed evidence features.
|
|
84
|
+
Observation summaries group unique declared profiles and citation counts by
|
|
85
|
+
competing domain.
|
|
86
|
+
- Malformed profile fields fail closed. Profile metadata remains imported
|
|
87
|
+
comparative evidence and is not treated as an independently fetched quality,
|
|
88
|
+
authority, or ranking assessment.
|
|
89
|
+
|
|
90
|
+
### Migration — Source Identity Chains
|
|
91
|
+
|
|
92
|
+
- Page records gain optional `author_entities`, `publisher_entity`, and
|
|
93
|
+
`correction_path` fields; entity records gain structured affiliation
|
|
94
|
+
disclosures. Existing registries remain valid, while populated records feed
|
|
95
|
+
the new `identity/source-chain.json` audit artifact.
|
|
96
|
+
- The versioned chain joins publisher, author affiliation, content owner,
|
|
97
|
+
factual reviewer, evidence owner, and correction path, preserving every
|
|
98
|
+
missing link. These are declared registry relationships and do not prove
|
|
99
|
+
visible, current, or independent disclosure.
|
|
100
|
+
|
|
101
|
+
### Added — Repeated-Region Extraction Evidence
|
|
102
|
+
|
|
103
|
+
- Passage observations now record raw/extracted byte ratios, raw-visible versus
|
|
104
|
+
extracted token ratios, and exact structural-region hashes for headers,
|
|
105
|
+
navigation, asides, and footers.
|
|
106
|
+
- Regions occurring on two or more pages in the audited cohort are labelled
|
|
107
|
+
`repeated_site_region`; other captured regions remain `page_local_region`.
|
|
108
|
+
These are descriptive extraction signals and do not establish content harm,
|
|
109
|
+
retrieval effects, or ranking effects.
|
|
110
|
+
|
|
111
|
+
### Added — Normalized Entity Graphs
|
|
112
|
+
|
|
113
|
+
- Every site audit now writes `schema/entity-graph.json` alongside the preserved
|
|
114
|
+
raw JSON-LD artifact. The versioned graph contract merges stable `@id` nodes,
|
|
115
|
+
records source-block hashes, normalizes declared relations, and retains
|
|
116
|
+
undeclared targets and JSON parse failures.
|
|
117
|
+
- Visible-content support is a bounded literal match over names, headlines, and
|
|
118
|
+
descriptions. It does not establish semantic correctness, structured-data
|
|
119
|
+
eligibility, search-engine recognition, or ranking impact.
|
|
120
|
+
|
|
121
|
+
### Added — Freshness Consensus
|
|
122
|
+
|
|
123
|
+
- `observe consensus` now records normalized HTTP `Last-Modified`, sitemap
|
|
124
|
+
`lastmod`, and visible/meta modification signals, including invalid values
|
|
125
|
+
excluded from comparison. It distinguishes aligned, conflicting, and
|
|
126
|
+
insufficient signal sets.
|
|
127
|
+
- Current page hashes are compared with the latest immutable audit snapshot.
|
|
128
|
+
A difference records only the interval after the prior capture in which a
|
|
129
|
+
change was observed; it does not assert the exact modification time, cause,
|
|
130
|
+
quality, or ranking effect. Page lifecycle review dates remain separate
|
|
131
|
+
governance metadata.
|
|
132
|
+
|
|
133
|
+
### Added — Per-Agent Synthetic Probes
|
|
134
|
+
|
|
135
|
+
- `observe probes --target <URL> [--region <label>]` exercises every active
|
|
136
|
+
identity declared in `crawlers.yaml`. Each immutable observation preserves
|
|
137
|
+
the status, redirects, response hash, allowlisted diagnostic headers, raw
|
|
138
|
+
body, region label, and coarse accessible/challenged/blocked/error
|
|
139
|
+
classification.
|
|
140
|
+
- Probe evidence is always labelled synthetic and single-observation. Spoofed
|
|
141
|
+
user agents never establish verified crawler identity, production access,
|
|
142
|
+
regional representativeness, or policy enforcement. Partial failures remain
|
|
143
|
+
explicit and sensitive response headers are not persisted.
|
|
144
|
+
|
|
145
|
+
### Migration — Corroboration Imports
|
|
146
|
+
|
|
147
|
+
- `observe corroboration` now requires the versioned
|
|
148
|
+
`corroboration-import.schema.json` contract. Imports must disclose collection
|
|
149
|
+
authority, authenticity, representativeness, population coverage, source
|
|
150
|
+
control, and relationship status. Legacy arrays and `independent` booleans
|
|
151
|
+
are rejected; fixtures and integrations must migrate to `schema_version: 1`.
|
|
152
|
+
- Independence is classified only when control is declared `independent` and
|
|
153
|
+
the relationship is `none_disclosed`. Every resulting observation preserves
|
|
154
|
+
the import authority and coverage while stating that a mention alone does
|
|
155
|
+
not establish authority, support, ranking impact, citation eligibility, or
|
|
156
|
+
representative coverage.
|
|
157
|
+
|
|
158
|
+
### Security — Outbound Collection
|
|
159
|
+
|
|
160
|
+
- Browser render targets, browser-plan targets and navigation, and every
|
|
161
|
+
Playwright subresource now share the crawler's public-destination policy.
|
|
162
|
+
Controlled citation adapters require HTTPS, reject configured non-public
|
|
163
|
+
ranges, and refuse redirects. The blocked range set now includes IPv4/IPv6
|
|
164
|
+
documentation ranges and IPv4 benchmarking/reserved ranges. Safe
|
|
165
|
+
browser-local `data:`, `blob:`, and `about:` resources remain usable.
|
|
166
|
+
- DNS validation and connection address pinning remain distinct: Node fetch and
|
|
167
|
+
Playwright do not currently bind the validated DNS result to the subsequent
|
|
168
|
+
connection. This residual rebinding risk is now explicit in security and
|
|
169
|
+
known-limitations documentation, with isolated execution and network egress
|
|
170
|
+
controls required for untrusted targets.
|
|
171
|
+
|
|
172
|
+
### Added — Action Plans
|
|
173
|
+
|
|
174
|
+
- Generated actions now expose dependency IDs, decision ownership, explicit
|
|
175
|
+
failure conditions, leading indicators, and monitoring windows. The schema
|
|
176
|
+
additions are optional for compatibility with existing action-plan
|
|
177
|
+
artifacts; newly generated plans leave unsupported dependencies and
|
|
178
|
+
indicators empty instead of inventing causal or sequencing relationships.
|
|
179
|
+
|
|
180
|
+
### Migration — Provenance seededFrom
|
|
181
|
+
|
|
182
|
+
- `common.defs.json`'s shared `provenance` definition (used by claim, entity,
|
|
183
|
+
evidence, page, prompt, query, crawler, competitor, and experiment records)
|
|
184
|
+
gains an optional `seededFrom { seedName, seedVersion, importedAt,
|
|
185
|
+
contentFingerprint? }` sub-object. Existing provenance records without it
|
|
186
|
+
remain valid; no existing data needs to change.
|
|
187
|
+
|
|
188
|
+
### Added — CLI
|
|
189
|
+
|
|
190
|
+
- `citable plan-audit` performs a read-only target inspection, labels business
|
|
191
|
+
profiles as evidence-backed probabilistic inferences, proposes the full audit
|
|
192
|
+
and profile-specific semantic emphasis, and reports optional collectors as
|
|
193
|
+
available or blocked. It creates no audit, observation, snapshot, or
|
|
194
|
+
remediation artifact.
|
|
195
|
+
- `citable doctor` now includes a read-only runtime capability matrix for
|
|
196
|
+
Playwright rendering, local Lighthouse, OCR, CrUX, GSC, and GA4. Optional
|
|
197
|
+
gaps do not fail installer integrity, credential values are never emitted,
|
|
198
|
+
and `ready` means prerequisite presence rather than proven launch,
|
|
199
|
+
authorization, property access, or collection success.
|
|
200
|
+
- `citable init --seed <name>` overlays a bundled starter registry bundle
|
|
201
|
+
(v1 ships `saas-pricing`) onto `.citable/`. Every seeded record is stamped
|
|
202
|
+
`status: unverified` and `provenance.seededFrom`, regardless of what the
|
|
203
|
+
seed bundle itself declares — seeded (someone else's-guess) data can never
|
|
204
|
+
be indistinguishable from data the owner's own evidence pipeline has
|
|
205
|
+
verified. Re-running a seed never overwrites the owner's own edits, even
|
|
206
|
+
with `--force`.
|
|
207
|
+
|
|
208
|
+
### Added — Observation
|
|
209
|
+
|
|
210
|
+
- `citable observe citations` now diffs each AI answer's assertions against
|
|
211
|
+
the caller's own claim/evidence registry (reusing `substantiate`'s
|
|
212
|
+
deterministic outcome machine), classifying each as confirmed / contradicted
|
|
213
|
+
/ stale / unsupported. It never asserts the AI is wrong — only that an
|
|
214
|
+
assertion is or isn't supported by the caller's own evidence — and never
|
|
215
|
+
claims to have live-queried an answer engine. Degrades gracefully to
|
|
216
|
+
`unsupported` when no `.citable/` registry exists yet.
|
|
217
|
+
|
|
218
|
+
### Added — Documentation
|
|
219
|
+
|
|
220
|
+
- A task-oriented getting-started guide now provides persona-specific entry
|
|
221
|
+
points, a five-minute audit-to-action workflow, an evidence-journey map,
|
|
222
|
+
interpretation mistakes, and excerpts generated from the bundled synthetic
|
|
223
|
+
fixture. The examples preserve `pass`, `not_established`, and
|
|
224
|
+
`not_evidenced` as separate states and make no live-property outcome claims.
|
|
225
|
+
|
|
226
|
+
### Added — Demo
|
|
227
|
+
|
|
228
|
+
- `citable demo` runs the full detector engine against a bundled, frozen,
|
|
229
|
+
offline example site and prints a namespace-by-namespace finding count in
|
|
230
|
+
seconds. It never fetches the network and never scores a real company —
|
|
231
|
+
the fixture is synthetic (`https://example.test`, RFC 2606 reserved). Ends
|
|
232
|
+
with a nudge toward `citable init` for a real, governed audit.
|
|
233
|
+
|
|
234
|
+
### Changed — Consistency
|
|
235
|
+
|
|
236
|
+
- `schemaCmd`, `substantiate`, and `actionPlan` now build their
|
|
237
|
+
`required_input` guidance through a single shared helper
|
|
238
|
+
(`src/shared/checklist.js`) instead of three independently duplicated
|
|
239
|
+
literal-string lists. Output strings are unchanged.
|
|
240
|
+
|
|
241
|
+
### Fixed — Release Operations
|
|
242
|
+
|
|
243
|
+
- `finalize-release.yml` never ran `npm run build:dist` before calling
|
|
244
|
+
`release-governance.js validate`, so `dist/universal/manifest.json` did not
|
|
245
|
+
exist and phase-two validation failed closed with `required release
|
|
246
|
+
projection is missing` on every attempt. `ship-release.yml` already built
|
|
247
|
+
dist before validating; `finalize-release.yml` now does the same. This
|
|
248
|
+
workflow had never executed end-to-end before v1.13.1 (v1.13.0 never
|
|
249
|
+
reached finalization), so the gap was latent until now.
|
|
250
|
+
|
|
251
|
+
## 1.13.1 — 2026-07-22
|
|
252
|
+
|
|
253
|
+
### Added — Release Operations
|
|
254
|
+
|
|
255
|
+
- `scripts/collect-deployment-receipts.js` probes every controlled surface in
|
|
256
|
+
a release manifest, writes one schema-valid `deployment-receipt-*.json` per
|
|
257
|
+
surface (including failed probes — a failed observation is evidence), and
|
|
258
|
+
exits non-zero unless every finalization-required surface verifies. This is
|
|
259
|
+
the missing operational step between `ship-release` and `finalize-release`;
|
|
260
|
+
v1.13.0 had no tool that could produce the receipts its finalize workflow
|
|
261
|
+
downloads.
|
|
262
|
+
|
|
263
|
+
### Fixed — Controlled Surface Correctness
|
|
264
|
+
|
|
265
|
+
- The `nebula-llms-txt` controlled surface now targets
|
|
266
|
+
`https://nebulacomponents.shop/resources/citable/llms.txt` instead of the
|
|
267
|
+
site root `/llms.txt`. The root file is the publisher's own site-wide LLM
|
|
268
|
+
discovery document and can never byte-match the Citable `llms-txt`
|
|
269
|
+
projection, so the v1.13.0 surface declaration was unsatisfiable as written
|
|
270
|
+
and no valid deployment receipt could ever have been collected for it.
|
|
271
|
+
v1.13.0 therefore exceeded its finalization dwell window and is resolved as
|
|
272
|
+
superseded under the two-phase release governance introduced in 1.13.0.
|
|
273
|
+
|
|
5
274
|
## 1.13.0 — 2026-07-19
|
|
6
275
|
|
|
7
276
|
### Added — Release Evidence Governance
|
package/README.md
CHANGED
|
@@ -25,7 +25,12 @@ generator, not a Lighthouse wrapper, not an "AI visibility score".
|
|
|
25
25
|
ENTITY, CLAIM, EVD, SCHEMA, LINK, EXT, GEO, RECO, LIFE, MEAS, HREFLANG, CWV, AGENT), each with
|
|
26
26
|
remediation, verification, severity, and determinism declared.
|
|
27
27
|
- **Evidence packages** for every run: manifest, findings, report, captured
|
|
28
|
-
robots/sitemaps/headers/
|
|
28
|
+
robots/sitemaps/headers/raw JSON-LD, a schema-validated normalized entity
|
|
29
|
+
graph with unresolved references and parse failures, link graph, and
|
|
30
|
+
checksums. A source identity-chain artifact joins declared publisher, author
|
|
31
|
+
affiliation, reviewer, evidence-owner, and correction-path records. Literal
|
|
32
|
+
or registry linkage does not assert semantic correctness, visible disclosure,
|
|
33
|
+
independence, or search-engine recognition.
|
|
29
34
|
- **Separate state reporting** for retrieval eligibility, source extraction and
|
|
30
35
|
support suitability, and observed citation behavior. These are never merged
|
|
31
36
|
into an "AI visibility score."
|
|
@@ -36,6 +41,9 @@ generator, not a Lighthouse wrapper, not an "AI visibility score".
|
|
|
36
41
|
mandatory human-review conditions.
|
|
37
42
|
- **Multi-agent distribution**: Claude Code, Codex-compatible, Cursor, Gemini,
|
|
38
43
|
generic — generated from one canonical `skill/` source.
|
|
44
|
+
- **Evidence-phase agent profiles**: Claude Code receives a guarded auditor and
|
|
45
|
+
read-only semantic reviewer. Other hosts remain explicitly unsupported until
|
|
46
|
+
their native profile contracts are verified.
|
|
39
47
|
- **Agent-readiness detectors** (AGENT namespace): agents are both readers
|
|
40
48
|
and writers of your site — `llms.txt` and Markdown content negotiation shape
|
|
41
49
|
what they consume; MCP Server Cards and A2A Agent Cards expose what they can
|
|
@@ -93,8 +101,16 @@ Diagnose installation problems:
|
|
|
93
101
|
|
|
94
102
|
```bash
|
|
95
103
|
npx @nebulacomponents/citable doctor
|
|
104
|
+
npx @nebulacomponents/citable doctor --json
|
|
96
105
|
```
|
|
97
106
|
|
|
107
|
+
`doctor` also reports independent runtime capability states for optional
|
|
108
|
+
Playwright rendering, local Lighthouse, OCR, CrUX, GSC, and GA4 collection.
|
|
109
|
+
Missing optional dependencies or credentials do not fail installer integrity.
|
|
110
|
+
A `ready` capability establishes dependency or credential presence only; the
|
|
111
|
+
reported limitations preserve that browser launch, authorization, property
|
|
112
|
+
access, quota, and collection success remain untested.
|
|
113
|
+
|
|
98
114
|
The npm package is scoped as `@nebulacomponents/citable`; the installed
|
|
99
115
|
executable is still named `citable`.
|
|
100
116
|
|
|
@@ -128,8 +144,13 @@ used. Symlink mode is intentionally unsupported: provider-specific payloads and
|
|
|
128
144
|
their manifests must remain an atomic managed unit so validation and uninstall
|
|
129
145
|
do not cross ownership boundaries.
|
|
130
146
|
|
|
131
|
-
|
|
132
|
-
|
|
147
|
+
Claude Code installs also receive separately manifested profiles under
|
|
148
|
+
`.claude/agents/citable/` or `~/.claude/agents/citable/`. Profile collisions,
|
|
149
|
+
local modifications, updates, and uninstall use the same managed-copy
|
|
150
|
+
boundaries as the skill. See [Agent profiles](docs/AGENT_PROFILES.md).
|
|
151
|
+
Other providers receive the skill only until their native profile discovery
|
|
152
|
+
and permission contracts are verified. The installer does not install provider
|
|
153
|
+
hooks, MCP configuration, telemetry, or unrelated agent settings.
|
|
133
154
|
The package ships `dist/universal/` for offline installation from the npm
|
|
134
155
|
tarball; no Git checkout or npm cache files are required after installation.
|
|
135
156
|
Windows PowerShell, Linux shells, and macOS shells are supported through Node's
|
|
@@ -146,12 +167,14 @@ npx @nebulacomponents/citable help
|
|
|
146
167
|
|
|
147
168
|
cd your-site/
|
|
148
169
|
citable init # creates .citable/ (non-destructive)
|
|
170
|
+
citable plan-audit --target ./dist --base-url https://example.com # read-only profile/capability plan
|
|
149
171
|
citable audit --target ./dist --base-url https://example.com
|
|
150
172
|
citable action-plan <run-id> # ordered actions, blockers, review gates, verification
|
|
151
173
|
citable observe passages --target ./dist --base-url https://example.com
|
|
152
174
|
citable observe index --input search-console-export.json
|
|
153
175
|
citable observe citations --input prompt-results.json --target https://example.com
|
|
154
176
|
citable observe logs --input edge-logs.json
|
|
177
|
+
citable observe probes --target https://example.com --region local-office
|
|
155
178
|
citable observe bing --dataset ai_performance --input bing-ai-performance.csv
|
|
156
179
|
citable observe consensus --target ./dist --base-url https://example.com
|
|
157
180
|
citable observe performance --target https://example.com # CRUX_API_KEY
|
|
@@ -202,6 +225,20 @@ citable validate # registry schema + referential integrity
|
|
|
202
225
|
|
|
203
226
|
## Documentation
|
|
204
227
|
|
|
228
|
+
- [Documentation index](docs/README.md) — task-oriented navigation for users,
|
|
229
|
+
operators, and reviewers
|
|
230
|
+
- [Getting started](docs/GETTING_STARTED.md) — five-minute workflow, persona
|
|
231
|
+
routes, evidence journey, and annotated synthetic-fixture output
|
|
232
|
+
- [Command guide](docs/COMMANDS.md) — workflow-oriented command families and
|
|
233
|
+
evidence boundaries
|
|
234
|
+
- [Agent profiles](docs/AGENT_PROFILES.md) — Claude auditor and semantic-review
|
|
235
|
+
roles, installation, routing, and authority boundaries
|
|
236
|
+
- [Integrations](docs/INTEGRATIONS.md) — current connectors, import contracts,
|
|
237
|
+
and the proposed fail-closed MCP transport
|
|
238
|
+
- [Troubleshooting](docs/TROUBLESHOOTING.md) — incomplete collection,
|
|
239
|
+
authorization, import, and governance failures
|
|
240
|
+
- [Migrations](docs/MIGRATIONS.md) — contract migration workflow and current
|
|
241
|
+
schema notes
|
|
205
242
|
- [Architecture decision record](docs/architecture/adr-001-architecture.md)
|
|
206
243
|
- [Traceability matrix](docs/architecture/traceability-matrix.md) — every
|
|
207
244
|
material source requirement mapped to a control
|
|
@@ -216,12 +253,13 @@ citable validate # registry schema + referential integrity
|
|
|
216
253
|
- [Reviewer and exception governance](docs/governance/reviewer-exceptions.md) —
|
|
217
254
|
policy-driven authority, separation of duties, expiry, invalidation, and
|
|
218
255
|
immutable enforcement dispositions
|
|
219
|
-
- [Known limitations](docs/known-limitations.md) includes medium-specific PDF,
|
|
220
|
-
transcript, image-context, and optional OCR boundaries.
|
|
221
256
|
|
|
222
257
|
## Community And Governance
|
|
223
258
|
|
|
224
259
|
- [Contributing](CONTRIBUTING.md) - engineering and pull-request contracts
|
|
260
|
+
- [Fail-Closed Bounty](BOUNTY.md) - prove a breach of the fail-closed
|
|
261
|
+
guarantee (see BOUNTY.md for the full qualifying scope) and earn a
|
|
262
|
+
permanent [Hall of Fame](CHANGELOG.md#fail-closed-hall-of-fame) entry
|
|
225
263
|
- [Support](SUPPORT.md) - Issues, Discussions, hosted-service, and security routing
|
|
226
264
|
- [Governance](GOVERNANCE.md) - authority, decisions, roles, and continuity
|
|
227
265
|
- [Maintainers](MAINTAINERS.md) - current responsibilities and succession
|
|
@@ -7,7 +7,7 @@ description: >
|
|
|
7
7
|
generative engine optimization, structured data governance, claim substantiation,
|
|
8
8
|
crawler policy, entity consistency, content discoverability, or wants a site audited
|
|
9
9
|
for how search and AI systems will retrieve, understand, cite, or recommend it.
|
|
10
|
-
version: 1.
|
|
10
|
+
version: 1.14.0
|
|
11
11
|
---
|
|
12
12
|
|
|
13
13
|
# Citable — evidence and change control for search and AI citation readiness
|
|
@@ -87,6 +87,7 @@ prefer running it over re-deriving its checks by hand:
|
|
|
87
87
|
```
|
|
88
88
|
citable init # initialize .citable/ (non-destructive)
|
|
89
89
|
citable audit [scope] --target <dir|url> [--base-url <url>] [--ref-date YYYY-MM-DD]
|
|
90
|
+
citable plan-audit --target <dir|url> [--base-url <url>]
|
|
90
91
|
citable inspect <page> --target <dir|url>
|
|
91
92
|
citable map-claims --target <dir|url> [--write]
|
|
92
93
|
citable substantiate [--write]
|
|
@@ -94,8 +95,10 @@ citable schema --target <dir|url>
|
|
|
94
95
|
citable validate [registries|claims|evidence|schema|links]
|
|
95
96
|
citable compare-snapshots [runA runB]
|
|
96
97
|
citable action-plan [run-id] # ordered actions, blockers, semantic gates, verification
|
|
97
|
-
citable observe <mode> [options] # render/index/citation/log/passage/consensus/performance evidence
|
|
98
|
+
citable observe <mode> [options] # render/index/citation/log/probe/passage/consensus/performance evidence
|
|
98
99
|
citable observe bing --dataset <search_performance|ai_performance> --input <csv|json>
|
|
100
|
+
citable observe probes --target <url> [--region <label>]
|
|
101
|
+
citable observe network --input <regional-network-import.json>
|
|
99
102
|
citable observe render --target <url> [--interactions] [--resume-run <run-id>]
|
|
100
103
|
citable observe render --input <browser-evidence-plan.json>
|
|
101
104
|
citable observe performance --target <url> --lighthouse [--repeat 1..5]
|
|
@@ -134,8 +137,14 @@ citable artifacts import --input <directory>
|
|
|
134
137
|
Audit scopes: `technical seo aeo geo architecture entity claims evidence schema
|
|
135
138
|
lifecycle corroboration`. Every audit writes an evidence package to
|
|
136
139
|
`.citable/runs/<run-id>/` (manifest, findings.json, report.md, headers, robots,
|
|
137
|
-
sitemaps,
|
|
138
|
-
|
|
140
|
+
sitemaps, raw JSON-LD, normalized entity graph, link graph, checksums). The
|
|
141
|
+
entity graph preserves declared nodes, relations, unresolved references, parse
|
|
142
|
+
failures, and literal visible-text support; it does not prove semantic
|
|
143
|
+
correctness or search-engine recognition. The source identity-chain artifact
|
|
144
|
+
joins declared publisher, author affiliations, content owner, factual reviewer,
|
|
145
|
+
evidence owner, and correction path while preserving missing links. Registry
|
|
146
|
+
linkage does not prove that disclosures are visible, current, or independent.
|
|
147
|
+
A report without its evidence package is not a deliverable.
|
|
139
148
|
|
|
140
149
|
## Finding-to-action protocol
|
|
141
150
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
1.
|
|
1
|
+
1.14.0
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: citable-auditor
|
|
3
|
+
description: Run a Citable audit or evidence collection when the user needs a plan, immutable or sealed run, observation, capability diagnosis, or evidence-bounded summary. Not for semantic approval, source remediation, content rewriting, or claims that an outcome is guaranteed.
|
|
4
|
+
tools:
|
|
5
|
+
- Read
|
|
6
|
+
- Glob
|
|
7
|
+
- Grep
|
|
8
|
+
- Bash
|
|
9
|
+
model: inherit
|
|
10
|
+
maxTurns: 20
|
|
11
|
+
skills:
|
|
12
|
+
- citable
|
|
13
|
+
---
|
|
14
|
+
|
|
15
|
+
You are Citable's evidence-collection specialist. Establish what the target
|
|
16
|
+
makes observable, what the selected method could not collect, and where the
|
|
17
|
+
resulting immutable evidence package lives.
|
|
18
|
+
|
|
19
|
+
## Authority boundary
|
|
20
|
+
|
|
21
|
+
- You may run the Citable CLI and read its artifacts.
|
|
22
|
+
- Never edit the audited property, its source, its registries, or an existing
|
|
23
|
+
run package.
|
|
24
|
+
- Do not use `curl`, `wget`, raw browser automation, or ad hoc HTTP clients.
|
|
25
|
+
Network collection must go through the applicable guarded Citable command.
|
|
26
|
+
- Do not run `citable apply`, use `--write`, or create implementation facts.
|
|
27
|
+
- Do not infer crawling, indexing, ranking, citation, recommendation,
|
|
28
|
+
inclusion, sentiment, or conversion outcomes.
|
|
29
|
+
|
|
30
|
+
## Workflow
|
|
31
|
+
|
|
32
|
+
1. Read repository instructions and identify the target and requested evidence
|
|
33
|
+
question.
|
|
34
|
+
2. Run `citable doctor` when optional browser, API, OCR, or lab capability is
|
|
35
|
+
relevant. Treat `ready` as prerequisite presence only.
|
|
36
|
+
3. Run `citable plan-audit --target <target>` when the appropriate scopes or
|
|
37
|
+
collectors are not already explicit. The plan is not evidence.
|
|
38
|
+
4. Run `citable audit [scope] --target <target>` for deterministic and
|
|
39
|
+
heuristic site findings. Preserve the full audit unless the user explicitly
|
|
40
|
+
requested a scope.
|
|
41
|
+
5. Run only the relevant `citable observe <mode>` commands for external or
|
|
42
|
+
rendered observations. Preserve provider, method, authority, authenticity,
|
|
43
|
+
collection, and representativeness boundaries.
|
|
44
|
+
6. Read the run manifest, findings, summary, warnings, incomplete state, and
|
|
45
|
+
checksums before reporting.
|
|
46
|
+
|
|
47
|
+
If prerequisites, authorization, source facts, or required inputs are absent,
|
|
48
|
+
preserve `blocked`, `incomplete`, `not_established`, or `not_evidenced`.
|
|
49
|
+
Never translate one of those states into zero, pass, absence, or failure of the
|
|
50
|
+
external system.
|
|
51
|
+
|
|
52
|
+
## Return contract
|
|
53
|
+
|
|
54
|
+
Report:
|
|
55
|
+
|
|
56
|
+
1. target, command, scope, and collection method;
|
|
57
|
+
2. run ID and artifact directory;
|
|
58
|
+
3. deterministic observations;
|
|
59
|
+
4. evidence-backed semantic findings and probabilistic inferences, separately;
|
|
60
|
+
5. skipped checks, collection failures, limitations, and residual unknowns;
|
|
61
|
+
6. exact next evidence or owner input required;
|
|
62
|
+
7. whether semantic review or a governed action plan is the next bounded step.
|
|
63
|
+
|
|
64
|
+
A human-readable report without its run package is not a deliverable.
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: citable-semantic-reviewer
|
|
3
|
+
description: Review semantic questions in an existing Citable run, finding, action, or artifact, including claim support, answer extractability, entity clarity, comparison fairness, and narrative accuracy. Not for collecting new evidence, running audits, editing source, or approving publication.
|
|
4
|
+
tools:
|
|
5
|
+
- Read
|
|
6
|
+
- Glob
|
|
7
|
+
- Grep
|
|
8
|
+
model: inherit
|
|
9
|
+
maxTurns: 15
|
|
10
|
+
skills:
|
|
11
|
+
- citable
|
|
12
|
+
---
|
|
13
|
+
|
|
14
|
+
You are Citable's read-only semantic reviewer. Evaluate meaning against the
|
|
15
|
+
exact source evidence and review policy without changing technical findings,
|
|
16
|
+
registries, source files, or sealed artifacts.
|
|
17
|
+
|
|
18
|
+
## Preconditions
|
|
19
|
+
|
|
20
|
+
Require an existing source run, finding, review item, or action artifact. Bind
|
|
21
|
+
the review to the available run ID, finding ID and finding hash, review-item
|
|
22
|
+
hash, policy, subject, captured evidence, and declared limitations. If the
|
|
23
|
+
binding or source material is unavailable, return `review_required` with the
|
|
24
|
+
missing input instead of reconstructing it.
|
|
25
|
+
|
|
26
|
+
## Review dimensions
|
|
27
|
+
|
|
28
|
+
Apply only dimensions relevant to the requested item:
|
|
29
|
+
|
|
30
|
+
- intent alignment and answer extractability;
|
|
31
|
+
- claim boundedness and evidence strength;
|
|
32
|
+
- entity clarity and source identity;
|
|
33
|
+
- information gain and comparison fairness;
|
|
34
|
+
- recommendation eligibility and narrative accuracy;
|
|
35
|
+
- factual accuracy, accessibility, conversion function, legal defensibility,
|
|
36
|
+
and maintainability.
|
|
37
|
+
|
|
38
|
+
Separate deterministic fact from evidence-backed semantic finding,
|
|
39
|
+
probabilistic inference, strategic hypothesis, experiment result, and
|
|
40
|
+
untestable condition. Never present inference as fact.
|
|
41
|
+
|
|
42
|
+
## Authority boundary
|
|
43
|
+
|
|
44
|
+
- Never edit source files, registries, findings, review items, action plans, or
|
|
45
|
+
sealed run artifacts.
|
|
46
|
+
- Do not collect new external evidence or treat general knowledge as source-run
|
|
47
|
+
evidence.
|
|
48
|
+
- Do not change a technical failure to pass or accepted risk.
|
|
49
|
+
- Do not mark a claim `verified`, complete a required review, approve
|
|
50
|
+
publication, or satisfy an owner-controlled gate. Automation cannot upgrade
|
|
51
|
+
evidence authority.
|
|
52
|
+
- Preserve `review_required` when evidence or accountable authority is missing.
|
|
53
|
+
- Preserve `adjudication_required` when current authorized reviewers disagree.
|
|
54
|
+
|
|
55
|
+
## Return contract
|
|
56
|
+
|
|
57
|
+
For each reviewed item, report:
|
|
58
|
+
|
|
59
|
+
1. artifact binding and review dimensions applied;
|
|
60
|
+
2. supporting and contradicting evidence;
|
|
61
|
+
3. semantic assessment with confidence and false-positive conditions;
|
|
62
|
+
4. missing evidence, ambiguity, residual risk, and required owner input;
|
|
63
|
+
5. proposed disposition: `review_required`, `adjudication_required`, or a
|
|
64
|
+
recommendation for an authorized human reviewer to record.
|
|
65
|
+
|
|
66
|
+
Your output is review context, not an approval or a mutation instruction.
|
|
@@ -15,6 +15,11 @@ failure_behaviour: missing or invalid source run -> fail; review-required action
|
|
|
15
15
|
3. Assign owners. Resolve each blocked action's exact required input. Missing
|
|
16
16
|
facts, evidence, legal review, or semantic review are blockers, not drafting
|
|
17
17
|
opportunities.
|
|
18
|
+
Treat `decision_owner` independently from implementation responsibility when
|
|
19
|
+
the generated plan names different roles. Empty `depends_on_action_ids`,
|
|
20
|
+
`leading_indicators`, or `monitoring_window` fields mean those relationships
|
|
21
|
+
are not established by the source evidence; do not fill them with generic
|
|
22
|
+
SEO assumptions.
|
|
18
23
|
4. Capture a before state for each subject. Use the finding's evidence,
|
|
19
24
|
preferred remediation, unsafe shortcuts, and detector lineage as the change
|
|
20
25
|
boundary.
|
|
@@ -24,7 +29,10 @@ failure_behaviour: missing or invalid source run -> fail; review-required action
|
|
|
24
29
|
writes use the loader/saver and retain history. Content claims remain equal
|
|
25
30
|
to or narrower than their registered scope.
|
|
26
31
|
7. Build and test the target repository. Run the generated verification
|
|
27
|
-
command,
|
|
32
|
+
command, evaluate the explicit `failure_condition`, then compare the new
|
|
33
|
+
audit to the source run. Monitor only the listed leading indicators over the
|
|
34
|
+
declared window; an empty list or null window does not authorize an inferred
|
|
35
|
+
outcome measure.
|
|
28
36
|
8. Close only with evidence: resolved detector/subject pair, before/after run
|
|
29
37
|
IDs, diff, reviewer, and residual risk. Mark blocked, accepted risk, and
|
|
30
38
|
false positive explicitly; do not silently drop findings.
|
|
@@ -19,22 +19,69 @@ failure_behaviour: unavailable dependency, credential, source run, reviewer, exa
|
|
|
19
19
|
browser version, device, JavaScript, locale, consent, authentication state,
|
|
20
20
|
and ordered interaction steps. Fill/select values are referenced by
|
|
21
21
|
environment-variable name and are never written to the plan or artifacts.
|
|
22
|
+
Targets, subresources, and navigation steps must remain on public network
|
|
23
|
+
destinations; unsupported schemes and configured non-public address ranges
|
|
24
|
+
are blocked. DNS validation does not pin the later browser connection, so
|
|
25
|
+
isolated execution with egress controls remains required for untrusted URLs.
|
|
26
|
+
Plans may include a strict semantic-impact policy covering text retention,
|
|
27
|
+
heading, link, and structured-data parity. Deterministic violations name a
|
|
28
|
+
review owner and always remain `review_required`; passing configured checks
|
|
29
|
+
does not establish semantic or retrieval equivalence.
|
|
22
30
|
- `observe index --input <JSON>` imports owner exports. With `--target`,
|
|
23
31
|
`--site-url`, and `GSC_ACCESS_TOKEN`, it calls Google URL Inspection, which
|
|
24
32
|
reports the indexed version rather than performing a live indexability test.
|
|
25
33
|
- `observe citations --input <JSON>` imports complete controlled observations.
|
|
26
34
|
With `--endpoint`, the input is a versioned prompt corpus and each prompt runs
|
|
27
35
|
1-20 times (default 3) through the disclosed adapter protocol. An API is not
|
|
28
|
-
presumed equivalent to a provider's consumer search experience.
|
|
36
|
+
presumed equivalent to a provider's consumer search experience. Adapter
|
|
37
|
+
endpoints require HTTPS, must resolve only to public destinations, and may
|
|
38
|
+
not redirect.
|
|
39
|
+
Citation objects may include a strict `source_profile` containing declared
|
|
40
|
+
format, word and heading counts, freshness date, and evidence features.
|
|
41
|
+
Competitive summaries group these profiles by cited domain. Imported profile
|
|
42
|
+
values are comparative metadata, not independently fetched or verified
|
|
43
|
+
qualities.
|
|
29
44
|
- `observe logs --input <JSON>` imports server/CDN records. User-agent matches
|
|
30
45
|
without IP verification remain low confidence.
|
|
46
|
+
- `observe probes --target <URL> [--region <label>]` sends one bounded synthetic
|
|
47
|
+
request for every active identity in `crawlers.yaml`, preserving response
|
|
48
|
+
bodies, safe diagnostic headers, redirects, and coarse edge/challenge
|
|
49
|
+
classification. The request merely spoofs each declared user agent: it does
|
|
50
|
+
not establish crawler identity, production access, regional
|
|
51
|
+
representativeness, or alignment between declared policy and actual crawler
|
|
52
|
+
treatment.
|
|
53
|
+
- `observe network --input <JSON>` accepts a strict regional runner export with
|
|
54
|
+
region, network, user agent, DNS answers, TLS authorization/fingerprint,
|
|
55
|
+
status, latency, and cache state for every probe. Citable validates and seals
|
|
56
|
+
these observations but does not operate the runner or infer global coverage.
|
|
31
57
|
- `observe passages|consensus --target <dir|URL>` performs static extraction.
|
|
58
|
+
Passage observations include raw/extracted byte and visible-token ratios plus
|
|
59
|
+
exact repeated header, navigation, aside, and footer regions across the
|
|
60
|
+
audited page cohort. These classifications are descriptive and do not imply
|
|
61
|
+
content harm, retrieval effects, or ranking effects.
|
|
62
|
+
Versioned passage records also join declared page prompts, questions, and
|
|
63
|
+
expected answer components. This only creates review context:
|
|
64
|
+
question-to-passage suitability remains `review_required`.
|
|
65
|
+
Consensus normalizes parseable HTTP, sitemap, and visible/meta freshness
|
|
66
|
+
dates, preserves conflicts and invalid values, and compares the current
|
|
67
|
+
content hash with the latest immutable page snapshot. A detected hash change
|
|
68
|
+
establishes only an interval after the prior capture—not an exact change
|
|
69
|
+
time, cause, quality improvement, or ranking effect. Lifecycle review dates
|
|
70
|
+
remain a separate governance signal.
|
|
71
|
+
`observe consensus --input <canonical-index-import.json>` additionally joins
|
|
72
|
+
schema-validated engine-selected canonical observations while preserving
|
|
73
|
+
their collection authority and authenticity. Missing engine observations
|
|
74
|
+
remain `null`; they are never inferred from static declarations.
|
|
32
75
|
- `observe performance` imports evidence or calls CrUX with `CRUX_API_KEY`.
|
|
33
76
|
`--lighthouse` instead performs 1-5 local lab runs (default 3) using optional
|
|
34
77
|
`lighthouse` and `chrome-launcher` peers, preserving each result and a median
|
|
35
78
|
summary. Lab evidence remains separate from CrUX field evidence.
|
|
36
|
-
- `observe corroboration --input <JSON>`
|
|
37
|
-
|
|
79
|
+
- `observe corroboration --input <JSON>` accepts only the versioned
|
|
80
|
+
`corroboration-import` contract. Each mention must disclose source control,
|
|
81
|
+
relationship, collection authority, authenticity, and dataset coverage.
|
|
82
|
+
Legacy independence booleans and undisclosed control fail closed. An
|
|
83
|
+
observable mention does not establish source authority, claim support,
|
|
84
|
+
ranking impact, citation eligibility, or representative coverage.
|
|
38
85
|
|
|
39
86
|
## Guarded remediation
|
|
40
87
|
|