All lessons › Function F — AI Governance for Agentic Systems › Building the Governance Framework — Risk and Control
F1.0

Start here — what AI governance means

F1

This starts chapter F1. Its course guide is F1 in the Function F course guide →

▶
Lightboard recording

Not recorded yet. The lesson below is complete and runnable today — the video is added later without touching this page.

Video placeholderpublishes automatically from recordings/F1.0.mp4
Risk

A trustworthy-AI statement with no owner per property, so every property is somebody else's job.

Control

One register, risk-tiered, with each property mapped to a control, an owner and evidence that can be re-checked.

The lab

Take the seven properties and assign each an owner in your own organisation. The gaps are the programme.

◉Use case relevance

A list of approved products works at forty products. It does not survive a thousand agents, most of them assembled by people who do not think of themselves as building software. Governing autonomy is a different exercise from approving tools.

At CyberTravels. cybertravels/governance/__init__.py is six trustworthy-AI properties with two columns beside each: the function that owns it and the artefact that evidences it. Call unowned() with the properties your own statement claims and it returns the ones nothing in this system evidences — usually a longer list than anybody expects, because a statement is written before the artefacts are.

◴What this lesson is — Day 0, Day 1, Day 2

Governance stated as a table rather than a value: each property a trustworthy-AI claim makes, the function that owns it, and the artefact that evidences it — because a property with no artefact is a value, and values do not survive an audit.

Day 0 — why

A trustworthy-AI statement with no owner per property means every property is somebody else's job.

Day 1 — how

Assign each of the seven properties an owner, and read the three chapters as one unit built, evidenced and run.

Day 2 — measure

Properties with a named owner. Security owns one of seven outright, which is why this is not a security document.

Measure this

what to measuredenominator or target
trustworthy-AI properties with a named ownercount out of seven; security owns one outright
Who this function is for. Governance, risk and compliance, and the CISO office. GRC analysts, risk and compliance managers, control owners, privacy engineers and BISOs — anyone who has to answer for the estate rather than build it. What changes is what you hand over: a number somebody can compute, with a date on it, instead of a control statement.

▦The framework, and how it works

   approving tools                governing autonomy
   +-------------------+          +---------------------------+
   | a list of 40      |          | levels + conditions        |
   | grows forever     |    vs    | attach to behaviour        |
   | governs nothing   |          | still works at 1000 agents |
   +-------------------+          +---------------------------+

   seven trustworthy-AI properties, one owner each
   valid+reliable . safe . secure+resilient . accountable+transparent
   explainable . privacy-enhanced . fair

   security owns one of the seven outright

Someone at CyberTravels signed off on the platform. Function F is about whether that signature still means anything.

It has to, because the sign-off happened when CyberTravels was a chatbot. It now issues refunds, writes code, reads invoices and indexes contracts. Nothing about the approval was wrong on the day; everything about it is stale, and the approval process has no step that notices.

Governing autonomy rather than approving tools is the shift. A list of approved products works at forty products. CyberTravels will not stop at four agents, and neither will the list.

The vocabulary is trustworthy AI, and it is worth being precise about, because it is used loosely everywhere else. Seven properties, and not one of them belongs to a single team:

propertywhat it means for CyberTravels
valid and reliableit recommends hotels that exist, repeatably, and somebody measured that
safea wrong recommendation does not become a $5,000 refund
secure and resilientit withstands the twelve risks in the register, and recovers
accountable and transparenta named person owns it, and its actions are visible
explainablethe reason it issued a refund can be recovered afterwards
privacy-enhancedpassport numbers do not end up in a log or a vector store
fair, harmful bias managedit does not quietly serve some travellers worse

Security owns one of the seven outright. That ratio is the whole reason this function exists as more than a security document.

Contributing evidence to six properties you do not own only works if the evidence is in a form the other six owners can use, which is why the whole of Function F is written in one unit: a key control indicator. F1.1 defines it — a number computed from the estate, with a denominator, and a target set before the measurement is taken — and the three chapters are that one unit built, evidenced and run:

  • Chapter F1 — risk and control. Where the indicators come from. The register supplies the denominator, risk tiering supplies the target, control mapping supplies the subject, and F1.13 computes six of them against the CyberTravels repository and reports the gaps.
  • Chapter F2 — regulatory and compliance. The same indicators read as evidence. A travel company holds passports, payment data and health information, and each regime asks for a reading rather than a description — quotable to several of them because it was computed once.
  • Chapter F3 — the CISO office. The indicators run as a programme: sequenced by distance from target, owned by name, and reported to a board in numbers somebody in the room can re-compute.

Every lesson in this function carries a line under its concept saying what it contributes to that indicator or takes from it. Where a lesson looks like it belongs to a different argument, that line is the place to check.

Two rows of the register belong to this function outright: R2, where a guardrail was disabled for a demo and nobody had to approve it, and R12, where contracts were indexed for better answers and became searchable by contractors.

2 · Seven properties, and who at CyberTravels owns each

trustworthy-AI propertywho owns it at CyberTravelssecurity's share
valid and reliableengineering + the eval harness (C2.19)contributes evidence
safethe CyberTravels product owner + riskcontributes evidence
secure and resilientsecurityowns it
accountable and transparentthe named system ownercontributes evidence
explainable and interpretableengineering + model riskcontributes evidence
privacy-enhancedprivacy office + engineeringcontributes evidence
fair, harmful bias managedproduct owner + legalcontributes evidence
Security owns one of the seven and contributes evidence to the other six. A trustworthy-AI statement with no owner per property is a statement that every property is somebody else's job.

3 · What the sign-off actually covered

The approval was accurate when it was given. This is what changed underneath it, and which of those changes raised a ticket.

at approvaltodaydid it go through change management?
one agent, answers questionsfour agentsno
read-onlyissues refundsno
no repository accessopens and self-approves pull requestsno
no document storeindexes contracts and pricing modelsno
hosted model, fixed versionprovider upgrades it silentlyno — you may not be told
Five material changes, none of them ticketed. This is R2 and the lifecycle problem of F1.9 in one table, and it is why chapter 10 starts with an inventory rather than a policy.

4 · Three distances from the same question

chapter 10risk and controlinventory · tieringmapping · evidencechapter 11regulatoryobligations · documentationsupervisionchapter 12the CISO officesequencing · org designmetrics · stop authorityinside CyberTravels → to a regulator → to the board

5 · Which vocabulary is this control already in?

Governance work is mostly translation, and the first translation is the cheapest: a control you already operate is usually named in several framework vocabularies at once. cybertravels/governance/__init__.py is the tree increment this lesson adds — six trustworthy-AI properties, each with the function that owns it and the artefact that evidences it, because a property with no artefact is a value and values do not survive an audit. This skill is the lookup in the other direction:

▶Real time execution as skill

The skill — skills/regulatory/framework-reference-lookup/SKILL.md

name: framework-reference-lookup
description: >-
  Look up which control vocabularies a lesson maps to, and which lessons address
  a given control, from the commons' own mapping file. Use when answering "where
  is this framework covered", when preparing an audit response, or when checking
  a framework's coverage for gaps.
allowed-tools: Read, Grep, Glob

Two directions, and the second one is the one people actually ask for

Nobody asks what a lesson maps to. They ask "show me where human oversight is addressed", and the answer has to be a list of things that exist rather than a paragraph asserting coverage.

This reads curriculum/frameworks.json — the same file every lesson page is labelled from — so a reference table and a lesson's chips cannot disagree.

The four vocabularies

frameworkwhat it iswhen it is the right lens
OWASP Top 10 for LLM ApplicationsLLM01–LLM10, application-level risksreviewing a feature that calls a model
OWASP Agentic AI Top 10T1–T15, threats specific to agentsthe system plans and calls tools
MITRE ATLASadversary tactics against AI systemsdescribing what an attacker did
NIST AI RMF 1.0GOVERN, MAP, MEASURE, MANAGEorganising a programme, not a bug
EU AI ActRegulation 2024/1689, by articlean obligation, with a deadline

The first three describe what can go wrong. NIST describes how you organise to find out. The EU AI Act describes what you must be able to show. A control usually needs one of each, which is why lessons carry several.

When to use this

Preparing an audit or assurance response, checking coverage before claiming it, and picking the right vocabulary for a finding — an ATLAS tactic in a risk register and a NIST function in an incident write-up are both category errors.

Step-by-step

1 — Decide which direction you need. Lesson → controls for a reader; control → lessons for an auditor.

2 — Use the vocabulary the audience uses. Do not translate a regulator's article into a threat id for them.

3 — Read the coverage counts as a gap finder. A control with one lesson is thin; one with none is a hole.

4 — Follow the link before quoting the label. The labels are indicative mappings, not a certification.

Example

Output — from a real run:

   Art. 14  Human oversight                                      17 lessons
   B1.2    OWASP LLM01 · OWASP T6 · ATLAS AML.T0051 · ATLAS Initial Access · NIST MAP · EUAI Art. 15

Output contract

{
  "frameworks": [{"name": "str", "url": "str", "size": "str"}],
  "euai_articles": [{"article": "str", "title": "str", "lessons": 0}],
  "coverage": {"nist": {"GOVERN": 0}, "owasp": {"LLM01": 0}},
  "lookup": {"by_lesson": {"B1.2": ["str"]}, "by_control": {"Art. 14": ["str"]}}
}

Common edge cases

  • A lesson carries no labels. A0 is setup and maps to no control on purpose; that is declared, not missing.
  • One article dominates. Art. 15 covers accuracy, robustness and cybersecurity, so it is broad by construction.
  • A label with one lesson. Thin coverage, not necessarily wrong — check whether the control deserves more.

Failure modes

  • Quoting a mapping as compliance. These are indicative. Studying a lesson discharges no obligation.
  • Maintaining a second copy of the tables. They will diverge; read the one file.
  • Assuming a framework's ids are stable. OWASP renumbered the LLM Top 10 slugs between editions, which is why the links are fetched in CI.

Three ways to do this lesson. Pick one. They run the same procedure against the same code — what changes is who drives it, and how much you see.

1In your AI agent — you are taught

The agent reads the lesson, explains the idea, fetches the code, runs the check and answers your questions as you go. This is the one to take if you are here to learn.

Install it, once. From the folder you cloned. --all does every agent it finds on your machine:

python3 scripts/install_skills.py --all --lessons F1.0

Then restart your agent and open it in that folder. On Windows, if python3 says Python was not found, use python instead.

Then pick f1-0-start-here:

agentinstall just for this agentstart it
Claude Codepython3 scripts/install_skills.py --tool claude --lessons F1.0type /f1-0-start-here
GitHub Copilot (VS Code)python3 scripts/install_skills.py --tool copilot --lessons F1.0type /f1-0-start-here in Chat
Cursorpython3 scripts/install_skills.py --tool cursor --lessons F1.0type / in Agent chat and search for it
Codexpython3 scripts/install_skills.py --tool agents --lessons F1.0type $f1-0-start-here, or run /skills

2As one Python command — you just run it

No agent, no conversation. The same lesson executes and prints the same readback. Take this one if you have no assistant, if you are reviewing rather than learning, or if you want the result without the teaching around it.

python3 scripts/lesson.py F1.0

3Read the code, and the difference — nothing runs

Neither of the above, and no model needed. The first command writes CyberTravels exactly as it stood at the end of this lesson; the second prints the diff — the lines this lesson added or changed, and nothing from any later one.

python3 scripts/checkpoint.py --at F1.0 --out work/cybertravels
python3 scripts/checkpoint.py --at F1.0 --diff

On Windows, type python wherever these say python3 — and use \ instead of / in the paths. Everything else is identical. A0.0 step 2 explains why.

Ways 1 and 2 need a model; way 3 does not. A signed-in Claude Code CLI needs no API key, and any OpenAI-compatible endpoint works too. With neither, the audit exits 2 and says so rather than inventing an answer. A0.0 sets this up.

Ways 1 and 2 both end with the same readback: What I did, What changed, The number and Read this next. A step that was skipped or refused is reported as exactly that, never as a pass.

If you did the last lesson’s challenge, expect this to stop. Most challenges ask you to edit the code, and ways 1 and 2 will not overwrite your edits: you get stopped, not a failure, with two options — --out for a fresh folder that keeps your work, or --force to discard it and start this lesson clean.

✓What you just proved

Seven trustworthy-AI properties with a named owner each and security owning exactly one outright. Five material changes to CyberTravels since its approval, none of which raised a ticket. The three chapters laid out by how far from the system each one sits.

✎Your turn

Find the approval record for one agent you run and compare it to what that agent does today. The gap is the programme, and the reason nobody noticed it is what chapter 10 is for.

Skill source: skills/regulatory/framework-reference-lookup

← PreviousE5.6 · The regulatory clock — awareness, not confirmation