Skip to content

docs: reorganize sidebar navigation around capabilities (phase 1)#8954

Closed
yjouffrault wants to merge 1 commit into
stablefrom
claude/ecstatic-darwin
Closed

docs: reorganize sidebar navigation around capabilities (phase 1)#8954
yjouffrault wants to merge 1 commit into
stablefrom
claude/ecstatic-darwin

Conversation

@yjouffrault
Copy link
Copy Markdown
Contributor

@yjouffrault yjouffrault commented Apr 16, 2026

Summary

Phase 1 of the docs revamp: reorganize the left sidebar by capability so each feature has one home in the nav. No content is changed — no .mdx files are moved or renamed, and individual page URLs do not change.

This is the first sprint in a multi-PR effort. Phase 2 (per-feature content reorganization — e.g. Groups hub + spokes) lands in subsequent PRs.

See: Docs Revamp — Plan & Overview.

What changes

Only docs/sidebars.ts is modified. New top-level structure:

  • Introduction
  • Getting Started
  • Deploying & Managing Infrahub
  • Schema & Data Modeling
  • Version Control & Branching
  • Data Management
  • IPAM & Resource Management
  • Transforms & Artifacts
  • Generators
  • Git Integration
  • Events & Integrations (with Observability subgroup — see open question below)
  • User Management & Security
  • Solutions
  • Reference
  • Academy (unchanged)
  • Contributing (unchanged, plus topics/local-demo-environment added)
  • Release Notes (unchanged)
  • FAQ

Includes the new docs added to stable since this branch was started: guides/artifact-content-composition, guides/graphql-fragment, guides/log-forwarding, guides/telemetry, topics/log-forwarding, topics/schema-display, plus three new release notes (1.9.0, 1.8.6, 1.8.5).

What is not changed

  • No `.mdx` files are moved, renamed, or rewritten.
  • All existing page URLs (`/docs/topics/...`, `/docs/guides/...`, etc.) continue to work.
  • Two category landing-page URLs are removed (the old `/docs/guides` and `/docs/topics` index pages). Redirects for these will be added when phase 2 introduces the redirects plugin.

Open questions for the team

  • External "↗" links. 11 entries are stubbed with https://TODO-FILL-IN-*.example.com. Need real URLs before merge: Infrahubctl CLI, Infrahub Backup Tool, Schema Library, Python SDK, Ansible Integration, Nornir Integration, Infrahub Sync, MCP Server, AI Datacenter. Run `grep TODO-FILL-IN- docs/sidebars.ts` to find them.
  • Observability subgroup. Telemetry + log-forwarding (topic + guide) are nested under a new "Observability" subgroup inside Events & Integrations. Keep nested or flatten?
  • Topic + Guide pairs. For features with both a topic and a guide (Groups, Profiles, Object Templates, etc.) the sidebar currently shows both as siblings labeled "(Topic)" / "(Guide)". This is a temporary phase 1 state — phase 2 will merge or restructure these into single feature pages or hub + spokes.

Test plan

  • `cd docs && npm run build` succeeds — sidebar references no missing doc IDs.
  • `cd docs && npm run serve` — visually confirm each capability section in the rendered sidebar.
  • Netlify/Vercel preview deploy review.

🤖 Generated with Claude Code

@yjouffrault yjouffrault requested review from a team as code owners April 16, 2026 16:49
@github-actions github-actions Bot added the type/documentation Improvements or additions to documentation label Apr 16, 2026
Copy link
Copy Markdown
Contributor

@cubic-dev-ai cubic-dev-ai Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

1 issue found across 1 file

Prompt for AI agents (unresolved issues)

Check if these issues are valid — if so, understand the root cause of each and fix them. If appropriate, use sub-agents to investigate and fix each issue separately.


<file name="docs/sidebars.ts">

<violation number="1" location="docs/sidebars.ts:41">
P1: `reference/configuration` is registered as a `doc` item in both "Deploying & Managing Infrahub" and "Reference > Configuration Files". Docusaurus docs say: *"A `doc` item sets an implicit sidebar association. Don't assign the same doc to multiple sidebars: change the type to `ref` instead."* Use `type: 'ref'` for the secondary occurrence to avoid broken prev/next links and potential build errors.</violation>
</file>

Reply with feedback, questions, or to request a fix. Tag @cubic-dev-ai to re-run a review, or fix all with cubic.

Comment thread docs/sidebars.ts
{ type: 'doc', id: 'guides/installation', label: 'Installation' },
{ type: 'doc', id: 'guides/production-deployment', label: 'Production Deployment' },
{ type: 'doc', id: 'topics/hardware-requirements', label: 'Hardware Requirements' },
{ type: 'doc', id: 'reference/configuration', label: 'Configuration' },
Copy link
Copy Markdown
Contributor

@cubic-dev-ai cubic-dev-ai Bot Apr 16, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1: reference/configuration is registered as a doc item in both "Deploying & Managing Infrahub" and "Reference > Configuration Files". Docusaurus docs say: "A doc item sets an implicit sidebar association. Don't assign the same doc to multiple sidebars: change the type to ref instead." Use type: 'ref' for the secondary occurrence to avoid broken prev/next links and potential build errors.

Prompt for AI agents
Check if this issue is valid — if so, understand the root cause and fix it. At docs/sidebars.ts, line 41:

<comment>`reference/configuration` is registered as a `doc` item in both "Deploying & Managing Infrahub" and "Reference > Configuration Files". Docusaurus docs say: *"A `doc` item sets an implicit sidebar association. Don't assign the same doc to multiple sidebars: change the type to `ref` instead."* Use `type: 'ref'` for the secondary occurrence to avoid broken prev/next links and potential build errors.</comment>

<file context>
@@ -1,401 +1,320 @@
+        { type: 'doc', id: 'guides/installation', label: 'Installation' },
+        { type: 'doc', id: 'guides/production-deployment', label: 'Production Deployment' },
+        { type: 'doc', id: 'topics/hardware-requirements', label: 'Hardware Requirements' },
+        { type: 'doc', id: 'reference/configuration', label: 'Configuration' },
+        { type: 'doc', id: 'guides/configuration-changes', label: 'Configuration Changes' },
+        { type: 'doc', id: 'topics/database-backup', label: 'Database Backup (Topic)' },
</file context>
Suggested change
{ type: 'doc', id: 'reference/configuration', label: 'Configuration' },
{ type: 'ref', id: 'reference/configuration', label: 'Configuration' },
Fix with Cubic

yjouffrault pushed a commit that referenced this pull request Apr 17, 2026
This branch is a concrete worked example for the docs team showing how
hub + spokes with Diataxis-aligned pages compares to the current
topic+guide pair for the Groups feature. It is NOT intended for merge.

WHAT THIS DEMONSTRATES

1. A hub page at /docs/groups/ — pure explanation, no task content.
2. Six spoke pages, each a self-contained how-to (no Step 1/2/3 linear
   narrative, no shared running example):
   - create, add-members, remove-members, delete, query-members,
     use-in-automation
3. A tutorial at /docs/academy/getting-started/groups preserving the
   original TagConfigGroup linear walkthrough in its proper home.
4. Sidebar uses a nested "Groups" category under Data Management with
   the hub as the clickable landing page.

CONTENT PROVENANCE

- Hub derived from topics/groups.mdx with minor edits (decision aid
  added, misplaced GraphQL snippet moved to Query spoke).
- Spokes extract, rewrite, and in one case substantially expand
  (use-in-automation) the current guide and topic content.
- Tutorial is the original guide's Step 1/2/3 content reframed as a
  proper tutorial with learning-oriented preamble and "what you
  learned" closer.
- Nothing invented — every factual claim traces to existing docs.

WHAT A REAL MIGRATION WOULD DO AND THIS DEMO DOES NOT

- Delete docs/docs/topics/groups.mdx and docs/docs/guides/groups.mdx
  (kept here so inbound links from 7 other topic pages don't break).
- Update those 7 inbound links to point at the new URLs.
- Add @docusaurus/plugin-client-redirects to redirect
  /docs/topics/groups and /docs/guides/groups to the new hub for
  external bookmarks.

Built on top of the navigation restructure in #8954.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@yjouffrault yjouffrault mentioned this pull request Apr 17, 2026
9 tasks
@petercrocker petercrocker marked this pull request as draft April 21, 2026 21:20
Restructure the docs sidebar by capability so each feature has one
home in the nav. No .mdx files are moved or renamed; no individual
page URLs change.

New top-level sections:
- Introduction
- Getting Started
- Deploying & Managing Infrahub
- Schema & Data Modeling
- Version Control & Branching
- Data Management
- IPAM & Resource Management
- Transforms & Artifacts
- Generators
- Git Integration
- Events & Integrations (with Observability subgroup)
- User Management & Security
- Solutions
- Reference
- Academy (unchanged)
- Contributing (unchanged + topics/local-demo-environment)
- Release Notes (unchanged)
- FAQ

Eleven external "↗" links are stubbed with TODO URLs to fill in
before merge (grep "TODO-FILL-IN-").

Phase 1 of a multi-sprint effort to make the docs easier to navigate
without changing content. Phase 2 (per-feature content reorganization,
e.g. Groups hub + spokes) follows in subsequent PRs.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@yjouffrault yjouffrault force-pushed the claude/ecstatic-darwin branch from 0a27f82 to a73a0b8 Compare April 29, 2026 15:43
@yjouffrault yjouffrault changed the title docs: reorganize sidebar navigation (no content changes) docs: reorganize sidebar navigation around capabilities (phase 1) Apr 29, 2026
yjouffrault pushed a commit that referenced this pull request Apr 29, 2026
This branch is a concrete worked example for the docs team showing how
hub + spokes with Diataxis-aligned pages compares to the current
topic+guide pair for the Groups feature. It is NOT intended for merge.

WHAT THIS DEMONSTRATES

1. A hub page at /docs/groups/ — pure explanation, no task content.
2. Six spoke pages, each a self-contained how-to (no Step 1/2/3 linear
   narrative, no shared running example):
   - create, add-members, remove-members, delete, query-members,
     use-in-automation
3. A tutorial at /docs/academy/getting-started/groups preserving the
   original TagConfigGroup linear walkthrough in its proper home.
4. Sidebar uses a nested "Groups" category under Data Management with
   the hub as the clickable landing page.

CONTENT PROVENANCE

- Hub derived from topics/groups.mdx with minor edits (decision aid
  added, misplaced GraphQL snippet moved to Query spoke).
- Spokes extract, rewrite, and in one case substantially expand
  (use-in-automation) the current guide and topic content.
- Tutorial is the original guide's Step 1/2/3 content reframed as a
  proper tutorial with learning-oriented preamble and "what you
  learned" closer.
- Nothing invented — every factual claim traces to existing docs.

WHAT A REAL MIGRATION WOULD DO AND THIS DEMO DOES NOT

- Delete docs/docs/topics/groups.mdx and docs/docs/guides/groups.mdx
  (kept here so inbound links from 7 other topic pages don't break).
- Update those 7 inbound links to point at the new URLs.
- Add @docusaurus/plugin-client-redirects to redirect
  /docs/topics/groups and /docs/guides/groups to the new hub for
  external bookmarks.

Built on top of the navigation restructure in #8954.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@yjouffrault
Copy link
Copy Markdown
Contributor Author

Consolidated into #8958, which now contains both phase 1 (sidebar restructure) and phase 2 (Groups hub + spokes) on a branch we'll iterate on going forward.

BaptisteGi added a commit that referenced this pull request May 12, 2026
* docs: reorganize sidebar navigation around capabilities (phase 1)

Restructure the docs sidebar by capability so each feature has one
home in the nav. No .mdx files are moved or renamed; no individual
page URLs change.

New top-level sections:
- Introduction
- Getting Started
- Deploying & Managing Infrahub
- Schema & Data Modeling
- Version Control & Branching
- Data Management
- IPAM & Resource Management
- Transforms & Artifacts
- Generators
- Git Integration
- Events & Integrations (with Observability subgroup)
- User Management & Security
- Solutions
- Reference
- Academy (unchanged)
- Contributing (unchanged + topics/local-demo-environment)
- Release Notes (unchanged)
- FAQ

Eleven external "↗" links are stubbed with TODO URLs to fill in
before merge (grep "TODO-FILL-IN-").

Phase 1 of a multi-sprint effort to make the docs easier to navigate
without changing content. Phase 2 (per-feature content reorganization,
e.g. Groups hub + spokes) follows in subsequent PRs.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* demo: Groups hub + spokes restructure (Diataxis example, not for merge)

This branch is a concrete worked example for the docs team showing how
hub + spokes with Diataxis-aligned pages compares to the current
topic+guide pair for the Groups feature. It is NOT intended for merge.

WHAT THIS DEMONSTRATES

1. A hub page at /docs/groups/ — pure explanation, no task content.
2. Six spoke pages, each a self-contained how-to (no Step 1/2/3 linear
   narrative, no shared running example):
   - create, add-members, remove-members, delete, query-members,
     use-in-automation
3. A tutorial at /docs/academy/getting-started/groups preserving the
   original TagConfigGroup linear walkthrough in its proper home.
4. Sidebar uses a nested "Groups" category under Data Management with
   the hub as the clickable landing page.

CONTENT PROVENANCE

- Hub derived from topics/groups.mdx with minor edits (decision aid
  added, misplaced GraphQL snippet moved to Query spoke).
- Spokes extract, rewrite, and in one case substantially expand
  (use-in-automation) the current guide and topic content.
- Tutorial is the original guide's Step 1/2/3 content reframed as a
  proper tutorial with learning-oriented preamble and "what you
  learned" closer.
- Nothing invented — every factual claim traces to existing docs.

WHAT A REAL MIGRATION WOULD DO AND THIS DEMO DOES NOT

- Delete docs/docs/topics/groups.mdx and docs/docs/guides/groups.mdx
  (kept here so inbound links from 7 other topic pages don't break).
- Update those 7 inbound links to point at the new URLs.
- Add @docusaurus/plugin-client-redirects to redirect
  /docs/topics/groups and /docs/guides/groups to the new hub for
  external bookmarks.

Built on top of the navigation restructure in #8954.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* docs: refine sidebar structure and styling per team review

Iteration on PR #8958 based on team feedback:

- Wrap each top-level section (Get started, Capabilities, Operate &
  extend, Reference & learn, Project) in a non-collapsible category so
  section headers use the same DOM and styling as the original
  Overview/Guides/Topics headers — no custom HTML or CSS needed for
  spacing/padding.
- Split Academy into Getting Started + Tutorials subgroups; rename
  Groups tutorial to "Organize objects with groups" and move it to
  academy/tutorials/.
- Move Resource Manager (topic + guide) back into Data Management
  alongside Groups; rename "IPAM & Resource Management" section to
  just "IPAM".
- Drop the "Observability" subgroup; place Log Forwarding (topic +
  guide) flat next to Activity Log under Events & Integrations; move
  Telemetry to Deploying & Managing Infrahub.
- Add canonical "Development Resources" section containing Developer
  Guide, Local Demo Environment, and Testing Framework; cross-link
  from Transforms & Artifacts, Generators, and Contributing using
  Docusaurus type: 'ref'.
- Move FAQ into Get started.
- Reduce nested-category caret size and color-match it to label text
  (e.g. Groups under Data Management) so it reads as connected to its
  parent rather than another peer toggle.
- Update hub page Learn-by-doing link to the renamed Academy tutorial.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* docs: rename Capabilities to Features, split Reference & learn, fix Generator group accuracy

- Rename top-level "Capabilities" section to "Features" (label still
  open for team review — alternatives in Open Questions Confluence
  doc).
- Split the former "Reference & learn" section in two: "Learn" (now
  positioned right after Get started; contains Academy content) and
  "Reference" (kept later in sidebar; sub-categories flattened
  directly under it).
- Fix accuracy issues in groups/use-in-automation.mdx: rewrite the
  Generator section to correctly describe CoreStandardGroup as the
  Generator's input target and CoreGeneratorGroup as the auto-managed
  output (Infrahub tracks produced objects via SDK tracking; the user
  doesn't declare it). Fix the "chain through the pipeline" pattern
  step 2 (Generator targets a CoreStandardGroup, not a Query group,
  per the schema reference).

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* docs: refine Features section per team review

- Move Integrations from Features → Operate & extend (positioned
  between Development Resources and Solutions). External integrations
  consume Infrahub's interfaces; they aren't Infrahub features.
- Drop Schema Library external link from the sidebar — it's a
  community-maintained external resource, not an Infrahub feature.
  Will be referenced inline in Schema content instead (tracked in
  Open Questions).
- Rename "Version Control & Branching" → "Branches & Change Control"
  per Damien's feedback that "version control" is too technical and
  doesn't communicate scope. New name covers the branching mechanism
  plus the change-review pipeline (proposed changes, checks,
  approvals).
- Default-collapse the Introduction and Getting Started categories
  inside Get started (previously open by default — inconsistent with
  every other category).

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* docs(skills): add migrate-feature-page skill

Codifies the workflow for migrating a single Infrahub docs feature
page (Layer 2 capability content) from the legacy topic+guide pair to
a single merged page or hub+spokes pattern. Captures the Groups
precedent, decision rules for choosing the migration pattern, PR
description template, cross-reference handling, and the end-of-
migration content-audit step.

Triggered by feature names like "let's migrate profiles" or
"start the Resource Manager migration."

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* docs: migrate Profiles per docs revamp (hub + spokes) (#9114)

* docs: migrate Profiles per docs revamp

Migrate the Profiles feature page from the legacy topic+guide pair to
the hub + spokes pattern (Groups precedent), preserve the tutorial
content in Academy, and establish the redirects-pending convention.

Structure:

  docs/docs/profiles/
  ├── index.mdx                  ← hub (former topic content)
  ├── priority-and-inheritance.mdx
  ├── create.mdx
  ├── assign.mdx
  ├── override-values.mdx
  ├── update.mdx
  └── use-multiple.mdx

  docs/docs/academy/tutorials/profiles.mdx  ← preserved tutorial

Content changes:

- Topic → hub. Opening sentence softened to remove the "configuration
  templates" phrasing that collides with the actual Object Templates
  feature. Added a "Profiles vs Object Templates" comparison section
  closing a real gap in the existing docs.
- Inheritance mechanism + Profile priority system extracted into a
  dedicated concept spoke. Reasoning explained in the PR body so
  reviewers can push back if they prefer it on the hub.
- Guide → Academy tutorial. Light reframing only (preamble + tutorial
  language); all running examples and content preserved.
- Five short how-to spokes added (Create / Assign / Override values /
  Update / Use multiple) with generic placeholder syntax.

Other changes:

- docs/redirects-pending/ convention established with README and
  profiles.yml. Future feature-migration PRs drop YAML files here;
  end-of-Phase-2 cleanup PR aggregates them into the redirects plugin
  config.
- docs/docs/groups/index.mdx — removed the redundant "Common tasks"
  link list (spokes already appear in the sidebar).
- dev/skills/migrate-feature-page/SKILL.md — updated for the
  redirects-pending convention and the no-Common-tasks-list pattern.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* docs(profiles): point tutorial cross-links at canonical paths

The tutorial was created by copying the legacy guide content, which
linked back to topics/profiles.mdx and used a #profile-priority-system
anchor on that same legacy file. Those links worked during iteration
because the legacy file is still on disk, but they would 404 in the
build once the cleanup PR deletes the legacy file. Updated 4 links to
point at the new canonical paths:

- 3 links pointing at topics/profiles → now profiles/index.mdx
- 1 link with #profile-priority-system anchor → now points at
  profiles/priority-and-inheritance.mdx (where that section lives)

Surfaced during the end-of-migration content audit.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* docs(profiles): apply AGENTS.md style compliance + update skill

- Replace two uses of "Just" in profiles/index.mdx with "Like".
  AGENTS.md "Never Do" lists "just" as a forbidden word; both instances
  were preserved from the original topics/profiles.mdx but they're now
  shipping under the new structure, so fix at the migration moment.

- Update migrate-feature-page skill to require running
  `uv run invoke docs.lint` before committing (per docs/AGENTS.md
  "Documentation Workflow") and to scan for the AGENTS.md "Never Do"
  words that the linters miss. Surfaced during the Profiles audit.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* Update docs/docs/profiles/use-multiple.mdx

Co-authored-by: Baptiste <32564248+BaptisteGi@users.noreply.github.com>

* docs(profiles): address Baptiste review — remove tutorial, hub picks up composition patterns

- Remove the Profiles Academy tutorial; defer rewrite to a real-world
  scenario ("Managing network interfaces at scale using Profiles").
- Move "Common composition patterns" into the Profiles hub
  (preserving Baptiste's accepted suggestion on use-multiple.mdx).
- Update use-multiple.mdx link to anchor at the hub section.
- Update redirects-pending entry: tutorial removed, legacy URLs still
  redirect to the new hub.
- Update migrate-feature-page skill (Step 4): preserve UI / SDK / GraphQL
  interface coverage from the existing guide; do not reduce to GraphQL-only.

Deferred items captured on Confluence Open Questions:
- UI / SDK example backfill in the five Profiles spokes
- Worked example for relationships + Profiles
- Tutorial rewrite as practical network-interface-at-scale scenario

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* Apply suggestion from @BaptisteGi

* Apply suggestion from @BaptisteGi

* fix: bring back the old content + fix linting

---------

Co-authored-by: Yvonne <yvonne@opsmill.com>
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
Co-authored-by: Baptiste <32564248+BaptisteGi@users.noreply.github.com>
Co-authored-by: Baptiste <girard.baptiste@hotmail.fr>

* docs(skills): add tutorial scenario-shape test + broaden word check

Two lessons from PR #9114 (Profiles migration) review:

- Step 3 (Pattern decision) — when extracting an Academy tutorial, sanity-
  check whether it's actually scenario-shaped or just the guide with
  sequence numbers. Feature-oriented tutorials don't earn their slot;
  drop them with a follow-up entry on Open Questions for a real-world
  rewrite. Profiles set this precedent.
- Step 10 (Lint, commit, push) — broaden the AGENTS.md forbidden-words
  check to cover every file changed in the PR (skill files, dev docs,
  agent guides), not only the migrated docs pages. The rule is global.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* docs: move resource manager

* docs: cleanup resource manager docs

* docs: migrate Computed Attributes per docs revamp (#9120)

* docs: migrate Computed Attributes page per docs revamp

Single-page merge organized by computed-attribute kind. The choosing
table is promoted to the top so the comparison is visible before either
kind's section. Each kind section now contains its concept, restrictions,
and how-to(s) in one place. Recommendations from the legacy guide are
folded inline. Legacy guide URL redirects to the canonical topic page.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* docs: move computed attributes to the correct folder

---------

Co-authored-by: Yvonne <yvonne@opsmill.com>
Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Co-authored-by: Baptiste <girard.baptiste@hotmail.fr>

* docs(skills): support section-wide migrations + audit-before-PR + extended redirects-pending schema

Three workflow improvements going into the B&CC section migration:

- Skill now supports section-wide migrations (a whole section like
  Branches & Change Control with multiple features migrated together),
  not only single-feature migrations. Adds branch-naming convention,
  audit-all-files-in-section guidance, and a "Recommendations for large
  or section-wide migrations" section with patterns for one-at-a-time
  hub conversion, hub-after-extraction review, cross-link verification,
  user-perspective walk-through, and per-page TodoWrite tracking.

- Pre-PR audit (was end-of-migration audit). Moved from Step 11 to Step 9
  so issues land in the PR clean rather than as fix-up commits afterward.

- redirects-pending schema extended with two new sections:
  * new_pages — canonical URLs for pages introduced by the migration
  * cross_links_to_update — inventory of stale internal links in OTHER
    files that should be rewritten at cleanup time
  Both are metadata for humans/cleanup PR; only `redirects` is consumed
  by the redirect plugin.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* docs: rollback changes on other pages

* docs: add space at the end

* docs: fix diff

* docs: rename page

* docs(skills): codify lessons from B&CC migration

Six concrete updates plus a meta-rule, all from review of PR #9125.

Meta-rule: never recommend silently. When the spec-review or
implementation surfaces additional changes beyond what the
recommendations doc states (merging pages, missing spokes, hub
click-targets, renames), present and ask the user — don't apply
unilaterally.

Step 2.5 (NEW): Spec review against skill rules. When a recommendations
doc exists, do a critical review pass against a checklist of common
gaps before implementing: topic+guide pairs being preserved as separate
moves, shared name roots indicating merge candidates, hub categories
without clickable links, tutorial-shaped guides not extracted, missing
common spokes, leftover (Topic)/(Guide) labels.

Step 4 (Single-page merge): Use docs/<feature>/index.mdx pattern by
default, even when there are no spokes. Computed Attributes (PR #9120)
is the precedent. Keeps URLs stable across future restructures.

Step 4 (Hub+spokes): Critical callout — every hub category must have
link: { type: 'doc', id: '<feature>/index' } in sidebars.ts so the
label is clickable. We hit this exact bug on Git Integration in
PR #9125; documented as a recurring trap.

Step 4 (Decision rules table): Added "shared name root + related
procedural scope" as a single-page-merge signal. Catches cases like
branch-synchronization + selective-branch-sync that look like two
features but are one.

Step 9 (Audit): Strengthened language — the audit is a real
read-through, not a tool run. Build/lint/word-check are necessary
but not sufficient. For section-wide migrations, delegate to an
Explore agent. Specific call-out: don't claim audit clean from
just a build pass.

Step 11 (Lint): Vale failures block CI; install if missing
(brew install vale or download from releases). Added "verify each
lint tool actually ran" guidance — uv run invoke docs.lint exits 0
even when Vale is missing. Documented common Vale rules
(spelling, swap, branded-terms-case-swap, eg-ie, sentence-case)
and the .vale.ini exclusion pattern for dev-internal docs.

NEW section: Spec drift during implementation is normal. Loop
clarified — discover gap → present per meta-rule → user decides
→ update recommendations doc → implement against updated spec.
Don't quietly diverge.

NEW distinction in "What's NOT done": cross-section content stays
out of scope, but moving an entire sub-category's sidebar position
is in-scope when the recommendations doc specifies. PR #9125's
Git-Integration-into-B&CC move is the precedent.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* docs: migrate Branches & Change Control section per docs revamp (#9125)

* docs: migrate Branches & Change Control section per docs revamp

Section-wide migration per the canonical spec:
https://opsmill.atlassian.net/wiki/spaces/Product/pages/572358657

- Branches: hub + 5 spokes (create/merge/rebase/delete/resolve-conflicts)
- Proposed Changes: hub + 3 spokes (lifecycle/review-and-stamp/resolve-conflict)
- Checks & Validation: hub-only with link to Academy tutorial
- guides/check.mdx → academy/tutorials/build-a-check.mdx (tutorial extraction)
- Change Approval Workflow → "Change Approval Policy"; content reframed
  from tutorial to recipe (drop "Step N", swap personas for placeholders)
- Git Integration moved into B&CC as nested hub+spokes
  (Connect a repository / infrahub.yml configuration / Selective branch
  synchronization — last is a single-page merge of the topic + the
  selective-branch-sync guide; "Step N" headers replaced with
  action-named sections)
- Sidebar: B&CC restructured; standalone Git Integration top-level removed;
  Build a check tutorial added to Learn → Tutorials
- redirects-pending/branches-and-change-control.yml with redirects,
  new_pages, and cross_links_to_update sections

Legacy files (topics/branching, topics/proposed-change, topics/check,
topics/repository, topics/infrahub-yml, topics/branch-synchronization,
guides/check, guides/repository, guides/selective-branch-sync) left on
disk for URL stability during iteration; deleted in cleanup PR.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* docs: fix Vale documentation-style errors and warnings

CI's validate-documentation-style check (Vale) was failing on the
B&CC migration PR. Fixed each error and updated the skill to require
Vale to pass before committing (the prior guidance treated Vale as
optional, which let these slip through).

Errors fixed:
- proposed-changes/index.mdx — capitalize Transformations / Generators
  (Infrahub.branded-terms-case-swap)
- git-integration/branch-synchronization.mdx — "repo's" → "repository's"
  (Infrahub.swap)
- branches/delete.mdx — rephrase "unmerged" to "a branch that hasn't
  been merged" (Infrahub.spelling)

Warnings fixed (all in newly authored content):
- branches/create.mdx, guides/change-approval-workflow.mdx — replace
  "e.g." with "for example" (Infrahub.eg-ie)

Configuration:
- .vale.ini: exclude docs/redirects-pending/** from style checks
  (dev-internal team workflow file, not user-facing)

Skill update:
- migrate-feature-page Step 11: Vale errors now explicitly required
  to pass; install instructions added; common Vale rules documented;
  guidance on dev-internal exclusions added.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* Apply suggestions from code review

Co-authored-by: Baptiste <32564248+BaptisteGi@users.noreply.github.com>

* docs: fix delete branch

* docs: do not update the guide - copy to dedicated folder

* docs: udpate change

* docs: fix links

* docs: rollback not needed changes

* chore: ignore wroking folder from yaml lint

* docs: add guide content

---------

Co-authored-by: Yvonne <yvonne@opsmill.com>
Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Co-authored-by: Baptiste <32564248+BaptisteGi@users.noreply.github.com>
Co-authored-by: Baptiste <girard.baptiste@hotmail.fr>

* docs: move menu content

* docs: refactor menu page

* docs: restructure sidebar to V3 navigation (#9145)

Apply the Phase 2 V3 navigation structure to docs/sidebars.ts only.
No content files moved; no URLs changed; no redirects required.

Top-level structure goes from 6 to 9 sections:
- Get started (unchanged)
- Learn (unchanged)
- Schema & Data (NEW; replaces parts of Features)
- Branches & Change Control (NEW; promoted from Features sub-cat)
- Automation & Outputs (NEW; replaces parts of Features; gains Integrations
  from Operate)
- Deployment & Management (renamed from "Operate & extend")
- Development Resources (NEW top-level; promoted from Operate sub-cat)
- Reference (unchanged)
- Project (unchanged; includes Release Notes)

Inside the new sections:
- Schema & Data: Schema (hub + 6 spokes) / Computed Attributes /
  Menu Customization / Templates / Resource Manager (hub + 4 spokes from
  #9117) / IPAM / Objects / Groups (already migrated) / Profiles
  (already migrated)
- Branches & Change Control: structure already migrated in PR #9125
- Automation & Outputs: Generators / Transformations / Artifacts /
  Artifact & File Storage / Events / Webhooks / Integrations
- Deployment & Management: 13 flat items + User Management & Security
  sub-cat. Lifecycle sub-grouping (Plan & install / Configure / Run /
  Observe / Maintain & upgrade) deferred to a follow-up PR once Fatih
  picks an option.
- Development Resources: 3 standalone pages + APIs & interfaces sub-cat

Removed:
- Solutions sub-cat (per V3 decision)
- Integrations from Operate (now under Automation & Outputs)
- Development Resources from Operate (now its own top-level)

Unmigrated content still references existing legacy `topics/X` and
`guides/X` paths so every click leads to real content. New pages
referenced in the recommendation docs (About Objects, Build a generator,
Write a Jinja2 transformation, etc.) are intentionally omitted from the
sidebar; they get added in per-feature migration PRs that author the
content.

Empty/no-hub sub-cats use `link: { type: 'generated-index' }` so
Docusaurus auto-generates a clean category landing.

Validation:
- npm run build succeeds (every doc id: reference resolves)
- Spot-checked all sections in the local dev server

Refs: V3 outline at https://opsmill.atlassian.net/wiki/spaces/Product/pages/577568769

Co-authored-by: Yvonne <yvonne@opsmill.com>
Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* docs: move schema documentation

* docs: various adjustments

* docs: move Testing Framework to Branches & Change Control + flatten Reference > API > Message Bus Events

Two scoped reorg moves from the May 6 Yvonne ↔ Pete docs review:

1. Testing Framework (`topics/resources-testing-framework.mdx`) moves out
   of "Development Resources" into Branches & Change Control as a 5th
   sub-category, parallel to Checks & Validation. Pete: "this is a CI
   pipeline and branching concept." File renamed to
   `testing-framework/index.mdx` (folder + index pattern matches the rest
   of the BCC sub-cats). Frontmatter title shortened from "Resources
   testing framework" to "Testing framework" to match the sidebar label.
   Three inbound cross-links updated to point at the new path.

2. Message Bus Events (sidebar-only) flattens out from under Reference >
   API > to a flat sibling of the API sub-category in Reference. The
   API sub-category retains the api-server placeholder for now —
   removing that page is in a follow-up PR per Yvonne's scoping.

Deferred to follow-up PRs after Baptiste's input tomorrow:
- Move Developer Guide + Local Demo Environment to Contributing
- Rename "Development Resources" → "APIs & Interfaces"
- Delete the api-server placeholder page

Open question for the reviewer: per the call, the Testing Framework
title and exact placement should be confirmed with Wim or Baptiste.
PR proceeds with the simplest defaults; reviewers welcome to push
back on either.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* docs: scaffold Deployment & Management sidebar structure + migrate Hardware Requirements

Introduces the four-sub-category Deployment & Management layout (Install &
configure, Run & observe, Maintain & upgrade, User Management & Security)
per the V2 recommendations for the D&M section restructure.

Moves Hardware Requirements from topics/ into the new
deploy-manage/install-configure/ sub-category as the first entry under
Install & configure.

The original topics/hardware-requirements.mdx remains on disk during
iteration so existing cross-links in other docs continue to resolve.
Redirects and cross-link cleanup are tracked in
docs/redirects-pending/deploy-manage-hardware-requirements.yml.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* docs: migrate Installation guide to hub + Community + Enterprise spokes

Splits guides/installation.mdx (924 lines) into hub + two edition spokes
under deploy-manage/install-configure/install/:
  - index.mdx  — overview, prerequisites, video, edition links, related resources
  - community.mdx — Community: Docker Compose (curl), git clone, Helm/Kubernetes
  - enterprise.mdx — Enterprise: Docker Compose (curl), Helm/Kubernetes, bare metal

The high-availability deployment examples section (lines 684–917 of the
original guide) is intentionally excluded here — it moves to a dedicated HA
spoke in PR 3 (Production Deployment).

The original guides/installation.mdx remains on disk during iteration.
Redirects and cross-link cleanup are tracked in
docs/redirects-pending/deploy-manage-installation.yml.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* docs: migrate Production Deployment to hub + High Availability spoke

Creates deploy-manage/install-configure/production-deployment/ with:
  - index.mdx  — hub: production checklist (verbatim from guides/production-deployment.mdx),
                 links updated for new directory depth
  - high-availability.mdx — HA spoke: new "How HA works in Infrahub" intro
                 (~130 words, sourced from topics/architecture.mdx) + HA deployment
                 examples (Terraform + Helm) + load balancer config, extracted from
                 guides/installation.mdx lines 684-917

The original guides/production-deployment.mdx and guides/installation.mdx
remain on disk during iteration.

Redirects and cross-link cleanup tracked in
docs/redirects-pending/deploy-manage-production-deployment.yml.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* docs: move Configure Infrahub guide into deploy-manage/install-configure/

Copies guides/configuration-changes.mdx → deploy-manage/install-configure/configure-infrahub.mdx.
Content is verbatim; relative links updated for the new directory depth
(reference/ is now 2 levels up instead of 1).

Sidebar label remains "Configure Infrahub"; page H1 remains
"How to configure Infrahub". Configuration reference stays in its
canonical Reference section but is cross-linked from Install & configure.

The original guides/configuration-changes.mdx remains on disk during iteration.
Redirects and cross-link cleanup tracked in
docs/redirects-pending/deploy-manage-configure-infrahub.yml.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* docs: move Tasks, Telemetry, and Activity Log into run-observe/ sub-category

Copies three pages into deploy-manage/run-observe/ (PRs 5/6/7 equivalent):
  - topics/tasks.mdx        → run-observe/tasks.mdx
  - guides/telemetry.mdx    → run-observe/telemetry.mdx
  - topics/activity-log.mdx → run-observe/activity-log.mdx

Content is verbatim; relative links updated for the new directory depth
(2 levels up to reach docs root instead of 1).

Original source files remain on disk during iteration.
Redirects and cross-link cleanup tracked in
docs/redirects-pending/deploy-manage-run-observe.yml.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* docs: migrate Log Forwarding to hub + Configure spoke under run-observe/

Moves topics/log-forwarding.mdx and guides/log-forwarding.mdx into
deploy-manage/run-observe/log-forwarding/ as hub + spoke. Updates the
activity-log.mdx cross-link, sidebar entry, and adds redirect records.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* docs: migrate Database Backup to hub + 2 spokes under maintain-upgrade/

Moves topics/database-backup.mdx and guides/database-backup.mdx into
deploy-manage/maintain-upgrade/database-backup/ as hub + standalone
backup-and-restore spoke + cluster-backup-and-restore spoke.
Adds CLI reference link to infrahub-backup docs. Records redirects
and 8 cross-link cleanup entries.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* docs: migrate Upgrade guide to hub + 3 spokes under maintain-upgrade/

Splits guides/upgrade.mdx into hub (overview + known issues) + three
spokes: community (Docker, Helm, Dev/Demo), enterprise (Docker, Helm),
and observability-stack (force-recreate on compose changes).
Hub content is net-new prose; spoke content is verbatim from guide.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* docs: move Authentication page to deploy-manage/user-management/

Copies topics/authentication.mdx to deploy-manage/user-management/authentication.mdx
with relative links updated for new directory depth.
Original topics/authentication.mdx stays on disk during iteration.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* docs: migrate SSO guide to hub + 2 spokes under user-management/

Hub is net-new content; guides/sso.mdx is split into configure-sso
(steps 1-4 + troubleshooting) and advanced-sso (multiple providers
+ group mapping). Relative links updated for new directory depth.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* docs: migrate Permissions & Roles to deploy-manage/user-management (PR 13)

Moves topics/permissions-roles.mdx and guides/accounts-permissions.mdx into a
hub + spoke structure under deploy-manage/user-management/permissions-roles/:
  - index.mdx — hub (permissions and roles overview)
  - manage-accounts-and-permissions.mdx — spoke (account/group/role/permission CRUD)

Updates sidebars.ts to replace placeholder with the hub category + spoke entry.
Fixes stale permissions-roles links in authentication.mdx and advanced-sso.mdx.
Adds redirects-pending/deploy-manage-permissions-roles.yml.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* docs: migrate Managing API Tokens to deploy-manage/user-management (PR 14)

Moves guides/managing-api-tokens.mdx to deploy-manage/user-management/managing-api-tokens.mdx.
Adjusts image paths for new directory depth. Updates sidebar placeholder to the
new doc entry. Fixes stale api-tokens link in authentication.mdx.
Adds redirects-pending/deploy-manage-api-tokens.yml.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* Migrate ipam (#9179)

* docs: migrate IPAM documentation

* docs: replace video with screenshot

* chore: move ipam before resource manager in sidebar

* docs: feedbacks

* Migrate object doc (#9178)

* docs: migrate object section

* docs: add report and spec

* docs: address feedbacks

* docs: migrate GraphQL to hub + 4 spokes under development-resources/ (#9182)

Splits the flat topics/graphql.mdx into a hub + 4 spoke pages under
development-resources/graphql/, moves developer-guide and graphql-fragments
into development-resources/, merges the GraphQL fragments concept section
into graphql-fragments.mdx, and removes the REST API cross-link from the
APIs & interfaces sidebar.

Co-authored-by: Yvonne <yvonne@opsmill.com>
Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* Merge pull request #9161 from opsmill/docs/migrate-webhooks

docs: migrate Webhooks per docs revamp

* docs: migrate Artifacts per docs revamp (#9156)

Hub + 2 spokes (no tutorial extraction — guides are short enough to reframe
in place per the Confluence recommendation).

- artifacts/index.mdx: hub from topics/artifact.mdx with cross-links updated
  and a new "How artifacts relate to other features" conceptual section
- artifacts/use.mdx: reframed from guides/artifact.mdx — "Step N:" prefixes
  dropped, Prerequisites condensed to a one-line assumption note,
  action-named section headers
- artifacts/content-composition.mdx: moved from
  guides/artifact-content-composition.mdx with cross-link updates only
- sidebars.ts: re-point Artifacts sub-cat at new paths
- redirects-pending/artifacts.yml: 3 redirects + 9 cross-links to update
  at cleanup

Skill update: add a "What needs reviewer attention" section to the PR
description template so future migration PRs tell the reviewer up front
which lines are net-new prose vs. preserved content with cross-link
updates.

Cross-links to Transformations use legacy paths (../topics/transformation,
../guides/jinja2-transform, ../guides/python-transform) until the open
Transformations PR (#9155) merges into base. They will resolve via that
PR's redirects once merged, then need rebase/cleanup at end of phase 2.

Legacy files (topics/artifact.mdx, guides/artifact.mdx,
guides/artifact-content-composition.mdx) remain on disk during iteration;
deleted in the cleanup PR.

Co-authored-by: Yvonne <yvonne@opsmill.com>
Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* docs: migrate Transformations per docs revamp (#9155)

* docs: migrate Transformations per docs revamp

Hub + 2 recipe-form how-tos + 2 tutorial extractions (matching Generators
PR precedent).

- transformations/index.mdx: hub from topics/transformation.mdx with
  cross-links updated and a Learn-by-doing section pointing to both new
  academy tutorials
- transformations/jinja2.mdx: NEW recipe-form how-to with placeholder-style
  examples
- transformations/python.mdx: NEW recipe-form how-to with placeholder-style
  examples
- academy/tutorials/transformations/build-a-jinja2-transformation.mdx:
  extracted from guides/jinja2-transform.mdx with consolidated tutorial
  framing
- academy/tutorials/transformations/build-a-python-transformation.mdx:
  extracted from guides/python-transform.mdx with consolidated tutorial
  framing
- sidebars.ts: re-point Transformations sub-cat at new paths with concise
  spoke labels (Jinja2 / Python); add academy tutorials
- redirects-pending/transformations.yml: 3 redirects + 23 cross-links to
  update at cleanup

Voice rules applied per the migrate-feature-page skill: no "this page",
no "canonical" jargon, "Transformation" capitalized as a branded term in
prose and link text. Five preserved-content "just" usages from the legacy
guides rewritten on extraction.

GraphQL fragments relocation deferred to a future Development Resources
migration per the Confluence recommendation.

Legacy files (topics/transformation.mdx, guides/jinja2-transform.mdx,
guides/python-transform.mdx) remain on disk during iteration; deleted in
the cleanup PR.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* update

---------

Co-authored-by: Yvonne <yvonne@opsmill.com>
Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Co-authored-by: Wim Van Deun <7521270+wvandeun@users.noreply.github.com>

* docs: migrate Artifact & File Storage to hub+spoke sub-category (#9162)

* docs: migrate object-storage to artifact-file-storage sub-category

Move topics/object-storage.mdx → artifact-file-storage/index.mdx (hub)
and guides/object-storage.mdx → artifact-file-storage/configure.mdx (spoke)
per the V3 navigation outline. Hub page title changed to "About storage"
provisionally — final name pending team approval (tracked in Open Questions).

Update inbound cross-links in artifact.mdx, file-object.mdx,
artifact-content-composition.mdx, database-backup.mdx, and schema/file-object.mdx.
Add redirects-pending/artifact-file-storage.yml for legacy URL handling.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* docs: fix configure storage page title and opening sentence

Update frontmatter title from "Using the object-storage" to "Configure storage"
to match the sidebar label, and replace the grammatically awkward intro with a
single accurate sentence describing the storage API.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

---------

Co-authored-by: Yvonne <yvonne@opsmill.com>
Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* docs: add Integrations landing page + fix sidebar URLs

Replaces the auto-generated card list at Automation & Outputs > Integrations
with a real landing page describing the three OpsMill-maintained integrations:
Ansible, Nornir, and Infrahub Sync. Each section is concise and assumes the
reader already knows Ansible / Nornir; the focus is on what each integration
enables specifically (modules, plugins, task functions).

Per the May 6 Wim docs review: "create better content for these overview
pages that kind of describes each of these and what they're for."

- integrations/index.mdx: NEW landing page (~50 lines)
- sidebars.ts: Integrations category points at the new landing page
  (link: type 'doc' instead of generated-index); the three TODO stub URLs
  replaced with the real https://docs.infrahub.app/{ansible,nornir,sync}
- redirects-pending/integrations.yml: tracks the new page (no legacy URL
  redirects needed — purely additive)

Descriptions sourced from the actual integration docs sites; no invented
content. Vale clean (one sentence-case warning on "Infrahub Sync" remains,
which is the correct product name).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* docs: use generated-index for Integrations landing page

Removes custom hand-written landing page in favour of the default
Docusaurus generated-index, which auto-renders the child links as cards.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* docs: tighten sidebar padding on spoke items (L3/L4 links) (#9185)

Reduces vertical padding on nested spoke links so they read as a compact
list under their parent category rather than equal-weight peers with the
top-level category items.

Co-authored-by: Yvonne <yvonne@opsmill.com>
Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* docs: migrate Generators per docs revamp (#9153)

* docs: migrate Generators per docs revamp

Hub + spokes + tutorial extraction (matching Groups precedent for hub+spokes
and B&CC `guides/check.mdx → academy/tutorials/build-a-check.mdx` precedent
for tutorial extraction).

- generators/index.mdx: hub from topics/generator.mdx with cross-links updated
- generators/build.mdx: NEW recipe-form how-to with placeholder-style examples
- generators/modular.mdx: moved from topics/modular-generators.mdx
- generators/modular-best-practices.mdx: moved from guides/modular-generator-best-practices.mdx
- academy/tutorials/generators/build-your-first-generator.mdx: extracted from
  guides/generator.mdx with tutorial framing
- academy/tutorials/generators/build-chained-generators.mdx: extracted from
  guides/chaining-generators.mdx with tutorial framing
- sidebars.ts: re-point Generators sub-cat at new paths; add academy tutorials
- redirects-pending/generators.yml: 5 redirects + 21 cross-links to update at cleanup
- .vale.ini: per-file branded-terms-case-swap suppression on build.mdx as a
  temporary workaround for a BlockIgnores regex bug (follow-up tracked separately)

Legacy files (topics/generator.mdx, topics/modular-generators.mdx, guides/generator.mdx,
guides/chaining-generators.mdx, guides/modular-generator-best-practices.mdx) remain
on disk during iteration; deleted in the cleanup PR.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* docs: drop self-referential phrases; codify in skill

Cut "this page covers..." and similar meta-narration from the migrated
Generators content; consolidated the redundant "This tutorial walks you
through..." + "By the end of this tutorial you will:" openers in the academy
tutorials into the single "By the end of this tutorial you will have..." form
established by groups.mdx and build-a-check.mdx.

Added a Voice and tone subsection to the migrate-feature-page skill so future
migrations match the tone of well-regarded open-source docs (Stripe, Tailwind,
FastAPI) rather than carrying legacy self-referential prose forward on
extraction.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* docs(skill): clarify voice rule — "this guide" is fine, "this page" isn't

A guide is a functional kind of document; a page is just where the content
lives. The skill's voice rule banned "this guide" alongside "this page" —
that was too aggressive. Rewrote the rule so genre markers ("this guide",
"this tutorial") are explicitly permitted while layout/medium descriptors
("this page", "this section", "this document") stay banned.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* docs: drop "canonical" jargon; add to skill banned-jargon list

Replaced "canonical workflow" with "how to" in generators/build.mdx — open-source
docs that read well don't reach for "canonical"; the qualifier doesn't earn its
place when there's only one workflow being described.

Added a banned-jargon subsection to the migrate-feature-page skill so future
migrations avoid the same trap (along with related empty qualifiers like
"proper", "correct", "right").

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* updates

---------

Co-authored-by: Yvonne <yvonne@opsmill.com>
Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Co-authored-by: Wim Van Deun <7521270+wvandeun@users.noreply.github.com>

* docs: migrate Events per docs revamp (#9159)

* docs: migrate Events per docs revamp

Hub + 3 spokes restructure of the Events sub-category, per the May 6 Wim
docs review. The existing three pages (topics/events, topics/event-actions,
guides/events-rules-actions) didn't explain the event system holistically.
The new structure introduces the three components — events, event rules,
event actions — at the hub level, and gives each component a dedicated
concept + UI walkthrough page.

- events/index.mdx: NEW hub introducing the 3-component event system + two
  worked workflow examples in the "Combining the three to achieve a goal"
  section
- events/event-system.mdx: from topics/events.mdx; lightly expanded to
  cover what events feed (activity log, automation, webhooks, log forwarding)
- events/event-rules.mdx: NEW page combining the rules concept content
  from topics/event-actions.mdx (rule kinds, match filters) with the
  trigger-rule UI walkthroughs from guides/events-rules-actions.mdx
- events/event-actions.mdx: combines actions concept content from
  topics/event-actions.mdx with action UI walkthroughs from
  guides/events-rules-actions.mdx
- sidebars.ts: Events sub-cat re-pointed at the new hub + 3 spokes
- redirects-pending/events.yml: 3 redirects (legacy paths -> new structure)

Two inbound cross-links updated to point at the new paths:
overview/next-steps.mdx and reference/infrahub-events.mdx.

Audit confirmed factual accuracy: all schema kind names verified against
backend/infrahub/core/constants/infrahubkind.py, all event names verified
against backend/infrahub/core/constants/__init__.py.

Deferred to future PRs: NEW Academy tutorials for specific event use cases
(auto-add to group, auto-trigger Generator) — these are future writing per
Wim's call, not extractions of existing content.

Legacy files (topics/events.mdx, topics/event-actions.mdx,
guides/events-rules-actions.mdx) remain on disk during iteration; deleted
in cleanup PR.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* docs(events): apply review feedback — bullets, headings, cross-links, framing

Per Yvonne's review of PR #9159:

- Hub: rename "Combining the three to achieve a goal" → "Example
  workflows"; drop "Workflow N —" prefix from the two H3s
- Hub: replace 2x3 component tables with bullets in both workflow
  examples — easier to scan than tight tables
- Hub: add a one-line use-cases preview to the intro so readers
  self-orient before the 3-component breakdown
- Hub: cross-link [Generator] in workflow 2 (legacy path until
  Generators PR #9153 merges into base)
- Event system: reorder "What events feed" so Automation comes first
  (most readers' primary use case) instead of alphabetical-ish
- Event rules + Event actions: add a one-sentence preface above each
  kind table explaining why two kinds exist
- Event rules: add closer to each UI walkthrough — "After saving, the
  rule appears in the trigger rules list as inactive. Activate it
  when you're ready to start matching events."
- Event actions: same — "The action appears in the actions list and
  can be referenced by any trigger rule."

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* docs(events): tighten hub intro sentence + bullet label

- Intro: "Three components combine to create each automation:"
  → "Build automations using events, rules, and actions:"
- First bullet label: "Event system" → "Events" (link target unchanged)

Sidebar label stays "Event system" per Yvonne's preference.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

---------

Co-authored-by: Yvonne <yvonne@opsmill.com>
Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Co-authored-by: Baptiste <32564248+BaptisteGi@users.noreply.github.com>

* docs: fix whitespaces

* docs: fix links

* docs: fine tune css

* docs: adjust sidebar to keep everything folded

* docs: fix gaps and broken links

* docs: update generated doc

* docs: update all cross links (#9191)

* docs: update all cross links

* docs: adjust cross link in templates

* docs: sidebar font/spacing polish + split events reference into sub-pages (#9193)

- Load Inter font via Google Fonts and set as --ifm-font-family-base (matches production)
- L1 sidebar items: font-weight 600 (unchanged)
- L2 sidebar items: font-weight 400, padding 4px (consistent across categories and links)
- L3/L4 sidebar items: padding 2px
- L3 category caret: smaller (0.25rem, 70% opacity)
- Split reference/infrahub-events.mdx into 9 sub-pages by event group (account, artifact, branch, commit, group, node, proposed-change, schema, validator)
- Events hub uses generated-index (no custom content)
- Remove API category from Reference sidebar
- Reorder Reference section: Schema Spec → CLI → Config Files → Events → Permissions → Auth → Message Bus Events

Co-authored-by: Yvonne <yvonne@opsmill.com>
Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* docs: add documentation restructure release notes (#9195)

* docs: add documentation restructure release notes page

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* docs: add Object Storage rename rationale to restructure release notes

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* docs: expand section groupings explanation and tighten Object Storage rename rationale

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* chore: fix linting

---------

Co-authored-by: Yvonne <yvonne@opsmill.com>
Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Co-authored-by: Baptiste <girard.baptiste@hotmail.fr>

---------

Co-authored-by: Yvonne <yvonne@bluecanyon.us>
Co-authored-by: Yvonne <yvonne@opsmill.com>
Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* docs: rename schema kind to schema feature

* docs: rename spokes

* docs: move info block to top of schema update page (#9213)

Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* docs: fix cross links and change index to overview (#9215)

* docs: fix cross links and change index to overview

* docs: fix templates

* docs: add announcement bar for docs restructure (#9228)

* docs: add announcement bar for docs restructure

Enables the Docusaurus announcementBar to notify users that the docs
have been reorganized from content-type folders (topics/, guides/) to
capability-based sections. Links to the docs-restructure release notes.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* Apply suggestion from @BaptisteGi

---------

Co-authored-by: Yvonne <yvonne@opsmill.com>
Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-authored-by: Baptiste <32564248+BaptisteGi@users.noreply.github.com>

---------

Co-authored-by: Yvonne <yvonne@opsmill.com>
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
Co-authored-by: Baptiste <32564248+BaptisteGi@users.noreply.github.com>
Co-authored-by: Baptiste <girard.baptiste@hotmail.fr>
Co-authored-by: Wim Van Deun <7521270+wvandeun@users.noreply.github.com>
Co-authored-by: Pol Michel <40861490+polmichel@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

type/documentation Improvements or additions to documentation

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant