Restructure docs lifecycle - #993
Open
aleksandarkovacevic30 wants to merge 2 commits into
Open
aleksandarkovacevic30 wants to merge 2 commits into
aleksandarkovacevic30 wants to merge 2 commits into
Conversation
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
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
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
with Administer, Deploy & operate and Develop & APIs alongside, and Learning paths, Playbooks, Solutions and Troubleshooting as supporting material.
/get-started/ingest/model/master/govern/publish/administer/operate/develop/solutions/learning-paths/playbooks/troubleshooting/release-notes/archiveTwo rules hold it together:
concept,how-to,tutorial,referenceortroubleshooting— 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:_migration/ia.py_migration/targets_a.py,_b.py,_c.py_migration/migrate.pyredirect_from_migration/validate.py_migration/report.md_migration/redirects.csvNothing was dropped, and no URL broke
automatically.
redirect_from, andjekyll-redirect-frombuilds a stub at the old address._includes/children.htmllists 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:
./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.docs/180-microsoft-integration/purview/media/moved toassets/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: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-improveserves/govern);parentandgrand_parentare page titles spelledexactly; 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.pychecked that aparentresolves, 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 wayto find it is to already know the URL.
Verified against a real build rather than assumed: dropping
grand_parentfrom one page took the Rules sidebar from 8 links to 7 while the page kept being served.validate.pynow walks the chain for every published page and fails ifone 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.mdandterms-of-service.mdare utility pages, and the two under Deploy & operate(
sync-aks-to-akv,azure-policy-exemption) carriednav_excludebefore the restructure too, so they are pre-existing choices rather than regressions.One stale key removed:
170-2026-01-00-support.mdstill declaredgreat_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
_config.ymljekyll-redirect-from, the content-type vocabulary, nav groupingGemfilejekyll-redirect-from_layouts/cluedin.html_includes/children.htmlassets/js/nav-groups.js_sass/color_schemes/clue.scssindex.markdown→index.mdREADME.mddocs/250-rest-api/How to review this
The diff is 674 files, but almost all of it is mechanical. Suggested order:
_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._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._migration/report.md— every routing decision, every retitle, every repaired link, in one generated document.CONTRIBUTING.md— the go-forward rules._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
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
list_children: falseand carry a hand-written list inherited from the old page body, and 11 of those lists are incomplete —/govern/enrichmentlists 4 of 20 enrichers,/govern/rules4 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'ssummary. That is an editorial change to live content and belongs in its own PR.validate.py. Adding it to.github/workflows/main.ymlwould make these checks gate a deploy rather than rely on a contributor remembering to run them.