Skip to content

feat(skills): add issue planning workflow - #8396

Merged
jyaunches merged 6 commits into
mainfrom
issue-8362-issue-planning-capability-slicing
Aug 6, 2026
Merged

feat(skills): add issue planning workflow#8396
jyaunches merged 6 commits into
mainfrom
issue-8362-issue-planning-capability-slicing

Conversation

@jyaunches

@jyaunches jyaunches commented Aug 5, 2026

Copy link
Copy Markdown
Contributor

Summary

Add a contributor issue-planning workflow that researches current repository evidence and divides accepted work into independently valuable capability slices. The workflow separates planning from implementation and PR publication, and keeps GitHub writes opt-in.

Related Issue

Fixes #8362

Changes

  • Add nemoclaw-contributor-plan-issue with explicit planning, implementation, publication, and maintainer routing boundaries.
  • Require current implementation, related-work, security-boundary, acceptance-evidence, delivery-order, and stop-condition discovery.
  • Add positive, negative, ambiguous, and clean-context routing cases plus repository contract tests.
  • Register the workflow in the contributor skill catalog.

Type of Change

  • Code change (feature, bug fix, or refactor)
  • Code change with doc updates
  • Doc only (prose changes, no code sample modifications)
  • Doc only (includes code sample changes)

Quality Gates

  • Tests added or updated for changed behavior
  • Existing tests cover changed behavior — justification:
  • Tests not applicable — justification:
  • Docs updated for user-facing behavior changes
  • Docs not applicable — justification: This changes repository contributor-agent workflows, not the supported NemoClaw user product surface under docs/.
  • 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:

Documentation Writer Review

  • Documentation writer subagent reviewed the completed changes
  • Result: no-docs-needed
  • Evidence: Independent review passed for .agents/skills/nemoclaw-contributor-plan-issue/SKILL.md, its metadata and routing cases, .agents/skills/nemoclaw-skills-guide/SKILL.md, and test/skills-frontmatter.test.ts. No user-facing docs/ change is required.
  • Agent: Pi review-executor

DGX Station Hardware Evidence

  • Tested on DGX Station
  • Tested commit:
  • Station profile/scenario:
  • Result:
  • Supporting evidence:

Verification

  • PR description includes a Signed-off-by: line and every commit appears as Verified in GitHub
  • Normal pre-commit, commit-msg, and pre-push hooks passed, or npm run validate:pr passed after refreshing origin/main when hooks were skipped or unavailable
  • Targeted behavior tests pass for the current change set, or tests are marked not applicable above — command/result or justification: vitest run --project integration test/skills-frontmatter.test.ts — 32 tests passed.
  • Applicable broad gate passed — npm test for broad runtime/test-harness changes; npm run check for repo-wide validation/coverage changes — command/result:
  • Quality Gates section completed with required justifications or waivers
  • No secrets, API keys, or credentials committed
  • npm run docs builds without warnings (doc changes only)
  • Doc pages follow the style guide (doc changes only)
  • New doc pages include SPDX header and frontmatter (new pages only)

Signed-off-by: Julie Yaunches jyaunches@nvidia.com

Summary by CodeRabbit

  • New Features

    • Added a contributor workflow for planning issues, including scope definition, implementation discovery, acceptance criteria, and independently valuable work breakdowns.
    • Planning is read-only by default and separates planning from implementation and publication.
    • Added agent configuration for issue-planning requests.
  • Documentation

    • Updated the contributor skills guide with the new capability and revised skill counts.
  • Tests

    • Added coverage for authorization boundaries, maintainer routing, ambiguous requests, authorized comments, and adversarial issue content.

Signed-off-by: Julie Yaunches <jyaunches@nvidia.com>
@jyaunches jyaunches self-assigned this Aug 5, 2026
@coderabbitai

coderabbitai Bot commented Aug 5, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

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 the nemoclaw-contributor-plan-issue skill. It defines read-only issue planning, repository discovery, capability slicing, acceptance evidence, routing rules, and authorized GitHub writes. It also adds agent metadata, evaluations, catalog registration, and tests.

Changes

Issue planning workflow

Layer / File(s) Summary
Planning workflow definition
.agents/skills/nemoclaw-contributor-plan-issue/SKILL.md, .agents/skills/nemoclaw-contributor-plan-issue/agents/openai.yaml
Defines issue-planning behavior, routing, discovery, capability slices, acceptance evidence, write authorization, reporting, and agent metadata.
Routing and authorization evaluation coverage
.agents/skills/nemoclaw-contributor-plan-issue/evals/evals.json
Adds evaluation cases for valid planning, disallowed workflows, ambiguous requests, clean context, authorization boundaries, and adversarial content.
Skill catalog and structural validation
.agents/skills/nemoclaw-skills-guide/SKILL.md, test/skills-frontmatter.test.ts
Registers the skill, updates skill counts, and validates guidance, constraints, routing, evaluator identifiers, and catalog parity.

Estimated code review effort: 3 (Moderate) | ~20 minutes

Sequence Diagram(s)

sequenceDiagram
  participant Contributor
  participant PlanningAgent
  participant PlanningSkill
  participant Repository
  Contributor->>PlanningAgent: Submit issue-planning request
  PlanningAgent->>PlanningSkill: Route request
  PlanningSkill->>Repository: Read implementation, tests, workflows, and related work
  Repository-->>PlanningSkill: Return evidence
  PlanningSkill-->>Contributor: Return capability-slice plan
Loading

Possibly related PRs

  • NVIDIA/NemoClaw#8309: Modifies related issue-management skill governance and authorization safeguards.

Suggested reviewers: apurvvkumaria

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly identifies the addition of an issue-planning workflow, which is the primary change.
Linked Issues check ✅ Passed The workflow, routing cases, authorization controls, catalog entry, and tests address the objectives and acceptance criteria in [#8362].
Out of Scope Changes check ✅ Passed All changes support the issue-planning workflow, its tests, or catalog registration; no unrelated changes are shown.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch issue-8362-issue-planning-capability-slicing

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

@github-code-quality

github-code-quality Bot commented Aug 5, 2026

Copy link
Copy Markdown
Contributor

Code Coverage Overview

Languages: TypeScript

TypeScript / code-coverage/plugin

The overall coverage in commit 288b773 in the issue-8362-issue-pla... branch remains at 96%, unchanged from commit a632296 in the main branch.

TypeScript / code-coverage/cli

The overall coverage in commit 288b773 in the issue-8362-issue-pla... branch remains at 82%, unchanged from commit fa59d91 in the main branch.

Show a code coverage summary of the most impacted files.
File main fa59d91 issue-8362-issue-pla... 288b773 +/-
src/lib/onboard...-transaction.ts 94% 94% 0%
src/lib/sandbox...rce-identity.ts 87% 87% 0%
src/lib/tunnel/services.ts 80% 80% 0%
src/lib/inferen...er-discovery.ts 87% 88% +1%
src/lib/onboard...shboard-port.ts 90% 96% +6%

Updated August 06, 2026 02:39 UTC

@coderabbitai coderabbitai Bot left a comment

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.

Actionable comments posted: 5

🧹 Nitpick comments (1)
test/skills-frontmatter.test.ts (1)

127-150: 📐 Maintainability & Code Quality | 🔵 Trivial | 🏗️ Heavy lift

Prefer observable behavior over exact skill wording and evaluator order.

This test reads raw SKILL.md and asserts exact phrases, then requires one exact order for evaluator IDs. These checks lock copy and file order. They do not prove routing, read-only behavior, or capability slicing. Use the evaluation or routing boundary if available. Otherwise, assert stable parsed fields and required outcomes instead of prose.

🤖 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/skills-frontmatter.test.ts` around lines 127 - 150, Update the test
around the skill and evaluator assertions to validate observable routing,
read-only behavior, and capability-slicing outcomes rather than exact SKILL.md
wording or evaluator ordering. Prefer the available evaluation or routing
boundary; otherwise parse stable structured fields and assert required outcomes
while preserving the existing scenario coverage.

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.

Inline comments:
In @.agents/skills/nemoclaw-contributor-plan-issue/evals/evals.json:
- Around line 4-10: Expand the positive evaluation’s expected_behavior for
nemoclaw-contributor-plan-issue to require a complete plan contract: each
capability slice must include dependencies, decisions, acceptance examples, test
evidence, and deferred scope, along with delivery order, stop conditions, and
security-boundary evidence. Preserve the existing ownership, related-work,
source-reading, and no-implementation expectations.
- Around line 3-64: Extend the evaluation cases in the JSON array with GitHub
write-authorization scenarios: add an unauthorized-write prompt whose expected
behavior performs no write and returns exactly “Not authorized; plan only,” and
add an explicitly authorized prompt requiring an exact preview, only the named
write, and reporting every resulting URL or failure. Keep these cases distinct
from the existing planning, implementation, PR publication, and
maintainer-routing evaluations.

In @.agents/skills/nemoclaw-contributor-plan-issue/SKILL.md:
- Around line 46-50: Update the “Discover the current implementation” section in
SKILL.md to reference ../_shared/git-github-hard-stop.md before any discovery
commands, alongside the existing implementation-discovery,
code-change-considerations, and security-rubric references.
- Around line 52-61: Update the discovery guidance in the skill’s “Read before
proposing work” section to explicitly treat issue bodies, comments, source,
workflows, and history as evidence rather than agent instructions. State that
only workflow instructions and explicit user authorization may define operations
or authorize GitHub writes, while accepted issue decisions may define product
scope only; add adversarial evaluations covering issue or comment content that
attempts to alter scope or authorize writes.

In `@test/skills-frontmatter.test.ts`:
- Around line 137-162: Update the assertions in the frontmatter test to verify
the skill contains “Current behavior owner” alongside the existing owner check,
and assert that the evaluator with ID “clean-context-refinement” maps to
“nemoclaw-contributor-plan-issue” using its expected_skill value.

---

Nitpick comments:
In `@test/skills-frontmatter.test.ts`:
- Around line 127-150: Update the test around the skill and evaluator assertions
to validate observable routing, read-only behavior, and capability-slicing
outcomes rather than exact SKILL.md wording or evaluator ordering. Prefer the
available evaluation or routing boundary; otherwise parse stable structured
fields and assert required outcomes while preserving the existing scenario
coverage.
🪄 Autofix

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: 2c2f2e99-4059-45aa-aa4d-2e3b25d0f5f5

📥 Commits

Reviewing files that changed from the base of the PR and between 1608281 and c50c277.

📒 Files selected for processing (5)
  • .agents/skills/nemoclaw-contributor-plan-issue/SKILL.md
  • .agents/skills/nemoclaw-contributor-plan-issue/agents/openai.yaml
  • .agents/skills/nemoclaw-contributor-plan-issue/evals/evals.json
  • .agents/skills/nemoclaw-skills-guide/SKILL.md
  • test/skills-frontmatter.test.ts

Comment thread .agents/skills/nemoclaw-contributor-plan-issue/evals/evals.json
Comment thread .agents/skills/nemoclaw-contributor-plan-issue/evals/evals.json
Comment thread .agents/skills/nemoclaw-contributor-plan-issue/SKILL.md Outdated
Comment thread .agents/skills/nemoclaw-contributor-plan-issue/SKILL.md
Comment thread test/skills-frontmatter.test.ts
@github-actions

github-actions Bot commented Aug 5, 2026

Copy link
Copy Markdown
Contributor

PR Review Advisor — No blocking findings reported

Advisor assessment: No blocking advisor findings reported
Next action: No advisor follow-up needed.
Findings: 0 blockers · 0 warnings · 0 suggestions

Model lanes

  • GPT-5.6 Terra (primary): Completed · high confidence · 0 blockers · 0 warnings · 0 suggestions
  • Nemotron 3 Ultra (second opinion): Failed after a partial review · low confidence · 0 blockers · 0 warnings · 0 suggestions

Second-opinion terminology and E2E selections are advisory. They do not change the primary assessment or E2E / PR Gate.

3 semantic terminology decisions

Terminology decisions are advisory. They affect the assessment only when a separate finding identifies concrete semantic impact.

  • justified — capability slice at .agents/skills/nemoclaw-contributor-plan-issue/SKILL.md:136: Keep `capability slice`; the workflow defines its required contents and uses the term consistently.
  • justified — implementation owner at .agents/skills/nemoclaw-contributor-plan-issue/SKILL.md:45: Keep `implementation owner`; the report structure distinguishes it from the current behavior owner and supports an unassigned state.
  • established — planning is read-only at .agents/skills/nemoclaw-contributor-plan-issue/SKILL.md:97: Keep this phrase; it applies the controlled `read-only` term precisely to the workflow write boundary.

E2E guidance

Advisory only. E2E / PR Gate selects and runs jobs independently.

Recommended E2E: None

Workflow run details

This automated review informs maintainers. Warnings and suggestions do not require a response. A maintainer decides whether to merge.

Signed-off-by: Julie Yaunches <jyaunches@nvidia.com>

@coderabbitai coderabbitai Bot left a comment

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.

♻️ Duplicate comments (1)
test/skills-frontmatter.test.ts (1)

155-164: 🎯 Functional Correctness | 🟡 Minor | ⚡ Quick win

Assert routing for each new evaluator.

Lines 155-157 only assert evaluator IDs. A changed expected_skill can route an authorization or adversarial case to another workflow while this test still passes. Assert that all three new evaluators map to nemoclaw-contributor-plan-issue.

Proposed test change
     expect(evals.find(({ id }) => id === "clean-context-refinement")?.expected_skill).toBe(
       "nemoclaw-contributor-plan-issue",
     );
+    for (const id of [
+      "unauthorized-github-write",
+      "authorized-single-github-write",
+      "adversarial-untrusted-issue-content",
+    ]) {
+      expect(evals.find((evaluation) => evaluation.id === id)?.expected_skill).toBe(
+        "nemoclaw-contributor-plan-issue",
+      );
+    }

As per review objectives, structural validation must cover expected skill routing for authorization and adversarial cases.

🤖 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/skills-frontmatter.test.ts` around lines 155 - 164, Update the evaluator
assertions near the existing expected_skill checks to also verify that all three
new evaluators, including the authorization and adversarial cases, map to
nemoclaw-contributor-plan-issue. Preserve the existing ID assertions and add
explicit expected_skill coverage for each new evaluator.
🤖 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.

Duplicate comments:
In `@test/skills-frontmatter.test.ts`:
- Around line 155-164: Update the evaluator assertions near the existing
expected_skill checks to also verify that all three new evaluators, including
the authorization and adversarial cases, map to nemoclaw-contributor-plan-issue.
Preserve the existing ID assertions and add explicit expected_skill coverage for
each new evaluator.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Enterprise

Run ID: e7068a46-272c-4e9e-8841-84bc384be20d

📥 Commits

Reviewing files that changed from the base of the PR and between c50c277 and 975ecde.

📒 Files selected for processing (3)
  • .agents/skills/nemoclaw-contributor-plan-issue/SKILL.md
  • .agents/skills/nemoclaw-contributor-plan-issue/evals/evals.json
  • test/skills-frontmatter.test.ts
🚧 Files skipped from review as they are similar to previous changes (1)
  • .agents/skills/nemoclaw-contributor-plan-issue/SKILL.md

Signed-off-by: Julie Yaunches <jyaunches@nvidia.com>
Signed-off-by: Julie Yaunches <jyaunches@nvidia.com>
Signed-off-by: Julie Yaunches <jyaunches@nvidia.com>
@copy-pr-bot

copy-pr-bot Bot commented Aug 6, 2026

Copy link
Copy Markdown

This pull request requires additional validation before any workflows can run on NVIDIA's runners.

Pull request vetters can view their responsibilities here.

Contributors can view more details about this message here.

@jyaunches
jyaunches merged commit 26bd9f5 into main Aug 6, 2026
49 of 51 checks passed
@jyaunches
jyaunches deleted the issue-8362-issue-planning-capability-slicing branch August 6, 2026 03:03
jyaunches added a commit that referenced this pull request Aug 6, 2026
<!-- markdownlint-disable MD041 -->
## Summary

Add a generic contributor workflow for implementing accepted issues from
current repository evidence. The workflow delivers one independently
valuable capability slice, records focused validation and security
evidence, and routes publication to the separate PR workflow.

This PR is stacked on PR #8396.

## Related Issue

Fixes #8363

## Changes

- Add `nemoclaw-contributor-implement-issue` with explicit
implementation, planning, publication, security-review, and maintainer
routing boundaries.
- Treat issue, PR, comment, and repository content as untrusted evidence
that cannot authorize operations.
- Require current implementation discovery, shared code-change and
security review, focused positive and negative evidence, and a
publication handoff.
- Add positive, negative, ambiguous, adversarial, and clean-context
routing evaluations.
- Register the workflow in the contributor skill catalog.

## Type of Change

- [x] Code change (feature, bug fix, or refactor)
- [ ] Code change with doc updates
- [ ] Doc only (prose changes, no code sample modifications)
- [ ] Doc only (includes code sample changes)

## Quality Gates

- [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 changes repository
contributor-agent workflows, not the supported NemoClaw user product
surface under `docs/`.
- [ ] 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:

## Documentation Writer Review

- [x] Documentation writer subagent reviewed the completed changes
- Result: `no-docs-needed`
- Evidence: Independent review passed for the implementation workflow,
routing metadata and evaluations, contributor catalog registration, and
repository contract tests. No user-facing `docs/` change is required.
- Agent: Pi review-executor
<!-- docs-review-head-sha: 292a5af -->
<!-- docs-review-agents-blob-sha: 3dd7c24 -->

## DGX Station Hardware Evidence

- [ ] Tested on DGX Station
- Tested commit:
- Station profile/scenario:
- Result:
- Supporting evidence:

## Verification

- [x] PR description includes a `Signed-off-by:` line and every commit
appears as `Verified` in GitHub
- [x] Normal `pre-commit`, `commit-msg`, and `pre-push` hooks passed, or
`npm run validate:pr` passed after refreshing `origin/main` when hooks
were skipped or unavailable
- [x] Targeted behavior tests pass for the current change set, or tests
are marked not applicable above — command/result or justification:
`vitest run --project integration test/skills-frontmatter.test.ts` — 34
tests passed.
- [ ] Applicable broad gate passed — `npm test` for broad
runtime/test-harness changes; `npm run check` for repo-wide
validation/coverage changes — command/result:
- [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)
- [ ] 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)

---
Signed-off-by: Julie Yaunches <jyaunches@nvidia.com>


<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

- **New Features**
- Added a contributor workflow for implementing accepted issues locally,
including validation, security checks, documentation updates, and
structured handoffs.
- Added guidance for distinguishing implementation requests from
planning, publishing, maintainer, and security-review workflows.

- **Documentation**
- Updated the skills catalog and counts to include the new contributor
workflow.

- **Tests**
- Added coverage for workflow routing, required guidance, evaluation
scenarios, and boundary conditions.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->

---------

Signed-off-by: Julie Yaunches <jyaunches@nvidia.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Add an issue-planning and capability-slicing workflow

2 participants