Skip to content

docs: update Otto the otter mascot logo#9148

Closed
petercrocker wants to merge 27 commits into
stablefrom
update-docs-logo-v2
Closed

docs: update Otto the otter mascot logo#9148
petercrocker wants to merge 27 commits into
stablefrom
update-docs-logo-v2

Conversation

@petercrocker
Copy link
Copy Markdown
Contributor

Summary

Replaces the Otto mascot image shown on the FAQ page with the new flat-style blue otter logo.

Changes

  • Replaced docs/docs/media/otto.png with the updated logo (new flat-style illustration, 1113×1112px)

Test Plan

  • Visit the FAQ page locally and confirm the new Otto image renders correctly under "What is the name of the otter?"

Yvonne and others added 27 commits April 29, 2026 11:43
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>
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>
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>
…enerator 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>
- 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>
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

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>
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: 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>
…ended 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>
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

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>
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>
Replace the previous otto.png with the new flat-style blue otter icon.
@petercrocker petercrocker requested review from a team as code owners May 6, 2026 07:58
@github-actions github-actions Bot added the type/documentation Improvements or additions to documentation label May 6, 2026
@petercrocker petercrocker requested review from BaptisteGi and removed request for a team May 6, 2026 08:00
Base automatically changed from demo/groups-diataxis-example to stable May 12, 2026 14:47
@BaptisteGi BaptisteGi requested a review from a team as a code owner May 12, 2026 14:47
@petercrocker
Copy link
Copy Markdown
Contributor Author

Closing in favor of #9254, which is rebased directly on stable so the diff is just the single PNG swap. This branch was inadvertently based on the docs-revamp branch and carried 60 unrelated files.

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.

3 participants