intel — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited intel (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
Produce focused intelligence briefs on a topic by querying the intel CLI against locally collected feeds (RSS, HackerNews, EDGAR). Briefs combine trending signals, full-text search hits, and topic breakdowns into a concise, evidence-backed summary an agent or human can act on.
Use this skill when you need current signal on a technology, vendor, standard, or industry trend — or when you need to present signals to a specific audience.
Success looks like: a brief with ranked signals, source citations, and a clear "so what" tailored for the target audience — readable in under 2 minutes and actionable without needing to parse raw data.
cd tools/intelligence && npm install && npm run build npm link # from tools/intelligence/ mkdir -p ~/.config/intel ~/.local/share/intel
cp config/feeds.example.yaml ~/.config/intel/config.yaml
# Edit ~/.config/intel/config.yaml to customize feeds intel collect --once ./service/install.sh # macOS (launchd) / Linux (systemd)This installs a LaunchAgent (macOS) or systemd user unit (Linux) that starts on login and restarts on crash. Verify it's running:
# macOS
launchctl print gui/$(id -u)/com.intel.collector
tail -f ~/Library/Logs/intel-collector.log
# Linux
systemctl --user status intel-collector
journalctl --user -u intel-collector -fTo uninstall: ./service/install.sh uninstall
intel stats — check events_total > 0 and newest_event is recent.Inputs: Topic scope (what to research); audience type (practitioner/executive/engineering/decision/digest/architecture); time window. Outputs: Audience-formatted intelligence brief with ranked signals, source citations, and "so what." Consumed by forecast (as data source), plan (as context), architecture (as ecosystem evidence).
| Type | When to use |
|---|---|
| Topic brief (default) | "What's happening with X?" |
| Trend scan | General landscape check |
| Evidence pack | Feeding context into another skill |
| Source check | Verify data quality |
| Audience | Shape | When to use |
|---|---|---|
| Practitioner (default) | Ranked signals, trend context, gaps, so what | Feeding into your own work |
| Executive | 3-5 bullet TL;DR, "so what", recommended action, risk flags | Status updates, steering meetings |
| Engineering | Signals mapped to stack, migration/deprecation implications | Sprint planning, tech radar |
| Decision | Evidence mapped to options, recommendation | Buy-vs-build, adopt-vs-wait, vendor selection |
| Daily digest | Top-5 signals, one-line commentary | Morning standup, async channel |
| Architecture decision | Archobs risk + forecast lifecycle × decision options | Technology adoption, boundary redesign |
intel statsCheck total_events and newest_event — if the database is empty or stale, run intel collect --once first.
Topic brief — run in parallel:
intel search "<topic>" --since 7d --limit 20
intel trends --window 60m --top 10
intel topics --activeTrend scan:
intel trends --window 60m --top 15Evidence pack:
intel pack --since 6h --top 10 --max-events 5Source check:
intel sourcesExecutive / Daily digest:
intel pack --since 24h --top 10 --max-events 5Engineering — run in parallel:
intel pack
intel search "<stack-relevant terms>"
intel topics --activeDecision — run in parallel:
intel search "<decision topic>"
intel trendsArchitecture decision — requires archobs + forecast data:
archobs show clusters --format json
archobs show risks --format json
intel forecast # lifecycle phases for relevant technologies intel events --id <event_id> intel journal add --context "Evaluating queue options after SQS outage signals" \
--decision "Stay with SQS, add DLQ" \
--rationale "Outage was regional, DLQ covers failure mode" \
--tags "infrastructure,messaging"Review past decisions:
intel journal list --since 30d --tag "infrastructure"
intel journal search "SQS"When context or time is constrained, these are the load-bearing steps:
intel stats must show recent data.Steps that can be cut under pressure: audience-specific additional queries (step 4), deepening on high-signal hits (step 5), decision journal recording (step 6), gap flagging (step 9).
intel collect in long-running daemon mode during a brief — use --once if a refresh is needed.intel commands.lang.typescript) — these get broadly assigned by the classifier and titles may not be topically relevant even when marked "high."plan or spec to act on the decisionplan or specThe decision journal closes the signal-to-decision loop. Record decisions alongside the signals that informed them for cross-session memory.
# Record a decision
intel journal add --context "..." --decision "..." [--rationale "..."] [--tags "a,b"] [--refs '[{"type":"event","id":"rss:test:1"}]']
# List recent decisions
intel journal list [--since 7d] [--tag "..."] [--limit 20] [--cursor ...]
# Search decisions
intel journal search <query> [--since 7d] [--limit 20]Generate labeled training data for classifier evaluation and evolution. This workflow produces a training set, loads the taxonomy, and uses batched subagent classification to label each event independently.
intel training-set generate --sample-rate 0.1
# or with reproducible seed:
intel training-set generate --sample-rate 0.1 --seed 42Capture the output path for Phase 3.
intel topicsRun intel topics once to capture the full topic taxonomy (66 topics across 10 categories). Include this output verbatim in each subagent prompt — do not re-fetch per batch.
Iterate in batches of 25 events:
intel training-set next <db> --limit 25 to get a batch of unreviewed events (machine labels omitted by default to prevent anchoring)title, content, url, source, feed, and the taxonomy from Phase 2intel training-set label <db> <event-id> --topics <csv> --labeler haiku for each resultintel training-set progress <db> every 5 batches (~125 events) to check completionremaining reaches 0 or the requested event count is reachedSubagent classification protocol:
--show-machine-labels — blind classification prevents anchoringscore or comments to subagents — engagement metrics would anchor classification--topics "" stores [])model: "haiku" for subagents — topic classification from a fixed taxonomy is within haiku's capabilitiesPartial labeling: The workflow supports interruption and resumption. Specify an event count (e.g., "classify 500 events") as an orchestrator-level limit. Partial training sets are useful for precision estimates on topics with sufficient samples (≥30).
Guardrails:
--show-machine-labels for classification — blind output only# Generate training set
intel training-set generate [--sample-rate 0.1] [--output <path>] [--seed <n>] [--dry-run]
# Get next unreviewed events
intel training-set next <training-db> [--limit 25] [--show-machine-labels]
# Label an event
intel training-set label <training-db> <event-id> --topics "topic1,topic2" [--labeler haiku] [--notes "..."]
# Check progress
intel training-set progress <training-db> [--verbose]
# List training databases
intel training-set list [--dir <path>]
# Export labeled data
intel training-set export <training-db> [--output <path>] [--reviewed-only] [--raw]
# Evaluate classifier accuracy
intel training-set evaluate <training-db> [--min-samples 30] [--labeler haiku]
# Train CNB classifier (requires ≥500 labeled events)
intel classifier train <training-db> [--output <path>] [--min-examples 20] [--validation-split 0.2]forecastarchobsplanspecarchitecture~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.