Agency Damage Assessment
AI Skills

Agency Damage Assessment

Skip to main content
Table of Contents
< All Topics
Print

Agency Damage Assessment

You assess one institution at a time: how much of its capacity, independence and mission was damaged in 2025–present, by whom and with what instruments, and what it would take to reverse each harm. The full charter is docs/agency-damage-assessment-methodology.md. Read §1 (the gate), §6 (dimension anchors), §8 (Personnel Ledger) and §12 (claims-integrity gate) before scoring.

Boundaries — do not cross them

Instrument Unit Relationship to this skill
DMA (malice-evaluator) a person’s actions A person who damaged the agency gets their own profile. Link it; never score the person here.
LIA (legislative-impact-scoring) one action (bill, EO, rule) Consume an existing LIA as evidence for D3/D4/D6; never re-score the action.
WLM (policy-winners-losers-mapping) a market Out of scope.
Agency Damage Assessment one institution Scores institutional damage only.

Workflow

  1. Gate (§1). The subject is a federal institution, or a federally chartered or

funded body, with documented 2025–present actions against its staff, funding, authority, data or mission. Actor bodies (a White House task force, a DOGE team, a fund) are instruments of harm: list them in the harmed agency’s profile, not as subjects.

  1. Scaffold from the template into agent-base/knowledgebase/_drafts/.md, with

category: org-government. Slug = agency name in kebab case (no -profile suffix). Check that the slug is unused first.

  1. Research.
  • Primary-record data first (see “Primary-record data” below). Read the committed

files in docs/ada-pilot/data/ before spending any Tavily or CourtListener budget.

  • Tavily: impact plus DOGE cuts; firings, resignations and removals; IG, GAO and

court findings.

  • CourtListener: litigation naming the agency, filed after 2025-01-20. Metered:

follow docs/courtlistener-api.md.

  • Prefer GAO, IG, court records and agency data over news. Prefer news over

advocacy trackers.

  1. Personnel Ledger (§8).
  • Name only senior officials (SES, political appointees, commissioners,

IGs, statutory office-holders) or people already publicly reported. Count rank-and-file staff in aggregate rows, never by name.

  • Each row has: action type, date, source link, and the capability lost.
  • Link existing person profiles with [[slug]].
  1. Score (§6–7).
  • Stubs stay ada_status: stub, with every dimension unscored.
  • Scoring needs evidence at the tier §5 requires.
  • The composite is withheld below 70% coverage.
  • Recoverability is never folded into the composite.
  1. Reversal pointers (§9). For each damaged dimension: the remedy class

(statutory, regulatory, reinstatement, funding, data restoration, oversight/IG, litigation), what to preserve now, and the recoverability horizon.

  1. Claims-integrity gate (§12) before any promotion. Then make promote SLUG=.

Never publish autonomously.

Primary-record data (read before searching)

Three committed files hold the primary records for the two dimensions the pilot could not score above 2 without them. They are evidence for D1 and D6 under Rule 6-c (a Documented fact traced to the primary record, not a news report or a third-party chart of one). They are never a score, and none of them proves a motive. Detail, limits and the sources that could not be used: docs/ada-osint-sources.md.

Source File Evidences Refresh (Mac) Sandbox
USAspending budgetary resources docs/ada-pilot/data/usaspending-budgetary-resources.json D6: budget authority, obligations and obligation rate per fiscal year, FY2022-FY2026, toptier agencies only python scripts/ada_usaspending.py --apply host blocked: run with the sandbox off
OPM Federal Workforce Data docs/ada-pilot/data/opm-workforce.json D1: realized headcount, gross separations and accessions by mechanism (RIF, deferred resignation, other) python scripts/ada_opm_workforce.py fetch … then summarize --targets docs/ada-pilot/data/stub-source-map.json --apply (needs pyarrow) reachable via curl
OMB apportionments docs/ada-pilot/data/omb-apportionment.json D6: budget authority, total apportioned and hold-type footnotes (with whether each is still on the latest iteration) for the bureaus the map marks fetchable, FY2024-FY2026 python scripts/ada_omb_apportionment.py index, fetch --fys 2024,2025,2026, summarize --apply reachable via curl

docs/ada-pilot/data/stub-source-map.json maps each stub slug to its OPM unit and OMB bureau (and says when the unit is not isolable). Look the agency up there first. The sources are also reachable through the OSINT pre-pass as api.usaspending, api.opm_fwd and api.omb_apportionment (the last two read the committed files; a brief line holds only the headline, so read the file for separations, hold-footnote text and occupational groups).

What they cannot show:

  • USAspending reports a department, not a bureau inside it; a falling obligation rate

is slower spending against a possibly larger denominator (multi-year and one-time funds), not withholding. The current fiscal year is partial and never compared. The baseline is FY2024 (Rule 2).

  • OPM counts staff on the payroll at the file’s date, not FTE; it excludes bodies OPM

does not cover, redacts some fields, and a sub-element inside a larger one is context, not that unit’s headcount. A deferred resignation is voluntary: report it beside, never as, a firing.

  • OMB shows apportionment, which is permission to obligate, not obligation or payment: a lower or later apportionment is evidence of a constraint, never proof of withholding. Footnote matching is a keyword match; read the footnote text before citing it. Bodies whose money sits inside a larger account, that are funded by transfer (CFPB), or that have no file in the index are not covered; the map says which.

Cite the source URL and the file’s retrieved date, and run the refresh before relying on a figure older than the profile’s ada_as_of. If a file is missing the unit, say “unverified”, never “no harm” (Rule 6-d).

Fact discipline

Every claim needs a citation. Single-source claims are prefixed “According to …”. An empty CourtListener result is “unverified”, never “no litigation”. These profiles name real, living officials, so the accountability-profile standards apply to every ledger row.

Was this article helpful?
0 out of 5 stars
5 Stars 0%
4 Stars 0%
3 Stars 0%
2 Stars 0%
1 Stars 0%
5
Please Share Your Feedback
How Can We Improve This Article?