Contributing
devdocs-forge-agent is open source and contributions are welcome. This page covers how to get started.
Good first issues
These are well-scoped tasks that don't require deep knowledge of the codebase:
| Issue | Description | Effort |
|---|---|---|
| #1 Ollama provider | Add local LLM support via Ollama | Small |
| #2 OpenRouter provider | Add OpenRouter.ai as a provider | Small |
| #3 Mermaid diagram mode | New output mode for Mermaid diagrams | Small |
| #4 Improve Docusaurus frontmatter | Smarter tag extraction from content | Medium |
| #5 Minimal web preview | Browser preview of generated docs | Medium |
Development setup
git clone https://github.com/AnkitParekh007/devdocs-forge-agent.git
cd devdocs-forge-agent
npm install
cp .env.example .env
npm run init
npm run doctor
Running tests
npm test
The test suite uses Vitest and covers: URL parsing, tech video classification, transcript validation, config loading, output writing, and more.
Adding an output mode
This is the easiest contribution — no TypeScript required.
- Create
modes/yourmode.mdwith AI prompt instructions - Add the mode name to
VALID_MODESinsrc/pipeline/prompt-builder.ts - Test it:
npm run generate -- \--file examples/transcripts/angular-signals-tutorial.md \--type yourmode
See the existing files in modes/ for reference.
Adding a provider
Each provider implements a small interface:
export interface Provider {
readonly name: string;
readonly model: string;
generate(options: GenerateOptions): Promise<string>;
}
Steps:
- Create
src/providers/yourprovider.provider.ts - Implement the
Providerinterface using nativefetch(no SDK packages) - Register it in
src/providers/provider-registry.ts - Add env var docs to
.env.example - Add a test in
tests/
Code conventions
- TypeScript with strict mode
- ESM modules — use
.jsextensions in imports DocuForgeErrorfor user-facing errors (no raw stack traces)logger.ok / warn / fail / infofor all CLI output- No external AI SDK packages — use native
fetch
Submitting a PR
- Fork the repo
- Create a branch:
git checkout -b feat/my-feature - Make changes, add tests
- Run
npm testandnpm run build - Open a PR against
main
Please keep PRs focused — one feature or fix per PR.
Questions
Open a GitHub Discussion or leave a comment on an issue.