Thanks for your interest in contributing to GuardLink. This project aims to make threat modeling a natural part of writing code — contributions that further that goal are welcome.
git clone https://github.com/Bugb-Technologies/guardlink.git
cd guardlink
npm install
npm run build
npm testsrc/
├── agents/ Unified agent launcher and config resolution
├── analyze/ AI threat report generation (STRIDE, DREAD, PASTA, etc.)
├── analyzer/ Coverage analysis, SARIF export, suggestion engine
├── cli/ CLI entry point and command handlers
├── dashboard/ HTML dashboard generation
├── diff/ Threat model diffing between git refs
├── init/ Project initialization and agent config templates
├── mcp/ MCP server (tools + resources for AI agents)
├── parser/ Annotation parser (regex-based, language-agnostic)
├── report/ Markdown report and Mermaid diagram generation
├── tui/ Interactive terminal interface
└── types/ TypeScript type definitions (ThreatModel schema)
npm run build # Compile TypeScript
npm run dev # Watch mode
npm test # Run tests
npm run cli # Run CLI without building (via tsx)High impact:
- New language comment style support in the parser
- Additional suggestion patterns in the suggestion engine
- CI integration examples (GitLab CI, CircleCI, Jenkins)
- Documentation improvements and tutorials
Medium impact:
- New definition templates for common frameworks
- Test coverage for edge cases
- Performance improvements for large codebases
Good first issues:
- Add a comment style for a language not yet supported
- Write a test for an annotation edge case
- Improve error messages in the validator
- Create a feature branch from
main - Write tests for new functionality
- Ensure
npm testandnpm run buildpass - Write a clear PR description explaining what changed and why
- Link any related issues
- TypeScript strict mode
- No external runtime dependencies beyond what's in package.json
- Functions over classes where possible
- Explicit types on public APIs, inferred types internally
Changes to the annotation grammar or ThreatModel schema require discussion in an issue first. The spec is designed to be stable — breaking changes need strong justification.
By contributing, you agree that your contributions will be licensed under the MIT License.