Compare BHE posture between two points in time — what got better, what got worse, and which specific findings drove the change. Use when the caller asks "how have we improved", "what changed since last week", "produce a trend report", or at the close of a remediation cycle.
How this skill is triggered — by the user, by Claude, or both
Slash command
/bloodhound-enterprise:exposure-trendingThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
The single most stakeholder-relevant artefact a BHE deployment produces is a delta: the exposure index dropped from 72 to 54 over the last two weeks, driven by remediation of 8 ESC1 findings and the certification of 12 new Tier Zero members. This skill produces that delta.
The single most stakeholder-relevant artefact a BHE deployment produces is a delta: the exposure index dropped from 72 to 54 over the last two weeks, driven by remediation of 8 ESC1 findings and the certification of 12 new Tier Zero members. This skill produces that delta.
bhe-bootstrap has run.
The caller usually supplies two dates. Common shapes:
If the caller doesn't specify, default to a 30-day rolling window ending today. Format both dates as RFC3339 (YYYY-MM-DDTHH:MM:SSZ).
For each domain SID, call posture_history(domain_sid, from_date, to_date). The response is a time series of (captured_at, exposure_index, tier_zero_count, critical_count). Compute the delta — first vs last datapoint — and the trajectory (monotonically improving, oscillating, regressing).
Call attack_path_trends(from_date, to_date). The response shows per-(environment, finding) deltas: how many of each finding type were active at the start of the window vs. now. The big movers are usually a handful of categories — surface them.
For the top 3–5 categories with significant negative deltas (more findings now than at start), inspect what drove the increase:
domain_attack_path_details(domain_sid, finding=<category>) and look at accepted_until — were findings accepted but the acceptance expired?tag_history(tag_id=<tier_zero>) and look for additions in the window — new Tier Zero members typically multiply findings against everything that can reach them.audit_logs(action="...") for the window — were ingest jobs failing, leaving the graph stale?For categories with significant positive deltas (fewer findings), confirm the cause via the same audit signals — risk acceptance versus actual remediation.
Assemble:
{
"window": { "from": "...", "to": "..." },
"headline": {
"exposure_index": { "before": 72, "after": 54, "delta": -18 },
"tier_zero": { "before": 23, "after": 27, "delta": +4 },
"critical_risk": { "before": 11, "after": 4, "delta": -7 }
},
"domains": [
{ "domain_sid": "...", "exposure_delta": -22, "trajectory": "monotone" },
...
],
"findings": {
"improved": [
{ "finding": "ESC1", "before": 8, "after": 0, "driver": "remediation" },
...
],
"regressed": [
{ "finding": "Kerberoastable", "before": 3, "after": 6, "driver": "Tier Zero growth" },
...
]
},
"open": [
{ "finding": "DCSync", "principal": "...", "accepted_until": "...", "concern": "expires in 5 days" }
]
}
Keep the narrative tight — stakeholder reports get worse with length, not better.
posture_history per domain.attack_path_trends per session.domain_attack_path_details for top movers.tag_history for Tier Zero (drift attribution).audit_logs query for the window if drift attribution doesn't explain a regression.start_attack_path_analysis). Trend stability requires the comparison to be against analysis cycles the caller already trusted.npx claudepluginhub s3cr1z/capabilities --plugin bloodhound-enterpriseProvides UI/UX resources: 50+ styles, color palettes, font pairings, guidelines, charts for web/mobile across React, Next.js, Vue, Svelte, Tailwind, React Native, Flutter. Aids planning, building, reviewing interfaces.
Searches MemPalace before answering questions about past work, people, projects, or prior decisions. Returns verbatim stored content instead of guessing from model memory.