بنقرة واحدة
qa
Run browser-first QA in OpenCode, capture evidence, optionally fix local issues, and write a structured report.
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
القائمة
Run browser-first QA in OpenCode, capture evidence, optionally fix local issues, and write a structured report.
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
استنادا إلى تصنيف SOC المهني
Check local gstack setup health, detect stale build/setup state, and write a bounded upgrade-readiness report.
Interrogate an idea like a bounded YC-style office hours session and write a durable local memo.
Review recent local repository history and write a bounded engineering retrospective.
Prepare a local authenticated browser session for OpenCode QA and design workflows using gstack browse cookie import flows.
Audit a local rendered page with browser evidence, write a bounded design report, and optionally apply local UI fixes when explicitly requested.
Update a small, factual set of project docs from local changes and write a durable summary without committing or using GitHub APIs.
| name | qa |
| description | Run browser-first QA in OpenCode, capture evidence, optionally fix local issues, and write a structured report. |
| compatibility | opencode |
| metadata | {"host":"opencode","migration_phase":"2","mode":"report-first"} |
This is the OpenCode-native /qa slice for gstack. It runs browser-driven QA, captures evidence, and writes a structured report.
In this v1 slice:
.gstack/qa-reports/By default /qa is report-first. If the request explicitly says report only or do not modify code, stay in report-only mode. If the request explicitly asks to fix issues and local editable source exists, you may apply a bounded local fix loop and add regression coverage when practical. Do not create commits.
You need an explicit target URL or local page path for this version.
http://localhost:3000http://127.0.0.1:4173/qa-eval.html --quickhttps://staging.example.com/settingsIf no target is provided, ask for one using the host's normal user-question tool.
Load the browse skill first and use it to determine the local browser binary setup.
Use these shared repo assets:
qa/templates/qa-report-template.mdqa/references/issue-taxonomy.mdWrite outputs here:
.gstack/qa-reports/qa-report-{slug}.md.gstack/qa-reports/screenshots/.gstack/qa-reports/baseline.jsonreport only or do not modify code, stay report-only.gstack/qa-reports/screenshots/Use when the request includes --quick.
console --errorsFor this v1 slice, keep quick mode bounded. Run this exact sequence unless one command clearly fails:
mkdir -p .gstack/qa-reports/screenshots
$B goto <target-url>
$B snapshot -i -a -o .gstack/qa-reports/screenshots/initial.png
$B console --errors
$B links
$B viewport 375x812
$B snapshot -a -o .gstack/qa-reports/screenshots/mobile.png
If the mobile capture step fails, continue with the annotated screenshot and state that mobile capture was skipped.
Default when --quick is not present.
snapshot -i.gstack/qa-reports/screenshots existsqa/templates/qa-report-template.mdconsole --errorsStart with commands like:
$B goto <target-url>
$B snapshot -i -a -o .gstack/qa-reports/screenshots/initial.png
$B console --errors
$B links
Use qa/references/issue-taxonomy.md as the classification source.
For each page or major state you inspect:
snapshot -D after meaningful interactionsUseful commands:
$B snapshot -i
$B click @e3
$B snapshot -D
$B console --errors
$B viewport 375x812
$B screenshot .gstack/qa-reports/screenshots/mobile.png
Document issues as you find them. Do not batch everything at the end.
Use literal issue IDs in order: ISSUE-001, ISSUE-002, ISSUE-003, and so on.
Each issue needs:
Use categories and severity labels from qa/references/issue-taxonomy.md.
Compute a simple health score using the same categories as qa/templates/qa-report-template.md.
Minimum categories to score:
Use conservative scoring. Do not invent precision you cannot support with evidence.
Write the final report under .gstack/qa-reports/ and keep screenshot paths relative to that report.
If the request gives an exact report path, write to that exact file path.
Also write a small baseline.json with:
{
"url": "<target>",
"healthScore": 0,
"issues": []
}
If the request gives an exact baseline path, write to that exact file path.
If you could not complete the full flow, still write a partial report and clearly mark what was covered versus skipped. If any browser command fails after partial evidence has already been captured, still write the report and baseline with the evidence you do have.
In quick mode, each issue heading must start with its literal issue ID, for example ### ISSUE-001: Broken link.
Only enter this path when the user explicitly asks for fixes and local editable source exists.
If the user already gives exact issues plus an exact source file, prefer a short fix path:
If the user also explicitly asks for one regression test and the repo already has a clear local test path, add exactly one small regression test tied to the named file and named issues before the final re-check
If the user gives an exact regression test file path, write that exact file and run the smallest test command that exercises only that test
choose the smallest set of highest-confidence issues
map each issue to likely local source files before editing
apply the smallest credible fix
re-run the relevant browser checks
add or extend a regression test when the repo already has a clear local test path
if an exact regression test path is given, create that exact file and run the smallest matching test command only
If the repo has no clear local test framework, record that limitation in the report instead of inventing one.
snapshot -D whenever an interaction should visibly change page state