howarewoo/woostack-review (CI extension)

CI extension of the woostack-review skill. Runs the same swarm — detect → parallel angle workers → skeptical validator → batched GitHub Review — dispatched to the first-party action of the chosen provider (Anthropic, OpenAI, Google, OpenRouter via opencode).

View on GitHub

Trust Signals

Scorecard Score
not yet scored
Maintenance Recency
Activelast commit Jul 11, 2026
License
MIT

Pinned Snippet

workflow.ymlSHA-pinned
uses: howarewoo/woostack@abde918d5c81b1639c862a0182dacef045351972 # no releases — HEAD as of 2026-07-11

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

namedescriptionrequireddefault
providerExplicit provider: anthropic | openai | google | openrouter. Leave empty to auto-detect from the first non-empty API key.no""
modelModel identifier passed to the chosen runner. For openrouter, use the openrouter/<model> form.no""
force_tierOptional one-run tier override: `fast` or `deep`. Overrides explicit config and forces single-model hosts to the selected tier.no""
openai_effortOptional OpenAI Codex reasoning_effort override (minimal | low | medium | high | xhigh). Empty uses the tier default: low for fast, medium for standard, high for deep.no""
modeExecution mode: full (sequential) | detect | review | validate-prosecutor | validate. The adversarial validator runs as two passes: validate-prosecutor first (writes findings.prosecutor.json), then validate (writes findings.defender.json, runs intersect-findings.sh, and posts the review). The validate step sets WOO_REVIEW_SEQUENTIAL_VALIDATE=1 so validator.md runs its Step 3/4 orchestration; in the chat-host swarm (SKILL.md Stage 4b) that flag is unset and the defender is a pure worker that exits after findings.defender.json.nofull
angleSpecific angle to run (required if mode=review)no""
chunkSpecific chunk id to run (e.g. `chunk-0`). Pairs with `angle` when mode=review to fan out angles × chunks for oversized diffs (issue #14). Empty string runs against the full diff (default).no""
anthropic_tokenClaude Code OAuth token (preferred for Anthropic).no""
anthropic_api_keyAnthropic API key (alternative to anthropic_token).no""
openai_api_keyOpenAI API key (used by openai/codex-action).no""
google_api_keyGoogle API key for Gemini API (alias of gemini_api_key).no""
gemini_api_keyGemini API key (alternative to google_api_key).no""
openrouter_api_keyOpenRouter API key (used by opencode).no""
linear-api-keyOptional Linear API key used only by the read-only artifact-context step when an exactly attributed Linear PR is reviewed. It is exposed to the Linear adapter as LINEAR_API_KEY for feature-read only.no""
trigger_phrasePhrase that triggers a review when posted in a PR comment.no@review
max_turnsMaximum agent turns (Anthropic; other runners use their own equivalent).no30
skip_labelsComma-separated list of PR labels that force-skip the review.no""
prompt_overrideOptional path (relative to the consumer repo) to a custom prompt that replaces the bundled per-provider prompt. The shared _header.md contract is still prepended.no""
disable_anglesComma-separated list of review angles to skip (seo, aeo, design, react, database, tests, api, infra, observability, types, i18n, docs, deps). `bugs`, `security`, and `simplify` are always on and cannot be disabled.no""
react_doctor_versionnpm version of react-doctor to invoke via npx (used by the react angle).nolatest
impeccable_versionnpm version of impeccable CLI to invoke via npx (used by the design angle).nolatest
incrementalReview scope: `auto` re-uses the prior review SHA marker (if any) and diffs only new commits; `off` forces a full re-review of the PR diff. A PR-comment trigger containing `--full` overrides to off.noauto
namedescription
anglesComma-separated list of enabled review angles.
angles_jsonJSON array of enabled review angles.
chunks_jsonJSON array of chunk IDs when the diff exceeds chunking.max_loc (issue #14). When chunking does not activate the value is `[""]` — one empty-string chunk, so consumers can always use it as the second dimension of a strategy matrix.