agent-bober 0.17.1 → 0.19.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/.claude-plugin/plugin.json +1 -1
- package/CHANGELOG.md +26 -0
- package/README.md +402 -10
- package/agents/bober-art-director.md +100 -0
- package/agents/bober-design-critic.md +114 -0
- package/agents/bober-frontend-builder.md +101 -0
- package/agents/bober-security-auditor.md +193 -0
- package/agents/bober-security-verifier.md +104 -0
- package/agents/bober-seo-strategist.md +144 -0
- package/agents/bober-seo-verifier.md +103 -0
- package/dist/calendar/calendar-egress.d.ts +26 -0
- package/dist/calendar/calendar-egress.d.ts.map +1 -0
- package/dist/calendar/calendar-egress.js +35 -0
- package/dist/calendar/calendar-egress.js.map +1 -0
- package/dist/calendar/calendar-token.d.ts +34 -0
- package/dist/calendar/calendar-token.d.ts.map +1 -0
- package/dist/calendar/calendar-token.js +56 -0
- package/dist/calendar/calendar-token.js.map +1 -0
- package/dist/calendar/connector.d.ts +22 -0
- package/dist/calendar/connector.d.ts.map +1 -0
- package/dist/calendar/connector.js +3 -0
- package/dist/calendar/connector.js.map +1 -0
- package/dist/calendar/finding-source.d.ts +20 -0
- package/dist/calendar/finding-source.d.ts.map +1 -0
- package/dist/calendar/finding-source.js +35 -0
- package/dist/calendar/finding-source.js.map +1 -0
- package/dist/calendar/google-connector.d.ts +65 -0
- package/dist/calendar/google-connector.d.ts.map +1 -0
- package/dist/calendar/google-connector.js +129 -0
- package/dist/calendar/google-connector.js.map +1 -0
- package/dist/calendar/ics-connector.d.ts +12 -0
- package/dist/calendar/ics-connector.d.ts.map +1 -0
- package/dist/calendar/ics-connector.js +48 -0
- package/dist/calendar/ics-connector.js.map +1 -0
- package/dist/calendar/proposal-gate.d.ts +84 -0
- package/dist/calendar/proposal-gate.d.ts.map +1 -0
- package/dist/calendar/proposal-gate.js +126 -0
- package/dist/calendar/proposal-gate.js.map +1 -0
- package/dist/calendar/slotter.d.ts +34 -0
- package/dist/calendar/slotter.d.ts.map +1 -0
- package/dist/calendar/slotter.js +196 -0
- package/dist/calendar/slotter.js.map +1 -0
- package/dist/calendar/types.d.ts +162 -0
- package/dist/calendar/types.d.ts.map +1 -0
- package/dist/calendar/types.js +28 -0
- package/dist/calendar/types.js.map +1 -0
- package/dist/chat/answerer.d.ts +17 -0
- package/dist/chat/answerer.d.ts.map +1 -0
- package/dist/chat/answerer.js +52 -0
- package/dist/chat/answerer.js.map +1 -0
- package/dist/chat/approval-cursor.d.ts +25 -0
- package/dist/chat/approval-cursor.d.ts.map +1 -0
- package/dist/chat/approval-cursor.js +61 -0
- package/dist/chat/approval-cursor.js.map +1 -0
- package/dist/chat/approval-reader.d.ts +11 -0
- package/dist/chat/approval-reader.d.ts.map +1 -0
- package/dist/chat/approval-reader.js +20 -0
- package/dist/chat/approval-reader.js.map +1 -0
- package/dist/chat/careful-sidecar.d.ts +15 -0
- package/dist/chat/careful-sidecar.d.ts.map +1 -0
- package/dist/chat/careful-sidecar.js +39 -0
- package/dist/chat/careful-sidecar.js.map +1 -0
- package/dist/chat/chat-session.d.ts +156 -0
- package/dist/chat/chat-session.d.ts.map +1 -0
- package/dist/chat/chat-session.js +570 -0
- package/dist/chat/chat-session.js.map +1 -0
- package/dist/chat/completion-tailer.d.ts +27 -0
- package/dist/chat/completion-tailer.d.ts.map +1 -0
- package/dist/chat/completion-tailer.js +187 -0
- package/dist/chat/completion-tailer.js.map +1 -0
- package/dist/chat/conversation-store.d.ts +22 -0
- package/dist/chat/conversation-store.d.ts.map +1 -0
- package/dist/chat/conversation-store.js +66 -0
- package/dist/chat/conversation-store.js.map +1 -0
- package/dist/chat/cursor-store.d.ts +23 -0
- package/dist/chat/cursor-store.d.ts.map +1 -0
- package/dist/chat/cursor-store.js +42 -0
- package/dist/chat/cursor-store.js.map +1 -0
- package/dist/chat/pid-sidecar.d.ts +22 -0
- package/dist/chat/pid-sidecar.d.ts.map +1 -0
- package/dist/chat/pid-sidecar.js +42 -0
- package/dist/chat/pid-sidecar.js.map +1 -0
- package/dist/chat/roster-reader.d.ts +16 -0
- package/dist/chat/roster-reader.d.ts.map +1 -0
- package/dist/chat/roster-reader.js +39 -0
- package/dist/chat/roster-reader.js.map +1 -0
- package/dist/chat/run-spawner.d.ts +71 -0
- package/dist/chat/run-spawner.d.ts.map +1 -0
- package/dist/chat/run-spawner.js +121 -0
- package/dist/chat/run-spawner.js.map +1 -0
- package/dist/chat/slash-commands.d.ts +40 -0
- package/dist/chat/slash-commands.d.ts.map +1 -0
- package/dist/chat/slash-commands.js +153 -0
- package/dist/chat/slash-commands.js.map +1 -0
- package/dist/chat/steer-cleanup.d.ts +12 -0
- package/dist/chat/steer-cleanup.d.ts.map +1 -0
- package/dist/chat/steer-cleanup.js +60 -0
- package/dist/chat/steer-cleanup.js.map +1 -0
- package/dist/chat/turn-classifier.d.ts +46 -0
- package/dist/chat/turn-classifier.d.ts.map +1 -0
- package/dist/chat/turn-classifier.js +157 -0
- package/dist/chat/turn-classifier.js.map +1 -0
- package/dist/cli/commands/blackboard.d.ts +33 -0
- package/dist/cli/commands/blackboard.d.ts.map +1 -0
- package/dist/cli/commands/blackboard.js +114 -0
- package/dist/cli/commands/blackboard.js.map +1 -0
- package/dist/cli/commands/calendar.d.ts +75 -0
- package/dist/cli/commands/calendar.d.ts.map +1 -0
- package/dist/cli/commands/calendar.js +203 -0
- package/dist/cli/commands/calendar.js.map +1 -0
- package/dist/cli/commands/chat.d.ts +13 -0
- package/dist/cli/commands/chat.d.ts.map +1 -0
- package/dist/cli/commands/chat.js +43 -0
- package/dist/cli/commands/chat.js.map +1 -0
- package/dist/cli/commands/do.d.ts +52 -0
- package/dist/cli/commands/do.d.ts.map +1 -0
- package/dist/cli/commands/do.js +216 -0
- package/dist/cli/commands/do.js.map +1 -0
- package/dist/cli/commands/evolve.d.ts +18 -0
- package/dist/cli/commands/evolve.d.ts.map +1 -0
- package/dist/cli/commands/evolve.js +72 -0
- package/dist/cli/commands/evolve.js.map +1 -0
- package/dist/cli/commands/facts.d.ts +15 -0
- package/dist/cli/commands/facts.d.ts.map +1 -0
- package/dist/cli/commands/facts.js +213 -0
- package/dist/cli/commands/facts.js.map +1 -0
- package/dist/cli/commands/hub.d.ts +29 -0
- package/dist/cli/commands/hub.d.ts.map +1 -0
- package/dist/cli/commands/hub.js +233 -0
- package/dist/cli/commands/hub.js.map +1 -0
- package/dist/cli/commands/medical.d.ts +49 -0
- package/dist/cli/commands/medical.d.ts.map +1 -0
- package/dist/cli/commands/medical.js +365 -0
- package/dist/cli/commands/medical.js.map +1 -0
- package/dist/cli/commands/memory.d.ts +2 -1
- package/dist/cli/commands/memory.d.ts.map +1 -1
- package/dist/cli/commands/memory.js +94 -7
- package/dist/cli/commands/memory.js.map +1 -1
- package/dist/cli/commands/plan.d.ts.map +1 -1
- package/dist/cli/commands/plan.js +29 -3
- package/dist/cli/commands/plan.js.map +1 -1
- package/dist/cli/commands/replay.d.ts +17 -0
- package/dist/cli/commands/replay.d.ts.map +1 -0
- package/dist/cli/commands/replay.js +261 -0
- package/dist/cli/commands/replay.js.map +1 -0
- package/dist/cli/commands/research.d.ts +41 -0
- package/dist/cli/commands/research.d.ts.map +1 -0
- package/dist/cli/commands/research.js +313 -0
- package/dist/cli/commands/research.js.map +1 -0
- package/dist/cli/commands/run.d.ts +9 -0
- package/dist/cli/commands/run.d.ts.map +1 -1
- package/dist/cli/commands/run.js +27 -1
- package/dist/cli/commands/run.js.map +1 -1
- package/dist/cli/commands/security-audit.d.ts +89 -0
- package/dist/cli/commands/security-audit.d.ts.map +1 -0
- package/dist/cli/commands/security-audit.js +238 -0
- package/dist/cli/commands/security-audit.js.map +1 -0
- package/dist/cli/commands/sprint.d.ts.map +1 -1
- package/dist/cli/commands/sprint.js +17 -3
- package/dist/cli/commands/sprint.js.map +1 -1
- package/dist/cli/commands/task.d.ts +64 -0
- package/dist/cli/commands/task.d.ts.map +1 -0
- package/dist/cli/commands/task.js +422 -0
- package/dist/cli/commands/task.js.map +1 -0
- package/dist/cli/commands/telegram.d.ts +10 -0
- package/dist/cli/commands/telegram.d.ts.map +1 -0
- package/dist/cli/commands/telegram.js +44 -0
- package/dist/cli/commands/telegram.js.map +1 -0
- package/dist/cli/commands/vault.d.ts +40 -0
- package/dist/cli/commands/vault.d.ts.map +1 -0
- package/dist/cli/commands/vault.js +122 -0
- package/dist/cli/commands/vault.js.map +1 -0
- package/dist/cli/index.js +45 -0
- package/dist/cli/index.js.map +1 -1
- package/dist/config/defaults.d.ts.map +1 -1
- package/dist/config/defaults.js +8 -0
- package/dist/config/defaults.js.map +1 -1
- package/dist/config/role-providers.d.ts +16 -1
- package/dist/config/role-providers.d.ts.map +1 -1
- package/dist/config/role-providers.js +14 -2
- package/dist/config/role-providers.js.map +1 -1
- package/dist/config/schema.d.ts +4050 -454
- package/dist/config/schema.d.ts.map +1 -1
- package/dist/config/schema.js +429 -1
- package/dist/config/schema.js.map +1 -1
- package/dist/contracts/eval-result.d.ts +84 -84
- package/dist/contracts/spec.d.ts +28 -28
- package/dist/contracts/sprint-contract.d.ts +4 -4
- package/dist/do-bridge/coding-promoter.d.ts +19 -0
- package/dist/do-bridge/coding-promoter.d.ts.map +1 -0
- package/dist/do-bridge/coding-promoter.js +43 -0
- package/dist/do-bridge/coding-promoter.js.map +1 -0
- package/dist/do-bridge/finding-port.d.ts +88 -0
- package/dist/do-bridge/finding-port.d.ts.map +1 -0
- package/dist/do-bridge/finding-port.js +95 -0
- package/dist/do-bridge/finding-port.js.map +1 -0
- package/dist/do-bridge/launcher.d.ts +55 -0
- package/dist/do-bridge/launcher.d.ts.map +1 -0
- package/dist/do-bridge/launcher.js +37 -0
- package/dist/do-bridge/launcher.js.map +1 -0
- package/dist/do-bridge/promote.d.ts +50 -0
- package/dist/do-bridge/promote.d.ts.map +1 -0
- package/dist/do-bridge/promote.js +116 -0
- package/dist/do-bridge/promote.js.map +1 -0
- package/dist/do-bridge/reconcile.d.ts +50 -0
- package/dist/do-bridge/reconcile.d.ts.map +1 -0
- package/dist/do-bridge/reconcile.js +70 -0
- package/dist/do-bridge/reconcile.js.map +1 -0
- package/dist/do-bridge/registry.d.ts +23 -0
- package/dist/do-bridge/registry.d.ts.map +1 -0
- package/dist/do-bridge/registry.js +42 -0
- package/dist/do-bridge/registry.js.map +1 -0
- package/dist/do-bridge/types.d.ts +50 -0
- package/dist/do-bridge/types.d.ts.map +1 -0
- package/dist/do-bridge/types.js +17 -0
- package/dist/do-bridge/types.js.map +1 -0
- package/dist/fleet/child-config.d.ts.map +1 -1
- package/dist/fleet/child-config.js +7 -0
- package/dist/fleet/child-config.js.map +1 -1
- package/dist/fleet/coordinator.d.ts +27 -1
- package/dist/fleet/coordinator.d.ts.map +1 -1
- package/dist/fleet/coordinator.js +70 -0
- package/dist/fleet/coordinator.js.map +1 -1
- package/dist/fleet/critic-deep.d.ts +61 -0
- package/dist/fleet/critic-deep.d.ts.map +1 -0
- package/dist/fleet/critic-deep.js +202 -0
- package/dist/fleet/critic-deep.js.map +1 -0
- package/dist/fleet/decomposer-deep-constants.d.ts +4 -0
- package/dist/fleet/decomposer-deep-constants.d.ts.map +1 -0
- package/dist/fleet/decomposer-deep-constants.js +14 -0
- package/dist/fleet/decomposer-deep-constants.js.map +1 -0
- package/dist/fleet/decomposer-deep-types.d.ts +8 -0
- package/dist/fleet/decomposer-deep-types.d.ts.map +1 -0
- package/dist/fleet/decomposer-deep-types.js +9 -0
- package/dist/fleet/decomposer-deep-types.js.map +1 -0
- package/dist/fleet/decomposer-deep.d.ts +44 -0
- package/dist/fleet/decomposer-deep.d.ts.map +1 -0
- package/dist/fleet/decomposer-deep.js +261 -0
- package/dist/fleet/decomposer-deep.js.map +1 -0
- package/dist/fleet/decomposer.d.ts +22 -0
- package/dist/fleet/decomposer.d.ts.map +1 -0
- package/dist/fleet/decomposer.js +144 -0
- package/dist/fleet/decomposer.js.map +1 -0
- package/dist/fleet/index.d.ts +102 -0
- package/dist/fleet/index.d.ts.map +1 -1
- package/dist/fleet/index.js +316 -9
- package/dist/fleet/index.js.map +1 -1
- package/dist/fleet/manifest-write.d.ts +30 -0
- package/dist/fleet/manifest-write.d.ts.map +1 -0
- package/dist/fleet/manifest-write.js +90 -0
- package/dist/fleet/manifest-write.js.map +1 -0
- package/dist/fleet/manifest.d.ts +32 -6
- package/dist/fleet/manifest.d.ts.map +1 -1
- package/dist/fleet/manifest.js +8 -0
- package/dist/fleet/manifest.js.map +1 -1
- package/dist/fleet/reporter.d.ts +4 -1
- package/dist/fleet/reporter.d.ts.map +1 -1
- package/dist/fleet/reporter.js +2 -1
- package/dist/fleet/reporter.js.map +1 -1
- package/dist/fleet/scaffolder.d.ts +5 -1
- package/dist/fleet/scaffolder.d.ts.map +1 -1
- package/dist/fleet/scaffolder.js +11 -2
- package/dist/fleet/scaffolder.js.map +1 -1
- package/dist/fleet/shared-blackboard.d.ts +51 -0
- package/dist/fleet/shared-blackboard.d.ts.map +1 -0
- package/dist/fleet/shared-blackboard.js +79 -0
- package/dist/fleet/shared-blackboard.js.map +1 -0
- package/dist/fleet/synthesis.d.ts +16 -0
- package/dist/fleet/synthesis.d.ts.map +1 -0
- package/dist/fleet/synthesis.js +22 -0
- package/dist/fleet/synthesis.js.map +1 -0
- package/dist/fleet/tier-policy.d.ts +18 -0
- package/dist/fleet/tier-policy.d.ts.map +1 -0
- package/dist/fleet/tier-policy.js +53 -0
- package/dist/fleet/tier-policy.js.map +1 -0
- package/dist/fleet/tool-role-guard.d.ts +24 -0
- package/dist/fleet/tool-role-guard.d.ts.map +1 -0
- package/dist/fleet/tool-role-guard.js +55 -0
- package/dist/fleet/tool-role-guard.js.map +1 -0
- package/dist/graph/client.d.ts.map +1 -1
- package/dist/graph/client.js +115 -23
- package/dist/graph/client.js.map +1 -1
- package/dist/graph/mcp-client.d.ts +1 -0
- package/dist/graph/mcp-client.d.ts.map +1 -1
- package/dist/graph/mcp-client.js +58 -7
- package/dist/graph/mcp-client.js.map +1 -1
- package/dist/hub/collector.d.ts +12 -0
- package/dist/hub/collector.d.ts.map +1 -0
- package/dist/hub/collector.js +36 -0
- package/dist/hub/collector.js.map +1 -0
- package/dist/hub/finding-source.d.ts +22 -0
- package/dist/hub/finding-source.d.ts.map +1 -0
- package/dist/hub/finding-source.js +41 -0
- package/dist/hub/finding-source.js.map +1 -0
- package/dist/hub/finding-store.d.ts +68 -0
- package/dist/hub/finding-store.d.ts.map +1 -0
- package/dist/hub/finding-store.js +122 -0
- package/dist/hub/finding-store.js.map +1 -0
- package/dist/hub/finding.d.ts +54 -0
- package/dist/hub/finding.d.ts.map +1 -0
- package/dist/hub/finding.js +24 -0
- package/dist/hub/finding.js.map +1 -0
- package/dist/hub/gmail-to-task.d.ts +69 -0
- package/dist/hub/gmail-to-task.d.ts.map +1 -0
- package/dist/hub/gmail-to-task.js +102 -0
- package/dist/hub/gmail-to-task.js.map +1 -0
- package/dist/hub/hub-config.d.ts +18 -0
- package/dist/hub/hub-config.d.ts.map +1 -0
- package/dist/hub/hub-config.js +40 -0
- package/dist/hub/hub-config.js.map +1 -0
- package/dist/hub/judge.d.ts +30 -0
- package/dist/hub/judge.d.ts.map +1 -0
- package/dist/hub/judge.js +177 -0
- package/dist/hub/judge.js.map +1 -0
- package/dist/hub/lenses.d.ts +60 -0
- package/dist/hub/lenses.d.ts.map +1 -0
- package/dist/hub/lenses.js +123 -0
- package/dist/hub/lenses.js.map +1 -0
- package/dist/hub/priority-md.d.ts +21 -0
- package/dist/hub/priority-md.d.ts.map +1 -0
- package/dist/hub/priority-md.js +64 -0
- package/dist/hub/priority-md.js.map +1 -0
- package/dist/hub/repo-resolver.d.ts +11 -0
- package/dist/hub/repo-resolver.d.ts.map +1 -0
- package/dist/hub/repo-resolver.js +39 -0
- package/dist/hub/repo-resolver.js.map +1 -0
- package/dist/hub/scope.d.ts +39 -0
- package/dist/hub/scope.d.ts.map +1 -0
- package/dist/hub/scope.js +62 -0
- package/dist/hub/scope.js.map +1 -0
- package/dist/hub/task-inbox.d.ts +16 -0
- package/dist/hub/task-inbox.d.ts.map +1 -0
- package/dist/hub/task-inbox.js +39 -0
- package/dist/hub/task-inbox.js.map +1 -0
- package/dist/incident/resolution-verify.d.ts +2 -2
- package/dist/incident/types.d.ts +8 -8
- package/dist/index.d.ts +2 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -1
- package/dist/index.js.map +1 -1
- package/dist/mcp/run-manager.d.ts +9 -1
- package/dist/mcp/run-manager.d.ts.map +1 -1
- package/dist/mcp/run-manager.js.map +1 -1
- package/dist/medical/adapters/apple-health.d.ts +32 -0
- package/dist/medical/adapters/apple-health.d.ts.map +1 -0
- package/dist/medical/adapters/apple-health.js +100 -0
- package/dist/medical/adapters/apple-health.js.map +1 -0
- package/dist/medical/analysis/cadence.d.ts +32 -0
- package/dist/medical/analysis/cadence.d.ts.map +1 -0
- package/dist/medical/analysis/cadence.js +72 -0
- package/dist/medical/analysis/cadence.js.map +1 -0
- package/dist/medical/analysis/cross-marker.d.ts +33 -0
- package/dist/medical/analysis/cross-marker.d.ts.map +1 -0
- package/dist/medical/analysis/cross-marker.js +79 -0
- package/dist/medical/analysis/cross-marker.js.map +1 -0
- package/dist/medical/analysis/finding-writer.d.ts +26 -0
- package/dist/medical/analysis/finding-writer.d.ts.map +1 -0
- package/dist/medical/analysis/finding-writer.js +60 -0
- package/dist/medical/analysis/finding-writer.js.map +1 -0
- package/dist/medical/analysis/finding.d.ts +63 -0
- package/dist/medical/analysis/finding.d.ts.map +1 -0
- package/dist/medical/analysis/finding.js +70 -0
- package/dist/medical/analysis/finding.js.map +1 -0
- package/dist/medical/analysis/review-pass.d.ts +76 -0
- package/dist/medical/analysis/review-pass.d.ts.map +1 -0
- package/dist/medical/analysis/review-pass.js +119 -0
- package/dist/medical/analysis/review-pass.js.map +1 -0
- package/dist/medical/analysis/trends.d.ts +36 -0
- package/dist/medical/analysis/trends.d.ts.map +1 -0
- package/dist/medical/analysis/trends.js +157 -0
- package/dist/medical/analysis/trends.js.map +1 -0
- package/dist/medical/audit.d.ts +31 -0
- package/dist/medical/audit.d.ts.map +1 -0
- package/dist/medical/audit.js +56 -0
- package/dist/medical/audit.js.map +1 -0
- package/dist/medical/consent.d.ts +37 -0
- package/dist/medical/consent.d.ts.map +1 -0
- package/dist/medical/consent.js +73 -0
- package/dist/medical/consent.js.map +1 -0
- package/dist/medical/disclaimer.d.ts +11 -0
- package/dist/medical/disclaimer.d.ts.map +1 -0
- package/dist/medical/disclaimer.js +21 -0
- package/dist/medical/disclaimer.js.map +1 -0
- package/dist/medical/egress.d.ts +30 -0
- package/dist/medical/egress.d.ts.map +1 -0
- package/dist/medical/egress.js +50 -0
- package/dist/medical/egress.js.map +1 -0
- package/dist/medical/engine.d.ts +73 -0
- package/dist/medical/engine.d.ts.map +1 -0
- package/dist/medical/engine.js +333 -0
- package/dist/medical/engine.js.map +1 -0
- package/dist/medical/guardrails.d.ts +47 -0
- package/dist/medical/guardrails.d.ts.map +1 -0
- package/dist/medical/guardrails.js +92 -0
- package/dist/medical/guardrails.js.map +1 -0
- package/dist/medical/health-store.d.ts +85 -0
- package/dist/medical/health-store.d.ts.map +1 -0
- package/dist/medical/health-store.js +214 -0
- package/dist/medical/health-store.js.map +1 -0
- package/dist/medical/inference.d.ts +22 -0
- package/dist/medical/inference.d.ts.map +1 -0
- package/dist/medical/inference.js +39 -0
- package/dist/medical/inference.js.map +1 -0
- package/dist/medical/ingestion.d.ts +33 -0
- package/dist/medical/ingestion.d.ts.map +1 -0
- package/dist/medical/ingestion.js +52 -0
- package/dist/medical/ingestion.js.map +1 -0
- package/dist/medical/lab-note.d.ts +72 -0
- package/dist/medical/lab-note.d.ts.map +1 -0
- package/dist/medical/lab-note.js +161 -0
- package/dist/medical/lab-note.js.map +1 -0
- package/dist/medical/lab-pdf-parser.d.ts +19 -0
- package/dist/medical/lab-pdf-parser.d.ts.map +1 -0
- package/dist/medical/lab-pdf-parser.js +57 -0
- package/dist/medical/lab-pdf-parser.js.map +1 -0
- package/dist/medical/lab-reindex.d.ts +24 -0
- package/dist/medical/lab-reindex.d.ts.map +1 -0
- package/dist/medical/lab-reindex.js +45 -0
- package/dist/medical/lab-reindex.js.map +1 -0
- package/dist/medical/lab-types.d.ts +75 -0
- package/dist/medical/lab-types.d.ts.map +1 -0
- package/dist/medical/lab-types.js +17 -0
- package/dist/medical/lab-types.js.map +1 -0
- package/dist/medical/numerics.d.ts +66 -0
- package/dist/medical/numerics.d.ts.map +1 -0
- package/dist/medical/numerics.js +216 -0
- package/dist/medical/numerics.js.map +1 -0
- package/dist/medical/profile.d.ts +96 -0
- package/dist/medical/profile.d.ts.map +1 -0
- package/dist/medical/profile.js +273 -0
- package/dist/medical/profile.js.map +1 -0
- package/dist/medical/recommend/context.d.ts +48 -0
- package/dist/medical/recommend/context.d.ts.map +1 -0
- package/dist/medical/recommend/context.js +109 -0
- package/dist/medical/recommend/context.js.map +1 -0
- package/dist/medical/recommend/judge-panel.d.ts +49 -0
- package/dist/medical/recommend/judge-panel.d.ts.map +1 -0
- package/dist/medical/recommend/judge-panel.js +164 -0
- package/dist/medical/recommend/judge-panel.js.map +1 -0
- package/dist/medical/recommend/lenses.d.ts +72 -0
- package/dist/medical/recommend/lenses.d.ts.map +1 -0
- package/dist/medical/recommend/lenses.js +220 -0
- package/dist/medical/recommend/lenses.js.map +1 -0
- package/dist/medical/recommend/recommend.d.ts +86 -0
- package/dist/medical/recommend/recommend.d.ts.map +1 -0
- package/dist/medical/recommend/recommend.js +211 -0
- package/dist/medical/recommend/recommend.js.map +1 -0
- package/dist/medical/recommend/types.d.ts +98 -0
- package/dist/medical/recommend/types.d.ts.map +1 -0
- package/dist/medical/recommend/types.js +20 -0
- package/dist/medical/recommend/types.js.map +1 -0
- package/dist/medical/recommend/urgency.d.ts +26 -0
- package/dist/medical/recommend/urgency.d.ts.map +1 -0
- package/dist/medical/recommend/urgency.js +124 -0
- package/dist/medical/recommend/urgency.js.map +1 -0
- package/dist/medical/red-flag.d.ts +42 -0
- package/dist/medical/red-flag.d.ts.map +1 -0
- package/dist/medical/red-flag.js +161 -0
- package/dist/medical/red-flag.js.map +1 -0
- package/dist/medical/refusal.d.ts +46 -0
- package/dist/medical/refusal.d.ts.map +1 -0
- package/dist/medical/refusal.js +131 -0
- package/dist/medical/refusal.js.map +1 -0
- package/dist/medical/research/online-research.d.ts +65 -0
- package/dist/medical/research/online-research.d.ts.map +1 -0
- package/dist/medical/research/online-research.js +101 -0
- package/dist/medical/research/online-research.js.map +1 -0
- package/dist/medical/research/research-note.d.ts +32 -0
- package/dist/medical/research/research-note.d.ts.map +1 -0
- package/dist/medical/research/research-note.js +55 -0
- package/dist/medical/research/research-note.js.map +1 -0
- package/dist/medical/retrieval/grounding-critic.d.ts +34 -0
- package/dist/medical/retrieval/grounding-critic.d.ts.map +1 -0
- package/dist/medical/retrieval/grounding-critic.js +153 -0
- package/dist/medical/retrieval/grounding-critic.js.map +1 -0
- package/dist/medical/retrieval/literature.d.ts +78 -0
- package/dist/medical/retrieval/literature.d.ts.map +1 -0
- package/dist/medical/retrieval/literature.js +292 -0
- package/dist/medical/retrieval/literature.js.map +1 -0
- package/dist/medical/retrieval/medline-source.d.ts +72 -0
- package/dist/medical/retrieval/medline-source.d.ts.map +1 -0
- package/dist/medical/retrieval/medline-source.js +120 -0
- package/dist/medical/retrieval/medline-source.js.map +1 -0
- package/dist/medical/supplements.d.ts +82 -0
- package/dist/medical/supplements.d.ts.map +1 -0
- package/dist/medical/supplements.js +173 -0
- package/dist/medical/supplements.js.map +1 -0
- package/dist/medical/team.d.ts +15 -0
- package/dist/medical/team.d.ts.map +1 -0
- package/dist/medical/team.js +44 -0
- package/dist/medical/team.js.map +1 -0
- package/dist/medical/types.d.ts +175 -0
- package/dist/medical/types.d.ts.map +1 -0
- package/dist/medical/types.js +8 -0
- package/dist/medical/types.js.map +1 -0
- package/dist/medical/whoop/whoop-client.d.ts +114 -0
- package/dist/medical/whoop/whoop-client.d.ts.map +1 -0
- package/dist/medical/whoop/whoop-client.js +226 -0
- package/dist/medical/whoop/whoop-client.js.map +1 -0
- package/dist/medical/whoop/whoop-sync.d.ts +25 -0
- package/dist/medical/whoop/whoop-sync.d.ts.map +1 -0
- package/dist/medical/whoop/whoop-sync.js +97 -0
- package/dist/medical/whoop/whoop-sync.js.map +1 -0
- package/dist/medical/whoop/whoop-token.d.ts +44 -0
- package/dist/medical/whoop/whoop-token.d.ts.map +1 -0
- package/dist/medical/whoop/whoop-token.js +66 -0
- package/dist/medical/whoop/whoop-token.js.map +1 -0
- package/dist/orchestrator/agentic-loop.d.ts +160 -1
- package/dist/orchestrator/agentic-loop.d.ts.map +1 -1
- package/dist/orchestrator/agentic-loop.js +350 -41
- package/dist/orchestrator/agentic-loop.js.map +1 -1
- package/dist/orchestrator/compaction.d.ts +47 -0
- package/dist/orchestrator/compaction.d.ts.map +1 -0
- package/dist/orchestrator/compaction.js +75 -0
- package/dist/orchestrator/compaction.js.map +1 -0
- package/dist/orchestrator/context-handoff.d.ts +60 -60
- package/dist/orchestrator/contract-materialization.d.ts +33 -0
- package/dist/orchestrator/contract-materialization.d.ts.map +1 -0
- package/dist/orchestrator/contract-materialization.js +113 -0
- package/dist/orchestrator/contract-materialization.js.map +1 -0
- package/dist/orchestrator/generator-agent.d.ts +19 -0
- package/dist/orchestrator/generator-agent.d.ts.map +1 -1
- package/dist/orchestrator/generator-agent.js +27 -1
- package/dist/orchestrator/generator-agent.js.map +1 -1
- package/dist/orchestrator/loop-events.d.ts +98 -0
- package/dist/orchestrator/loop-events.d.ts.map +1 -0
- package/dist/orchestrator/loop-events.js +2 -0
- package/dist/orchestrator/loop-events.js.map +1 -0
- package/dist/orchestrator/memory/distill.d.ts +4 -1
- package/dist/orchestrator/memory/distill.d.ts.map +1 -1
- package/dist/orchestrator/memory/distill.js +41 -1
- package/dist/orchestrator/memory/distill.js.map +1 -1
- package/dist/orchestrator/memory/fact-detector.d.ts +61 -0
- package/dist/orchestrator/memory/fact-detector.d.ts.map +1 -0
- package/dist/orchestrator/memory/fact-detector.js +153 -0
- package/dist/orchestrator/memory/fact-detector.js.map +1 -0
- package/dist/orchestrator/memory/fact-judge.d.ts +19 -0
- package/dist/orchestrator/memory/fact-judge.d.ts.map +1 -0
- package/dist/orchestrator/memory/fact-judge.js +121 -0
- package/dist/orchestrator/memory/fact-judge.js.map +1 -0
- package/dist/orchestrator/memory/fact-retrieve.d.ts +52 -0
- package/dist/orchestrator/memory/fact-retrieve.d.ts.map +1 -0
- package/dist/orchestrator/memory/fact-retrieve.js +117 -0
- package/dist/orchestrator/memory/fact-retrieve.js.map +1 -0
- package/dist/orchestrator/memory/hygiene.d.ts +66 -0
- package/dist/orchestrator/memory/hygiene.d.ts.map +1 -0
- package/dist/orchestrator/memory/hygiene.js +153 -0
- package/dist/orchestrator/memory/hygiene.js.map +1 -0
- package/dist/orchestrator/memory/reconcile.d.ts +47 -0
- package/dist/orchestrator/memory/reconcile.d.ts.map +1 -0
- package/dist/orchestrator/memory/reconcile.js +116 -0
- package/dist/orchestrator/memory/reconcile.js.map +1 -0
- package/dist/orchestrator/memory/retrieve.d.ts +5 -3
- package/dist/orchestrator/memory/retrieve.d.ts.map +1 -1
- package/dist/orchestrator/memory/retrieve.js +9 -6
- package/dist/orchestrator/memory/retrieve.js.map +1 -1
- package/dist/orchestrator/model-resolver.d.ts.map +1 -1
- package/dist/orchestrator/model-resolver.js +10 -6
- package/dist/orchestrator/model-resolver.js.map +1 -1
- package/dist/orchestrator/pipeline.d.ts +29 -4
- package/dist/orchestrator/pipeline.d.ts.map +1 -1
- package/dist/orchestrator/pipeline.js +165 -56
- package/dist/orchestrator/pipeline.js.map +1 -1
- package/dist/orchestrator/planner-agent.d.ts.map +1 -1
- package/dist/orchestrator/planner-agent.js +16 -1
- package/dist/orchestrator/planner-agent.js.map +1 -1
- package/dist/orchestrator/security-audit-types.d.ts +53 -0
- package/dist/orchestrator/security-audit-types.d.ts.map +1 -0
- package/dist/orchestrator/security-audit-types.js +10 -0
- package/dist/orchestrator/security-audit-types.js.map +1 -0
- package/dist/orchestrator/security-auditor-agent.d.ts +68 -0
- package/dist/orchestrator/security-auditor-agent.d.ts.map +1 -0
- package/dist/orchestrator/security-auditor-agent.js +482 -0
- package/dist/orchestrator/security-auditor-agent.js.map +1 -0
- package/dist/orchestrator/security-gate.d.ts +73 -0
- package/dist/orchestrator/security-gate.d.ts.map +1 -0
- package/dist/orchestrator/security-gate.js +174 -0
- package/dist/orchestrator/security-gate.js.map +1 -0
- package/dist/orchestrator/security-hub.d.ts +45 -0
- package/dist/orchestrator/security-hub.d.ts.map +1 -0
- package/dist/orchestrator/security-hub.js +147 -0
- package/dist/orchestrator/security-hub.js.map +1 -0
- package/dist/orchestrator/security-knowledge/benchmark/harness.d.ts +43 -0
- package/dist/orchestrator/security-knowledge/benchmark/harness.d.ts.map +1 -0
- package/dist/orchestrator/security-knowledge/benchmark/harness.js +13 -0
- package/dist/orchestrator/security-knowledge/benchmark/harness.js.map +1 -0
- package/dist/orchestrator/security-knowledge/diff-provider.d.ts +79 -0
- package/dist/orchestrator/security-knowledge/diff-provider.d.ts.map +1 -0
- package/dist/orchestrator/security-knowledge/diff-provider.js +320 -0
- package/dist/orchestrator/security-knowledge/diff-provider.js.map +1 -0
- package/dist/orchestrator/security-knowledge/index.d.ts +22 -0
- package/dist/orchestrator/security-knowledge/index.d.ts.map +1 -0
- package/dist/orchestrator/security-knowledge/index.js +66 -0
- package/dist/orchestrator/security-knowledge/index.js.map +1 -0
- package/dist/orchestrator/security-knowledge/parser.d.ts +9 -0
- package/dist/orchestrator/security-knowledge/parser.d.ts.map +1 -0
- package/dist/orchestrator/security-knowledge/parser.js +137 -0
- package/dist/orchestrator/security-knowledge/parser.js.map +1 -0
- package/dist/orchestrator/security-knowledge/registry.d.ts +25 -0
- package/dist/orchestrator/security-knowledge/registry.d.ts.map +1 -0
- package/dist/orchestrator/security-knowledge/registry.js +114 -0
- package/dist/orchestrator/security-knowledge/registry.js.map +1 -0
- package/dist/orchestrator/security-knowledge/resolver.d.ts +48 -0
- package/dist/orchestrator/security-knowledge/resolver.d.ts.map +1 -0
- package/dist/orchestrator/security-knowledge/resolver.js +63 -0
- package/dist/orchestrator/security-knowledge/resolver.js.map +1 -0
- package/dist/orchestrator/security-knowledge/selector.d.ts +18 -0
- package/dist/orchestrator/security-knowledge/selector.d.ts.map +1 -0
- package/dist/orchestrator/security-knowledge/selector.js +46 -0
- package/dist/orchestrator/security-knowledge/selector.js.map +1 -0
- package/dist/orchestrator/security-knowledge/signature.d.ts +37 -0
- package/dist/orchestrator/security-knowledge/signature.d.ts.map +1 -0
- package/dist/orchestrator/security-knowledge/signature.js +2 -0
- package/dist/orchestrator/security-knowledge/signature.js.map +1 -0
- package/dist/orchestrator/security-knowledge/supply-chain-inspector.d.ts +29 -0
- package/dist/orchestrator/security-knowledge/supply-chain-inspector.d.ts.map +1 -0
- package/dist/orchestrator/security-knowledge/supply-chain-inspector.js +211 -0
- package/dist/orchestrator/security-knowledge/supply-chain-inspector.js.map +1 -0
- package/dist/orchestrator/security-scanners.d.ts +126 -0
- package/dist/orchestrator/security-scanners.d.ts.map +1 -0
- package/dist/orchestrator/security-scanners.js +501 -0
- package/dist/orchestrator/security-scanners.js.map +1 -0
- package/dist/orchestrator/security-verifier-agent.d.ts +62 -0
- package/dist/orchestrator/security-verifier-agent.d.ts.map +1 -0
- package/dist/orchestrator/security-verifier-agent.js +230 -0
- package/dist/orchestrator/security-verifier-agent.js.map +1 -0
- package/dist/orchestrator/selfimprove/eval-guards.d.ts +51 -0
- package/dist/orchestrator/selfimprove/eval-guards.d.ts.map +1 -0
- package/dist/orchestrator/selfimprove/eval-guards.js +120 -0
- package/dist/orchestrator/selfimprove/eval-guards.js.map +1 -0
- package/dist/orchestrator/selfimprove/gepa.d.ts +74 -0
- package/dist/orchestrator/selfimprove/gepa.d.ts.map +1 -0
- package/dist/orchestrator/selfimprove/gepa.js +227 -0
- package/dist/orchestrator/selfimprove/gepa.js.map +1 -0
- package/dist/orchestrator/selfimprove/replay-harness.d.ts +65 -0
- package/dist/orchestrator/selfimprove/replay-harness.d.ts.map +1 -0
- package/dist/orchestrator/selfimprove/replay-harness.js +134 -0
- package/dist/orchestrator/selfimprove/replay-harness.js.map +1 -0
- package/dist/orchestrator/selfimprove/replay-store.d.ts +45 -0
- package/dist/orchestrator/selfimprove/replay-store.d.ts.map +1 -0
- package/dist/orchestrator/selfimprove/replay-store.js +119 -0
- package/dist/orchestrator/selfimprove/replay-store.js.map +1 -0
- package/dist/orchestrator/selfimprove/replay-types.d.ts +32 -0
- package/dist/orchestrator/selfimprove/replay-types.d.ts.map +1 -0
- package/dist/orchestrator/selfimprove/replay-types.js +15 -0
- package/dist/orchestrator/selfimprove/replay-types.js.map +1 -0
- package/dist/orchestrator/session-store.d.ts +95 -0
- package/dist/orchestrator/session-store.d.ts.map +1 -0
- package/dist/orchestrator/session-store.js +186 -0
- package/dist/orchestrator/session-store.js.map +1 -0
- package/dist/orchestrator/stack-knowledge.d.ts +17 -0
- package/dist/orchestrator/stack-knowledge.d.ts.map +1 -0
- package/dist/orchestrator/stack-knowledge.js +35 -0
- package/dist/orchestrator/stack-knowledge.js.map +1 -0
- package/dist/orchestrator/subagents.d.ts +62 -0
- package/dist/orchestrator/subagents.d.ts.map +1 -0
- package/dist/orchestrator/subagents.js +143 -0
- package/dist/orchestrator/subagents.js.map +1 -0
- package/dist/orchestrator/tools/executor.d.ts +68 -0
- package/dist/orchestrator/tools/executor.d.ts.map +1 -0
- package/dist/orchestrator/tools/executor.js +104 -0
- package/dist/orchestrator/tools/executor.js.map +1 -0
- package/dist/orchestrator/tools/mcp-bridge.d.ts +76 -0
- package/dist/orchestrator/tools/mcp-bridge.d.ts.map +1 -0
- package/dist/orchestrator/tools/mcp-bridge.js +154 -0
- package/dist/orchestrator/tools/mcp-bridge.js.map +1 -0
- package/dist/orchestrator/tools/schemas.d.ts.map +1 -1
- package/dist/orchestrator/tools/schemas.js +3 -0
- package/dist/orchestrator/tools/schemas.js.map +1 -1
- package/dist/orchestrator/workflow/budget.d.ts +24 -2
- package/dist/orchestrator/workflow/budget.d.ts.map +1 -1
- package/dist/orchestrator/workflow/budget.js +39 -1
- package/dist/orchestrator/workflow/budget.js.map +1 -1
- package/dist/orchestrator/workflow/engine.d.ts +4 -2
- package/dist/orchestrator/workflow/engine.d.ts.map +1 -1
- package/dist/orchestrator/workflow/selector.d.ts +18 -0
- package/dist/orchestrator/workflow/selector.d.ts.map +1 -1
- package/dist/orchestrator/workflow/selector.js +51 -0
- package/dist/orchestrator/workflow/selector.js.map +1 -1
- package/dist/orchestrator/workflow/ts-engine.d.ts +3 -1
- package/dist/orchestrator/workflow/ts-engine.d.ts.map +1 -1
- package/dist/orchestrator/workflow/ts-engine.js +2 -2
- package/dist/orchestrator/workflow/ts-engine.js.map +1 -1
- package/dist/orchestrator/workflow/workflow-engine.d.ts +3 -1
- package/dist/orchestrator/workflow/workflow-engine.d.ts.map +1 -1
- package/dist/orchestrator/workflow/workflow-engine.js +3 -3
- package/dist/orchestrator/workflow/workflow-engine.js.map +1 -1
- package/dist/providers/anthropic.d.ts.map +1 -1
- package/dist/providers/anthropic.js +116 -26
- package/dist/providers/anthropic.js.map +1 -1
- package/dist/providers/claude-code.d.ts.map +1 -1
- package/dist/providers/claude-code.js +17 -0
- package/dist/providers/claude-code.js.map +1 -1
- package/dist/providers/cost-meter.d.ts +52 -0
- package/dist/providers/cost-meter.d.ts.map +1 -0
- package/dist/providers/cost-meter.js +81 -0
- package/dist/providers/cost-meter.js.map +1 -0
- package/dist/providers/factory.d.ts +6 -1
- package/dist/providers/factory.d.ts.map +1 -1
- package/dist/providers/factory.js +24 -5
- package/dist/providers/factory.js.map +1 -1
- package/dist/providers/google.d.ts.map +1 -1
- package/dist/providers/google.js +29 -0
- package/dist/providers/google.js.map +1 -1
- package/dist/providers/grounded-search.d.ts +128 -0
- package/dist/providers/grounded-search.d.ts.map +1 -0
- package/dist/providers/grounded-search.js +160 -0
- package/dist/providers/grounded-search.js.map +1 -0
- package/dist/providers/openai-compat.d.ts +15 -1
- package/dist/providers/openai-compat.d.ts.map +1 -1
- package/dist/providers/openai-compat.js +24 -0
- package/dist/providers/openai-compat.js.map +1 -1
- package/dist/providers/openai.d.ts +7 -0
- package/dist/providers/openai.d.ts.map +1 -1
- package/dist/providers/openai.js +95 -4
- package/dist/providers/openai.js.map +1 -1
- package/dist/providers/types.d.ts +88 -0
- package/dist/providers/types.d.ts.map +1 -1
- package/dist/research/cadence.d.ts +33 -0
- package/dist/research/cadence.d.ts.map +1 -0
- package/dist/research/cadence.js +55 -0
- package/dist/research/cadence.js.map +1 -0
- package/dist/research/digest.d.ts +80 -0
- package/dist/research/digest.d.ts.map +1 -0
- package/dist/research/digest.js +119 -0
- package/dist/research/digest.js.map +1 -0
- package/dist/research/egress.d.ts +28 -0
- package/dist/research/egress.d.ts.map +1 -0
- package/dist/research/egress.js +41 -0
- package/dist/research/egress.js.map +1 -0
- package/dist/research/job-store.d.ts +30 -0
- package/dist/research/job-store.d.ts.map +1 -0
- package/dist/research/job-store.js +100 -0
- package/dist/research/job-store.js.map +1 -0
- package/dist/research/model-diversity.d.ts +27 -0
- package/dist/research/model-diversity.d.ts.map +1 -0
- package/dist/research/model-diversity.js +52 -0
- package/dist/research/model-diversity.js.map +1 -0
- package/dist/research/note-writer.d.ts +36 -0
- package/dist/research/note-writer.d.ts.map +1 -0
- package/dist/research/note-writer.js +53 -0
- package/dist/research/note-writer.js.map +1 -0
- package/dist/research/online-retrieval.d.ts +27 -0
- package/dist/research/online-retrieval.d.ts.map +1 -0
- package/dist/research/online-retrieval.js +22 -0
- package/dist/research/online-retrieval.js.map +1 -0
- package/dist/research/runner.d.ts +80 -0
- package/dist/research/runner.d.ts.map +1 -0
- package/dist/research/runner.js +115 -0
- package/dist/research/runner.js.map +1 -0
- package/dist/research/scheduler.d.ts +61 -0
- package/dist/research/scheduler.d.ts.map +1 -0
- package/dist/research/scheduler.js +58 -0
- package/dist/research/scheduler.js.map +1 -0
- package/dist/research/types.d.ts +81 -0
- package/dist/research/types.d.ts.map +1 -0
- package/dist/research/types.js +57 -0
- package/dist/research/types.js.map +1 -0
- package/dist/seo/adapters/http.d.ts +43 -0
- package/dist/seo/adapters/http.d.ts.map +1 -0
- package/dist/seo/adapters/http.js +35 -0
- package/dist/seo/adapters/http.js.map +1 -0
- package/dist/seo/ai-visibility-provider.d.ts +171 -0
- package/dist/seo/ai-visibility-provider.d.ts.map +1 -0
- package/dist/seo/ai-visibility-provider.js +165 -0
- package/dist/seo/ai-visibility-provider.js.map +1 -0
- package/dist/seo/ai-visibility-scorer.d.ts +43 -0
- package/dist/seo/ai-visibility-scorer.d.ts.map +1 -0
- package/dist/seo/ai-visibility-scorer.js +102 -0
- package/dist/seo/ai-visibility-scorer.js.map +1 -0
- package/dist/seo/analyzer.d.ts +58 -0
- package/dist/seo/analyzer.d.ts.map +1 -0
- package/dist/seo/analyzer.js +265 -0
- package/dist/seo/analyzer.js.map +1 -0
- package/dist/seo/benchmark/harness.d.ts +56 -0
- package/dist/seo/benchmark/harness.d.ts.map +1 -0
- package/dist/seo/benchmark/harness.js +172 -0
- package/dist/seo/benchmark/harness.js.map +1 -0
- package/dist/seo/builder/approved-finding.d.ts +115 -0
- package/dist/seo/builder/approved-finding.d.ts.map +1 -0
- package/dist/seo/builder/approved-finding.js +145 -0
- package/dist/seo/builder/approved-finding.js.map +1 -0
- package/dist/seo/builder/build-runner.d.ts +41 -0
- package/dist/seo/builder/build-runner.d.ts.map +1 -0
- package/dist/seo/builder/build-runner.js +156 -0
- package/dist/seo/builder/build-runner.js.map +1 -0
- package/dist/seo/builder/draft-generators.d.ts +32 -0
- package/dist/seo/builder/draft-generators.d.ts.map +1 -0
- package/dist/seo/builder/draft-generators.js +31 -0
- package/dist/seo/builder/draft-generators.js.map +1 -0
- package/dist/seo/builder/draft-store.d.ts +30 -0
- package/dist/seo/builder/draft-store.d.ts.map +1 -0
- package/dist/seo/builder/draft-store.js +76 -0
- package/dist/seo/builder/draft-store.js.map +1 -0
- package/dist/seo/builder/draft-types.d.ts +36 -0
- package/dist/seo/builder/draft-types.d.ts.map +1 -0
- package/dist/seo/builder/draft-types.js +14 -0
- package/dist/seo/builder/draft-types.js.map +1 -0
- package/dist/seo/builder/hub-approved-source.d.ts +11 -0
- package/dist/seo/builder/hub-approved-source.d.ts.map +1 -0
- package/dist/seo/builder/hub-approved-source.js +48 -0
- package/dist/seo/builder/hub-approved-source.js.map +1 -0
- package/dist/seo/builder/seo-builder.d.ts +72 -0
- package/dist/seo/builder/seo-builder.d.ts.map +1 -0
- package/dist/seo/builder/seo-builder.js +72 -0
- package/dist/seo/builder/seo-builder.js.map +1 -0
- package/dist/seo/citation-gate.d.ts +36 -0
- package/dist/seo/citation-gate.d.ts.map +1 -0
- package/dist/seo/citation-gate.js +59 -0
- package/dist/seo/citation-gate.js.map +1 -0
- package/dist/seo/command.d.ts +11 -0
- package/dist/seo/command.d.ts.map +1 -0
- package/dist/seo/command.js +90 -0
- package/dist/seo/command.js.map +1 -0
- package/dist/seo/content-sanitizer.d.ts +56 -0
- package/dist/seo/content-sanitizer.d.ts.map +1 -0
- package/dist/seo/content-sanitizer.js +55 -0
- package/dist/seo/content-sanitizer.js.map +1 -0
- package/dist/seo/crawl-engine.d.ts +35 -0
- package/dist/seo/crawl-engine.d.ts.map +1 -0
- package/dist/seo/crawl-engine.js +2 -0
- package/dist/seo/crawl-engine.js.map +1 -0
- package/dist/seo/data-source.d.ts +156 -0
- package/dist/seo/data-source.d.ts.map +1 -0
- package/dist/seo/data-source.js +2 -0
- package/dist/seo/data-source.js.map +1 -0
- package/dist/seo/egress.d.ts +39 -0
- package/dist/seo/egress.d.ts.map +1 -0
- package/dist/seo/egress.js +64 -0
- package/dist/seo/egress.js.map +1 -0
- package/dist/seo/hub-emitter.d.ts +28 -0
- package/dist/seo/hub-emitter.d.ts.map +1 -0
- package/dist/seo/hub-emitter.js +95 -0
- package/dist/seo/hub-emitter.js.map +1 -0
- package/dist/seo/index.d.ts +42 -0
- package/dist/seo/index.d.ts.map +1 -0
- package/dist/seo/index.js +19 -0
- package/dist/seo/index.js.map +1 -0
- package/dist/seo/never-encode-filter.d.ts +45 -0
- package/dist/seo/never-encode-filter.d.ts.map +1 -0
- package/dist/seo/never-encode-filter.js +51 -0
- package/dist/seo/never-encode-filter.js.map +1 -0
- package/dist/seo/parser.d.ts +46 -0
- package/dist/seo/parser.d.ts.map +1 -0
- package/dist/seo/parser.js +113 -0
- package/dist/seo/parser.js.map +1 -0
- package/dist/seo/playbook-index.d.ts +19 -0
- package/dist/seo/playbook-index.d.ts.map +1 -0
- package/dist/seo/playbook-index.js +74 -0
- package/dist/seo/playbook-index.js.map +1 -0
- package/dist/seo/quota-governor.d.ts +100 -0
- package/dist/seo/quota-governor.d.ts.map +1 -0
- package/dist/seo/quota-governor.js +199 -0
- package/dist/seo/quota-governor.js.map +1 -0
- package/dist/seo/quota-ledger.d.ts +50 -0
- package/dist/seo/quota-ledger.d.ts.map +1 -0
- package/dist/seo/quota-ledger.js +95 -0
- package/dist/seo/quota-ledger.js.map +1 -0
- package/dist/seo/report-store.d.ts +30 -0
- package/dist/seo/report-store.d.ts.map +1 -0
- package/dist/seo/report-store.js +94 -0
- package/dist/seo/report-store.js.map +1 -0
- package/dist/seo/retriever.d.ts +34 -0
- package/dist/seo/retriever.d.ts.map +1 -0
- package/dist/seo/retriever.js +95 -0
- package/dist/seo/retriever.js.map +1 -0
- package/dist/seo/runner.d.ts +108 -0
- package/dist/seo/runner.d.ts.map +1 -0
- package/dist/seo/runner.js +512 -0
- package/dist/seo/runner.js.map +1 -0
- package/dist/seo/scrape-throttle.d.ts +84 -0
- package/dist/seo/scrape-throttle.d.ts.map +1 -0
- package/dist/seo/scrape-throttle.js +149 -0
- package/dist/seo/scrape-throttle.js.map +1 -0
- package/dist/seo/serp-provider.d.ts +52 -0
- package/dist/seo/serp-provider.d.ts.map +1 -0
- package/dist/seo/serp-provider.js +17 -0
- package/dist/seo/serp-provider.js.map +1 -0
- package/dist/seo/sources/ai-visibility-adapter.d.ts +87 -0
- package/dist/seo/sources/ai-visibility-adapter.d.ts.map +1 -0
- package/dist/seo/sources/ai-visibility-adapter.js +85 -0
- package/dist/seo/sources/ai-visibility-adapter.js.map +1 -0
- package/dist/seo/sources/api-spine-provider.d.ts +66 -0
- package/dist/seo/sources/api-spine-provider.d.ts.map +1 -0
- package/dist/seo/sources/api-spine-provider.js +68 -0
- package/dist/seo/sources/api-spine-provider.js.map +1 -0
- package/dist/seo/sources/citation-verifier.d.ts +95 -0
- package/dist/seo/sources/citation-verifier.d.ts.map +1 -0
- package/dist/seo/sources/citation-verifier.js +106 -0
- package/dist/seo/sources/citation-verifier.js.map +1 -0
- package/dist/seo/sources/crawl-source.d.ts +62 -0
- package/dist/seo/sources/crawl-source.d.ts.map +1 -0
- package/dist/seo/sources/crawl-source.js +87 -0
- package/dist/seo/sources/crawl-source.js.map +1 -0
- package/dist/seo/sources/damcrawler-crawl-engine.d.ts +151 -0
- package/dist/seo/sources/damcrawler-crawl-engine.d.ts.map +1 -0
- package/dist/seo/sources/damcrawler-crawl-engine.js +154 -0
- package/dist/seo/sources/damcrawler-crawl-engine.js.map +1 -0
- package/dist/seo/sources/damcrawler-serp-provider.d.ts +75 -0
- package/dist/seo/sources/damcrawler-serp-provider.d.ts.map +1 -0
- package/dist/seo/sources/damcrawler-serp-provider.js +60 -0
- package/dist/seo/sources/damcrawler-serp-provider.js.map +1 -0
- package/dist/seo/sources/dataforseo-adapter.d.ts +46 -0
- package/dist/seo/sources/dataforseo-adapter.d.ts.map +1 -0
- package/dist/seo/sources/dataforseo-adapter.js +335 -0
- package/dist/seo/sources/dataforseo-adapter.js.map +1 -0
- package/dist/seo/sources/dataforseo-serp-provider.d.ts +30 -0
- package/dist/seo/sources/dataforseo-serp-provider.d.ts.map +1 -0
- package/dist/seo/sources/dataforseo-serp-provider.js +20 -0
- package/dist/seo/sources/dataforseo-serp-provider.js.map +1 -0
- package/dist/seo/sources/engine-scrape-parser-chatgpt.d.ts +62 -0
- package/dist/seo/sources/engine-scrape-parser-chatgpt.d.ts.map +1 -0
- package/dist/seo/sources/engine-scrape-parser-chatgpt.js +72 -0
- package/dist/seo/sources/engine-scrape-parser-chatgpt.js.map +1 -0
- package/dist/seo/sources/engine-scrape-parser-perplexity.d.ts +10 -0
- package/dist/seo/sources/engine-scrape-parser-perplexity.d.ts.map +1 -0
- package/dist/seo/sources/engine-scrape-parser-perplexity.js +72 -0
- package/dist/seo/sources/engine-scrape-parser-perplexity.js.map +1 -0
- package/dist/seo/sources/gsc-adapter.d.ts +64 -0
- package/dist/seo/sources/gsc-adapter.d.ts.map +1 -0
- package/dist/seo/sources/gsc-adapter.js +221 -0
- package/dist/seo/sources/gsc-adapter.js.map +1 -0
- package/dist/seo/sources/local-export.d.ts +53 -0
- package/dist/seo/sources/local-export.d.ts.map +1 -0
- package/dist/seo/sources/local-export.js +307 -0
- package/dist/seo/sources/local-export.js.map +1 -0
- package/dist/seo/sources/mention-citation-extractor.d.ts +136 -0
- package/dist/seo/sources/mention-citation-extractor.d.ts.map +1 -0
- package/dist/seo/sources/mention-citation-extractor.js +272 -0
- package/dist/seo/sources/mention-citation-extractor.js.map +1 -0
- package/dist/seo/sources/scrape-arm-provider.d.ts +109 -0
- package/dist/seo/sources/scrape-arm-provider.d.ts.map +1 -0
- package/dist/seo/sources/scrape-arm-provider.js +129 -0
- package/dist/seo/sources/scrape-arm-provider.js.map +1 -0
- package/dist/seo/tracked-prompt-store.d.ts +33 -0
- package/dist/seo/tracked-prompt-store.d.ts.map +1 -0
- package/dist/seo/tracked-prompt-store.js +68 -0
- package/dist/seo/tracked-prompt-store.js.map +1 -0
- package/dist/seo/types.d.ts +128 -0
- package/dist/seo/types.d.ts.map +1 -0
- package/dist/seo/types.js +14 -0
- package/dist/seo/types.js.map +1 -0
- package/dist/seo/verifier.d.ts +34 -0
- package/dist/seo/verifier.d.ts.map +1 -0
- package/dist/seo/verifier.js +204 -0
- package/dist/seo/verifier.js.map +1 -0
- package/dist/seo/workflow-capabilities.d.ts +26 -0
- package/dist/seo/workflow-capabilities.d.ts.map +1 -0
- package/dist/seo/workflow-capabilities.js +12 -0
- package/dist/seo/workflow-capabilities.js.map +1 -0
- package/dist/state/facts.d.ts +114 -0
- package/dist/state/facts.d.ts.map +1 -0
- package/dist/state/facts.js +218 -0
- package/dist/state/facts.js.map +1 -0
- package/dist/state/guidance.d.ts +37 -0
- package/dist/state/guidance.d.ts.map +1 -0
- package/dist/state/guidance.js +144 -0
- package/dist/state/guidance.js.map +1 -0
- package/dist/state/history.d.ts +2 -2
- package/dist/state/index.d.ts +2 -2
- package/dist/state/index.d.ts.map +1 -1
- package/dist/state/index.js +2 -2
- package/dist/state/index.js.map +1 -1
- package/dist/state/memory.d.ts +43 -11
- package/dist/state/memory.d.ts.map +1 -1
- package/dist/state/memory.js +93 -15
- package/dist/state/memory.js.map +1 -1
- package/dist/state/outline-state.d.ts +0 -12
- package/dist/state/outline-state.d.ts.map +1 -1
- package/dist/state/outline-state.js +1 -18
- package/dist/state/outline-state.js.map +1 -1
- package/dist/state/pause.d.ts +47 -0
- package/dist/state/pause.d.ts.map +1 -0
- package/dist/state/pause.js +146 -0
- package/dist/state/pause.js.map +1 -0
- package/dist/state/security-audit-state.d.ts +20 -0
- package/dist/state/security-audit-state.d.ts.map +1 -0
- package/dist/state/security-audit-state.js +59 -0
- package/dist/state/security-audit-state.js.map +1 -0
- package/dist/state/sprint-state.d.ts +8 -0
- package/dist/state/sprint-state.d.ts.map +1 -1
- package/dist/state/sprint-state.js +32 -1
- package/dist/state/sprint-state.js.map +1 -1
- package/dist/teams/registry.d.ts +16 -0
- package/dist/teams/registry.d.ts.map +1 -0
- package/dist/teams/registry.js +70 -0
- package/dist/teams/registry.js.map +1 -0
- package/dist/teams/types.d.ts +25 -0
- package/dist/teams/types.d.ts.map +1 -0
- package/dist/teams/types.js +2 -0
- package/dist/teams/types.js.map +1 -0
- package/dist/telegram/bot.d.ts +137 -0
- package/dist/telegram/bot.d.ts.map +1 -0
- package/dist/telegram/bot.js +323 -0
- package/dist/telegram/bot.js.map +1 -0
- package/dist/telegram/digest.d.ts +19 -0
- package/dist/telegram/digest.d.ts.map +1 -0
- package/dist/telegram/digest.js +23 -0
- package/dist/telegram/digest.js.map +1 -0
- package/dist/telegram/fleet-view.d.ts +38 -0
- package/dist/telegram/fleet-view.d.ts.map +1 -0
- package/dist/telegram/fleet-view.js +98 -0
- package/dist/telegram/fleet-view.js.map +1 -0
- package/dist/telegram/handlers/approvals.d.ts +61 -0
- package/dist/telegram/handlers/approvals.d.ts.map +1 -0
- package/dist/telegram/handlers/approvals.js +122 -0
- package/dist/telegram/handlers/approvals.js.map +1 -0
- package/dist/telegram/handlers/capture.d.ts +43 -0
- package/dist/telegram/handlers/capture.d.ts.map +1 -0
- package/dist/telegram/handlers/capture.js +51 -0
- package/dist/telegram/handlers/capture.js.map +1 -0
- package/dist/telegram/handlers/prioritize.d.ts +50 -0
- package/dist/telegram/handlers/prioritize.d.ts.map +1 -0
- package/dist/telegram/handlers/prioritize.js +99 -0
- package/dist/telegram/handlers/prioritize.js.map +1 -0
- package/dist/telegram/handlers/upload.d.ts +105 -0
- package/dist/telegram/handlers/upload.d.ts.map +1 -0
- package/dist/telegram/handlers/upload.js +149 -0
- package/dist/telegram/handlers/upload.js.map +1 -0
- package/dist/telegram/keyboard.d.ts +48 -0
- package/dist/telegram/keyboard.d.ts.map +1 -0
- package/dist/telegram/keyboard.js +81 -0
- package/dist/telegram/keyboard.js.map +1 -0
- package/dist/telegram/outbound.d.ts +77 -0
- package/dist/telegram/outbound.d.ts.map +1 -0
- package/dist/telegram/outbound.js +45 -0
- package/dist/telegram/outbound.js.map +1 -0
- package/dist/telegram/router.d.ts +46 -0
- package/dist/telegram/router.d.ts.map +1 -0
- package/dist/telegram/router.js +63 -0
- package/dist/telegram/router.js.map +1 -0
- package/dist/telegram/streaming.d.ts +36 -0
- package/dist/telegram/streaming.d.ts.map +1 -0
- package/dist/telegram/streaming.js +55 -0
- package/dist/telegram/streaming.js.map +1 -0
- package/dist/telegram/whitelist.d.ts +20 -0
- package/dist/telegram/whitelist.d.ts.map +1 -0
- package/dist/telegram/whitelist.js +34 -0
- package/dist/telegram/whitelist.js.map +1 -0
- package/dist/utils/git.d.ts +0 -6
- package/dist/utils/git.d.ts.map +1 -1
- package/dist/utils/git.js +0 -19
- package/dist/utils/git.js.map +1 -1
- package/dist/utils/index.d.ts +1 -1
- package/dist/utils/index.d.ts.map +1 -1
- package/dist/utils/index.js +1 -1
- package/dist/utils/index.js.map +1 -1
- package/dist/vault/conventions.d.ts +23 -0
- package/dist/vault/conventions.d.ts.map +1 -0
- package/dist/vault/conventions.js +22 -0
- package/dist/vault/conventions.js.map +1 -0
- package/dist/vault/frontmatter.d.ts +47 -0
- package/dist/vault/frontmatter.d.ts.map +1 -0
- package/dist/vault/frontmatter.js +149 -0
- package/dist/vault/frontmatter.js.map +1 -0
- package/dist/vault/index-map.d.ts +35 -0
- package/dist/vault/index-map.d.ts.map +1 -0
- package/dist/vault/index-map.js +67 -0
- package/dist/vault/index-map.js.map +1 -0
- package/dist/vault/mcp-adapter.d.ts +96 -0
- package/dist/vault/mcp-adapter.d.ts.map +1 -0
- package/dist/vault/mcp-adapter.js +176 -0
- package/dist/vault/mcp-adapter.js.map +1 -0
- package/dist/vault/note-io.d.ts +29 -0
- package/dist/vault/note-io.d.ts.map +1 -0
- package/dist/vault/note-io.js +44 -0
- package/dist/vault/note-io.js.map +1 -0
- package/dist/vault/profile.d.ts +35 -0
- package/dist/vault/profile.d.ts.map +1 -0
- package/dist/vault/profile.js +50 -0
- package/dist/vault/profile.js.map +1 -0
- package/dist/vault/reindex.d.ts +55 -0
- package/dist/vault/reindex.d.ts.map +1 -0
- package/dist/vault/reindex.js +69 -0
- package/dist/vault/reindex.js.map +1 -0
- package/dist/vault/types.d.ts +25 -0
- package/dist/vault/types.d.ts.map +1 -0
- package/dist/vault/types.js +9 -0
- package/dist/vault/types.js.map +1 -0
- package/package.json +22 -4
- package/scripts/sync-targets.json +2 -1
- package/skills/bober.design/SKILL.md +190 -0
- package/skills/bober.design/references/1-anti-slop.md +102 -0
- package/skills/bober.design/references/2-design-brief.md +84 -0
- package/skills/bober.design/references/3-critique-rubric.md +62 -0
- package/skills/bober.design/references/4-copy-guide.md +43 -0
- package/skills/bober.plan/SKILL.md +15 -1
- package/skills/bober.run/SKILL.md +7 -4
- package/skills/bober.security-anchor/SKILL.md +172 -0
- package/skills/bober.security-audit/SKILL.md +288 -0
- package/skills/bober.security-dex-backend/SKILL.md +306 -0
- package/skills/bober.security-generic/SKILL.md +295 -0
- package/skills/bober.security-igaming/SKILL.md +290 -0
- package/skills/bober.security-node/SKILL.md +267 -0
- package/skills/bober.security-payments/SKILL.md +249 -0
- package/skills/bober.security-react/SKILL.md +194 -0
- package/skills/bober.security-solidity/SKILL.md +306 -0
- package/skills/bober.seo/SKILL.md +132 -0
- package/skills/bober.seo-ai-visibility/SKILL.md +110 -0
- package/skills/bober.seo-content-decay/SKILL.md +99 -0
- package/skills/bober.seo-generic/SKILL.md +173 -0
- package/skills/bober.seo-internal-linking/SKILL.md +87 -0
- package/skills/bober.seo-parasite-watch/SKILL.md +121 -0
- package/skills/bober.seo-rank-track/SKILL.md +98 -0
- package/skills/bober.seo-schema-audit/SKILL.md +97 -0
- package/skills/bober.seo-technical-audit/SKILL.md +113 -0
- package/skills/bober.seo-topical-map/SKILL.md +100 -0
- package/skills/bober.seo-verticals/SKILL.md +133 -0
- package/skills/bober.using-bober/SKILL.md +1 -0
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: bober.seo-technical-audit
|
|
3
|
+
description: "Per-workflow SEO signature library for the technical-audit workflow. A data file of discrete, cited SEO tactics read by SeoPlaybookParser (src/seo/parser.ts), not a workflow skill. Encodes leak-grounded ranking-mechanics signals (NavBoost click quality, contentEffort, hostAge sandbox, date consistency, named demotions) and GSC URL Inspection health-check practice for the technical-audit workflow."
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# bober.seo-technical-audit — Technical Audit Signature Library
|
|
7
|
+
|
|
8
|
+
This skill is a **signature-library** file for the `technical-audit` workflow, not a
|
|
9
|
+
workflow skill in its own right. It is read (as raw markdown text) by
|
|
10
|
+
`SeoPlaybookParser.parse()` (`src/seo/parser.ts`) and turned into typed
|
|
11
|
+
`SeoSignature[]` records consumed by the SEO agent team's retriever
|
|
12
|
+
(`SeoPlaybookRetriever`). It follows the identical block format defined and
|
|
13
|
+
documented in `skills/bober.seo-generic/SKILL.md` ("Signature Block Format") --
|
|
14
|
+
the two files are one executable spec; a block missing `Title` or
|
|
15
|
+
`PrimarySourceUrl`, or tagged `PolicyClass: never-encode`, is DROPPED by the
|
|
16
|
+
parser at load time -- see `.bober/research/research-20260715-ultimate-seo-agents-skills-research.md`
|
|
17
|
+
for the underlying evidence.
|
|
18
|
+
|
|
19
|
+
The signatures below encode the leaked Google Content Warehouse API's
|
|
20
|
+
ranking-mechanics attributes (`siteAuthority`, NavBoost click signals,
|
|
21
|
+
`contentEffort`, `hostAge`, named demotions, byline/syntactic/semantic date
|
|
22
|
+
consistency) plus Google Search Console's URL Inspection API as a
|
|
23
|
+
programmatic health-check surface. Every signature here is a **read-only
|
|
24
|
+
audit**: inspecting or reporting on an existing signal, never mutating the
|
|
25
|
+
site -- consistent with research §6's "safely automatable" audit category.
|
|
26
|
+
|
|
27
|
+
## Signatures
|
|
28
|
+
|
|
29
|
+
### siteauthority-domain-quality
|
|
30
|
+
- **Title:** siteAuthority is a real, leaked, site-wide quality score -- audit domain-level authority signals
|
|
31
|
+
- **Workflows:** technical-audit
|
|
32
|
+
- **Tactic:** Include a domain-level authority read in every technical audit: check for signals of site-wide quality erosion (thin/duplicate sections, low-value subdomains) that could depress the whole site's ranking potential, not just the audited URL.
|
|
33
|
+
- **Invariant:** The leaked Google Content Warehouse API documents siteAuthority as a real site-wide quality score inside Compressed Quality Signals (Q*), contradicting years of public denial that such a score exists; related attributes nsrDataProto and homepagePagerankNs reinforce that site-wide quality and homepage-anchored PageRank both influence every page's ranking potential.
|
|
34
|
+
- **PrimarySourceUrl:** https://ipullrank.com/google-algo-leak
|
|
35
|
+
- **PolicyClass:** auto-safe
|
|
36
|
+
- **EvidenceGrade:** single-source
|
|
37
|
+
- **LiveWeightStatus:** documented-only
|
|
38
|
+
- **Keywords:** siteauthority, leak, domain-quality, compressed-quality-signals
|
|
39
|
+
|
|
40
|
+
### navboost-click-quality-audit
|
|
41
|
+
- **Title:** NavBoost re-ranks on rolling click history -- audit click quality and on-site UX, not just rank
|
|
42
|
+
- **Workflows:** technical-audit
|
|
43
|
+
- **Tactic:** Pull and review click-quality proxies (bounce-back behavior, dwell/engagement signals, navigation-friction points) for audited URLs as a distinct audit line item from raw ranking position; a page can rank yet be accumulating badClicks that will erode its position over the NavBoost window.
|
|
44
|
+
- **Invariant:** The leak documents NavBoost as a click-based re-ranking system operating over a rolling 13-month window, tracking goodClicks, badClicks, lastLongestClicks, and unsquashedClicks at the URL, subdomain, and root-domain level, and distinguishing navDemotion (on-site UX causes) from serpDemotion (SERP-behavior causes).
|
|
45
|
+
- **PrimarySourceUrl:** https://ipullrank.com/google-algo-leak
|
|
46
|
+
- **PolicyClass:** auto-safe
|
|
47
|
+
- **EvidenceGrade:** single-source
|
|
48
|
+
- **LiveWeightStatus:** documented-only
|
|
49
|
+
- **Keywords:** navboost, click-quality, goodclicks, badclicks, ux-audit
|
|
50
|
+
|
|
51
|
+
### contenteffort-low-effort-flag
|
|
52
|
+
- **Title:** contentEffort is an LLM effort score -- flag low-effort/scaled pages before they get demoted
|
|
53
|
+
- **Workflows:** technical-audit
|
|
54
|
+
- **Tactic:** Screen audited pages for low-effort/scaled-output characteristics (thin substantiation, templated boilerplate, no original analysis) and flag them for human content review; treat a low contentEffort read as an early-warning audit finding, not a wait-and-see.
|
|
55
|
+
- **Invariant:** The leak documents contentEffort as an LLM-based "effort estimation" Google runs on article pages; low-effort scaled output is algorithmically flagged as not people-first, which is the mechanical reason low-effort AI-generated content underperforms.
|
|
56
|
+
- **PrimarySourceUrl:** https://ipullrank.com/google-algo-leak
|
|
57
|
+
- **PolicyClass:** auto-safe
|
|
58
|
+
- **EvidenceGrade:** single-source
|
|
59
|
+
- **LiveWeightStatus:** documented-only
|
|
60
|
+
- **Keywords:** contenteffort, low-effort, scaled-content, people-first
|
|
61
|
+
|
|
62
|
+
### hostage-sandbox-new-domain
|
|
63
|
+
- **Title:** hostAge sandboxes fresh domains -- calibrate audit expectations for new sites in adversarial verticals
|
|
64
|
+
- **Workflows:** technical-audit
|
|
65
|
+
- **Tactic:** For newly-registered domains (especially in adversarial/competitive verticals such as iGaming, crypto/DeFi), set index-velocity and ranking-timeline expectations in the audit report around a documented sandbox period rather than treating slow early performance as a technical fault to fix.
|
|
66
|
+
- **Invariant:** The leak documents a hostAge attribute used "to sandbox fresh spam in serving time"; new domains in adversarial verticals start handicapped by this sandbox mechanism regardless of on-page technical quality.
|
|
67
|
+
- **PrimarySourceUrl:** https://www.hobo-web.co.uk/evidence-based-mapping-of-google-updates-to-leaked-internal-ranking-signals/
|
|
68
|
+
- **PolicyClass:** auto-safe
|
|
69
|
+
- **EvidenceGrade:** single-source
|
|
70
|
+
- **LiveWeightStatus:** documented-only
|
|
71
|
+
- **Keywords:** hostage, hostage-sandbox, new-domain, adversarial-vertical
|
|
72
|
+
|
|
73
|
+
### date-consistency-audit
|
|
74
|
+
- **Title:** Byline/syntactic/semantic date consistency is a leak-grounded audit line item
|
|
75
|
+
- **Workflows:** technical-audit
|
|
76
|
+
- **Tactic:** Audit every content page for date drift: compare the visible byline date against the page's syntactic date signals (structured data, title, meta) and its semantic/inferred date, and flag any page where they disagree.
|
|
77
|
+
- **Invariant:** Mike King's technical analysis of the leak states the tactical implication that bylineDate, syntacticDate, and semanticDate should be kept consistent across structured data, titles, and URLs; date drift across these three signals is an identifiable ranking-risk audit finding.
|
|
78
|
+
- **PrimarySourceUrl:** https://ipullrank.com/google-algo-leak
|
|
79
|
+
- **PolicyClass:** auto-safe
|
|
80
|
+
- **EvidenceGrade:** single-source
|
|
81
|
+
- **LiveWeightStatus:** documented-only
|
|
82
|
+
- **Keywords:** date-consistency, bylinedate, syntacticdate, semanticdate
|
|
83
|
+
|
|
84
|
+
### gsc-url-inspection-health
|
|
85
|
+
- **Title:** Run GSC URL Inspection as a bulk index-health check, scaled across properties within the daily cap
|
|
86
|
+
- **Workflows:** technical-audit
|
|
87
|
+
- **Tactic:** Use the Search Console URL Inspection API as the primary programmatic index-health check in technical audits; when a site's inventory exceeds a single property's daily cap, verify additional properties (e.g. subdirectories or subdomains registered separately) to scale coverage rather than exceeding the per-property quota.
|
|
88
|
+
- **Invariant:** The Search Console API's URL Inspection method is capped at 2,000 queries per day per property and 600 queries per minute -- a hard ceiling on bulk index auditing that a technical-audit workflow must respect and, when necessary, work around via multiple verified properties.
|
|
89
|
+
- **PrimarySourceUrl:** https://developers.google.com/webmaster-tools/limits
|
|
90
|
+
- **PolicyClass:** auto-safe
|
|
91
|
+
- **EvidenceGrade:** primary-unverified
|
|
92
|
+
- **Keywords:** gsc, url-inspection, index-health, quota, search-console-api
|
|
93
|
+
|
|
94
|
+
### named-demotions-audit
|
|
95
|
+
- **Title:** Audit for leak-documented named demotions (EMD, anchor-mismatch, scamness)
|
|
96
|
+
- **Workflows:** technical-audit
|
|
97
|
+
- **Tactic:** Check audited domains and pages against the leak's documented demotion triggers: exact-match-domain patterns, internal/external anchor text that mismatches the linked page's topic, and (for iGaming/crypto verticals) fraud-likelihood signals -- and report any match as a named-demotion risk finding, not a generic "low quality" note.
|
|
98
|
+
- **Invariant:** The leak documents persistent named demotions: exactMatchDomainDemotion (2012-era EMD), anchorMismatchDemotion combined with IsAnchorBayesSpam (Penguin-era anchor-text classification), and scamness, a 0-1023 fraud-likelihood score directly relevant to iGaming and crypto verticals.
|
|
99
|
+
- **PrimarySourceUrl:** https://www.hobo-web.co.uk/evidence-based-mapping-of-google-updates-to-leaked-internal-ranking-signals/
|
|
100
|
+
- **PolicyClass:** auto-safe
|
|
101
|
+
- **EvidenceGrade:** single-source
|
|
102
|
+
- **LiveWeightStatus:** documented-only
|
|
103
|
+
- **Keywords:** named-demotion, exact-match-domain, anchor-mismatch, scamness, igaming
|
|
104
|
+
|
|
105
|
+
### gsc-url-inspection-api-method
|
|
106
|
+
- **Title:** Use the URL Inspection index.inspect method for structured, per-URL index-status audit output
|
|
107
|
+
- **Workflows:** technical-audit
|
|
108
|
+
- **Tactic:** Call the Search Console URL Inspection API's index.inspect method directly (rather than only reading the GSC UI) so per-URL index-status results feed structured audit output that can be diffed run-over-run.
|
|
109
|
+
- **Invariant:** Google's Search Console API documents index.inspect as the URL Inspection method that returns per-URL index-status data programmatically, the same capability exposed in the GSC UI's URL Inspection tool, making it the correct integration point for an automated technical-audit health check.
|
|
110
|
+
- **PrimarySourceUrl:** https://developers.google.com/webmaster-tools/v1/urlInspection.index/inspect
|
|
111
|
+
- **PolicyClass:** auto-safe
|
|
112
|
+
- **EvidenceGrade:** primary-unverified
|
|
113
|
+
- **Keywords:** gsc, url-inspection, index-inspect, api-method
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: bober.seo-topical-map
|
|
3
|
+
description: "Per-workflow SEO signature library for the topical-map workflow. A data file of discrete, cited SEO tactics read by SeoPlaybookParser (src/seo/parser.ts), not a workflow skill. Encodes the leak's siteFocusScore/siteRadius topical-authority mechanism and AI Overview query-fan-out coverage for the topical-map workflow."
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# bober.seo-topical-map — Topical Map Signature Library
|
|
7
|
+
|
|
8
|
+
This skill is a **signature-library** file for the `topical-map` workflow, not a
|
|
9
|
+
workflow skill in its own right. It is read (as raw markdown text) by
|
|
10
|
+
`SeoPlaybookParser.parse()` (`src/seo/parser.ts`) and turned into typed
|
|
11
|
+
`SeoSignature[]` records consumed by the SEO agent team's retriever
|
|
12
|
+
(`SeoPlaybookRetriever`). It follows the identical block format defined and
|
|
13
|
+
documented in `skills/bober.seo-generic/SKILL.md` ("Signature Block Format") --
|
|
14
|
+
the two files are one executable spec; a block missing `Title` or
|
|
15
|
+
`PrimarySourceUrl`, or tagged `PolicyClass: never-encode`, is DROPPED by the
|
|
16
|
+
parser at load time -- see
|
|
17
|
+
`.bober/research/research-20260715-ultimate-seo-agents-skills-research.md`
|
|
18
|
+
for the underlying evidence.
|
|
19
|
+
|
|
20
|
+
The signatures below encode the leaked Google Content Warehouse API's
|
|
21
|
+
`siteFocusScore` (site-wide dedication to one topic) and `siteRadius`
|
|
22
|
+
(per-page deviation from the site's central theme) topical-authority
|
|
23
|
+
mechanism, plus Ahrefs' finding that AI Overviews retrieve via query
|
|
24
|
+
fan-out, so a topical map must cover the fan-out set of sub-questions, not
|
|
25
|
+
just the head keyword. Most signatures here are **read-only map generation
|
|
26
|
+
and fan-out analysis** (auto-safe); the one signature that would publish the
|
|
27
|
+
full map at scale is `human-approve` -- consistent with research §6's
|
|
28
|
+
automation boundary.
|
|
29
|
+
|
|
30
|
+
## Signatures
|
|
31
|
+
|
|
32
|
+
### sitefocusscore-topical-dedication
|
|
33
|
+
- **Title:** Build the map to maximize siteFocusScore -- concentrate coverage on one dedicated topic
|
|
34
|
+
- **Workflows:** topical-map
|
|
35
|
+
- **Tactic:** Structure the topical map so new and existing pages reinforce dedication to a single central topic; when mapping candidate nodes, prefer additions that deepen the existing topical cluster over additions that diversify into unrelated subject areas.
|
|
36
|
+
- **Invariant:** The leaked Google Content Warehouse API documents siteFocusScore as a site-wide score that rewards a site's dedication to one topic; a topical map that maximizes coverage within a single dedicated topic is directly reinforcing a signal the leak shows Google mechanically scores.
|
|
37
|
+
- **PrimarySourceUrl:** https://sparktoro.com/blog/an-anonymous-source-shared-thousands-of-leaked-google-search-api-documents-with-me-everyone-in-seo-should-see-them/
|
|
38
|
+
- **PolicyClass:** auto-safe
|
|
39
|
+
- **EvidenceGrade:** single-source
|
|
40
|
+
- **Keywords:** sitefocusscore, topical-dedication, topical-map, leak
|
|
41
|
+
|
|
42
|
+
### siteradius-deviation-outlier-map
|
|
43
|
+
- **Title:** Flag high-siteRadius off-topic nodes as ranking outliers to isolate, not map targets to add
|
|
44
|
+
- **Workflows:** topical-map
|
|
45
|
+
- **Tactic:** When candidate map nodes deviate sharply from the site's established central theme, flag them as ranking-outlier risk in the map report and deliberately isolate them from the core cluster rather than adding them as easy incremental-traffic nodes.
|
|
46
|
+
- **Invariant:** The leak documents siteRadius as a per-page score of deviation from the site's central theme, and identifies high-deviation pages as documented ranking outliers; a topical map that adds high-siteRadius nodes without flagging them is building against the leak's own mechanism.
|
|
47
|
+
- **PrimarySourceUrl:** https://sparktoro.com/blog/an-anonymous-source-shared-thousands-of-leaked-google-search-api-documents-with-me-everyone-in-seo-should-see-them/
|
|
48
|
+
- **PolicyClass:** auto-safe
|
|
49
|
+
- **EvidenceGrade:** single-source
|
|
50
|
+
- **Keywords:** siteradius, deviation, ranking-outlier, topical-map
|
|
51
|
+
|
|
52
|
+
### query-fan-out-coverage-map
|
|
53
|
+
- **Title:** Cover the AI Overview query fan-out set, not just the head keyword
|
|
54
|
+
- **Workflows:** topical-map
|
|
55
|
+
- **Tactic:** Build map nodes for the fan-out query set around a topic -- related sub-questions, comparisons, and specifications -- rather than optimizing a single page for one head keyword; treat fan-out coverage as a first-class map-completeness dimension.
|
|
56
|
+
- **Invariant:** Ahrefs' analysis of 863K SERPs / 4M AIO URLs documents that AI Overviews retrieve results via query fan-out, generating and retrieving against a broadened set of related sub-queries; a topical map scoped only to head keywords under-covers what AIO actually retrieves against.
|
|
57
|
+
- **PrimarySourceUrl:** https://ahrefs.com/blog/ai-overview-citations-top-10/
|
|
58
|
+
- **PolicyClass:** auto-safe
|
|
59
|
+
- **EvidenceGrade:** single-source
|
|
60
|
+
- **Keywords:** fan-out, query-expansion, aio, topical-map
|
|
61
|
+
|
|
62
|
+
### topical-authority-cluster-completeness
|
|
63
|
+
- **Title:** Map the whole cluster -- comprehensive sub-topic coverage is mechanically scored
|
|
64
|
+
- **Workflows:** topical-map
|
|
65
|
+
- **Tactic:** Evaluate map completeness against the full sub-topic cluster rather than a handful of isolated high-value posts; report gaps in cluster coverage as map-quality findings, since comprehensive coverage of a topic is what the underlying authority mechanism rewards.
|
|
66
|
+
- **Invariant:** The leak's siteFocusScore mechanism operationalizes topical authority as a function of a site's dedication to one topic; comprehensive sub-topic coverage, not isolated high-value posts, is what mechanically reinforces that score.
|
|
67
|
+
- **PrimarySourceUrl:** https://ipullrank.com/google-algo-leak
|
|
68
|
+
- **PolicyClass:** auto-safe
|
|
69
|
+
- **EvidenceGrade:** single-source
|
|
70
|
+
- **Keywords:** topical-authority, cluster-completeness, sitefocusscore, coverage-gap
|
|
71
|
+
|
|
72
|
+
### commercial-intent-map-priority
|
|
73
|
+
- **Title:** Prioritize commercial/transactional fan-out nodes given the AIO intent-mix shift to money queries
|
|
74
|
+
- **Workflows:** topical-map
|
|
75
|
+
- **Tactic:** When ranking candidate map nodes for build priority, weight commercial and transactional fan-out queries higher than the historical default of purely informational sub-topics, reflecting where AIO trigger volume has moved.
|
|
76
|
+
- **Invariant:** A Semrush 10M+ keyword panel documents the AIO intent mix shifting Jan-Oct 2025: informational share fell from 91.3% to 57.1% of triggers while commercial rose to 18.57% and transactional to 13.94%; a topical map that still prioritizes informational nodes by default is misaligned with the current trigger mix.
|
|
77
|
+
- **PrimarySourceUrl:** https://www.semrush.com/blog/semrush-ai-overviews-study/
|
|
78
|
+
- **PolicyClass:** auto-safe
|
|
79
|
+
- **EvidenceGrade:** verified
|
|
80
|
+
- **Keywords:** commercial-intent, transactional, aio-intent-shift, map-priority
|
|
81
|
+
|
|
82
|
+
### new-node-central-theme-alignment
|
|
83
|
+
- **Title:** Keep every newly-mapped node aligned to the site's central theme (low siteRadius)
|
|
84
|
+
- **Workflows:** topical-map
|
|
85
|
+
- **Tactic:** Before adding a new node to the map, check its alignment against the site's established central theme; reject or flag proposed nodes that would push the map toward a higher average siteRadius rather than accepting any topically-adjacent traffic opportunity.
|
|
86
|
+
- **Invariant:** The leak documents siteRadius as a per-page score of deviation from the site's central theme, with high-deviation pages identified as documented ranking outliers; keeping new nodes low-siteRadius by design is the map-generation-time application of that same mechanism.
|
|
87
|
+
- **PrimarySourceUrl:** https://sparktoro.com/blog/an-anonymous-source-shared-thousands-of-leaked-google-search-api-documents-with-me-everyone-in-seo-should-see-them/
|
|
88
|
+
- **PolicyClass:** auto-safe
|
|
89
|
+
- **EvidenceGrade:** single-source
|
|
90
|
+
- **Keywords:** siteradius, central-theme, node-alignment, topical-map
|
|
91
|
+
|
|
92
|
+
### map-buildout-at-scale-approval
|
|
93
|
+
- **Title:** Publishing the full map at scale changes the live site -- requires human sign-off
|
|
94
|
+
- **Workflows:** topical-map
|
|
95
|
+
- **Tactic:** When a topical-map analysis recommends bulk-publishing a large batch of new pages to fill fan-out or cluster-completeness gaps at scale, propose the buildout plan as a report but do not execute the mass publish without explicit human approval, since scaled content production at once is a structural site change with abuse-policy exposure.
|
|
96
|
+
- **Invariant:** The 522-site/64%-decayed HCU baseline and the leak's contentEffort signal both associate scaled, low-effort content production with downstream decline risk; a topical-map recommendation to publish new nodes at scale therefore requires a human-owned execution decision rather than automatic publication.
|
|
97
|
+
- **PrimarySourceUrl:** https://detailed.com/q3/
|
|
98
|
+
- **PolicyClass:** human-approve
|
|
99
|
+
- **EvidenceGrade:** single-source
|
|
100
|
+
- **Keywords:** map-buildout, scaled-content, human-approve, live-site-change
|
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: bober.seo-verticals
|
|
3
|
+
description: "Cross-workflow SEO signature library for competitive/regulated verticals (iGaming, crypto/DeFi, SaaS). A data file of discrete, cited SEO tactics read by SeoPlaybookParser (src/seo/parser.ts), not a workflow skill. Encodes iGaming parasite-SEO detection and regulatory-disclosure guidance, the crypto/DeFi YMYL authority-gap case (Atlendis 538% uplift), and SaaS programmatic-SEO per-page-utility guidance bounded by Google's scaled-content-abuse policy."
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# bober.seo-verticals — Vertical Playbooks (iGaming / Crypto-DeFi / SaaS) Signature Library
|
|
7
|
+
|
|
8
|
+
This skill is a **signature-library** file covering three competitive/regulated
|
|
9
|
+
verticals -- iGaming, crypto/DeFi, and SaaS -- not a workflow skill in its own
|
|
10
|
+
right. It is read (as raw markdown text) by `SeoPlaybookParser.parse()`
|
|
11
|
+
(`src/seo/parser.ts`) and turned into typed `SeoSignature[]` records consumed
|
|
12
|
+
by the SEO agent team's retriever (`SeoPlaybookRetriever`). It follows the
|
|
13
|
+
identical block format defined and documented in
|
|
14
|
+
`skills/bober.seo-generic/SKILL.md` ("Signature Block Format") -- the two
|
|
15
|
+
files are one executable spec; a block missing `Title` or `PrimarySourceUrl`,
|
|
16
|
+
or tagged `PolicyClass: never-encode`, is DROPPED by the parser at load time.
|
|
17
|
+
|
|
18
|
+
Note: `verticals` is not itself a member of `SeoWorkflow`
|
|
19
|
+
(`src/seo/parser.ts:36-45`), so every block below tags `Workflows` with a real
|
|
20
|
+
workflow member it feeds (`technical-audit`, `parasite-watch`, `ai-visibility`,
|
|
21
|
+
`internal-linking`, `topical-map`) rather than `verticals`, which would be
|
|
22
|
+
silently filtered to `[]`. iGaming and crypto/DeFi are adversarial/YMYL
|
|
23
|
+
verticals where the leaked ranking-mechanics `scamness` signal and Google's
|
|
24
|
+
scaled-content-abuse and site-reputation-abuse policies apply directly; SaaS
|
|
25
|
+
programmatic SEO (pSEO) is bounded by the same scaled-content-abuse policy.
|
|
26
|
+
Every risk-touching tactic below is `human-approve`; the one policy-violating
|
|
27
|
+
tactic (mass unedited AI page generation) is a `never-encode` block the parser
|
|
28
|
+
drops. See `.bober/research/research-20260715-ultimate-seo-agents-skills-research.md`
|
|
29
|
+
§2/§3/§5 for the underlying evidence.
|
|
30
|
+
|
|
31
|
+
## Signatures
|
|
32
|
+
|
|
33
|
+
### igaming-scamness-demotion-awareness
|
|
34
|
+
- **Title:** Audit iGaming/crypto domains against the leak's scamness fraud-likelihood score
|
|
35
|
+
- **Workflows:** technical-audit, parasite-watch
|
|
36
|
+
- **Tactic:** Include a scamness-risk read in every iGaming/crypto technical audit: check the audited domain and its content for fraud-likelihood signals (e.g. thin licensing disclosure, unverifiable payout claims, spoofed-brand patterns) that the leak documents as directly scored, and report any match as a named-demotion risk finding rather than a generic quality note.
|
|
37
|
+
- **Invariant:** The leaked Google Content Warehouse API documents scamness, a 0-1023 fraud-likelihood score, as a ranking-mechanics attribute directly relevant to iGaming and crypto verticals -- these verticals are algorithmically screened for fraud signals in a way most verticals are not.
|
|
38
|
+
- **PrimarySourceUrl:** https://ipullrank.com/google-algo-leak
|
|
39
|
+
- **PolicyClass:** auto-safe
|
|
40
|
+
- **EvidenceGrade:** single-source
|
|
41
|
+
- **LiveWeightStatus:** documented-only
|
|
42
|
+
- **Keywords:** igaming, crypto, scamness, leak, named-demotion
|
|
43
|
+
|
|
44
|
+
### igaming-parasite-detection
|
|
45
|
+
- **Title:** Detect competitor parasite-SEO placements specifically within iGaming/affiliate SERPs
|
|
46
|
+
- **Workflows:** parasite-watch
|
|
47
|
+
- **Tactic:** Run vertical-scoped SERP monitoring for iGaming/affiliate target keywords, watching for competitor "best casino"/"top betting site" listicles placed on high-authority third-party hosts; flag new parasite entrants for the human operator. This is READ-ONLY SERP monitoring, never a placement action, and is a vertical-specific instance of the general parasite-watch detection pattern.
|
|
48
|
+
- **Invariant:** Reporting on iGaming affiliate SERPs documents parasite SEO as a persistent, industry-specific problem -- affiliates report material organic-traffic decline attributable to parasite competitors, with enforcement against violators inconsistent -- making vertical-scoped continuous monitoring the practical defensive baseline.
|
|
49
|
+
- **PrimarySourceUrl:** https://www.affiversemedia.com/parasite-seo-is-thriving-in-igaming-and-its-costing-affiliates/
|
|
50
|
+
- **PolicyClass:** auto-safe
|
|
51
|
+
- **EvidenceGrade:** primary-unverified
|
|
52
|
+
- **Keywords:** igaming, parasite-seo, detection, serp-monitoring
|
|
53
|
+
|
|
54
|
+
### igaming-regulatory-disclosure
|
|
55
|
+
- **Title:** Route iGaming regulatory disclosure (ASA / Gambling Commission-adjacent) claims through human approval
|
|
56
|
+
- **Workflows:** technical-audit
|
|
57
|
+
- **Tactic:** Treat any content change that touches gambling-advertising disclosure, responsible-gambling messaging, or licensing claims as YMYL content requiring human legal/compliance sign-off before publication; never auto-publish or auto-edit disclosure-adjacent copy as part of an automated audit remediation.
|
|
58
|
+
- **Invariant:** iGaming affiliate-marketing reporting documents disclosure and regulatory compliance (advertising-standards and gambling-commission-adjacent obligations) as a live, actively-enforced constraint on iGaming SEO/content operations, distinct from and in addition to ordinary search-spam policy.
|
|
59
|
+
- **PrimarySourceUrl:** https://www.businessofigaming.com/parasite-seo-affiliate-marketing/
|
|
60
|
+
- **PolicyClass:** human-approve
|
|
61
|
+
- **EvidenceGrade:** primary-unverified
|
|
62
|
+
- **Keywords:** igaming, regulatory-disclosure, ymyl, compliance, human-approve
|
|
63
|
+
|
|
64
|
+
### defi-authority-gap-beatable
|
|
65
|
+
- **Title:** A DeFi authority gap is beatable with structural work -- the Atlendis case (538% uplift)
|
|
66
|
+
- **Workflows:** internal-linking, technical-audit
|
|
67
|
+
- **Tactic:** For DeFi/crypto clients facing an authority gap against larger incumbents, recommend (human-approval-gated -- this is structural site work) a combined domain-authority-building and content-migration plan modeled on the Atlendis case: consolidate content onto the root domain rather than a hosted subdomain, and pursue targeted authority-building rather than assuming the gap is unbeatable.
|
|
68
|
+
- **Invariant:** Atlendis achieved a 538% organic-traffic uplift in roughly 9 months while starting from a domain authority of 12 against competitors at 38-50, with migrating content from a hosted Medium subdomain to the root domain contributing a further 218% increase -- a documented case that a large authority gap in the DeFi vertical is structurally beatable.
|
|
69
|
+
- **PrimarySourceUrl:** https://victoriaolsina.com/case-studies/defi-seo/
|
|
70
|
+
- **PolicyClass:** human-approve
|
|
71
|
+
- **EvidenceGrade:** single-source
|
|
72
|
+
- **Keywords:** defi, crypto, authority-gap, migration, case-study
|
|
73
|
+
|
|
74
|
+
### crypto-ymyl-editorial-override
|
|
75
|
+
- **Title:** Route crypto/DeFi YMYL content changes through editorial human approval, not auto-publish
|
|
76
|
+
- **Workflows:** technical-audit, ai-visibility
|
|
77
|
+
- **Tactic:** For crypto/DeFi content (investment claims, protocol-risk disclosures, financial-advice-adjacent copy), require human editorial sign-off before any audit-driven content change ships; do not auto-apply content edits in this vertical even when the underlying finding (e.g. a contentEffort or scamness flag) is high-confidence.
|
|
78
|
+
- **Invariant:** The leak's scamness scoring and documented manual-whitelist mechanisms for sensitive verticals indicate Google applies extra editorial scrutiny to YMYL-adjacent content in financial verticals; crypto/DeFi content changes carry outsized ranking and trust risk if published without human review.
|
|
79
|
+
- **PrimarySourceUrl:** https://ipullrank.com/google-algo-leak
|
|
80
|
+
- **PolicyClass:** human-approve
|
|
81
|
+
- **EvidenceGrade:** single-source
|
|
82
|
+
- **LiveWeightStatus:** documented-only
|
|
83
|
+
- **Keywords:** crypto, defi, ymyl, editorial-review, scamness
|
|
84
|
+
|
|
85
|
+
### saas-pseo-per-page-utility
|
|
86
|
+
- **Title:** Programmatic SEO for SaaS works only with genuine per-page utility -- audit for the scaled-content-abuse boundary
|
|
87
|
+
- **Workflows:** topical-map, technical-audit
|
|
88
|
+
- **Tactic:** Before approving a programmatic-SEO (pSEO) page-generation plan for a SaaS client, require each templated page to demonstrate genuine per-page utility (real underlying data, a distinct user need, non-boilerplate content) as a human-approval gate; audit existing pSEO inventory for pages that are templated-but-empty of unique value, which is the scaled-content-abuse risk signal, not the page-generation approach itself.
|
|
89
|
+
- **Invariant:** Google's scaled-content-abuse policy targets mass-produced content lacking genuine per-page value, not programmatic content generation per se -- pSEO succeeds at scale specifically when each page carries real utility, which is the boundary a human-approval gate must enforce before mass publication.
|
|
90
|
+
- **PrimarySourceUrl:** https://developers.google.com/search/blog/2024/03/core-update-spam-policies
|
|
91
|
+
- **PolicyClass:** human-approve
|
|
92
|
+
- **EvidenceGrade:** primary-unverified
|
|
93
|
+
- **Keywords:** saas, pseo, programmatic-seo, scaled-content-abuse, per-page-utility
|
|
94
|
+
|
|
95
|
+
### igaming-ads-certification-compliance
|
|
96
|
+
- **Title:** Google Ads gambling certification + per-country licensing is a hard paid-ads compliance gate for iGaming
|
|
97
|
+
- **Workflows:** technical-audit
|
|
98
|
+
- **Tactic:** Before any iGaming paid-search campaign passes a technical/compliance audit, verify the advertiser holds current Google Ads gambling certification and a valid license or registration in each individually targeted country; confirm the campaign only targets approved countries, that no targeting reaches minors, and that every landing page displays responsible-gambling information -- flag any gap as a compliance-blocking finding, not a nice-to-have.
|
|
99
|
+
- **Invariant:** Google's gambling advertising policy requires advertisers to hold certification plus a valid license/registration per targeted country (a separate certification per country -- e.g. the UK requires Gambling Commission registration and a license number), restricts targeting to approved countries only, forbids targeting minors, and requires landing pages to show responsible-gambling information; this policy governs paid ads, not organic ranking.
|
|
100
|
+
- **PrimarySourceUrl:** https://support.google.com/adspolicy/answer/15132179
|
|
101
|
+
- **PolicyClass:** human-approve
|
|
102
|
+
- **EvidenceGrade:** verified
|
|
103
|
+
- **Keywords:** igaming, google-ads, certification, licensing, responsible-gambling, compliance
|
|
104
|
+
|
|
105
|
+
### crypto-igaming-site-reputation-abuse-audit
|
|
106
|
+
- **Title:** Site-reputation-abuse policy closed the first-party-oversight loophole -- audit crypto/iGaming properties for undisclosed third-party placements
|
|
107
|
+
- **Workflows:** technical-audit, parasite-watch
|
|
108
|
+
- **Tactic:** Audit crypto/DeFi and iGaming content properties for third-party-authored sections (sponsored "best casino"/"top token" guides, licensed review content) published under the brand's own domain, and flag any section lacking genuine first-party editorial oversight; do not accept a claimed licensing, white-label, or partial-ownership arrangement as evidence of compliance -- the Nov 2024 policy update removed that exemption.
|
|
109
|
+
- **Invariant:** Google's Nov 19 2024 site-reputation-abuse policy update closed the first-party-oversight loophole: no amount of white-labelling, licensing, partial ownership, or claimed editorial oversight exempts third-party content hosted to exploit a domain's ranking signals; Google explicitly states it does not take a site's claims about content production at face value -- directly relevant to crypto/DeFi and iGaming verticals where sponsored/affiliate content is common.
|
|
110
|
+
- **PrimarySourceUrl:** https://developers.google.com/search/blog/2024/11/site-reputation-abuse
|
|
111
|
+
- **PolicyClass:** human-approve
|
|
112
|
+
- **EvidenceGrade:** verified
|
|
113
|
+
- **Keywords:** site-reputation-abuse, parasite-seo, crypto, igaming, editorial-oversight
|
|
114
|
+
|
|
115
|
+
### saas-scaled-content-intent-audit
|
|
116
|
+
- **Title:** Scaled-content-abuse is judged by intent, not production method -- audit SaaS pSEO output regardless of AI/human/hybrid authorship
|
|
117
|
+
- **Workflows:** topical-map, technical-audit
|
|
118
|
+
- **Tactic:** When auditing a SaaS programmatic-SEO template set, evaluate pages against manipulative-intent and user-value signals (duplicate boilerplate, near-identical pages, absence of unique underlying data) rather than by whether the content was AI-generated, human-written, or hybrid; do not treat human involvement alone as a safety exemption from the scaled-content-abuse review.
|
|
119
|
+
- **Invariant:** Google's scaled-content-abuse policy is explicitly method-agnostic -- content "no matter how it's created" (AI, human, or hybrid) is judged by whether it was produced primarily to manipulate rankings with little or no user value, not by production method; a documented case of a 50,000-page near-duplicate programmatic travel site saw it roughly 98% deindexed within three months.
|
|
120
|
+
- **PrimarySourceUrl:** https://developers.google.com/search/docs/essentials/spam-policies
|
|
121
|
+
- **PolicyClass:** auto-safe
|
|
122
|
+
- **EvidenceGrade:** verified
|
|
123
|
+
- **Keywords:** saas, pseo, scaled-content-abuse, method-agnostic, intent-test
|
|
124
|
+
|
|
125
|
+
### mass-ai-page-generation-boundary
|
|
126
|
+
- **Title:** Mass unedited AI page generation -- NEVER encode as a tactic
|
|
127
|
+
- **Workflows:** topical-map, technical-audit
|
|
128
|
+
- **Tactic:** NEVER encode as actionable. Generating large volumes of AI-written pages without meaningful human editing or genuine per-page utility, purely to scale up indexed page count, is a NAMED Google scaled-content-abuse violation. Documented here only to mark the automation boundary; the parser DROPS this block so it can never reach an analyzer prompt.
|
|
129
|
+
- **Invariant:** Scaled-content abuse (mass-produced, unedited or minimally-edited content generated primarily to manipulate search rankings) is a named spam policy -- must never be surfaced as an option, even human-approval-gated, regardless of vertical.
|
|
130
|
+
- **PrimarySourceUrl:** https://developers.google.com/search/docs/essentials/spam-policies
|
|
131
|
+
- **PolicyClass:** never-encode
|
|
132
|
+
- **EvidenceGrade:** primary-unverified
|
|
133
|
+
- **Keywords:** mass-ai-pages, scaled-content-abuse, never-encode, policy-violation
|
|
@@ -117,6 +117,7 @@ The following skills are available in this repo but are domain-specific, not par
|
|
|
117
117
|
|
|
118
118
|
- `bober.anchor` — project anchoring and context establishment
|
|
119
119
|
- `bober.brownfield` — brownfield (existing codebase) conventions and anti-patterns
|
|
120
|
+
- `bober.design` — frontend design team: premium, non-generic landing pages/UI via intake → art direction → build → screenshot critique → polish (agents: bober-art-director, bober-frontend-builder, bober-design-critic)
|
|
120
121
|
- `bober.graph` — knowledge graph queries and code review using code-review-graph MCP
|
|
121
122
|
- `bober.impact` — change impact analysis
|
|
122
123
|
- `bober.onboard` — project onboarding
|