v0.3.2
[0.3.2] — 2026-08-06
Added
- Fallback Model Queue — When the primary model (
opencode/deepseek-v4-flash-free) hits a 429 rate limit, the review automatically retries a fallback queue ordered by coding ability:nemotron-3-ultra-free→longcat-2.0-free→north-mini-code-free→ling-3.0-flash-free→laguna-s-2.1-free→mimo-v2.5-free. Configurable viafallback-modelsinput in the composite action. - Exit-Code Gate — Fallback only triggers on non-zero exit code AND rate-limit text, preventing false fallback on successful runs whose output happens to contain line numbers like
:429.
Changed
- Primary Model — Reverted to
opencode/deepseek-v4-flash-free(best coding ability). Fallback queue replaces the previous single-fallback design. _is_rate_limitedRegex — Tightened to429\s+(rate|too|exceeded|limit(?:ed|s)?)\bwith word-boundary anchors, eliminating false matches on ordinary prose (e.g. "limited to 50 findings") and review line numbers (e.g.file.css:429)._run_opencode— Now accepts the resolvedopencodepath as a parameter, removing redundant_find_opencode()probes during fallback queue iteration.- Composite Action —
run_with_fallback_queuebash function replaces the oldrun_with_fallback;fallback-models(comma-separated list) replacesfallback-model(single model).
Fixed
- PR Review Timeout (6h) — Root cause:
review.ymlreferences the composite action at@main, so the review used the old action (no fallback queue) until the PR was merged. After merge, the fallback queue is active and prevents future 6-hour cancellations. - PR Description Drift — Title and body updated to match the final design (deepseek primary + ordered fallback queue).
.pycLeak —tools/__pycache__/run_fixture_tests.cpython-312.pycremoved from VCS;__pycache__/and*.pycadded to.gitignore.- Verbose f-string —
--verboseoutput now correctly interpolates the model name instead of printing literal(model: {model}). - Fallback Exhaustion — When all fallbacks are rate-limited, the primary model's output (and exit code) is preserved instead of returning the weakest fallback's result.
- Dead Code — Removed
__STATIC_FALLBACK__sentinel in_run_opencode; redundantopencode is Noneguard returns(1, "")instead of(0, "")for consistency.
Removed
Changelog
All notable changes are documented here. Format follows Keep a Changelog.
[0.3.1] — 2026-08-02
Added
- Fixed Output Format — Added standardized, readable feedback format with summary header, severity groups (P0-P3), and consistent issue block structure
- Stack-Aware API Review — New framework detection (React, Vue, Angular, Svelte, Astro) with official documentation references for accurate syntax validation
- Framework Anti-Patterns Library — Comprehensive pattern catalog (React, Vue, Svelte, Angular, Astro, JS/TS) with detection rules, examples, and copy-ready fixes
- Release Automation — New
.github/workflows/release.ymltriggered byv*tag pushes: validates versioning, builds packages, and publishes a GitHub Release with full archive and skill package - Skill Package — New
make package-skilltarget createsdist/argus-skill-v{VERSION}.zipcontainingSKILL.md,AGENTS.md, andmanifest.yamlfor agent skill distribution - GitHub Release Workflow — Automated release publishing via
softprops/action-gh-releasewith CHANGELOG body and artifact uploads
Changed
- SKILL.md — Added Technology Stack Detection section, expanded Review Dimensions with 7th dimension (Framework API Usage), added Framework Anti-Patterns Library, updated Output Format with new fields
- AGENTS.md — Added OUTPUT FORMAT section; updated STRUCTURE with release workflow, WHERE TO LOOK with release automation entry, COMMANDS with
package-skilltarget, and NOTES with release workflow documentation - README.md — Updated project structure, version references, and added skill package documentation
- CONTRIBUTING.md — Updated version management section with bump-patch workflow and release process
- DEVELOPMENT-GUIDE.md — Updated version references, added release workflow documentation, and branch strategy for composite action
- manifest.yaml — New skill metadata file (name, version 0.3.1, capabilities, inputs/outputs)
- Makefile — Added
package-skilltarget, updatedpackageto depend on it, updatedclean, and refreshed version comments - .gitignore — Added
dist/exclusion pattern
Fixed
- Version consistency — All stale 0.2.0 references in documentation updated to 0.3.0/0.3.1
- SKILL.md corruption — Repaired escaped code fences and bash-quoting artifacts that broke YAML frontmatter and Markdown rendering
[0.3.0] — 2026-06-25
Added
Direction 2 — Consumer Configuration Layer
docs/argus-config-schema.md— Full.argus.ymlfield reference with schema, examples, and migration guidetools/load_config.py— Consumer config loader: reads.argus.ymlfrom consumer repo, deep-merges with built-in defaults, validates all fields, emitsGITHUB_ENVvariables for use in subsequent Action steps.argus.ymlsupport inaction.yml— newconfig-pathinput (default:.argus.yml);load-configstep runs before prompt build; consumer token-prefix, ignore rules/paths, fail-on thresholds, and max-findings are all injected into the LLM prompt at review time
Direction 3 — Fixture-Based Regression Testing
tests/fixtures/— Regression test suite with 4 categories and 8 fixture pairs (input +.expected):design-tokens/bad-hardcoded-colors.css— bareoklch/hex/rgbin component rules → 5 P0 findings expecteddesign-tokens/missing-dark-mode.css—:rootcolor tokens without[data-theme="dark"]override → 3 P0 findings expectedaccessibility/missing-aria.html— icon buttons, missingalt,<a>-as-button → 4 P1 findings expectedhardcoded-values/bad-magic-numbers.css— magicpxspacing/radii/font-size → 4 P1 findings expectedcss-quality/duplicate-rules.css— duplicate property declarations in same selector → 2 P2 findings expected
tests/fixtures/README.md—.expectedformat spec, how to add fixtures, CI integration notestools/run_fixture_tests.py— Fixture runner: parses.expectedfiles, invokes Argus (OpenCode CLI) or falls back to built-in static heuristic scanner (no API key required), validates severity counts (±1 tolerance), checksmust-not-flagrules, supports--verbose,--dry-run,--json,--category,--fixtureflags
CI & Tooling
ci.yml— Restructured into 3 jobs:lint— YAML syntax validation (now includesaction.yml) + 14 required file checksvalidate-tools— Python syntax check for all 4 tools +load_configdefault and example config validationfixture-tests—.expecteddry-run parse, fixture directory structure verification, artifact upload
action.yml— Newfixture-modeinput; when"true"runsrun_fixture_tests.pyinstead ofopencode github run(for Argus repo's own CI)
Changed
AGENTS.md— Updated to v0.3.0; expandedSTRUCTUREtree (addeddocs/,tests/, fulltools/listing); updatedWHERE TO LOOKtable (+6 rows); added fixture anti-pattern; updatedCOMMANDSsectionMakefile— New targets:test-fixtures(static heuristic mode),test-fixtures-llm(full LLM mode),test(= validate + test-fixtures);validateexpanded to 7 checks (now includes Python syntax andload_configvalidation);bump-*completion hint updated tomake test && make releaseVERSION— 0.2.0 → 0.3.0
Notes
- Backwards compatible — existing consumers with no
.argus.ymlcontinue to work unchanged; all new config fields use safe defaults - No API key required for CI —
run_fixture_tests.pyfalls back to static heuristic mode when OpenCode CLI is not installed, allowing fixture structure validation to run in any CI environment - Fixture count tolerance — severity count assertions allow ±1 variance to keep the suite stable across minor LLM updates
- Consumer config is additive — hard rules (P0 color violations, a11y baseline) cannot be fully disabled via
.argus.yml; severity can be downgraded but not silenced entirely for critical rules
[0.2.0] — 2026-06-17
Added
.github/actions/argus-review/action.yml— Reusable composite action wrapping OpenCode CLI + dynamic rule injection- Dynamic runtime rule loading:
action.ymlreadsAGENTS.md+SKILL.mdfrom the argus repo at review time and injects their contents into the LLM prompt argus-flashGitHub App (github.com/apps/argus-flash) — replaces the default OpenCode Agent App for PR review authentication- Workflow
use_github_token: truesupport — enables custom GitHub App token usage instead of OIDC exchange ci.yml— Rewritten with proper YAML syntax validation and required file checksreview.yml— Simplified to call the composite action; token generation viaactions/create-github-app-token@v1
Changed
AGENTS.md— Updated structure, added composite action andargus-flashApp to WHERE TO LOOK, added dynamic rule injection conventionSKILL.md— Updated to v0.2.0, added automated PR review workflow sectionREADME.md— Full rewrite with architecture diagram, cross-repo usage guide, and rule auto-sync explanationDEVELOPMENT-GUIDE.md— Updated for new architecture (composite action, argus-flash App, GitHub Actions integration)CONTRIBUTING.md— Added action.yml to pull request checklistMakefile— Added.github/actions/argus-review/action.ymlexistence check to validate targetVERSION— 0.1.1-test-2 → 0.2.0
Removed
opencode.jsonc— No longer needed; permissions are managed via GitHub App token.github/workflows/release.yml— Release process moved to localmake release- Old workflow files:
argus-test.yml,flash-review.yml,opencode.yml
Notes
- Any repo can install
argus-flashGitHub App and add a minimal 26-line review.yml to get automated design reviews - Rules are auto-synced via the composite action's
@mainref — update AGENTS.md/SKILL.md in the argus repo and all consumers pick up changes at the next review run - For pinned version usage, use
@v0.2.0instead of@main
[0.1.1] — 2026-06-17
Added
opencode.jsonc— Argus agent configuration for OpenCode, auto-loads AGENTS.md + SKILL.md.github/workflows/argus-review.yml— GitHub App PR review workflow (triggers on PR open/sync/reopen)
Changed
AGENTS.md— refreshed format with init-deep template (STRUCTURE, WHERE TO LOOK, CONVENTIONS, ANTI-PATTERNS sections)LICENSE— migrated from MIT to BSL 1.1 for commercial readinessVERSION— 0.1.1
Notes
- Argus-flash GitHub App (https://github.com/apps/argus-flash) now integrated for PR review
- BSL 1.1 allows research/fork but prohibits commercial production use; auto-converts to Apache 2.0 after 5 years
[0.1.0] — 2026-06-13
Added
AGENTS.md— identity, hard rules, Kold-Argus workflow, review dimensions, severity guideSKILL.md— design review skill with issue format, workflow, non-blocking contextREADME.md— project overview, usage, project structureVERSION— 0.1.0CODE_OF_CONDUCT.mdCONTRIBUTING.mdDEVELOPMENT-GUIDE.mdSECURITY.mdCHANGELOG.mdLICENSE— MIT (upgraded to BSL 1.1 in v0.1.1)CLAUDE.md— Claude Code compatibility bridgeMakefile— check-version, validate, release, package.github/workflows/ci.yml.github/workflows/release.yml
Changed
- AGENTS.md: Kold-Argus workflow formally documented; Argus connects to GitHub Argus App
- AGENTS.md: review dimensions table added
- SKILL.md: non-blocking context clarified
Notes
- Kold and Argus are companion agents sharing the same design principles
- Argus is the review gate; Kold never bypasses the review
- All merge operations require human approval