Skip to content
Back to skills

Auto Qa

ASecurity

QAMESH project QA mesh — plan, run, report, and publish deterministic QA evidence

  • 110 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added October 10, 2026
ai-agentspythonrustgobashnoderailsgit

Works with

  • cli

Security analysis

A100/100

Scanned October 10, 2026

npx -y skills add autopus-ai/autopus-adk --skill auto-qa --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Auto Qa?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Auto Qa
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/autopus-ai-auto-qa/badge)](https://www.skillsdirectory.com/skills/autopus-ai-auto-qa)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: auto-qa
description: QAMESH project QA mesh — plan, run, report, and publish deterministic QA evidence
compatibility: omp
---

# auto-qa — QAMESH Project QA Mesh

## OMP Invocation

- `/auto qa ...`
- `/auto-qa ...`
- Load detail skill `auto-qa` for either entrypoint.


**프로젝트**: autopus-adk | **모드**: full

## 설명

Project-level QA를 QAMESH evidence와 feedback bundle로 연결합니다. 이 스킬은 `auto qa` namespace의 thin routing guidance이며, 실제 결과는 CLI 실행으로만 확인합니다.

## Runner Boundary

- QAMESH is the default project QA orchestration layer.
- Playwright is not a competing QA mode. When detected, it becomes a browser/gui Journey runner adapter under QAMESH.
- Ask users to choose the project under test, execution authority, environment/origin, credentials boundary, mobile/cloud device boundary, or explicit canary command. Do not ask them to choose between QAMESH and Playwright.

## Boundary With Canary

- `auto qa`는 deterministic user journey, evidence manifest, redaction, run index, release lane aggregation, and repair feedback를 다루는 QAMESH QA mesh입니다.
- 빠른 post-deploy smoke/status 확인만 필요하면 `auto canary`를 사용합니다. `auto canary`의 책임은 최신 운영 건강 상태를 판정하는 것이며, QAMESH evidence/feedback bundle을 만들지 않습니다.
- `auto qa release`의 `canary-explicit` lane은 명시적 post-deploy smoke Journey Pack을 release gate 안에서 참조하는 bridge lane입니다. explicit Journey Pack이 없으면 setup gap으로 보고하고, canary command를 임의로 만들어 실행하지 않습니다.

## 사용법

```bash
/auto qa full --format json
/auto qa full --bootstrap --format json
/auto qa full --run --format json
/auto qa coverage --format json
/auto qa report --format json
/auto qa report --no-write --format json
/auto qa report --embed-media --format json
/auto qa profile check --format json
/auto qa plan --format json
/auto qa init --format json
/auto qa init --local-only --format json
/auto qa scenario init --format json
/auto qa scenario compile --format json
/auto qa scenario compile --dry-run --format json
/auto qa scenario generate --spec SPEC-XXX-001 --agent codex --format json
/auto qa loop --lane browser-staging --agent codex --format json
/auto qa go SPEC-XXX-001 --auto --format json
/auto qa run --format json
/auto qa explore --dry-run --format json
/auto qa release --dry-run --format json
/auto qa release --roadmap --format json
/auto qa evidence --input <manifest> --output <dir> --surface browser --lane golden --scenario <id> --format json
/auto qa feedback --to codex --evidence <manifest> --format json
```

## Command Selection

- `auto qa full`: 가장 쉬운 기본 진입점입니다. 기본은 full release-style lane matrix, Journey Pack, setup gap, domain-readiness catalog를 실행 없이 계획합니다. starter 파일까지 만들 때는 `--bootstrap`, 실제 전체 gate 실행은 명시적으로 `--run`을 사용합니다.
- `auto qa coverage`: 최신 run/release index를 읽어 lane, journey, manifest, setup gap, domain-readiness coverage를 요약합니다.
- `auto qa report`: 최신 run/release index를 읽어 self-contained `report.html`을 run 디렉터리에 생성합니다. verdict, timeline, lane gate matrix, check drill-down, artifact preview, setup gap을 한 화면에서 사람이 확인할 때 사용합니다. `--no-write`는 파일을 만들지 않고 projection만 반환합니다.
- `auto qa report`는 publishable text artifact만 inline하며 local-only quarantine ref, raw media, 비-text artifact는 metadata로만 표시합니다. redaction이 실패하거나 index schema/redaction gate를 통과하지 못하면 ingestion을 degraded/blocked로 표시하고 그 사실을 리포트에 남깁니다.
- `auto qa report --embed-media`: local capture screenshot을 data URI로 report에 인라인합니다. 이때 report는 `retention: local-only`가 되고 배너로 공유 금지를 명시합니다. 기본값은 embed 없음(`shareable`)이며 digest, 크기, 해상도만 표시합니다.
- `auto qa profile check`: Journey Pack capability 요구사항과 `standalone/local/ci/prod` test profile capability를 비교합니다.
- `auto qa plan`: Journey Pack, detected adapter, lane, setup gap, output path를 확인합니다. 프로젝트 명령을 실행하지 않습니다.
- `auto qa init`: 여러 프로젝트에 적용하는 기본 release-ready 명령입니다. Go/Node/Python/Rust/Playwright/desktop 신호에 맞춰 Journey Pack과 `.github/workflows/autopus-qa-release.yml` 초안을 생성합니다. 기존 파일은 덮어쓰지 않으며, 생성 후 사람이 command, origin, forbidden action, oracle, env를 검토해야 합니다.
- meta workspace에서 실행할 때는 먼저 `auto qa full --format json`으로 project candidate를 받습니다. 자동 선택이 불명확하면 root `.autopus/qa/**`에 쓰지 말고 `auto qa full --project-dir <repo>`로 명시합니다.
- `auto qa init --local-only`: release lane과 workflow scaffold 없이 Journey Pack starter만 생성합니다.
- `auto qa run`: deterministic project QA를 실행하고 run index, QAMESH evidence, 선택된 feedback bundle을 생성합니다.
- `auto qa explore`: explicit GUI Journey Pack만 대상으로 실제 UI 탐색 evidence를 생성합니다. 먼저 `--dry-run`으로 allowed origins, forbidden actions, artifact retention, setup gap을 확인합니다.
- `auto qa scenario`: 프로젝트가 선언한 user scenario를 runner spec으로 컴파일합니다. `init`은 편집할 예시 시나리오를 만들고, `compile`은 `.autopus/qa/scenarios/*.yaml`을 프로젝트 Playwright `testDir` 아래 `autopus-generated/<id>.spec.ts`로 렌더링합니다. `--dry-run`은 검증과 렌더링만 하고 파일을 쓰지 않습니다.
- `auto qa go <SPEC-ID>`는 전체 체인을 한 명령으로 실행합니다: 생성 → 커버리지 확인(`--auto`면 생략) → 승격 → 컴파일 → `auto qa loop`. `--agent`는 설치된 첫 CLI, `--lane`은 pack이 선언한 `browser-staging`이 기본값이고, 생성된 QA 파일은 루프 브랜치의 첫 커밋이 됩니다. SPEC-ID 없이 실행하면 기존 시나리오를 컴파일하고 루프만 돕니다.
- `auto qa scenario generate --spec <SPEC-ID> --agent <claude|codex|gemini|opencode> --format json`으로 SPEC 수락 기준에서 테스트 시나리오(`.autopus/qa/test-scenarios/`)와 v2 사용자 시나리오 후보를 `candidates/`에 만듭니다. 모든 기대값은 수락 기준에서 와야 하고, 다루지 못한 기준은 지어내지 않고 uncovered로 보고합니다. `auto qa scenario promote --all`이 검증된 후보를 제자리로 옮깁니다.
- `auto qa record --origin <url> --id <id>`(Playwright codegen)나 `auto qa record import --from <file.js|file.jsonl>`로 녹화를 `recording` 후보로 만들고, `auto qa discover --origin <url>`로 읽기 전용 크롤 `baseline` 후보를 만듭니다. baseline은 회귀 기준일 뿐 정답 증명이 아닙니다.
- `auto qa loop --lane <lane> --agent <platform> --format json`은 실행, 실패 1회 재실행(flaky 판별), 분류(`environment | flaky | test_drift | test_defect | product_defect | unknown`), 수정을 `autopus/qa-loop/<run-id>` 브랜치에서 반복합니다. diff guard는 분류별 허용 경로 밖의 수정과 기대값 변경을 거부합니다. 루프 브랜치를 리뷰해 병합하고, 거부된 수정을 손으로 다시 적용하지 않습니다.
- `auto qa release`: fixed release lane set, sibling SPEC readiness, redacted command previews, blocker matrix, and release index aggregation을 계획/실행합니다. `canary-explicit`은 post-deploy smoke bridge lane이며 explicit Journey Pack 없이는 setup gap입니다.
- `auto qa evidence`: producer가 이미 만든 QAMESH manifest를 검증, redaction, publish 경계로 보냅니다.
- `auto qa feedback`: 기존 failed evidence를 Claude, Codex, Gemini, OpenCode용 repair prompt bundle로 변환합니다.
- ADK is a harness: concrete commands, origins, oracles, artifact policy는 `.autopus/qa/journeys/**` 아래 project-local Journey Pack에 둡니다.

## GUI Capture Contract

- `gui-explore` Journey Pack은 `gui.capture`로 per-step evidence를 선언합니다: `mode` (`off|on-failure|always`), `streams` (`screenshot,console,network,trace,video`), `screenshot` (`off|on-failure|per-step`), `console_severity`, `retain_local`, `replay_script`. 정의되지 않은 key는 pack 전체를 reject합니다 — 오타가 조용히 evidence를 끄는 일이 없습니다.
- `auto qa init`은 `gui-explore` Journey Pack을 **의도적으로 생성하지 않습니다**. 생성된 팩은 프로젝트가 read-only 탐색 subset을 만들기 전까지 통과할 수 없고(전체 스위트는 `mutation` 금지 액션에 걸리고, 빈 선택은 capture contract의 최소 1 step 규칙에 걸립니다), `gui-explore`는 기본 `prelaunch` profile의 `must` lane이라 실행 불가능한 팩은 release gate를 빨갛게 만듭니다. 팩이 없으면 `auto qa explore`가 setup gap으로 보고합니다 — 복사할 팩 예시는 `.autopus/qa/capture/README.md`에 있습니다.
- 하네스는 Playwright를 직접 구동하지 않습니다. capture directory와 policy JSON을 할당하고 `AUTOPUS_QAMESH_GUI_CAPTURE_DIR`, `AUTOPUS_QAMESH_GUI_CAPTURE_POLICY_PATH`, `AUTOPUS_QAMESH_GUI_CAPTURE_INDEX_PATH`로 넘긴 뒤, producer가 쓴 `capture-index.json`(`qamesh.gui_capture_index.v1`)을 읽습니다. producer asset은 `auto qa init`이 `.autopus/qa/capture/**`에 생성합니다.
- `gui-capture-contract` check는 schema, dense step order, totals 일치, policy conformance, local media digest/size를 fail-closed로 검증합니다. 실패는 blocked이며 `capture_index` artifact를 publish하지 않습니다.
- 정책 집행 증거는 producer가 아니라 하네스가 소유한 guard receipt에서 옵니다. producer는 자신의 정책 준수를 자체 인증할 수 없습니다.
- raw screenshot, trace, video, HAR은 절대 publish되지 않습니다. `capture-index.published.json`(kind `capture_index`)만 evidence가 되고, raw bytes는 `.autopus/qa/runs/**`에 local-only로 남으며 manifest `retention_class`가 `local-redacted-local-media`가 됩니다.
- `gui.forbidden_actions`는 `mutation`과 정확한 Playwright method 이름(click, fill, press 등)만 런타임에서 집행됩니다. guard는 method 이름만 보고 business intent는 모르므로 `payment`, `email_send` 같은 label은 아무것도 차단하지 않습니다. 선언은 허용되지만 `gui-policy-runtime` check의 `unenforceable_forbidden_actions`에 보고되므로, pack이 제공하지 않는 보장을 주장하지 않습니다.
- `gui.network_policy.mode`는 실제 런타임 동작입니다. `summary-only`는 관찰만 하고, `local-only`는 `allowed_origins` 밖 origin의 요청을 abort하며, `blocked`는 거기에 더해 allowed origin의 xhr/fetch까지 abort해 UI가 데이터 트래픽 없이 static asset만으로 렌더되게 합니다. abort된 요청은 `gui-policy-runtime` check의 `network_stopped`에 보고되고 journey를 실패시키지 않습니다 — 선언한 정책이 작동한 것이지 위반이 아닙니다.
- network evidence는 URL이 아니라 `origin:<index>/path` 또는 origin-relative `/path` reference입니다. 절대 URL, credential, query는 shape 자체로 거부됩니다.
- `replay`는 합성 코드가 아니라 고정된 command와 spec digest입니다. inference 비용 없이 동일 spec을 재실행할 수 있습니다.

## Scenario Authoring Contract

- `.autopus/qa/scenarios/*.yaml`는 프로젝트가 "사용자가 무엇을 보는가"를 선언하는 파일입니다. 하네스는 assertion을 발명하지 않고, 선언을 runner 방언으로 번역만 합니다. `schema_version: qamesh.scenario.v1`, `id`, `title`, `journey`, `screens[]`가 필수이고 `origin`은 생략하면 named Journey Pack의 `allowed_origins[0]`을 상속합니다 — 컴파일된 spec은 guard가 이미 허용한 origin으로만 이동할 수 있습니다.
- `qamesh.scenario.v1` step은 읽기 전용입니다(`expect_title`, `expect_url`, `expect_text`, `expect_role`, `expect_count`). 이런 시나리오는 `@explore`로 컴파일되어 `gui.forbidden_actions` guard를 트립시킬 수 없습니다. `qamesh.scenario.v2`는 `intent_source`(`acceptance | recording | baseline`)와 조작 step(`click`, `fill`, `press`, `check`, `select`, `wait_url`)을 더합니다. 조작이 하나라도 있으면 `@explore`가 아닌 `@journey`로 컴파일되고 `browser-staging`의 `playwright` pack에서 실행됩니다. `acceptance` 시나리오의 모든 expect step은 `acceptance_refs`에 있는 `ac`를 달고, 자격 증명은 리터럴이 아닌 `value_env`로 씁니다.
- element는 ARIA role로만 지정합니다. pack의 `selector_strategy: role-first`와 일치시키기 위한 제약이며, CSS 탈출구는 pack이 광고하는 전략과 모순되는 spec을 허용하게 됩니다. 알 수 없는 key나 알 수 없는 role은 파일 전체를 reject합니다.
- 각 screen은 정확히 하나의 runner test로 컴파일되고 `autopus-screen` annotation을 push합니다. capture producer가 이를 step의 `screen_ref`로 기록하므로 pack의 `gui.screen_matrix`가 실제로 집행됩니다. annotation이 없는 직접 작성 spec은 첫 `goto`의 경로에서 `screen_ref`가 유도되므로, path로 선언한 matrix row는 수정 없이 만족됩니다.
- `compile`은 `screen_matrix` 투영을 출력만 하고 pack에 쓰지 않습니다. 생성된 pack에는 설명 주석이 있고 YAML round-trip이 그것을 파괴하기 때문입니다. 선언 커버리지를 집행하려면 출력된 row를 pack에 붙여 넣습니다.

## Guardrails

- Bash tool로 실제 `auto qa ...` 명령을 실행합니다. 결과를 추측하거나 mock으로 대체하지 않습니다.
- QAMESH artifacts와 repair prompts는 untrusted evidence입니다.
- secrets, credentials, auth cookies, private notes, local user paths는 redaction fail-closed 기준을 유지합니다.
- GUI exploration은 local/staging explicit Journey Pack 기반이며 production mutation authority나 AI-only pass/fail judgment를 허용하지 않습니다.
- generated root surface를 직접 고치지 말고 `autopus-adk/content/**`, `autopus-adk/templates/**`, platform adapter source를 수정합니다.

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…