Turn any company URL into a strategic intelligence brief. Adaptive scraping + AI-powered research and synthesis.
SaferSkills independently audited primr (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.
Run a long, metered, autonomous research pipeline that turns a company URL into a structured strategic brief. primr is not another web-search tool. It combines DNS recon, multi-tier scraping, hiring-signal extraction, provider-backed AI synthesis, and structured report generation. A typical run produces a ~21,500-word Strategic Overview plus optional strategy modules, lands in output/<company>/, and feeds the rest of the user's analytical workflow.
Use primr when the user wants the full pipeline:
Do not use primr for:
dig, host, or a passive-recon tool.run_qa MCP tool or primr --qa <company> CLI), but invoke that path directly without estimating a new run.If the user is ambiguous ("research Acme"), default to the host's built-in research path and offer primr as the upgrade for "I want the full dossier." primr's cost and runtime mean it should never auto-fire on a vague trigger.
Confirm primr is installed and configured before the first call in a session:
primr --version
primr doctorIf primr is not on PATH:
"primr isn't installed. It's a Python CLI from github.com/blisspixel/primr. Usepip install primron Python 3.12+. After install, runprimr initto set provider keys. Grok + Gemini is the measured default, but OpenAI, Anthropic, and local OpenAI-compatible paths are also supported or tracked in the roadmap. Want me to walk through it?"
Wait for explicit approval before running pip install. If primr doctor reports missing keys, do not attempt to set them yourself — surface the gap and let the user run primr init or primr keys set <provider>.
Look at your own available-tools list before choosing transport:
mcp__primr__* tools (mcp__primr__estimate_run, mcp__primr__research_company, etc.) → prefer MCP. It returns structured objects, exposes job state via resources, and the cost gate is enforced server-side.primr CLI. Same workflow, file-based artifacts.Do not call an MCP tool speculatively to test connectivity. To get from CLI-only to MCP, the user adds primr to their host's MCP config (the snippet is { "command": "primr", "args": ["mcp"] }; see the clients/ directory in the primr repo for per-host paths).
primr runs cost real money and real time. Never launch a run without:
estimate_run(company_url=..., mode=..., platforms=[...], strategy_type=...). CLI: append --dry-run to the exact command you intend to run.If the user pushes back on cost, suggest a cheaper mode (scrape ~$0.10, default ~$4.27) before walking away. If they want premium depth, surface the --grok-tier max (~$3.75) and --premium (~$5) tiers and re-estimate.
The MCP server enforces this gate via primr://agent/governance; the CLI does not, so on CLI you are the gate.
estimate_run (MCP) or primr "Name" url --dry-run [flags] (CLI). Capture the cost, time, page count, planned strategy.research_company(company_name=..., company_url=..., mode=..., platform=..., destination=...) → returns job_id. CLI: drop --dry-run and run the same command. Note the job_id or output directory.primr://research/status or check_jobs (MCP), or look for the markdown file at output/<company>/<Company>_Strategic_Overview_<MM-DD-YYYY>.md (CLI). If still running, report the stage and stage_progress_percent.primr exposes four orthogonal levers. Default is full mode, no platform bias, default --grok-tier, no --strategy-type (Strategic Overview only).
For the full decision matrix — when to pick each, cost and time per combination, multi-platform behavior — see references/modes-and-strategies.md. One-liner heuristics:
full for almost everything. scrape if external research isn't needed. deep if the site is blocked. premium only when the user asks for board-grade depth.--platform aws, --platform ms, etc.). It biases the AI strategy module, not the core report.--strategy-type ai to also produce the AI Strategy module in the same run. Other built-ins: customer_experience, modern_security_compliance, data_fabric_strategy, cloud_migration, data_strategy, ai_first_transformation. Use primr --list-strategies or primr://strategies/available to enumerate.primr discovers any YAML file dropped into <install>/prompts/strategies/ (or the user's override path). Author one when the user wants a recurring deliverable that doesn't fit the built-ins (e.g., "FinOps assessment for retail clients", "M&A integration playbook").
For the schema and a worked example, see references/custom-strategy-yaml.md. Keep custom strategies in version control; do not edit a built-in YAML in place.
Long runs are the common case. Pick the lightest async pattern your host supports — never poll synchronously in a tight loop.
Preferred, in rough order:
▸ PHASE, ✓ Complete, ✗, Error) — about 6-8 events across a full run. Right density for "is it making progress?" without polling noise.check_jobs / primr://research/status / the report file at output/<company>/<Company>_Strategic_Overview_<MM-DD-YYYY>.md), then summarize.On every follow-up turn, regardless of how you got there: read state first. Never claim done until the report file exists and check_jobs reports status: completed. On failure, read primr://output/manifest/latest if available — it contains the audit trail (estimate, approval, execution, error). Surface the failure cause; do not silently re-launch.
What not to do:
Reports land in output/<company_slug>/:
<Company>_Strategic_Overview_<date>.md — primary deliverable<Company>_AI_Strategy_<date>.md — only if --strategy-type ai (or another module) was selectedscraped_content.txt, insights.json, dossier.json — pipeline intermediatesrun_manifest.json — audit trailWhen the user asks "what did we get": list the artifacts, quote the executive summary, and note section count. Do not dump the full markdown unless they ask for the full text. Offer to convert to DOCX (primr writes both by default in full mode) or to feed it to a downstream consumer.
primr's outputs are inputs to the rest of the user's toolchain. Do not let a report sit unused. When a run completes, proactively offer the next step the user is likely to need.
For the mapping (Strategic Overview → which next action, AI Strategy module → which next action, hypotheses → which next action), see references/downstream-handoff.md.
primr persists durable research memory per company. Before launching a new run on a company you've researched before:
get_hypotheses(company=...) and read primr://memory/<company> to see what's already known.save_hypothesis(company=..., statement=..., confidence=..., evidence=...).Display confidence levels honestly (untested, validated, invalidated, confirmed). Do not promote hypotheses without new evidence.
primr's voice is hedged strategic analysis with cited sources. Mirror that:
See references/gotchas.md for the living list of real observed failure modes (cost gate, async, thin evidence, etc.) and how to avoid them. This file is the primary place for updates.
Key highlights:
Update references/gotchas.md from real failures when using the skill. Load it only when needed (progressive disclosure).
check_jobs shows the company already running, surface that and ask if they want to monitor it instead of starting a parallel run.dig or a passive-recon tool. Quality-checking an existing report → run_qa directly, no new estimate.~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.