/deepen-offerings — make a company's offerings roster comprehensive
A focused preset of /research-company: re-capture a company with one goal —
drive its offerings.md to complete at the indexed level across every product line. It fixes a roster that
stopped early and now reads as a small catalog, so any count under-reports it. Follow research-company's
SKILL.md + firecrawl-capture.md for all capture mechanics (offerings ladder = §1.1; contract =
OFFERINGS.md) — this skill only presets the focus and the gap-targeting below. One override: pass
--verb deepen-offerings (not research-company) on every fc.py map/scrape call, so runcost.py
attributes this preset's credit cost to its own routine.
Steps
Resolve → slug.
python "$WEB_RESEARCH_HOME/scripts/store.py" find "$ARGUMENTS"folds any form (domain / name / alias / slug) to the key. NOT in store → nothing to deepen; run/research-company "$ARGUMENTS"for a first capture instead, then stop.When there is something to deepen, stamp the run clock after slug resolution:
RUN_STARTED_AT="$(python3 "$WEB_RESEARCH_HOME/scripts/runrecord.py" now)"Find the gaps. First read the frontmatter
enumerationflag — it's the explicit TODO:lines-omitted(a whole line was skipped — the## Provenancescope note names it) orunknown/absent (scope unverified) is the work;indexed-completeis already comprehensive → decline with reason (nothing to deepen). Then read## Provenance+site_notesand chase only the breadth gaps: whole product lines, an off-host / sibling subdomain (ashop.storefront), categories priced but not rostered, anything "out of scope" last run. Leave the by-design leaf omissions (dose / quantity tiers, per-SKU PDP price depth,Catalogleaves) — chasing those just burns credits. Noenumerationflag and no scope note (a pre-1.2 file) → treat the whole roster as unverified and re-enumerate off the index pages.Re-capture for breadth. Force a refresh (the warm-capture skip never applies here); drive
offerings.mdto complete at the indexed level across all lines + the step-2 gaps. Refresh the## Provenancescope note, and set the frontmatterenumerationto the achieved state —indexed-completeif every line was reached, orlines-omitted(naming the residual line in the scope note) if one was found but still deferred — bumpingschema_versionto"1.2"if the file predates it. That one token is what graduates a count from "floor" to trustworthy-as-breadth (contract:OFFERINGS.md→enumeration).Record the run (required — the run is not done until this is written). After
offeringscheck.pypasses, write a run record:python3 "$WEB_RESEARCH_HOME/scripts/runrecord.py" write \ --slug <slug> \ --verb deepen-offerings \ --started-at "$RUN_STARTED_AT" \ --artifact offerings.mdTool is env-detected for both Claude Code and Codex — no
--toolneeded. Pass--model <id>if you know it — the model you were told at session start; else it falls back tounknown. Add--status partialif the run fell short. Omit the record only if the preset declined before doing any work.
Scope: offerings only (a full refresh or first capture is /research-company); it spends Firecrawl, so
research-company's credit pre-flight applies.