diff --git a/.github/prompts/build-new-icons.prompt.md b/.github/prompts/build-new-icons.prompt.md deleted file mode 100644 index 2854e05b..00000000 --- a/.github/prompts/build-new-icons.prompt.md +++ /dev/null @@ -1,32 +0,0 @@ ---- -description: Build codicons and update mapping.json & metadata.json after adding new icons -argument-hint: List the new icon names you added (e.g. "wand, sparkle-filled") -tools: ['execute/runInTerminal', 'execute/getTerminalOutput', 'read', 'edit', 'search'] ---- - -New SVG icons have been added to `src/icons/`. Your job is to build the font, update the template files, and verify everything is consistent. - -## Steps - -1. **Identify new icons** — compare `src/icons/*.svg` against the entries in `src/template/metadata.json` to find icons that don't have metadata yet. List them. - -2. **Run the build** — execute `npm run build` in the `vscode-codicons` workspace root. Wait for it to finish and confirm it succeeds (exit code 0). If it fails, diagnose and fix the issue before continuing. - -3. **Check mapping.json** — read `src/template/mapping.json`. The build's `fantasticon` step auto-generates this file. Verify each new icon appears as a primary name under its codepoint. If any new icon is missing, something went wrong in the build — investigate. - -4. **Update metadata.json** — for each new icon that is missing from `src/template/metadata.json`, add an entry with this shape: - ```json - "": { - "tags": ["", "", ...], - "category": "", - "description": "" - } - ``` - - **tags**: 4–8 search keywords describing the icon's visual appearance and usage. - - **category**: one of the existing categories already in the file (e.g. `"action"`, `"navigation"`, `"debug"`, `"file"`, `"user"`, `"git"`, `"layout"`, `"editor"`, `"symbol"`, `"status"`, `"media"`, `"device"`, `"misc"`). Pick the best fit. - - **description**: a concise one-line description. - - Keep entries sorted alphabetically by icon name. - -5. **Run the metadata check** — execute `node scripts/check-metadata.js` and confirm zero missing or orphaned entries. - -6. **Summary** — list the new icons added, their codepoints from mapping.json, and their metadata entries. diff --git a/.github/skills/build-new-icons/SKILL.md b/.github/skills/build-new-icons/SKILL.md new file mode 100644 index 00000000..26297560 --- /dev/null +++ b/.github/skills/build-new-icons/SKILL.md @@ -0,0 +1,38 @@ +--- +name: build-new-icons +description: Use after adding SVG icons to vscode-codicons. Builds the codicon font, verifies generated mappings, adds searchable metadata, and checks icon metadata consistency. +--- + +# Build New Icons + +Use this workflow after new SVG icons are added to `src/icons/`. + +## Workflow + +1. Compare `src/icons/*.svg` with the entries in `src/template/metadata.json`. +2. Identify and list every icon that does not yet have metadata. If the user supplied icon names, verify them against this comparison rather than assuming the list is complete. +3. Read `src/template/mapping.json` and allocate the next unused decimal codepoint to each new icon. Add each icon as the primary name under its codepoint and keep the codepoints in ascending order. +4. Add an entry to `src/template/metadata.json` for every new icon: + + ```json + "": { + "tags": ["", ""], + "category": "", + "description": "" + } + ``` + + - Add four to eight search tags that describe the icon's appearance and likely uses. + - Use the best-fitting category already present in the file, such as `action`, `navigation`, `debug`, `file`, `user`, `git`, `layout`, `editor`, `symbol`, `status`, `media`, `device`, or `misc`. + - Write a concise, one-line description. + - Keep entries sorted alphabetically by icon name. + +5. Run `npm run build` from the `vscode-codicons` repository root and wait for it to finish. +6. If the build fails, diagnose and fix the failure before continuing. +7. Verify that every new icon remains a primary name under its assigned codepoint in `src/template/mapping.json`. +8. Run `node scripts/check-metadata.js`. +9. Confirm that the metadata check reports no missing or orphaned entries. +10. Summarize: + - The new icon names. + - Their codepoints from `src/template/mapping.json`. + - Their entries from `src/template/metadata.json`. diff --git a/src/icons/copilot-dot-compact.svg b/src/icons/copilot-dot-compact.svg new file mode 100644 index 00000000..cb267798 --- /dev/null +++ b/src/icons/copilot-dot-compact.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/icons/copilot-dot.svg b/src/icons/copilot-dot.svg new file mode 100644 index 00000000..1e925a7d --- /dev/null +++ b/src/icons/copilot-dot.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/template/mapping.json b/src/template/mapping.json index b87f2f87..a8ef4209 100644 --- a/src/template/mapping.json +++ b/src/template/mapping.json @@ -2052,5 +2052,11 @@ ], "60657": [ "mic-off-compact" + ], + "60658": [ + "copilot-dot" + ], + "60659": [ + "copilot-dot-compact" ] } diff --git a/src/template/metadata.json b/src/template/metadata.json index f7de5fba..455b5388 100644 --- a/src/template/metadata.json +++ b/src/template/metadata.json @@ -1472,6 +1472,34 @@ "category": "ai", "description": "AI Copilot assistant (compact variant)" }, + "copilot-dot": { + "tags": [ + "ai", + "assistant", + "status", + "indicator", + "badge", + "dot", + "intelligent", + "agent" + ], + "category": "ai", + "description": "Copilot with status indicator" + }, + "copilot-dot-compact": { + "tags": [ + "ai", + "assistant", + "status", + "indicator", + "badge", + "dot", + "agent", + "compact" + ], + "category": "ai", + "description": "Copilot with status indicator (compact 12x12 variant)" + }, "copilot-error": { "tags": [ "ai",