campaigns
Campaigns
A campaign is a living record of an operation or recurring wave. Unlike an advisory, it can grow new package, extension, repository, model, skill, hash, domain, or exposed-host branches without becoming a new CVE. Unlike an incident, it describes the continuing operation and its current conditions.
Campaigns live at campaigns/<slug>.json. New branches are appended by acve campaign update; repeated updates are idempotent. lastSeen is the maximum timeline date. Status is derived at render and audit time: active when lastSeen is within dormantAfterDays, dormant otherwise, unless a human explicitly marks it contained with containedBy evidence.
Approximate dates
A timeline entry whose source gives only a month, season or period carries approximate: true and uses the first day of that period as date, with a note quoting the source's wording. The site renders approximate dates as the period ("Oct 2025"), never as a day. An entry with no source, or an identifier that cannot be quoted from a source, is not written at all — a campaign timeline with gaps is correct; one with invented branches is not.