-
-
Notifications
You must be signed in to change notification settings - Fork 301
Add copilot-instructions.md #1198
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Merged
Changes from all commits
Commits
Show all changes
3 commits
Select commit
Hold shift + click to select a range
File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
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
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,186 @@ | ||
| # Instructions | ||
|
|
||
| ## Project contribution guidelines | ||
|
|
||
| - [ ] Follow the project's established coding style and conventions. | ||
| - [ ] Run Ruff and fix errors before committing code. | ||
| - [ ] New code should be written to pass all Ruff checks. | ||
| - [ ] McCabe complexity should be kept low; refactor the new code | ||
| that exceeds 10. | ||
| - [ ] Existing code should be gradually improved to pass Ruff checks | ||
| when making changes. | ||
| - [ ] Write clear and concise commit messages that accurately describe | ||
| the changes made. | ||
| - [ ] For significant changes, update the CHANGELOG.md file | ||
| to document the changes. | ||
| - [ ] Follow "Keep a Changelog" principles | ||
| https://keepachangelog.com/en/1.0.0/ | ||
| - [ ] Use semantic versioning for version numbers | ||
| https://semver.org/ | ||
| - [ ] If it is a breaking change, indicate it clearly in the changelog. | ||
| - [ ] Provide migration instructions if necessary. | ||
| - [ ] Do not leave trailing whitespaces in the code or documentation files, | ||
| unless such a whitespace is explicitly necessary. | ||
| - [ ] Metadata in pyproject.toml, codemeta.json, CITATION.cff, and other | ||
| project metadata files should be consistent and up-to-date. | ||
| - [ ] Project name | ||
| - [ ] Project version | ||
| - [ ] Author/contributor names | ||
| - [ ] License information | ||
| - [ ] Project description | ||
| - [ ] Repository URL | ||
| - [ ] Keywords/tags (in the same order if possible) | ||
| - [ ] requires-python in pyproject.toml should reflect the minimum | ||
| Python version supported by the project. | ||
| - [ ] Do not introduce syntax or features that are not supported | ||
| by the specified minimum Python version, | ||
| unless it is supported via __future__ imports. | ||
|
|
||
| ## General language use | ||
|
|
||
| - [ ] Write short and simple comments. Do not state the obvious. | ||
| - [ ] Prefer clear, concise, and unambiguous sentences. | ||
| - [ ] Do not use jargon, slang, or idiomatic expressions | ||
| that may not be universally understood. | ||
| - [ ] Use active voice whenever possible. | ||
| - [ ] Use consistent terminology throughout the code and documentation. | ||
| - [ ] Define acronyms and abbreviations on their first use. | ||
| - [ ] Use technical terms accurately and appropriately. | ||
| - [ ] Avoid unnecessary complexity and verbosity. | ||
| - [ ] Use proper grammar, punctuation, and spelling. | ||
| - [ ] Use consistent formatting for dates, times, numbers, and units of measure. | ||
| - [ ] When using abbreviations for units of measure, follow the International | ||
| System of Units (SI) conventions. | ||
| - [ ] When using code snippets, ensure they are properly formatted and | ||
| follow the conventions of the programming language being used. | ||
| - [ ] Avoid words and phrases that may have more than one interpretation. | ||
| - [ ] Avoid overly long paragraphs. Breaking up text into smaller paragraphs, | ||
| using bullet points, or creating numbered lists to improve readability. | ||
| - [ ] Help readers' comprehension by separating distinct concepts, processes, | ||
| criteria, or categories. | ||
| - [ ] Use parallel language structures in lists and documentation. | ||
| - [ ] Use a uniform writing style, particularly when presenting similar or | ||
| related information, so the reader can compare easily. | ||
| - [ ] If not specified otherwise, use Chicago style for reference/citation. | ||
| - [ ] When writing on level of requirements, use the verbal forms consistently. | ||
| Use either ISO/IEC verbal form (ISO/IEC Directives, Part 2 -- | ||
| Principles and rules for the structure and drafting of ISO and IEC | ||
| documents) or IETF verbal form (RFC 2119 and RFC 8174). | ||
| Try to detect the level of requirements from type/domain of the document. | ||
| IETF is default for internet/web/semantic web projects in general. | ||
| ISO is default for SPDX project. | ||
| - [ ] Use American English spelling consistently. | ||
|
|
||
| ## Naming conventions | ||
|
|
||
| - [ ] Follow standard naming conventions for the programming language | ||
| and framework you are using. | ||
| - [ ] Use only ASCII letters, digits, hyphen (-), and underscore (_) | ||
| in names. | ||
| - [ ] For URLs/IRIs, use lowercase letters and hyphens to separate words | ||
| (e.g., `my-api-endpoint`) and follow W3C Cool URIs for the Semantic Web: | ||
| https://www.w3.org/TR/cooluris/ | ||
| - [ ] Consult Schema.org vocabularies when deciding about names. | ||
| - [ ] Consult "Style Guidelines for Naming and Labeling Ontologies in the | ||
| Multilingual Web" https://www.researchgate.net/publication/277224472 | ||
|
|
||
| ## Tidy code and documentation | ||
|
|
||
| - [ ] Ensure that the code is well-formatted and adheres to the style | ||
| guidelines of the programming language you are using. | ||
| - [ ] Use linters and formatters where applicable. | ||
| - [ ] Use "sentence case" for headings and titles in documentation. | ||
| - [ ] Write clear and concise comments and documentation for your code. | ||
| For something obvious, avoid comments that just restate the code. | ||
| - [ ] After making changes, review the code and documentation to ensure | ||
| up-to-dateness, correctness, consistency, and clarity. | ||
| - [ ] Make sure that all code comments, APIs, and documentation are consistent | ||
| with the current state of the codebase. | ||
| - [ ] Make sure that the examples in the documentation are runnable, up-to-date | ||
| and reflect the current behavior of the code. | ||
|
|
||
| ## File header | ||
|
|
||
| - [ ] When possible, put relevant SPDX File Tags at file header. | ||
| See https://spdx.github.io/spdx-spec/v2.3/file-information/ | ||
| - [ ] SPDX-FileContributor | ||
| - [ ] SPDX-FileCopyrightText | ||
| - [ ] Default SPDX-FileType for code is "SOURCE" | ||
| - [ ] Default SPDX-FileType for documentation is "DOCUMENTATION" | ||
| - [ ] Default SPDX-License-Identifier for code is "Apache-2.0" | ||
| - [ ] Default SPDX-License-Identifier for documentation is "CC0-1.0" | ||
| - [ ] Sort SPDX metadata. | ||
|
|
||
| ## Shell scripts and command line | ||
|
|
||
| - [ ] Mind the differences between GNU, BSD, macOS, | ||
| and other implementations of common Unix tools. | ||
| - [ ] Be defensive on variable expansion. | ||
| - [ ] Use quotes or other constructs to encapsulate paths, make it compatible | ||
| with different kinds of shells. | ||
| - [ ] Be mindful about semantic of different types of quotation marks. | ||
|
|
||
| ## Library imports and dependencies | ||
|
|
||
| - [ ] Recheck the correctness of library/module/package name. | ||
| Be very careful of slopsquatting and typosquatting attacks. | ||
| - [ ] Use the most updated version of the library that is supported | ||
| by the OS/compiler/framework currently being in used. | ||
| - [ ] In source code, sort imports by the programming language convention | ||
| and then by alphabetical order whenever possible. | ||
| Be careful of specific order of import requirements of some dependencies. | ||
| - [ ] In build metadata (like pyproject.toml in Python) or | ||
| dependency list (like requirements.txt in Python), sort dependencies. | ||
| - [ ] Warn users about abandoned dependency with no maintenance | ||
| for long time and suggest equivalent drop-in replacement. | ||
|
|
||
| ## API | ||
|
|
||
| - [ ] The overall architecture, code, API endpoints to follow the latest | ||
| version of OpenAPI specification at https://spec.openapis.org/oas/ | ||
| - [ ] API endpoints must use proper HTTP return code | ||
| - [ ] Follows web best practices as recommended by OpenAPI, IETF, W3C, etc. | ||
|
|
||
| ## JSON | ||
|
|
||
| - [ ] When serialize to JSON, always enclose decimal values | ||
| (for example, xs:decimal) in quotes to guarantee correct type | ||
| interpretation and preserve precision. | ||
| - [ ] Make sure JSON is valid and well-formatted. | ||
|
|
||
| ## Markdown | ||
|
|
||
| - [ ] When including metadata in Markdown file, | ||
| put them as YAML between triple-dashed lines, | ||
| as used by Hugo and Jekyll front matter. | ||
| - [ ] Be strict on the Markdown formatting. | ||
| Be mindful that what works on GitHub may not work on MkDocs, for example. | ||
| Try to keep with the standard Markdown. | ||
| - [ ] Use Markdownlint to detect and fix malformatted. | ||
|
|
||
| ## Diagram | ||
|
|
||
| - [ ] When draw the diagram in ASCII/text, recheck if all the lines are well | ||
| aligned. | ||
| Count the characters and adjust the spaces so the lines align well. | ||
|
|
||
| ## HTML | ||
|
|
||
| - [ ] Make sure HTML is valid and well-formatted. | ||
| - [ ] Make sure there is no trailing whitespace in the HTML file. | ||
| - [ ] Be conscious about accessibility. Consider to follow W3C web | ||
| accessibility recommendations when possible. | ||
| - [ ] Use sensible and concise element IDs and names that allow code | ||
| readability, name grouping also helps. | ||
|
|
||
| ## CSS | ||
|
|
||
| - [ ] Make sure there is no unused styles. | ||
| - [ ] Use sensible and concise element IDs and names that allow code | ||
| readability, name grouping also helps. | ||
|
|
||
| ## Version | ||
|
|
||
| - [ ] When suggest dependencies, recheck the version; if the version exists, | ||
| or if the version is compatible with the system or other dependencies. | ||
| - [ ] Prefer a Semantic Version when applicable. | ||
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.
Uh oh!
There was an error while loading. Please reload this page.