Skip to content

chore(skills): flip canonical skill dir to skills/, demote .agents/skills to symlink - #10017

Merged
saturley-hall merged 2 commits into
mainfrom
chore/flip-skills-canonical-dir
May 27, 2026
Merged

chore(skills): flip canonical skill dir to skills/, demote .agents/skills to symlink#10017
saturley-hall merged 2 commits into
mainfrom
chore/flip-skills-canonical-dir

Conversation

@dagil-nvidia

@dagil-nvidia dagil-nvidia commented May 27, 2026

Copy link
Copy Markdown
Collaborator

Summary

NVSkills CI (added in #9998, vendored from NVIDIA/skills upstream) dispatches on PR changes under skills/, team-skills/, rules/team-rules/, or plugins/. Pre-flip, Dynamo's canonical skill location was .agents/skills/ with a root-level skills symlink pointing into it. PRs touching skills showed up under .agents/skills/... in the GitHub PR files API, so the NVSkills path filter never matched and the /nvskills-ci signing dispatch was effectively unreachable.

This PR flips the layout:

  • skills/ (real directory at repo root) is now canonical.
  • .agents/skills becomes a symlink to ../skills, preserving the agentskills.io interop convention for clients that walk .agents/skills/ natively (Cursor, Codex, etc).
  • .github/filters.yaml drops the now-redundant root-level 'skills' entry — .agents/** still covers the new symlink, and skill content under skills/ correctly stays outside the docs filter.
  • .gitignore negation pattern updated so the new .agents/skills symlink is not ignored.

Single source of truth on disk; both skills/<x>/SKILL.md and .agents/skills/<x>/SKILL.md resolve to the same content. Clients on either convention keep working.

The four skills from #9782 (dynamo-recipe-runner, dynamo-router-starter, dynamo-troubleshoot, dynamo-interconnect-check) are unmodified in content — only their canonical paths move.

Why now

#9782 landed the four Computex bring-up skills under .agents/skills/. #9998 landed the NVSkills CI dispatch workflow. The two are intended to compose: skills land, get signed. The path-prefix mismatch breaks that composition. This PR is the smallest change that connects them.

After merge, a /nvskills-ci comment on this PR (or any future PR touching skills/) will dispatch the NVSkills validation + signature attachment flow.

Test plan

  • CI green on the rename diff (no functional code changed)
  • ls skills/ and ls .agents/skills/ both show the four skill directories
  • readlink .agents/skills returns ../skills
  • /nvskills-ci comment on this PR dispatches to NVIDIA/nvskills-ci (i.e. confirms the path-filter now matches)

🤖 Generated with Claude Code

Summary by CodeRabbit

Release Notes

  • Chores
    • Reorganized repository directory structure with updated symbolic links and file organization
    • Adjusted CI configuration filters to align with directory changes
    • Updated gitignore rules to reflect new file locations

Review Change Stack

@dagil-nvidia
dagil-nvidia requested review from a team as code owners May 27, 2026 03:38
@github-actions github-actions Bot added chore documentation Improvements or additions to documentation actions labels May 27, 2026
@coderabbitai

coderabbitai Bot commented May 27, 2026

Copy link
Copy Markdown
Contributor

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: f2c07a21-62fb-498b-8ebb-0032e7b493a6

📥 Commits

Reviewing files that changed from the base of the PR and between 7df50c3 and 30ccd48.

📒 Files selected for processing (20)
  • .agents/skills
  • .github/filters.yaml
  • .gitignore
  • skills
  • skills/dynamo-interconnect-check/SKILL.md
  • skills/dynamo-interconnect-check/evals/evals.json
  • skills/dynamo-interconnect-check/references/interconnect-env-vars.md
  • skills/dynamo-interconnect-check/scripts/check_interconnect.py
  • skills/dynamo-recipe-runner/SKILL.md
  • skills/dynamo-recipe-runner/evals/evals.json
  • skills/dynamo-recipe-runner/references/k8s-recipe-workflow.md
  • skills/dynamo-recipe-runner/scripts/recipe_tool.py
  • skills/dynamo-router-starter/SKILL.md
  • skills/dynamo-router-starter/evals/evals.json
  • skills/dynamo-router-starter/references/router-modes.md
  • skills/dynamo-router-starter/scripts/check_router_health.py
  • skills/dynamo-troubleshoot/SKILL.md
  • skills/dynamo-troubleshoot/evals/evals.json
  • skills/dynamo-troubleshoot/references/failure-decision-tree.md
  • skills/dynamo-troubleshoot/scripts/collect_dynamo_debug_bundle.py
💤 Files with no reviewable changes (2)
  • skills
  • .github/filters.yaml

Walkthrough

The PR consolidates the skills directory structure by introducing .agents/skills as a symbolic link pointing to ../skills. Supporting configuration files are updated: .gitignore is adjusted to properly unignore the symlink, and .github/filters.yaml removes the skills path from CI documentation filters.

Changes

Skills symlink consolidation

Layer / File(s) Summary
Symlink creation and configuration updates
.agents/skills, .gitignore, .github/filters.yaml
.agents/skills is established as a symbolic link pointing to ../skills. The .gitignore unignore pattern is updated to remove the trailing slash so the exception applies without requiring a directory marker. The skills entry is removed from .github/filters.yaml documentation CI filter patterns.

🎯 1 (Trivial) | ⏱️ ~3 minutes

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Title check ✅ Passed The title clearly and specifically describes the main change: flipping the canonical skill directory from .agents/skills to skills/ and converting the former to a symlink.
Description check ✅ Passed The description provides comprehensive context including summary, motivation, technical details, and test plan, covering all required template sections substantially.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.

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


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

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

@dagil-nvidia

Copy link
Copy Markdown
Collaborator Author

/nvskills-ci

1 similar comment
@dagil-nvidia

Copy link
Copy Markdown
Collaborator Author

/nvskills-ci

@github-actions

Copy link
Copy Markdown
Contributor

dagil-nvidia and others added 2 commits May 27, 2026 00:30
…ills to symlink

NVSkills CI watches changes under skills/ (vendored from NVIDIA/skills upstream).
Pre-flip layout had skills under .agents/skills/ with skills/ as a root symlink,
so NVSkills path-filter never matched skill changes and the signing dispatch was
unreachable.

Flip the canonical real directory to skills/ at the repo root. .agents/skills is
now a symlink to ../skills, preserving the agentskills.io interop convention for
clients that walk .agents/skills/ natively. Single source of truth on disk; both
paths still resolve.

Also drop the now-redundant 'skills' entry from the docs filter (.agents/** still
covers the symlink) and update .gitignore so the new symlink isn't ignored.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Signed-off-by: Dan Gil <dagil@nvidia.com>
The flip moves skill content from .agents/skills/<x>/ (covered by .agents/**)
to skills/<x>/ at the repo root, which wasn't matched by any filter pattern.
changed-files CI fails with "Please add these paths to .github/filters.yaml"
listing every new skill file.

Add skills/** under docs: (skill content is documentation-shaped; doesn't
trigger code-test jobs, but satisfies the coverage requirement). Same
classification as the .agents/** glob that previously covered these paths.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Signed-off-by: Dan Gil <dagil@nvidia.com>
@dagil-nvidia

Copy link
Copy Markdown
Collaborator Author

/nvskills-ci

@saturley-hall
saturley-hall merged commit 2a4e3d7 into main May 27, 2026
101 of 102 checks passed
@saturley-hall
saturley-hall deleted the chore/flip-skills-canonical-dir branch May 27, 2026 14:01
@dagil-nvidia

Copy link
Copy Markdown
Collaborator Author

/nvskills-ci

MartinRepo pushed a commit to MartinRepo/dynamo that referenced this pull request May 28, 2026
…ills to symlink (ai-dynamo#10017)

Signed-off-by: Dan Gil <dagil@nvidia.com>
Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
dagil-nvidia added a commit that referenced this pull request May 28, 2026
Touches each of the four skills under skills/ to add agentskills.io-compatible
'tags' fields. Matches the convention used by the NVIDIA/nvskills-ci reference
skill (skills/ci-smoke-test/SKILL.md).

Primary purpose: re-trigger the NVSkills CI validation flow that was first
exercised on PR #10017 (now merged). That dispatch reached the downstream
GitLab pipeline 52784444 but failed at validate:content with no per-skill
detail in the GitHub-side log. This PR re-runs the path so the GitLab
validate:content log is fresh and inspectable, and adds a frontmatter field
that may be the underlying validation gap.

No content changes; SKILL.md bodies, references, scripts, and evals are
unmodified.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Signed-off-by: Dan Gil <dagil@nvidia.com>
saturley-hall added a commit that referenced this pull request May 29, 2026
Five doc URLs reference paths that no longer exist at blob/main but DO
exist on this release branch (and therefore on the v1.2.0 tag built from
it):

- .agents/skills/{dynamo-docs,tool-parser-generator}/SKILL.md (renamed to
  .agents/contributor-skills/ on main, PR #10017)
- benchmarks/llm/perf.sh (renamed to benchmarks/frontend/scripts/ on main)
- deploy/inference-gateway/standalone/helm/dynamo-gaie/ (removed when the
  standalone EPP chart was deprecated, PR #10001)

Adding them to .lycheeignore keeps lychee CI green on the release branch.
Fern's existing blob/main → blob/vX.Y.Z rewrite at tag-cut time
(.github/workflows/fern-docs.yml) will produce immutable, working URLs in
the published v1.2.0 docs, since each path exists on the v1.2.0 tag.

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

Labels

actions chore documentation Improvements or additions to documentation size/XS

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants