Thank you for your interest in contributing to ContentForge! This document provides guidelines and instructions for contributing.
- Code of Conduct
- How to Contribute
- Development Setup
- Pull Request Process
- Coding Standards
- Testing Guidelines
This project adheres to a code of conduct that all contributors are expected to follow:
- Be respectful: Treat everyone with respect and kindness
- Be collaborative: Work together and help each other
- Be inclusive: Welcome diverse perspectives and experiences
- Be professional: Focus on what's best for the project and community
Before submitting a bug report:
- Check existing issues to avoid duplicates
- Test with the latest version
- Gather relevant information (version, platform, steps to reproduce)
Bug Report Template:
**Description:** Clear description of the bug
**Steps to Reproduce:**
1. Step one
2. Step two
3. ...
**Expected Behavior:** What should happen
**Actual Behavior:** What actually happens
**Environment:**
- ContentForge version:
- Claude Code/Cowork version:
- Platform (OS):
- Node version (if relevant):
**Additional Context:** Screenshots, logs, etc.Enhancement Proposal Template:
**Feature Description:** Clear description of the proposed feature
**Use Case:** Why is this feature needed? What problem does it solve?
**Proposed Solution:** How should this work?
**Alternatives Considered:** Other approaches you've thought about
**Priority:** Low / Medium / HighPriority Areas:
- Additional Content Type Templates (landing pages, email sequences, press releases)
- Alternative MCP Integrations (Notion, Airtable, Confluence)
- Industry-Specific Rubrics (Finance, Healthcare, Legal compliance)
- Humanization Patterns (non-English languages)
- Test Coverage (unit tests for individual agents)
- Documentation (tutorials, video guides, examples)
- Node.js 18+ and npm
- Claude Code or Cowork installed
- Google Cloud account (for Sheets/Drive testing)
- Git
-
Fork the repository
# Fork via GitHub UI, then clone your fork git clone https://github.com/YOUR_USERNAME/contentforge.git cd contentforge
-
Create a branch
git checkout -b feature/your-feature-name # or git checkout -b fix/your-bug-fix -
Install dependencies (if any)
npm install
-
Set up test environment
# Copy example configs cp .mcp.json.example .mcp.json # Edit with your service account credentials
-
Make your changes
- Edit agent files in
agents/ - Add/update templates in
templates/ - Modify configs in
config/ - Update docs if needed
- Edit agent files in
-
Test your changes
# Test manually with Claude Code claude code /contentforge "test with your changes"
- Code follows project style guidelines
- All agent files use consistent markdown formatting
- Documentation is updated (README, agent comments)
- Changes are tested manually
- Commit messages are clear and descriptive
## Description
Brief description of changes
## Type of Change
- [ ] Bug fix (non-breaking change which fixes an issue)
- [ ] New feature (non-breaking change which adds functionality)
- [ ] Breaking change (fix or feature that would cause existing functionality to change)
- [ ] Documentation update
## Changes Made
- Bullet list of specific changes
## Testing Done
- How you tested these changes
- Example runs with results
## Screenshots (if applicable)
- Before/after screenshots or output samples
## Checklist
- [ ] My code follows the project style
- [ ] I have updated the documentation
- [ ] I have added tests (if applicable)
- [ ] All tests pass
- [ ] I have tested this with Claude Code/Cowork- Submit PR: Create pull request against
mainbranch - Automated Checks: Wait for any CI checks (if implemented)
- Code Review: Maintainers will review your code
- Address Feedback: Make requested changes
- Approval: Once approved, maintainer will merge
- Release: Changes included in next version
- Delete your feature branch
- Pull latest changes from main
- Your contribution will be acknowledged in release notes!
All agent files should follow this structure:
# Agent Name — ContentForge Phase X
**Role:** One-line description
---
## INPUTS
[List of inputs from previous phases]
---
## YOUR MISSION
[Clear description of agent's purpose]
---
## EXECUTION STEPS
### Step 1: [Step Name]
[Detailed instructions]
### Step 2: [Step Name]
[Detailed instructions]
---
## OUTPUT FORMAT
[Template for agent output]
---
## QUALITY GATE X CRITERIA CHECK
[Pass/fail criteria]
---
**Agent Name — Phase X Complete**JSON files must be:
- Valid JSON (no comments, trailing commas)
- Properly indented (2 spaces)
- Include descriptive keys
- Documented with example usage
- Use clear, concise language
- Include code examples where helpful
- Use markdown formatting consistently
- Add screenshots for complex steps
- Keep line length under 120 characters
For agent changes:
- Test with minimum input (edge case)
- Test with typical input
- Test with maximum input (stress test)
- Verify quality gate pass/fail logic
- Check feedback loop behavior
For template changes:
- Test with each content type
- Verify word count calculations
- Check readability targets
- Ensure citation requirements work
For config changes:
- Test with default values
- Test with industry overrides
- Verify backward compatibility
- Check edge cases (extreme values)
Full pipeline test:
# Create test requirement in Google Sheets
# Run full pipeline
/contentforge "Generate content for test row in [Sheet URL]"
# Verify:
# - All 10 phases complete
# - Quality score calculated correctly
# - Output .docx generated
# - Tracking sheet updated
# - Brand voice applied- Create template in
templates/content-types/[type]-structure.md - Define structure, word count, readability target, citation requirements
- Update
agents/03-content-drafter.mdto handle new type - Add test case in testing docs
- Update README with new type
Example:
# Email Sequence Structure
**Target:** 300-500 words per email
**Flesch-Kincaid Grade:** 6-8 (very accessible)
**Citation Requirements:** 1-2 per email
**Emails in Sequence:** 3-5
[... continue with structure]- Add MCP server config to
.mcp.json - Update relevant agents to use new MCP (e.g., Phase 8 for new storage)
- Add configuration docs
- Test integration thoroughly
- Update README with setup instructions
- Add industry override to
config/scoring-thresholds.json - Define dimension weights for industry
- Add compliance requirements to brand profile template
- Document regulatory considerations
- Test with sample brand in that industry
- Add new AI telltale phrases to
config/humanization-patterns.json - Add language-specific patterns (if non-English)
- Test burstiness improvements
- Validate SEO preservation
- Document detection resistance improvements
<type>(<scope>): <subject>
<body>
<footer>
Types:
feat: New featurefix: Bug fixdocs: Documentation onlystyle: Formatting (no code change)refactor: Code restructuringtest: Adding testschore: Maintenance tasks
Examples:
feat(humanizer): add support for Spanish language patterns
Added Spanish telltale phrases and sentence structure patterns
to Phase 6.5 Humanizer for multilingual content support.
Closes #123
fix(reviewer): correct dimension weight calculation
Fixed bug where dimension weights weren't applying correctly
for industry overrides. Now properly loads industry-specific
weights from scoring-thresholds.json.
Fixes #456
- Keep Quick Start section under 5 minutes
- Add new features to "What Was Built" section
- Update roadmap when features complete
- Add to FAQ if question comes up repeatedly
- Add inline comments for complex logic
- Include examples for edge cases
- Document quality gate criteria clearly
- Explain loop conditions
- Step-by-step with screenshots
- Real-world use case examples
- Expected results at each step
- Common pitfalls and solutions
Questions about contributing?
- Open a Discussion
- Comment on relevant issue
- Reach out to maintainers
Stuck on implementation?
- Check existing agent implementations for patterns
- Review SKILL.md for orchestration logic
- Look at similar features in other phases
Contributors will be:
- Listed in release notes
- Acknowledged in README (if significant contribution)
- Credited in commit history
- Part of shaping the future of enterprise content production!
By contributing to ContentForge, you agree that your contributions will be licensed under the MIT License.
Thank you for contributing to ContentForge! 🚀
Your contributions help agencies, brands, and marketing teams produce better content faster.