docs: Add comprehensive CONTRIBUTING.md guide#7
docs: Add comprehensive CONTRIBUTING.md guide#7Kubudak90 wants to merge 1 commit intoHUA-Labs:mainfrom
Conversation
Adds a detailed contribution guide covering: - Code of Conduct and community guidelines - Development setup with Node.js/bun - Branching strategy and workflow - Style guidelines for TypeScript - Testing with Vitest - Community communication channels This helps new contributors get started quickly and ensures consistent code quality across the project.
📝 WalkthroughWalkthroughA new Changes
Estimated code review effort🎯 1 (Trivial) | ⏱️ ~5 minutes Poem
🚥 Pre-merge checks | ✅ 3✅ Passed checks (3 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
Actionable comments posted: 4
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Inline comments:
In `@CONTRIBUTING.md`:
- Around line 144-150: Update the fenced code block containing the commit
message example to include a language specifier (e.g., "text") so Markdown
renders syntax highlighting and resolves the markdownlint warning; locate the
example block in CONTRIBUTING.md and change the opening fence from ``` to
```text while keeping the commit message content unchanged.
- Line 226: Update the mismatched Discord reference: either add the project's
Discord invite/link into README.md under the community/contact section so the
CONTRIBUTING.md line "**Discord**: Join our community (link in README)" points
to an actual link, or edit CONTRIBUTING.md to remove or replace that line with
the correct reference (e.g., a direct Discord URL or another community channel);
search for the exact string "**Discord**: Join our community (link in README)"
in CONTRIBUTING.md to locate and update it and add the corresponding Discord
entry in README.md if you choose the first option.
- Around line 90-103: The CONTRIBUTING.md references the npm script "npm run
format" but that script is missing; either add a "format" entry to
package.json's "scripts" (e.g., wire it to your chosen formatter like Prettier
or eslint --fix) or remove the "npm run format" line from CONTRIBUTING.md;
update whichever of the two you choose so that "npm run format" is consistent
between package.json and CONTRIBUTING.md.
- Around line 163-171: The fenced code block shown under the "Code Organization"
heading lacks a language specifier; update the opening triple-backtick to
include a language (e.g., add "text" so it reads ```text) for the example tree
to satisfy markdownlint and improve rendering, ensuring the block that shows the
src/ tree (the code block following the "Code Organization" heading) is changed
accordingly.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
| 1. **Type checking passes**: | ||
| ```bash | ||
| npm run type-check | ||
| ``` | ||
|
|
||
| 2. **All tests pass**: | ||
| ```bash | ||
| npm test | ||
| ``` | ||
|
|
||
| 3. **Code is properly formatted** (if using a formatter like Prettier): | ||
| ```bash | ||
| npm run format | ||
| ``` |
There was a problem hiding this comment.
🧩 Analysis chain
🏁 Script executed:
#!/bin/bash
# Description: Verify that referenced npm scripts exist in package.json
echo "=== Checking for referenced scripts in package.json ==="
if [ -f package.json ]; then
echo "Scripts defined in package.json:"
cat package.json | jq -r '.scripts | keys[]' 2>/dev/null || echo "Could not parse package.json with jq"
echo ""
echo "Checking for specific scripts:"
cat package.json | jq '.scripts | has("type-check")' 2>/dev/null && echo "✓ type-check: found" || echo "✗ type-check: NOT found"
cat package.json | jq '.scripts | has("format")' 2>/dev/null && echo "✓ format: found" || echo "✗ format: NOT found"
cat package.json | jq '.scripts | has("test:watch")' 2>/dev/null && echo "✓ test:watch: found" || echo "✗ test:watch: NOT found"
else
echo "package.json not found"
fiRepository: HUA-Labs/tap
Length of output: 291
Add missing format npm script or remove reference from documentation.
The documentation references npm run format (lines 101–103), but this script is not defined in package.json. The type-check script exists and is correct, but format must be added to package.json under scripts or the reference should be removed from CONTRIBUTING.md.
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.
In `@CONTRIBUTING.md` around lines 90 - 103, The CONTRIBUTING.md references the
npm script "npm run format" but that script is missing; either add a "format"
entry to package.json's "scripts" (e.g., wire it to your chosen formatter like
Prettier or eslint --fix) or remove the "npm run format" line from
CONTRIBUTING.md; update whichever of the two you choose so that "npm run format"
is consistent between package.json and CONTRIBUTING.md.
| Example: | ||
| ``` | ||
| feat: add support for custom comms directories | ||
|
|
||
| Implements --comms-dir flag to allow users to specify | ||
| custom locations for the communication directory. | ||
| ``` |
There was a problem hiding this comment.
Add language specifier to fenced code block.
The commit message example uses a fenced code block without a language specifier. Adding one improves syntax highlighting and addresses the markdownlint warning.
📝 Proposed fix
Example:
-```
+```text
feat: add support for custom comms directories
Implements --comms-dir flag to allow users to specify
custom locations for the communication directory.</details>
<details>
<summary>🧰 Tools</summary>
<details>
<summary>🪛 markdownlint-cli2 (0.22.0)</summary>
[warning] 145-145: Fenced code blocks should have a language specified
(MD040, fenced-code-language)
</details>
</details>
<details>
<summary>🤖 Prompt for AI Agents</summary>
Verify each finding against the current code and only fix it if needed.
In @CONTRIBUTING.md around lines 144 - 150, Update the fenced code block
containing the commit message example to include a language specifier (e.g.,
"text") so Markdown renders syntax highlighting and resolves the markdownlint
warning; locate the example block in CONTRIBUTING.md and change the opening
fence from totext while keeping the commit message content unchanged.
</details>
<!-- fingerprinting:phantom:triton:puma:60048cb9-1e9b-4566-847d-5f09f1e3b535 -->
<!-- This is an auto-generated comment by CodeRabbit -->
| ### Code Organization | ||
|
|
||
| ``` | ||
| src/ | ||
| ├── index.ts # Main entry point | ||
| ├── commands/ # CLI command implementations | ||
| ├── utils/ # Utility functions | ||
| └── types/ # TypeScript type definitions | ||
| ``` |
There was a problem hiding this comment.
Add language specifier to fenced code block.
The code organization example uses a fenced code block without a language specifier. Adding one improves rendering and addresses the markdownlint warning.
📝 Proposed fix
### Code Organization
-```
+```text
src/
├── index.ts # Main entry point
├── commands/ # CLI command implementations
├── utils/ # Utility functions
└── types/ # TypeScript type definitions</details>
<!-- suggestion_start -->
<details>
<summary>📝 Committable suggestion</summary>
> ‼️ **IMPORTANT**
> Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
```suggestion
### Code Organization
🧰 Tools
🪛 markdownlint-cli2 (0.22.0)
[warning] 165-165: Fenced code blocks should have a language specified
(MD040, fenced-code-language)
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.
In `@CONTRIBUTING.md` around lines 163 - 171, The fenced code block shown under
the "Code Organization" heading lacks a language specifier; update the opening
triple-backtick to include a language (e.g., add "text" so it reads ```text) for
the example tree to satisfy markdownlint and improve rendering, ensuring the
block that shows the src/ tree (the code block following the "Code Organization"
heading) is changed accordingly.
|
|
||
| - **GitHub Issues**: For bug reports and feature requests | ||
| - **GitHub Discussions**: For questions and ideas | ||
| - **Discord**: Join our community (link in README) |
There was a problem hiding this comment.
🧩 Analysis chain
🏁 Script executed:
#!/bin/bash
# Description: Verify that a Discord link exists in the README
echo "=== Checking for Discord link in README ==="
if [ -f README.md ]; then
echo "Searching for Discord references in README.md..."
if rg -i "discord" README.md; then
echo "✓ Discord reference found"
else
echo "✗ No Discord reference found in README.md"
fi
else
echo "✗ README.md not found"
fiRepository: HUA-Labs/tap
Length of output: 190
Add Discord link to README or remove the reference from CONTRIBUTING.md.
Line 226 of CONTRIBUTING.md references a Discord link in the README, but no Discord reference exists in README.md. Either add the Discord community link to the README, or update the CONTRIBUTING.md reference to point to the correct location.
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.
In `@CONTRIBUTING.md` at line 226, Update the mismatched Discord reference: either
add the project's Discord invite/link into README.md under the community/contact
section so the CONTRIBUTING.md line "**Discord**: Join our community (link in
README)" points to an actual link, or edit CONTRIBUTING.md to remove or replace
that line with the correct reference (e.g., a direct Discord URL or another
community channel); search for the exact string "**Discord**: Join our community
(link in README)" in CONTRIBUTING.md to locate and update it and add the
corresponding Discord entry in README.md if you choose the first option.
Summary
This PR adds a comprehensive CONTRIBUTING.md file to help new contributors get started with TAP development.
What's Included
Why This Matters
As TAP enables cross-model AI agent communication (Claude, Codex, Gemini), having clear contribution guidelines will:
The guide is tailored specifically to TAP's TypeScript/MCP-based architecture.
Checklist
Note: This PR only adds documentation and does not modify any source code.
Summary by CodeRabbit