diff --git a/.github/copilot-instructions.md b/.github/copilot-instructions.md new file mode 100644 index 000000000..055190392 --- /dev/null +++ b/.github/copilot-instructions.md @@ -0,0 +1,8 @@ +## Reviewing PRs + +When reviewing PRs, please respond in a friendly and constructive manner. + +- First, thank the contributor for their contribution in an enthusiastic way. +- If you have any suggestions for improvement, provide them clearly and concisely. +- If you have any questions about the PR, ask them respectfully. +- Let the contributor know that we have many PRs to review and that we appreciate their patience while we review their contribution. diff --git a/.github/instructions/metadata.instructions.md b/.github/instructions/metadata.instructions.md new file mode 100644 index 000000000..9e4493442 --- /dev/null +++ b/.github/instructions/metadata.instructions.md @@ -0,0 +1,20 @@ +--- +applyTo: "icons/*.json" +--- +# JSON Metadata Descriptor + +The schema for the JSON metadata descriptor can be found in `icon.schema.json`. It defines the required and optional properties for the JSON files that accompany each icon. The JSON metadata descriptor should be placed in the same directory as the SVG file of the icon and should have the same name as the SVG file, but with a `.json` extension. For example, if the SVG file is named `home.svg`, the JSON metadata descriptor should be named `home.json`. + +## Contributors + +The `contributors` property is a required array of GitHub usernames for the people who created or contributed to the icon. It is used to give credit to contributors and to track the icon's history. Add the PR author to the `contributors` array if they are not already listed and they have made a significant contribution to the icon's SVG. + +## Tags + +The `tags` property is an array of strings that describe the icon and can be used for searching. +Validate the tags against the `icon.schema.json` to ensure they are correctly formatted and adhere to the defined structure. +Provide tag suggestions based on the name of the icon and the use cases provided in the PR description. Use the existing tags in the repository as a reference for consistency and to avoid duplicates. Don't suggest words like: 'icon' and preferably use single words. Tags should always be in lowercase and should not contain spaces. The name of icon should not be included in the tags, as it is already specified. + +# Categories + +The `categories` property is an array of strings that specify the categories to which the icon belongs, such as "devices", "interface", "media", etc. See the `categories` property in the `icon.schema.json` for more details on the allowed values. The categories should be chosen based on the use cases provided in the PR description and the existing categories in the repository. The categories should be relevant to the icon and should help users find the icon when searching for specific types of icons. The name of icon should not be included in the categories, as it is already specified. Suggest categories based on the name of the icon and the use cases provided in the PR description. Use the existing categories in the repository as a reference for consistency and to avoid duplicates. Categories should always be in lowercase and should not contain spaces. diff --git a/icon.schema.json b/icon.schema.json index 7a0bc4a75..780a3c468 100644 --- a/icon.schema.json +++ b/icon.schema.json @@ -13,7 +13,7 @@ "title": "Lucide Icons icon schema", "type": "object", "additionalProperties": false, - "required": ["$schema", "categories", "tags"], + "required": ["$schema", "contributors", "categories", "tags"], "properties": { "$schema": { "type": "string"