Thanks for your interest in contributing to DojoWatch!
-
Clone the repo:
git clone https://github.com/DojoCodingLabs/dojowatch.git cd dojowatch -
Install dependencies:
npm install
-
Install Playwright browsers:
npx playwright install chromium
-
Run tests:
npm test -
Test the plugin locally:
claude --plugin-dir ./
commands/— Slash commands for Claude Code (markdown)agents/— Claude Code agents (markdown)skills/— Auto-activating skills with referencesscripts/— Core TypeScript modules (capture, prefilter, baseline, etc.)tests/— Vitest tests with PNG fixturestemplates/— User-facing config and CI templates
Scripts serve dual purposes — importable modules AND standalone CLI tools:
// Export functions for programmatic use
export function myFunction() { ... }
// CLI entrypoint when run directly
const isDirectRun = process.argv[1]?.endsWith("my-script.ts");
if (isDirectRun) {
main();
}Commands are markdown files in commands/ with YAML frontmatter:
---
description: Short description shown in /help
argument-hint: "[optional args]"
---
# Command Name
Instructions for Claude on how to execute this command...Commands instruct Claude what to do — they run scripts via Bash and use Claude's multimodal capabilities for analysis.
npm test # Watch mode
npm run test:run # Single run
npm run typecheck # Type checking
npm run lint # LintingTest fixtures (PNG pairs) live in tests/fixtures/. When adding new test cases, include PNG pairs that demonstrate the specific scenario.
- Create a branch from
main - Make your changes
- Ensure
npm run typecheck && npm run test:runpasses - Submit a PR with a clear description of what changed and why
Be kind, be constructive, be collaborative.