asterinas/.agents/skills/aster-code-review
yao 6c314ef6da
Check licenses / check-license-lines (push) Failing after 56s Details
Publish website / build_and_deploy (push) Failing after 56s Details
Test loongarch64 / basic-test (compile) (push) Failing after 56s Details
Test loongarch64 / basic-test (lint) (push) Failing after 56s Details
Test AsterNixOS (minimal) / minimal-nixos-test (push) Failing after 56s Details
Test riscv64 / basic-test (compile) (push) Failing after 56s Details
Test riscv64 / basic-test (ktest) (push) Failing after 56s Details
Test riscv64 / basic-test (lint) (push) Failing after 56s Details
Test riscv64 / basic-test (usermode_test) (push) Failing after 56s Details
Test riscv64 / integration-test (4, boot-debug-smp4) (push) Failing after 56s Details
Test riscv64 / integration-test (true, 4, conformance-release-smp4) (push) Failing after 56s Details
Test riscv64 / integration-test (true, boot-release) (push) Failing after 56s Details
Test riscv64 / integration-test (true, conformance-release) (push) Failing after 57s Details
Test x86-64 / basic-test (compile) (push) Failing after 56s Details
Test x86-64 / basic-test (ktest) (push) Failing after 57s Details
Test x86-64 / basic-test (lint) (push) Failing after 56s Details
Test x86-64 / basic-test (usermode_test) (push) Failing after 56s Details
Test x86-64 / osdk-test (asterinas/asterinas:0.18.0-20260702) (push) Failing after 56s Details
Test x86-64 / osdk-test (asterinas/osdk:0.18.0-20260702) (push) Failing after 56s Details
Test x86-64 / boot-test (linux-legacy32, 4, legacy32) (push) Failing after 56s Details
Test x86-64 / boot-test (multiboot, 4, multiboot2-smp4) (push) Failing after 57s Details
Test x86-64 / regression-test (linux-efi-handover64, false, handover64-debug) (push) Failing after 56s Details
Test x86-64 / regression-test (multiboot2, 4, multiboot2-smp4) (push) Failing after 57s Details
Test x86-64 / conformance-test (/ext2, blocklists.ext2, false, iommu, gvisor, ext2-iommu-debug) (push) Failing after 56s Details
Test x86-64 / conformance-test (/ext2, blocklists.ext2, false, iommu, kselftest, ext2-iommu-debug) (push) Failing after 56s Details
Test x86-64 / conformance-test (/ext2, blocklists.ext2, false, iommu, ltp, ext2-iommu-debug) (push) Failing after 56s Details
Test x86-64 / conformance-test (/ext2, blocklists.ext2, microvm, gvisor, ext2-microvm) (push) Failing after 56s Details
Test x86-64 / conformance-test (/ext2, blocklists.ext2, microvm, kselftest, ext2-microvm) (push) Failing after 56s Details
Test x86-64 / conformance-test (/ext2, blocklists.ext2, microvm, ltp, ext2-microvm) (push) Failing after 55s Details
Test x86-64 / conformance-test (linux-efi-pe64, false, gvisor, debug) (push) Failing after 56s Details
Test x86-64 / conformance-test (linux-efi-pe64, false, kselftest, debug) (push) Failing after 56s Details
Test x86-64 / conformance-test (linux-efi-pe64, false, ltp, debug) (push) Failing after 56s Details
Test x86-64 / conformance-test (multiboot2, /exfat, false, blocklists.exfat, gvisor, exfat-multiboot2-nokvm) (push) Failing after 57s Details
Test x86-64 / conformance-test (multiboot2, /exfat, false, blocklists.exfat, kselftest, exfat-multiboot2-nokvm) (push) Failing after 56s Details
Test x86-64 / conformance-test (multiboot2, /exfat, false, blocklists.exfat, ltp, exfat-multiboot2-nokvm) (push) Failing after 56s Details
Test x86-64 / conformance-test (multiboot2, 4, gvisor, multiboot2-smp4) (push) Failing after 56s Details
Test x86-64 / conformance-test (multiboot2, 4, kselftest, multiboot2-smp4) (push) Failing after 56s Details
Test x86-64 / conformance-test (multiboot2, 4, ltp, multiboot2-smp4) (push) Failing after 56s Details
Validate SCML files with sctrace / validate_scmls (push) Failing after 55s Details
Test x86-64 / xfstests (push) Failing after 55s Details
Publish API Docs / check_api_docs (push) Failing after 57s Details
Close stale issues and PRs / stale (push) Failing after 56s Details
Push packages to AsterNixOS's development cache on Cachix / push-pkgs (push) Has been cancelled Details
Test ISO image / iso-test (push) Has been cancelled Details
Test x86-64 / cross-compile-test (boot, false, asterinas/asterinas:0.18.0-20260702, arm-cross-boot, ubuntu-24.04-arm) (push) Has been cancelled Details
Fix aster-code-review total_defects to nreal
2026-07-24 05:10:18 -07:00
..
agent_profiles Add the aster-code-review skill 2026-07-02 18:15:28 -07:00
benchmark Fix aster-code-review total_defects to nreal 2026-07-24 05:10:18 -07:00
personas Add the aster-code-review skill 2026-07-02 18:15:28 -07:00
scripts Fix review benchmark guideline snapshot lookup 2026-07-05 18:32:23 -07:00
spec Clarify review persona responsibilities 2026-07-05 18:31:02 -07:00
tests Add the aster-code-review skill 2026-07-02 18:15:28 -07:00
Makefile Add the aster-code-review skill 2026-07-02 18:15:28 -07:00
README.md Add the aster-code-review skill 2026-07-02 18:15:28 -07:00
SKILL.md Add the aster-code-review skill 2026-07-02 18:15:28 -07:00
aster_code_review.sh Add the aster-code-review skill 2026-07-02 18:15:28 -07:00

README.md

aster-code-review

A code-review skill for the Asterinas OS kernel. It reviews code — either a Git change (diff mode) or a set of target files (files mode), against the working tree — and writes a single Markdown review file. It makes both objective calls (undeniable bugs) and subjective calls (guideline violations), the latter grounded in Asterinas's comprehensive, persona-keyed Coding Guidelines.

It is agent-agnostic: the same package runs under both Claude Code and Codex. It is local-first: no server and no PR are required; it reads the repository and writes a file. It is benchmark-driven: a suite of review problems built from real kernel defects measures how many it catches (recall), so the guidelines and harness improve against evidence rather than intuition.

Quick start

aster-code-review is a skill, not a binary — you trigger it from inside an agent session, not from a shell. It reviews the working tree, so to review a specific commit you check it out first.

It works in one of two review modes. The diff mode reviews the working tree against a base commit:

diff <base> <output> [--overwrite]

The files mode reviews a set of specified files in the working tree:

files <path[:lines] ...> <output> [--overwrite]

Both modes write the reviews in a review file at path <output>.

This skill supports both Claude Code and Codex.

  • Claude Code: /aster-code-review diff main review.md, or just ask: "Use aster-code-review to review what this branch added over main, into review.md."
  • Codex: "Use the aster-code-review skill to review kernel/src/sched/fair.rs into review.md."

See the interface spec for the full argument semantics.

What's in this directory

Path What it is
SKILL.md The agent-facing entry point: orchestration pipeline, the shared persona-pass contract, and the spawn shim.
personas/ One pass template per reviewer persona; each points at its guideline page and lists its ordered concerns.
scripts/ The deterministic primitives — resolve_target.sh (parse args → canonical review input), build_pass_prompt.sh (cache-ordered persona pass prompt; uses pass_contract.md), assemble_review.sh (fragments → review file) — plus run_agent.sh (shared agent launcher) and post_reviews_to_github.sh (post a review file to a PR).
aster_code_review.sh Headless CLI: run the skill from a shell via an agent profile (ACR_AGENT_PROFILE). The one blessed way to run the skill headless — used by the benchmark, the PR-review CI, and one-shot local runs.
agent_profiles/ Per-agent launch configs (ACR_AGENT_PROFILE=<name>): claude, codex, codex_workflow (the CI profile).
benchmark/ The recall benchmark — review qualityproblems.yaml (fixtures cited by commit SHA) and the run.sh harness. Agent-agnostic: Claude and Codex both verified.
tests/ Integration tests for the deterministic scripts — machinery, no model needed. One suite per script.
spec/ The design specification — the authoritative, self-contained design doc. Start at spec/README.md.
Makefile Task dispatcher: make test, make check, make benchmark/make smoke (both need ACR_AGENT_PROFILE=<name>).

Design specification

The full design — motivation, the persona-keyed guidelines it consumes, the interface and output format, the execution model, and the benchmark — lives under spec/, with every significant decision justified inline. New contributors should read spec/README.md first.