docs(skills): gate release tags on pre-tag docs - #6205
Conversation
E2E Advisor RecommendationRequired E2E: None Full advisor summaryE2E Recommendation AdvisorBase: Required E2E
Optional E2E
New E2E recommendations
|
E2E Target RecommendationRequired E2E targets: None Full E2E target advisor summaryE2E Target AdvisorBase: Required E2E targets
Optional E2E targets
Relevant changed files
|
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: CHILL Plan: Enterprise Run ID: 📒 Files selected for processing (5)
✅ Files skipped from review due to trivial changes (3)
📝 WalkthroughWalkthroughMaintainer release skill documentation and policy references are updated to require release-prep documentation (via a docs-update command) be merged or explicitly waived before generating the release plan, with regeneration required if merges land afterward. A corresponding policy test is added and an existing test's expected step number is updated. ChangesRelease-Prep Docs Gating
Estimated code review effort: 2 (Simple) | ~10 minutes Suggested labels: Suggested reviewers: 🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✨ Finishing Touches📝 Generate docstrings
🧪 Generate unit tests (beta)
Comment |
PR Review Advisor (Nemotron Ultra) — No blocking findingsMerge posture: No blocking advisor findings This is an automated, non-binding review; it still expects maintainers and agents to respond to each required or warning item. Treat suggestions as current-PR improvements when they touch changed code; defer only with maintainer rationale or a linked follow-up. A human maintainer must make the final merge decision. |
PR Review Advisor — No blocking findingsMerge posture: No blocking advisor findings This is an automated, non-binding review; it still expects maintainers and agents to respond to each required or warning item. Treat suggestions as current-PR improvements when they touch changed code; defer only with maintainer rationale or a linked follow-up. A human maintainer must make the final merge decision. |
There was a problem hiding this comment.
Actionable comments posted: 3
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In @.agents/skills/nemoclaw-maintainer-cut-release-tag/SKILL.md:
- Line 141: The housekeeping note references the wrong validation step; update
the Step 2 cross-reference in the release-tag instructions so it points to Step
4 instead. Adjust the wording in SKILL.md around the post-tag housekeeping
guidance to keep the sequence consistent with the release flow, without changing
the behavior of the script or the Step 5 guard around the semver tag and
workflow-managed latest.
In @.agents/skills/nemoclaw-maintainer-evening/SKILL.md:
- Line 65: The example path in the maintainer guide still uses the old
release-note naming, which conflicts with the new announcement-notes flow.
Update the “Announcement draft” reference in SKILL.md so it points to the
announcement-notes artifact instead of release-note-draft.md, keeping the
wording consistent with the renamed handoff terminology.
- Line 64: The final handoff summary currently includes “pending” in the Release
docs status line, but that status should only appear before tag confirmation.
Update the final handoff summary wording in SKILL.md to remove “pending” and
keep only merged or waived-with-reason so the post-cut summary reflects resolved
docs gating.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Path: .coderabbit.yaml
Review profile: CHILL
Plan: Enterprise
Run ID: 74cc6819-2a8f-4a94-beb1-27b168cc3b84
📒 Files selected for processing (2)
.agents/skills/nemoclaw-maintainer-cut-release-tag/SKILL.md.agents/skills/nemoclaw-maintainer-evening/SKILL.md
|
@miyoungc I think this PR is directionally right: release-prep docs are a real pre-tag condition. Looking at the broader release lifecycle, though, I suggest reshaping the flow around a clear freeze boundary:
The important sequencing issue is that the current flow generates I think all mutable readiness work should finish before the final release plan is generated:
Only after those conditions hold should There is also a release-state distinction worth spelling out. NemoClaw currently behaves approximately like:
If we keep that model, docs must gate the tag because the tag publishes them, while final exact-tag E2E/QA naturally gates Suggested ownership:
Two related findings may be better handled in follow-ups rather than expanding this PR:
One immediate test detail: The short version: complete or waive mutable release prerequisites first, generate the final plan last, then make tag creation deterministic and resumable. |
Code Coverage OverviewLanguages: TypeScript TypeScript / code-coverage/pluginThe overall coverage in the Show a code coverage summary of the most covered files.
TypeScript / code-coverage/cliThe overall coverage in the Show a code coverage summary of the most covered files.
Updated |
There was a problem hiding this comment.
🧹 Nitpick comments (1)
test/maintainer-skills-policy.test.ts (1)
89-114: 📐 Maintainability & Code Quality | 🔵 Trivial | ⚖️ Poor tradeoffTest asserts documentation substrings rather than observable maintainer-workflow behavior.
This test (and the file's established pattern) validates markdown prose via
toContain/indexOf, which is source-text/implementation-lock-in rather than behavioral verification of the skill's actual runtime effect. Since these are doc-only skill files without executable logic, this may be an accepted convention in this repo, but per path instructions tests should "Prefer observable outcomes through the public boundary over source-text ... assertions." Given the doc-only nature of the underlying skills, this is likely unavoidable here, but worth confirming that no executable readiness-checking logic exists that could be tested more robustly instead.As per path instructions,
**/*.test.{ts,js,mts,mjs,cts,cjs}: "Prefer observable outcomes through the public boundary over source-text, private-shape, or mock-call assertions."🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@test/maintainer-skills-policy.test.ts` around lines 89 - 114, The maintainer-skills-policy test is asserting markdown substrings and text ordering in skill docs instead of observable workflow behavior. Update the test around maintainer release-plan readiness to exercise the public boundary or a runtime outcome if any executable readiness-checking path exists, using the referenced `read(...)`/`expect(...)` checks only where no behavioral API is available. If there is no executable logic behind `nemoclaw-maintainer-evening`, `cut-release-tag`, or `release-train.md`, keep the doc assertions but narrow them to the minimum needed and avoid implying behavioral verification.Source: Path instructions
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Nitpick comments:
In `@test/maintainer-skills-policy.test.ts`:
- Around line 89-114: The maintainer-skills-policy test is asserting markdown
substrings and text ordering in skill docs instead of observable workflow
behavior. Update the test around maintainer release-plan readiness to exercise
the public boundary or a runtime outcome if any executable readiness-checking
path exists, using the referenced `read(...)`/`expect(...)` checks only where no
behavioral API is available. If there is no executable logic behind
`nemoclaw-maintainer-evening`, `cut-release-tag`, or `release-train.md`, keep
the doc assertions but narrow them to the minimum needed and avoid implying
behavioral verification.
ℹ️ Review info
⚙️ Run configuration
Configuration used: Path: .coderabbit.yaml
Review profile: CHILL
Plan: Enterprise
Run ID: 625d692f-3671-4a0e-93e5-5ffe72e968eb
📒 Files selected for processing (5)
.agents/skills/nemoclaw-maintainer-cut-release-tag/SKILL.md.agents/skills/nemoclaw-maintainer-evening/SKILL.md.agents/skills/nemoclaw-maintainer-policies/references/release-train.md.agents/skills/nemoclaw-maintainer-release-notes/SKILL.mdtest/maintainer-skills-policy.test.ts
✅ Files skipped from review due to trivial changes (2)
- .agents/skills/nemoclaw-maintainer-release-notes/SKILL.md
- .agents/skills/nemoclaw-maintainer-policies/references/release-train.md
🚧 Files skipped from review as they are similar to previous changes (2)
- .agents/skills/nemoclaw-maintainer-evening/SKILL.md
- .agents/skills/nemoclaw-maintainer-cut-release-tag/SKILL.md
|
Auto-sync is disabled for draft pull requests in this repository. Workflows must be run manually. Contributors can view more details about this message here. |
|
@cv incorporated your feedback and trimmed down. Would you review again? |
<!-- markdownlint-disable MD041 --> ## Summary This PR makes release-prep docs a small explicit prerequisite before cutting a NemoClaw tag. Maintainers should run `/nemoclaw-contributor-update-docs for vX.Y.Z` before `release:plan`, and regenerate the plan if `origin/main` changes afterward. ## Related Issue None. ## Changes - Add the explicit `/nemoclaw-contributor-update-docs for vX.Y.Z` pre-tag invocation to the docs-update skill. - Add a short pre-tag docs note to `nemoclaw-maintainer-evening` before it loads `cut-release-tag`. - Add the same docs-before-plan precondition to `nemoclaw-maintainer-cut-release-tag` and the release-train policy reference. - Add a narrow maintainer-skill policy regression test for the docs-before-plan ordering. ## Type of Change - [ ] Code change (feature, bug fix, or refactor) - [ ] Code change with doc updates - [ ] Doc only (prose changes, no code sample modifications) - [x] Doc only (includes code sample changes) ## Quality Gates <!-- Check all that apply. For any "covered by existing tests", "not applicable", or waiver entry, add a brief justification on the same line or in the Changes section. --> - [x] Tests added or updated for changed behavior - [ ] Existing tests cover changed behavior — justification: - [ ] Tests not applicable — justification: - [ ] Docs updated for user-facing behavior changes - [x] Docs not applicable — justification: this updates contributor and maintainer workflow guidance, not user-facing product documentation. - [ ] Sensitive paths changed (security, policy, credentials, preflight, onboarding, inference, runner, sandbox, or messaging) - [ ] Sensitive-path review completed or maintainer-approved waiver recorded — reviewer/approval link/justification: - [ ] Non-success, skipped, or missing CI check accepted by maintainer — check name, approval link, and follow-up issue: ## Verification <!-- Check each item you ran and confirmed. Leave unchecked items you skipped. Doc-only changes do not require npm test unless you ran it. --> - [x] PR description includes the DCO sign-off declaration and every commit appears as `Verified` in GitHub - [ ] Git hooks passed during commit and push, or `npx prek run --from-ref main --to-ref HEAD` passes — latest cleanup commits were pushed with `--no-verify` per maintainer request; relying on remote CI. - [x] Targeted tests pass for changed behavior — `npm test -- test/maintainer-skills-policy.test.ts` - [ ] Full `npm test` passes (broad runtime changes only) - [x] Quality Gates section completed with required justifications or waivers - [x] No secrets, API keys, or credentials committed - [ ] `npm run docs` builds without warnings (doc changes only) — ran `npm run docs`; it completed successfully, but Fern reported 1 hidden warning, so this is left unchecked. - [ ] Doc pages follow the [style guide](https://github.com/NVIDIA/NemoClaw/blob/main/docs/CONTRIBUTING.md) (doc changes only) - [ ] New doc pages include SPDX header and frontmatter (new pages only) --- <!-- DCO sign-off is required in this PR description, and every commit must appear as Verified in GitHub. Run: git config user.name && git config user.email --> Signed-off-by: Miyoung Choi <miyoungc@nvidia.com> <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit * **New Features** * Added a required pre-tag documentation step before generating final release plans. * Clarified when release-prep documentation should be run for a versioned release. * **Bug Fixes** * Prevented release plans from being created too early. * Ensured release plans are regenerated if release-related changes land afterward. <!-- end of auto-generated comment: release notes by coderabbit.ai -->
Summary
This PR makes release-prep docs a small explicit prerequisite before cutting a NemoClaw tag.
Maintainers should run
/nemoclaw-contributor-update-docs for vX.Y.Zbeforerelease:plan, and regenerate the plan iforigin/mainchanges afterward.Related Issue
None.
Changes
/nemoclaw-contributor-update-docs for vX.Y.Zpre-tag invocation to the docs-update skill.nemoclaw-maintainer-eveningbefore it loadscut-release-tag.nemoclaw-maintainer-cut-release-tagand the release-train policy reference.Type of Change
Quality Gates
Verification
Verifiedin GitHubnpx prek run --from-ref main --to-ref HEADpasses — latest cleanup commits were pushed with--no-verifyper maintainer request; relying on remote CI.npm test -- test/maintainer-skills-policy.test.tsnpm testpasses (broad runtime changes only)npm run docsbuilds without warnings (doc changes only) — rannpm run docs; it completed successfully, but Fern reported 1 hidden warning, so this is left unchecked.Signed-off-by: Miyoung Choi miyoungc@nvidia.com
Summary by CodeRabbit
New Features
Bug Fixes