Skip to content

docs: Add comprehensive CONTRIBUTING.md guide#7

Open
Kubudak90 wants to merge 1 commit intoHUA-Labs:mainfrom
Kubudak90:docs/add-contributing-guide
Open

docs: Add comprehensive CONTRIBUTING.md guide#7
Kubudak90 wants to merge 1 commit intoHUA-Labs:mainfrom
Kubudak90:docs/add-contributing-guide

Conversation

@Kubudak90
Copy link
Copy Markdown

@Kubudak90 Kubudak90 commented Apr 1, 2026

Summary

This PR adds a comprehensive CONTRIBUTING.md file to help new contributors get started with TAP development.

What's Included

  • Code of Conduct: Community guidelines and expectations
  • Getting Started: Prerequisites (Node.js/bun) and installation
  • Development Workflow: Branching strategy, building with tsx, and development commands
  • Submitting Changes: PR process and conventional commit guidelines
  • Style Guidelines: TypeScript coding standards and project organization
  • Testing: Vitest usage and test writing best practices
  • Community: Communication channels, bug reporting, and feature requests

Why This Matters

As TAP enables cross-model AI agent communication (Claude, Codex, Gemini), having clear contribution guidelines will:

  • Lower the barrier for new contributors
  • Ensure consistent code quality across the multi-agent ecosystem
  • Streamline the review process
  • Build a welcoming community of AI agent developers

The guide is tailored specifically to TAP's TypeScript/MCP-based architecture.

Checklist

  • Follows the repository's documentation style
  • Includes practical examples and commands
  • References existing testing framework (Vitest)
  • Covers both npm and bun workflows

Note: This PR only adds documentation and does not modify any source code.

Summary by CodeRabbit

  • Documentation
    • Added CONTRIBUTING.md guide for contributors, including code of conduct, setup instructions, development workflows, code quality standards, branch naming conventions, pull request submission process with conventional commit guidelines, testing requirements, coverage targets, and community support channels.

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.
@coderabbitai
Copy link
Copy Markdown

coderabbitai bot commented Apr 1, 2026

📝 Walkthrough

Walkthrough

A new CONTRIBUTING.md file is added to provide comprehensive guidance for project contributors, covering code of conduct, setup instructions, development workflows, code quality standards, pull request procedures, testing practices, and community support channels.

Changes

Cohort / File(s) Summary
Contribution Guidelines
CONTRIBUTING.md
New documentation file introducing contribution expectations, installation prerequisites, branch naming strategy, development workflows (build/watch modes), code quality checks (type-checking, testing, formatting), PR submission process with conventional commit conventions, TypeScript and style requirements, error-handling practices, Vitest testing framework guidance, coverage targets, and community support channels (issues, discussions, Discord).

Estimated code review effort

🎯 1 (Trivial) | ⏱️ ~5 minutes

Poem

🐰 A guide now hops through the forest bright,
Where contributors gather to code just right,
With tests and types in perfect harmony,
Community branches grow wild and free,
TAP's path now clear for all to see! ✨

🚥 Pre-merge checks | ✅ 3
✅ Passed checks (3 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title accurately describes the main change: adding a comprehensive CONTRIBUTING.md guide file to the repository.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

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.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link
Copy Markdown

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: f1972760-6dc1-4b2c-94c3-72af8059c040

📥 Commits

Reviewing files that changed from the base of the PR and between c068ef6 and d92f2c5.

📒 Files selected for processing (1)
  • CONTRIBUTING.md

Comment on lines +90 to +103
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
```
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟠 Major

🧩 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"
fi

Repository: 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.

Comment on lines +144 to +150
Example:
```
feat: add support for custom comms directories

Implements --comms-dir flag to allow users to specify
custom locations for the communication directory.
```
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

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 -->

Comment on lines +163 to +171
### Code Organization

```
src/
├── index.ts # Main entry point
├── commands/ # CLI command implementations
├── utils/ # Utility functions
└── types/ # TypeScript type definitions
```
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

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)
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

🧩 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"
fi

Repository: 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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant