← Projects
Part 5 · AEGIS · AI governance · DITA · 11 min read

When the regulator reads the docs

Model documentation suddenly has readers who couldn't care less how to call an API, but care immensely about whether your claims are legal fiction. The evidence they demand already lives in our DITA source—if only we stop handling compliance like a frantic paper-shuffling exercise in a burning building.

This is a portfolio post about a design, AEGIS v0.1. Google hasn't engaged, sponsored or endorsed it. Sample content is adapted from Google's Gemma documentation, published under the Creative Commons Attribution 4.0 licence, and is modified from the original1. Authority-only topics, keys, pull request numbers and all projected numbers are written for this post. It describes a documentation tool and isn't legal advice.

READ TO USE ITREAD AS EVIDENCEDeveloperhow do I call it?Architectwill it fit my system?Support engineerwhy did it fail?Compliance leadcan we prove it?AI Officesend latest versionDownstream providercan I meet my duty?Internal auditwho approved it, when?One DITA sourcetopics · keys ·audienceGit history, reviewsevidence adds:version · source ·approverone source, two kinds of reader
Fig. 1The same content serves two kinds of reader. Evidence readers also need the version, the source and the approver, and a DITA source in Git already records all three.

For virtually the entire existence of technical writing, manuals have existed for three reasonably harmless groups of people. Developers read them to assemble things, architects read them to plan things, and support engineers read them to discover why those things have exploded into a thousand smoking pieces. They read simply to get on with their day. But on 2 August 2025, the European Union entered the chat, meaning providers of general-purpose AI models suddenly found themselves saddled with a fourth, deeply humorless reader: someone who reads documentation purely to see if they can catch you out on a technicality.

The European AI Office can drop by whenever it pleases and demand your full technical portfolio. A third-party firm trying to build an app on your foundation model can demand the exact specifications needed to save their own skin, and the official Code of Practice gives you precisely 14 days to hand it over. And inside your own building, an increasingly terrified compliance officer needs to be able to present water-tight proof before the inspectors even finish taking off their coats. These people have zero interest in your Python endpoints. What they want to know is which Git commit produced that claim, which training run justifies it, and precisely which human being is prepared to stake their career on its accuracy.

This is fundamentally an information architecture problem masquerading as a catastrophic legal hazard. Which means it belongs on the technical writers' desks, because we already have the tools to sort it out. We shall examine this through two lenses: the weary writer trying to tame the content, and the engineer who actually owns the underlying facts. And then we will look at the cold, hard numbers for the enterprise.

Writer's lens

Stop acting as an unpaid administrative photocopier for the legal department. Wire regulatory obligations directly into your DITA maps, and let automated CI catch stale text and missing chapters before someone serves you a subpoena.

Developer's lens

State each engineering metric once as a central key in Git. Approval is just your normal pull request review. And confidential training metrics are locked down so thoroughly that they will never, ever leak into public manuals.

Article 53 · 2025

On the new reader

Article 53 of the EU AI Act saddles every general-purpose AI provider with three separate documentation burdens. You must maintain deep technical documentation for the authorities under Annex XI, provide system integration information to downstream builders under Annex XII, and publish a comprehensive public summary of everything your scrapers digested during training. The Digital Omnibus on AI, Regulation (EU) 2026/1744, kicked the deadlines for high-risk systems down the road to late 2027 and 2028. But these core documentation duties? They didn't budge an inch.

As of 2 August 2026, Brussels can fine a company up to €15 million or 3% of total worldwide turnover—whichever hurts more. And right near the top of their list of unforgivable sins is handing over documentation that is incomplete, out of date, or just plain wrong. Google willingly signed the Code of Practice back in July 2025, which means agreeing to preserve every iteration of this technical evidence for at least ten years. Ten. Entire. Years.

ReaderAsks forTime limit
AI Office, national authoritiesAnnex XI technical documentation7On request
Downstream providersAnnex XII integration information814 days13
The publicA summary of the training content6At release
Compliance leadEvidence for each requirement, with an approverBefore release

Across the Atlantic, the NIST AI Risk Management Framework remains technically voluntary, though NIST is currently giving it a thorough overhaul. Yet its requirements read like a checklist of things you ought to have written down anyway: GOVERN 1.6 requires a meticulous inventory of all deployed models, MAP 2.2 insists on documenting cognitive blind spots and human safeguards, and MEASURE 2.9 expects the entire system to be rigorously tested, validated, and explained in clear prose. In AEGIS, these aren't treated as panic-inducing audit inquiries; they are simply treated as automated requirements within the pipeline.

Look at that list through the eyes of an experienced documentation architect. These aren't terrifying legal hurdles; they are audiences. Each has a specific deliverable, distinct clearance parameters, and tailored output targets. We have been solving this exact problem for twenty-five years using modular DITA maps, metadata profiling, and conditional reviews.

ANNEX XI · SECTION 1 · ELEMENTS AND DEVELOPMENT PROCESS1(a)Intendedtasks1(b)Acceptableuse1(c)Releasedate1(d)Architecture,parameters1(e)Input,output1(f)Licence2(a)Integration2(b)Design,method2(c)Trainingdata2(d)Trainingcompute2(e)Energy4 stated or linked4 partly, or stated twice3 not stated1(e): video in the introduction, missing from the modality table1(f): Apache 2.0 on the card; the overview also links the Gemma Terms of Useseven of eleven need a person to chase them
Fig. 2Seven of 11 Annex XI items need a person to chase them when a pack starts from the public card. This doesn't show that Google lacks the information. Annex XI documentation goes to the AI Office on request and isn't public24.
The writer's lens

On writers and evidence

When an inquiry lands today, compliance officers invariably sprint to the public-facing model card. I sat down and cross-referenced the Gemma 4 model card against the 11 explicit requirements of Annex XI, Section 1. Exactly four items were properly stated or linked. The remaining seven were missing entirely, half-finished, or stated in two mutually contradictory ways across the same website.

Mind you, blank spaces aren't even the worst bit. The real headache is the content that actually is there. In the Gemma 4 documentation, language coverage is explained twice. Up in the introduction, it airily claims support for "over 140 languages". Scroll down to the capabilities section, and it suddenly announces: "Out-of-the-box support for 35+ languages, pre-trained on 140+ languages". Both are technically true, provided you understand the subtle nuance between baseline pre-training and tuned inference. But when a compliance paralegal is building an evidence pack by copying text into Word, they simply choose whichever sentence looks prettier, paste it in, and record nothing about where it came from. And now that the original pages have moved to gemma.ai, their manual copy-paste links directly to a ghost town.

And that is how technical writers are reduced to corporate scribes. The compliance team sends a frantic email asking which number is the real one. The writer investigates, replies in an unsearchable email thread, and drops the paragraph into a form. Three weeks later, an engineer tweaks the model, updates Git, and nobody bothers to tell the Word document. Figure 3 shows the painful divergence.

TODAY · THE COPY PATHWITH AEGIS · THE SOURCE PATHPublished pagemodel cardCopy into form.docxversion lostEmail ownersquestionssource lostApprove by emailthreadapproval apartShared folderwhat was sentdrifts on next releaseDITA sourcetopics · keys · GitRelationship tablerequirement → topicFour checksdecide pass or failReview PRlead releasesSealed packmanifest · 10 yearscommit · revised date · model version · approvertravel with every item
Fig. 3The copy path loses the version, the source and the approval one step at a time. The source path never leaves the place where they are kept.
1 · REQUIREMENT TOPICSaia.xi-1daia.xi-2daia.xii-2bnist.measure-2.9check_coverage readswhich keys must beanswered2 · RELATIONSHIP TABLExi-1d → overviewxi-2d → train-infraxii-2b → io-formatsm-2.9 → benchmarkscheck_coverage readswhether each hasevidence3 · EVIDENCE TOPICSmodels-overviewpublic · 2026-07-30training-infraauthority · 2026-07-30io-formatsdownstream · 2026-07-30benchmarkspublic · 2026-07-30check_currency andcheck_approval readdates and Git4 · DITAVAL PROFILESpublic.ditavalpublic onlydownstream.ditaval+ downstreamauthority.ditaval+ authoritycheck_consistency teststhat nothing leaks
Fig. 4Four DITA layers sit between a requirement and a pack. Each layer is read by one check, so a broken link, an old date or a leak shows up as a named failure.
DITA 1.3

On evidence

AEGIS invents no new formats, because inventing formats is what bureaucrats do when they are bored. It relies entirely on four standard DITA 1.3 mechanisms that any proper enterprise tech writer already understands. Each regulatory mandate becomes a topic identified by a key. A relationship table maps that mandate straight to the topics answering it. Every piece of technical evidence records its revision timestamps directly in its XML prolog. And standard DITAVAL profiles filter by @audience to govern who is allowed to read what.

In source code, it looks delightfully simple. A regulatory requirement is managed by the documentation architect as a self-contained reference topic. It outlines the expectation in plain English and embeds the statutory citation right in its metadata so the final compiler knows where to point.

requirements/aia-xi-2d.ditareference
<reference id="aia-xi-2d">
  <title>Annex XI 2(d): computational resources used for training</title>
  <shortdesc>Describe the compute used to train the model, such as
    floating point operations and training time.</shortdesc>
  <prolog><metadata>
    <othermeta name="legal-source"
      content="Regulation (EU) 2024/1689, Annex XI, Section 1, point 2(d)"/>
    <othermeta name="required-for" content="authority"/>
  </metadata></prolog>
</reference>

A requirement is a topic, so it has an owner, a history and a review, like any other content.

maps/gemma4-evidence.ditamapreltable
<reltable title="Gemma 4 · Annex XI">
  <relheader>
    <relcolspec type="reference"/>  <!-- requirement -->
    <relcolspec type="reference"/>  <!-- evidence -->
  </relheader>
  <relrow>
    <relcell><topicref keyref="aia.xi-1e"/></relcell>
    <relcell><topicref href="gemma4/modalities.dita"/>
             <topicref href="gemma4/io-formats.dita"/></relcell>
  </relrow>
  <relrow>
    <relcell><topicref keyref="aia.xi-2d"/></relcell>
    <relcell><topicref href="gemma4/training-infrastructure.dita"/></relcell>
  </relrow>                        <!-- link proposed by AEGIS, approved in PR #457 -->
</reltable>

The evidence map is a separate map that only AEGIS builds, so these links never appear on the published model card.

gemma4/languages.ditaconcept · keys keep two true numbers apart
<concept id="gemma4-languages" audience="public">
  <title>Language support</title>
  <prolog>
    <critdates><revised modified="2026-07-30"/></critdates>
    <metadata><othermeta name="model-version" content="gemma-4"/></metadata>
  </prolog>
  <conbody>
    <p>Gemma 4 is pre-trained on <ph keyref="gemma4-langs-pretrain"/> languages.
       It supports <ph keyref="gemma4-langs-supported"/> languages out of the box.</p>
  </conbody>
</concept>

The 140 and the 35 from the model card become two keys with two labels. Every pack, and the public page, reads the same values.

profiles/downstream.ditavalDITAVAL
<val>
  <prop att="audience" val="public"     action="include"/>
  <prop att="audience" val="downstream" action="include"/>
  <prop att="audience" val="authority"  action="exclude"/>
</val>

One source builds three packs: public, downstream and authority. Each profile only adds audiences, so no reader gets a narrower audience's topics.

Once this plumbing is fastened together, the writer's life becomes remarkably civilized:

  • Answer once. You wire a statutory requirement to an evidence topic exactly once in a pull request. From that moment on, every future dossier compiles automatically. Cost to handle the next request? Virtually zero.
  • Drift becomes a broken test. If a technical chapter falls behind the current model build, check_currency trips an alarm in CI, unless it's drawing dynamically from updated keys.
  • Gaps trigger early warnings. check_coverage audits the map and flags every unanswered requirement immediately. For those holes, Gemini proposes an existing topic, which a human architect either approves or rejects with a single click.
  • Writers do actual writing. Feedback arrives as normal Git comments on lines of code, rather than panicked emails from lawyers asking what on earth a FLOP is.
Writer's task in one Annex XI packBy handWith AEGIS
Find the current text for each item3.0 h0 h
Answer "which sentence is right" questions4.0 h0 h
Paste and reformat into the form2.5 h0 h
Fix stale topics that a check flags0 h0.5 h
Review link proposals with the IA0 h0.5 h
Total9.5 h1.0 h

Modelled for this post, not measured. The writer's share of the 32-hour manual pack in Figure 9.

The technical writing team already maintains the source of truth. The modern regulator simply insists we prove it.

The developer's lens

On developers and facts

Engineers possess the raw data that regulators obsess over: GPU counts, petawatt-hours, compute calculations, evaluation benchmarks. Right now, developers are peppered with queries from every corner of the enterprise. Legal wants the compute stats for a memo. Compliance demands training metrics for a spreadsheet. And confidential hardware figures are flung across the company as insecure email attachments.

Then consider the poor sod building an application on your platform. They are legally required to integrate your model responsibly under Annex XII, yet they are forced to squint at a glossy marketing webpage and guess which performance metrics are actually up to date.

Google sorted out this philosophy years ago. In Software Engineering at Google, the doctrine is iron-clad: documentation should be treated exactly like code, documents must have explicit owners, and every change must pass through standard code review. AEGIS simply applies that exact same engineering discipline to regulatory compliance. A fact is a key. Its steward is a code owner. And its compliance sign-off is a regular Git review.

keys/gemma4-authority.ditamapfacts owned by research engineering
<map>
  <title>Gemma 4 training facts (authority only)</title>
  <keydef keys="gemma4-train-hardware" audience="authority">
    <topicmeta><keywords><keyword>[value from the training lead]</keyword></keywords></topicmeta>
  </keydef>
  <keydef keys="gemma4-train-flops" audience="authority">
    <topicmeta><keywords><keyword>[value from the training lead]</keyword></keywords></topicmeta>
  </keydef>
</map>

Placeholders, because these values aren't public. The engineer edits one file. Every authority pack picks up the change, and no public build can resolve these keys.

.github/CODEOWNERSwho approves what
# Facts: only research engineering can approve a change
/keys/gemma4-authority.ditamap      @gemma-research-eng
# Requirements and links: the information architect
/requirements/                      @docs-ia
/maps/*-evidence.ditamap            @docs-ia
# Model docs: the Gemma writers
/gemma4/                            @gemma-docs

GitHub requests a review from the code owner of every file a pull request changes21. check_approval reads that review history. The agent's account is never a code owner.

.github/workflows/aegis.ymlruns on every docs pull request
on:
  pull_request: { paths: ["keys/**", "gemma4/**", "maps/**", "requirements/**"] }
jobs:
  evidence-checks:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - run: aegis check --set annex-xi --profile authority
      - run: aegis check --set annex-xii --profile downstream --leak-test

The checks run like a linter on every pull request, so a problem shows up while the author still has the change open.

aegis check · PR #4622 findings
$ aegis check --set annex-xii --profile downstream --leak-test
coverage      11/11 requirements answered
currency      12/12 topics current for gemma-4
approval      12/12 approved by a code owner
consistency   FAIL gemma4/io-formats.dita:41
              key gemma4-train-flops has audience="authority"
              and resolves in the downstream build
consistency   WARN gemma4/modalities.dita:18
              literal "video" has no key; modality table lists text, image, audio
result: blocked · 1 leak · fix the conref or move the sentence

Sample output. A leak fails the build with a file and a line, before the content reaches a downstream provider.

  • A single place to record facts. Technical values sit in one central map. Compliance, legal, and partner teams drink from the exact same stream.
  • Reviews you already perform. Sign-off isn't a 20-page legal questionnaire; it is an engineer approving a pull request in Git. Done.
  • Classified means classified. Values marked audience="authority" simply do not render in public or partner builds. The leak test fails the build if one slips out, and the model never even sees them in the first place.
  • Fails instantly in CI. If an error occurs, it reports the file and line number immediately on the open pull request, exactly like a software compiler.
  • Downstream builders get proper packs. Partners building on your foundation receive an iron-clad documentation set containing version numbers, dates, and verifiable sign-offs.
ENGINEEREdit one keygemma4-train-flops, in a pull requestGITHUBCode owner review@gemma-research-engCHECKSFour checks + leak testfile and line on failureGITHUBMergecommit 9c41e7a, after the checks passBUILDSauthority pack: new valuepublic, downstream: excludedENGINEERNo follow-up questionsthe review is the approval
Fig. 5An engineer answers a fact once, in a pull request. The review they already give is the approval that the evidence needs, and the profiles decide who sees the value.
For the engineerTodayWith AEGIS
Where a fact livesSpreadsheets, memos, emailOne key in one map
How it is approvedA reply in a threadCode owner review on the pull request
Questions per packAbout 3 (modelled)Only for real gaps, about 0.3 (modelled)
Where confidential values goAttachments, shared foldersAuthority build only, leak-tested
When a problem shows upAfter the pack is sentIn CI, on the open pull request
ADK · Cloud Run

On AEGIS

AEGIS is built on Google's open-source Agent Development Kit. It operates as a stateless Cloud Run job—spinning up on demand, handling the request, and shutting down immediately on the standard GCP free tier. GitHub holds the master XML and code reviews, while a locked Cloud Storage bucket holds the compiled dossiers. Once a retention policy is locked in Google Cloud, not even an executive with a panic attack can shorten or delete it.

GITHUBRepositoryDITA source · mapsActionsrequest issue triggerPull requestscode owners · reviewsthe approval recordGOOGLE CLOUD PROJECTCloud Run jobADK agent · Python checksDITA-OT 4.4 in the imageone run per requestSecret ManagerGitHub app key · API keyCloud Storage bucketretention locked · 10 yearssealed packsBigQuerypack register · run logGemini APIgemini-3.8-flash · titles onlystart a runwrites PRs back
Fig. 6No server runs between requests. The bucket and the BigQuery register are the only state that lasts, and a sealed pack can't be changed.

The system wields ten automated tools, exactly one of which invokes an AI model. Four of those tools are hard deterministic tests, and they make the final call on whether the pack is released or thrown in the bin:

CheckPasses whenWho fixes a failure
check_coverageEvery requirement has an evidence topic that survives the pack's profileInformation architect, with a Gemini proposal
check_currencyEvery topic is current for the model versionTopic owner
check_approvalEvery change merged with a code owner's approval, not the author's or the agent'sTopic owner
check_consistencyEvery value resolves from a key, and nothing leaks between audiencesTopic owner

The core governing philosophy here is utterly non-negotiable: the model proposes, but the code checks decide. When a requirement lacks evidence, Gemini 3.8 Flash outputs structured JSON constrained by a strict schema. It cannot invent phantom topic IDs out of thin air; it can only point to topics that actually exist in the map, or admit "none". If its confidence drops below 0.6, it doesn't open a pull request—it logs an explicit gap note. Gaps are never hidden beneath corporate jargon. They are published plainly in the dossier alongside the compliance officer's sign-off, signature, and timestamp.

Load requirements,read the mapAll four checks pass?coverage gapany other failureyesGemini proposesa link, or a gap noteGap note to ownerno model callBuild the packopen reviewIA reviews link PRapprove or rejectCompliance leadfix it, or record whyLead releasesSeal the packre-run on merge
Fig. 7The checks run first. Gemini is called only for requirements with no evidence. Every other failure goes to a person, because only the owner can update a stale topic or approve a change.
manifest.json (excerpt)the part that makes it evidence
{
  "req": "aia.xi-2d",
  "topics": ["gemma4-training-infrastructure"],
  "revised": "2026-07-30", "commit": "9c41e7a",
  "approved_by": "training-lead", "pr": 462,
  "link": { "proposed_by": "propose_mapping", "confidence": 0.86,
            "approved_by": "information-architect", "pr": 457 }
},
{
  "req": "aia.xi-2e", "topics": [], "checks": "gap",
  "decision": { "by": "compliance-lead", "date": "2026-10-20",
                "note": "energy estimate due with next release; issue 458" }
}

Sample values. A link that Gemini proposed is labelled as proposed, with the person who approved it. The gap is in the pack, with a decision.

The organisation

On the organisation

Now, let's talk about money. What follows is a modelled projection rather than laboratory measurements, but the assumptions are deliberately stripped down so you can plug in your own reality. The hourly rates are median wage statistics from the US Bureau of Labor Statistics for May 2025: $43.46 for technical writers, $38.81 for compliance officers, and $64.44 for software engineers. That completely ignores corporate overhead and large-tech compensation packages, so these savings are conservative to the point of absurdity.

Assumption (modelled)Value
Authority packs a year (model releases and AI Office requests)8
Downstream provider requests a year60
People hours per authority pack, by hand / with AEGIS32 / 4
People hours per downstream pack, by hand / with AEGIS16 / 2
Split of hours by hand: compliance / writer / engineer40 / 35 / 25%
Split of hours with AEGIS: compliance / writer and IA / engineer50 / 25 / 25%
Model cost per pack, Gemini 3.8 Flashunder $0.01
1,064people hours saved a year
08162432 hBy handform · sheet · emailfind6copy8chase10approvals5send332 hWith AEGISchecks · review · releaseabout 4 hreview 3 h, release 1 hchecks and build: minutes of machine time
Figure 8:People hours for one Annex XI pack (modelled). Most of the manual time goes to chasing owners and confirming approvals, which is the part Git already records.

Figure 8:Modelled hours for one pack.

Run your own numbers
1,064people hours saved
266engineer hours back
$49,914saved at US medians

Uses the role splits and BLS median wages above. A projection for discussion, not a measured result.

PEOPLE HOURS A YEAR · 8 AUTHORITY + 60 DOWNSTREAM PACKS0100200300400500Compliance48676 · −84%Writer and IA42638 · −91%Engineer30438 · −88%by handwith AEGIS
Figure 9:Annual people hours by role (modelled). Total 1,216 hours by hand and 152 with AEGIS. The engineer's 266 hours back is about 6.7 working weeks.
14 calendar days ≈ 10 working daysBy hand · 8 working daysfindcopywait for owners · 4approvalsWith AEGIS · under 1 working daychecks, link review, release0246810working days
Figure 10:Elapsed time to a pack ready for release (modelled). By hand, a downstream request uses most of the 14-day window in the Code of Practice13. With AEGIS, it uses less than a day of it.
REQUIREMENTS WITH NO LINK BEFORE THE RUN012344pack 12pack 21pack 30pack 42pack 50pack 6NIST set added
Figure 11:Requirements that needed a model call, per pack (modelled). Each approved link stays in the relationship table, so the model is needed less with every pack. A new requirement set starts the curve again, lower.

Saved hours are merely the most obvious benefit. There are three significantly more compelling advantages for the business:

  • Evidence that actually holds up in an audit. Every technical claim in a released dossier cites its exact Git commit hash, its last modification timestamp, and the verifiable human who signed off on it. In a manual copy-paste workflow, that level of provenance is precisely zero percent.
  • Drastically reduced regulatory exposure. Article 101 fines can reach up to 3% of global annual turnover for misrepresenting facts to European authorities. While predicting an audit fine is an impossible guessing game, AEGIS guarantees that every single claim is verifiably true as of a named repository commit, and any known technical gaps are explicitly disclosed with an authorized decision.
  • Software that becomes cheaper over time. Operating costs run in literal pennies on Google Cloud's free tier. Every approved relationship link removes future model costs, and each newly introduced regulation reuses the exact same testing harness.
Outcome (modelled)By handWith AEGIS
Items with a named approver from Gitnot recorded100%
People hours a year1,216152
Working days to a downstream packabout 8under 1
Engineer questions a yearabout 204about 20
Authority content in public outputnot tested0, leak-tested
Running cost a yearpeople onlyunder $1 in model calls

Technical writers have always quietly maintained the company's true technical reality. The only difference now is that international regulators are demanding we prove it on paper. Armed with a basic DITA relationship table, audience profiles, and Git revision history, we can deliver that proof effortlessly. And AEGIS turns that entire legal defence into an automated CI build step.

The complete architectural specification—complete with sequence diagrams, agent tool definitions, and a runnable test harness—is hosted in the AEGIS design document3. If you manage complex model documentation or own the underlying performance data, I should be delighted to hear where your current setup would break down under an actual audit.

Siddharth
Sources

References

  1. Google Developers, "Site Policies." developers.google.com/site-policies
  2. Google AI for Developers, "Gemma 4 model card," last updated 30 July 2026. ai.google.dev/gemma/docs/core/model_card_4
  3. Siddharth Rao, "AEGIS," design document v0.1. siddharthraop.github.io/AEGIS
  4. Google AI for Developers, "Gemma models overview," last updated 8 July 2026. ai.google.dev/gemma/docs/core
  5. Regulation (EU) 2024/1689 (Artificial Intelligence Act), EUR-Lex. eur-lex.europa.eu/eli/reg/2024/1689/oj
  6. EU AI Act, Article 53. artificialintelligenceact.eu/article/53
  7. EU AI Act, Annex XI. artificialintelligenceact.eu/annex/11
  8. EU AI Act, Annex XII. artificialintelligenceact.eu/annex/12
  9. EU AI Act, Article 101. artificialintelligenceact.eu/article/101
  10. "Digital Omnibus on AI," Regulation (EU) 2026/1744. artificialintelligenceact.eu/ai-act-explorer/digital-omnibus
  11. ActuIA, "AI Act: obligations in force and delays under omnibus 2026/1744." actuia.com/en/news/ai-act-obligations-in-force-and-delays-under-omnibus-2026-1744
  12. European Commission, "The General-Purpose AI Code of Practice." digital-strategy.ec.europa.eu/en/policies/gpai-code-practice
  13. AI Act Explorer, "Overview of the Code of Practice." artificialintelligenceact.eu/code-of-practice-overview
  14. TechCrunch, "Google says it will sign EU's AI code of practice," 30 July 2025. techcrunch.com/2025/07/30/google-says-it-will-sign-eus-ai-code-of-practice
  15. NIST, "AI Risk Management Framework." nist.gov/itl/ai-risk-management-framework
  16. NIST AI 100-1, "AI RMF 1.0," January 2023. nvlpubs.nist.gov/nistpubs/ai/nist.ai.100-1.pdf
  17. OASIS DITA 1.3, "reltable." docs.oasis-open.org/dita/dita/v1.3/os/part1-base/langRef/base/reltable.html
  18. DITA 1.3, "Conditional processing (profiling)." dita-lang.org/1.3/dita/archspec/base/condproc
  19. Tom Manshreck, "Documentation," in Software Engineering at Google, chapter 10. abseil.io/resources/swe-book/html/ch10.html
  20. Google Cloud, "Bucket Lock." docs.cloud.google.com/storage/docs/bucket-lock
  21. GitHub Docs, "About code owners." docs.github.com/.../about-code-owners
  22. Google, Agent Development Kit documentation. github.com/google/adk-docs
  23. Google AI for Developers, "Structured outputs." ai.google.dev/gemini-api/docs/structured-output
  24. Google Cloud, "Free Google Cloud features." cloud.google.com/free
  25. U.S. Bureau of Labor Statistics, "Technical Writers," Occupational Outlook Handbook, May 2025 data. bls.gov/ooh/media-and-communication/technical-writers.htm
  26. U.S. Bureau of Labor Statistics, "Compliance Officers," Occupational Outlook Handbook, May 2025 data. bls.gov/ooh/business-and-financial/compliance-officers.htm
  27. U.S. Bureau of Labor Statistics, "Software Developers, Quality Assurance Analysts, and Testers," Occupational Outlook Handbook, May 2025 data. bls.gov/ooh/computer-and-information-technology/software-developers.htm