Skip to content

feat: nemoclaw maintainer community response skill#1861

Open
wscurran wants to merge 48 commits intomainfrom
feat/community-response-skill
Open

feat: nemoclaw maintainer community response skill#1861
wscurran wants to merge 48 commits intomainfrom
feat/community-response-skill

Conversation

@wscurran
Copy link
Copy Markdown
Contributor

@wscurran wscurran commented Apr 14, 2026

Summary

  • Adds .agents/skills/nemoclaw-maintainer-community-response/ — a Claude Code skill for drafting and logging community-facing responses to GitHub issues and PRs
  • Adds docs/project-workflow.md — project board status semantics, three-tier label structure, board setup instructions for Enhancement Parking and Platform/Integration views
  • Updates docs/maintainer-guide.md and docs/maintainer-guide-snippet.md — expanded from 4 to 9 response situations including duplicates, feature requests, Discussions redirects, triage acknowledgment, and needs-info (two-situation pattern)
  • Skill reads live guide docs at runtime so updating the guide updates skill behavior without touching the skill file

Skill behavior

  • Recommends action (comment, close, request changes, rebase nudge, escalate) and project board status for each item
  • Suggests labels for feature requests using the three-tier label hierarchy (enhancement + sub-label + dimension)
  • Applies status: rebase automatically on rebase nudge comments; notes joint rebase when the same contributor has multiple stale PRs
  • Applies status: needs-info for first-contact info requests; closes after 7 days with no response

Test plan

  • Invoke skill in a Claude Code session with a sample issue or PR
  • Verify guide docs are read at runtime (not cached)
  • Verify response log is written to daily-rhythm activity folder
  • Verify status: rebase label applied on rebase nudge
  • Verify project board status suggestions match project-workflow.md

🤖 Generated with Claude Code

Summary by CodeRabbit

  • New Features

    • Added a user-invocable maintainer skill to draft community-facing issue/PR responses, recommend actions and project status, enforce response constraints, handle rebase/needs-info flows, and append approved replies to the community response log.
  • Documentation

    • Added comprehensive maintainer docs: full guide, quick-reference templates, project workflow with board status semantics & promotion rules, three-tier label taxonomy, community-first tone guidance, and a development log recording decisions and outcomes (44+ issues closed in initial session).

cv and others added 29 commits April 7, 2026 13:45
…salvage

A suite of 8 agent skills and 4 TypeScript scripts that automate the
NemoClaw maintainer workflow: triage open PRs, check merge gates,
salvage near-ready contributions, detect hotspots, and close test gaps.

Skills:
- nemoclaw-maintainer-loop: orchestrator for /loop integration
- nemoclaw-maintainer-triage: deterministic queue builder (calls gh-pr-merge-now)
- nemoclaw-maintainer-merge-gate: 4-gate approval checker
- nemoclaw-maintainer-salvage-pr: near-ready PR rescue with fork push support
- nemoclaw-maintainer-security-sweep: security-focused review routing
- nemoclaw-maintainer-test-gaps: targeted test coverage for risky code
- nemoclaw-maintainer-hotspots: churn/conflict pressure detection
- nemoclaw-maintainer-sequence-work: large issue decomposition

Scripts (node --experimental-strip-types):
- triage.ts: calls gh-pr-merge-now, enriches with risky-area detection, scores
- check-gates.ts: CI, conflicts, CodeRabbit, risky-code-tested gates
- hotspots.ts: 30-day git churn + open PR file overlap analysis
- state.ts: local state file CRUD (init, exclude, history, set-queue)

Signed-off-by: Carlos Villela <cvillela@nvidia.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Replace 9 separate maintainer skills with 3 phase-based skills matching
the daily ship cycle: morning (triage + label), day (execute + loop),
evening (handoff + tag). Inner workflows become reference docs under
the day skill with progressive disclosure.

Key changes:
- Extract shared.ts to deduplicate RISKY_PATTERNS, run(), scoring weights
- Fail-closed gate checker (was defaulting to pass on API error)
- Named scoring constants with documented rationale
- Add PR-REVIEW-PRIORITIES.md codifying the review priority order
- Add version-label-based daily cadence (label items with target tag,
  bump stragglers at EOD, cut patch tag for overnight QA)
- stderr logging in shell helpers instead of silent swallowing

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
…w issues

New scripts for deterministic operations that were previously inline:
- version-target.ts: compute next patch version + find stragglers
- version-progress.ts: shipped vs open for a version label
- bump-stragglers.ts: move open items from one version label to next
- handoff-summary.ts: commits since last tag + risky areas + QA focus

Review fixes:
- Remove duplicated scoring table from morning (reference PR-REVIEW-PRIORITIES.md)
- Security sweep uses triage-identified items instead of re-running find-review-pr
- Evening uses state.ts script command for state updates
- Morning uses version-target.ts for straggler discovery (no ambiguous placeholder)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Both version-progress.ts and triage.ts now include ageDays as a
computed field in their JSON output, so triage tables never depend
on Claude doing date arithmetic from raw ISO timestamps.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
At a daily ship cadence most PRs are <24h old, making ageDays show 0
for everything. ageHours gives useful resolution.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Remove external gh-pr-merge-now dependency from triage script. The
script now fetches open PRs directly via gh CLI, classifies them as
merge-ready / near-miss / blocked, and scores them using the same
weighted model.

Key changes:
- Fetch basic PR data first (lightweight), then enrich top candidates
  with statusCheckRollup individually to avoid GraphQL timeouts
- Add single retry with 3s delay for transient GitHub API failures
- Add labels array to QueueItem output for version-label awareness
- Classification logic: merge-now requires approved + green CI + clean
  merge state; near-miss allows up to 2 fixable blockers

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
GitHub's GraphQL API returns 502 when requesting too many PRs with
rich fields (statusCheckRollup, mergeStateStatus, reviewDecision).
Limit to 50 most recent PRs which is sufficient for daily triage.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Three bugs in the triage classifier:
- BLOCKED merge state was treated as a conflict (it means "missing
  required reviews", not a conflict — DIRTY is the actual conflict)
- StatusContext checks (CodeRabbit) use state/context fields, not
  conclusion/status — handle both shapes from gh CLI
- No bucket existed between "approved + merge-ready" and "needs
  salvage", so most OSS PRs fell to blocked

Add review-ready bucket (green CI, not draft, no conflicts) scored
at +35, between merge-now (+40) and near-miss (+30). Also simplify
by fetching statusCheckRollup in the initial query (works at limit 50)
instead of per-PR enrichment.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Replace single gh pr list (capped at 50 by GraphQL) with gh api
--paginate using the REST endpoint. Fetches all open PRs as lightweight
NDJSON, then enriches only the top candidates with CI/review data via
per-PR GraphQL calls.

Previous: 50 PRs visible, missed older security PRs
Now: all 243 open PRs visible, oldest items no longer invisible to triage

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
The salvage workflow was biased toward "ask the contributor and wait"
which blocks the daily ship cadence. Now defaults to maintainer does
the work (rebase, fix conflicts, add tests, push). Only defer to
contributor when intent is ambiguous from the diff.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
GitHub invalidates approvals when new commits are pushed. Approving a
PR with conflicts is wasted effort since the rebase push resets it.

Merge gate now explicitly: do not approve DIRTY PRs. Correct sequence
is salvage (rebase) → CI green → approve → report ready for merge.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
PRs with GitHub labels now score higher in triage:
- "security" label: +15
- "priority: high" label: +10

This produces clear score tiers: security+high+risky (80) > high+risky
(65) > unlabeled+risky (55) > unlabeled clean (35). Previously all
review-ready PRs with risky files scored identical 55.

Also fix stale return type in scoreItem and nextAction text.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
The CLAUDE.md guideline said all .agents/skills/nemoclaw-*/*.md is
autogenerated and should never be edited directly. This is true for
docs-derived skills but not for the hand-authored maintainer skills
(morning/day/evening). CodeRabbit was flagging valid edits based on
this overly broad rule.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Replace the overly broad "nemoclaw-*/*.md is autogenerated" rule with
an explicit list of the skills that docs-to-skills.py actually produces.
All other skills (maintainer-*, cut-release-tag, etc.) are clearly
documented as hand-authored.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Main replaced CLAUDE.md with a symlink to AGENTS.md and reorganized
skills into audience buckets (nemoclaw-user-*, nemoclaw-maintainer-*,
nemoclaw-contributor-*). The narrower autogenerated rule (nemoclaw-user-*
only) is already in main's AGENTS.md, making our explicit-list change
redundant. Accept main's version.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Add parseStringArg/parseIntArg helpers to shared.ts for safe CLI arg
  parsing with validation and fallback defaults. Update all 6 scripts.
- Wrap JSON.parse in state.ts cmdSetQueue/cmdSetHotspots with try-catch
  for clear error on malformed piped input.
- Fix cmdExclude docstring to match behavior (PR-only, not PR+issue).
- Document enrichment cap (limit*3) as intentional in triage.ts.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
… errors

Three CodeRabbit findings on version-target.ts:
- Future version labels (e.g. v0.0.11) were incorrectly flagged as
  stragglers. Now uses semver comparison (compareSemver < 0) to only
  catch labels older than the target.
- Empty catch blocks silently hid gh parse failures. Now logs to stderr.
- Documented that --repo controls gh queries while git tags always come
  from the local checkout.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Adds the community engagement guide (full + snippet), the nemoclaw-maintainer-community-response agent skill, and gitignores .nemoclaw-maintainer/ for local response logs.

Guide covers 9 situations: won't-fix, superseded PR, poorly designed PR, duplicates, feature requests, Discussion redirects, triage acknowledgment, needs-info (label + close), and response time norms.

Skill produces a recommended action + draft comment for each item, logs approved responses locally.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Maps each situation to the correct NemoClaw Development Tracker project
status (Won't Fix, Duplicate, Backlog, In Progress, Needs Review, Done,
NVQA, No Status) so maintainers set the right status instead of defaulting
to Done.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…flow

Adds docs/project-workflow.md covering:
- Project board status semantics (No Status → Backlog → In Progress → Done)
- Three-tier label structure (Type + Sub-type + Dimension)
- Step-by-step board setup for Enhancement Parking and Platform/Integration views
- Main board filter instructions (hide unreviewed enhancements)

Updates community response skill to read project-workflow.md at runtime,
suggest the correct label combination for feature requests, and set
project status to No Status (not Backlog) for new unreviewed items.

Updates maintainer guide § 6 and snippet to match.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Log now saves to ~/development/daily-rhythm/activity/nemoclaw-community-responses.md
so it is persisted to GitLab over time rather than staying local in the NemoClaw repo.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…ished

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
PRs requiring rebase or author check-in now use the rebase nudge action,
which posts a comment and applies status: needs-info via gh pr edit.
Follows the existing 7-day needs-info closure policy.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@coderabbitai
Copy link
Copy Markdown
Contributor

coderabbitai bot commented Apr 14, 2026

Note

Reviews paused

It looks like this branch is under active development. To avoid overwhelming you with review comments due to an influx of new commits, CodeRabbit has automatically paused this review. You can configure this behavior by changing the reviews.auto_review.auto_pause_after_reviewed_commits setting.

Use the following commands to manage reviews:

  • @coderabbitai resume to resume automatic reviews.
  • @coderabbitai review to trigger a single review.

Use the checkboxes below for quick actions:

  • ▶️ Resume reviews
  • 🔍 Trigger review
📝 Walkthrough

Walkthrough

Adds a NemoClaw maintainer community-response skill and DEVLOG, plus three documentation pages (quick-reference snippet, full maintainer guide, and project-workflow) that define classification, response templates, project-status semantics, label taxonomy, board views, runtime-doc reads, and activity logging.

Changes

Cohort / File(s) Summary
Community Response Skill
.agents/skills/nemoclaw-maintainer-community-response/SKILL.md, .agents/skills/nemoclaw-maintainer-community-response/DEVLOG.md
New user-invocable skill and DEVLOG: reads maintainer docs at runtime, classifies issues/PRs into defined situations, recommends actions and project status, drafts constrained responses, suggests label/PR edits (e.g., status: rebase), and appends standardized activity log entries; DEVLOG records decisions and initial outcomes.
Maintainer Guides
docs/maintainer-guide.md, docs/maintainer-guide-snippet.md
Adds full maintainer guide and quick-reference snippet with templates, required label/status mappings, triage and needs-info flows (including day-based rebase flow), PR/security handling, duplicate/redirect rules, feature-request routing, and response-time targets.
Project Workflow Reference
docs/project-workflow.md
New project-workflow doc defining GitHub Projects statuses and promotion flow (No StatusBacklogIn Progress), three-tier label taxonomy (Tier 1 issue types, Tier 2 enhancement sub-types, Tier 3 dimension labels), project view configuration guidance, and a triage checklist.

Sequence Diagram(s)

sequenceDiagram
    participant User as User
    participant Skill as NemoClaw Skill
    participant Docs as Reference Docs
    participant GitHub as GitHub API
    participant Log as Activity Log

    User->>Skill: Invoke skill with issue/PR context
    Skill->>Docs: Read `docs/maintainer-guide.md` & `docs/project-workflow.md`
    Skill-->>Skill: Classify item & select recommended action/status
    Skill->>User: Present recommended action, draft response, label edits
    User->>Skill: Approve recommendations
    Skill->>GitHub: Post comment / edit labels / modify PR
    Skill->>Log: Append standardized entry to daily-rhythm activity file
    GitHub-->>User: Reflect comment/label changes
Loading

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~25 minutes

Poem

🐰 I hopped through docs and labels bright,
I taught a skill to answer right.
Classify, draft, then log the deed,
One tidy hop for every need.
Cheers — I nibble issues till they're light.

🚥 Pre-merge checks | ✅ 3
✅ Passed checks (3 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title accurately describes the main change: adding a new maintainer skill for handling community responses to GitHub issues and PRs, which is the primary focus of this PR.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch feat/community-response-skill

Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link
Copy Markdown
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 4

🧹 Nitpick comments (7)
docs/maintainer-guide-snippet.md (3)

19-25: Reduce routine bold emphasis in the intro checklist.

This block overuses bold for non-warning statements. LLM pattern detected.

As per coding guidelines, "Unnecessary bold on routine instructions ... should be flagged. LLM pattern detected."

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@docs/maintainer-guide-snippet.md` around lines 19 - 25, The checklist
fragment overuses bold for routine items (e.g., "**Always explain why**",
"**Acknowledge contributors**", "**Security reporters get credit**", "**Be
specific when declining**", "**Route, don't reject**", "**Name what you need**")
which triggers an LLM-style formatting flag; update the snippet to remove or
reduce bold on non-critical routine instructions by converting those bolded
phrases to plain text (or reserve bold only for true warnings/critical actions),
keeping emphasis only where necessary and ensuring the list remains clear and
consistent.

28-28: Use H2 section anchors and keep H3 for subsections.

This page jumps straight into H3 headings. Add H2-level section structure to match the docs page layout rules.

As per coding guidelines, "Sections use H2 and H3, each starting with an introductory sentence."

Also applies to: 40-40, 52-52, 62-62, 70-70, 82-82, 88-88, 94-94, 106-106

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@docs/maintainer-guide-snippet.md` at line 28, The document uses H3 headings
like "Closing Won't Fix / Out of Scope" without a parent H2; add an H2 section
header (e.g., "Resolution and Scope" or a clear H2 that introduces the group)
immediately before this H3 and include one introductory sentence for the H2 as
per the style guide, then keep "Closing Won't Fix / Out of Scope" as an H3
subsection under that H2; apply the same pattern for the other mentioned
headings at lines 40, 52, 62, 70, 82, 88, 94, and 106 so each H3 has a preceding
H2 with an intro sentence.

36-36: Split this into one sentence per source line.

This line contains multiple sentences; docs style requires one sentence per line for cleaner diffs.

As per coding guidelines, "One sentence per line in source (makes diffs readable). Flag paragraphs where multiple sentences appear on the same line."

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@docs/maintainer-guide-snippet.md` at line 36, The single source line
containing four sentences should be split so each sentence is on its own source
line; locate the line starting "Thanks for raising this. After review, we're
closing as **[label]** because [one sentence]. See
[CONTRIBUTING.md](../CONTRIBUTING.md) for scope guidance. We appreciate you
taking the time." and break it into four lines: "Thanks for raising this."
"After review, we're closing as **[label]** because [one sentence]." "See
[CONTRIBUTING.md](../CONTRIBUTING.md) for scope guidance." "We appreciate you
taking the time." preserving punctuation, emphasis and the link text exactly as
shown.
docs/maintainer-guide.md (2)

23-29: Trim bold usage in routine checklist statements.

This section uses bold emphasis for normal instructions instead of warnings/UI tokens. LLM pattern detected.

As per coding guidelines, "Unnecessary bold on routine instructions ... should be flagged. LLM pattern detected."

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@docs/maintainer-guide.md` around lines 23 - 29, The checklist items ("Always
explain why", "Acknowledge contributors", "Security reporters get credit", "Be
specific when declining", "Route, don't reject", "Name what you need") use bold
for routine instructions; remove the bold markup around these normal checklist
statements so they are plain text (reserve bold only for true warnings or UI
token names), keep the phrasing and punctuation unchanged, and ensure consistent
styling across the list in docs/maintainer-guide.md.

32-32: Drop numeric prefixes from section titles.

Numbered section headings violate the documentation heading style rules.

As per coding guidelines, "Do not number section titles. Flag 'Section 1: ...', 'Step 3: ...', etc."

Also applies to: 58-58, 80-80, 107-107, 122-122, 139-139, 166-166, 181-181, 196-196, 219-219

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@docs/maintainer-guide.md` at line 32, The heading "## 1. Closing Issues as
Won't Fix or Out of Scope" (and other headings that start with "## <number>.
...") violate the docs style—remove the numeric prefixes so the heading reads
"## Closing Issues as Won't Fix or Out of Scope" and apply the same change to
all other numbered section titles that match the pattern "## <number>. ..." to
ensure consistent non-numbered headings; also update any Table of Contents or
cross-references that relied on the numeric form to use the new heading text.
docs/project-workflow.md (2)

125-125: Avoid colons in section titles.

View 1: Enhancement Parking and View 2: Platform & Integration Requests should be retitled without colons.

As per coding guidelines, "No colons in titles. Flag 'Inference: Cloud and Local' — should be 'Cloud and Local Inference.'"

Also applies to: 135-135

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@docs/project-workflow.md` at line 125, Rename the section headings that
contain colons to remove the colon and adjust wording: change "View 1:
Enhancement Parking" to "View 1 Enhancement Parking", change "View 2: Platform &
Integration Requests" to "View 2 Platform & Integration Requests", and change
"Inference: Cloud and Local" to "Cloud and Local Inference"; update any matching
header strings in docs/project-workflow.md so they follow the "no colons in
titles" guideline and preserve surrounding punctuation/formatting.

23-23: Remove numeric prefixes from section headings.

These headings use numbered titles (1., 2., etc.), which violates the docs heading style.

As per coding guidelines, "Do not number section titles. Flag 'Section 1: ...', 'Step 3: ...', etc."

Also applies to: 53-53, 121-121, 162-162

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@docs/project-workflow.md` at line 23, Remove numeric prefixes from section
headings that currently include leading numbers (e.g., change "## 1. Project
Status Semantics" to "## Project Status Semantics"); edit all other headings
flagged (the ones starting with "## <number>. ...") to drop the numeric prefix
so they read as plain titles (for example replace "## 2. ..." and "## 3. ..."
with "## ..."); ensure no section headings contain leading numbers anywhere in
the document to match the docs heading style.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@docs/maintainer-guide.md`:
- Line 74: The markdown link target "../SECURITY.md" (anchor text "coordinated
disclosure process") in docs/maintainer-guide.md is not resolvable by the docs
toolchain; replace that relative target with a docs-resolvable path (for example
"SECURITY.md" or "/SECURITY.md" or an absolute URL) so the cross-reference
builds correctly, and apply the same change to the other occurrence mentioned
(the one at the second reported location).
- Line 3: Frontmatter title ("NemoClaw Maintainer Guide") does not exactly match
the H1 heading; update the document so the top-level H1 text is exactly
"NemoClaw Maintainer Guide" (matching capitalization, spacing and punctuation)
so it equals the frontmatter title.page value, and apply the same fix to the
other occurrence noted (the H1 at the other location referenced).

In `@docs/project-workflow.md`:
- Around line 38-44: The fenced code block containing the workflow diagram ("No
Status → Backlog → In Progress → Done ... Duplicate (superseded)") is missing a
language tag; update the triple-backtick fence to include a language (e.g., add
`text` or `plain`) so the block becomes a typed fenced code block and satisfies
the docs lint rule for code block language.
- Line 3: The H1 heading in the Markdown does not exactly match the frontmatter
title "NemoClaw Project Workflow Reference"; update the H1 (the top-level "#
..." heading) to match the frontmatter title exactly (including capitalization
and punctuation) or vice versa by updating the frontmatter `title` value so both
are identical; ensure the first-level heading and `title` frontmatter are
strictly identical.

---

Nitpick comments:
In `@docs/maintainer-guide-snippet.md`:
- Around line 19-25: The checklist fragment overuses bold for routine items
(e.g., "**Always explain why**", "**Acknowledge contributors**", "**Security
reporters get credit**", "**Be specific when declining**", "**Route, don't
reject**", "**Name what you need**") which triggers an LLM-style formatting
flag; update the snippet to remove or reduce bold on non-critical routine
instructions by converting those bolded phrases to plain text (or reserve bold
only for true warnings/critical actions), keeping emphasis only where necessary
and ensuring the list remains clear and consistent.
- Line 28: The document uses H3 headings like "Closing Won't Fix / Out of Scope"
without a parent H2; add an H2 section header (e.g., "Resolution and Scope" or a
clear H2 that introduces the group) immediately before this H3 and include one
introductory sentence for the H2 as per the style guide, then keep "Closing
Won't Fix / Out of Scope" as an H3 subsection under that H2; apply the same
pattern for the other mentioned headings at lines 40, 52, 62, 70, 82, 88, 94,
and 106 so each H3 has a preceding H2 with an intro sentence.
- Line 36: The single source line containing four sentences should be split so
each sentence is on its own source line; locate the line starting "Thanks for
raising this. After review, we're closing as **[label]** because [one sentence].
See [CONTRIBUTING.md](../CONTRIBUTING.md) for scope guidance. We appreciate you
taking the time." and break it into four lines: "Thanks for raising this."
"After review, we're closing as **[label]** because [one sentence]." "See
[CONTRIBUTING.md](../CONTRIBUTING.md) for scope guidance." "We appreciate you
taking the time." preserving punctuation, emphasis and the link text exactly as
shown.

In `@docs/maintainer-guide.md`:
- Around line 23-29: The checklist items ("Always explain why", "Acknowledge
contributors", "Security reporters get credit", "Be specific when declining",
"Route, don't reject", "Name what you need") use bold for routine instructions;
remove the bold markup around these normal checklist statements so they are
plain text (reserve bold only for true warnings or UI token names), keep the
phrasing and punctuation unchanged, and ensure consistent styling across the
list in docs/maintainer-guide.md.
- Line 32: The heading "## 1. Closing Issues as Won't Fix or Out of Scope" (and
other headings that start with "## <number>. ...") violate the docs style—remove
the numeric prefixes so the heading reads "## Closing Issues as Won't Fix or Out
of Scope" and apply the same change to all other numbered section titles that
match the pattern "## <number>. ..." to ensure consistent non-numbered headings;
also update any Table of Contents or cross-references that relied on the numeric
form to use the new heading text.

In `@docs/project-workflow.md`:
- Line 125: Rename the section headings that contain colons to remove the colon
and adjust wording: change "View 1: Enhancement Parking" to "View 1 Enhancement
Parking", change "View 2: Platform & Integration Requests" to "View 2 Platform &
Integration Requests", and change "Inference: Cloud and Local" to "Cloud and
Local Inference"; update any matching header strings in docs/project-workflow.md
so they follow the "no colons in titles" guideline and preserve surrounding
punctuation/formatting.
- Line 23: Remove numeric prefixes from section headings that currently include
leading numbers (e.g., change "## 1. Project Status Semantics" to "## Project
Status Semantics"); edit all other headings flagged (the ones starting with "##
<number>. ...") to drop the numeric prefix so they read as plain titles (for
example replace "## 2. ..." and "## 3. ..." with "## ..."); ensure no section
headings contain leading numbers anywhere in the document to match the docs
heading style.
🪄 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: Pro Plus

Run ID: 0baf0822-d4da-4c8a-b971-a52dcfa61ad8

📥 Commits

Reviewing files that changed from the base of the PR and between fb66546 and 12d014b.

📒 Files selected for processing (5)
  • .agents/skills/nemoclaw-maintainer-community-response/DEVLOG.md
  • .agents/skills/nemoclaw-maintainer-community-response/SKILL.md
  • docs/maintainer-guide-snippet.md
  • docs/maintainer-guide.md
  • docs/project-workflow.md

Comment thread docs/maintainer-guide.md
Comment thread docs/maintainer-guide.md Outdated
Comment thread docs/project-workflow.md
Comment thread docs/project-workflow.md Outdated
@github-actions
Copy link
Copy Markdown

🚀 Docs preview ready!

https://NVIDIA.github.io/NemoClaw/pr-preview/pr-1861/

Copy link
Copy Markdown
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 2

♻️ Duplicate comments (3)
docs/project-workflow.md (2)

38-44: ⚠️ Potential issue | 🟠 Major

Add a language tag to the fenced block.

Use a typed fence (for example text) for the promotion-flow block.

Proposed fix
-```
+```text
 No Status → Backlog → In Progress → Done
                 ↓
            Won't Fix (declined)
                 ↓
            Duplicate (superseded)
</details>

As per coding guidelines, "Missing SPDX header, broken cross-references, or incorrect code block language: flag as issues."

<details>
<summary>🤖 Prompt for AI Agents</summary>

Verify each finding against the current code and only fix it if needed.

In @docs/project-workflow.md around lines 38 - 44, The fenced diagram block
lacks a language tag; update the code fence surrounding the promotion-flow
diagram (the triple-backtick block containing "No Status → Backlog → In Progress
→ Done ... Duplicate (superseded)") to use a typed fence such as "text" (e.g.,

guidelines.

17-17: ⚠️ Potential issue | 🟡 Minor

Make H1 exactly match frontmatter title.

The H1 includes an em dash that is not in title.

As per coding guidelines, "H1 heading matches the title.page frontmatter value."

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@docs/project-workflow.md` at line 17, Update the top-level H1 so it exactly
matches the frontmatter key title.page (remove the em dash and any other
characters that differ); locate the document's H1 line (the line that currently
reads "NemoClaw — Project Workflow Reference") and change it to the exact string
from title.page so the H1 and the frontmatter title.page are identical.
docs/maintainer-guide.md (1)

17-17: ⚠️ Potential issue | 🟡 Minor

Match H1 exactly to frontmatter title.

The H1 includes “— Community Engagement” but title does not, so they are not identical.

As per coding guidelines, "H1 heading matches the title.page frontmatter value."

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@docs/maintainer-guide.md` at line 17, The H1 heading ("# NemoClaw Maintainer
Guide — Community Engagement") must exactly match the frontmatter title value
(the frontmatter key `title.page`/`title`); update the H1 to remove or add text
so it exactly equals the frontmatter `title.page` string (or alternatively
update the `title.page` value to match the existing H1) so the H1 and
`title.page` are identical.
🧹 Nitpick comments (6)
docs/maintainer-guide.md (2)

152-152: Use macOS instead of MacOS in the label example.

Update the sample label text to match the approved term.

As per coding guidelines, "Correct: ... Incorrect (flag these): ... macOS is required (not MacOS)."

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@docs/maintainer-guide.md` at line 152, Update the example Tier 3 dimension
label text by replacing the incorrect "Platform: MacOS" string with the approved
casing "Platform: macOS" so the sample label reads "Platform: macOS", keeping
the rest of the line ("Integration: Slack", "Provider: NVIDIA") unchanged.

32-219: Remove numeric prefixes from section headings.

Headings like ## 1. ... violate the docs heading style and should be plain text titles.

As per coding guidelines, "Do not number section titles. Flag 'Section 1: ...', 'Step 3: ...', etc."

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@docs/maintainer-guide.md` around lines 32 - 219, Several top-level section
headings include numeric prefixes (e.g., "## 1. Closing Issues as Won't Fix or
Out of Scope", "## 2. Merging a PR..." through "## 10. References"); remove the
numeric prefixes so headings read like "## Closing Issues as Won't Fix or Out of
Scope", "## Merging a PR That Makes Another PR Redundant", etc. Update every
heading that starts with "## <number>. " in this file to drop the "<number>. "
prefix and scan for any internal references that mention those numbered titles
so they point to the new non-numbered headings (adjust text or links as needed).
docs/maintainer-guide-snippet.md (1)

76-76: Correct OS casing in label examples.

Change Platform: MacOS to Platform: macOS.

As per coding guidelines, "Correct: ... macOS ... Incorrect (flag these): ... MacOS."

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@docs/maintainer-guide-snippet.md` at line 76, Update the label example text
that currently reads "Platform: MacOS" to use the correct casing "Platform:
macOS" (look for the string "Platform: MacOS" in the maintainer guide snippet
and replace it with "Platform: macOS").
docs/project-workflow.md (3)

91-91: Fix macOS casing in platform labels/examples.

Replace MacOS with macOS in both occurrences.

As per coding guidelines, "Correct: ... macOS ... Incorrect (flag these): ... MacOS."

Also applies to: 105-105

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@docs/project-workflow.md` at line 91, Replace the incorrect "MacOS" casing in
the platform labels/examples by changing all occurrences of the backticked
`Platform: MacOS` (and any other backticked `MacOS` mentions) to `macOS`; search
for the symbol string "Platform: MacOS" or plain "MacOS" in the document and
update both occurrences (including the second occurrence noted in the comment)
so they use the correct `macOS` casing.

125-153: Avoid colons in section titles.

Titles like ### View 1: Enhancement Parking should be rewritten without colons.

As per coding guidelines, "No colons in titles. Flag 'Inference: Cloud and Local' — should be 'Cloud and Local Inference.'"

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@docs/project-workflow.md` around lines 125 - 153, Headings in this file use
colons and must be rewritten without them; update the three headings "### View
1: Enhancement Parking", "### View 2: Platform & Integration Requests", and "###
Main Board (update existing)" to remove colons (e.g., "### View 1 Enhancement
Parking", "### View 2 Platform & Integration Requests", "### Main Board (update
existing)") and also update any other titled phrases following the same pattern
(for example change "Inference: Cloud and Local" to "Cloud and Local
Inference"); ensure any internal references or links to these headings are
adjusted to match the new titles.

23-162: Remove numbering from section headings.

Headings should not be prefixed with numeric indices.

As per coding guidelines, "Do not number section titles. Flag 'Section 1: ...', 'Step 3: ...', etc."

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@docs/project-workflow.md` around lines 23 - 162, Remove numeric prefixes from
the top-level section headings in docs/project-workflow.md: rename "## 1.
Project Status Semantics" to "## Project Status Semantics", "## 2. Label
Structure" to "## Label Structure", "## 3. Board Setup Instructions" to "##
Board Setup Instructions", and "## 4. Triage Checklist" to "## Triage
Checklist"; also strip any numbered prefixes on subheadings such as "### Tier 1
— Issue Type (always apply one)" only if they include leading numbers, leaving
the descriptive text (Tier 1, Tier 2, Promotion Flow, etc.) intact so heading
semantics and links remain consistent.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@docs/maintainer-guide-snippet.md`:
- Line 28: The "Closing Won't Fix / Out of Scope" heading is currently H3 but
should be H2 and include an introductory sentence per the guidelines; change the
heading markup from H3 to H2 (make it "## Closing Won't Fix / Out of Scope") and
add one short introductory sentence immediately beneath that heading to explain
the section's purpose so the document follows H1 → H2 → H3 hierarchy and the
rule "Sections use H2 and H3, each starting with an introductory sentence."
- Line 17: The H1 "NemoClaw — Community Engagement Quick Reference" should
exactly match the frontmatter title "NemoClaw Community Engagement Quick
Reference"; update the document's top-level heading (the H1) to remove the em
dash and any punctuation/variation so it equals the frontmatter title string
exactly, ensuring the H1 now matches title.page per the guideline.

---

Duplicate comments:
In `@docs/maintainer-guide.md`:
- Line 17: The H1 heading ("# NemoClaw Maintainer Guide — Community Engagement")
must exactly match the frontmatter title value (the frontmatter key
`title.page`/`title`); update the H1 to remove or add text so it exactly equals
the frontmatter `title.page` string (or alternatively update the `title.page`
value to match the existing H1) so the H1 and `title.page` are identical.

In `@docs/project-workflow.md`:
- Around line 38-44: The fenced diagram block lacks a language tag; update the
code fence surrounding the promotion-flow diagram (the triple-backtick block
containing "No Status → Backlog → In Progress → Done ... Duplicate
(superseded)") to use a typed fence such as "text" (e.g., ```text) so the block
is explicitly marked and follows the repo's coding guidelines.
- Line 17: Update the top-level H1 so it exactly matches the frontmatter key
title.page (remove the em dash and any other characters that differ); locate the
document's H1 line (the line that currently reads "NemoClaw — Project Workflow
Reference") and change it to the exact string from title.page so the H1 and the
frontmatter title.page are identical.

---

Nitpick comments:
In `@docs/maintainer-guide-snippet.md`:
- Line 76: Update the label example text that currently reads "Platform: MacOS"
to use the correct casing "Platform: macOS" (look for the string "Platform:
MacOS" in the maintainer guide snippet and replace it with "Platform: macOS").

In `@docs/maintainer-guide.md`:
- Line 152: Update the example Tier 3 dimension label text by replacing the
incorrect "Platform: MacOS" string with the approved casing "Platform: macOS" so
the sample label reads "Platform: macOS", keeping the rest of the line
("Integration: Slack", "Provider: NVIDIA") unchanged.
- Around line 32-219: Several top-level section headings include numeric
prefixes (e.g., "## 1. Closing Issues as Won't Fix or Out of Scope", "## 2.
Merging a PR..." through "## 10. References"); remove the numeric prefixes so
headings read like "## Closing Issues as Won't Fix or Out of Scope", "## Merging
a PR That Makes Another PR Redundant", etc. Update every heading that starts
with "## <number>. " in this file to drop the "<number>. " prefix and scan for
any internal references that mention those numbered titles so they point to the
new non-numbered headings (adjust text or links as needed).

In `@docs/project-workflow.md`:
- Line 91: Replace the incorrect "MacOS" casing in the platform labels/examples
by changing all occurrences of the backticked `Platform: MacOS` (and any other
backticked `MacOS` mentions) to `macOS`; search for the symbol string "Platform:
MacOS" or plain "MacOS" in the document and update both occurrences (including
the second occurrence noted in the comment) so they use the correct `macOS`
casing.
- Around line 125-153: Headings in this file use colons and must be rewritten
without them; update the three headings "### View 1: Enhancement Parking", "###
View 2: Platform & Integration Requests", and "### Main Board (update existing)"
to remove colons (e.g., "### View 1 Enhancement Parking", "### View 2 Platform &
Integration Requests", "### Main Board (update existing)") and also update any
other titled phrases following the same pattern (for example change "Inference:
Cloud and Local" to "Cloud and Local Inference"); ensure any internal references
or links to these headings are adjusted to match the new titles.
- Around line 23-162: Remove numeric prefixes from the top-level section
headings in docs/project-workflow.md: rename "## 1. Project Status Semantics" to
"## Project Status Semantics", "## 2. Label Structure" to "## Label Structure",
"## 3. Board Setup Instructions" to "## Board Setup Instructions", and "## 4.
Triage Checklist" to "## Triage Checklist"; also strip any numbered prefixes on
subheadings such as "### Tier 1 — Issue Type (always apply one)" only if they
include leading numbers, leaving the descriptive text (Tier 1, Tier 2, Promotion
Flow, etc.) intact so heading semantics and links remain consistent.
🪄 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: Pro Plus

Run ID: 14977c4d-9c41-4594-8455-46304cd66f0f

📥 Commits

Reviewing files that changed from the base of the PR and between 12d014b and 6f3bac2.

📒 Files selected for processing (3)
  • docs/maintainer-guide-snippet.md
  • docs/maintainer-guide.md
  • docs/project-workflow.md

<!-- SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. -->
<!-- SPDX-License-Identifier: Apache-2.0 -->

# NemoClaw — Community Engagement Quick Reference
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

Align H1 text with frontmatter title.

title is “NemoClaw Community Engagement Quick Reference,” but H1 adds an em dash variant.

As per coding guidelines, "H1 heading matches the title.page frontmatter value."

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@docs/maintainer-guide-snippet.md` at line 17, The H1 "NemoClaw — Community
Engagement Quick Reference" should exactly match the frontmatter title "NemoClaw
Community Engagement Quick Reference"; update the document's top-level heading
(the H1) to remove the em dash and any punctuation/variation so it equals the
frontmatter title string exactly, ensuring the H1 now matches title.page per the
guideline.

Comment thread docs/maintainer-guide-snippet.md Outdated
Copy link
Copy Markdown
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@docs/project-workflow.md`:
- Line 23: Remove the numeric prefixes from the section headings so they read
without numbers: change "1. Project Status Semantics" to "Project Status
Semantics", "3. Board Setup Instructions" to "Board Setup Instructions" and "4.
Triage Checklist" to "Triage Checklist"; update any other occurrences mentioned
(the headings at the other indicated locations) to match this non-numbered style
and ensure internal references or TOC entries, if any, are updated to the new
heading text (look for the exact heading strings to locate the edits).
🪄 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: Pro Plus

Run ID: fbc69473-ed6b-4584-869e-45a4fad2e122

📥 Commits

Reviewing files that changed from the base of the PR and between 6f3bac2 and 1a907cf.

📒 Files selected for processing (2)
  • docs/maintainer-guide-snippet.md
  • docs/project-workflow.md

Comment thread docs/project-workflow.md Outdated
Copy link
Copy Markdown
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🧹 Nitpick comments (2)
docs/maintainer-guide.md (2)

23-29: End each TL;DR sentence with a period.

These bullet lines are full sentences but do not consistently end with periods.
As per coding guidelines, "Every sentence must end with a period."

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@docs/maintainer-guide.md` around lines 23 - 29, The TL;DR bullet sentences in
the maintainer guide are missing terminal periods; update each bullet (the items
starting with "Always explain why", "Acknowledge contributors", "Security
reporters get credit", "Be specific when declining", "Route, don't reject", and
"Name what you need") to end with a period so every sentence follows the "Every
sentence must end with a period" rule, and run a quick pass to ensure no other
list items in docs/maintainer-guide.md violate this punctuation rule.

32-32: Remove numeric prefixes from section titles.

The H2 titles are numbered (## 1. ..., ## 2. ..., etc.), which violates the docs heading style rule. Use unnumbered titles for all sections.
As per coding guidelines, "Do not number section titles. Flag 'Section 1: ...', 'Step 3: ...', etc."

Also applies to: 59-59, 81-81, 109-109, 124-124, 142-142, 171-171, 187-187, 203-203, 227-227

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@docs/maintainer-guide.md` at line 32, Several H2 headings like "## 1. Closing
Issues as Won't Fix or Out of Scope" include numeric prefixes which violate the
docs heading style; remove the leading numbers and dot from these section titles
(e.g., change "## 1. ..." to "## Closing Issues as Won't Fix or Out of Scope")
and apply the same change to the other affected H2 headings (those currently
prefixed with "## <number>.") by stripping the "<number>. " prefix while keeping
the rest of the title text intact.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@docs/maintainer-guide.md`:
- Around line 36-40: The maintainer-guide's close-reason table lists labels
(`status: won't-fix`, `status: out-of-scope`, `status: needs-design`, `status:
duplicate`) that conflict with the project's status-label taxonomy in
docs/project-workflow.md (`status: triage`, `status: needs-info`); either update
this table in maintainer-guide.md to use only the canonical labels (`status:
triage`, `status: needs-info`) or, if those additional statuses are intended,
add them to the workflow taxonomy in docs/project-workflow.md in the same PR so
both files remain consistent; update the table rows (the Close reason / When to
use / Label entries) and any mention of `status: won't-fix`, `status:
out-of-scope`, `status: needs-design`, or `status: duplicate` to match the
chosen canonical labels.

---

Nitpick comments:
In `@docs/maintainer-guide.md`:
- Around line 23-29: The TL;DR bullet sentences in the maintainer guide are
missing terminal periods; update each bullet (the items starting with "Always
explain why", "Acknowledge contributors", "Security reporters get credit", "Be
specific when declining", "Route, don't reject", and "Name what you need") to
end with a period so every sentence follows the "Every sentence must end with a
period" rule, and run a quick pass to ensure no other list items in
docs/maintainer-guide.md violate this punctuation rule.
- Line 32: Several H2 headings like "## 1. Closing Issues as Won't Fix or Out of
Scope" include numeric prefixes which violate the docs heading style; remove the
leading numbers and dot from these section titles (e.g., change "## 1. ..." to
"## Closing Issues as Won't Fix or Out of Scope") and apply the same change to
the other affected H2 headings (those currently prefixed with "## <number>.") by
stripping the "<number>. " prefix while keeping the rest of the title text
intact.
🪄 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: Pro Plus

Run ID: afe5941d-0f64-482c-81c2-4f348e6839a8

📥 Commits

Reviewing files that changed from the base of the PR and between 1a907cf and 1a02319.

📒 Files selected for processing (2)
  • .agents/skills/nemoclaw-maintainer-community-response/DEVLOG.md
  • docs/maintainer-guide.md
✅ Files skipped from review due to trivial changes (1)
  • .agents/skills/nemoclaw-maintainer-community-response/DEVLOG.md

Comment thread docs/maintainer-guide.md Outdated
@cv
Copy link
Copy Markdown
Contributor

cv commented Apr 15, 2026

@wscurran can you ask your agent to "validate the skill against https://platform.claude.com/docs/en/agents-and-tools/agent-skills/best-practices.md"? usually leads to good edits!

- Remove log path from description (impl detail, already in step 7)
- Remove close+comment from description (table already clarifies close = close+comment)
- Add needs-info day-7 warning row to situation table in step 3
- Fix needs-info close row: 7+ days → 14 days (3-stage flow)
- Remove Response Time Check section (stale values; skill reads guide at step 1)
@wscurran
Copy link
Copy Markdown
Contributor Author

@coderabbitai review

@coderabbitai
Copy link
Copy Markdown
Contributor

coderabbitai bot commented Apr 15, 2026

✅ Actions performed

Review triggered.

Note: CodeRabbit is an incremental review system and does not re-review already reviewed commits. This command is applicable only when automatic reviews are paused.

Copy link
Copy Markdown
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🧹 Nitpick comments (7)
docs/maintainer-guide-snippet.md (3)

76-76: Use macOS casing in prose/examples.

Platform: MacOS should use macOS for Apple OS naming consistency.

As per coding guidelines, "Follow style guide in docs/CONTRIBUTING.md for documentation."

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@docs/maintainer-guide-snippet.md` at line 76, Update the casing for Apple OS
references in the labels guidance: replace any instances of "Platform: MacOS"
with "Platform: macOS" and ensure prose/examples use "macOS" consistently;
update the text that lists label examples (the line containing "**Labels:** ...
`Platform: MacOS`") to use the correct "macOS" casing throughout.

64-64: Split multi-sentence lines into one sentence per line.

These lines contain multiple sentences; split them for maintainable docs diffs.

As per coding guidelines, "One sentence per line in source (makes diffs readable)."

Also applies to: 90-90

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@docs/maintainer-guide-snippet.md` at line 64, The quoted doc line contains
multiple sentences on one line ("Thanks for the report. This is a duplicate of
#[N] — all discussion is happening there. Closing in favor of the original
thread. Feel free to add context or subscribe to #[N] to follow along."); split
this into one sentence per line so each of those sentences becomes its own line
in docs/maintainer-guide-snippet.md; apply the same one-sentence-per-line change
to the other occurrence referenced (around line 90) to keep diffs readable and
follow the repository guideline.

102-102: Remove hedge wording from user-facing templates.

“Just a heads-up” uses hedge phrasing; use direct language instead.

As per coding guidelines, "No hedge words: flag 'simply,' 'just,' 'easily,' 'of course.'"

Also applies to: 114-114

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@docs/maintainer-guide-snippet.md` at line 102, Remove hedge wording "Just a
heads-up —" from the user-facing template line containing "Just a heads-up — we
haven't heard back yet..." and replace it with a direct phrasing such as "We
haven't heard back yet." Also update the duplicate occurrence on the other
instance (line 114) so the template reads: "We haven't heard back yet. If this
is still affecting you, please share [repeat specific ask]. We'll close this in
7 days if we don't hear back." Ensure no hedge words like "just," "simply," or
"of course" remain.
.agents/skills/nemoclaw-maintainer-community-response/SKILL.md (1)

93-93: Use macOS in the label example for consistency.

Platform: MacOS should be Platform: macOS.

As per coding guidelines, "Use consistent formatting and structure for agent documentation."

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In @.agents/skills/nemoclaw-maintainer-community-response/SKILL.md at line 93,
Update the tier-3 label example in the SKILL.md content by replacing the
inconsistent casing "Platform: MacOS" with "Platform: macOS"; locate the example
string in the SKILL.md text (the line that reads "3. Suggest Tier 3 dimension
label(s) if platform-, integration-, or provider-specific (e.g., `Integration:
Slack`, `Platform: MacOS`)") and change the embedded label to `Platform: macOS`
to match the documentation style guidelines and maintain consistent formatting.
docs/maintainer-guide.md (3)

32-253: Remove numbering from section titles.

Headings like ## 1. ... through ## 10. ... violate the docs heading style; keep titles unnumbered.

As per coding guidelines, "Do not number section titles."

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@docs/maintainer-guide.md` around lines 32 - 253, The headings in
maintainer-guide.md are numbered (e.g., "## 1. Closing Issues as Won't Fix or
Out of Scope", "## 2. Merging a PR That Makes Another PR Redundant", etc.);
remove the leading numeric prefixes from each top-level section title so they
become unnumbered headings (e.g., "## Closing Issues as Won't Fix or Out of
Scope", "## Merging a PR That Makes Another PR Redundant", ...), update any
internal references or templates that reference the numeric labels to use the
new unnumbered titles, and run a quick pass to ensure heading order and any
cross-links (like "§ 1" references) are updated to unnumbered forms or clear
textual references.

193-193: Use one sentence per line in source.

This line contains multiple sentences on one line; split each sentence onto its own line for doc diff readability.

As per coding guidelines, "One sentence per line in source (makes diffs readable)."

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@docs/maintainer-guide.md` at line 193, The line containing "Thanks for the
detailed report — we've confirmed this and added it to our backlog. We don't
have a timeline to share yet, but we've got it on our radar. We'll update this
issue when work begins." needs to be split so each sentence is on its own source
line; edit the maintainer-guide.md entry to place each sentence on a separate
line (preserve punctuation and spacing) to follow the "one sentence per line"
guideline for readable diffs.

215-241: Avoid hedge wording in templates.

The phrase “Just a heads-up” appears in responder templates; replace it with direct wording.

As per coding guidelines, "No hedge words: flag 'simply,' 'just,' 'easily,' 'of course.'"

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@docs/maintainer-guide.md` around lines 215 - 241, Replace hedge phrasing
"Just a heads-up" in the responder templates with direct language: locate the
template lines "Just a heads-up — we haven't heard back yet..." and "Just a
heads-up — this PR still needs a rebase..." in maintainer-guide.md (Situation 2
and Stage 2) and change them to a direct phrase such as "Please note —" or
"Reminder —"; also scan nearby templates for other hedges ("simply", "just",
"easily", "of course") and replace them with direct wording to comply with the
no-hedge rule.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Nitpick comments:
In @.agents/skills/nemoclaw-maintainer-community-response/SKILL.md:
- Line 93: Update the tier-3 label example in the SKILL.md content by replacing
the inconsistent casing "Platform: MacOS" with "Platform: macOS"; locate the
example string in the SKILL.md text (the line that reads "3. Suggest Tier 3
dimension label(s) if platform-, integration-, or provider-specific (e.g.,
`Integration: Slack`, `Platform: MacOS`)") and change the embedded label to
`Platform: macOS` to match the documentation style guidelines and maintain
consistent formatting.

In `@docs/maintainer-guide-snippet.md`:
- Line 76: Update the casing for Apple OS references in the labels guidance:
replace any instances of "Platform: MacOS" with "Platform: macOS" and ensure
prose/examples use "macOS" consistently; update the text that lists label
examples (the line containing "**Labels:** ... `Platform: MacOS`") to use the
correct "macOS" casing throughout.
- Line 64: The quoted doc line contains multiple sentences on one line ("Thanks
for the report. This is a duplicate of #[N] — all discussion is happening there.
Closing in favor of the original thread. Feel free to add context or subscribe
to #[N] to follow along."); split this into one sentence per line so each of
those sentences becomes its own line in docs/maintainer-guide-snippet.md; apply
the same one-sentence-per-line change to the other occurrence referenced (around
line 90) to keep diffs readable and follow the repository guideline.
- Line 102: Remove hedge wording "Just a heads-up —" from the user-facing
template line containing "Just a heads-up — we haven't heard back yet..." and
replace it with a direct phrasing such as "We haven't heard back yet." Also
update the duplicate occurrence on the other instance (line 114) so the template
reads: "We haven't heard back yet. If this is still affecting you, please share
[repeat specific ask]. We'll close this in 7 days if we don't hear back." Ensure
no hedge words like "just," "simply," or "of course" remain.

In `@docs/maintainer-guide.md`:
- Around line 32-253: The headings in maintainer-guide.md are numbered (e.g.,
"## 1. Closing Issues as Won't Fix or Out of Scope", "## 2. Merging a PR That
Makes Another PR Redundant", etc.); remove the leading numeric prefixes from
each top-level section title so they become unnumbered headings (e.g., "##
Closing Issues as Won't Fix or Out of Scope", "## Merging a PR That Makes
Another PR Redundant", ...), update any internal references or templates that
reference the numeric labels to use the new unnumbered titles, and run a quick
pass to ensure heading order and any cross-links (like "§ 1" references) are
updated to unnumbered forms or clear textual references.
- Line 193: The line containing "Thanks for the detailed report — we've
confirmed this and added it to our backlog. We don't have a timeline to share
yet, but we've got it on our radar. We'll update this issue when work begins."
needs to be split so each sentence is on its own source line; edit the
maintainer-guide.md entry to place each sentence on a separate line (preserve
punctuation and spacing) to follow the "one sentence per line" guideline for
readable diffs.
- Around line 215-241: Replace hedge phrasing "Just a heads-up" in the responder
templates with direct language: locate the template lines "Just a heads-up — we
haven't heard back yet..." and "Just a heads-up — this PR still needs a
rebase..." in maintainer-guide.md (Situation 2 and Stage 2) and change them to a
direct phrase such as "Please note —" or "Reminder —"; also scan nearby
templates for other hedges ("simply", "just", "easily", "of course") and replace
them with direct wording to comply with the no-hedge rule.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro Plus

Run ID: 0abc8f30-e3a7-475a-9b7f-81ed2f05ced0

📥 Commits

Reviewing files that changed from the base of the PR and between 1a907cf and f2fd841.

📒 Files selected for processing (4)
  • .agents/skills/nemoclaw-maintainer-community-response/DEVLOG.md
  • .agents/skills/nemoclaw-maintainer-community-response/SKILL.md
  • docs/maintainer-guide-snippet.md
  • docs/maintainer-guide.md
✅ Files skipped from review due to trivial changes (1)
  • .agents/skills/nemoclaw-maintainer-community-response/DEVLOG.md

Label renamed on GitHub to match Apple's official casing.
Replace 'Just a heads-up —' with direct opening across both
needs-info and needs-rebase warning templates in snippet and guide.
@wscurran
Copy link
Copy Markdown
Contributor Author

@cv Resolved nits but skipped one (not relevant).

@wscurran wscurran enabled auto-merge (squash) April 15, 2026 17:51
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This doesn't seem relevant to the skill itself, and might lead agents reading it down the wrong path. Why do we need this file?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes, that should be in .gitignore, will change.

Comment thread .agents/skills/nemoclaw-maintainer-community-response/SKILL.md
wscurran and others added 5 commits April 15, 2026 11:45
DEVLOG.md files are local only and should never be committed to the repo.
gh cli can fetch issue/PR body directly from a URL or number.
…or ID, batch mode (#1921)

## Summary

- **Rebase verification gate:** Mandatory `gh api` check before any
rebase nudge — only proceed when `mergeable_state=dirty`; never nudge on
`blocked`, `unstable`, or `unknown`
- **Integration hold action:** PRs with any `Integration: *` label route
to the integration evaluation holding comment; `status: rebase` is never
applied to integration PRs
- **Author identification:** Check NVIDIA org membership before
drafting; surface as `Author: username (NVIDIA|external)` in draft
headers
- **Open date in draft headers:** Always show `Opened: YYYY-MM-DD (N
days ago)` in the presentation header
- **Batch mode:** Present a PR analysis table (author, NV?, opened,
action, notes) before drafting any responses in multi-PR sessions
- **Git fetch / session resume:** Re-fetch before supersession checks;
verify PR state before acting on queued items after a break
- **Hedged language rule:** Use "could be", "may", "potentially" for
risks — not assertive claims
- **Needs-info simplified:** Remove day-7 warning step; single close at
7+ days of no response
- **Response Time Check section:** SLA targets with "at risk" threshold
at 80% elapsed

## Test plan

- [ ] Trigger on a PR with `mergeable_state=blocked` — confirm no rebase
nudge is sent
- [ ] Trigger on a PR with an `Integration: *` label — confirm
integration hold comment, no `status: rebase`
- [ ] Trigger on any PR — confirm draft header shows Author
(NVIDIA/external) and Opened date
- [ ] Process 3+ PRs in one session — confirm batch table appears before
drafting begins
- [ ] Resume skill after a 2h+ break — confirm git fetch + PR state
validation runs first

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
…mat v2 (#1935)

## Summary

### Supersession verification gate (primary change)

The skill was classifying PRs as superseded based on keyword matches in
`git log` alone. This produced false positives — most notably, a PR was
initially flagged as superseded when the team had actually tried that
approach and deliberately reverted it.

The gate now requires three explicit checks before any supersession
classification is presented:

1. Confirm the superseding work is actually merged to main (`git log
origin/main`)
2. Confirm the target files still exist and were touched by the
superseding PR (file list check)
3. Confirm the core intent is covered, not just surface-level keyword
overlap — read both PR bodies

If any check fails or is ambiguous, the skill stops and asks the
maintainer how to proceed rather than presenting a potentially wrong
recommendation.

### Stale sweep (three-stage lifecycle)

Adds a `## Stale Sweep` mode that finds all open items carrying `status:
needs-info` or `status: rebase` and classifies them:

- **Stage 2 (7–13 days since label)**: post warning comment, leave open
- **Stage 3 (14+ days since label)**: close with friendly comment,
invite re-open

For `status: needs-info` items: checks whether the author commented
*after* the label was applied. If yes, the item is surfaced for
maintainer re-triage rather than automated warning/close. Author
activity check does not apply to `status: rebase` — a comment doesn't
resolve merge conflicts.

First-contact comments (needs-info and rebase nudge) now include a
one-sentence 7-day notice so contributors know the follow-up timeline.

### Log format v2

Step 7 updated to:
- Read log directory from
`~/.claude/skills/nemoclaw-maintainer-community-response/config.md`
(portable across machines/repos)
- Write to monthly files (`{dir}/{YYYY-MM}.md`) instead of a single file
- Richer field set: Time (PDT), Author handle, Action (pipe-separated
for compound), Resolution, Labels
- Batch entry format for multi-PR sessions
- Verify entry landed with `tail -25`

## Test plan

- [ ] Classify a PR as superseded — confirm all three gate checks run
before the recommendation appears
- [ ] Classify a PR where superseding work is on a branch but not yet
merged to main — confirm gate blocks it
- [ ] Run stale sweep — confirm Stage 2 items get a warning comment and
stay open
- [ ] Run stale sweep — confirm Stage 3 items are closed with the
appropriate template
- [ ] Run stale sweep on a needs-info item where the author commented
after labeling — confirm it goes to the re-triage group, not
warning/close
- [ ] Confirm log entry uses format v2 and writes to the correct monthly
file

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
- Remove numeric prefixes from all H2/H3 section headings (docs style rule)
- Remove colons from View titles in project-workflow.md board setup section
- Match H1 headings to frontmatter title in maintainer-guide.md and project-workflow.md
- Split multi-sentence blockquote lines to one sentence per line in maintainer-guide-snippet.md

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

project management Use this label for meta-issues about project governance and community processes.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants