docs: document NIPs and PR template usage#394
Conversation
There was a problem hiding this comment.
Pull Request Overview
This PR documents NIPs and standardizes pull request practices by adding comprehensive guidelines for contributors and ensuring consistent commit/PR title formatting.
- Adds a complete index of current Nostr Implementation Possibilities (NIPs) across multiple documentation files
- Establishes standardized
type: descriptionformat for PR titles and commit messages with specific allowed types - Requires use of the pull request template with mandatory completion of all sections
Reviewed Changes
Copilot reviewed 4 out of 4 changed files in this pull request and generated 3 comments.
| File | Description |
|---|---|
| CONTRIBUTING.md | New contributor guidelines file with development standards and PR requirements |
| AGENTS.md | Added comprehensive NIP URL index and detailed PR quality gate requirements |
| .github/workflows/pr-quality-gate.yml | Updated workflow to validate both PR titles and commit messages against naming format |
| .github/copilot-instructions.md | Replicated NIP URL index for AI assistant reference |
Tip: Customize your code reviews with copilot-instructions.md. Create the file or learn how to get started.
| - PR summaries must reference modified files with file path citations (e.g. `F:path/to/file.java†L1-L2`). | ||
| - PR titles and commit messages must follow the `type: description` naming format. | ||
| - Allowed types: feat, fix, docs, refactor, test, chore, ci, build, perf, style. | ||
| - The description should be a concise verb + object phrase (e.g., `refactor: Refactor auth middleware to async`). |
There was a problem hiding this comment.
Same redundant example as in CONTRIBUTING.md. The description repeats 'refactor' unnecessarily. Consider using refactor: update auth middleware to async instead.
| - The description should be a concise verb + object phrase (e.g., `refactor: Refactor auth middleware to async`). | |
| - The description should be a concise verb + object phrase (e.g., `refactor: update auth middleware to async`). |
| const verbs = ['Add','Fix','Update','Refactor','Remove','Implement','Document','Docs','Test','Build','Improve','Feat','Enable','Disable','Migrate']; | ||
| const titleOK = new RegExp(`^(${verbs.join('|')})\\b.+`).test(title); | ||
| const types = ['feat','fix','docs','refactor','test','chore','ci','build','perf','style']; | ||
| const naming = `^(${types.join('|')}):\\s+[A-Z][^\\s]*\\s+.+`; |
There was a problem hiding this comment.
The regex pattern [A-Z][^\\s]*\\s+.+ requires the description to start with an uppercase letter followed by non-whitespace characters, then whitespace, then more content. This will reject valid descriptions like 'update auth middleware' (lowercase 'update'). The pattern should be ^(${types.join('|')}):\\s+[a-zA-Z].+ to allow lowercase verbs.
| const naming = `^(${types.join('|')}):\\s+[A-Z][^\\s]*\\s+.+`; | |
| const naming = `^(${types.join('|')}):\\s+[a-zA-Z].+`; |
|
Codecov Report✅ All modified and coverable lines are covered by tests. 📢 Thoughts on this report? Let us know! |
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Summary
Testing
timeout 15 mvn -q verify(ZipException opening "nostr-java-util-0.2.2.jar": zip END header not found)Network Access
https://chatgpt.com/codex/tasks/task_b_68a4d060692c833196c490b93709a438