Skip to content

Restructure docs lifecycle - #993

Open
aleksandarkovacevic30 wants to merge 2 commits into
masterfrom
restructure-docs-lifecycle
Open

aleksandarkovacevic30 wants to merge 2 commits into
masterfrom
restructure-docs-lifecycle

Conversation

@aleksandarkovacevic30

Copy link
Copy Markdown
Contributor

Description

Work Item ID: AB#

Why

The documentation was organised by feature area. To find the page explaining a feature you had to already know what CluedIn calls it, and the same subject was covered in several places at once - a concept in Key terms, the same concept again in a training module, and a third time in a Knowledge Base article, each drifting from the others.

This restructures it around the path data takes through the platform, so a reader who knows what they are trying to do can find the page without knowing the product's vocabulary first.

The new shape

Ingest → Model → Master → Govern & improve → Publish & consume

with Administer, Deploy & operate and Develop & APIs alongside, and Learning paths, Playbooks, Solutions and Troubleshooting as supporting material.

Section URL Answers
Get started /get-started What is CluedIn and how do I begin?
Ingest /ingest How do I get data into CluedIn?
Model /model How do I describe my data so CluedIn understands it?
Master /master How do I turn records into trusted golden records?
Govern & improve /govern How do I improve and govern the data?
Publish & consume /publish How do I get trusted data out?
Administer /administer How do I manage the product?
Deploy & operate /operate How do I run the platform?
Develop & APIs /develop How do I automate or extend CluedIn?
Solutions & integrations /solutions How does CluedIn fit with the rest of my stack?
Learning paths /learning-paths How do I learn CluedIn for my role?
Playbooks /playbooks How do I run a CluedIn project?
Troubleshooting /troubleshooting Something is not working — what do I check?
Release notes /release-notes What changed, and what is supported?
Archive /archive Where did the old material go?

Two rules hold it together:

  1. One canonical home per subject. Learning paths, playbooks, solution guides and troubleshooting articles link to that home instead of restating it — so there is only ever one explanation of a feature to keep current.
  2. Every article declares a content type — concept, how-to, tutorial, reference or troubleshooting — so the four kinds of documentation stay distinguishable. The badge is rendered at the top of each article and in every section index.

The move is generated, not hand-arranged

This is the part worth reviewing. docs/ was produced by a script from a routing table, so every placement decision is stated in one reviewable place rather than implied by 674 file moves:

File What it is
_migration/ia.py The information architecture — the sections, their URLs, their audiences and intros
_migration/targets_a.py, _b.py, _c.py The routing table: for every source article, its one section, subsection, content type and order
_migration/migrate.py Performs the move, rewrites front matter and internal links, writes the section indexes, records redirect_from
_migration/validate.py Checks the generated tree before Jekyll builds it
_migration/report.md The generated record: every routing decision, every retitle, every repaired link
_migration/redirects.csv Old URL → new URL for all 565 pre-restructure URLs

Nothing was dropped, and no URL broke

  • All 568 source articles are accounted for. 548 have a new home; the other 20 were landing pages containing nothing but a card grid pointing at their children, which the generated section index now produces
    automatically.
  • Every one of the 565 pre-restructure URLs still resolves. Each page carries redirect_from, and jekyll-redirect-from builds a stub at the old address.
  • Section indexes are no longer hand-maintained. _includes/children.html lists a section's children from their front matter, so a page can never be added to a section and then be missing from its index.

Two link problems were fixed on the way across:

  • 65 relative links (./aks, ../assets/images/x.png) are now resolved against the page's old URL before being rewritten, so they still resolve after a page changed depth.
  • 17 images under docs/180-microsoft-integration/purview/media/ moved to assets/images/.... Jekyll published them at their source path, so those pages' relative links never resolved on the live site. They do now.

Contributor guidelines

The restructure only holds if the next article is placed the same way, so the second commit adds CONTRIBUTING.md — a placement procedure rather than a style guide:

  1. Product documentation, or supporting material? Supporting material links to the canonical page instead of restating it. The test: delete every sentence in the draft that explains how a feature works, replace each with a link, and see whether a useful article remains.
  2. Which section? A table per lifecycle stage, plus explicit rulings on the four boundaries that are genuinely ambiguous — Administer vs Deploy & operate ("add a user" vs "add a node"), Model vs Master, Model vs Govern, Publish vs Develop — and where symptom-first articles go.
  3. Which subsection? Three conditions for creating a new one, and the hard three-level navigation ceiling.
  4. Which content type? The test for each, and the how-to vs tutorial split.
  5. File name and front matter, with templates for an article and a subsection index.

It also records what is easy to get wrong: the numeric filename prefix must equal nav_order; the directory name is not the URL (05-govern-and-improve serves /govern); parent and grand_parent are page titles spelled
exactly; and section indexes are generated and must never be hand-maintained.

Every fact in it was checked against the tree, including the six subsections whose URL differs from their directory name and the nav_order-equals-prefix invariant, which holds for all 517 articles.

Navigation reachability

validate.py checked that a parent resolves, but not that the chain climbs all the way to a top-level section. A page whose chain stops short is still built and still served — it is simply absent from the sidebar, so the only way
to find it is to already know the URL.

Verified against a real build rather than assumed: dropping grand_parent from one page took the Rules sidebar from 8 links to 7 while the page kept being served. validate.py now walks the chain for every published page and fails if
one cannot be reached, and reports how many pages are deliberately held out of the sidebar with nav_exclude.

Audit of the current tree: 490 published pages, 486 reachable from the sidebar. The remaining four carry nav_exclude: true — docs/tag.md and terms-of-service.md are utility pages, and the two under Deploy & operate
(sync-aks-to-akv, azure-policy-exemption) carried nav_exclude before the restructure too, so they are pre-existing choices rather than regressions.

One stale key removed: 170-2026-01-00-support.md still declared great_grand_parent: "PaaS operations", a section that no longer exists. A/B builds confirm just-the-docs 0.7 ignores it, so the page was reachable either way — this is cleanup, not a fix for broken navigation.

Supporting changes

File Change
_config.yml jekyll-redirect-from, the content-type vocabulary, nav grouping
Gemfile jekyll-redirect-from
_layouts/cluedin.html Content-type badge, generated section index
_includes/children.html New — lists a section's children
assets/js/nav-groups.js New — separates the lifecycle sections from the supporting material in the sidebar
_sass/color_schemes/clue.scss Badges, section index, audience strip
index.markdown → index.md Home page follows the lifecycle
README.md Points at the guidelines; no longer cites the pre-restructure path docs/250-rest-api/

How to review this

The diff is 674 files, but almost all of it is mechanical. Suggested order:

  1. _migration/ia.py — the sections, their URLs, and the audience/intro text that appears on each section index. This is where the structural decisions live.
  2. _migration/targets_*.py — the routing table. If an article is in the wrong place, this is the line to comment on; the file move is the consequence, not the decision.
  3. _migration/report.md — every routing decision, every retitle, every repaired link, in one generated document.
  4. CONTRIBUTING.md — the go-forward rules.
  5. The theme changes — _layouts/cluedin.html, _includes/children.html, assets/js/nav-groups.js, _sass/color_schemes/clue.scss.

The docs/ diff itself is mostly renames with 90–100% similarity and does not need reading page by page.

To move an article, edit the routing table and re-run — see _migration/README.md. Note that the routing table describes the pre-restructure tree; once this merges, docs/ is authored directly and a new article is a new file, not a new routing entry.

Verification

python _migration/validate.py     595 pages, 0 errors, 5 warnings
bundle exec jekyll build          943 pages and redirect stubs

The 5 warnings are links that were already broken before this change and are left alone; all 45 pre-existing broken links are listed in _migration/report.md.

Known, and deliberately not addressed here

  • 42 articles are not linked from their own section index page. 18 subsection indexes set list_children: false and carry a hand-written list inherited from the old page body, and 11 of those lists are incomplete — /govern/enrichment lists 4 of 20 enrichers, /govern/rules 4 of 9. Every one of those articles is in the sidebar, so this is not a reachability failure, but it is exactly what the generated index exists to prevent. Fixing it means deleting the stale lists and, to lose nothing, moving their descriptions into each child's summary. That is an editorial change to live content and belongs in its own PR.
  • CI does not run validate.py. Adding it to .github/workflows/main.yml would make these checks gate a deploy rather than rely on a contributor remembering to run them.

Aleksandar Kovacevic and others added 2 commits September 7, 2026 14:22
The documentation was organised by feature area, so a reader had to know the
name of a CluedIn feature before they could find the page explaining it, and
the same subject was covered in several places at once.

It now follows the path data takes through the platform - ingest, model,
master, govern & improve, publish & consume - with administration, operations
and development alongside it, and learning paths, playbooks, solutions and
troubleshooting as supporting material that links to the canonical page for a
subject instead of restating it. Every article declares a content type
(concept, how-to, tutorial, reference, troubleshooting) so the four kinds of
documentation stay distinguishable, and each section index is generated from
its children rather than hand-maintained.

The move is generated, not hand-arranged. `_migration/targets_*.py` states the
one home for every article, `_migration/migrate.py` performs the move and
rewrites the links, `_migration/validate.py` checks the result (0 errors), and
`_migration/report.md` plus `_migration/redirects.csv` are the generated
record. To move an article, edit the routing table and re-run - see
`_migration/README.md`.

Nothing was dropped. All 568 articles are listed below: 548 have a new home,
and 20 were landing pages holding nothing but a card grid pointing at their
children, which the generated section index now does automatically.

Every old URL still works. Each page carries `redirect_from`, so all 565
pre-restructure URLs redirect to their new home (`_migration/redirects.csv`).

Supporting changes:

  _config.yml                    jekyll-redirect-from, the content-type
                                 vocabulary, nav grouping
  Gemfile                        jekyll-redirect-from
  _layouts/cluedin.html          content-type badge, generated section index
  _includes/children.html        new - lists a section's children
  assets/js/nav-groups.js        new - separates the lifecycle sections from
                                 the supporting material in the sidebar
  _sass/color_schemes/clue.scss  badges, section index, audience strip
  index.markdown -> index.md     home page follows the lifecycle

Two link problems fixed on the way across:

  - Relative links (`./aks`, `../assets/images/x.png`) are now resolved
    against the page's old URL before being rewritten, so the 65 that would
    have broken when a page changed depth still resolve.
  - The 17 images under docs/180-microsoft-integration/purview/media/ moved to
    assets/images/microsoft-integration/purview/media/. Jekyll published them
    at their source path, so the pages' relative links never resolved on the
    old site; they do now.

45 links were already broken before this change and are left alone; they are
listed in _migration/report.md.

Verified with `python _migration/validate.py` (595 pages, 0 errors) and a full
`jekyll build` (943 pages and redirect stubs).

WHERE EVERY ARTICLE WENT
========================

Get started  ->  /get-started
-----------------------------
  docs/009-quick-feature-tour.md
    -> docs/01-start-here/020-quick-feature-tour.md
       /get-started/quick-feature-tour
  docs/010-get-cluedin.md
    -> docs/01-start-here/060-get-cluedin.md
       /get-started/get-cluedin
  docs/020-getting-access.md
    -> docs/01-start-here/070-getting-access.md
       /get-started/getting-access
  docs/110-key-terms-and-features/010-data-life-cycle.md
    -> docs/01-start-here/core-concepts/010-data-life-cycle.md
       /get-started/core-concepts/data-life-cycle
  docs/110-key-terms-and-features/020-clue-reference.md
    -> docs/01-start-here/core-concepts/050-clue-reference.md
       /get-started/core-concepts/clue-reference
  docs/110-key-terms-and-features/050-golden-records.md
    -> docs/01-start-here/core-concepts/020-golden-records.md
       /get-started/core-concepts/golden-records
  docs/110-key-terms-and-features/060-billable-records.md
    -> docs/01-start-here/core-concepts/070-billable-records.md
       /get-started/core-concepts/billable-records
  docs/110-key-terms-and-features/070-connectors.md
    -> docs/01-start-here/core-concepts/060-connectors.md
       /get-started/core-concepts/connectors
  docs/110-key-terms-and-features/080-eventual-connectivity.md
    -> docs/01-start-here/core-concepts/030-eventual-connectivity.md
       /get-started/core-concepts/eventual-connectivity
  docs/110-key-terms-and-features/120-origin.md
    -> docs/01-start-here/core-concepts/040-origin.md
       /get-started/core-concepts/origin
  docs/200-kb/kb0010-faq.md
    -> docs/01-start-here/080-faq.md
       /get-started/faq

Ingest  ->  /ingest
-------------------
  docs/010-getting-started/020-data-ingestion.md
    -> docs/02-ingest/010-tutorial-ingest-data.md
       /ingest/tutorial-ingest-data
  docs/040-integration/190-data-sources.md
    -> docs/02-ingest/data-sources/index.md
       /ingest/data-sources
  docs/040-integration/200-crawlers.md
    -> docs/02-ingest/connectors/index.md
       /ingest/connectors
  docs/040-integration/210-manual-data-entry.md
    -> docs/02-ingest/manual-data-entry/index.md
       /ingest/manual-data-entry
  docs/040-integration/additional-operations-on-records/010-property-rules.md
    -> docs/02-ingest/mapping/030-property-rules.md
       /ingest/mapping/property-rules
  docs/040-integration/additional-operations-on-records/020-preprocess-rules.md
    -> docs/02-ingest/mapping/040-preprocess-rules.md
       /ingest/mapping/preprocess-rules
  docs/040-integration/additional-operations-on-records/030-advanced-mapping.code.md
    -> docs/02-ingest/mapping/050-advanced-mapping-code.md
       /ingest/mapping/advanced-mapping-code
  docs/040-integration/additional-operations-on-records/040-quarantine.md
    -> docs/02-ingest/troubleshooting/010-quarantine.md
       /ingest/troubleshooting/quarantine
  docs/040-integration/additional-operations-on-records/050-approval.md
    -> docs/02-ingest/processing/040-approval.md
       /ingest/processing/approval
  docs/040-integration/additional-operations-on-records/060-logs.md
    -> docs/02-ingest/troubleshooting/020-logs.md
       /ingest/troubleshooting/logs
  docs/040-integration/additional-operations-on-records/070-monitoring.md
    -> docs/02-ingest/troubleshooting/030-monitoring.md
       /ingest/troubleshooting/monitoring
  docs/040-integration/additional-operations-on-records/080-preview.md
    -> docs/02-ingest/processing/020-preview.md
       /ingest/processing/preview
  docs/040-integration/additional-operations-on-records/090-validations.md
    -> docs/02-ingest/processing/030-validations.md
       /ingest/processing/validations
  docs/040-integration/additional-operations-on-records/100-remove-records.md
    -> docs/02-ingest/processing/050-remove-records.md
       /ingest/processing/remove-records
  docs/040-integration/crawlers/010-introduction.md
    -> docs/02-ingest/connectors/010-about-integrations.md
       /ingest/connectors/about-integrations
  docs/040-integration/crawlers/020-crawling.md
    -> docs/02-ingest/connectors/020-crawling.md
       /ingest/connectors/crawling
  docs/040-integration/crawlers/100-install-integration.md
    -> docs/02-ingest/connectors/030-install-integrations.md
       /ingest/connectors/install-integrations
  docs/040-integration/crawlers/130-using-agents.md
    -> docs/02-ingest/connectors/040-using-agents.md
       /ingest/connectors/using-agents
  docs/040-integration/data-sources/130-define-data-to-ingest.md
    -> docs/02-ingest/data-sources/010-define-data-to-ingest.md
       /ingest/data-sources/define-data-to-ingest
  docs/040-integration/data-sources/140-file.md
    -> docs/02-ingest/data-sources/020-file.md
       /ingest/data-sources/file
  docs/040-integration/data-sources/150-endpoint.md
    -> docs/02-ingest/data-sources/030-endpoint.md
       /ingest/data-sources/endpoint
  docs/040-integration/data-sources/160-database.md
    -> docs/02-ingest/data-sources/040-database.md
       /ingest/data-sources/database
  docs/040-integration/data-sources/170-create-mapping.md
    -> docs/02-ingest/mapping/010-create-mapping.md
       /ingest/mapping/create-mapping
  docs/040-integration/data-sources/180-review-mapping.md
    -> docs/02-ingest/mapping/020-review-mapping.md
       /ingest/mapping/review-mapping
  docs/040-integration/data-sources/190-process-data.md
    -> docs/02-ingest/processing/010-process-data.md
       /ingest/processing/process-data
  docs/040-integration/manual-data-entry/010-configure-a-manual-data-entry-project.md
    -> docs/02-ingest/manual-data-entry/010-configure-a-manual-data-entry-project.md
       /ingest/manual-data-entry/configure-a-manual-data-entry-project
  docs/040-integration/manual-data-entry/020-add-records-in-a-manual-data-entry-project.md
    -> docs/02-ingest/manual-data-entry/020-add-records-in-a-manual-data-entry-project.md
       /ingest/manual-data-entry/add-records-in-a-manual-data-entry-project
  docs/040-integration/manual-data-entry/030-manage-a-manual-data-entry-project.md
    -> docs/02-ingest/manual-data-entry/030-manage-a-manual-data-entry-project.md
       /ingest/manual-data-entry/manage-a-manual-data-entry-project
  docs/200-kb/how-to/110-connect-fivetran-to-cluedin.md
    -> docs/02-ingest/patterns/010-connect-to-fivetran.md
       /ingest/patterns/connect-to-fivetran
  docs/200-kb/how-to/120-connect-dbt-to-cluedin.md
    -> docs/02-ingest/patterns/020-dbt-to-cluedin.md
       /ingest/patterns/dbt-to-cluedin
  docs/200-kb/how-to/130-connect-snowflake-to-cluedin.md
    -> docs/02-ingest/patterns/030-snowflake-to-cluedin.md
       /ingest/patterns/snowflake-to-cluedin
  docs/200-kb/how-to/140-connecting-a-large-amount-of-systems.md
    -> docs/02-ingest/patterns/040-connect-lots-of-systems.md
       /ingest/patterns/connect-lots-of-systems

Model  ->  /model
-----------------
  docs/010-getting-started/070-hierarchy-builder.md
    -> docs/03-model/hierarchies/050-tutorial-create-hierarchies.md
       /model/hierarchies/tutorial-create-hierarchies
  docs/010-getting-started/090-relations.md
    -> docs/03-model/relationships/020-tutorial-add-relations.md
       /model/relationships/tutorial-add-relations
  docs/080-management/030-data-catalog.md
    -> docs/03-model/data-catalog/index.md
       /model/data-catalog
  docs/080-management/040-entity-type.md
    -> docs/03-model/business-domains/020-manage-business-domains.md
       /model/business-domains/manage-business-domains
  docs/080-management/060-hierarchy-builder.md
    -> docs/03-model/hierarchies/index.md
       /model/hierarchies
  docs/080-management/data-catalog/010-modeling-approaches.md
    -> docs/03-model/data-catalog/010-modeling-approaches.md
       /model/data-catalog/modeling-approaches
  docs/080-management/data-catalog/020-vocabulary.md
    -> docs/03-model/vocabularies/020-manage-vocabularies.md
       /model/vocabularies/manage-vocabularies
  docs/080-management/data-catalog/030-vocabulary-keys.md
    -> docs/03-model/vocabularies/030-vocabulary-keys.md
       /model/vocabularies/vocabulary-keys
  docs/080-management/data-catalog/040-manage-vocabulary-keys.md
    -> docs/03-model/vocabularies/040-manage-vocabulary-keys.md
       /model/vocabularies/manage-vocabulary-keys
  docs/080-management/data-catalog/040-search-data-catalog.md
    -> docs/03-model/data-catalog/020-search-data-catalog.md
       /model/data-catalog/search-data-catalog
  docs/080-management/data-catalog/050-data-types.md
    -> docs/03-model/data-catalog/030-data-types.md
       /model/data-catalog/data-types
  docs/080-management/data-catalog/060-lookup-data-type.md
    -> docs/03-model/data-catalog/040-lookup-data-type.md
       /model/data-catalog/lookup-data-type
  docs/080-management/hierarchy-builder/010-concept-of-hierarchy.md
    -> docs/03-model/hierarchies/010-concept-of-hierarchy.md
       /model/hierarchies/concept-of-hierarchy
  docs/080-management/hierarchy-builder/020-create-a-hierarchy.md
    -> docs/03-model/hierarchies/020-create-a-hierarchy.md
       /model/hierarchies/create-a-hierarchy
  docs/080-management/hierarchy-builder/030-work-in-a-hierarchy-project.md
    -> docs/03-model/hierarchies/030-work-in-a-hierarchy-project.md
       /model/hierarchies/work-in-a-hierarchy-project
  docs/080-management/hierarchy-builder/040-manage-hierarchies.md
    -> docs/03-model/hierarchies/040-manage-hierarchies.md
       /model/hierarchies/manage-hierarchies
  docs/110-key-terms-and-features/090-entity-type.md
    -> docs/03-model/business-domains/010-business-domains-explained.md
       /model/business-domains/business-domains-explained
  docs/110-key-terms-and-features/100-entity-codes.md
    -> docs/03-model/010-identifiers.md
       /model/identifiers
  docs/110-key-terms-and-features/110-vocabularies.md
    -> docs/03-model/vocabularies/010-vocabularies-explained.md
       /model/vocabularies/vocabularies-explained
  docs/110-key-terms-and-features/130-edges.md
    -> docs/03-model/relationships/010-edges.md
       /model/relationships/edges
  docs/200-kb/how-to/040-build-org-hierarchy.md
    -> docs/03-model/hierarchies/060-how-to-build-an-organizational-hierarchy.md
       /model/hierarchies/how-to-build-an-organizational-hierarchy
  docs/200-kb/how-to/080-match-lookup-or-reference-data-automatically.md
    -> docs/03-model/data-catalog/050-match-reference-data.md
       /model/data-catalog/match-reference-data
  docs/200-kb/kb1002-supported-characters.md
    -> docs/03-model/data-catalog/060-supported-characters.md
       /model/data-catalog/supported-characters

Master  ->  /master
-------------------
  docs/010-getting-started/040-deduplication.md
    -> docs/04-master/deduplication/070-tutorial-deduplicate-data.md
       /master/deduplication/tutorial-deduplicate-data
  docs/080-management/020-deduplication.md
    -> docs/04-master/deduplication/index.md
       /master/deduplication
  docs/080-management/deduplication/010-concept-of-deduplication.md
    -> docs/04-master/deduplication/010-concept-of-deduplication.md
       /master/deduplication/concept-of-deduplication
  docs/080-management/deduplication/020-deduplication-in-practice.md
    -> docs/04-master/deduplication/020-deduplication-in-practice.md
       /master/deduplication/deduplication-in-practice
  docs/080-management/deduplication/030-create-deduplication-project.md
    -> docs/04-master/deduplication/030-create-a-deduplication-project.md
       /master/deduplication/create-a-deduplication-project
  docs/080-management/deduplication/040-manage-a-deduplication-project.md
    -> docs/04-master/deduplication/040-manage-a-deduplication-project.md
       /master/deduplication/manage-a-deduplication-project
  docs/080-management/deduplication/050-manage-groups-of-duplicates.md
    -> docs/04-master/deduplication/050-manage-groups-of-duplicates.md
       /master/deduplication/manage-groups-of-duplicates
  docs/080-management/deduplication/060-deduplication-reference.md
    -> docs/04-master/deduplication/060-deduplication-reference.md
       /master/deduplication/deduplication-reference
  docs/110-key-terms-and-features/030-search.md
    -> docs/04-master/080-search.md
       /master/search
  docs/110-key-terms-and-features/040-filters.md
    -> docs/04-master/090-filters.md
       /master/filters
  docs/110-key-terms-and-features/golden-records/010-golden-record-relations.md
    -> docs/04-master/golden-records/010-golden-record-relations.md
       /master/golden-records/golden-record-relations
  docs/110-key-terms-and-features/golden-records/020-history.md
    -> docs/04-master/golden-records/020-history.md
       /master/golden-records/history
  docs/110-key-terms-and-features/golden-records/030-explain-log.md
    -> docs/04-master/golden-records/030-explain-log.md
       /master/golden-records/explain-log
  docs/110-key-terms-and-features/golden-records/040-delete-golden-record.md
    -> docs/04-master/golden-records/040-delete-golden-records.md
       /master/golden-records/delete-golden-records
  docs/110-key-terms-and-features/golden-records/050-delete-individual-data-parts.md
    -> docs/04-master/golden-records/050-delete-data-parts-from-golden-records.md
       /master/golden-records/delete-data-parts-from-golden-records
  docs/200-kb/how-to/070-undo-or-rollback-changes.md
    -> docs/04-master/golden-records/060-how-to-rollback-or-undo.md
       /master/golden-records/how-to-rollback-or-undo
  docs/200-kb/how-to/160-best-practices-for-matching-and-merging.md
    -> docs/04-master/deduplication/080-best-practices-for-matching-and-merging.md
       /master/deduplication/best-practices-for-matching-and-merging
  docs/200-kb/kb0018-how-can-I-get-better-matches.md
    -> docs/04-master/deduplication/090-better-matches.md
       /master/deduplication/better-matches

Govern & improve  ->  /govern
-----------------------------
  docs/010-getting-started/030-manual-data-cleaning.md
    -> docs/05-govern-and-improve/cleaning/060-tutorial-clean-data.md
       /govern/cleaning/tutorial-clean-data
  docs/010-getting-started/060-rule-builder.md
    -> docs/05-govern-and-improve/rules/070-tutorial-create-rules.md
       /govern/rules/tutorial-create-rules
  docs/010-getting-started/080-glossary.md
    -> docs/05-govern-and-improve/010-work-with-glossary.md
       /govern/work-with-glossary
  docs/050-preparation/001-clean.md
    -> docs/05-govern-and-improve/cleaning/index.md
       /govern/cleaning
  docs/050-preparation/002-enricher.md
    -> docs/05-govern-and-improve/enrichment/index.md
       /govern/enrichment
  docs/050-preparation/clean/010-create-clean-project.md
    -> docs/05-govern-and-improve/cleaning/010-create-clean-project.md
       /govern/cleaning/create-clean-project
  docs/050-preparation/clean/020-manage-clean-project.md
    -> docs/05-govern-and-improve/cleaning/020-manage-clean-project.md
       /govern/cleaning/manage-clean-project
  docs/050-preparation/clean/030-clean-reference.md
    -> docs/05-govern-and-improve/cleaning/030-clean-reference.md
       /govern/cleaning/clean-reference
  docs/050-preparation/clean/040-clean-application-reference.md
    -> docs/05-govern-and-improve/cleaning/040-clean-application-reference.md
       /govern/cleaning/clean-application-reference
  docs/050-preparation/clean/050-processing-logic-in-clean-projects.md
    -> docs/05-govern-and-improve/cleaning/050-processing-logic-in-clean-projects.md
       /govern/cleaning/processing-logic-in-clean-projects
  docs/050-preparation/enricher/010-concept-of-enricher.md
    -> docs/05-govern-and-improve/enrichment/010-concept-of-enricher.md
       /govern/enrichment/concept-of-enricher
  docs/050-preparation/enricher/020-add-enricher.md
    -> docs/05-govern-and-improve/enrichment/020-add-enricher.md
       /govern/enrichment/add-enricher
  docs/050-preparation/enricher/030-enricher-reference.md
    -> docs/05-govern-and-improve/enrichment/030-enricher-reference.md
       /govern/enrichment/enricher-reference
  docs/050-preparation/enricher/040-brreg.md
    -> docs/05-govern-and-improve/enrichment/040-brreg.md
       /govern/enrichment/brreg
  docs/050-preparation/enricher/050-clearbit.md
    -> docs/05-govern-and-improve/enrichment/050-clearbit.md
       /govern/enrichment/clearbit
  docs/050-preparation/enricher/060-companies-house.md
    -> docs/05-govern-and-improve/enrichment/060-companies-house.md
       /govern/enrichment/companies-house
  docs/050-preparation/enricher/070-cvr.md
    -> docs/05-govern-and-improve/enrichment/070-cvr.md
       /govern/enrichment/cvr
  docs/050-preparation/enricher/080-duckduckgo.md
    -> docs/05-govern-and-improve/enrichment/080-duckduckgo.md
       /govern/enrichment/duckduckgo
  docs/050-preparation/enricher/090-gleif.md
    -> docs/05-govern-and-improve/enrichment/090-gleif.md
       /govern/enrichment/gleif
  docs/050-preparation/enricher/110-google-maps.md
    -> docs/05-govern-and-improve/enrichment/100-google-maps.md
       /govern/enrichment/google-maps
  docs/050-preparation/enricher/120-knowledge-graph.md
    -> docs/05-govern-and-improve/enrichment/120-knowledge-graph.md
       /govern/enrichment/knowledge-graph
  docs/050-preparation/enricher/130-libpostal.md
    -> docs/05-govern-and-improve/enrichment/130-libpostal.md
       /govern/enrichment/libpostal
  docs/050-preparation/enricher/140-open-corporates.md
    -> docs/05-govern-and-improve/enrichment/140-open-corporates.md
       /govern/enrichment/open-corporates
  docs/050-preparation/enricher/150-permid.md
    -> docs/05-govern-and-improve/enrichment/150-perm-id.md
       /govern/enrichment/perm-id
  docs/050-preparation/enricher/160-vatlayer.md
    -> docs/05-govern-and-improve/enrichment/160-vatlayer.md
       /govern/enrichment/vatlayer
  docs/050-preparation/enricher/170-web.md
    -> docs/05-govern-and-improve/enrichment/180-web.md
       /govern/enrichment/web
  docs/050-preparation/enricher/190-artificial-intelligence.md
    -> docs/05-govern-and-improve/enrichment/190-artificial-intelligence.md
       /govern/enrichment/artificial-intelligence
  docs/050-preparation/enricher/200-rest-api.md
    -> docs/05-govern-and-improve/enrichment/200-rest-api.md
       /govern/enrichment/rest-api
  docs/050-preparation/enricher/210-google-images.md
    -> docs/05-govern-and-improve/enrichment/110-google-images.md
       /govern/enrichment/google-images
  docs/050-preparation/enricher/220-bvd.md
    -> docs/05-govern-and-improve/enrichment/170-bvd.md
       /govern/enrichment/bvd
  docs/070-governance/010-tag-monitoring.md
    -> docs/05-govern-and-improve/tags/010-tag-monitoring.md
       /govern/tags/tag-monitoring
  docs/080-management/010-rules.md
    -> docs/05-govern-and-improve/rules/index.md
       /govern/rules
  docs/080-management/070-ai-agents.md
    -> docs/05-govern-and-improve/ai-agents/index.md
       /govern/ai-agents
  docs/080-management/ai-agents/010-prerequisites-to-using-ai-agents.md
    -> docs/05-govern-and-improve/ai-agents/010-prerequisites-to-using-ai-agents.md
       /govern/ai-agents/prerequisites-to-using-ai-agents
  docs/080-management/ai-agents/020-built-in-ai-agents.md
    -> docs/05-govern-and-improve/ai-agents/020-built-in-ai-agents.md
       /govern/ai-agents/built-in-ai-agents
  docs/080-management/ai-agents/030-create-configure-and-run-an-ai-agent.md
    -> docs/05-govern-and-improve/ai-agents/030-create-configure-and-run-an-ai-agent.md
       /govern/ai-agents/create-configure-and-run-an-ai-agent
  docs/080-management/ai-agents/040-review-the-results-returned-by-an-ai-agent.md
    -> docs/05-govern-and-improve/ai-agents/040-review-the-results-returned-by-an-ai-agent.md
       /govern/ai-agents/review-the-results-returned-by-an-ai-agent
  docs/080-management/ai-agents/050-view-and-revert-changes-made-by-ai-agent.md
    -> docs/05-govern-and-improve/ai-agents/050-view-and-revert-changes-made-by-ai-agent.md
       /govern/ai-agents/view-and-revert-changes-made-by-ai-agent
  docs/080-management/ai-agents/060-ai-agents-faqs.md
    -> docs/05-govern-and-improve/ai-agents/060-ai-agents-faqs.md
       /govern/ai-agents/ai-agents-faqs
  docs/080-management/rules/010-rule-types.md
    -> docs/05-govern-and-improve/rules/010-rule-types.md
       /govern/rules/rule-types
  docs/080-management/rules/020-create-rule.md
    -> docs/05-govern-and-improve/rules/020-create-rule.md
       /govern/rules/create-rule
  docs/080-management/rules/030-manage-rules.md
    -> docs/05-govern-and-improve/rules/030-manage-rules.md
       /govern/rules/manage-rules
  docs/080-management/rules/040-power-fx-formulas-in-rules.md
    -> docs/05-govern-and-improve/rules/050-power-fx-formulas.md
       /govern/rules/power-fx-formulas
  docs/080-management/rules/040-rules-reference.md
    -> docs/05-govern-and-improve/rules/040-rules-reference.md
       /govern/rules/rules-reference
  docs/080-management/rules/050-best-practices-for-rules.md
    -> docs/05-govern-and-improve/rules/060-best-practices-for-rules.md
       /govern/rules/best-practices-for-rules
  docs/110-workflow.md
    -> docs/05-govern-and-improve/workflows/index.md
       /govern/workflows
  docs/130-workflow.md/010-concept-of-approvals.md
    -> docs/05-govern-and-improve/workflows/010-concept-of-approvals.md
       /govern/workflows/concept-of-approvals
  docs/130-workflow.md/020-prerequisites.md
    -> docs/05-govern-and-improve/workflows/020-prerequisites.md
       /govern/workflows/prerequisites
  docs/130-workflow.md/030-create-and-manage-workflows.md
    -> docs/05-govern-and-improve/workflows/030-create-and-manage-workflows.md
       /govern/workflows/create-and-manage-workflows
  docs/130-workflow.md/040-manage-approval-requests.md
    -> docs/05-govern-and-improve/workflows/040-manage-approval-requests.md
       /govern/workflows/manage-approval-requests
  docs/200-kb/how-to/010-fix-address-data.md
    -> docs/05-govern-and-improve/cleaning/070-how-to-fix-address-data.md
       /govern/cleaning/how-to-fix-address-data
  docs/200-kb/how-to/020-tag-records-with-data-quality-issues.md
    -> docs/05-govern-and-improve/tags/030-how-to-tag-records-with-data-quality-issues.md
       /govern/tags/how-to-tag-records-with-data-quality-issues
  docs/200-kb/how-to/030-standardize-dates.md
    -> docs/05-govern-and-improve/cleaning/080-how-to-standardize-dates.md
       /govern/cleaning/how-to-standardize-dates
  docs/200-kb/how-to/050-set-retention-on-data.md
    -> docs/05-govern-and-improve/090-set-retention.md
       /govern/set-retention
  docs/200-kb/how-to/060-working-with-tags-with-golden-record-or-data-part-rules.md
    -> docs/05-govern-and-improve/tags/020-use-tags-with-rules.md
       /govern/tags/use-tags-with-rules
  docs/200-kb/how-to/090-rules-that-work-across-business-domains.md
    -> docs/05-govern-and-improve/rules/080-rules-across-business-domains.md
       /govern/rules/rules-across-business-domains
  docs/200-kb/kb0009-cel.md
    -> docs/05-govern-and-improve/rules/090-cel.md
       /govern/rules/cel

Publish & consume  ->  /publish
-------------------------------
  docs/010-getting-started/050-data-streaming.md
    -> docs/06-publish-and-consume/streams/060-tutorial-stream-data.md
       /publish/streams/tutorial-stream-data
  docs/150-consume/002-streams.md
    -> docs/06-publish-and-consume/streams/index.md
       /publish/streams
  docs/150-consume/010-graphql.md
    -> docs/06-publish-and-consume/graphql/index.md
       /publish/graphql
  docs/150-consume/040-export-targets.md
    -> docs/06-publish-and-consume/export-targets/index.md
       /publish/export-targets
  docs/150-consume/export-targets/010-connector-reference.md
    -> docs/06-publish-and-consume/export-targets/010-connector-reference.md
       /publish/export-targets/connector-reference
  docs/150-consume/export-targets/020-adl-connector.md
    -> docs/06-publish-and-consume/export-targets/020-adl-connector.md
       /publish/export-targets/adl-connector
  docs/150-consume/export-targets/030-dedicated-sql-pool.md
    -> docs/06-publish-and-consume/export-targets/030-azure-dedicated-sql-pool-connector.md
       /publish/export-targets/azure-dedicated-sql-pool-connector
  docs/150-consume/export-targets/040-azure-event-hub.md
    -> docs/06-publish-and-consume/export-targets/040-azure-event-hub-connector.md
       /publish/export-targets/azure-event-hub-connector
  docs/150-consume/export-targets/050-azure-service-bus-connector.md
    -> docs/06-publish-and-consume/export-targets/050-azure-service-bus-connector.md
       /publish/export-targets/azure-service-bus-connector
  docs/150-consume/export-targets/060-dataverse-connector.md
    -> docs/06-publish-and-consume/export-targets/070-dataverse-connector.md
       /publish/export-targets/dataverse-connector
  docs/150-consume/export-targets/065-dataverse-connector-v2.md
    -> docs/06-publish-and-consume/export-targets/060-dataverse-connector-v2.md
       /publish/export-targets/dataverse-connector-v2
  docs/150-consume/export-targets/070-http-connector.md
    -> docs/06-publish-and-consume/export-targets/080-http-connector.md
       /publish/export-targets/http-connector
  docs/150-consume/export-targets/080-onelake-connector.md
    -> docs/06-publish-and-consume/export-targets/090-onelake-connector.md
       /publish/export-targets/onelake-connector
  docs/150-consume/export-targets/081-open-mirroring-connector.md
    -> docs/06-publish-and-consume/export-targets/100-openmirroring-connector.md
       /publish/export-targets/openmirroring-connector
  docs/150-consume/export-targets/090-sql-server-connector.md
    -> docs/06-publish-and-consume/export-targets/110-sql-server-connector.md
       /publish/export-targets/sql-server-connector
  docs/150-consume/export-targets/100-create-service-principal.md
    -> docs/06-publish-and-consume/export-targets/120-create-service-principal.md
       /publish/export-targets/create-service-principal
  docs/150-consume/export-targets/130-file-name-patterns.md
    -> docs/06-publish-and-consume/export-targets/130-file-name-patterns.md
       /publish/export-targets/file-name-patterns
  docs/150-consume/graphql/020-add-graphql-entity-type-resolvers.md
    -> docs/06-publish-and-consume/graphql/010-add-graphql-entity-type-resolvers.md
       /publish/graphql/add-graphql-entity-type-resolvers
  docs/150-consume/graphql/050-graphql-actions.md
    -> docs/06-publish-and-consume/graphql/020-graphql-actions.md
       /publish/graphql/graphql-actions
  docs/150-consume/streams/010-concept-of-a-stream.md
    -> docs/06-publish-and-consume/streams/010-concept-of-a-stream.md
       /publish/streams/concept-of-a-stream
  docs/150-consume/streams/010-create-a-stream.md
    -> docs/06-publish-and-consume/streams/020-create-a-stream.md
       /publish/streams/create-a-stream
  docs/150-consume/streams/020-manage-streams.md
    -> docs/06-publish-and-consume/streams/030-manage-streams.md
       /publish/streams/manage-streams
  docs/150-consume/streams/030-stream-reference.md
    -> docs/06-publish-and-consume/streams/040-stream-reference.md
       /publish/streams/stream-reference
  docs/150-consume/streams/040-stream-logs.md
    -> docs/06-publish-and-consume/streams/050-stream-logs.md
       /publish/streams/stream-logs
  docs/200-kb/how-to/100-connect-cluedin-to-slack.md
    -> docs/06-publish-and-consume/integration-patterns/010-connect-to-slack.md
       /publish/integration-patterns/connect-to-slack
  docs/200-kb/how-to/150-writing-data-back-to-operational-systems.md
    -> docs/06-publish-and-consume/integration-patterns/020-writing-back-to-operational-systems.md
       /publish/integration-patterns/writing-back-to-operational-systems
  docs/210-playbooks/120-writing-back-to-datasource.md
    -> docs/06-publish-and-consume/integration-patterns/030-write-back-event-hub-dataverse.md
       /publish/integration-patterns/write-back-event-hub-dataverse

Administer  ->  /administer
---------------------------
  docs/030-administration/010-user-management.md
    -> docs/07-administer/users-and-roles/010-user-management.md
       /administer/users-and-roles/user-management
  docs/030-administration/020-roles.md
    -> docs/07-administer/users-and-roles/020-roles.md
       /administer/users-and-roles/roles
  docs/030-administration/030-assign-roles.md
    -> docs/07-administer/users-and-roles/030-assign-roles.md
       /administer/users-and-roles/assign-roles
  docs/030-administration/040-claims.md
    -> docs/07-administer/users-and-roles/040-claims.md
       /administer/users-and-roles/claims
  docs/030-administration/050-process-role-requests.md
    -> docs/07-administer/users-and-roles/050-process-role-requests.md
       /administer/users-and-roles/process-role-requests
  docs/030-administration/060-permissions.md
    -> docs/07-administer/users-and-roles/060-permissions.md
       /administer/users-and-roles/permissions
  docs/030-administration/080-feature-flags.md
    -> docs/07-administer/050-feature-flags.md
       /administer/feature-flags
  docs/030-administration/090-user.access.md
    -> docs/07-administer/users-and-roles/070-user-access.md
       /administer/users-and-roles/user-access
  docs/030-administration/100-user-interface.md
    -> docs/07-administer/ui-configuration/010-user-interface.md
       /administer/ui-configuration/user-interface
  docs/030-administration/110-api-token.md
    -> docs/07-administer/060-api-token.md
       /administer/api-token
  docs/030-administration/user-access/010-data-access.md
    -> docs/07-administer/users-and-roles/080-data-access.md
       /administer/users-and-roles/data-access
  docs/030-administration/user-access/020-feature-access.md
    -> docs/07-administer/users-and-roles/090-feature-access.md
       /administer/users-and-roles/feature-access
  docs/030-administration/user-interface/010-entity-page-layout.md
    -> docs/07-administer/ui-configuration/020-entity-page-layout.md
       /administer/ui-configuration/entity-page-layout
  docs/030-administration/user-interface/020-side-navigation-menu.md
    -> docs/07-administer/ui-configuration/030-side-navigation-menu.md
       /administer/ui-configuration/side-navigation-menu
  docs/080-management/050-access.control.md
    -> docs/07-administer/access-control/index.md
       /administer/access-control
  docs/080-management/access-control/010-create-access-control-policy.md
    -> docs/07-administer/access-control/010-create-access-control-policy.md
       /administer/access-control/create-access-control-policy
  docs/080-management/access-control/020-manage-access-control-policies.md
    -> docs/07-administer/access-control/020-manage-access-control-policies.md
       /administer/access-control/manage-access-control-policies
  docs/080-management/access-control/030-access-control-reference.md
    -> docs/07-administer/access-control/030-access-control-reference.md
       /administer/access-control/access-control-reference
  docs/080-management/entity-type/010-entity-setup.md
    -> docs/07-administer/ui-configuration/040-business-domain-page-layout.md
       /administer/ui-configuration/business-domain-page-layout
  docs/080-management/entity-type/020-entity-type-translation.md
    -> docs/07-administer/ui-configuration/050-business-domain-translation.md
       /administer/ui-configuration/business-domain-translation

Deploy & operate  ->  /operate
------------------------------
  docs/020-deployment/000-saas.md
    -> docs/08-deploy-and-operate/deployment-options/010-cluedin-saas.md
       /operate/deployment-options/cluedin-saas
  docs/020-deployment/001-saas-install.md
    -> docs/08-deploy-and-operate/deployment-options/020-saas.md
       /operate/deployment-options/saas
  docs/020-deployment/002-paas-install.md
    -> docs/08-deploy-and-operate/deployment-options/030-azure-marketplace.md
       /operate/deployment-options/azure-marketplace
  docs/020-deployment/003-pricing.md
    -> docs/08-deploy-and-operate/deployment-options/050-pricing.md
       /operate/deployment-options/pricing
  docs/020-deployment/004-local-install.md
    -> docs/08-deploy-and-operate/deployment-options/040-local.md
       /operate/deployment-options/local
  docs/020-deployment/005-delete-cluedin-instance.md
    -> docs/08-deploy-and-operate/deployment-options/080-delete-cluedin-instance.md
       /operate/deployment-options/delete-cluedin-instance
  docs/020-deployment/006-licensing-agent-install.md
    -> docs/08-deploy-and-operate/deployment-options/060-marketplace-licensing-agent.md
       /operate/deployment-options/marketplace-licensing-agent
  docs/020-deployment/007-licensing-agent-exclusion.md
    -> docs/08-deploy-and-operate/deployment-options/070-azure-policy-exemption.md
       /operate/deployment-options/azure-policy-exemption
  docs/020-deployment/ama/020-ama-first-step.md
    -> docs/08-deploy-and-operate/azure-marketplace/010-step-1.md
       /operate/azure-marketplace/step-1
  docs/020-deployment/ama/030-ama-second-step.md
    -> docs/08-deploy-and-operate/azure-marketplace/020-step-2.md
       /operate/azure-marketplace/step-2
  docs/020-deployment/ama/040-ama-third-step.md
    -> docs/08-deploy-and-operate/azure-marketplace/030-step-3.md
       /operate/azure-marketplace/step-3
  docs/020-deployment/ama/050-ama-fourth-step.md
    -> docs/08-deploy-and-operate/azure-marketplace/040-step-4.md
       /operate/azure-marketplace/step-4
  docs/020-deployment/azure/010-aks.md
    -> docs/08-deploy-and-operate/azure-deployment/010-aks.md
       /operate/azure/aks
  docs/020-deployment/azure/020-dns.md
    -> docs/08-deploy-and-operate/azure-deployment/020-dns.md
       /operate/azure/dns
  docs/020-deployment/azure/030-certificate.md
    -> docs/08-deploy-and-operate/azure-deployment/030-certificate.md
       /operate/azure/certificate
  docs/020-deployment/azure/040-disks.md
    -> docs/08-deploy-and-operate/azure-deployment/040-disks.md
       /operate/azure/disks
  docs/020-deployment/azure/050-email.md
    -> docs/08-deploy-and-operate/azure-deployment/050-email.md
       /operate/azure/email
  docs/020-deployment/azure/060-pat.md
    -> docs/08-deploy-and-operate/azure-deployment/060-pat.md
       /operate/azure/pat
  docs/020-deployment/azure/070-helm.md
    -> docs/08-deploy-and-operate/azure-deployment/070-helm.md
       /operate/azure/helm
  docs/020-deployment/azure/080-cluedin-setup.md
    -> docs/08-deploy-and-operate/azure-deployment/080-setup.md
       /operate/azure/setup
  docs/020-deployment/azure/setup/010-step-by-step-install.md
    -> docs/08-deploy-and-operate/azure-deployment/090-walkthrough.md
       /operate/azure/walkthrough
  docs/020-deployment/azure/setup/020-full-azure-cli-install.md
    -> docs/08-deploy-and-operate/azure-deployment/100-powershell.md
       /operate/azure/powershell
  docs/020-deployment/local/010-requirements.md
    -> docs/08-deploy-and-operate/local-deployment/010-step-1.md
       /operate/local/step-1
  docs/020-deployment/local/020-local-install-guide.md
    -> docs/08-deploy-and-operate/local-deployment/020-step-2.md
       /operate/local/step-2
  docs/020-deployment/local/030-extension-package.md
    -> docs/08-deploy-and-operate/local-deployment/030-step-3.md
       /operate/local/step-3
  docs/020-deployment/local/040-local-upgrade.md
    -> docs/08-deploy-and-operate/local-deployment/040-local-upgrade.md
       /operate/local/local-upgrade
  docs/020-deployment/saas/010-azure-requirements.md
    -> docs/08-deploy-and-operate/azure-marketplace/050-requirements.md
       /operate/azure-marketplace/requirements
  docs/020-deployment/saas/020-saas-installation-guide.md
    -> docs/08-deploy-and-operate/azure-marketplace/060-installation-guide.md
       /operate/azure-marketplace/installation-guide
  docs/070-engine-room.md
    -> docs/08-deploy-and-operate/monitoring/010-engine-room.md
       /operate/monitoring/engine-room
  docs/120-engine-room/010-cluedIn-performance-metrics.md
    -> docs/08-deploy-and-operate/monitoring/020-processing-pipeline.md
       /operate/monitoring/processing-pipeline
  docs/190-paas-operations/001-architecture.md
    -> docs/08-deploy-and-operate/010-architecture.md
       /operate/architecture
  docs/190-paas-operations/002-backup-and-restore.md
    -> docs/08-deploy-and-operate/backup-and-restore/index.md
       /operate/backup-and-restore
  docs/190-paas-operations/003-configuration.md
    -> docs/08-deploy-and-operate/configuration/index.md
       /operate/configuration
  docs/190-paas-operations/004-upgrade.md
    -> docs/08-deploy-and-operate/upgrade/index.md
       /operate/upgrade
  docs/190-paas-operations/005-cost-reduction.md
    -> docs/08-deploy-and-operate/cost-and-scaling/010-cost-reduction.md
       /operate/cost-and-scaling/cost-reduction
  docs/190-paas-operations/006-support-scope.md
    -> docs/08-deploy-and-operate/operations/010-support-scope.md
       /operate/operations/support-scope
  docs/190-paas-operations/007-configuration-migration.md
    -> docs/08-deploy-and-operate/configuration/160-sync-configuration-between-environments.md
       /operate/configuration/sync-configuration-between-environments
  docs/190-paas-operations/008-akv2aks.md
    -> docs/08-deploy-and-operate/configuration/150-sync-aks-to-akv.md
       /operate/configuration/sync-aks-to-akv
  docs/190-paas-operations/009-env-management.md
    -> docs/08-deploy-and-operate/operations/020-env-management-playbook.md
       /operate/operations/env-management-playbook
  docs/190-paas-operations/010-disaster-recovery-plan.md
    -> docs/08-deploy-and-operate/backup-and-restore/010-disaster-recovery-plan.md
       /operate/backup-and-restore/disaster-recovery-plan
  docs/190-paas-operations/110-reset-tool.md
    -> docs/08-deploy-and-operate/operations/030-reset-tool.md
       /operate/operations/reset-tool
  docs/190-paas-operations/120-log-analytics-workspace.md
    -> docs/08-deploy-and-operate/monitoring/030-review-logs-in-log-analytics-workspace.md
       /operate/monitoring/review-logs-in-log-analytics-workspace
  docs/190-paas-operations/130-common-questions.md
    -> docs/08-deploy-and-operate/operations/050-common-questions.md
       /operate/operations/common-questions
  docs/190-paas-operations/140-queues-in-cluedin.md
    -> docs/08-deploy-and-operate/015-queues-in-cluedin.md
       /operate/queues-in-cluedin
  docs/190-paas-operations/150-azure-sql-migration.md
    -> docs/08-deploy-and-operate/operations/040-azure-mssql-migration.md
       /operate/operations/azure-mssql-migration
  docs/190-paas-operations/160-security-inventory.md
    -> docs/08-deploy-and-operate/security/010-security-inventory.md
       /operate/security/security-inventory
  docs/190-paas-operations/170-private-endpoint.md
    -> docs/08-deploy-and-operate/configuration/140-private-endpoint.md
       /operate/configuration/private-endpoint
  docs/190-paas-operations/backup-and-restore/010-disaster-recovery-runbook.md
    -> docs/08-deploy-and-operate/backup-and-restore/050-disaster-recovery-runbook.md
       /operate/backup-and-restore/disaster-recovery-runbook
  docs/190-paas-operations/backup-and-restore/011-disaster-recovery-runbook-failover-database.md
    -> docs/08-deploy-and-operate/backup-and-restore/060-disaster-recovery-runbook-failover-database.md
       /operate/backup-and-restore/disaster-recovery-runbook-failover-database
  docs/190-paas-operations/backup-and-restore/020-backup-runbook.md
    -> docs/08-deploy-and-operate/backup-and-restore/020-backup-runbook.md
       /operate/backup-and-restore/backup-runbook
  docs/190-paas-operations/backup-and-restore/030-copy-snapshots-runbook.md
    -> docs/08-deploy-and-operate/backup-and-restore/030-copy-snapshots-runbook.md
       /operate/backup-and-restore/copy-snapshots-runbook
  docs/190-paas-operations/backup-and-restore/040-restore-runbook.md
    -> docs/08-deploy-and-operate/backup-and-restore/040-restore-runbook.md
       /operate/backup-and-restore/restore-runbook
  docs/190-paas-operations/backup-and-restore/050-traffic-manager-runbook.md
    -> docs/08-deploy-and-operate/backup-and-restore/070-traffic-manager-runbook.md
       /operate/backup-and-restore/traffic-manager-runbook
  docs/190-paas-operations/configuration/010-connect-to-cluedin.md
    -> docs/08-deploy-and-operate/configuration/010-connect-to-cluedin.md
       /operate/configuration/connect-to-cluedin
  docs/190-paas-operations/configuration/020-setup-sso.md
    -> docs/08-deploy-and-operate/configuration/020-configure-sso.md
       /operate/configuration/configure-sso
  docs/190-paas-operations/configuration/030-advanced-network.md
    -> docs/08-deploy-and-operate/configuration/030-advanced-network.md
       /operate/configuration/advanced-network
  docs/190-paas-operations/configuration/040-configure-email.md
    -> docs/08-deploy-and-operate/configuration/040-configure-email.md
       /operate/configuration/configure-email
  docs/190-paas-operations/configuration/050-configure-logging.md
    -> docs/08-deploy-and-operate/configuration/050-configure-logging.md
       /operate/configuration/configure-logging
  docs/190-paas-operations/configuration/070-configure-certificates.md
    -> docs/08-deploy-and-operate/configuration/060-configure-certificates.md
       /operate/configuration/configure-certificates
  docs/190-paas-operations/configuration/080-configure-dns.md
    -> docs/08-deploy-and-operate/configuration/070-configure-dns.md
       /operate/configuration/configure-dns
  docs/190-paas-operations/configuration/081-configure-pvc.md
    -> docs/08-deploy-and-operate/configuration/080-persistence.md
       /operate/configuration/persistence
  docs/190-paas-operations/configuration/090-configure-alerts.md
    -> docs/08-deploy-and-operate/configuration/090-configure-alerts.md
       /operate/configuration/configure-alerts
  docs/190-paas-operations/configuration/100-configure-firewall.md
    -> docs/08-deploy-and-operate/configuration/100-configure-firewall.md
       /operate/configuration/configure-firewall
  docs/190-paas-operations/configuration/110-ama-upgrade.md
    -> docs/08-deploy-and-operate/upgrade/080-ama-upgrade.md
       /operate/upgrade/ama-upgrade
  docs/190-paas-operations/configuration/114-configure-sqlserver.md
    -> docs/08-deploy-and-operate/configuration/110-sql.md
       /operate/configuration/sql
  docs/190-paas-operations/configuration/115-modify-response-headers.md
    -> docs/08-deploy-and-operate/configuration/120-modify-response-headers.md
       /operate/configuration/modify-response-headers
  docs/190-paas-operations/configuration/116-dedicated-stream-processing-pod.md
    -> docs/08-deploy-and-operate/configuration/130-dedicated-stream-processing-pod.md
       /operate/configuration/dedicated-stream-processing-pod
  docs/190-paas-operations/upgrade/100-cluedin-upgrade-guide.md
    -> docs/08-deploy-and-operate/upgrade/010-guide.md
       /operate/upgrade/guide
  docs/190-paas-operations/upgrade/111-aks-upgrade.md
    -> docs/08-deploy-and-operate/upgrade/070-aks.md
       /operate/upgrade/aks
  docs/190-paas-operations/upgrade/201-upgrade-202401.md
    -> docs/08-deploy-and-operate/upgrade/100-2024-01.md
       /operate/upgrade/2024-01
  docs/190-paas-operations/upgrade/202-upgrade-202403.md
    -> docs/08-deploy-and-operate/upgrade/105-2024-03.md
       /operate/upgrade/2024-03
  docs/190-paas-operations/upgrade/203-upgrade-202404.md
    -> docs/08-deploy-and-operate/upgrade/110-2024-04.md
       /operate/upgrade/2024-04
  docs/190-paas-operations/upgrade/204-upgrade-202407.md
    -> docs/08-deploy-and-operate/upgrade/115-2024-07.md
       /operate/upgrade/2024-07
  docs/190-paas-operations/upgrade/205-upgrade-20240701.md
    -> docs/08-deploy-and-operate/upgrade/120-2024-07-01.md
       /operate/upgrade/2024-07-01
  docs/190-paas-operations/upgrade/206-upgrade-20240702.md
    -> docs/08-deploy-and-operate/upgrade/125-2024-07-02.md
       /operate/upgrade/2024-07-02
  docs/190-paas-operations/upgrade/207-upgrade-20240703.md
    -> docs/08-deploy-and-operate/upgrade/130-2024-07-03.md
       /operate/upgrade/2024-07-03
  docs/190-paas-operations/upgrade/208-upgrade-202412.md
    -> docs/08-deploy-and-operate/upgrade/135-2024-12.md
       /operate/upgrade/2024-12
  docs/190-paas-operations/upgrade/209-upgrade-20241201.md
    -> docs/08-deploy-and-operate/upgrade/140-2024-12-01.md
       /operate/upgrade/2024-12-01
  docs/190-paas-operations/upgrade/210-upgrade-20241202.md
    -> docs/08-deploy-and-operate/upgrade/145-2024-12-02.md
       /operate/upgrade/2024-12-02
  docs/190-paas-operations/upgrade/211-upgrade-20250500.md
    -> docs/08-deploy-and-operate/upgrade/150-2025-05-00.md
       /operate/upgrade/2025-05-00
  docs/190-paas-operations/upgrade/212-upgrade-20250501.md
    -> docs/08-deploy-and-operate/upgrade/155-2025-05-01.md
       /operate/upgrade/2025-05-01
  docs/190-paas-operations/upgrade/213-upgrade-20250502.md
    -> docs/08-deploy-and-operate/upgrade/160-2025-05-02.md
       /operate/upgrade/2025-05-02
  docs/190-paas-operations/upgrade/214-upgrade-20250900.md
    -> docs/08-deploy-and-operate/upgrade/165-2025-09-00.md
       /operate/upgrade/2025-09-00
  docs/190-paas-operations/upgrade/215-upgrade-20260100-support.md
    -> docs/08-deploy-and-operate/upgrade/170-2026-01-00-support.md
       /operate/upgrade/2026-01-00-support
  docs/190-paas-operations/upgrade/215-upgrade-20260100.md
    -> docs/08-deploy-and-operate/upgrade/175-2026-01-00.md
       /operate/upgrade/2026-01-00
  docs/190-paas-operations/upgrade/216-upgrade-20260200.md
    -> docs/08-deploy-and-operate/upgrade/180-2026-02-00.md
       /operate/upgrade/2026-02-00
  docs/190-paas-operations/upgrade/upgrade-guide/010-plan-the-upgrade.md
    -> docs/08-deploy-and-operate/upgrade/020-plan-the-upgrade.md
       /operate/upgrade/plan-the-upgrade
  docs/190-paas-operations/upgrade/upgrade-guide/020-prepare-for-the-upgrade.md
    -> docs/08-deploy-and-operate/upgrade/030-prepare-for-the-upgrade.md
       /operate/upgrade/prepare-for-the-upgrade
  docs/190-paas-operations/upgrade/upgrade-guide/030-perform-for-the-upgrade.md
    -> docs/08-deploy-and-operate/upgrade/040-perform-the-upgrade.md
       /operate/upgrade/perform-the-upgrade
  docs/190-paas-operations/upgrade/upgrade-guide/040-common-upgrade-operations.md
    -> docs/08-deploy-and-operate/upgrade/050-common-upgrade-operations.md
       /operate/upgrade/common-upgrade-operations
  docs/190-paas-operations/upgrade/upgrade-guide/050-resolve-common-upgrade-issues.md
    -> docs/08-deploy-and-operate/upgrade/060-resolve-common-upgrade-issues.md
       /operate/upgrade/resolve-common-upgrade-issues
  docs/190-paas-operations/upgrade/upgrade-guide/060-required-tools.md
    -> docs/08-deploy-and-operate/upgrade/015-required-tools.md
       /operate/upgrade/required-tools
  docs/200-kb/kb0001-pid.md
    -> docs/08-deploy-and-operate/security/070-azure-customer-usage-attribution.md
       /operate/security/azure-customer-usage-attribution
  docs/200-kb/kb0002-basic-auth-clean.md
    -> docs/08-deploy-and-operate/security/030-basic-auth-cluedin-clean.md
       /operate/security/basic-auth-cluedin-clean
  docs/200-kb/kb0005-log4j.md
    -> docs/08-deploy-and-operate/security/050-log4j.md
       /operate/security/log4j
  docs/200-kb/kb0006-sso-auth-clean.md
    -> docs/08-deploy-and-operate/security/040-sso-auth-cluedin-clean.md
       /operate/security/sso-auth-cluedin-clean
  docs/200-kb/kb0009-cost-efficience.md
    -> docs/08-deploy-and-operate/cost-and-scaling/020-cost-efficience.md
       /operate/cost-and-scaling/cost-efficience
  docs/200-kb/kb0012-stop-aks-cluster.md
    -> docs/08-deploy-and-operate/cost-and-scaling/030-stop-cluster.md
       /operate/cost-and-scaling/stop-cluster
  docs/200-kb/kb1003-defender.md
    -> docs/08-deploy-and-operate/security/020-defender-for-cloud-recommendations.md
       /operate/security/defender-for-cloud-recommendations
  docs/200-kb/kb1004-ingress-nginx.md
    -> docs/08-deploy-and-operate/security/060-ingress-nginx-controller.md
       /operate/security/ingress-nginx-controller

Develop & APIs  ->  /develop
----------------------------
  docs/040-integration/crawlers/030-robust-integrations.md
    -> docs/09-develop/integrations/030-robust-ntegrations.md
       /develop/integrations/robust-ntegrations
  docs/040-integration/crawlers/080-build-integration.md
    -> docs/09-develop/integrations/010-build-integration.md
       /develop/integrations/build-integration
  docs/040-integration/crawlers/090-delta-crawls.md
    -> docs/09-develop/integrations/020-delts-crawls.md
       /develop/integrations/delts-crawls
  docs/040-integration/crawlers/140-crawler-validation-framework.md
    -> docs/09-develop/integrations/040-crawler-validation-framework.md
       /develop/integrations/crawler-validation-framework
  docs/050-preparation/enricher/180-build-enricher.md
    -> docs/09-develop/030-build-custom-enricher.md
       /develop/build-custom-enricher
  docs/210-playbooks/data-engineering/010-python-sdk.md
    -> docs/09-develop/python-sdk/010-python-sdk.md
       /develop/python-sdk/python-sdk
  docs/210-playbooks/data-engineering/020-search.md
    -> docs/09-develop/python-sdk/020-search.md
       /develop/python-sdk/search
  docs/210-playbooks/data-engineering/030-automation.md
    -> docs/09-develop/python-sdk/030-automation.md
       /develop/python-sdk/automation
  docs/210-playbooks/data-engineering/040-ingestion.md
    -> docs/09-develop/python-sdk/040-ingestion.md
       /develop/python-sdk/ingestion
  docs/210-playbooks/data-engineering/050-export.md
    -> docs/09-develop/python-sdk/050-export.md
       /develop/python-sdk/export
  docs/210-playbooks/data-engineering/060-magic.md
    -> docs/09-develop/python-sdk/060-magic.md
       /develop/python-sdk/magic
  docs/250-rest-api/010-get-started.md
    -> docs/09-develop/api-reference/005-get-started.md
       /api/get-started
  docs/250-rest-api/020-api-reference.md
    -> docs/09-develop/api-reference/index.md
       /api
  docs/250-rest-api/020-api-reference/020-access-control-and-governance.md
    -> docs/09-develop/api-reference/020-access-control-and-governance.md
       /api/access-control-and-governance
  docs/250-rest-api/020-api-reference/030-entities.md
    -> docs/09-develop/api-reference/030-entities.md
       /api/entities
  docs/250-rest-api/020-api-reference/040-search.md
    -> docs/09-develop/api-reference/040-search.md
       /api/search
  docs/250-rest-api/020-api-reference/050-vocabularies.md
    -> docs/09-develop/api-reference/050-vocabularies.md
       /api/vocabularies
  docs/250-rest-api/020-api-reference/060-glossary.md
    -> docs/09-develop/api-reference/060-glossary.md
       /api/glossary
  docs/250-rest-api/020-api-reference/070-hierarchies.md
    -> docs/09-develop/api-reference/070-hierarchies.md
       /api/hierarchies
  docs/250-rest-api/020-api-reference/075-deduplication.md
    -> docs/09-develop/api-reference/080-deduplication.md
       /api/deduplication
  docs/250-rest-api/020-api-reference/080-rules-and-evaluation.md
    -> docs/09-develop/api-reference/090-rules-and-evaluation.md
       /api/rules-and-evaluation
  docs/250-rest-api/020-api-reference/100-streams-and-export.md
    -> docs/09-develop/api-reference/100-streams-and-export.md
       /api/streams-and-export
  docs/250-rest-api/020-api-reference/110-data-preparation-and-enrichment.md
    -> docs/09-develop/api-reference/110-data-preparation-and-enrichment.md
       /api/data-preparation-and-enrichment
  docs/250-rest-api/020-api-reference/130-ai.md
    -> docs/09-develop/api-reference/120-ai.md
       /api/ai
  docs/250-rest-api/020-api-reference/140-administration-and-configuration.md
    -> docs/09-develop/api-reference/130-administration-and-configuration.md
       /api/administration-and-configuration
  docs/250-rest-api/020-api-reference/150-organization.md
    -> docs/09-develop/api-reference/140-organization.md
       /api/organization

Solutions & integrations  ->  /solutions
----------------------------------------
  docs/180-microsoft-integration/010-power-automate.md
    -> docs/11-solutions-and-integrations/power-automate/index.md
       /solutions/power-automate
  docs/180-microsoft-integration/010-powerapps.md
    -> docs/11-solutions-and-integrations/power-apps/index.md
       /solutions/power-apps
  docs/180-microsoft-integration/020-purview.md
    -> docs/11-solutions-and-integrations/purview/index.md
       /solutions/purview
  docs/180-microsoft-integration/030-copilot.md
    -> docs/11-solutions-and-integrations/copilot/index.md
       /solutions/copilot
  docs/180-microsoft-integration/040-fabric.md
    -> docs/11-solutions-and-integrations/fabric/index.md
       /solutions/fabric
  docs/180-microsoft-integration/050-event-hub.md
    -> docs/11-solutions-and-integrations/080-event-hub-integration.md
       /solutions/event-hub-integration
  docs/180-microsoft-integration/060-open-ai.md
    -> docs/11-solutions-and-integrations/085-open-ai-integration.md
       /solutions/open-ai-integration
  docs/180-microsoft-integration/070-adf.md
    -> docs/11-solutions-and-integrations/azure-data-factory/index.md
       /solutions/azure-data-factory
  docs/180-microsoft-integration/080-mds-configuration.md
    -> docs/11-solutions-and-integrations/master-data-services/index.md
       /solutions/master-data-services
  docs/180-microsoft-integration/090-excel-add-in.md
    -> docs/11-solutions-and-integrations/090-excel-add-in.md
       /solutions/excel-add-in
  docs/180-microsoft-integration/azure-data-factory/001-adf-with-private-link.md
    -> docs/11-solutions-and-integrations/azure-data-factory/010-private-link.md
       /solutions/azure-data-factory/private-link
  docs/180-microsoft-integration/azure-data-factory/002-copy-data-activity.md
    -> docs/11-solutions-and-integrations/azure-data-factory/020-copy-data.md
       /solutions/azure-data-factory/copy-data
  docs/180-microsoft-integration/azure-data-factory/003-data-flow-activity.md
    -> docs/11-solutions-and-integrations/azure-data-factory/030-data-flow-activity.md
       /solutions/azure-data-factory/data-flow-activity
  docs/180-microsoft-integration/copilot/010-get-access-to-copilot.md
    -> docs/11-solutions-and-integrations/copilot/010-get-access-to-copilot.md
       /solutions/copilot/get-access-to-copilot
  docs/180-microsoft-integration/copilot/020-work-with-copilot.md
    -> docs/11-solutions-and-integrations/copilot/020-work-with-copilot.md
       /solutions/copilot/work-with-copilot
  docs/180-microsoft-integration/fabric/010-connect-cluedin-to-fabric.md
    -> docs/11-solutions-and-integrations/fabric/010-connect-cluedin-to-fabric.md
       /solutions/fabric/connect-cluedin-to-fabric
  docs/180-microsoft-integration/fabric/020-connect-fabric-to-cluedin.md
    -> docs/11-solutions-and-integrations/fabric/020-connect-fabric-to-cluedin.md
       /solutions/fabric/connect-fabric-to-cluedin
  docs/180-microsoft-integration/fabric/030-use-cluedin-rules-in-fabric.md
    -> docs/11-solutions-and-integrations/fabric/030-use-cluedin-rules-in-fabric.md
       /solutions/fabric/use-cluedin-rules-in-fabric
  docs/180-microsoft-integration/fabric/040-use-cluedin-fabric-workload.md
    -> docs/11-solutions-and-integrations/fabric/040-use-cluedin-fabric-workload.md
       /solutions/fabric/use-cluedin-fabric-workload
  docs/180-microsoft-integration/mds/010-direct-connection.md
    -> docs/11-solutions-and-integrations/master-data-services/010-direct-connection.md
       /solutions/master-data-services/direct-connection
  docs/180-microsoft-integration/mds/020-azure-relay.md
    -> docs/11-solutions-and-integrations/master-data-services/020-azure-relay.md
       /solutions/master-data-services/azure-relay
  docs/180-microsoft-integration/power-automate/010-power-automate-pre-configuration-guide.md
    -> docs/11-solutions-and-integrations/power-automate/010-pre-configuration-guide.md
       /solutions/power-automate/pre-configuration-guide
  docs/180-microsoft-integration/power-automate/020-power-automate-configuration-guide.md
    -> docs/11-solutions-and-integrations/power-automate/020-configuration-guide.md
       /solutions/power-automate/configuration-guide
  docs/180-microsoft-integration/power-automate/030-power-automate-post-configuration-guide.md
    -> docs/11-solutions-and-integrations/power-automate/030-post-configuration-guide.md
       /solutions/power-automate/post-configuration-guide
  docs/180-microsoft-integration/power-automate/040-power-automate-private-network.md
    -> docs/11-solutions-and-integrations/power-automate/040-private-network.md
       /solutions/power-automate/private-network
  docs/180-microsoft-integration/powerapps/010-power-apps-pre-configuration-guide.md
    -> docs/11-solutions-and-integrations/power-apps/010-pre-configuration-guide.md
       /solutions/power-apps/pre-configuration-guide
  docs/180-microsoft-integration/powerapps/010-setup-credentials.md
    -> docs/11-solutions-and-integrations/power-apps/020-setup-credentials.md
       /solutions/power-apps/setup-credentials
  docs/180-microsoft-integration/powerapps/020-features/010-sync-entitytypes-to-dataverse.md
    -> docs/11-solutions-and-integrations/power-apps/070-sync-entitytypes.md
       /solutions/power-apps/sync-entitytypes
  docs/180-microsoft-integration/powerapps/020-features/020-sync-dataverse-to-cluedin.md
    -> docs/11-solutions-and-integrations/power-apps/080-sync-dataverse.md
       /solutions/power-apps/sync-dataverse
  docs/180-microsoft-integration/powerapps/020-features/030-create-ingestion-endpoint-workflow.md
    -> docs/11-solutions-and-integrations/power-apps/090-create-workflow.md
       /solutions/power-apps/create-workflow
  docs/180-microsoft-integration/powerapps/020-features/040-create-batch-approval-worrkflow.md
    -> docs/11-solutions-and-integrations/power-apps/100-create-batch-approval-workflow.md
       /solutions/power-apps/create-batch-approval-workflow
  docs/180-microsoft-integration/powerapps/020-features/050-create-streams.md
    -> docs/11-solutions-and-integrations/power-apps/110-create-streams.md
       /solutions/power-apps/create-streams
  docs/180-microsoft-integration/powerapps/020-power-apps-configuration-guide.md
    -> docs/11-solutions-and-integrations/power-apps/040-configuration-guide.md
       /solutions/power-apps/configuration-guide
  docs/180-microsoft-integration/powerapps/020-setup-connections.md
    -> docs/11-solutions-and-integrations/power-apps/030-setup-connections.md
       /solutions/power-apps/setup-connections
  docs/180-microsoft-integration/powerapps/030-features.md
    -> docs/11-solutions-and-integrations/power-apps/050-features.md
       /solutions/power-apps/features
  docs/180-microsoft-integration/powerapps/040-external-features.md
    -> docs/11-solutions-and-integrations/power-apps/060-external-features.md
       /solutions/power-apps/external-features
  docs/180-microsoft-integration/purview/010-intro.md
    -> docs/11-solutions-and-integrations/purview/010-features.md
       /solutions/purview/features
  docs/180-microsoft-integration/purview/010-purview-pre-configuration-guide.md
    -> docs/11-solutions-and-integrations/purview/020-pre-configuration-guide.md
       /solutions/purview/pre-configuration-guide
  docs/180-microsoft-integration/purview/020-purview-configuration.guide.md
    -> docs/11-solutions-and-integrations/purview/040-configuration-guide.md
       /solutions/purview/configuration-guide
  docs/180-microsoft-integration/purview/020-setup-permissions.md
    -> docs/11-solutions-and-integrations/purview/030-setup.md
       /solutions/purview/setup
  docs/180-microsoft-integration/purview/030-sync-data-sources.md
    -> docs/11-solutions-and-integrations/purview/050-sync-data-sources.md
       /solutions/purview/sync-data-sources
  docs/180-microsoft-integration/purview/040-azure-data-factory-pipeline-automation.md
    -> docs/11-solutions-and-integrations/purview/060-data-factory-pipeline-automation.md
       /solutions/purview/data-factory-pipeline-automation
  docs/180-microsoft-integration/purview/041-data-factory-pipeline-run-schedule.md
    -> docs/11-solutions-and-integrations/purview/070-data-factory-pipeline-run-schedule.md
       /solutions/purview/data-factory-pipeline-run-schedule
  docs/180-microsoft-integration/purview/050-sync-manual-data-entry-to-purview.md
    -> docs/11-solutions-and-integrations/purview/080-sync-manual-data-entry-to-purview.md
       /solutions/purview/sync-manual-data-entry-to-purview
  docs/180-microsoft-integration/purview/060-sync-processing-rules-to-purview.md
    -> docs/11-solutions-and-integrations/purview/090-sync-processing-rules-to-purview.md
       /solutions/purview/sync-processing-rules-to-purview
  docs/180-microsoft-integration/purview/070-sync-clean-projects-to-purview.md
    -> docs/11-solutions-and-integrations/purview/100-sync-clean-projects-to-purview.md
       /solutions/purview/sync-clean-projects-to-purview
  docs/180-microsoft-integration/purview/080-sync-deduplication-projects-to-purview.md
    -> docs/11-solutions-and-integrations/purview/110-sync-deduplication-projects-to-purview.md
       /solutions/purview/sync-deduplication-projects-to-purview
  docs/180-microsoft-integration/purview/090-sync-streams-to-purview.md
    -> docs/11-solutions-and-integrations/purview/120-sync-streams-to-purview.md
       /solutions/purview/sync-streams-to-purview
  docs/180-microsoft-integration/purview/100-sync-purview-glossaries-to-cluedin-glossaries.md
    -> docs/11-solutions-and-integrations/purview/130-sync-purview-glossaries-to-cluedin-glossaries.md
       /solutions/purview/sync-purview-glossaries-to-cluedin-glossaries
  docs/180-microsoft-integration/purview/110-sync-purview-glossaries-to-cluedin-vocabularies.md
    -> docs/11-solutions-and-integrations/purview/140-sync-purview-glossaries-to-cluedin-vocabularies.md
       /solutions/purview/sync-purview-glossaries-to-cluedin-vocabularies
  docs/180-microsoft-integration/purview/120-sync-data-products.md
    -> docs/11-solutions-and-integrations/purview/150-sync-data-products.md
       /solutions/purview/sync-data-products
  docs/230-usecases/001-usecases-summary.md
    -> docs/11-solutions-and-integrations/use-cases/index.md
       /solutions/use-cases
  docs/230-usecases/centralised-master-data-management/001-centralised-mdm.md
    -> docs/11-…
The restructure moved every article to a home derived from the data lifecycle,
but nothing recorded how to decide that home for the next article. Without it
the tree drifts back towards being organised by feature name.

CONTRIBUTING.md is that procedure. It is a placement decision, not a style
guide:

  1. Product documentation, or supporting material? Supporting material links
     to the canonical page instead of restating it, so the test is: delete
     every sentence explaining how a feature works, replace each with a link,
     and see whether a useful article remains.
  2. Which section? A table per lifecycle stage, plus rulings on the four
     boundaries that are genuinely ambiguous - Administer vs Deploy & operate,
     Model vs Master, Model vs Govern, Publish vs Develop - and where
     symptom-first articles go.
  3. Which subsection? Three conditions for creating a new one, and the hard
     three-level navigation ceiling.
  4. Which content type? The test for each, and the how-to vs tutorial split.
  5. File name and front matter, with templates for an article and a
     subsection index.

It also records what is easy to get wrong: the numeric filename prefix must
equal nav_order, the directory name is not the URL (05-govern-and-improve
serves /govern), parent and grand_parent are page titles spelled exactly, and
section indexes are generated by _includes/children.html and must never be
hand-maintained.

Every fact in it was checked against the tree rather than written from memory,
including the six subsections whose URL differs from their directory name and
the nav_order-equals-prefix invariant, which holds for all 517 articles.

NAVIGATION REACHABILITY

validate.py checked that a parent resolves, but not that the chain climbs all
the way to a top-level section. A page whose chain stops short is still built
and still served - it is simply absent from the sidebar, so the only way to
find it is to already know the URL. Verified against a real build: dropping
grand_parent from one page took the Rules sidebar from 8 links to 7 while the
page continued to be served.

validate.py now walks the chain for every published page and fails if one
cannot be reached, and reports how many pages are deliberately held out of the
sidebar with nav_exclude.

Audited on the current tree: 490 published pages, 486 reachable from the
sidebar. The other four carry nav_exclude - docs/tag.md and terms-of-service.md
are utility pages, and the two under Deploy & operate carried nav_exclude
before the restructure too, so they are pre-existing choices rather than
regressions.

One stale key removed. 170-2026-01-00-support.md still declared
great_grand_parent: "PaaS operations", a section that no longer exists; the
migration flattened the page correctly but left the key behind. A/B builds show
just-the-docs 0.7 ignores it, so the page was reachable either way - this is
cleanup, not a fix for a broken navigation.

Also here: README.md points at the guidelines and no longer cites the
pre-restructure path docs/250-rest-api/; _migration/README.md no longer tells a
contributor to add a new article to the routing table, which only describes the
pre-restructure tree; CONTRIBUTING.md is excluded from the Jekyll build.

Verified with python _migration/validate.py (595 pages, 0 errors, the same 5
pre-existing broken-link warnings) and a full jekyll build (943 pages).

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01HryuHYQLNNN3NqMYAnNt9T

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant