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 GitHubTrust Signals
- Scorecard Score
- not yet scored
- Maintenance Recency
- Activelast commit Jul 11, 2026
- License
- MIT
Pinned Snippet
uses: howarewoo/woostack@abde918d5c81b1639c862a0182dacef045351972 # no releases — HEAD as of 2026-07-11tags can be moved; commit SHAs can't. why a SHA?
Inputs
| name | description | required | default |
|---|---|---|---|
| provider | Explicit provider: anthropic | openai | google | openrouter. Leave empty to auto-detect from the first non-empty API key. | no | "" |
| model | Model identifier passed to the chosen runner. For openrouter, use the openrouter/<model> form. | no | "" |
| force_tier | Optional one-run tier override: `fast` or `deep`. Overrides explicit config and forces single-model hosts to the selected tier. | no | "" |
| openai_effort | Optional 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 | "" |
| mode | Execution 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. | no | full |
| angle | Specific angle to run (required if mode=review) | no | "" |
| chunk | Specific 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_token | Claude Code OAuth token (preferred for Anthropic). | no | "" |
| anthropic_api_key | Anthropic API key (alternative to anthropic_token). | no | "" |
| openai_api_key | OpenAI API key (used by openai/codex-action). | no | "" |
| google_api_key | Google API key for Gemini API (alias of gemini_api_key). | no | "" |
| gemini_api_key | Gemini API key (alternative to google_api_key). | no | "" |
| openrouter_api_key | OpenRouter API key (used by opencode). | no | "" |
| linear-api-key | Optional 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_phrase | Phrase that triggers a review when posted in a PR comment. | no | @review |
| max_turns | Maximum agent turns (Anthropic; other runners use their own equivalent). | no | 30 |
| skip_labels | Comma-separated list of PR labels that force-skip the review. | no | "" |
| prompt_override | Optional 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_angles | Comma-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_version | npm version of react-doctor to invoke via npx (used by the react angle). | no | latest |
| impeccable_version | npm version of impeccable CLI to invoke via npx (used by the design angle). | no | latest |
| incremental | Review 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. | no | auto |
Outputs
| name | description |
|---|---|
| angles | Comma-separated list of enabled review angles. |
| angles_json | JSON array of enabled review angles. |
| chunks_json | JSON 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. |