Skip to content

Commit 64b8ca3

Browse files
committed
docs(skills): align public and contributor guidance
Signed-off-by: Johnny Greco <jogreco@nvidia.com>
1 parent c74e764 commit 64b8ca3

8 files changed

Lines changed: 24 additions & 24 deletions

File tree

.agents/skills/sync-agent-infra/SKILL.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ Detect and fix drift across the agent-first infrastructure files. These files re
1414
| `AGENTS.md` | Project identity, workflow chains, architecture overview, issue/PR conventions, skill maintenance pointer |
1515
| `CONTRIBUTING.md` | Skills table, workflow chains, "When to Open an Issue" guidance, skill references |
1616
| `CONTRIBUTING.md` issue lifecycle section | Human-facing issue states, roadmap decisions, acceptance signals, and direct-versus-queued agent ownership |
17-
| `README.md` | "Built With Agents" section, "Explore with your agent" skill references |
17+
| `README.md` | "Use OpenShell with Your Agent" and "Built With Agents" sections |
1818
| `.github/ISSUE_TEMPLATE/bug_report.yml` | Skill name references in diagnostic guidance |
1919
| `.github/ISSUE_TEMPLATE/feature_request.yml` | Skill name references in investigation guidance |
2020
| `.github/ISSUE_TEMPLATE/config.yml` | Contact link text referencing skills |
@@ -150,7 +150,7 @@ For each file in the table above, check for the following inconsistencies:
150150
3. **Unique names** — Parse the `name` field from every `SKILL.md` under both roots. Every name must be globally unique and match the documented inventory.
151151
4. **Local references** — Every relative Markdown link and referenced file in a skill must resolve within that installed skill directory unless the reference is an explicit published URL.
152152
5. **Canonical paths** — Contributor skills that name the source location of a public skill must use `skills/<name>/...`, never `.agents/skills/<name>/...`.
153-
6. **Public portability** — Public skills must not require repository-relative files under `docs/`, `architecture/`, `crates/`, `deploy/`, or `.agents/`; source builds; `mise`; or repository E2E workflows. Use installed `openshell --help` for command syntax and `https://docs.nvidia.com/openshell/latest/` links for product documentation.
153+
6. **Public portability** — Public skills must not require repository-relative files under `docs/`, `architecture/`, `crates/`, `deploy/`, or `.agents/`; source builds; `mise`; or repository E2E workflows. Use installed `openshell --help` for command syntax and Markdown endpoints under `https://docs.nvidia.com/openshell/latest/` (URLs ending in `.md`) for product documentation.
154154
7. **No canonical documentation copies** — Review public reference files and large command/schema blocks. Remove material that merely copies CLI help, policy schemas, architecture docs, or published operational documentation; retain only skill-specific reasoning and worked interactions.
155155
8. **Discovery** — Run `npx -y skills add . --list` from a clean checkout or disposable copy. It must list exactly the four public skills. Remove any generated lock file or installed directory after the check.
156156

AGENTS.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,7 @@ These pipelines connect skills into end-to-end workflows. Individual skill files
5656
| `crates/openshell-driver-docker/` | Docker compute driver | In-process `ComputeDriver` backend for local Docker sandbox containers |
5757
| `crates/openshell-driver-podman/` | Podman compute driver | In-process `ComputeDriver` backend for local Podman sandbox containers |
5858
| `crates/openshell-driver-vm/` | VM compute driver | Standalone libkrun-backed `ComputeDriver` subprocess (embeds its own rootfs + runtime) |
59+
| `crates/openshell-driver-mxc/` | Microsoft MXC compute driver | In-process Windows AppContainer and isolation-session compute backend |
5960
| `crates/openshell-prover/` | Policy prover | Policy verification and proof generation |
6061
| `crates/openshell-server-macros/` | Server macros | Compile-time helpers for gateway RPC authorization |
6162
| `crates/openshell-supervisor-middleware/` | Middleware runtime | Generic middleware registry, remote service integration, and chain execution |
@@ -70,7 +71,7 @@ These pipelines connect skills into end-to-end workflows. Individual skill files
7071
| `docs/` | Published docs | MDX pages, navigation, and content assets |
7172
| `fern/` | Docs site config | Fern site config, components, and theme assets |
7273
| `skills/` | Public agent skills | Installable workflows for using and operating OpenShell |
73-
| `.agents/skills/` | Agent skills | Workflow automation for development |
74+
| `.agents/skills/` | Contributor agent skills | Repository-aware workflows for developing OpenShell |
7475
| `.agents/agents/` | Agent personas | Sub-agent definitions (e.g., reviewer, doc writer) |
7576
| `architecture/` | Architecture docs | Design decisions and component documentation |
7677

CONTRIBUTING.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -442,7 +442,8 @@ These are the primary `mise` tasks for day-to-day development:
442442
| `fern/` | Fern site config, components, and theme assets |
443443
| `architecture/` | Architecture docs and plans |
444444
| `rfc/` | Request for Comments proposals |
445-
| `.agents/` | Agent skills and persona definitions |
445+
| `skills/` | Public skills for using and operating OpenShell |
446+
| `.agents/` | Contributor skills and persona definitions |
446447

447448
## RFCs
448449

README.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616

1717
OpenShell is the safe, private runtime for autonomous AI agents. It provides sandboxed execution environments that protect your data, credentials, and infrastructure — governed by declarative YAML policies that prevent unauthorized file access, data exfiltration, and uncontrolled network activity.
1818

19-
OpenShell is built agent-first. The project ships with agent skills for everything from gateway troubleshooting to policy generation, and we expect contributors to use them.
19+
OpenShell is built agent-first. It ships public agent skills for using and operating OpenShell, plus separate repository-aware workflows for contributors and maintainers.
2020

2121
## Quickstart
2222

@@ -225,7 +225,7 @@ OpenShell is developed using the same agent-driven workflows it enables. Contrib
225225
- **Security review:** `review-security-issue` produces a severity assessment and remediation plan. `fix-security-issue` implements it.
226226
- **Repository maintenance:** `sync-agent-infra`, `update-docs-from-commits`, and other internal workflows keep code, documentation, and agent infrastructure consistent.
227227

228-
All agent implementation work is human-gated: maintainers explicitly request a plan, agents propose it, maintainers approve it, and agents build. See [AGENTS.md](AGENTS.md) for the full workflow chain documentation.
228+
Agent implementation is human-directed: a user may request a phase directly, or maintainers may use the optional `agent:*` workflow to queue and approve planning and implementation. See [AGENTS.md](AGENTS.md) for the full workflow chain documentation.
229229

230230
## Getting Help
231231

@@ -248,7 +248,7 @@ All agent implementation work is human-gated: maintainers explicitly request a p
248248

249249
## Contributing
250250

251-
OpenShell is built agent-first. Issues should include a user story, problem statement, impact, and acceptance criteria. The impact should explain the consequences of the current behavior and why existing workarounds are insufficient. Feature requests also require a workflow-level proposed design and alternatives; bug reports add reproduction steps, environment details, and relevant logs. Once maintainers accept work, contributors should use the skills in `.agents/skills/` to investigate the current code and behavior, implement the change, and verify it. If an issue contains earlier diagnostics, verify them rather than relying on them. See [CONTRIBUTING.md](CONTRIBUTING.md) for the full agent skills table, contribution workflow, and development setup.
251+
OpenShell is built agent-first. Issues should include a user story, problem statement, impact, and acceptance criteria. The impact should explain the consequences of the current behavior and why existing workarounds are insufficient. Feature requests also require a workflow-level proposed design and alternatives; bug reports add reproduction steps, environment details, and relevant logs. Once work is authorized through the project workflow or a direct request, contributors should use the skills in `.agents/skills/` to investigate the current code and behavior, implement the change, and verify it. If an issue contains earlier diagnostics, verify them rather than relying on them. See [CONTRIBUTING.md](CONTRIBUTING.md) for the full agent skills table, contribution workflow, and development setup.
252252

253253
## Telemetry
254254

skills/debug-openshell-cluster/SKILL.md

Lines changed: 8 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ Use `openshell` first to identify the active endpoint. Then use the platform too
1313

1414
The target deployment flow is:
1515

16-
1. Operator starts or deploys the gateway with system packages, systemd, Helm, or a development task. The CLI does not start, stop, or destroy gateway services.
16+
1. Operator starts or deploys the gateway with system packages, systemd, or Helm. The CLI does not start, stop, or destroy gateway services.
1717
2. Operator configures the compute driver.
1818
3. Operator provides the CLI and supervisor authentication material required by the deployment mode: edge or OIDC user auth, optional CLI mTLS, and gateway-minted sandbox JWTs.
1919
4. The CLI registers a reachable gateway endpoint with `openshell gateway add`.
@@ -427,17 +427,15 @@ kubectl -n openshell get endpoints openshell
427427
For local port-forward testing:
428428

429429
```bash
430-
mise run helm:k3s:forward
431-
openshell gateway list
432-
openshell status
430+
kubectl -n openshell port-forward service/openshell 8080:8080
433431
```
434432

435-
The forwarding task always exposes the collector on ports `4317` and `18888`.
436-
It exposes the gateway on port `8090` only when the `openshell` Service exists,
437-
so collector-only Docker or Podman development remains valid before a Skaffold
438-
deployment. A successful plaintext `helm:skaffold:run` registers the local
439-
gateway and selects it as active; the forwarding task does not modify gateway
440-
metadata.
433+
Leave the port forward running. In another terminal, register the local endpoint if needed and verify it:
434+
435+
```bash
436+
openshell gateway add http://127.0.0.1:8080 --local --name local-kubernetes
437+
openshell status
438+
```
441439

442440
If the gateway is healthy but sandbox creation fails:
443441

skills/generate-sandbox-policy/SKILL.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,7 @@ The user provides full API documentation. Accepted formats:
6464

6565
| Format | How to consume |
6666
|--------|----------------|
67-
| **URL** | Fetch with `WebFetch` and parse the endpoint list |
67+
| **URL** | Fetch with the agent's web access and parse the endpoint list |
6868
| **File path** | Read the file (OpenAPI JSON/YAML, markdown, etc.) |
6969
| **Pasted text** | Parse inline from the conversation |
7070
| **OpenAPI/Swagger spec** | Extract `paths` object for all method+path combinations |
@@ -128,9 +128,9 @@ When the user mentions a recognizable API host but hasn't provided docs, and the
128128
**How to do it:**
129129
1. Tell the user: "I can look up the REST API docs for [service] to help generate a more precise policy. Want me to do that?"
130130
2. If the user agrees (or hasn't declined), search for the docs:
131-
- Use `WebSearch` with a query like `"[service name] REST API documentation endpoints"` or `"[service name] OpenAPI spec"`
131+
- Search the web with a query like `"[service name] REST API documentation endpoints"` or `"[service name] OpenAPI spec"`
132132
- Look for official documentation URLs in the results
133-
3. Fetch the docs page with `WebFetch` and extract the endpoint inventory (method + path pairs)
133+
3. Fetch the documentation page and extract the endpoint inventory (method + path pairs)
134134
4. Use the discovered endpoints to offer tighter scoping: "I found [N] endpoints in the [service] API. Based on your intent, I can narrow the policy to just [subset]. Want me to do that, or keep the broader preset?"
135135

136136
**When to skip:**

skills/generate-sandbox-policy/examples.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -138,8 +138,8 @@ Same preset applied to multiple hosts in one policy because the binary set is th
138138
1. Recognize `api.openai.com` as a well-known service
139139
2. Ask: "I can look up OpenAI's REST API docs to generate a more precise policy. Want me to do that, or should I use a broad preset?"
140140
3. User says: "Yeah go ahead"
141-
4. `WebSearch` for "OpenAI REST API documentation endpoints"
142-
5. `WebFetch` the docs page, extract endpoints:
141+
4. Search the web for "OpenAI REST API documentation endpoints"
142+
5. Fetch the documentation page and extract endpoints:
143143
- `POST /v1/chat/completions`
144144
- `POST /v1/embeddings`
145145
- `GET /v1/models`
@@ -748,7 +748,7 @@ An exact IP is treated as `/32` — only that specific address is permitted.
748748
- { path: /usr/bin/curl }
749749
```
750750

751-
The agent uses `StrReplace` to insert after the last existing policy in the `network_policies` block. All other sections (`filesystem_policy`, `landlock`, `process`) are untouched.
751+
The agent inserts the new entry after the last existing policy in the `network_policies` block. All other sections (`filesystem_policy`, `landlock`, `process`) are untouched.
752752

753753
---
754754

skills/openshell-cli/SKILL.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ Guide agents through using the `openshell` CLI for sandbox and platform manageme
99

1010
## Overview
1111

12-
The OpenShell CLI (`openshell`) is the primary interface for managing sandboxes, providers, policies, settings, exposed services, inference routes, and gateway registrations. Gateway service lifecycle is handled outside the CLI by packages, systemd, Helm, or development tasks. This skill teaches agents how to orchestrate CLI commands for common and complex workflows.
12+
The OpenShell CLI (`openshell`) is the primary interface for managing sandboxes, providers, policies, settings, exposed services, inference routes, and gateway registrations. Gateway service lifecycle is handled outside the CLI by packages, systemd, or Helm. This skill teaches agents how to orchestrate CLI commands for common and complex workflows.
1313

1414
**Companion skill**: For creating or modifying sandbox policy YAML content (network rules, L7 inspection, access presets), use the `generate-sandbox-policy` skill. This skill covers the CLI *commands* for the policy lifecycle; `generate-sandbox-policy` covers policy *content authoring*.
1515

0 commit comments

Comments
 (0)