Anthropic OAuth LLM, entitlements (feature 1), renewals, + 7 enhancements

- LLM: Anthropic Sonnet 5 (effort=low) via OAuth Bearer (Claude Code keychain
  token, expiry-aware); NVIDIA/LM Studio endpoints kept commented for switch-back.
- Entitlements: scripts/import_entitlements.py joins ACL export to accounts by
  normalized parent name (324/342 matched; ID column Excel-corrupted), maps
  products->capabilities via data/product_capability_map.json. Raw ACL csv and
  entitlements.json are gitignored (confidential); accounts.json carries derived
  currentProducts + ownedCapabilityIds. Owned capabilities tag briefs EXPANSION.
- Renewals: local renewal-proximity score boost (window 365d, max +0.10) +
  'renewals' report; briefs/digests show RENEWAL WINDOW context.
- Batch runs: loop --limit/--rep with persistent cursor (strategic + stale-first).
- Digests: per-rep HTML export; timestamped digest_<date>_<time>.md kept forever.
- Account narrative memory fed into relevance/synthesis; synthesis maintains it.
- Signal quality gate drops PR fluff pre-LLM; SEC EDGAR filings connector.
- Citation verification: talking points must cite [S#] signals or are dropped.
- Brief filenames use account-name slug; whitespace report + installed-base view.
- USAGE.md: full command/flag/env reference.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
2026-07-11 19:12:36 -04:00
parent 9131e83c08
commit c2854ba163
23 changed files with 22050 additions and 144 deletions

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,142 @@
{
"_note": "Pilot target list (~200 total to come). REAL fields: accountName, domain, industry, crmTier (verbatim CRM tier where known). crmTier->accountTier mapping used by the 3-band scorer: Tier 1->strategic, Tier 2->enterprise, Tier 3->growth, Tier 4->growth (NOTE: Tier 3 & 4 currently collapse to the same scoring weight — extend scorer to 4 bands to distinguish). PLACEHOLDER fields to confirm from CRM/install-base: assignedRep, currentProducts (drives anti-signal suppression — empty means nothing suppressed yet), targetContacts (empty; LLM/signal authors identify the ideal contact, CRM enrichment fills the rest).",
"accounts": [
{
"accountId": "acct_lowes",
"accountName": "Lowe's Companies",
"domain": "lowes.com",
"industry": "Retail (Home Improvement)",
"accountTier": "strategic",
"assignedRep": { "id": "rep_sarah", "name": "Sarah K.", "email": "sarah.k@yourco.com" },
"currentProducts": [],
"targetContacts": [],
"lastRunAt": null
},
{
"accountId": "acct_duke_energy",
"accountName": "Duke Energy",
"domain": "duke-energy.com",
"industry": "Energy & Utilities",
"accountTier": "strategic",
"assignedRep": { "id": "rep_priya", "name": "Priya R.", "email": "priya.r@yourco.com" },
"currentProducts": [],
"targetContacts": [],
"lastRunAt": null
},
{
"accountId": "acct_fedex",
"accountName": "FedEx",
"domain": "fedex.com",
"industry": "Transportation & Logistics",
"accountTier": "strategic",
"assignedRep": { "id": "rep_sarah", "name": "Sarah K.", "email": "sarah.k@yourco.com" },
"currentProducts": [],
"targetContacts": [],
"lastRunAt": null
},
{
"accountId": "acct_walmart",
"accountName": "Walmart",
"domain": "walmart.com",
"industry": "Retail",
"accountTier": "strategic",
"assignedRep": { "id": "rep_sarah", "name": "Sarah K.", "email": "sarah.k@yourco.com" },
"currentProducts": [],
"targetContacts": [],
"lastRunAt": null
},
{
"accountId": "acct_hca",
"accountName": "HCA Healthcare",
"domain": "hcahealthcare.com",
"industry": "Healthcare",
"accountTier": "strategic",
"assignedRep": { "id": "rep_marcus", "name": "Marcus L.", "email": "marcus.l@yourco.com" },
"currentProducts": [],
"targetContacts": [],
"lastRunAt": null
},
{
"accountId": "acct_chs",
"accountName": "Community Health Systems",
"domain": "chs.net",
"industry": "Healthcare",
"accountTier": "enterprise",
"assignedRep": { "id": "rep_marcus", "name": "Marcus L.", "email": "marcus.l@yourco.com" },
"currentProducts": [],
"targetContacts": [],
"lastRunAt": null
},
{
"accountId": "acct_acxiom",
"accountName": "Acxiom",
"domain": "acxiom.com",
"industry": "Marketing & Data Services",
"accountTier": "enterprise",
"assignedRep": { "id": "rep_priya", "name": "Priya R.", "email": "priya.r@yourco.com" },
"currentProducts": [],
"targetContacts": [],
"lastRunAt": null
},
{
"accountId": "acct_booz_allen",
"accountName": "Booz Allen Hamilton",
"domain": "boozallen.com",
"industry": "Consulting & Government Services",
"crmTier": "Tier 3",
"accountTier": "growth",
"assignedRep": { "id": "rep_priya", "name": "Priya R.", "email": "priya.r@yourco.com" },
"currentProducts": [],
"targetContacts": [],
"lastRunAt": null
},
{
"accountId": "acct_dominion",
"accountName": "Dominion Energy",
"domain": "dominionenergy.com",
"industry": "Energy & Utilities",
"crmTier": "Tier 1",
"accountTier": "strategic",
"assignedRep": { "id": "rep_priya", "name": "Priya R.", "email": "priya.r@yourco.com" },
"currentProducts": [],
"targetContacts": [],
"lastRunAt": null
},
{
"accountId": "acct_hope_gas",
"accountName": "Hope Gas Holdings",
"domain": "hopegas.com",
"industry": "Energy & Utilities (Natural Gas)",
"crmTier": "Tier 3",
"accountTier": "growth",
"assignedRep": { "id": "rep_priya", "name": "Priya R.", "email": "priya.r@yourco.com" },
"currentProducts": [],
"targetContacts": [],
"lastRunAt": null
},
{
"accountId": "acct_markel",
"accountName": "Markel",
"domain": "markel.com",
"industry": "Insurance",
"crmTier": "Tier 3",
"accountTier": "growth",
"assignedRep": { "id": "rep_marcus", "name": "Marcus L.", "email": "marcus.l@yourco.com" },
"currentProducts": [],
"targetContacts": [],
"lastRunAt": null
},
{
"accountId": "acct_gw_mfa",
"accountName": "GW Medical Faculty Associates",
"domain": "gwdocs.com",
"industry": "Healthcare",
"crmTier": "Tier 4",
"accountTier": "growth",
"assignedRep": { "id": "rep_marcus", "name": "Marcus L.", "email": "marcus.l@yourco.com" },
"currentProducts": [],
"targetContacts": [],
"lastRunAt": null
}
]
}

View File

@@ -0,0 +1,48 @@
{
"_note": "Maps entitlement product taxonomy (Product BU / Family / Midfamily / Subfamily substrings, case-insensitive regex) to capability ids. Matching runs LOCALLY in scripts/import_entitlements.py — no LLM. Families that match nothing are logged to output/state/entitlement_unmapped.json; extend this map from that log.",
"patterns": [
{"match": "VSAN", "capability": "cap_vmw_vsan"},
{"match": "VSPHERE|VVS|VVEP|ESXI", "capability": "cap_vmw_vsphere"},
{"match": "\\bVCF\\b|CLOUD FOUNDATION", "capability": "cap_vmw_vcf"},
{"match": "NSX|VDEFEND", "capability": "cap_vmw_nsx"},
{"match": "\\bAVI\\b|LOAD BALANC", "capability": "cap_vmw_avi"},
{"match": "ARIA|VREALIZE|VCF OPS|OPERATIONS MGMT", "capability": "cap_vmw_aria"},
{"match": "TANZU|KUBERNETES", "capability": "cap_vmw_tanzu"},
{"match": "WORKSPACE ONE|WS1|AIRWATCH", "capability": "cap_vmw_workspaceone"},
{"match": "HORIZON", "capability": "cap_vmw_horizon"},
{"match": "SITE RECOVERY|LIVE RECOVERY|SRM|RANSOMWARE", "capability": "cap_vmw_live_recovery"},
{"match": "\\bHCX\\b", "capability": "cap_vmw_hcx"},
{"match": "PRIVATE AI", "capability": "cap_vmw_private_ai"},
{"match": "ENDEVOR", "capability": "cap_mf_endevor"},
{"match": "BRIGHTSIDE|ZOWE", "capability": "cap_mf_brightside"},
{"match": "\\bIDMS\\b", "capability": "cap_mf_idms"},
{"match": "DATACOM", "capability": "cap_mf_datacom"},
{"match": "DB2", "capability": "cap_mf_db2tools"},
{"match": "TOP SECRET|ACF2|ACF-2", "capability": "cap_mf_security"},
{"match": "COMPLIANCE EVENT|DATA CONTENT DISCOVERY|CLEANUP", "capability": "cap_mf_compliance"},
{"match": "OPS/MVS|OPSMVS", "capability": "cap_mf_automation"},
{"match": "SYSVIEW", "capability": "cap_mf_sysview"},
{"match": "MAINFRAME OPERATIONAL INTELLIGENCE|\\bMOI\\b", "capability": "cap_mf_aiops"},
{"match": "CA 7|CA7|CA-7", "capability": "cap_mf_workload_automation"},
{"match": "NETMASTER", "capability": "cap_mf_network"},
{"match": "VANTAGE|DISK BACKUP", "capability": "cap_mf_storage"},
{"match": "RALLY|AGILE CENTRAL", "capability": "cap_es_rally"},
{"match": "CLARITY|PPM", "capability": "cap_es_clarity"},
{"match": "VALUEOPS|CONNECTALL", "capability": "cap_es_valueops_insights"},
{"match": "\\bAPM\\b|APP.*PERFORMANCE|INTROSCOPE|WILY", "capability": "cap_es_dx_apm"},
{"match": "DX OPERATIONAL|DX AIOPS|DX O2", "capability": "cap_es_dx_aiops"},
{"match": "NETOPS|SPECTRUM|PERFORMANCE MGMT.*NET", "capability": "cap_es_dx_netops"},
{"match": "APPNETA", "capability": "cap_es_appneta"},
{"match": "AUTOMIC|AUTOSYS|WORKLOAD AUTOMATION", "capability": "cap_es_automation"},
{"match": "LAYER ?7|API MANAGEMENT|API GATEWAY", "capability": "cap_es_layer7"},
{"match": "SITEMINDER|ACCESS MANAGEMENT|\\bSSO\\b", "capability": "cap_iam_siteminder"},
{"match": "\\bVIP\\b.*AUTH|SYMANTEC VIP", "capability": "cap_iam_vip"},
{"match": "\\bPAM\\b|PRIVILEGED", "capability": "cap_iam_pam"},
{"match": "IDENTITY (GOVERNANCE|SUITE|MANAGER)|\\bIGA\\b", "capability": "cap_iam_iga"},
{"match": "DIRECTORY", "capability": "cap_iam_directory"},
{"match": "ADVANCED AUTH|AUTH HUB", "capability": "cap_iam_advauth"}
]
}