Add automated proposal quality gates
CLOSEDPull Request
Adding three GitHub Actions workflows to automate initial quality checks on incoming Dev Fund proposals. These run on PR open/reopen and handle checks that don't need human review time.
- Champion Requirement Check (champion-check.yml)
Checks whether the proposal has a valid Champion/Endorser field.
- If champion is present: adds
champion-confirmedlabel and posts a confirmation comment. - If champion is missing or TBD then posts a comment explaining the requirement, adds
needs-championlabel, and closes the PR
- AI Signal Analysis (aipricheck.yml)
Runs pattern-matching checks for common AI-generated content signals and posts results to private Slack channel. Nothing is posted on the PR itself. Checks for:
- Made-up Canton/Daml terminology (sub-net, Loop node, Daml VM, Canton IdP, sharding, etc.)
- Broken hyphens from AI copy-paste (word- space, space -word patterns)
- Em-dash overuse
- Balanced pros/cons comparison tables
- Over-structured headers
- Notes missing sections (GTM/Adoption, Maintenance, Acceptance Criteria) as non-scored info.
Outputs a risk score (LOW/MEDIUM/HIGH) to Slack only. Requires SLACK_WEBHOOK_URL to be added into repo secrets.
- SIG Label Check (sig-label-check.yml)
Checks whether the PR has at least one SI label so the right domain experts can find and review it.
- If SIG label is missing posts a comment listing all available SIG labels and adds
needs-sig-label - If SIG label is added later: removes needs-sig-label on re-trigger
Does not close the PR
Requires Labels to create in repo settings:
needs-championchampion-confirmedneeds-sig-label