Scan recent git commits for changes that affect user-facing behavior, then draft or update the corresponding documentation pages. Use when docs have fallen behind code changes, after a batch of features lands, or when preparing a release. Trigger keywords - update docs, draft docs, docs from commits, sync docs, catch up docs, doc debt, docs behind, docs drift.
Scan recent git history for commits that affect user-facing behavior and draft documentation updates for each.
NemoClaw).docs/ directory must exist with the current doc set.Before scanning commits, read docs/.docs-skip if it exists. This file lists features and commits that are merged but should not be documented yet (experimental, under review, etc.).
cat docs/.docs-skip
Parse these sections from the file:
skip-features: — substring patterns matched against commit messages and changed file paths. Any commit whose message or file list contains a listed string is excluded.skip-terms: — terms that must never appear in generated documentation. Check all drafted content against this list before writing. If a drafted sentence contains a skip-term, remove that sentence or the entire section. This is a hard gate — no skip-term may appear in any doc output.Ignore comment lines (starting with #) and inline comments (everything after #).
Keep the loaded skip list in memory for use throughout the skill execution and the whole documentation process.
Determine the commit range. The user may provide one explicitly (e.g., "since v0.1.0" or "last 30 commits"). If not, default to commits since the head of the main branch.
# Commits since a tag
git log v0.1.0..HEAD --oneline --no-merges
# Or last 50 commits
git log -50 --oneline --no-merges
Filter to commits that are likely to affect docs. Apply every rule below before proceeding. A commit excluded by any rule must not produce doc changes.
feat, fix, refactor, perf commits often change behavior. docs commits are already doc changes. chore, ci, test commits rarely need doc updates.nemoclaw/src/, nemoclaw-blueprint/, bin/, scripts/, or policy-related code are high-signal.test/, .github/, or internal-only modules.skip-commits, or whose commit message or changed file paths contain a skip-features substring. Report skipped commits in the final summary under a "Skipped (docs-skip)" heading.# Show files changed per commit to assess impact
git log v0.1.0..HEAD --oneline --no-merges --name-only
For each relevant commit, determine which doc page(s) it affects. Use this mapping as a starting point:
| Code area | Likely doc page(s) |
|---|---|
nemoclaw/src/commands/ (launch, connect, status, logs) | docs/reference/commands.md |
nemoclaw/src/commands/ (new command) | May need a new page or entry in docs/reference/commands.md |
nemoclaw/src/blueprint/ | docs/about/architecture.md |
nemoclaw/src/cli.ts or nemoclaw/src/index.ts | docs/reference/commands.md, docs/get-started/quickstart.md |
nemoclaw-blueprint/orchestrator/ | docs/about/architecture.md |
nemoclaw-blueprint/policies/ | docs/reference/network-policies.md |
nemoclaw-blueprint/blueprint.yaml | docs/about/architecture.md, docs/reference/inference-profiles.md |
scripts/ (setup, start) | docs/get-started/quickstart.md |
Dockerfile | docs/about/architecture.md |
| Inference-related changes | docs/reference/inference-profiles.md |
If a commit does not map to any existing page but introduces a user-visible concept, flag it as needing a new page.
For each commit that needs a doc update, read the full diff to understand the change:
git show <commit-hash> --stat
git show <commit-hash>
Extract:
Before editing, read the full target doc page to understand its current content and structure.
Identify where the new content should go. Follow the page's existing structure.
Before writing, verify that the commit was not excluded in Step 1. Do not draft content for commits matched by the skip list or for agent integrations not in the tested agent support matrix. After drafting, scan the content for any skip-terms from docs/.docs-skip. Remove any sentence or section that contains a skip-term. If in doubt, skip the commit and report it.
Write the doc update following these conventions:
console language with $ prompt prefix.When updating an existing page:
When creating a new page:
docs/.toctree in docs/index.md.After drafting all updates, present a summary to the user:
## Doc Updates from Commits
### Updated pages
- `docs/reference/commands.md`: Added `eject` command documentation (from commit abc1234).
- `docs/reference/network-policies.md`: Updated policy schema for new egress rule (from commit def5678).
### New pages needed
- None (or list any new pages created).
### Skipped (docs-skip)
- `feat(sandbox): add experimental-flag` (abc1234) — matched skip-features: "experimental-flag".
### Commits with no doc impact
- `chore(deps): bump typescript` (abc1234) — internal dependency, no user-facing change.
- `test: add launch command test` (def5678) — test-only change.
After making changes, build the docs locally:
make docs
Check for:
When the workflow produces a pull request, apply the documentation label so reviewers can identify doc-only changes:
gh pr edit <number> --add-label documentation
:::{warning} admonition.docs/.docs-skip. Remove the entry once the feature is ready to document.User says: "Catch up the docs for everything merged since v0.1.0."
git log v0.1.0..HEAD --oneline --no-merges --name-only.feat, fix, refactor, perf commits touching user-facing code.make docs to verify.