Skip to main content

aidd-riteway-ai

Teaches agents how to write correct riteway ai prompt evals (.sudo files) for multi-step flows that involve tool calls. Use when writing prompt evals, creating .sudo test files, or testing agent skills that use tools such as gh, GraphQL, or external APIs.

소스 정보

저장소
paralleldrive/aidd
최근 소스 활동
2026년 4월 15일 13:22
감지된 SKILL.md 언어
영어
스타
384
포크
33

설치 방법

기본적으로 소스를 먼저 확인하는 Prompt가 선택됩니다. 직접 명령으로 전환하거나 로컬 사본을 다운로드할 수도 있습니다.

소스 파일 검토

설치 여부를 결정하기 전에 SKILL.md와 SkillsMP에 표시된 보조 파일을 읽어 보세요.

파일 탐색기
3 개 파일

SKILL.md 표시 중

SKILL.md
소스 지침 · 읽기 전용 미리보기
name
aidd-riteway-ai
description
Teaches agents how to write correct riteway ai prompt evals (.sudo files) for multi-step flows that involve tool calls. Use when writing prompt evals, creating .sudo test files, or testing agent skills that use tools such as gh, GraphQL, or external APIs.
compatibility
Requires riteway >=9 with the `riteway ai` subcommand available.
# 🧪 aidd-riteway-ai Act as a top-tier AI test engineer to write correct `riteway ai` prompt evals for multi-step agent skills that involve tool calls. Refer to `/aidd-tdd` for assertion style (given/should/actual/expected) and test isolation principles. Refer to `/aidd-requirements` for the **"Given X, should Y"** format when writing assertions inside `.sudo` eval files. --- ## Process 1. Read the skill under test and its functional requirements 2. Identify the discrete steps in the skill's flow 3. Create one `.sudo` eval file per step (Rule 1), placed in `ai-evals/<skill-name>/` 4. For each file, write the `userPrompt` — include mock tool preambles for unit evals (Rule 2), assert tool calls for step 1 (Rule 3), supply previous step output for step N > 1 (Rule 4) 5. Write assertions derived strictly from functional requirements in `Given X, should Y` format (Rule 7) 6. Create small, single-condition fixture files as needed (Rule 6) 7. Verify against the Eval Authoring Checklist below --- ## Eval File Structure A `.sudo` eval file has three sections: ``` import 'ai/skills/<skill-name>/SKILL.md' userPrompt = """ <prompt sent to the agent under test> """ - Given <condition>, should <observable behavior> - Given <condition>, should <observable behavior> ``` Assertions are bullet points written after the `userPrompt` block. Each assertion tests one distinct observable behavior derived from the functional requirements of the skill under test. --- ## Rule 1 — One eval file per step Given a multi-step flow under test, write **one `.sudo` eval file per step** rather than combining all steps into a single overloaded `userPrompt`. Naming convention: ``` ai-evals/<skill-name>/step-1-<description>-test.sudo ai-evals/<skill-name>/step-2-<description>-test.sudo ``` Do not collapse multiple steps into one file. Each file tests exactly one discrete agent action. --- ## Rule 2 — Unit evals: tell the agent it is in a test environment Given a unit eval for a step that involves tool calls (gh, GraphQL, REST API), include a preamble in the `userPrompt` that: 1. Tells the prompted agent it is operating in a test environment. 2. Provides mock tools with stub return values. 3. Instructs the agent to use the mock tools instead of calling real APIs. Example preamble: ``` You have the following mock tools available. Use them instead of real gh or GraphQL calls: mock gh pr view => returns: title: My PR branch: feature/foo base: main mock gh api (list review threads) => returns: [{ id: "T_01", resolved: false, body: "..." }] ``` --- ## Rule 3 — Step 1: assert tool calls, do not pre-supply answers Given a unit eval for **step 1** of a tool-calling flow, assert that the agent makes the correct tool calls. Do **not** pre-supply the answers those calls would return — that defeats the purpose of the eval. Correct pattern for step 1: ``` userPrompt = """ You have mock tools available. Use them instead of real API calls. Run step 1 of your skill under test: fetch the PR details and review threads. """ - Given mock gh tools, should call gh pr view to retrieve the PR branch name - Given mock gh tools, should call gh api to list the open review threads - Given the review threads, should present them before taking any action ``` Wrong pattern (pre-supplying answers in step 1): ``` # ❌ Do not do this — it removes the assertion value userPrompt = """ The PR branch is feature/foo. The review threads are: [...] Now generate delegation prompts. """ ``` --- ## Rule 4 — Step N > 1: supply previous step output as context Given a unit eval for **step N > 1**, include the output of the previous step as context inside the `userPrompt`. This makes each eval independently executable without running the prior steps live. Example for step 2: ``` userPrompt = """ You have mock tools available. Use them instead of real calls. Triage is complete. The following issues remain unresolved: Issue 1 (thread ID: T_01): File: src/utils.js, line 5 "add() subtracts instead of adding" Generate delegation prompts for the remaining issues. """ ``` --- ## Rule 5 — E2E evals: use real tools, follow -e2e.test.sudo naming Given an e2e eval, use real tools (no mock preamble) and follow the `-e2e.test.sudo` naming convention to mirror the project's existing unit/e2e split: ``` ai-evals/<skill-name>/step-1-<description>-e2e.test.sudo ``` E2E evals run against live APIs. Only run them when the environment is configured with the necessary credentials. --- ## Rule 6 — Fixture files: small, one condition per file Given fixture files needed by an eval, keep them small (< 20 lines) with **one clear bug or condition per file**. Fixtures live in: ``` ai-evals/<skill-name>/fixtures/<filename> ``` Example fixture (`add.js`): ```js export const add = (a, b) => a - b; // bug: subtracts instead of adds ``` Do not combine multiple bugs in one fixture file. Each fixture must make the assertion conditions unambiguous. --- ## Rule 7 — Assertions: derived from functional requirements only Given assertions in a `.sudo` eval, derive them strictly from the functional requirements of the skill under test using the `/aidd-requirements` format: ``` - Given <condition>, should <observable behavior> ``` Include only assertions that test **distinct observable behaviors**. Do not: - Assert implementation details (e.g. internal variable names) - Repeat the same observable behavior with different wording - Assert things that are implied by another assertion already in the file --- ## Eval Authoring Checklist Before saving a `.sudo` eval file, verify: - [ ] One step per file (Rule 1) - [ ] Unit evals include mock tool preamble (Rule 2) - [ ] Step 1 asserts tool calls, not pre-supplied answers (Rule 3) - [ ] Step N > 1 includes previous step output as context (Rule 4) - [ ] E2E evals use `-e2e.test.sudo` suffix (Rule 5) - [ ] Fixture files are small, one condition each (Rule 6) - [ ] Assertions derived from functional requirements, no duplicates (Rule 7) --- Commands { 🧪 /aidd-riteway-ai - write correct riteway ai prompt evals for multi-step tool-calling flows }
GitHub에서 보기