agentleFS
PKuschPKusch/remit/skills/evidence-pack/SKILL.md

evidence-pack

Skill0 starsChanged 58 days agoMITView on GitHub

Assemble an audit-ready evidence pack for an AI system from its governance record — assessments, controls, incidents, and the artefacts that substantiate them — and identify what is claimed but unevidenced. Use this whenever someone needs to demonstrate AI governance to an outside party: an auditor, a regulator, a certification body, a customer security or procurement review, a due-diligence questionnaire, or an internal audit function. Trigger on "we have an audit coming up", "the client wants evidence of our AI controls", "prepare for the regulator", "fill in this AI questionnaire", or any request to show rather than assert that AI governance exists. Use it proactively before an audit rather than during one, since its main value is finding the unevidenced claims while there is still time to fix them.

3 other projects use a version of this.

Adopted by

Most recently taken up by

The file

We split this skill into the rules it gives an agent

8 rules. About 0 are common, 6 are distinctive, and 2 are very specific to this project.

  • ≈0

    Common · estimate

    Many files like this have a rule of this kind.

  • ≈6

    Distinctive · estimate

    This author's own choices. Worth a look.

  • 2

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Distinctive:

    Run it before the audit, not during.

    line 13
  2. Distinctive:

    Do this first. An evidence pack assembled from a record that does not conform is a pack built on sand, and the validator also reports …

    line 48
  3. Very specific:

    Read the record (see framework/system-record.schema.json) and assemble: identification and ownership, purpose and out-of-scope uses, …

    line 56
  4. Distinctive:

    Limits enforced outside the model: If the evidence is a system prompt, the control is not enforced.

    line 68
  5. Distinctive:

    Halt mechanisms: Ask for the test record and the date.

    line 70
  6. Distinctive:

    Human oversight: Ask for approval records, override rates, and rejection counts.

    line 72
  7. Very specific:

    If the answer is "write a different sentence", the control is decorative and its satisfaction is not evidence.

    line 83
  8. Distinctive:

    Every exception should have an approver and an expiry.

    line 109

≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

Evidence pack

Governance that cannot be evidenced does not exist as far as an auditor is concerned. The purpose of this skill is less to produce a document than to find the gap between what the organisation believes it does and what it can demonstrate — while there is still time to close it.

Run it before the audit, not during. A pack assembled under deadline documents the gaps rather than fixing them.

What counts as evidence

Ranked by how well it holds up:

  1. Artefacts generated by the process itself — logs, test outputs, approval records, automated reports, version history. Strongest, because they are hard to produce retrospectively.
  2. Contemporaneous documents — assessments, decision records, meeting minutes with dates.
  3. Current-state documents — policies, procedures, architecture diagrams. Necessary, but they show intent rather than operation.
  4. Attestation — someone says it happens. Weakest, and appropriate only where the thing genuinely leaves no trace.

An auditor's core question is not "do you have a policy?" but "show me it operating." Rank accordingly, and flag anything resting on tier 4 alone.

Assembly

1. Establish the ask

Different audiences need different packs. A certification body wants clause and control conformity; a regulator wants statutory obligations; a customer wants risk answers about their data. Ask what standard or question set applies, and scope to it. A pack that answers everything answers nothing well.

2. Validate the record before you build anything on it

python scripts/validate_record.py records/the-system.record.yaml

Do this first. An evidence pack assembled from a record that does not conform is a pack built on sand, and the validator also reports governance warnings you will otherwise have to find by hand — observed tier exceeding declared, blast radius below the tools held, untested halts, memory without provenance, expired exceptions. That last one belongs in the pack whether you like it or not, and an auditor will find it if you don't.

3. Pull from the system record

Read the record (see framework/system-record.schema.json) and assemble: identification and ownership, purpose and out-of-scope uses, agentic configuration and tier history, supply-chain role, assessments with findings, incidents with remediation status, and open exceptions with expiry dates.

4. Substantiate each claim

For every control claimed as met, locate the artefact. This is the work, and it is where the value is. Three specific things to check hard, because they are asserted far more often than they are true:

  • Limits enforced outside the model. If the evidence is a system prompt, the control is not enforced. Record it as unevidenced.
  • Halt mechanisms. Ask for the test record and the date. "It exists" is not evidence it works.
  • Human oversight. Ask for approval records, override rates, and rejection counts. A gate with no recorded rejections invites the question of whether it is a gate — but note that a gate with a few rejections is not automatically better. Check whether the rejected items came straight back and were approved. Dissent that costs nothing is not review, and an approval rate massaged off 100% is a metric being managed rather than a control operating.

The test to apply to every claimed control

What would the system have to do to satisfy this while still causing the harm?

If the answer is "write a different sentence", the control is decorative and its satisfaction is not evidence. evidence/adversary/ found four controls that failed this test using nothing but ordinary engineering habit. Two of them cannot be salvaged by better inspection and should be recorded as unevidenced whenever you meet them:

  • Scope the system declared for itself. Compliance against a self-set boundary is circular. Ask who assigned it; if the agent did, the boundary is documentation of intent.
  • Provenance the system wrote about its own belief. The agent authored both the record and its justification. Provenance counts only when it points at something a third party recorded.

Auditors ask this question instinctively. Getting to it first is the entire value of assembling the pack early.

5. Report what is missing

The gap register is the most valuable page in the pack. For each: what is claimed, what evidence is absent, what would satisfy it, who owns it, and how long it takes to produce.

Some gaps can be closed before the audit. Some cannot, and for those the right move is a stated, owned remediation plan — auditors respond far better to a known gap with a plan than to a claim that collapses under a follow-up question.

6. Check the exceptions

Every exception should have an approver and an expiry. Expired exceptions are findings. An exception with no expiry is a policy change nobody wrote down, and it should be surfaced as such.

Output

Produce a directory, not a single file — auditors navigate, they do not read linearly.

evidence-pack-[system]-[date]/
├── 00-summary.md              Scope, systems covered, standard addressed, gap count
├── 01-system-record.yaml      The record itself
├── 02-assessments/            One file per framework assessment
├── 03-controls.md             Control-by-control, each with its evidence pointer
├── 04-incidents.md            History with remediation status
├── 05-gaps.md                 Claimed-but-unevidenced, with owners and dates
├── 06-exceptions.md           Live exceptions, approvers, expiry
└── artefacts/                 The evidence itself, referenced by 03

00-summary.md should state the gap count on the first page. Burying it reads as concealment, and an auditor who finds a buried gap stops trusting the rest of the pack.

Where honesty is the strategy

The temptation is to present the strongest possible case. Resist it — not only for the obvious reason, but because an auditor who finds one overstated claim re-examines every other claim, and a pack that flags its own weaknesses buys credibility for everything else in it.

Where a control is partially implemented, say partially and say which part. Where a finding is open, give the owner and the date. Where something was assessed and found wanting, include the assessment. That posture is also the one that survives the follow-up questions, which is where packs usually come apart.

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.