Thanks for contributing to PlanGuard. This project is released under the MIT License. By submitting a contribution, you agree to license it under that license and to follow the Code of Conduct.
PlanGuard reviews Terraform change data. Risk scores, policy pass/fail decisions, and cost numbers are computed by deterministic code, never by an LLM. AI may summarize or explain deterministic output only. Read AGENTS.md before changing analysis, Actions, or agent code.
Do not commit credentials, Terraform state, raw sensitive plans, private endpoints, or production data.
- Node.js 22 or later
- npm (the lockfile is authoritative)
npm ci
npm run typecheck
npm run test
npm run harnessnpm run harness verifies tool wiring without a model key. A live model invocation is optional and requires locally configured credentials; never place those credentials in a commit, issue, or pull request.
After the repository baseline is in place, PlanGuard uses dev as its integration branch and main for reviewed release promotion.
- Search existing issues, then open one focused issue with acceptance criteria.
- Branch from updated
devas<type>/<issue-number>-<description>; for example,fix/123-redaction-boundary. - Add or update focused tests before changing behavior.
- Use conventional commits such as
fix: preserve nested sensitive redaction. - Open a pull request targeting
dev, withCloses #<issue-number>in its body. - Run the relevant checks and record the commands/results in the PR.
- Resolve review feedback. Maintainers merge only reviewed, green PRs.
- Promote
devto release-onlymainthrough a separate reviewed PR.
- Keep each PR focused and explain the user-facing or security impact.
- Update documentation and tests with behavior changes.
- Preserve the two-job security boundary in the BYO-AI workflow: Terraform preparation has no model key; the fresh explanation job runs no Terraform and reads only the sanitized artifact.
- Do not add
pull_request_targetto the public workflow or run unreviewed Terraform beside secrets or cloud credentials. - Keep third-party Actions pinned to immutable commit SHAs in public examples.
For suspected vulnerabilities, follow SECURITY.md instead of filing a public issue.