From spotlight
Coordinates investigation monitoring across Mycroft passive topics, Scoutpost durable scouts, and runtime-native routines. Agents recommend targets; orchestrator handles approval and lifecycle.
How this skill is triggered — by the user, by Claude, or both
Slash command
/spotlight:monitoringThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Spotlight no longer owns a local feed engine. Monitoring is now a coordination layer across three surfaces:
Spotlight no longer owns a local feed engine. Monitoring is now a coordination layer across three surfaces:
Agents still recommend targets in monitoring_recommendations[]. The orchestrator handles approval, creation, persistence, and later checks.
spotlight:{project} as the cross-tool handle wherever possible.scoutpost when it is available and green in integration preflight.Investigators and fact-checkers add monitoring_recommendations[] to data/findings.json when they identify something worth watching after the current cycle.
They recommend. They do not create monitors.
When the user approves a recommendation, the orchestrator chooses one or both of:
If Scoutpost is unavailable or declined, the orchestrator falls back to a runtime-native routine:
At the start of a resumed investigation, the orchestrator checks:
~/.mycroft/monitoring/monitor.py exists and the case has linked topic slugsmonitoring.json has a stored project_id or scout_idThe orchestrator then presents a short monitoring briefing and asks whether to fold those updates into the next cycle.
If the user wants to use the updates, include them in the next investigator prompt under Monitoring results since last cycle:.
Invoke shell-safety before any execute-shell command below that includes a project, topic, target, or filesystem path. Validate project/path values first; pass long topic text through a temp file or JSON when possible.
execute-shell('python3 scripts/spotlight_safe.py validate-slug "{project}"')
execute-shell('python3 monitoring/registry.py migrate --project "{project}"')
execute-shell('test -f ~/.mycroft/monitoring/monitor.py && echo true || echo false')
# Use an allowlisted --since value such as 7d, 24h, or an ISO timestamp.
write-file("{CASE_DIR}/research/mycroft-query.json", <serialized topic/target JSON>)
execute-shell('python3 ~/.mycroft/monitoring/monitor.py query --topic-file {CASE_DIR}/research/mycroft-query.json --since 7d --json')
execute-shell("python3 integrations/preflight.py --json")
Read the integration guide first:
read-file("integrations/scoutpost/integration.md")
Then create or reuse a project, create scouts under that project_id, and later fetch updates back by project_id.
monitoring.json v2This file is Spotlight-owned case state. It is no longer a feed-config file.
{
"schema_version": "2",
"case_ref": "spotlight:{project}",
"mycroft": {
"topic_slugs": ["example-topic"],
"last_checked_at": "ISO 8601"
},
"scoutpost": {
"project_id": "uuid",
"project_name": "Spotlight: {project}",
"scouts": [
{
"scout_id": "uuid",
"monitor_kind": "web|pulse|social|civic",
"target": "https://...",
"criteria": "what to watch"
}
],
"last_checked_at": "ISO 8601"
},
"fallback_routines": [
{
"runtime": "codex|claude|hermes|openclaw",
"handle": "provider-specific identifier",
"monitor_kind": "web|pulse|social|civic",
"target": "https://...",
"criteria": "what to watch"
}
],
"checks": [
{
"checked_at": "ISO 8601",
"source": "mycroft|scoutpost|runtime-routine",
"summary": "human-readable summary",
"items": []
}
]
}
If Spotlight encounters the old feed-oriented monitoring.json shape, treat it as legacy and migrate or ignore it safely rather than assuming it is current.
In sensitive mode:
| File | Purpose |
|---|---|
monitoring/registry.py | Normalizes and updates {CASE_DIR}/data/monitoring.json |
integrations/scoutpost/integration.md | Durable monitor creation and retrieval via existing Scoutpost surfaces |
references/recommendation-schema.md | Agent output schema for monitoring_recommendations[] |
references/source-catalog.md | Passive feed sources now owned by Mycroft |
npx claudepluginhub buriedsignals/spotlight --plugin spotlightManages persistent monitoring for OSINT investigations: scout recommendations to findings.json, creation via coJournalist API, preflight checks, and result ingestion into Spotlight context.
Authors, edits, and adapts PostHog Signals scouts—scheduled agents that scan a project and emit findings. Covers customization, schedule tuning, and writing new scouts from scratch.
Guides creation of Monte Carlo monitors via MCP tools, producing monitors-as-code YAML for CI/CD deployment.