flowcore-io/Usable PR Validator

Validate Pull Requests against your Usable knowledge base standards using AI (OpenCode with OpenRouter, Anthropic, OpenAI, or Google Gemini) and Usable MCP integration

View on GitHub

Trust Signals

Scorecard Score
not yet scored
Maintenance Recency
Activelast commit Jun 10, 2026
License
MIT

Pinned Snippet

workflow.ymlSHA-pinned
uses: flowcore-io/usable-pr-validator@48bbaaff5573f5166adc1bba82a846bfc6699a07 # v2.2.2

tags can be moved; commit SHAs can't. why a SHA?

namedescriptionrequireddefault
prompt-filePath to validation prompt markdown file (optional if use-dynamic-prompts is enabled)no""
use-dynamic-promptsFetch latest prompt from Usable API instead of using static prompt filenofalse
prompt-fragment-idUsable fragment UUID to use as prompt (required when use-dynamic-prompts is true)no""
merge-custom-promptMerge fetched Usable prompt with custom prompt-file (only when both are provided)notrue
override-commentUser comment requesting validation override or clarification (typically from @usable mention)no""
gemini-modelGemini model to use (gemini-2.5-flash, gemini-2.0-flash, gemini-2.5-pro)nogemini-2.5-flash
service-account-key-secretName of secret containing base64-encoded Gemini service account keynoGEMINI_SERVICE_ACCOUNT_KEY
mcp-server-urlHTTP URL of MCP servernohttps://usable.dev/api/mcp
mcp-token-secretName of secret containing Usable API tokennoUSABLE_API_TOKEN
workspace-idUsable workspace UUID (required - used to fetch MCP system prompt)yes
fail-on-criticalFail build when critical violations are foundnotrue
comment-modePR comment behavior: update, new, or nonenoupdate
comment-titleTitle for PR comment (used to identify which comment to update in multi-stage validations)noAutomated Standards Validation
artifact-retention-daysDays to retain validation report artifactsno30
max-retriesMaximum retry attempts for API failuresno2
timeout-minutesMaximum validation execution time in minutesno15
base-refBase reference for diff comparison (defaults to PR base branch). Useful for release-please branches to compare against last release tag.no""
head-refHead reference for diff comparison (defaults to PR head branch)no""
allow-web-fetchAllow AI to use web_fetch tool for external resources (security consideration)nofalse
providerAI provider to use (opencode or gemini)noopencode
opencode-providerAI provider for OpenCode (e.g., openrouter, anthropic, openai)noopenrouter
opencode-modelModel ID for OpenCode (e.g., moonshotai/kimi-k2.5 for openrouter, claude-sonnet-4-5 for anthropic)nomoonshotai/kimi-k2.5
opencode-api-key-secretName of secret containing the API key for the configured opencode-providernoOPENCODE_API_KEY
fallback-opencode-providerOptional opencode-provider to fall back to when primary exhausts retries on retryable errors (e.g. 429/503/504/timeout). Empty disables fallback.no""
fallback-opencode-modelModel ID for the fallback opencode-provider (required when fallback-opencode-provider is set)no""
fallback-opencode-api-key-secretName of secret holding the fallback API key. Optional when fallback-opencode-provider equals opencode-provider (primary key is reused). Required when providers differ.no""
namedescription
validation-statusValidation result: passed or failed
validation-passedBoolean indicating if validation passed (true/false)
critical-issuesCount of critical violations found
report-artifact-nameName of artifact containing validation report