---
name: doc-sync
description: 'Audit and synchronize documentation across website, READMEs, and docs/. Use when verifying docs are aligned after feature changes, SDK updates, CLI changes, or release preparation. Detects drift between website content, markdown docs, and SDK READMEs.'
argument-hint: 'feature area to audit or "full" for complete audit'
---

# Doc Sync: Cross-Surface Documentation Alignment

Audit and synchronize documentation across all surfaces to prevent drift.

## When to Use

- After adding or changing a feature, CLI flag, or SDK capability
- After updating website content (DocsContent.astro, i18n strings)
- Before a release to verify all docs reflect current behavior
- When a code review flags outdated documentation

## Documentation Surfaces

| Surface | Location | Purpose |
|---------|----------|---------|
| **Website docs** | `src/website/src/components/DocsContent.astro` | User-facing docs page with code examples |
| **Website i18n** | `src/website/src/i18n/{en,ca,es}.ts` | Translated strings for website |
| **Root README** | `README.md` | Project overview, install, quick start |
| **GHA README** | `github-action/README.md` | GitHub Action usage and inputs |
| **CLI docs** | `docs/pull-command.md`, `docs/push-command.md` | CLI command reference |
| **GHA docs** | `docs/github-action.md` | GitHub Action detailed docs |
| **SDK READMEs** | `src/sdks/{dotnet,python,typescript}/README.md` | SDK-specific install and usage |
| **SDK examples** | `examples/sdk/{dotnet,python}/README.md` | Example code with explanations |
| **Changelogs** | `docs/changelogs/{cli,gha,sdk-*}.md` | Per-component changelogs |
| **ROADMAP** | `ROADMAP.md` | Feature status tracking |

## Procedure

### 1. Identify Scope

Determine which feature area to audit:

- **CLI**: root README, `docs/pull-command.md`, `docs/push-command.md`, website DocsContent
- **GHA**: `github-action/README.md`, `docs/github-action.md`, website DocsContent
- **SDK (per runtime)**: `src/sdks/{runtime}/README.md`, `examples/sdk/{runtime}/`,
  website DocsContent + Sdks.astro, i18n strings
- **Full**: all surfaces

### 2. Extract Source of Truth

For each feature area, identify the authoritative source:

| Area | Source of Truth |
|------|-----------------|
| CLI flags/options | `src/envilder/apps/cli/entry/Cli.ts` |
| GHA inputs | `github-action/action.yml` |
| SDK public API | SDK source code (`src/sdks/{runtime}/`) |
| Providers | `src/envilder/core/infrastructure/` |
| Map-file format | `envilder.json` (example) + copilot-instructions |

### 3. Audit Each Surface

For each documentation surface, check:

- [ ] **Code examples compile/run**: verify syntax matches current API
- [ ] **CLI flags match**: documented flags exist in `Cli.ts`
- [ ] **GHA inputs match**: documented inputs exist in `action.yml`
- [ ] **SDK methods match**: documented methods exist in source
- [ ] **Install commands correct**: package names, versions, registries
- [ ] **Provider names consistent**: `aws`/`azure` naming across all docs
- [ ] **Links not broken**: internal cross-references resolve
- [ ] **i18n complete**: all 3 locales (en, ca, es) have matching keys

### 4. Report Drift

Present findings in a structured table:

```text
## Documentation Drift Report

| Surface | File | Issue | Severity |
|---------|------|-------|----------|
| Website | DocsContent.astro | Missing --profile flag in CLI section | High |
| SDK README | src/sdks/python/README.md | load() example uses old API | High |
| Root README | README.md | Version badge outdated | Low |

## Alignment Actions

1. {file}: {what to update}
2. {file}: {what to update}
```

### 5. Apply Fixes

For each drift item:

1. Update the documentation surface
2. If i18n strings changed, update all 3 locales
3. Verify the fix against the source of truth

### 6. Validate

- Run `pnpm lint` to check for formatting issues
- For website changes, verify the build: check i18n key consistency

## Cross-Reference Matrix

Use this matrix to ensure consistency when updating a feature:

| When you change... | Also update... |
|--------------------|----------------|
| CLI flag in `Cli.ts` | `docs/pull-command.md` or `docs/push-command.md`, root README, DocsContent, i18n |
| GHA input in `action.yml` | `github-action/README.md`, `docs/github-action.md`, website DocsContent, i18n |
| SDK public API | SDK README, examples README, website DocsContent + Sdks.astro, i18n  |
| New SDK added | Run full `sdk-release-checklist` skill (version badge, changelog, i18n, docs) |
| SDK version bump | Bump canonical source file; changelog entry; website picks up version at build time |
| New provider | All provider listings: root README, website Providers.astro, DocsContent, SDK READMEs |
| Map-file format | Root README, all SDK READMEs, website DocsContent |
| ROADMAP status | `ROADMAP.md`, website Roadmap.astro |

## Constraints

- Never invent features not present in code
- Verify claims against source code before writing
- Preserve existing document structure and tone
- Keep code examples minimal and runnable
