feat: show file count per skill on dashboard skill page - #2876
Merged
Conversation
Add a fileCount to each skill's metadata in the frontmatter dashboard collector (recursive count of files in the built output/skills/<skill> directory, including nested sub-skills) and surface it on the Skills dashboard detail page. Closes microsoft#2869. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> Copilot-Session: 1eef8fa4-d4ee-4650-b6c2-7e6085af9234
Contributor
There was a problem hiding this comment.
Pull request overview
Adds a “file count” metric to the Skills dashboard detail page by computing the number of files shipped in each built skill under output/skills/ and surfacing that value in the UI. This aligns with the request in #2869 to show the number of files in each skill’s built output.
Changes:
- Compute a recursive file count per built skill directory in the frontmatter dashboard collector and store it as
metadata.fileCount. - Add collector tests to verify recursive counting (including nested directories) and the missing-directory default behavior.
- Extend the Skills dashboard UI to read and render
Files: N, with a matching CSS class.
Show a summary per file
| File | Description |
|---|---|
| scripts/src/dashboard/collectors/frontmatter.ts | Adds recursive file counting and injects metadata.fileCount into the frontmatter category report. |
| scripts/src/dashboard/tests/collectors/frontmatter.test.ts | Adds coverage for recursive fileCount computation and missing-directory defaulting. |
| dashboard/src/skills/App.tsx | Extends Skill type and renders the file count on the skill detail header. |
| dashboard/src/skills/skills.css | Adds styling for the new file count line in the header. |
Review details
- Files reviewed: 4/4 changed files
- Comments generated: 1
- Review effort level: Low
RickWinter
approved these changes
Jul 17, 2026
RickWinter
approved these changes
Jul 20, 2026
JasonYeMSFT
reviewed
Jul 20, 2026
JasonYeMSFT
approved these changes
Jul 20, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Closes #2869.
What
Each skill's page in the dashboard
Skillssection now shows a count of the number of files in the built/output skill.Changes
scripts/src/dashboard/collectors/frontmatter.ts— added acountFilesRecursivehelper and anaddFileCountsstep that populatesmetadata.fileCountfor each skill from its directory underoutput/skills/. The count is recursive and includes nested sub-skill files. Applied to both the success and non-zero-exit recovery paths; collector version bumped to1.1.0.dashboard/src/skills/App.tsx— addedfileCountto theSkilltype, read it from the health-data metadata, and renderFiles: Nin the skill detail header.dashboard/src/skills/skills.css— added a matching.skills-file-countstyle.fileCountis computed recursively (including nested sub-skills) and defaults to 0 when the directory is missing.Validation
scriptsdashboard suite: 188/188 pass (frontmatter collector: 14/14).dashboardskills tests: 14/14 pass.scriptstypechecks clean; skills App compiles clean (the onlytscerror is a pre-existing recharts type issue in the unrelatedtoken-usage/App.tsx, confirmed present on the base branch).