diff options
| author | Yuriy Andamasov <yuriy@vyos.io> | 2026-03-24 16:48:21 +0200 |
|---|---|---|
| committer | Yuriy Andamasov <yuriy@vyos.io> | 2026-03-24 16:48:21 +0200 |
| commit | 41a839756b4de6bd57b029f4ab2c7601896c0ca1 (patch) | |
| tree | 94766bd7177e3bb4584877211a1f27311cbd543d /docs | |
| parent | d9738a0b2603800a5203c6cedee248af9100f625 (diff) | |
| download | vyos-documentation-41a839756b4de6bd57b029f4ab2c7601896c0ca1.tar.gz vyos-documentation-41a839756b4de6bd57b029f4ab2c7601896c0ca1.zip | |
chore: remove committed superpowers spec/plan files and update gitignore
Reverts commits 647ce9fa, 8cc5f5e3, 00eea86c, d9738a0b which accidentally
committed internal Claude Code brainstorming artifacts (design spec and
implementation plan) to the public repo.
Also adds .superpowers/ to .gitignore to prevent future accidental commits
of session files generated by the Claude Code superpowers plugin.
Diffstat (limited to 'docs')
| -rw-r--r-- | docs/superpowers/plans/2026-03-21-docs-improvements.md | 712 | ||||
| -rw-r--r-- | docs/superpowers/specs/2026-03-21-docs-improvements-design.md | 227 |
2 files changed, 0 insertions, 939 deletions
diff --git a/docs/superpowers/plans/2026-03-21-docs-improvements.md b/docs/superpowers/plans/2026-03-21-docs-improvements.md deleted file mode 100644 index a2656f15..00000000 --- a/docs/superpowers/plans/2026-03-21-docs-improvements.md +++ /dev/null @@ -1,712 +0,0 @@ -# VyOS Documentation Improvements Implementation Plan - -> **For agentic workers:** REQUIRED SUB-SKILL: Use superpowers:subagent-driven-development (recommended) or superpowers:executing-plans to implement this plan task-by-task. Steps use checkbox (`- [ ]`) syntax for tracking. - -**Goal:** Fix documentation quality issues across 4 work streams: mechanical fixes, content quality, structural reorganization, and RTD platform cleanup. - -**Architecture:** 3 separate git branches each producing one PR, plus direct RTD API calls. Each PR is independent — PR 1 and PR 2 can run in parallel; PR 3 should follow PR 1 to avoid merge conflicts. - -**Tech Stack:** RST (reStructuredText), Sphinx, Read the Docs API v3, curl, git - -**Spec:** `docs/superpowers/specs/2026-03-21-docs-improvements-design.md` - ---- - -## PR 1: Mechanical Fixes (`fix/docs-mechanical-cleanup`) - -### Task 1: Create branch and fix heading hierarchy — `=` files (23 files) - -**Files:** All under `docs/` prefix. -- Modify: `automation/command-scripting.rst`, `automation/terraform/terraformAWS.rst`, `automation/terraform/terraformAZ.rst`, `automation/terraform/terraformGoogle.rst`, `automation/terraform/terraformvSphere.rst`, `automation/terraform/terraformvyos.rst`, `automation/vyos-ansible.rst`, `automation/vyos-govyos.rst`, `automation/vyos-napalm.rst`, `automation/vyos-netmiko.rst`, `automation/vyos-pyvyos.rst`, `automation/vyos-salt.rst`, `configexamples/firewall.rst`, `configexamples/index.rst`, `configexamples/wan-load-balancing.rst`, `configuration/highavailability/index.rst`, `configuration/interfaces/openvpn-examples.rst`, `configuration/interfaces/tunnel.rst`, `configuration/loadbalancing/wan.rst`, `configuration/service/mdns.rst`, `configuration/vpn/ipsec/remoteaccess_ipsec.rst`, `installation/update.rst`, `vpp/configuration/ipfix.rst` - -These files use `====` underline-only for their first heading. The fix is to add a `####` overline above the title and replace the `====` underline with `####`, matching the title length. - -**Pattern — before:** -```rst -Command Scripting -================= -``` - -**Pattern — after:** -```rst -################# -Command Scripting -################# -``` - -- [ ] **Step 1: Create feature branch** - -```bash -cd /Users/syncer/GitHub/vyos-documentation -git checkout -b fix/docs-mechanical-cleanup current -``` - -- [ ] **Step 2: Fix all 23 `=` heading files** - -For each file: read the first heading, add a `#` overline of the same length as the title, replace the `=` underline with `#` of the same length. Preserve any `:lastproofread:` or `.. _label:` lines above the heading. - -- [ ] **Step 3: Verify no RST syntax errors** - -```bash -cd /Users/syncer/GitHub/vyos-documentation/docs -python3 -c " -import subprocess, sys -result = subprocess.run(['python3', '-m', 'sphinx', '-b', 'html', '-W', '--keep-going', '.', '_build/verify'], capture_output=True, text=True, timeout=300) -print(result.stdout[-2000:] if len(result.stdout) > 2000 else result.stdout) -print(result.stderr[-2000:] if len(result.stderr) > 2000 else result.stderr) -sys.exit(result.returncode) -" -``` - -If Sphinx is not installed locally, verify manually by checking each file's first 5 lines have the pattern: overline `####`, title text, underline `####`. - -- [ ] **Step 4: Commit** - -```bash -git add -A docs/ -git commit -m "fix: correct heading hierarchy in 23 files using = as first heading - -Replace underline-only = headings with proper ##### overline+underline -format per project convention." -``` - -### Task 2: Fix heading hierarchy — `-` files (7 files) - -**Files:** All under `docs/` prefix. -- Modify: `configexamples/azure-vpn-bgp.rst`, `configexamples/azure-vpn-dual-bgp.rst`, `configexamples/fwall-and-bridge.rst`, `configexamples/fwall-and-vrf.rst`, `configexamples/policy-based-ipsec-and-firewall.rst`, `configexamples/site-2-site-cisco.rst`, `configexamples/zone-policy.rst` - -These files use `----` underline-only for their first heading. Same fix pattern: add `####` overline, replace `----` underline with `####`. - -**Pattern — before:** -```rst -Route-Based Site-to-Site VPN to Azure (BGP over IKEv2/IPsec) ------------------------------------------------------------- -``` - -**Pattern — after:** -```rst -############################################################## -Route-Based Site-to-Site VPN to Azure (BGP over IKEv2/IPsec) -############################################################## -``` - -- [ ] **Step 1: Fix all 7 `-` heading files** - -Same approach as Task 1 Step 2. - -- [ ] **Step 2: Commit** - -```bash -git add -A docs/configexamples/ -git commit -m "fix: correct heading hierarchy in 7 files using - as first heading" -``` - -### Task 3: Fix heading hierarchy — `*` files (5 files) - -**Files:** All under `docs/` prefix. -- Modify: `configuration/system/lcd.rst`, `installation/virtual/docker.rst`, `installation/virtual/libvirt.rst`, `installation/virtual/proxmox.rst`, `operation/information.rst` - -These files use `****` overline+underline. Replace both `*` lines with `#` of the same length. - -**Pattern — before:** -```rst -******************** -System Display (LCD) -******************** -``` - -**Pattern — after:** -```rst -#################### -System Display (LCD) -#################### -``` - -- [ ] **Step 1: Fix all 5 `*` heading files** - -Replace `*` with `#` on both overline and underline. - -- [ ] **Step 2: Commit** - -```bash -git add -A docs/ -git commit -m "fix: correct heading hierarchy in 5 files using * as first heading" -``` - -### Task 4: Replace tab characters (13 files) - -**Files:** All under `docs/` prefix. -- Modify: `configuration/trafficpolicy/index.rst`, `configuration/service/eventhandler.rst`, `configuration/interfaces/wireless.rst`, `cli.rst`, `installation/install.rst`, `automation/terraform/terraformGoogle.rst`, `automation/terraform/terraformAWS.rst`, `automation/terraform/terraformAZ.rst`, `automation/terraform/terraformvSphere.rst`, `configexamples/nmp.rst`, `configexamples/ansible.rst`, `configexamples/qos.rst`, `configexamples/l3vpn-hub-and-spoke.rst` - -- [ ] **Step 1: Replace tabs with spaces in all 13 files** - -For each file, read it, identify tab characters, and replace with appropriate spacing. Tabs inside code blocks (``.. code-block::``) should be replaced with the equivalent visual spacing (typically 2 or 3 spaces depending on context). Tabs in RST structural content should be replaced with 2 spaces. - -**Important:** Be careful with tabs inside table markup or code blocks — preserve visual alignment. - -- [ ] **Step 2: Verify no tabs remain** - -```bash -grep -rP '\t' /Users/syncer/GitHub/vyos-documentation/docs/ --include='*.rst' -l -``` - -Expected: no output (no files with tabs). - -- [ ] **Step 3: Commit** - -```bash -git add -A docs/ -git commit -m "fix: replace tab characters with spaces in 13 RST files" -``` - -### Task 5: Fix typos and metadata formatting (3 files) - -**Files:** All under `docs/` prefix. -- Modify: `configuration/index.rst`, `configuration/system/sysctl.rst`, `configuration/policy/index.rst` - -- [ ] **Step 1: Fix typo in `configuration/index.rst`** - -Line 5: change `respresent` to `represent`. - -- [ ] **Step 2: Fix typo in `configuration/system/sysctl.rst`** - -Line 7: change `chapeter` to `chapter`. - -- [ ] **Step 3: Fix metadata formatting in `configuration/policy/index.rst`** - -Line 1: change `:lastproofread:2021-07-12` to `:lastproofread: 2021-07-12` (add space after colon). - -- [ ] **Step 4: Commit** - -```bash -git add docs/configuration/index.rst docs/configuration/system/sysctl.rst docs/configuration/policy/index.rst -git commit -m "fix: correct typos and metadata formatting in 3 files" -``` - -### Task 6: Create PR for mechanical fixes - -- [ ] **Step 1: Push branch and create PR** - -```bash -git push -u origin fix/docs-mechanical-cleanup -gh pr create --title "Fix heading hierarchy, tabs, and typos across docs" --body "$(cat <<'EOF' -## Summary -- Fix first-heading hierarchy in 35 RST files (must use `#####` overline+underline) -- Replace tab characters with spaces in 13 RST files -- Fix typos: "respresent" → "represent", "chapeter" → "chapter" -- Fix `:lastproofread:` metadata formatting in policy/index.rst - -## Test plan -- [ ] Verify Sphinx build succeeds without warnings -- [ ] Spot-check heading rendering in built HTML -- [ ] Verify no tab characters remain: `grep -rP '\t' docs/ --include='*.rst'` - -🤖 Generated with [Claude Code](https://claude.com/claude-code) -EOF -)" -``` - ---- - -## PR 2: Content Quality (`fix/docs-content-quality`) - -### Task 7: Create branch and add TODO comments (12 files) - -**Files:** All under `docs/` prefix. -- Modify: `configuration/vpn/ipsec/remoteaccess_ipsec.rst`, `configuration/vpn/ipsec/troubleshooting_ipsec.rst`, `configuration/vpn/rsa-keys.rst`, `configuration/vpn/openconnect.rst`, `configuration/nat/nat64.rst`, `configuration/nat/nat66.rst`, `configuration/loadbalancing/wan.rst`, `configuration/firewall/index.rst`, `configuration/service/snmp.rst`, `configuration/policy/examples.rst`, `configuration/interfaces/vti.rst`, `configuration/interfaces/openvpn-examples.rst` - -- [ ] **Step 1: Create feature branch** - -```bash -git checkout current -git checkout -b fix/docs-content-quality current -``` - -- [ ] **Step 2: Add TODO comment to each of the 12 files** - -For each file, add the following line after the first heading block (after the heading underline — which may be `====`, `----`, `****`, or `####` depending on whether PR 1 has been merged — and any blank line): - -```rst -.. TODO:: Convert raw command blocks in this file to cfgcmd/opcmd - directives for command coverage tracking. -``` - -Read each file first to find the correct insertion point — it should go right after the title heading and any introductory label/metadata, before the first content paragraph. - -- [ ] **Step 3: Commit** - -```bash -git add -A docs/ -git commit -m "chore: add TODO markers for 12 files needing cfgcmd/opcmd conversion" -``` - -### Task 8: Fill TBD placeholders (2 files) - -**Files:** All under `docs/` prefix. -- Modify: `configuration/system/flow-accounting.rst`, `configuration/protocols/static.rst` - -- [ ] **Step 1: Fill TBD in `flow-accounting.rst`** - -At line 87, replace `TBD` with: - -```rst - Configure the syslog facility used for flow-accounting log messages. - Available facilities follow standard syslog conventions (e.g., - ``daemon``, ``local0`` through ``local7``). -``` - -(This sits under the `.. cfgcmd::` directive at line 85, so it must be indented with 3 spaces to be part of the directive body.) - -- [ ] **Step 2: Fill TBD in `static.rst`** - -At line 274, replace the standalone `TBD` with nothing — the explanation already follows on line 276-277. Just remove the `TBD` line so the text flows naturally from the heading into the existing content: - -```rst -************************ -Alternate Routing Tables -************************ - -Alternate routing tables are used with policy based routing by utilizing -:ref:`vrf`. -``` - -- [ ] **Step 3: Commit** - -```bash -git add docs/configuration/system/flow-accounting.rst docs/configuration/protocols/static.rst -git commit -m "fix: fill TBD placeholder in flow-accounting, remove TBD in static routes" -``` - -### Task 9: Add stub admonitions (3 files) - -**Files:** All under `docs/` prefix. -- Modify: `installation/virtual/eve-ng.rst`, `installation/cloud/oracle.rst`, `configuration/system/sysctl.rst` - -- [ ] **Step 1: Add stub note to `eve-ng.rst`** - -After line 5 (the `######` underline), add a blank line then: - -```rst -.. note:: This page is a stub and needs expansion. Contributions - welcome via the `VyOS documentation repository - <https://github.com/vyos/vyos-documentation>`_. -``` - -- [ ] **Step 2: Add stub note to `oracle.rst`** - -After line 5 (the `######` underline), add a blank line then the same note. - -- [ ] **Step 3: Add stub note to `sysctl.rst`** - -After line 5 (the `######` underline), add a blank line then the same note. - -- [ ] **Step 4: Commit** - -```bash -git add docs/installation/virtual/eve-ng.rst docs/installation/cloud/oracle.rst docs/configuration/system/sysctl.rst -git commit -m "docs: add stub admonitions to 3 minimal pages" -``` - -### Task 10: Create PR for content quality - -- [ ] **Step 1: Push branch and create PR** - -```bash -git push -u origin fix/docs-content-quality -gh pr create --title "Add TODO markers, fill placeholders, mark stub pages" --body "$(cat <<'EOF' -## Summary -- Add TODO comments to 12 files that use raw command blocks instead of cfgcmd/opcmd directives -- Fill TBD placeholder in flow-accounting.rst with syslog-facility description -- Remove orphan TBD in static.rst (content already follows the heading) -- Add stub admonitions to 3 minimal pages (eve-ng, oracle, sysctl) - -## Test plan -- [ ] Verify Sphinx build succeeds -- [ ] Verify TODO directives render as expected -- [ ] Verify stub notes render correctly - -🤖 Generated with [Claude Code](https://claude.com/claude-code) -EOF -)" -``` - ---- - -## PR 3: Structural Reorganization (`fix/docs-structural-reorg`) - -### Task 11: Create branch and split troubleshooting page - -**Files:** All under `docs/troubleshooting/` prefix. -- Modify: `index.rst` -- Create: `connectivity.rst`, `interfaces.rst`, `monitoring.rst`, `terminal.rst`, `system.rst` - -- [ ] **Step 1: Create feature branch** - -```bash -git checkout current -git checkout -b fix/docs-structural-reorg current -``` - -- [ ] **Step 2: Read `troubleshooting/index.rst` completely** - -Read the full 460-line file to understand exact content boundaries. - -- [ ] **Step 3: Create `troubleshooting/connectivity.rst`** - -Extract lines 12–158 (Connectivity Tests section). Add proper heading: - -```rst -################## -Connectivity Tests -################## -``` - -Keep all `.. opcmd::` directives and code blocks. Promote internal headings: -- `Basic Connectivity Tests` (was `=====`) → use `*****` -- `Advanced Connectivity Tests` (was `=====`) → use `*****` -- `IPv6 Topology Discovery` (was `=====`) → use `*****` -- `Router Discovery` (was `-----`) → use `=====` -- `Neighbor Discovery` (was `-----`) → use `=====` - -- [ ] **Step 4: Create `troubleshooting/interfaces.rst`** - -Extract lines 160–199 (Interface names section): - -```rst -############### -Interface Names -############### - -If you find the names of your interfaces have changed... -``` - -No sub-headings in this section. - -- [ ] **Step 5: Create `troubleshooting/monitoring.rst`** - -Extract lines 201–358 (Monitoring section): - -```rst -########## -Monitoring -########## - -VyOS features several monitoring tools. -``` - -Promote internal headings: -- `Traffic Dumps` (was `=====`) → use `*****` -- `Interface Bandwidth Usage` (was `=====`) → use `*****` -- `Interface Performance` (was `=====`) → use `*****` -- `Monitor command` (was `=====`) → use `*****` - -- [ ] **Step 6: Create `troubleshooting/terminal.rst`** - -Extract lines 360–401 (Terminal/Console section). Lines 402–403 are blank separators and can be dropped. - -```rst -################ -Terminal/Console -################ - -Sometimes you need to clear counters or statistics... -``` - -No sub-headings to promote. - -- [ ] **Step 7: Create `troubleshooting/system.rst`** - -Extract lines 404–460 (System Information section). This MUST include: -- Lines 404–448: the System Information content and Boot Steps -- Lines 449–460: `.. stop_vyoslinter`, all `.. _link:` reference definitions, AND `.. start_vyoslinter` on the final line - -The `.. stop_vyoslinter` / `.. start_vyoslinter` pair must stay balanced — both must be in this file since the reference link definitions between them use bare URLs that would otherwise trigger linter warnings. - -```rst -################## -System Information -################## -``` - -Promote internal headings: -- `Boot Steps` (was `=====`) → use `*****` - -Keep the `.. _boot-steps:` label. Keep the `.. stop_vyoslinter` / `.. start_vyoslinter` directives and all `.. _link:` references at the bottom. - -- [ ] **Step 8: Rewrite `troubleshooting/index.rst`** - -Replace the entire file with: - -```rst -.. _troubleshooting: - -############### -Troubleshooting -############### - -Sometimes things break or don't work as expected. This section describes -several troubleshooting tools provided by VyOS that can help when something -goes wrong. - -.. toctree:: - :maxdepth: 1 - - connectivity - interfaces - monitoring - terminal - system -``` - -- [ ] **Step 9: Commit** - -```bash -git add docs/troubleshooting/ -git commit -m "refactor: split troubleshooting into 5 focused sub-pages - -Split monolithic 460-line troubleshooting/index.rst into: -- connectivity.rst (ping, traceroute, mtr, IPv6 discovery) -- interfaces.rst (interface naming, MAC addresses) -- monitoring.rst (traffic dumps, bandwidth, iperf) -- terminal.rst (console clearing, counter resets) -- system.rst (boot steps, system information)" -``` - -### Task 12: Create `contributing/index.rst` and update root index - -**Files:** -- Create: `docs/contributing/index.rst` -- Modify: `docs/index.rst` - -- [ ] **Step 1: Create `contributing/index.rst`** - -```rst -############ -Contributing -############ - -.. toctree:: - :maxdepth: 1 - - build-vyos - development - cla - issues-features - upstream-packages - debugging - testing -``` - -- [ ] **Step 2: Update root `index.rst`** - -Replace the "Development" toctree section (lines 85–97): - -**Before:** -```rst -.. toctree:: - :maxdepth: 2 - :hidden: - :caption: Development - - contributing/build-vyos - contributing/development - contributing/cla - contributing/issues-features - contributing/upstream-packages - contributing/debugging - contributing/testing -``` - -**After:** -```rst -.. toctree:: - :maxdepth: 2 - :hidden: - :caption: Development - - contributing/index -``` - -- [ ] **Step 3: Commit** - -```bash -git add docs/contributing/index.rst docs/index.rst -git commit -m "refactor: create contributing/index.rst, simplify root toctree" -``` - -### Task 13: Clean up VPN "pages to sort" - -**Files:** All under `docs/configuration/vpn/` prefix. -- Modify: `index.rst`, `ipsec/index.rst` - -- [ ] **Step 1: Fix `configuration/vpn/index.rst`** - -Replace the entire file content with: - -```rst -### -VPN -### - - -.. toctree:: - :maxdepth: 1 - :includehidden: - - dmvpn - ipsec/index - l2tp - openconnect - pptp - rsa-keys - sstp -``` - -This integrates `dmvpn` into the main toctree (sorted alphabetically) and removes the "pages to sort" text and second toctree. - -- [ ] **Step 2: Fix `configuration/vpn/ipsec/index.rst`** - -Replace the entire file content with: - -```rst -##### -IPsec -##### - - -.. toctree:: - :maxdepth: 1 - :includehidden: - - ipsec_general - site2site_ipsec - remoteaccess_ipsec - troubleshooting_ipsec -``` - -This removes the "pages to sort" text and empty second toctree. - -- [ ] **Step 3: Commit** - -```bash -git add docs/configuration/vpn/index.rst docs/configuration/vpn/ipsec/index.rst -git commit -m "fix: remove 'pages to sort' placeholders from VPN section" -``` - -### Task 14: Create PR for structural reorganization - -- [ ] **Step 1: Push branch and create PR** - -```bash -git push -u origin fix/docs-structural-reorg -gh pr create --title "Split troubleshooting, add contributing index, clean VPN structure" --body "$(cat <<'EOF' -## Summary -- Split `troubleshooting/index.rst` (460 lines) into 5 focused sub-pages: connectivity, interfaces, monitoring, terminal, system -- Create `contributing/index.rst` with toctree, simplify root index.rst -- Remove "pages to sort" placeholders from VPN and IPsec index files, integrate dmvpn into main toctree - -## Test plan -- [ ] Verify Sphinx build succeeds without warnings -- [ ] Verify troubleshooting sub-pages render correctly and navigation works -- [ ] Verify contributing section appears correctly in sidebar -- [ ] Verify VPN section navigation is clean -- [ ] Verify `.. _boot-steps:` and `.. _troubleshooting:` cross-references still work - -🤖 Generated with [Claude Code](https://claude.com/claude-code) -EOF -)" -``` - ---- - -## RTD Platform Cleanup (Direct API Actions) - -### Task 15: Capture RTD state and hide inactive versions - -**No files modified — API actions only.** - -RTD API base: `https://app.readthedocs.org/api/v3/projects/vyos` -Auth header: `Authorization: Token $RTD_TOKEN` (token: `$RTD_TOKEN`) - -- [ ] **Step 1: Capture current version state for rollback** - -```bash -curl -s -H "Authorization: Token $RTD_TOKEN" \ - "https://app.readthedocs.org/api/v3/projects/vyos/versions/?limit=100" \ - > /tmp/rtd-versions-backup-$(date +%Y%m%d).json -``` - -- [ ] **Step 2: Hide 16 inactive versions** - -Run PATCH for each version slug to set `hidden: true`: - -```bash -for slug in \ - revert-1544-t6652-current \ - mergify-bp-sagitta-pr-1533 \ - vpp-next \ - 1.4.3 1.4.0 \ - 1.3.8 1.3.7 1.3.6 1.3.5 1.3.4 1.3.3-epa1 1.3.3 1.3.2 \ - 1.2.9-s1 \ - vyos_1.2-2019q4 \ - stable; do - echo "Hiding $slug..." - curl -s -X PATCH \ - -H "Authorization: Token $RTD_TOKEN" \ - -H "Content-Type: application/json" \ - -d '{"hidden": true}' \ - "https://app.readthedocs.org/api/v3/projects/vyos/versions/$slug/" - echo "" -done -``` - -Expected: each call returns 200 OK with JSON body showing the updated version. - -- [ ] **Step 3: Verify versions are hidden** - -```bash -curl -s -H "Authorization: Token $RTD_TOKEN" \ - "https://app.readthedocs.org/api/v3/projects/vyos/versions/?limit=100" \ - | python3 -c "import json,sys; versions=json.load(sys.stdin)['results']; [print(f'{v[\"slug\"]:40s} active={v[\"active\"]} hidden={v[\"hidden\"]}') for v in versions]" -``` - -Expected: 16 slugs show `hidden=True`, 4 active versions show `hidden=False`. - -### Task 16: Delete disabled redirects - -- [ ] **Step 1: List redirects to get IDs** - -```bash -curl -s -H "Authorization: Token $RTD_TOKEN" \ - "https://app.readthedocs.org/api/v3/projects/vyos/redirects/" \ - | python3 -m json.tool -``` - -Find the `pk` values for the two disabled redirects: -- `changelog.html` → `changelog/$(version).html` -- `installation/vyos-on-baremetal.html` → `installation/bare-metal.html` - -- [ ] **Step 2: Delete the two disabled redirects** - -```bash -# Replace <ID1> and <ID2> with actual pk values from step 1 -curl -s -X DELETE \ - -H "Authorization: Token $RTD_TOKEN" \ - "https://app.readthedocs.org/api/v3/projects/vyos/redirects/<ID1>/" - -curl -s -X DELETE \ - -H "Authorization: Token $RTD_TOKEN" \ - "https://app.readthedocs.org/api/v3/projects/vyos/redirects/<ID2>/" -``` - -Expected: 204 No Content for each. - -- [ ] **Step 3: Verify redirects are cleaned up** - -```bash -curl -s -H "Authorization: Token $RTD_TOKEN" \ - "https://app.readthedocs.org/api/v3/projects/vyos/redirects/" \ - | python3 -m json.tool -``` - -Expected: 5 remaining redirects (all enabled). diff --git a/docs/superpowers/specs/2026-03-21-docs-improvements-design.md b/docs/superpowers/specs/2026-03-21-docs-improvements-design.md deleted file mode 100644 index abec6829..00000000 --- a/docs/superpowers/specs/2026-03-21-docs-improvements-design.md +++ /dev/null @@ -1,227 +0,0 @@ -# VyOS Documentation Improvements — Design Spec - -**Date:** 2026-03-21 -**Scope:** Documentation quality, consistency, structure, and RTD platform cleanup -**Delivery:** 3 separate PRs + direct RTD API actions - ---- - -## PR 1: Mechanical Fixes (`fix/docs-mechanical-cleanup`) - -### Heading Hierarchy (35 files) - -Every RST file must start with `#####` (overline + underline) as its first heading. Fix 35 files that use `=`, `*`, or `-` instead. - -**Affected files:** - -Using `=` as first heading (23 files): -- `automation/command-scripting.rst` -- `automation/terraform/terraformAWS.rst` -- `automation/terraform/terraformAZ.rst` -- `automation/terraform/terraformGoogle.rst` -- `automation/terraform/terraformvSphere.rst` -- `automation/terraform/terraformvyos.rst` -- `automation/vyos-ansible.rst` -- `automation/vyos-govyos.rst` -- `automation/vyos-napalm.rst` -- `automation/vyos-netmiko.rst` -- `automation/vyos-pyvyos.rst` -- `automation/vyos-salt.rst` -- `configexamples/firewall.rst` -- `configexamples/index.rst` -- `configexamples/wan-load-balancing.rst` -- `configuration/highavailability/index.rst` -- `configuration/interfaces/openvpn-examples.rst` -- `configuration/interfaces/tunnel.rst` -- `configuration/loadbalancing/wan.rst` -- `configuration/service/mdns.rst` -- `configuration/vpn/ipsec/remoteaccess_ipsec.rst` -- `installation/update.rst` -- `vpp/configuration/ipfix.rst` - -Using `-` as first heading (7 files): -- `configexamples/azure-vpn-bgp.rst` -- `configexamples/azure-vpn-dual-bgp.rst` -- `configexamples/fwall-and-bridge.rst` -- `configexamples/fwall-and-vrf.rst` -- `configexamples/policy-based-ipsec-and-firewall.rst` -- `configexamples/site-2-site-cisco.rst` -- `configexamples/zone-policy.rst` - -Using `*` as first heading (5 files): -- `configuration/system/lcd.rst` -- `installation/virtual/docker.rst` -- `installation/virtual/libvirt.rst` -- `installation/virtual/proxmox.rst` -- `operation/information.rst` - -**Approach:** For each file, replace the first heading underline/overline character with `#`, keeping the same length. Adjust subsequent heading levels downward if needed to maintain proper hierarchy. - -### Tab Indentation (13 files) - -Replace tab characters with appropriate space indentation in RST files: - -- `configuration/trafficpolicy/index.rst` -- `configuration/service/eventhandler.rst` -- `configuration/interfaces/wireless.rst` -- `cli.rst` -- `installation/install.rst` -- `automation/terraform/terraformGoogle.rst` -- `automation/terraform/terraformAWS.rst` -- `automation/terraform/terraformAZ.rst` -- `automation/terraform/terraformvSphere.rst` -- `configexamples/nmp.rst` -- `configexamples/ansible.rst` -- `configexamples/qos.rst` -- `configexamples/l3vpn-hub-and-spoke.rst` - -### Typos (2 files) - -- `configuration/index.rst`: "respresent" → "represent" -- `configuration/system/sysctl.rst` line 7: "chapeter" → "chapter" - -### Metadata Formatting (1 file) - -- `configuration/policy/index.rst` line 1: `:lastproofread:2021-07-12` → `:lastproofread: 2021-07-12` (add missing space) - ---- - -## PR 2: Content Quality (`fix/docs-content-quality`) - -### TODO Comments for Raw Command Blocks (12 files) - -Add `.. TODO:: Convert raw command blocks to cfgcmd/opcmd directives` near the top of these files: - -- `configuration/vpn/ipsec/remoteaccess_ipsec.rst` -- `configuration/vpn/ipsec/troubleshooting_ipsec.rst` -- `configuration/vpn/rsa-keys.rst` -- `configuration/vpn/openconnect.rst` -- `configuration/nat/nat64.rst` -- `configuration/nat/nat66.rst` -- `configuration/loadbalancing/wan.rst` -- `configuration/firewall/index.rst` -- `configuration/service/snmp.rst` -- `configuration/policy/examples.rst` -- `configuration/interfaces/vti.rst` -- `configuration/interfaces/openvpn-examples.rst` - -### Fill TBD Placeholders (2 files) - -- `configuration/system/flow-accounting.rst` line 87: Replace `TBD` with description of the `syslog-facility` parameter (controls which syslog facility flow-accounting messages are sent to). -- `configuration/protocols/static.rst` line 274: Replace `TBD` with brief content about alternate routing tables (VRF-based routing table selection for static routes). - -### Stub Page Admonitions (3 files) - -Add `.. note:: This page is a stub and needs expansion. Contributions welcome.` to: - -- `installation/virtual/eve-ng.rst` -- `installation/cloud/oracle.rst` -- `configuration/system/sysctl.rst` - ---- - -## PR 3: Structural Reorganization (`fix/docs-structural-reorg`) - -### Split `troubleshooting/index.rst` - -Current file: 460 lines covering 5 distinct topics. Split into: - -| New File | Content | Source Lines | -|---|---|---| -| `troubleshooting/index.rst` | Intro + toctree only | Lines 1–9 (rewritten) | -| `troubleshooting/connectivity.rst` | Ping, traceroute, mtr, IPv6 discovery | Lines 12–158 | -| `troubleshooting/interfaces.rst` | Interface names, MAC address issues | Lines 160–199 | -| `troubleshooting/monitoring.rst` | Traffic dumps, bandwidth, iperf, monitor command | Lines 201–358 | -| `troubleshooting/terminal.rst` | Console clearing, counter resets | Lines 360–401 | -| `troubleshooting/system.rst` | Boot steps, system information | Lines 404–460 | - -**Heading levels in sub-pages:** Each sub-page starts with `#####` as its title. Internal sections are promoted accordingly: current `*****` sections become `*****` (unchanged if already second-level) or promoted to match. Current `=====` sub-sections become `*****`, and `-----` become `=====`. The goal is each sub-page has a self-contained heading hierarchy starting from `#####`. - -New `troubleshooting/index.rst` content: - -```rst -.. _troubleshooting: - -############### -Troubleshooting -############### - -Sometimes things break or don't work as expected. This section describes -several troubleshooting tools provided by VyOS that can help when something -goes wrong. - -.. toctree:: - :maxdepth: 1 - - connectivity - interfaces - monitoring - terminal - system -``` - -Each sub-page gets a proper `#####` title heading. - -### Create `contributing/index.rst` - -Create `contributing/index.rst` with title and toctree listing the 7 existing contributing pages. Update root `index.rst` "Development" toctree to reference `contributing/index` instead of listing individual pages. Note: `documentation.rst` stays in the "Misc" toctree — it is a general writing guide, not a contributing-specific page. - -### Clean up VPN "pages to sort" - -- `configuration/vpn/index.rst`: Remove "pages to sort" text, integrate `dmvpn` into the main toctree -- `configuration/vpn/ipsec/index.rst`: Remove empty second toctree - ---- - -## RTD Platform Cleanup (Direct API Actions) - -### Hide Inactive Versions (16 versions) - -Set `hidden: true` via PATCH on these inactive version slugs: - -- `revert-1544-t6652-current` -- `mergify-bp-sagitta-pr-1533` -- `vpp-next` -- `1.4.3`, `1.4.0` -- `1.3.8`, `1.3.7`, `1.3.6`, `1.3.5`, `1.3.4`, `1.3.3-epa1`, `1.3.3`, `1.3.2` -- `1.2.9-s1` -- `vyos_1.2-2019q4` -- `stable` - -Note: `current` is NOT hidden — it is the primary branch (`current` tracks VyOS 1.5.x rolling). The `latest` slug already points to this branch and is the active version; `current` is already inactive but should not be hidden in case it is referenced by external links. - -**Verification before applying:** Capture current state of all versions via `GET /api/v3/projects/vyos/versions/?limit=100` and save the response locally before making any PATCH calls. This provides a rollback reference. - -### Delete Disabled Redirects (2 redirects) - -Delete redirect IDs for: -- `changelog.html` → `changelog/$(version).html` (disabled, broken) -- `installation/vyos-on-baremetal.html` → `installation/bare-metal.html` (disabled, obsolete) - -### No Action Items - -- **Translations:** Locale directories kept as-is for future use -- **PDF for 1.2:** Left as-is (EOL version) - ---- - -## Execution Order - -1. **PR 1** (mechanical fixes) — no dependencies, merge first -2. **PR 2** (content quality) — no dependencies on PR 1, can be parallel -3. **PR 3** (structural reorg) — should go after PR 1 to avoid merge conflicts on shared files -4. **RTD cleanup** — independent, can run anytime - -## Success Criteria - -- All 35 heading hierarchy violations fixed -- Zero tab characters in RST files (13 files cleaned) -- Zero typos in the identified files -- 12 files flagged with TODO for directive conversion -- Zero TBD placeholders remaining -- 3 stub pages clearly marked -- `troubleshooting/` split into 5 focused sub-pages -- `contributing/` has proper index page -- VPN section has no "pages to sort" placeholders -- RTD: 16 stale inactive versions hidden from version selector -- No disabled redirects remain |
