What this documentation is
Every conclusion the engine produces is traceable back to collected evidence, explicit rules and published sources. If it cannot justify a conclusion, it does not make one.
What this manual is, and is not
Documentation owns how the product works: the manual, and the catalogue projected from the Engine. It is the only place on this site that does.
What does not belong here, and where each lives instead:
- The product itself Microsoft 365 Governance as Code · Product
- Microsoft 365 facts Knowledge · Knowledge
- A migration method Field Guide · Practice
- Engineering arguments and lessons Analysis · Practice
Start here
The journey below runs in the order somebody takes it: install it, see it work against packaged evidence with no tenant at all, then connect, collect, assess, inspect, compare and verify.
Begin with Install. The reference sections underneath explain each part in full, and a step links into them rather than restating them.
Getting started
The journey, in the order somebody takes it.
Install
- 01Install
What do I actually need on this machine, and how do I know it worked?
See it work
- 01See it work
I have installed it. What do I run, in what order, and what am I looking at?
Connect
- 01Connect
Why does it insist on a client id, and what identity should I give it?
Collect
- 01Collect
I have an app registration. How do I collect, and what do I get?
Assess
- 01Assess
I have evidence. How do I get an answer, and what is that answer worth?
Inspect
- 01Inspect
A report just landed on my desk. What am I looking at, from the top?
Compare
- 01Compare
Something moved. Did the tenant change, or did the rule?
Verify
- 01Verify
How do I establish that it holds, without their engine and without trusting them?
Capabilities
What the Engine can establish today, and what it cannot.
The capability map
- 01Capability map
What can this product establish about a tenant today?
- 02What we can establish
Which governance questions can this product answer defensibly today?
Coverage
- 01Coverage
What has been proven against a real tenant, and what has not?
Core Concepts
The vocabulary every assessment and report uses.
Evidence chain
- 01What read-only gates prove
If CI says the collector has no write path, what exactly has been established?
- 02Run, RunSet, Assessment
What exactly is the verifiable unit a governance evaluation produces?
- 03Canonical JSON and digests
How can the same document hash differently on two machines that both follow the JSON spec?
Provenance
- 01What provenance changes
What must travel with a finding for it to be worth acting on?
- 02Fixture vs observation
When a result is computed from example evidence, what stops it being presented as a real reading?
Coverage
- 01Incomplete evidence and lower bounds
Can a partial count ever settle a governance question?
- 02Unknown vs invalid-evidence
When a governance report says unknown, what exactly failed, and who fixes it?
- 03Set aside, not excluded
What should a governance profile do with system lists it did not create?
- 04Outcome, severity, attention
A rule failed with severity medium, so how urgent is it?
- 05The collection manifest
The evidence folder has ten files. Is that all of them, or all that could be read?
Collectors
What each collector observes, and what it cannot see.
Entra ID
- 01conditional-access
The Conditional Access policies, named locations and Security Defaults state of one tenant?
Overview
- 01Overview
Something is going to run against my production tenant. What exactly does it do?
Across the tenant
- 01sites
What sites exist, and how much of the tenant can this identity actually see?
- 02tenant-sharing
What does the organisation permit, before any individual site is looked at?
About one site
- 01owners
Who administers this site, and can the engine actually count them?
- 02sharing
What can be shared from this site, and what link do users get by default?
- 03activity
Is this site actually abandoned, or does a system process keep touching it?
- 04classification
Does this site record what kind of content it holds, and is the label resolvable?
- 05modernity
How is this site built, and what does the engine refuse to call classic?
Inside a site
- 01permissions
Which lists break inheritance, and why is the expensive count off by default?
- 02spfx
Which solutions in the app catalog are behind the version it holds?
- 03agents
What Copilot agents live in this site, and what were they pointed at?
Rules
How a rule is written, what it must declare, and how it is tested.
Every rule
- 01Catalogue
Which questions does this product ask, and on what authority?
- 02SPO-ACTIVITY-001
What does SPO-ACTIVITY-001 decide, and on what authority?
- 03SPO-CLASS-001
What does SPO-CLASS-001 decide, and on what authority?
- 04SPO-CLASS-002
What does SPO-CLASS-002 decide, and on what authority?
- 05SPO-CLASS-003
What does SPO-CLASS-003 decide, and on what authority?
- 06SPO-CLASS-004
What does SPO-CLASS-004 decide, and on what authority?
- 07SPO-LIST-001
What does SPO-LIST-001 decide, and on what authority?
- 08SPO-LIST-002
What does SPO-LIST-002 decide, and on what authority?
- 09SPO-LIST-003
What does SPO-LIST-003 decide, and on what authority?
- 10SPO-MODERN-001
What does SPO-MODERN-001 decide, and on what authority?
- 11SPO-MODERN-003
What does SPO-MODERN-003 decide, and on what authority?
- 12SPO-MODERN-004
What does SPO-MODERN-004 decide, and on what authority?
- 13SPO-SHARE-001
What does SPO-SHARE-001 decide, and on what authority?
- 14SPO-SHARE-002
What does SPO-SHARE-002 decide, and on what authority?
- 15SPO-SHARE-003
What does SPO-SHARE-003 decide, and on what authority?
- 16SPO-SHARE-004
What does SPO-SHARE-004 decide, and on what authority?
- 17SPO-SHARE-005
What does SPO-SHARE-005 decide, and on what authority?
- 18SPO-SITE-001
What does SPO-SITE-001 decide, and on what authority?
- 19SPO-SITE-002
What does SPO-SITE-002 decide, and on what authority?
- 20SPO-SITE-003
What does SPO-SITE-003 decide, and on what authority?
- 21SPO-SPFX-001
What does SPO-SPFX-001 decide, and on what authority?
The rule model
- 01Anatomy of a rule
I am reading a rule file. What is every field for, and which ones may not be left out?
- 02basis
Is this finding a defect, or a departure from advice? The rule has to say which.
Writing and checking
- 01Validation layers
What does `validate` actually check, and why is it four layers rather than one schema?
- 02Lifecycle
A source moved, or a number changed. What happens to the rule, and to the findings it already produced?
- 03Profiles
How do I run a subset of the rules without editing them?
CLI
Every command the executable registers, from the executable.
Overview
- 01Overview
What shape does this executable have, and what can I rely on across all of it?
Collecting evidence
Evaluating
Reporting and comparing
Working with rules
- 01list-rules
What rules will run, and what kind of claim does each of them make?
- 02show-rule
What does this one rule actually establish, and what does it leave open?
- 03validate
Before anybody runs these rules, are they well formed?
Checking the installation
- 01doctor
Something is not working. What is wrong with this installation?
Reports
What a report says, outcome by outcome and bound by bound.
- 01Outcomes
The report says unknown on two rules. Is that a pass, a failure, or something else?
- 02Coverage and bounds
The report gives me a count. Is it the real count?
Architecture
How the parts fit, and what the trust model rests on.
- 01The shape
What are the parts, which way does data flow, and what is each part forbidden to do?
- 02Trust model
Why should anybody believe a conclusion this engine produced?
Contributing
How to propose a rule, a collector or a correction.
- 01Proposing a rule
I want to add a check. What has to be true before it is merged?
- 02Licence and sign-off
What am I agreeing to by contributing, and what will CI refuse?
Contracts
Every versioned document the Engine publishes, and what each is for.
- 01Overview
Which versioned documents can I build against?
- 02assessment 2.0.0
What does the assessment 2.0.0 contract carry?
- 03assessment 3.0.0
What does the assessment 3.0.0 contract carry?
- 04assessment 4.0.0
What does the assessment 4.0.0 contract carry?
- 05capability-manifest 1.0.0
What does the capability-manifest 1.0.0 contract carry?
- 06collection 1.0.0
What does the collection 1.0.0 contract carry?
- 07comparison 2.0.0
What does the comparison 2.0.0 contract carry?
- 08comparison 3.0.0
What does the comparison 3.0.0 contract carry?
- 09connection 1.0.0
What does the connection 1.0.0 contract carry?
- 10evidence 1.2.0
What does the evidence 1.2.0 contract carry?
- 11evidence 2.0.0
What does the evidence 2.0.0 contract carry?
- 12evidence 3.0.0
What does the evidence 3.0.0 contract carry?
- 13migration-read 1.0.0
What does the migration-read 1.0.0 contract carry?
- 14migration-verification 1.0.0
What does the migration-verification 1.0.0 contract carry?
- 15rule 1.0.0
What does the rule 1.0.0 contract carry?
- 16run-set 2.0.0
What does the run-set 2.0.0 contract carry?
- 17run-set 3.0.0
What does the run-set 3.0.0 contract carry?
- 18run-set 4.0.0
What does the run-set 4.0.0 contract carry?
- 19run 2.0.0
What does the run 2.0.0 contract carry?
- 20run 3.0.0
What does the run 3.0.0 contract carry?
- 21run 4.0.0
What does the run 4.0.0 contract carry?
Reference
Exit codes, profiles and the things you look up rather than read.
- 01Exit codes
My pipeline got a non-zero exit. Does that mean the tenant is wrong, or that the engine refused?
Documentation roadmap
Part of the product, and listed before it is written. A reader deciding whether to adopt an open source tool is entitled to know what the manual does not cover yet.
Design principles
The engine exists to make governance conclusions that can be inspected. Each of these is checkable against its output.
- Evidence is collected read only.
- Every finding names the rule that produced it.
- Unknown is a result, not a failure.
- A bound is never presented as an exact value.
- Documented limits, documented guidance and conventions stay distinct.
- Every conclusion is reproducible from the evidence that produced it.