sync-agent-infra
Sync Agent Infrastructure
Detect and fix drift across the agent-first infrastructure files. These files reference each other and must stay consistent:
| File | What it tracks |
|---|---|
AGENTS.md |
Project identity, workflow chains, architecture overview, issue/PR conventions |
CONTRIBUTING.md |
Skills table, workflow chains, "When to Open an Issue" guidance, skill references |
README.md |
"Built With Agents" section, "Explore with your agent" skill references |
.github/ISSUE_TEMPLATE/bug_report.yml |
Skill name references in diagnostic guidance |
.github/ISSUE_TEMPLATE/feature_request.yml |
Skill name references in investigation guidance |
.github/ISSUE_TEMPLATE/config.yml |
Contact link text referencing skills |
.github/workflows/issue-triage.yml |
Comment text referencing skills |
.agents/skills/triage-issue/SKILL.md |
Skill name references in gate check and diagnosis steps |
.agents/skills/openshell-cli/SKILL.md |
Companion skills table |
.agents/skills/build-from-issue/SKILL.md |
state:triage-needed label awareness |
When to Run
- After adding, removing, or renaming a skill in
.agents/skills/ - After adding, removing, or renaming a crate in
crates/ - After changing workflow chain relationships between skills
- After modifying issue or PR templates
- Before opening a PR that touches any of the above
Prerequisites
You must be in the OpenShell repository root.
Step 1: Inventory Current State
Gather the source of truth for each category.
Skills
List all skill directories:
ls -1 .agents/skills/
This is the canonical skill list. Every other file must agree with it.
Crates
List all crate directories:
ls -1 crates/
Workflow Chains
The canonical workflow chains are defined in AGENTS.md under "## Workflow Chains". Read that section — it is the source of truth for skill pipelines.
Labels
The canonical label set is used by skills and templates. The key labels are: state:agent-ready, state:review-ready, state:in-progress, state:pr-opened, state:triage-needed, topic:security, good first issue, spike, and the relevant area:*, topic:*, integration:*, and test:* labels.
Step 2: Check Each File for Drift
For each file in the table above, check for the following inconsistencies:
CONTRIBUTING.md
- Skills table — Every skill in
.agents/skills/must appear in the "Agent Skills for Contributors" table. No skill in the table should reference a directory that doesn't exist. - Workflow chains — Must match
AGENTS.mdworkflow chains exactly. - Skill references in prose — Any skill mentioned by name in "Before You Open an Issue", "When to Open an Issue", or "When NOT to Open an Issue" must exist in
.agents/skills/.
AGENTS.md
- Architecture overview — Every crate in
crates/must appear in the architecture table. Thepython/,proto/,deploy/,.agents/rows must also be present. - Workflow chains — Verify each skill named in a chain exists in
.agents/skills/. - Issue/PR conventions — Verify referenced skills (
create-github-issue,create-github-pr,build-from-issue) exist.
README.md
- "Explore with your agent" — Skill names referenced must exist in
.agents/skills/. - "Built With Agents" — Skill names referenced must exist. Workflow descriptions should be consistent with
AGENTS.mdchains.
Issue Templates
bug_report.yml— Skill names in the Agent Diagnostic guidance and checklist must exist.feature_request.yml— Skill names in the Agent Investigation guidance must exist.config.yml— Skill category descriptions in contact links should be accurate.
Issue Triage Workflow
issue-triage.yml— Skill names in the redirect comment must exist.
Skill Cross-References
triage-issue— Skills referenced in gate check and diagnosis steps must exist.openshell-cli— Companion skills table entries must exist.build-from-issue— Label names must match the project's label taxonomy.create-spike— Reference tobuild-from-issueas next step must be accurate.review-security-issue/fix-security-issue— Cross-references between the two must be accurate.
Step 3: Report Drift
If any inconsistencies are found, report them in a structured format:
## Agent Infrastructure Drift Report
### Skills Inventory
- ADDED (exists in .agents/skills/ but missing from CONTRIBUTING.md): <list>
- REMOVED (in CONTRIBUTING.md but missing from .agents/skills/): <list>
- OK: <count> skills consistent
### Architecture Table
- ADDED (exists in crates/ but missing from AGENTS.md): <list>
- REMOVED (in AGENTS.md but missing from crates/): <list>
- OK: <count> components consistent
### Workflow Chains
- STALE: <chain name> references non-existent skill <skill>
- OK: <count> chains consistent
### Cross-References
- <file>:<line> references non-existent skill <skill>
- <file>:<line> references non-existent label <label>
- OK: <count> references consistent
If no drift is found, report: "Agent infrastructure is consistent. No drift detected."
Step 4: Fix Drift
If drift is found, fix it by updating the affected files:
- Added skill — Add it to the CONTRIBUTING.md skills table in the appropriate category. If it participates in a workflow chain, update the chains in both
AGENTS.mdandCONTRIBUTING.md. - Removed skill — Remove it from all files. Check for references in templates and other skills.
- Renamed skill — Update every reference across all files.
- Added crate — Add a row to the AGENTS.md architecture table.
- Removed crate — Remove the row from the AGENTS.md architecture table.
- Changed workflow chain — Update chains in both
AGENTS.mdandCONTRIBUTING.md. Update the "Built With Agents" section inREADME.mdif the change is user-visible.
After fixing, re-run Step 2 to verify consistency.
Step 5: Summarize Changes
Report what was fixed:
## Changes Made
- Updated CONTRIBUTING.md skills table: added `<skill>`
- Updated AGENTS.md architecture table: removed `<crate>`
- Fixed cross-reference in `.agents/skills/triage-issue/SKILL.md`: `<old>` → `<new>`
More from nvidia/openshell
openshell-cli
Guide agents through using the OpenShell CLI (openshell) for sandbox management, provider configuration, policy iteration, BYOC workflows, and inference routing. Covers basic through advanced multi-step workflows. Trigger keywords - openshell, sandbox create, sandbox connect, logs, provider create, policy set, policy get, image push, forward, port forward, BYOC, bring your own container, use openshell, run openshell, CLI usage, manage sandbox, manage provider, gateway start, gateway select.
11generate-sandbox-policy
Generate sandbox security policies from plain-language requirements and optional REST API documentation. At minimum, takes API host:port endpoints and intent to produce preset-based or L4 policies. With full API docs (OpenAPI, Swagger, markdown), generates fine-grained per-endpoint L7 rules. Trigger keywords - generate policy, create policy, update policy, change policy, sandbox policy, network policy, API policy, security policy, allow API, restrict API.
5sbom
Generate and manage Software Bill of Materials (SBOMs) for the OpenShell project. Covers SBOM generation with Syft, license resolution via public registries, and CSV export for compliance review. Trigger keywords - SBOM, sbom, bill of materials, license audit, license resolution, generate sbom, sbom csv, dependency license, supply chain, license scan.
3create-github-pr
Create GitHub pull requests using the gh CLI. Use when the user wants to create a new PR, submit code for review, or open a pull request. Trigger keywords - create PR, pull request, new PR, submit for review, code review.
2create-spike
Investigate a plain-language problem description by deeply exploring the codebase, then create a structured GitHub issue with technical findings. Prequel to build-from-issue — maps vague ideas to concrete, buildable issues. Trigger keywords - spike, investigate, explore, research issue, technical investigation, create spike, new spike, feasibility, codebase exploration.
2build-from-issue
Given a GitHub issue number, plan and implement the work described in the issue. Operates iteratively - creates an implementation plan, responds to feedback, and only builds when the 'state:agent-ready' label is applied. Includes tests, documentation updates, and PR creation. Trigger keywords - build from issue, implement issue, work on issue, build issue, start issue.
2