with one click
dab-docs-file-ops
// Rename, move, or delete documentation files in the Data API builder docs repo. Handles all side effects: redirects, TOC, index.yml, media, includes, and cross-references.
// Rename, move, or delete documentation files in the Data API builder docs repo. Handles all side effects: redirects, TOC, index.yml, media, includes, and cross-references.
Audit a Data API builder documentation file for Microsoft Learn compliance, style, accuracy, and information architecture. Checks frontmatter, links, images, code fences, alerts, tabs, voice, and peer consistency.
Add a new documentation file to the Data API builder docs repo. Handles all integration points: YAML frontmatter, TOC, index.yml landing pages, media folders, cross-references, and peer-doc consistency.
Draft, revise, or review a Data API builder whats-new page. Use for release notes, version announcements, preview releases, GA releases, or release summaries.
| name | dab-docs-file-ops |
| description | Rename, move, or delete documentation files in the Data API builder docs repo. Handles all side effects: redirects, TOC, index.yml, media, includes, and cross-references. |
| argument-hint | Provide: operation (rename/move/delete), source file path, and destination path (for rename/move). |
| user-invocable | true |
Use this skill whenever you rename, move, or delete a documentation file in this repo. Every file operation has side effects that must all be handled atomically. Never perform a file operation without completing every step in the checklist.
data-api-builder/
āāā breadcrumb/toc.yml # Breadcrumb navigation
āāā TOC.yml # Main table of contents
āāā index.yml # Landing page (superset of links)
āāā overview.md # Product overview
āāā .openpublishing.redirection.json # Redirect rules (repo root)
āāā command-line/
ā āāā index.yml # CLI landing page
āāā deployment/
ā āāā index.yml # Deployment landing page
āāā concept/
ā āāā cache/
ā āāā config/
ā āāā database/
ā āāā graphql/
ā ā āāā index.yml # GraphQL landing page
ā āāā monitor/
ā āāā rest/
ā ā āāā index.yml # REST landing page
ā āāā security/
ā āāā index.yml # Security landing page
āāā configuration/
āāā mcp/
ā āāā index.yml # MCP landing page
āāā quickstart/
ā āāā index.yml # Quickstart landing page
āāā troubleshooting/
āāā vscode-extension/
ā āāā index.yml # VS Code extension landing page
āāā whats-new/
ā āāā index.yml # What's new landing page
āāā includes/ # Shared include snippets
āāā keywords/
āāā media/ # Root-level media (used by overview.md)
Complete every applicable step for each file operation. Do not skip steps.
git mv for renames and moves (preserves git history).git rm for deletions.media/old-name/), rename or move it too.includes/ folder that only it uses, delete them.../, ./, sibling references) inside the file itself ā the path depth may have changed.media/old-name/image.png ā media/new-name/image.png) inside the file.[!INCLUDE [...]]) inside the file.Search the entire repo for references to the old path. Every one of these files may need updating:
TOC.yml ā Update href: entries.index.yml (root landing page) ā Update url: entries.index.yml files (e.g., command-line/index.yml, deployment/index.yml) ā Update url: entries.breadcrumb/toc.yml ā Update topicHref: or tocHref: if applicable..md files ā Search with grep for the old filename across all .md files and update relative links..yml files ā Search for the old filename across all .yml files.overview.md or section index.md files ā These often link to sibling files.The redirect file is .openpublishing.redirection.json at the repo root.
{
"source_path_from_root": "/data-api-builder/old-path/old-file.md",
"redirect_url": "/azure/data-api-builder/new-path/new-file",
"redirect_document_id": false
}
redirect_url pointing to the old URL, update them to point to the new URL (avoids redirect chains).Get-Content .openpublishing.redirection.json -Raw | ConvertFrom-Json | Out-Null to confirm valid JSON..md file and delete orphans.grep for the old filename across all .md, .yml, and .json files. The only remaining matches should be source_path_from_root entries in the redirect file.source_path_from_root uses the format /data-api-builder/path/file.md (with leading slash, with .md).redirect_url uses the format /azure/data-api-builder/path/file (with leading slash, WITHOUT .md).redirect_document_id is false for moves/renames, true only when the old URL should transfer its document ID.command-line/ use the dab- prefix (e.g., dab-add.md, dab-init.md).how-to- or dab-.azure-container-apps.md, not aca.md).deployment/azure-app-service.md ā deployment/media/azure-app-service/). for all images.:::image DocFX syntax in any form.sibling-file.md).../concept/graphql/overview.md)..yml files use url: (relative) or href: (relative) ā no leading /azure/./azure/data-api-builder/.Use these to find all references before and after a file operation:
# Find all references to a filename
git --no-pager grep -n "old-filename" -- "*.md" "*.yml"
# Find redirect entries targeting the old URL
git --no-pager grep -n "old-path/old-filename" -- ".openpublishing.redirection.json"
# Verify no stale references remain after the operation
git --no-pager grep -n "old-filename" -- "*.md" "*.yml"
# Validate redirect JSON
Get-Content .openpublishing.redirection.json -Raw | ConvertFrom-Json | Out-Null; Write-Host "Valid JSON"
Always complete all steps before reporting the operation as done.
After completing the file operation, spin up a sub-agent using a different model to verify:
.md, .yml, and .json files.Evaluate the reviewer's feedback critically. Implement valid findings; discard nitpicks.
After implementing reviewer feedback, use the dab-docs-audit skill for a final compliance check.