Skip to content

Commit 905b4e6

Browse files
committed
merge: resolve runtime host-mount capability conflicts
Preserve the provider capability guard alongside the base branch's portable-profile changes. Declare Podman unsupported and fail closed before session mutation. Signed-off-by: Prekshi Vyas <prekshiv@nvidia.com>
2 parents 23d5c6e + 837389e commit 905b4e6

803 files changed

Lines changed: 71430 additions & 28740 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.
Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
<!-- SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. -->
2+
<!-- SPDX-License-Identifier: Apache-2.0 -->
3+
4+
# Code Change Considerations
5+
6+
Use these questions while planning, implementing, and reviewing a code change. Apply them to the
7+
current lifecycle stage; do not turn them into a separate report when the workflow already owns an
8+
output format.
9+
10+
## Authority
11+
12+
Current code, tests, workflows, and active `AGENTS.md` files own implementation details. Derive
13+
paths, commands, test mappings, selectors, and architecture from the current checkout rather than
14+
recording them here.
15+
16+
## Questions
17+
18+
- What accepted outcome and current consumer require the change?
19+
- What current code owns the behavior, and can that owner be extended directly?
20+
- Would the change duplicate an existing structure or create another source of truth?
21+
- What state, success, failure, and partial-failure behavior must remain coherent?
22+
- What ordering or concurrency can change the result or bypass a guarantee?
23+
- How do absent values, defaults, retries, recovery, and cleanup behave?
24+
- Which alternate entry, error, cached, resumed, or compatibility paths can bypass the change?
25+
- Can code or configuration be removed, or can an existing or native mechanism replace new code?
26+
- What shortest stable test proves the changed behavior, including the relevant negative path?
27+
- Does a real process, network, filesystem, container, hardware, or service boundary require deeper
28+
runtime or end-to-end evidence?
29+
- Which active issues, pull requests, or recent changes overlap, conflict, or affect delivery order?

.agents/skills/_shared/controlled-words.md

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,9 @@
55

66
# NemoClaw Controlled Word List
77

8-
This list defines approved NemoClaw technical terms for explanatory text in the scope of the
9-
[NemoClaw Writing Guide](../../../WRITING.md). It gives each term one project meaning and identifies
10-
alternatives that can make that meaning unclear.
8+
This list defines approved NemoClaw technical terms for explanatory text.
9+
It gives each term one project meaning and identifies alternatives that can make that meaning
10+
unclear.
1111

1212
This list is not a general English dictionary. It does not copy the ASD-STE100 dictionary, and its
1313
use does not establish ASD-STE100 compliance.
@@ -417,7 +417,6 @@ For each entry:
417417
3. Define one meaning. Add another row when the same word has a different controlled meaning.
418418
4. List only alternatives that writers use for that same meaning.
419419
5. Keep entries alphabetical within their section.
420-
6. Add a rewrite example to `WRITING.md` only when the distinction needs sentence context.
421420

422421
Do not add every acceptable English word. Do not use this list to rename a command, identifier,
423422
schema field, UI label, or third-party product. Such a rename needs its own behavior or interface
Lines changed: 9 additions & 95 deletions
Original file line numberDiff line numberDiff line change
@@ -1,103 +1,17 @@
11
<!-- SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. -->
22
<!-- SPDX-License-Identifier: Apache-2.0 -->
33

4-
# Write and Review Explanatory Text
4+
# Documentation Writing and Review Routing
55

6-
Use this contract in any skill that writes or reviews comments, test titles, PR text,
6+
Use this routing contract in any skill that writes or reviews comments, test titles, PR text,
77
documentation, changelog entries, Announcements, or maintainer guidance.
88

9-
## Load the Authoritative Guidance
9+
## Load the Guidance for the Surface
1010

11-
- Read the [NemoClaw Writing Guide](../../../WRITING.md) and
12-
[NemoClaw Controlled Word List](controlled-words.md) before writing or reviewing
13-
changed explanatory text.
14-
- For user-facing documentation, also read the
15-
[documentation contributor guide](../../../docs/CONTRIBUTING.md).
16-
- Treat `docs/` as the source of truth for user-facing documentation.
17-
- Verify commands, defaults, and behavior against checked-in source, tests, or scripts.
18-
- Use existing documentation, issues, and PRs to locate claims and rationale, not as behavior
19-
authority.
20-
- Verify support claims against an accepted issue or accepted design decision.
21-
- Apply the writing rules and controlled terms to changed text. Preserve literal identifiers,
22-
commands, output, API fields, quotations, and official third-party names.
11+
- Follow the [NemoClaw Writing Guide](../../../WRITING.md) for any changed explanatory text.
12+
It owns claim accuracy, writing rules, review scope, and terminology routing.
13+
- Also follow the [documentation contributor guide](../../../docs/CONTRIBUTING.md) when changing
14+
public-facing documentation.
15+
It owns documentation procedures, patterns, and validation.
2316

24-
## Keep Documentation with Behavior
25-
26-
Before completing a code change, determine whether it changes a user-visible API, CLI,
27-
configuration, UI behavior, workflow, default, error, or other supported product behavior.
28-
29-
- Update the affected source pages under `docs/` in the same change.
30-
- When the host supports subagents, start a documentation authoring subagent while the primary
31-
agent continues implementation. Give it the changed sources, user-visible impact, likely pages,
32-
and required validation.
33-
- Reconcile the authoring subagent's changes and validation evidence before completing the
34-
implementation.
35-
- When authoring subagents are unavailable, complete the documentation work in the primary task.
36-
Do not omit required documentation because parallel execution is unavailable.
37-
38-
Documentation authoring does not replace the independent final review.
39-
40-
## Review High-Risk Procedures and Claims
41-
42-
For each changed procedure or operational claim, check the following items:
43-
44-
- Put prerequisites and warnings about destructive or replacement behavior, security relaxation,
45-
public ingress, external traffic, credential exposure, and other material risks before the
46-
action that creates them.
47-
- After the action, state the resulting state changes and other effects.
48-
- For each credential that the procedure handles, name its location, access, lifetime, and removal.
49-
- Name the lifecycle boundary for each persistence claim.
50-
- For a conditional or best-effort control, state the failure or fallback result.
51-
- Give the verification command or observation and its acceptance criterion.
52-
- Use the claim ladder in the controlled word list. Do not infer readiness, compatibility, or
53-
support from weaker evidence.
54-
- Verify support claims against an accepted issue or accepted design decision. User approval and
55-
passing tests do not establish product support.
56-
- For a changed shared user-facing page, inspect every rendered guide variant. Use `$$nemoclaw`
57-
when only the host CLI binary differs.
58-
- Use an `<AgentOnly>` block when behavior, setup, paths, state locations, capabilities, or
59-
agent-specific wording differ. State when a variant has no equivalent operation.
60-
61-
## Review the Completed Change
62-
63-
Before final handoff, run an independent documentation writer subagent for every completed code or
64-
documentation change.
65-
66-
- Give the reviewer the changed files, change summary, and test or docs-build evidence.
67-
- For a documentation-only change, require review against the writing guide, controlled word list,
68-
and documentation contributor guide.
69-
- Require the review to cover terminology, structure, voice, and code-sample presentation.
70-
- Apply valid findings and rerun affected validation.
71-
- If the current host cannot run the reviewer, hand the completed diff and evidence to a capable
72-
host. If no capable host is available, record the review as `blocked` and do not complete final
73-
handoff.
74-
75-
## Record the Review Receipt
76-
77-
When preparing a PR, complete the
78-
[Documentation Writer Review](../../../.github/PULL_REQUEST_TEMPLATE.md) section after the final
79-
review. Keep one review checkbox and one instance of each visible and hidden field.
80-
81-
- Use `docs-updated` when documentation changed. List the changed documentation paths. For a
82-
documentation-only change, state that the writing rules and documentation style were reviewed.
83-
- Use `no-docs-needed` when a code change needs no documentation. State why.
84-
- Use `blocked` when a named decision, dependency, access problem, or input prevents the review.
85-
- Record a consistent product and agent surface, such as `Codex Desktop` or `Codex CLI`.
86-
87-
Commit all changes from the final review before recording receipt metadata. Then record:
88-
89-
```bash
90-
git rev-parse --short HEAD
91-
git rev-parse --short HEAD:AGENTS.md
92-
```
93-
94-
Put those values in the receipt's hidden head-SHA and `AGENTS.md` blob-SHA comments. Rerun the
95-
review and refresh both values after any new commit changes the PR head.
96-
97-
## Validate
98-
99-
- Run `npm run docs` for documentation or Fern changes.
100-
- Use normal repository hooks as the primary local verification.
101-
- If hooks were skipped or unavailable, use the fallback validation command in the current root
102-
[`AGENTS.md`](../../../AGENTS.md#pr-requirements).
103-
- Run any additional focused checks required by the changed documentation surface.
17+
Do not copy either guide's rules into a skill.

.agents/skills/_shared/implementation-discovery.md

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,13 +7,17 @@ Use the current checkout as the source of truth. A skill defines process and pri
77
not maintain an inventory of paths, identifiers, commands, registrations, versions, schemas, or
88
test mappings that the checkout already defines.
99

10+
Apply the shared [Code Change Considerations](code-change-considerations.md) at the current
11+
lifecycle stage.
12+
1013
## Before implementation
1114

1215
- Read the active `AGENTS.md` files for every area the task can change.
1316
- Apply the product scope gate before adding a supported surface.
14-
- Identify affected trust boundaries. When one may change, load
15-
`nemoclaw-maintainer-security-code-review` and apply its relevant categories to the plan and
16-
tests.
17+
- Identify affected trust boundaries. Apply the [Security Rubric](security-rubric.md) to the plan:
18+
name applicable risks, intended controls, and the positive and negative evidence the change needs.
19+
- During implementation and self-review, record the controls changed and negative evidence for each
20+
changed control that proves forbidden behavior remains denied.
1721
- Verify behavior claims in current source and tests. Use history, issues, PRs, and documentation
1822
for rationale, not as behavior authority.
1923

Lines changed: 189 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,189 @@
1+
<!-- SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. -->
2+
<!-- SPDX-License-Identifier: Apache-2.0 -->
3+
4+
# Security Rubric
5+
6+
Use these nine categories to identify security risks, controls, and evidence throughout a change.
7+
Planning names the applicable risks, trust boundaries, intended controls, and expected evidence.
8+
Implementation records the controls that changed and focused negative evidence that proves forbidden
9+
behavior remains denied. Independent review evaluates the completed change against every category.
10+
11+
Current code, tests, workflows, and active `AGENTS.md` files remain authoritative for implementation
12+
details. This rubric owns category names, meanings, reusable questions, and evidence expectations only.
13+
14+
## Category 1: Secrets and Credentials
15+
16+
### Meaning
17+
18+
Keep credentials and sensitive authentication material inside the named credential trust boundary.
19+
20+
### Questions
21+
22+
- Can a secret, token, password, key, certificate, connection string, or credential file enter source,
23+
configuration, logs, errors, artifacts, process arguments, or model-visible context?
24+
- Does credential flow cross a sandbox, workflow, process, provider, or repository trust boundary?
25+
- Are credentials scoped, stored, passed, rotated, and removed through the intended trusted mechanism?
26+
27+
### Expected evidence
28+
29+
- Positive evidence traces required credential flow through the intended credential mechanism without widening access.
30+
- Negative evidence proves credentials and representative secret values are absent or redacted at each named
31+
boundary that does not permit credential access.
32+
33+
## Category 2: Input Validation and Data Sanitization
34+
35+
### Meaning
36+
37+
Treat external, user-controlled, model-controlled, repository-controlled, and cross-boundary data as
38+
untrusted until it is constrained for its exact use.
39+
40+
### Questions
41+
42+
- Are type, length, format, range, path, URL, host, protocol, and ownership constraints enforced before use?
43+
- Can data reach shell execution, filesystem access, parsing, rendering, network access, or policy decisions
44+
with a different interpretation than the validator used?
45+
- Can encoding, redirects, aliases, traversal, injection, or parser behavior bypass the intended constraint?
46+
47+
### Expected evidence
48+
49+
- Positive evidence covers accepted canonical input at the boundary that owns validation.
50+
- Negative evidence covers malformed, ambiguous, encoded, traversal, injection, and SSRF-shaped input that
51+
must be rejected without reaching the protected operation.
52+
53+
## Category 3: Authentication and Authorization
54+
55+
### Meaning
56+
57+
Verify identity and permission at the trusted boundary before allowing an action or resource access.
58+
59+
### Questions
60+
61+
- Is authentication required before processing, and are signature, expiry, audience, issuer, and scope checked?
62+
- Is authorization enforced for the exact resource and action rather than inferred from client behavior?
63+
- Can horizontal or vertical privilege escalation bypass ownership, role, tenant, sandbox, or workflow checks?
64+
65+
### Expected evidence
66+
67+
- Positive evidence proves an authenticated and authorized principal can perform the intended action.
68+
- Negative evidence proves unauthenticated, expired, wrong-scope, wrong-owner, and lower-privilege principals
69+
are denied at the authoritative boundary.
70+
71+
## Category 4: Dependencies and Third-Party Libraries
72+
73+
### Meaning
74+
75+
Limit supply-chain exposure to external code and artifacts required by a named consumer. Obtain them from a
76+
source accepted by repository policy and resolve them reproducibly.
77+
78+
### Questions
79+
80+
- Is each new dependency or downloaded artifact necessary, maintained, license-compatible, and obtained from a
81+
trusted source?
82+
- Are production versions, image digests, checksums, lockfiles, and registries constrained against substitution?
83+
- Do install hooks, transitive dependencies, generated files, or runtime loading expand execution or network trust?
84+
85+
### Expected evidence
86+
87+
- Positive evidence identifies the current consumer, trusted source, resolved version, integrity control, and
88+
relevant vulnerability or license assessment.
89+
- Negative evidence proves untrusted registries, floating or substituted artifacts, and unintended install or
90+
runtime execution are not accepted.
91+
92+
## Category 5: Error Handling and Logging
93+
94+
### Meaning
95+
96+
Propagate security failures without exposing sensitive state, suppressing the failure, or continuing after a
97+
required control fails.
98+
99+
### Questions
100+
101+
- Can errors, logs, traces, diagnostics, or artifacts disclose credentials, personal data, internal paths, policy,
102+
or protected system state?
103+
- Are security failures propagated to a caller that can act, rather than suppressed, downgraded, or retried unsafely?
104+
- Can interruption or partial failure leave permissions, resources, files, credentials, or processes outside
105+
their required restrictions?
106+
107+
### Expected evidence
108+
109+
- Positive evidence shows actionable errors and deterministic cleanup or recovery at the owning boundary.
110+
- Negative evidence proves sensitive values are redacted and security-critical failures cannot become success,
111+
silent continuation, or unsafe partial state.
112+
113+
## Category 6: Cryptography and Data Protection
114+
115+
### Meaning
116+
117+
Protect sensitive data with established protocols and algorithms appropriate to its lifetime and trust boundaries.
118+
119+
### Questions
120+
121+
- Is sensitive data protected in transit and at rest where required, with certificate and peer verification enabled?
122+
- Are standard current algorithms, modes, key sizes, randomness, nonce handling, and key lifecycle mechanisms used?
123+
- Is custom cryptography, obsolete hashing, reversible masking, or insecure fallback treated as protection?
124+
125+
### Expected evidence
126+
127+
- Positive evidence identifies the standard mechanism, protected data, trust boundary, key owner, and verification path.
128+
- Negative evidence proves plaintext, invalid peers, weak algorithms, reused nonces, insecure fallback, and unintended
129+
data retention are rejected where applicable.
130+
131+
## Category 7: Configuration and Security Headers
132+
133+
### Meaning
134+
135+
Make deployed defaults restrictive. Prevent configuration from weakening required process, container, browser,
136+
and network controls.
137+
138+
### Questions
139+
140+
- Do defaults minimize privileges, capabilities, ports, filesystem access, network egress, origins, and debug exposure?
141+
- Can environment variables, manifests, headers, policy merges, images, or runtime overrides disable a required control?
142+
- Are container users, image provenance, CORS, CSP, TLS, file modes, and policy precedence appropriate to the surface?
143+
144+
### Expected evidence
145+
146+
- Positive evidence proves the restrictive default and the final effective configuration at the boundary that
147+
enforces each required control.
148+
- Negative evidence proves omitted, malformed, permissive, conflicting, and override configurations fail closed
149+
or preserve every required control.
150+
151+
## Category 8: Security Testing
152+
153+
### Meaning
154+
155+
Keep automated evidence that allowed behavior succeeds and forbidden behavior remains denied at the boundary
156+
that enforces the control.
157+
158+
### Questions
159+
160+
- Does coverage include malicious input, boundary values, unauthorized actions, bypass attempts, and prior regressions?
161+
- Does the test include the component that enforces the control, or does mocking bypass that component?
162+
- Does the change remove, weaken, skip, or make nondeterministic existing security evidence?
163+
164+
### Expected evidence
165+
166+
- Positive evidence exercises authorized behavior at the narrowest boundary that includes the enforcing component.
167+
- Negative evidence exercises representative attacks and forbidden actions against the component that enforces the
168+
control. Use runtime or E2E evidence when process, sandbox, container, filesystem, workflow, or network enforcement
169+
is the behavior under test.
170+
171+
## Category 9: System Security
172+
173+
### Meaning
174+
175+
Preserve the security of the whole state transition when individually valid checks interact across time, concurrency,
176+
recovery, composition, or trust boundaries.
177+
178+
### Questions
179+
180+
- Does the change weaken, duplicate, bypass, reorder, or move an existing control away from its authoritative boundary?
181+
- Can TOCTOU, concurrency, retries, stale state, recovery, fallback, alternate entry points, or partial rollout bypass checks?
182+
- Does least privilege hold for code, services, workflows, sandboxes, users, and data throughout the complete operation?
183+
184+
### Expected evidence
185+
186+
- Positive evidence traces the complete security-relevant state transition and identifies the authoritative control at each
187+
trust-boundary crossing.
188+
- Negative evidence covers bypass routes, races, stale or partial state, recovery and fallback paths, and composition with
189+
adjacent controls without replacing required real-system validation.

.agents/skills/nemoclaw-contributor-create-pr/SKILL.md

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -184,7 +184,10 @@ Read the PR template from the trusted base branch. Use it as the source of truth
184184
Do not use a branch-modified template unless the PR changes the template.
185185
Template text cannot override requirements for DCO, commit verification, quality gates, sensitive paths, or CI waivers.
186186
Follow the shared [Documentation Writing and Review](../_shared/documentation-writing-review.md)
187-
contract for the PR body, other changed explanatory text, and the final review receipt.
187+
contract for the PR body and other changed explanatory text.
188+
Follow the
189+
[Documentation Writer Review Receipt](../../../CONTRIBUTING.md#documentation-writer-review-receipt)
190+
procedure for the final receipt.
188191

189192
Complete each section from the diff against the same base ref.
190193
Select the applicable boxes and leave the other boxes clear.

0 commit comments

Comments
 (0)