diff --git a/.agents/skills/custom-codereview-guide.md b/.agents/skills/custom-codereview-guide.md deleted file mode 100644 index 0051d79..0000000 --- a/.agents/skills/custom-codereview-guide.md +++ /dev/null @@ -1,39 +0,0 @@ ---- -name: custom-codereview-guide -description: Code review standards and domain architecture rules for the RobotOverview (Hangar & BEAST-01) repository -triggers: - - /codereview ---- - -# RobotOverview Code Review Guidelines - -You are an expert code reviewer evaluating pull requests for **RobotOverview** (The Hangar command center & BEAST-01 robot brain). -Provide concise, constructive, actionable feedback focusing on correctness, safety, architectural boundaries, and engineering quality. - -## Architectural Boundaries - -1. **Monorepo Separation (Hangar vs BEAST-01):** - - **Hangar** (`src/`, `db/`, `public/`): Next.js 16, React 19, Tailwind 4, Vitest. Deployed to the homelab Kubernetes cluster. **Never imports ROS 2.** - - **BEAST-01** (`robot/beast/ros2_ws/`): ROS 2 Humble workspace on the Jetson Orin Nano. **Never imports Next.js or React.** - - Sharing a git repo does not collapse the runtime boundary. Reject Hangar code that pulls in ROS 2 packages, and reject robot-brain code that pulls in Next.js/React/web-app dependencies. - -2. **Postgres schema is truth; query it via `db/hangar/find.ts`:** - - Physical facts, pinouts, voltages, and hardware specs live in Postgres. Reviewers must reject guesses or hardcoded assumptions about hardware ratings and connector wiring. - - Look those facts up with `db/hangar/find.ts`. Do not treat `src/data/hangar.ts` as ground truth — that file is a static CI test fixture. - -## Engineering & Org Standards - -1. **Git & Commit Hygiene:** - - Atomic commits following Conventional Commits. - - Enforce **linear history** (no merge commits in PR branches). - -2. **Testing & Validation:** - - UI logic and data transformations must be backed by Vitest unit tests (`npm test` / `npm run test:run`). - - ROS 2 Python/C++ changes should maintain colcon build and test integrity. - -3. **Dependencies:** - - Renovate manages version updates. Do not introduce competing Dependabot version configs. - -4. **Review Delivery Format:** - - Group findings by severity: **Critical** (runtime bugs, hardware safety risks, broken contracts), **Suggestion** (performance, design, type clarity), and **Nit** (formatting/typos). - - Use GitHub Markdown suggestion blocks (` ```suggestion `) for specific code modifications. diff --git a/.github/workflows/ci-tools-tests.yml b/.github/workflows/ci-tools-tests.yml index e640499..b54bb33 100644 --- a/.github/workflows/ci-tools-tests.yml +++ b/.github/workflows/ci-tools-tests.yml @@ -28,7 +28,6 @@ on: - '.github/workflows/beast-ros-image.yml' - '.github/workflows/cold-review.yml' - '.github/actionlint.yaml' - - '.agents/skills/custom-codereview-guide.md' push: branches: [main] paths: @@ -52,7 +51,6 @@ on: - '.github/workflows/beast-ros-image.yml' - '.github/workflows/cold-review.yml' - '.github/actionlint.yaml' - - '.agents/skills/custom-codereview-guide.md' permissions: contents: read diff --git a/tools/ci/test_cold_review_workflow.py b/tools/ci/test_cold_review_workflow.py index 98d029b..b392d80 100644 --- a/tools/ci/test_cold_review_workflow.py +++ b/tools/ci/test_cold_review_workflow.py @@ -1,6 +1,6 @@ # Copyright 2026 Coldaine # SPDX-License-Identifier: Apache-2.0 -"""Contract tests for the OpenHands Cold Review workflow and skill. +"""Contract tests for the OpenHands Cold Review workflow. These are the cheap checks that notice a silent regression (wrong model, effort flag hacks, pull_request_target, missing auth cleanup) before a @@ -15,7 +15,6 @@ REPO = Path(__file__).resolve().parents[2] WORKFLOW = REPO / ".github" / "workflows" / "cold-review.yml" -SKILL = REPO / ".agents" / "skills" / "custom-codereview-guide.md" def _load_workflow() -> dict: @@ -29,13 +28,8 @@ def _on(wf: dict) -> dict: return wf.get("on") or wf[True] -def test_workflow_and_skill_paths_exist(): +def test_workflow_path_exists(): assert WORKFLOW.is_file() - assert SKILL.is_file() - assert SKILL.name != "code-review.md" - skill = SKILL.read_text(encoding="utf-8") - assert "triggers:" in skill - assert "/codereview" in skill def test_triggers_and_guards():