Not in the top 1,000 by GitHub stars
openqa-cn/codexqa
codexqa: 11 local-first Agent Skills for Cursor, Claude Code, Codex & OpenClaw — change impact analysis, AI code review, defect scan, testcase generation, browser replay & RCA.
History
Review weekly changes to SKILL.md before updating. Dates mark the weeks in which we observed each version; checks apply to the recorded commits.
View weekly changes
skills/codexqa-change-analysis/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Instructions only → After Instructions only
783954281fc4 → 783954281fc4
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Instructions only
First observation → 783954281fc4
No earlier version was observed for comparison.
skills/codexqa-code-analyzer/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
783954281fc4 → 783954281fc4
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → 783954281fc4
No earlier version was observed for comparison.
skills/codexqa-code-reviewer/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
783954281fc4 → 783954281fc4
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → 783954281fc4
No earlier version was observed for comparison.
skills/codexqa-code-wiki/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
783954281fc4 → 783954281fc4
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → 783954281fc4
No earlier version was observed for comparison.
skills/codexqa-defect-analyzer/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
783954281fc4 → 783954281fc4
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → 783954281fc4
No earlier version was observed for comparison.
skills/codexqa-jev-browser/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
783954281fc4 → 783954281fc4
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → 783954281fc4
No earlier version was observed for comparison.
skills/codexqa-requirement-analyzer/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Local scripts → After Local scripts
783954281fc4 → 783954281fc4
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Local scripts
First observation → 783954281fc4
No earlier version was observed for comparison.
skills/codexqa-rootcause-analyzer/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
783954281fc4 → 783954281fc4
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → 783954281fc4
No earlier version was observed for comparison.
skills/codexqa-skill-router/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
783954281fc4 → 783954281fc4
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → 783954281fc4
No earlier version was observed for comparison.
skills/codexqa-testcase-generator/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
783954281fc4 → 783954281fc4
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → 783954281fc4
No earlier version was observed for comparison.
skills/codexqa-testdata-generator/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
783954281fc4 → 783954281fc4
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → 783954281fc4
No earlier version was observed for comparison.
skills/codexqa-testdata-generator/references/case-data-material-planner/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
783954281fc4 → 783954281fc4
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → 783954281fc4
No earlier version was observed for comparison.
skills/codexqa-testdata-generator/slot-scaffolder/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
783954281fc4 → 783954281fc4
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → 783954281fc4
No earlier version was observed for comparison.
skills/codexqa-testdata-generator/slots/catalog/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Local scripts → After Local scripts
783954281fc4 → 783954281fc4
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Local scripts
First observation → 783954281fc4
No earlier version was observed for comparison.
skills/codexqa-testdata-generator/slots/distribution/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Local scripts → After Local scripts
783954281fc4 → 783954281fc4
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Local scripts
First observation → 783954281fc4
No earlier version was observed for comparison.
Verified commit 783954281fc4898a9fac66a575363f419d4683e4
git clone --filter=blob:none --no-checkout https://github.com/openqa-cn/codexqa.git .hotskills/openqa-cn-codexqa && git -C .hotskills/openqa-cn-codexqa checkout --detach 783954281fc4898a9fac66a575363f419d4683e4
# Copy each selected skill directory from .hotskills/openqa-cn-codexqa into .agents/skills/<skill-name>/Heat
0.4- Star growth, last 7 daysNot available
- Star growth, last 24 hoursNot available
- Rank movement, last 7 daysNot available
- Commits, last 30 daysNot available
- Accounts asking about it through MCP, last 7 daysNot available
- Hot votes this weekNot available
Heat never changes the order by stars, and sponsorship never touches it. How heat works
Stars over time
30-day change not yet available: not enough history.
Individual skills in this repository
- codexqa-change-analysis
skills/codexqa-change-analysis - codexqa-code-analyzer
skills/codexqa-code-analyzer - codexqa-code-reviewer
skills/codexqa-code-reviewer - codexqa-code-wiki
skills/codexqa-code-wiki - codexqa-defect-analyzer
skills/codexqa-defect-analyzer - codexqa-jev-browser
skills/codexqa-jev-browser - codexqa-requirement-analyzer
skills/codexqa-requirement-analyzer - codexqa-rootcause-analyzer
skills/codexqa-rootcause-analyzer - codexqa-skill-router
skills/codexqa-skill-router - codexqa-testcase-generator
skills/codexqa-testcase-generator - codexqa-testdata-generator
skills/codexqa-testdata-generator - case-data-material-planner
skills/codexqa-testdata-generator/references/case-data-material-planner - slot-scaffolder
skills/codexqa-testdata-generator/slot-scaffolder - catalog
skills/codexqa-testdata-generator/slots/catalog - distribution
skills/codexqa-testdata-generator/slots/distribution
How it works
codexqa-change-analysis
When your agent uses it
Change-impact analysis for one diff: use CodexQA diff indexing (`index --diff-base` tags nodes and files `add` / `change` / `delete`, then `change-groups` / `symbol-diff` / `file-base`) to write one HTML report (affected entries, changed methods, test plan, coverage verdict, sensitive paths) and add runnable test files in the analyzed repo for uncovered points (add only; do not edit existing test files). Use when the user mentions change impact, change analysis, blast radius, affected entries, added methods, changed methods, test plan, generate or recall tests, link existing tests, entry points, 变更分析, 变更代码分析, 影响面, 影响入口, 测试方案, or 召回测试用例. Requires the codexqa CLI. One change only. Whole-repo analysis with no diff, and general symbol-graph Q&A, are codexqa-code-analyzer, not this skill. Former skill name: change-impact-analysis.
What it loads into context
Frontmatter
374 tokensAlways available to the agent
SKILL.md
3,092 tokensWhen the skill is activated
Reference documents
25,513 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Deliverables (both required)
- Hard rules (a violation means rewrite)
- Why git / grep are still used
- Index trust gate (do this first)
- Workflow (8 steps)
- Degraded mode (no CodexQA, or the index is unusable)
- When blocked
Files
KNOWN_LIMITATIONS.mddoc12,079 bytesKNOWN_LIMITATIONS.zh-CN.mddoc12,452 bytesREADME.mddoc5,484 bytesREADME.zh-CN.mddoc5,681 bytesSKILL.mdcore12,425 bytesSKILL.mdcore12,425 bytesSKILL.mdcore12,425 bytesassets/report-template.htmlasset22,565 bytesreferences/analysis.mddoc13,861 bytesreferences/generate-cases.mddoc12,031 bytesreferences/report.mddoc26,735 bytesreferences/test-recall.mddoc11,270 bytes
Read SKILL.md
# Change Impact Analysis
One sentence: build a **trusted diff index**, then deliver two artifacts — a 7-section HTML report (key findings / risks and unknowns / affected entries / change list / test plan / coverage verdict / sensitive paths) plus **runnable test files** for points that are not covered.
`codexqa` has **no** `diff` or `review` subcommand. Change analysis always follows this path:
```text
index --diff-base <base> --full → change-groups / files --change → symbol-diff
→ reach --direction in (entries) → tested_count / reach --edge-kinds tests → test-file text recall
```
## Deliverables (both required)
| ID | Deliverable | Form |
|---|---|---|View the complete source on GitHubcodexqa-code-analyzer
When your agent uses it
Queries a local CodexQA symbol graph for change review, regression scope, test gaps, error location, and entry risk. Use when the user mentions codexqa-code-analyzer, code-analyzer, codexqa, 符号图, 代码知识图谱, 建索引, 查调用, 影响面, --diff-base, 变更审查, 回归范围, 测试缺口, or asks to install / run the codexqa CLI (index, query). Former skill name: code-analyzer. Not CodexQA evidence-pack HTML review (that is codexqa-code-reviewer), not SAST + Agent LLM Detection code-risk scan reports (that is codexqa-defect-analyzer), and not architecture wiki reports (that is codexqa-code-wiki), and not full exception RCA reports (that is codexqa-rootcause-analyzer).
What it loads into context
Frontmatter
292 tokensAlways available to the agent
SKILL.md
1,208 tokensWhen the skill is activated
Reference documents
20,118 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Documents (load on demand)
- Scenario routing
- Report contract
Files
KNOWN_LIMITATIONS.mddoc2,799 bytesKNOWN_LIMITATIONS.zh-CN.mddoc2,424 bytesREADME.mddoc23,172 bytesREADME.zh-CN.mddoc26,217 bytesSKILL.mdcore4,739 bytesSKILL.mdcore4,739 bytesassets/checkout-change-impact.svgasset6,300 bytesreferences/cli.mddoc2,866 bytesreferences/diagrams.mddoc6,167 bytesreferences/mcp.jsonasset17,771 bytesreferences/playbook.mddoc13,198 bytes
Read SKILL.md
# Code Analyzer
Local symbol graph for **quality work**: index first, then answer what changed, who is hit, what is untested, and where an error comes from.
There is **no** `codexqa diff` or `codexqa review`. Review a change with:
```text
index --diff-base <ref> → change-groups → symbol-diff → callers / tests / entries
```
Pick the scenario before acting. Do not query or review a diff until an index exists. Do not run full-text search unless the user asked.
`README.md` / `README.zh-CN.md` are human-facing. Do not load them at runtime.
## Documents (load on demand)View the complete source on GitHubcodexqa-code-reviewer
When your agent uses it
Graph-evidence AI code review (codexqa-code-reviewer) for ANY language repo using ONLY the CodexQA CLI symbol graph (call chains, classes, methods, configs, blast radius, test edges), then an order-16 Agent LLM judgment pass by the host agent's embedded model with deterministic dedupe/merge against heuristic findings. Use when the user asks for codexqa-code-reviewer (former name ai-code-reviewer), code review, PR review, 代码评审, impact analysis, 影响面, regression scope, test gaps, full-repo health review, 全仓评审, CodexQA evidence-pack, 证据包, graph-backed review, or LLM semantic CR on a pack. Requires codexqa CLI for every language; never embeds CodexQA source; never substitutes git-diff-only analysis. Not SAST+agent scan reports (that is codexqa-defect-analyzer), not structure/impact mapping alone (that is codexqa-code-analyzer), and not exception RCA (that is codexqa-rootcause-analyzer).
What it loads into context
Frontmatter
443 tokensAlways available to the agent
SKILL.md
7,757 tokensWhen the skill is activated
Reference documents
77,466 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Boundaries
- Prerequisites
- Preflight gate
- Quick start
- Hard constraints (CodexQA mandate)
- Modes
- Capability → pack map
- Workflow detail
- Blocked result
- Examples
- Progressive disclosure
- Common pitfalls
Scripts executed separately
assets/report-chrome.jsscripts/acr-pythonscripts/audit-plan-coverage.shscripts/collect-adhoc-evidence.shscripts/collect-fullrepo-evidence.shscripts/collect-pr-evidence.shscripts/lib/_annotation_edges_body.pyscripts/lib/_complexity_body.pyscripts/lib/_dependencies_body.pyscripts/lib/_det_rules.pyscripts/lib/_identical_copies.pyscripts/lib/_line_scan.pyscripts/lib/_performance_body.pyscripts/lib/_privacy_body.pyscripts/lib/_resilience_body.pyscripts/lib/_risk_tier_body.pyscripts/lib/_rollout_body.pyscripts/lib/_rule_router.pyscripts/lib/_sast_body.pyscripts/lib/_secondary_body.pyscripts/lib/build-coverage-ledger.pyscripts/lib/build-judgment-packet.pyscripts/lib/build-review-digest.pyscripts/lib/codexqa-preflight.shscripts/lib/collect-trace.shscripts/lib/collect-unit-calls.shscripts/lib/derive-annotation-edges.shscripts/lib/derive-complexity.shscripts/lib/derive-contract.shscripts/lib/derive-dependencies.shscripts/lib/derive-design-fit.shscripts/lib/derive-maintainability.shscripts/lib/derive-observability.shscripts/lib/derive-performance.shscripts/lib/derive-privacy.shscripts/lib/derive-resilience.shscripts/lib/derive-risk-tier.shscripts/lib/derive-rollout.shscripts/lib/derive-sast.shscripts/lib/derive_triage.pyscripts/lib/index-diff-base.shscripts/lib/install-sast-tools.shscripts/lib/merge-llm-findings.pyscripts/lib/python_resolve.shscripts/lib/sast-tool-path.shscripts/lib/seal-conclusion.pyscripts/lib/validate-conclusion.pyscripts/render-review-html.shscripts/resolve-pr-checkout.shscripts/validate-evidence.shscripts/validate-skill.sh
Files
.gitignoreasset78 bytes.meta.jsonasset2,093 bytesHOW_IT_WORKS.mddoc3,261 bytesHOW_IT_WORKS.zh-CN.mddoc3,194 bytesKNOWN_LIMITATIONS.mddoc2,179 bytesKNOWN_LIMITATIONS.zh-CN.mddoc1,993 bytesLICENSEasset11,358 bytesREADME.mddoc4,125 bytesREADME.zh-CN.mddoc4,032 bytesSKILL.mdcore29,714 bytesSKILL.mdcore29,714 bytesSKILL.mdcore29,714 bytesSKILL.mdcore29,714 bytesSKILL.mdcore29,714 bytesSKILL.mdcore29,714 bytesSKILL.mdcore29,714 bytesSKILL.mdcore29,714 bytesSKILL.mdcore29,714 bytesSKILL.mdcore29,714 bytesSKILL.mdcore29,714 bytesSKILL.mdcore29,714 bytesSKILL.mdcore29,714 bytesSKILL.mdcore29,714 bytesSKILL.mdcore29,714 bytesSKILL.mdcore29,714 bytesassets/report-chrome.cssasset12,117 bytesassets/report-chrome.jsruns5,585 bytesassets/report-extras.cssasset7,564 bytesassets/report.cssasset20,542 bytesevals/cases/basic-pipeline-smoke.yamlasset676 bytesevals/cases/edge-html-partial-conclusion.yamlasset642 bytesevals/cases/edge-invalid-pack-blocked.yamlasset618 bytesevals/cases/edge-legacy-pack-compat.yamlasset644 bytesevals/eval.yamlasset774 bytesevals/evals.jsonasset4,047 bytesevals/fixtures/conclusion/minimal.jsonasset615 bytesevals/fixtures/conclusion/partial-malformed.jsonasset174 bytesevals/fixtures/conclusion/with-complexity.jsonasset2,404 bytesevals/fixtures/conclusion/with-dependencies.jsonasset2,349 bytesevals/fixtures/conclusion/with-design-fit.jsonasset2,005 bytesevals/fixtures/conclusion/with-llm-judgment.jsonasset2,572 bytesevals/fixtures/conclusion/with-performance.jsonasset2,832 bytesevals/fixtures/conclusion/with-privacy.jsonasset2,541 bytesevals/fixtures/conclusion/with-resilience.jsonasset2,925 bytesevals/fixtures/conclusion/with-risk-tier.jsonasset3,250 bytesevals/fixtures/conclusion/with-rollout.jsonasset3,350 bytesevals/fixtures/invalid-pr-pack/01-stats.jsonasset14 bytesevals/fixtures/invalid-pr-pack/02-summary.jsonasset26 bytesevals/fixtures/invalid-pr-pack/03-change-groups.jsonasset25 bytesevals/fixtures/invalid-pr-pack/04-changed-files.jsonasset13 bytesevals/fixtures/invalid-pr-pack/05-changed-symbols.jsonasset49 bytesevals/fixtures/invalid-pr-pack/07-tags.jsonasset3 bytesevals/fixtures/invalid-pr-pack/08-hot-but-thin.jsonasset13 bytesevals/fixtures/invalid-pr-pack/09-language-profile.jsonasset102 bytesevals/fixtures/invalid-pr-pack/manifest.jsonasset183 bytesevals/fixtures/legacy-pr-pack/01-stats.jsonasset3 bytesevals/fixtures/legacy-pr-pack/02-summary.jsonasset27 bytesevals/fixtures/legacy-pr-pack/03-change-groups.jsonasset49 bytesevals/fixtures/legacy-pr-pack/04-changed-files.jsonasset13 bytesevals/fixtures/legacy-pr-pack/05-changed-symbols.jsonasset48 bytesevals/fixtures/legacy-pr-pack/07-tags.jsonasset3 bytesevals/fixtures/legacy-pr-pack/08-hot-but-thin.jsonasset13 bytesevals/fixtures/legacy-pr-pack/commands.logasset14 bytesevals/fixtures/legacy-pr-pack/manifest.jsonasset189 bytesevals/fixtures/minimal-pr-pack/01-stats.jsonasset38 bytesevals/fixtures/minimal-pr-pack/02-summary.jsonasset47 bytesevals/fixtures/minimal-pr-pack/03-change-groups.jsonasset82 bytesevals/fixtures/minimal-pr-pack/04-changed-files.jsonasset47 bytesevals/fixtures/minimal-pr-pack/05-changed-symbols.jsonasset97 bytesevals/fixtures/minimal-pr-pack/06-sensitive-hits.jsonasset74 bytesevals/fixtures/minimal-pr-pack/07-tag-keys.jsonasset51 bytesevals/fixtures/minimal-pr-pack/07-tags.jsonasset51 bytesevals/fixtures/minimal-pr-pack/08-hot-but-thin.jsonasset85 bytesevals/fixtures/minimal-pr-pack/09-language-profile.jsonasset341 bytesevals/fixtures/minimal-pr-pack/10-design-fit-signals.jsonasset1,026 bytesevals/fixtures/minimal-pr-pack/11-complexity-signals.jsonasset983 bytesevals/fixtures/minimal-pr-pack/12-dependency-signals.jsonasset1,027 bytesevals/fixtures/minimal-pr-pack/13-privacy-signals.jsonasset884 bytesevals/fixtures/minimal-pr-pack/14-resilience-signals.jsonasset967 bytesevals/fixtures/minimal-pr-pack/15-rollout-signals.jsonasset1,034 bytesevals/fixtures/minimal-pr-pack/16-observability-signals.jsonasset391 bytesevals/fixtures/minimal-pr-pack/17-contract-signals.jsonasset376 bytesevals/fixtures/minimal-pr-pack/18-maintainability-signals.jsonasset397 bytesevals/fixtures/minimal-pr-pack/20-risk-tier.jsonasset1,677 bytesevals/fixtures/minimal-pr-pack/21-performance-signals.jsonasset540 bytesevals/fixtures/minimal-pr-pack/commands.logasset56 bytesevals/fixtures/minimal-pr-pack/diffs/sym1.diff.jsonasset14 bytesevals/fixtures/minimal-pr-pack/impact/sym1/edges-in.jsonasset13 bytesevals/fixtures/minimal-pr-pack/impact/sym1/reach-in.jsonasset12 bytesevals/fixtures/minimal-pr-pack/impact/sym1/tests-reach.jsonasset12 bytesevals/fixtures/minimal-pr-pack/manifest.jsonasset496 bytesexamples/plan-coverage-audit.mddoc10,305 bytesexamples/pr-review-walkthrough.mddoc6,233 bytesprompts/business-logic-pass.mddoc4,558 bytesprompts/derive-suspect-pass.mddoc2,792 bytesprompts/full-repo-review.mddoc14,448 bytesprompts/llm-judgment-pass.mddoc16,309 bytesprompts/pr-diff-review.mddoc26,107 bytesprompts/residual-read-pass.mddoc6,338 bytesprompts/sast-suspect-pass.mddoc1,502 bytesprompts/semantic-candidate-pass.mddoc1,100 bytesreferences/business-rule-records.mddoc31,039 bytesreferences/codexqa-cli-contract.mddoc9,165 bytesreferences/dimension-registry.mddoc9,582 bytesreferences/dimensions/complexity.mddoc4,847 bytesreferences/dimensions/concurrency.mddoc3,799 bytesreferences/dimensions/contract.mddoc3,437 bytesreferences/dimensions/correctness-family-checks.mddoc4,054 bytesreferences/dimensions/correctness.mddoc10,688 bytesreferences/dimensions/dependencies.mddoc7,219 bytesreferences/dimensions/design-fit.mddoc5,636 bytesreferences/dimensions/llm-judgment.mddoc7,184 bytesreferences/dimensions/maintainability.mddoc1,525 bytesreferences/dimensions/observability.mddoc1,502 bytesreferences/dimensions/performance.mddoc5,907 bytesreferences/dimensions/privacy.mddoc4,095 bytesreferences/dimensions/resilience.mddoc8,815 bytesreferences/dimensions/risk-tier.mddoc4,145 bytesreferences/dimensions/rollout.mddoc7,757 bytesreferences/dimensions/security.mddoc9,174 bytesreferences/industry-bar.mddoc6,131 bytesreferences/language-profile.mddoc1,783 bytesreferences/mermaid-evidence.mddoc3,504 bytesreferences/review-dimensions.mddoc12,479 bytesreferences/rule-construction.mddoc18,824 bytesscripts/acr-pythonruns367 bytesscripts/audit-plan-coverage.shruns25,090 bytesscripts/collect-adhoc-evidence.shruns16,353 bytesscripts/collect-fullrepo-evidence.shruns24,151 bytesscripts/collect-pr-evidence.shruns28,555 bytesscripts/lib/_annotation_edges_body.pyruns9,681 bytesscripts/lib/_complexity_body.pyruns7,744 bytesscripts/lib/_dependencies_body.pyruns20,265 bytesscripts/lib/_det_rules.pyruns41,482 bytesscripts/lib/_identical_copies.pyruns3,637 bytesscripts/lib/_line_scan.pyruns7,111 bytesscripts/lib/_performance_body.pyruns15,392 bytesscripts/lib/_privacy_body.pyruns16,032 bytesscripts/lib/_resilience_body.pyruns21,407 bytesscripts/lib/_risk_tier_body.pyruns19,091 bytesscripts/lib/_rollout_body.pyruns19,299 bytesscripts/lib/_rule_router.pyruns4,510 bytesscripts/lib/_sast_body.pyruns49,552 bytesscripts/lib/_secondary_body.pyruns14,415 bytesscripts/lib/build-coverage-ledger.pyruns21,166 bytesscripts/lib/build-judgment-packet.pyruns167,851 bytesscripts/lib/build-review-digest.pyruns34,109 bytesscripts/lib/codexqa-preflight.shruns11,789 bytesscripts/lib/collect-trace.shruns1,876 bytesscripts/lib/collect-unit-calls.shruns4,146 bytesscripts/lib/derive-annotation-edges.shruns1,948 bytesscripts/lib/derive-complexity.shruns7,512 bytesscripts/lib/derive-contract.shruns2,877 bytesscripts/lib/derive-dependencies.shruns6,031 bytesscripts/lib/derive-design-fit.shruns26,037 bytesscripts/lib/derive-maintainability.shruns2,938 bytesscripts/lib/derive-observability.shruns2,929 bytesscripts/lib/derive-performance.shruns6,325 bytesscripts/lib/derive-privacy.shruns5,638 bytesscripts/lib/derive-resilience.shruns8,502 bytesscripts/lib/derive-risk-tier.shruns5,252 bytesscripts/lib/derive-rollout.shruns6,938 bytesscripts/lib/derive-sast.shruns3,373 bytesscripts/lib/derive_triage.pyruns11,060 bytesscripts/lib/index-diff-base.shruns3,675 bytesscripts/lib/install-sast-tools.shruns7,844 bytesscripts/lib/merge-llm-findings.pyruns14,795 bytesscripts/lib/python_resolve.shruns809 bytesscripts/lib/sast-tool-path.shruns15,042 bytesscripts/lib/seal-conclusion.pyruns102,676 bytesscripts/lib/validate-conclusion.pyruns35,295 bytesscripts/render-review-html.shruns52,170 bytesscripts/resolve-pr-checkout.shruns9,349 bytesscripts/validate-evidence.shruns29,216 bytesscripts/validate-skill.shruns208,648 bytestemplates/evidence-manifest.jsonasset4,394 bytestemplates/judgment.jsonasset824 bytestemplates/review-conclusion.jsonasset12,697 bytestemplates/review-report.mddoc9,069 bytes
Read SKILL.md
# AI Code Reviewer
Graph-first code review via **CodexQA CLI** only. Collect a JSON evidence pack,
then reason from those artifacts. Applies to every language / polyglot monorepo.
CLI: `{baseDir}/scripts/collect-pr-evidence.sh` (and full-repo / adhoc variants).
Runtime pack: `<repo>/.codexqa-review/<run-id>/` → `review-conclusion.json` +
`REVIEW-REPORT.html`.
**Install:** Prefer `npx skills add openqa-cn/codexqa --skill codexqa-code-reviewer`.
Do not copy into a skills library manually until the user names the install target.
`README.md` / `README.zh-CN.md` / `HOW_IT_WORKS.md` / `KNOWN_LIMITATIONS.md`
(and their `.zh-CN` twins) are human-facing. Do not load them at runtime.View the complete source on GitHubcodexqa-code-wiki
When your agent uses it
Builds a local architecture wiki for a repository from the CodexQA symbol graph (no model needed): modules, who calls whom and how often, reading paths, and one self-contained HTML page. Use when the user mentions codexqa-code-wiki, code-wiki, wiki, knowledge graph, architecture wiki, module map, reading guide, 代码知识图谱, 架构 Wiki, 模块地图, 阅读导览, wiki inputs, --no-llm, community detection, 社区检测, HTML 报告, or asks to map modules / generate a repo wiki without an LLM. Not change review (that is codexqa-code-analyzer), not CodexQA evidence-pack HTML review (that is codexqa-code-reviewer), and not SAST+agent code-risk scan reports (that is codexqa-defect-analyzer). Former skill name: code-wiki.
What it loads into context
Frontmatter
304 tokensAlways available to the agent
SKILL.md
1,373 tokensWhen the skill is activated
Reference documents
9,268 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Documents (load on demand)
- Default flow
- Scenario routing
- Rules
Scripts executed separately
assets/wiki.jspackage.jsonscripts/lib/layout.mjsscripts/lib/model.mjsscripts/lib/notes.mjsscripts/lib/render.mjsscripts/lib/repo.mjsscripts/lib/strings.mjsscripts/lib/text.mjsscripts/wiki.mjstests/cli.test.mjstests/helpers.mjstests/model.test.mjstests/notes.test.mjstests/render.test.mjs
Files
KNOWN_LIMITATIONS.mddoc3,877 bytesKNOWN_LIMITATIONS.zh-CN.mddoc3,532 bytesREADME.mddoc5,655 bytesREADME.zh-CN.mddoc5,494 bytesSKILL.mdcore5,128 bytesSKILL.mdcore5,128 bytesassets/wiki.cssasset17,995 bytesassets/wiki.jsruns13,023 bytespackage.jsonruns254 bytesreferences/cli.mddoc5,899 bytesreferences/notes.mddoc5,967 bytesreferences/playbook.mddoc3,638 bytesscripts/lib/layout.mjsruns13,551 bytesscripts/lib/model.mjsruns12,509 bytesscripts/lib/notes.mjsruns8,738 bytesscripts/lib/render.mjsruns14,853 bytesscripts/lib/repo.mjsruns4,550 bytesscripts/lib/strings.mjsruns10,947 bytesscripts/lib/text.mjsruns2,408 bytesscripts/wiki.mjsruns17,526 bytestests/cli.test.mjsruns10,487 bytestests/fixtures/codexqa/inputs.jsonasset127,228 bytestests/fixtures/codexqa/meta.jsonasset502 bytestests/fixtures/codexqa/notes.jsonasset8,009 bytestests/helpers.mjsruns2,428 bytestests/model.test.mjsruns7,144 bytestests/notes.test.mjsruns7,149 bytestests/render.test.mjsruns13,220 bytes
Read SKILL.md
# Code Wiki
Three commands, one file to write:
```text
node <skill>/scripts/wiki.mjs brief <repo> # index + export facts + print the brief
→ you write .codexqa-wiki/<repo>/notes.json # names and sentences only
node <skill>/scripts/wiki.mjs build <repo> # validate + render one HTML file
```
The script owns every fact on the page: modules, sizes, call counts, groups,
the architecture diagram, public symbols, files, links, search. You own the
words: what the repo is, what each module does, and which reading path fits
which task. You never edit HTML, CSS, or diagrams.View the complete source on GitHubcodexqa-defect-analyzer
When your agent uses it
AI defect detection and code-risk scanning for engineering projects. Use when the user asks for AI defect detection, code-risk scan, review a diff/MR/PR/commit (incremental), baseline-scan a repository (full), OR upload/paste code snippets for adhoc defect detection. Combines two detection dimensions — (1) deterministic SAST/lint/secrets/SCA and (2) one-round Agent LLM Detection by the invoking agent's embedded model (no separate LLM API key) — then dedupes and merges them into the final report. Delivers structured findings ordered by severity (P0–P3) via report_scan.json / report_scan.md / report_scan.html. Do NOT use to apply or autofix code style/formatting — lint may still surface hygiene findings. Code-graph / call-chain MUST use CodexQA CLI for all languages (references/codexqa-cli.md) — never homemade analyzers. Not CodexQA evidence-pack HTML review (that is codexqa-code-reviewer), not structure/impact mapping (that is codexqa-code-analyzer), and not exception RCA (that is codexqa-rootcause-analyzer). When scenario unclear, ask or run choose_scenario / run_scan.py choose. Former skill name: defect-detection.
What it loads into context
Frontmatter
451 tokensAlways available to the agent
SKILL.md
3,828 tokensWhen the skill is activated
Reference documents
10,414 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Boundaries
- Detection dimensions
- Judgment model (default)
- Deliverable
- Scenario selection
- Tools (deterministic)
- Report cache (diff_hash)
- Scan scope planning (full / incremental)
- SCA (OSV-first)
- Agent-inline scan SOP (default)
- Section D — Verdicts
- LLM semantic policies
- Hard rules
- CI (advisory smoke)
- Policy fixture check
- Optional external API LLM
Scripts executed separately
assets/report-chrome.jsevals/fixtures/auth_bypass.pyevals/fixtures/race_order.pypackage.jsonscripts/agent_llm.pyscripts/audit_policy_fixtures.pyscripts/choose_scenario.pyscripts/codexqa_client.pyscripts/collect_full.pyscripts/collect_incremental.pyscripts/context_builder.pyscripts/dd-pythonscripts/ensure_tools.pyscripts/feedback.pyscripts/html_chrome.pyscripts/ingest_adhoc.pyscripts/install_codexqa.shscripts/install_sast_tools.shscripts/lib.pyscripts/llm_client.pyscripts/merge_report.pyscripts/policy_loader.pyscripts/python_resolve.shscripts/rag_context.pyscripts/route_model.pyscripts/run_scan.pyscripts/run_tests.shscripts/sast_adapters.pyscripts/scope_planner.pyscripts/test_pipeline_fixes.py
Files
.gitignoreasset72 bytes.meta.jsonasset2,537 bytesHOW_IT_WORKS.mddoc3,388 bytesHOW_IT_WORKS.zh-CN.mddoc3,402 bytesKNOWN_LIMITATIONS.mddoc2,144 bytesKNOWN_LIMITATIONS.zh-CN.mddoc1,905 bytesREADME.mddoc4,166 bytesREADME.zh-CN.mddoc4,108 bytesSKILL.mdcore14,444 bytesSKILL.mdcore14,444 bytesSKILL.mdcore14,444 bytesSKILL.mdcore14,444 bytesSKILL.mdcore14,444 bytesSKILL.mdcore14,444 bytesSKILL.mdcore14,444 bytesSKILL.mdcore14,444 bytesSKILL.mdcore14,444 bytesSKILL.mdcore14,444 bytesSKILL.mdcore14,444 bytesSKILL.mdcore14,444 bytesSKILL.mdcore14,444 bytesSKILL.mdcore14,444 bytesassets/report-chrome.cssasset12,046 bytesassets/report-chrome.jsruns5,681 bytesconfig/scan_config.jsonasset1,152 bytesconfig/scan_config.yamlasset2,751 bytesdata/.gitignoreasset198 bytesdata/.gitkeepasset62 bytesevals/evals.jsonasset3,937 bytesevals/fixtures/auth_bypass.pyruns365 bytesevals/fixtures/race_order.pyruns271 bytespackage.jsonruns198 bytesprompts/agent_detect.mddoc2,810 bytesprompts/full_scan_summary.mddoc838 bytesprompts/review_filter.mddoc2,743 bytesprompts/rule_checker.mddoc2,971 bytesprompts/system_base.mddoc1,781 bytesreferences/category_rules.mddoc1,702 bytesreferences/ci-advisory-workflow.ymlasset3,302 bytesreferences/codexqa-cli.mddoc5,353 bytesreferences/llm-api.mddoc1,093 bytesreferences/output_schema.jsonasset2,409 bytesreferences/policies/API-001.yamlasset1,056 bytesreferences/policies/ARCH-001.yamlasset1,404 bytesreferences/policies/AUTH-001.yamlasset1,269 bytesreferences/policies/AUTH-002.yamlasset1,191 bytesreferences/policies/BIZ-001.yamlasset1,310 bytesreferences/policies/BIZ-002.yamlasset1,240 bytesreferences/policies/BIZ-003.yamlasset1,128 bytesreferences/policies/CONC-001.yamlasset1,250 bytesreferences/policies/CONC-002.yamlasset1,387 bytesreferences/policies/CONC-003.yamlasset1,059 bytesreferences/policies/ERR-001.yamlasset1,205 bytesreferences/policies/HYG-001.yamlasset963 bytesreferences/policies/LOGIC-001.yamlasset1,111 bytesreferences/policies/NULL-001.yamlasset1,063 bytesreferences/policies/PAY-001.yamlasset1,333 bytesreferences/policies/PAY-002.yamlasset1,193 bytesreferences/policies/PAY-004.yamlasset1,119 bytesreferences/policies/PAY-005.yamlasset1,195 bytesreferences/policies/PAY-006.yamlasset1,156 bytesreferences/policies/PERF-001.yamlasset1,042 bytesreferences/policies/RES-001.yamlasset997 bytesreferences/policies/SEC-001.yamlasset1,414 bytesreferences/policies/TEN-002.yamlasset1,059 bytesreferences/policies/TEN-004.yamlasset1,141 bytesreferences/policies/TEN-005.yamlasset1,092 bytesreferences/policies/TEN-006.yamlasset1,112 bytesreferences/policies/TXN-001.yamlasset1,292 bytesreferences/policies/manifest.yamlasset1,114 bytesreferences/scope_policy.yamlasset3,910 bytesreferences/semgrep/aid-supplement.yamlasset9,469 bytesreferences/severity_levels.mddoc709 bytesscripts/agent_llm.pyruns7,748 bytesscripts/audit_policy_fixtures.pyruns10,770 bytesscripts/choose_scenario.pyruns6,176 bytesscripts/codexqa_client.pyruns39,715 bytesscripts/collect_full.pyruns10,527 bytesscripts/collect_incremental.pyruns7,355 bytesscripts/context_builder.pyruns16,150 bytesscripts/dd-pythonruns614 bytesscripts/ensure_tools.pyruns17,641 bytesscripts/feedback.pyruns13,365 bytesscripts/html_chrome.pyruns2,190 bytesscripts/ingest_adhoc.pyruns9,923 bytesscripts/install_codexqa.shruns3,055 bytesscripts/install_sast_tools.shruns6,449 bytesscripts/lib.pyruns26,640 bytesscripts/llm_client.pyruns6,548 bytesscripts/merge_report.pyruns31,001 bytesscripts/policy_loader.pyruns7,271 bytesscripts/python_resolve.shruns1,147 bytesscripts/rag_context.pyruns9,597 bytesscripts/route_model.pyruns1,394 bytesscripts/run_scan.pyruns42,170 bytesscripts/run_tests.shruns415 bytesscripts/sast_adapters.pyruns51,541 bytesscripts/scope_planner.pyruns18,265 bytesscripts/test_pipeline_fixes.pyruns35,686 bytes
Read SKILL.md
# Defect Detection
You are a codexqa-defect-analyzer orchestrator. Commands are English; user-facing text may be Chinese.
**Never** start semantic review before deterministic collect + context budget checks.
CLI: `python3 {baseDir}/scripts/run_scan.py` (`$SKILL_SCRIPT`). Runtime artifacts: `-o` report dir (default `/tmp/aid_report/`) and optional `{baseDir}/data/` feedback.
`README.md` / `README.zh-CN.md` / `HOW_IT_WORKS.md` / `KNOWN_LIMITATIONS.md` (and their `.zh-CN` twins) are human-facing. Do not load them at runtime.
## Boundaries
| Need | Skill |
|---|---|
| SAST + Agent LLM Detection → `report_scan.*` (P0–P3) | **this skill** (`codexqa-defect-analyzer`) |View the complete source on GitHubcodexqa-jev-browser
When your agent uses it
Jev browser automation with indexed actions. Replay YAML/Markdown/API cases, run goal-driven flows, generate cases, and explore sites in a real browser. Use when the user mentions Jev, browser automation, UI automation, E2E replay, test case generation, exploratory crawl, or YAML/MD/API test cases. Not a fork of browser-use/jev-ultrafast.
What it loads into context
Frontmatter
88 tokensAlways available to the agent
SKILL.md
1,464 tokensWhen the skill is activated
Reference documents
10,267 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Choose a mode
- Commands
- Model setup
- After every run
- Hard rules
- Business knowledge
- Case sources
Scripts executed separately
bin/codexqa-jev-browser.mjspackage.jsonsrc/act.tssrc/agent.tssrc/browser.tssrc/cases.tssrc/cli.tssrc/cloak-install.tssrc/cloak.tssrc/config.tssrc/errors.tssrc/explore.tssrc/generate.tssrc/jev.tssrc/knowledge-draft.tssrc/knowledge.tssrc/model-http.tssrc/observe/snapshot.dom.jssrc/observe/snapshot.tssrc/policy.tssrc/record.tssrc/report.tssrc/runner.tssrc/types.tssrc/util.tssrc/verify.tstests/cloak.test.tstests/compiler-report.test.tstests/config-env.test.tstests/jev.test.tstests/live.test.tstests/loaders.test.tstests/locator-policy.test.tstests/model-http.test.tstests/model-proxy-retry.test.tstests/regressions.test.tstests/step-opt.test.tsvitest.config.ts
Files
.env.exampleasset956 bytes.gitignoreasset169 bytesHOW_IT_WORKS.mddoc1,727 bytesHOW_IT_WORKS.zh-CN.mddoc1,679 bytesKNOWN_LIMITATIONS.mddoc1,086 bytesKNOWN_LIMITATIONS.zh-CN.mddoc1,021 bytesLICENSEasset1,089 bytesREADME.mddoc12,517 bytesREADME.zh-CN.mddoc12,149 bytesSKILL.mdcore5,799 bytesSKILL.mdcore5,799 bytesSKILL.mdcore5,799 bytesSKILL.mdcore5,799 bytesSKILL.mdcore5,799 bytesagents/openai.yamlasset244 bytesbin/codexqa-jev-browser.mjsruns502 bytescases/examples/api-suite.jsonasset613 bytescases/examples/login.yamlasset323 bytescases/examples/search-docs.mddoc281 bytescases/examples/search-docs.yamlasset390 bytescases/scripts/decisions-search.yamlasset154 bytescodexqa-jev-browser.config.yamlasset547 bytesdocs/jev-browser-overview.en.jpgasset185,957 bytesdocs/jev-browser-overview.jpgasset168,520 bytesdocs/jev-report.pngasset287,886 bytesexamples/app/chooser.htmlasset1,009 bytesexamples/app/docs.htmlasset361 bytesexamples/app/iframe-child.htmlasset420 bytesexamples/app/iframe-host.htmlasset794 bytesexamples/app/index.htmlasset1,977 bytesexamples/app/popup-host.htmlasset198 bytesexamples/app/popup-page.htmlasset148 bytesexamples/app/search-submit.htmlasset779 bytesexamples/app/settings.htmlasset304 bytesexamples/app/viewport-filter.htmlasset413 bytesknowledge/README.mddoc898 bytesknowledge/baidu/web-search.mddoc1,134 bytesknowledge/ctrip/domestic-flight.mddoc2,147 bytesknowledge/general/login-dialog.mddoc391 bytesknowledge/jd/product-search.mddoc384 bytespackage-lock.jsonasset55,316 bytespackage.jsonruns824 bytesreferences/examples.mddoc1,471 bytesreferences/schema.mddoc1,866 bytessrc/act.tsruns6,273 bytessrc/agent.tsruns27,103 bytessrc/browser.tsruns12,265 bytessrc/cases.tsruns14,669 bytessrc/cli.tsruns15,834 bytessrc/cloak-install.tsruns8,419 bytessrc/cloak.tsruns4,613 bytessrc/config.tsruns6,407 bytessrc/errors.tsruns972 bytessrc/explore.tsruns6,353 bytessrc/generate.tsruns6,383 bytessrc/jev.tsruns17,197 bytessrc/knowledge-draft.tsruns5,058 bytessrc/knowledge.tsruns3,670 bytessrc/model-http.tsruns1,876 bytessrc/observe/snapshot.dom.jsruns22,273 bytessrc/observe/snapshot.tsruns9,925 bytessrc/policy.tsruns29,302 bytessrc/record.tsruns3,048 bytessrc/report.tsruns32,914 bytessrc/report/template.htmlasset24,655 bytessrc/runner.tsruns8,254 bytessrc/types.tsruns5,020 bytessrc/util.tsruns5,751 bytessrc/verify.tsruns7,807 bytestests/cloak.test.tsruns5,877 bytestests/compiler-report.test.tsruns12,327 bytestests/config-env.test.tsruns5,300 bytestests/jev.test.tsruns11,734 bytestests/live.test.tsruns17,378 bytestests/loaders.test.tsruns5,310 bytestests/locator-policy.test.tsruns11,479 bytestests/model-http.test.tsruns878 bytestests/model-proxy-retry.test.tsruns1,058 bytestests/regressions.test.tsruns17,020 bytestests/step-opt.test.tsruns14,650 bytestsconfig.jsonasset344 bytesvitest.config.tsruns211 bytes
Read SKILL.md
# CodexQA Jev Browser
Drive a real browser through the `codexqa-jev-browser` CLI (TypeScript). Do not invent CSS/XPath/coordinates or replace the engine with a host browser tool.
## Choose a mode
1. Existing YAML, Markdown, or API cases → `run`
2. Only a natural-language goal → `auto` or `generate`
3. Unknown site / coverage → `explore`
Install once, from this skill directory (the directory that contains `package.json` and `SKILL.md`):
```bash
npm installView the complete source on GitHubcodexqa-requirement-analyzer
When your agent uses it
Full quality-and-risk analysis of requirement documents (single- or multi-source), producing one gap/conflict register with executable P0/P1 verification. Triggers: requirements analyzer, requirement quality, gap register, 需求分析, 需求分析器, 需求评审, 需求缺口. Not for writing a case library (that is codexqa-testcase-generator), constructing test data (codexqa-testdata-generator), or reviewing code (codexqa-defect-analyzer / codexqa-code-reviewer). Former skill name: requirements-analyzer.
What it loads into context
Frontmatter
144 tokensAlways available to the agent
SKILL.md
1,425 tokensWhen the skill is activated
Reference documents
14,442 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- When to Use
- Workflow
- Core Constraints
- Progressive Disclosure
- Pre-delivery Checklist
- Common Pitfalls
Scripts executed separately
scripts/batch_convert_templates.tsscripts/common_parser.tsscripts/convert_formats.tsscripts/convert_output_formats.tsscripts/convert_to_csv.tsscripts/convert_to_excel.tsscripts/convert_to_json.tsscripts/convert_to_markdown.tsscripts/convert_to_word.tsscripts/convert_to_xmind.tsscripts/office_io.tsscripts/parse_csv.tsscripts/parse_excel.tsscripts/parse_formats.tsscripts/parse_html.tsscripts/parse_json.tsscripts/parse_markdown.tsscripts/parse_output_formats.tsscripts/parse_pdf.tsscripts/parse_word.tsscripts/parse_xmind.tsscripts/run_analysis.ts
Files
.meta.jsonasset1,291 bytesCONTRIBUTING.mddoc922 bytesHOW_IT_WORKS.mddoc4,141 bytesHOW_IT_WORKS.zh-CN.mddoc3,892 bytesKNOWN_LIMITATIONS.mddoc1,679 bytesKNOWN_LIMITATIONS.zh-CN.mddoc1,555 bytesREADME.mddoc3,263 bytesREADME.zh-CN.mddoc3,075 bytesSKILL.mdcore6,400 bytesSKILL.mdcore6,400 bytesSKILL.mdcore6,400 bytesagents/openai.yamlasset527 bytesevals/cases/basic-success.yamlasset1,075 bytesevals/cases/edge-cross-source-conflict.yamlasset959 bytesevals/cases/edge-dependency-grid.yamlasset919 bytesevals/cases/edge-incomplete-input.yamlasset901 bytesevals/cases/edge-nfr-grid.yamlasset956 bytesevals/cases/edge-no-oracle-p0.yamlasset824 bytesevals/cases/edge-p0-verification.yamlasset848 bytesevals/cases/edge-risk-priority.yamlasset716 bytesevals/cases/edge-role-artifact-input.yamlasset1,589 bytesevals/cases/edge-singular-compound.yamlasset859 bytesevals/cases/edge-success-metrics.yamlasset951 bytesevals/eval.yamlasset794 bytesexamples/inventory-conflict.analysis.mddoc5,285 bytesexamples/requirements-sample.jsonasset587 bytesexamples/requirements-sample.mddoc664 bytesoutput-formats.mddoc780 bytesoutput-templates/template-csv.csvasset315 bytesoutput-templates/template-excel.tsvasset244 bytesoutput-templates/template-json.jsonasset2,611 bytesoutput-templates/template-markdown.mddoc1,667 bytesoutput-templates/template-word.mddoc697 bytesoutput-templates/template-xmind.mddoc429 bytesprompts/codexqa-requirement-analyzer.mddoc14,454 bytesquick-start.mddoc1,318 bytesreferences/FAQ.mddoc900 bytesreferences/behavioral-completeness.mddoc1,170 bytesreferences/dependency-grid.mddoc971 bytesreferences/nfr-quality-grid.mddoc1,290 bytesreferences/quality-attributes.mddoc1,958 bytesreferences/register-fields.mddoc1,979 bytesreferences/requirement-smells.mddoc1,357 bytesreferences/risk-scoring.mddoc1,925 bytesreferences/structure-inventory.mddoc1,408 bytesreferences/success-metrics.mddoc1,139 bytesreferences/troubleshooting.mddoc703 bytesscripts/batch_convert_templates.tsruns2,502 bytesscripts/common_parser.tsruns2,435 bytesscripts/convert_formats.tsruns10,204 bytesscripts/convert_output_formats.tsruns308 bytesscripts/convert_to_csv.tsruns328 bytesscripts/convert_to_excel.tsruns330 bytesscripts/convert_to_json.tsruns329 bytesscripts/convert_to_markdown.tsruns333 bytesscripts/convert_to_word.tsruns329 bytesscripts/convert_to_xmind.tsruns330 bytesscripts/office_io.tsruns10,205 bytesscripts/parse_csv.tsruns368 bytesscripts/parse_excel.tsruns516 bytesscripts/parse_formats.tsruns8,040 bytesscripts/parse_html.tsruns513 bytesscripts/parse_json.tsruns513 bytesscripts/parse_markdown.tsruns525 bytesscripts/parse_output_formats.tsruns344 bytesscripts/parse_pdf.tsruns368 bytesscripts/parse_word.tsruns513 bytesscripts/parse_xmind.tsruns370 bytesscripts/run_analysis.tsruns8,884 bytes
Read SKILL.md
# Requirements Analyzer
Human-facing install and method docs: `README.md`, `HOW_IT_WORKS.md`, `KNOWN_LIMITATIONS.md` (and `.zh-CN.md`). Do not load those at runtime.
## When to Use
- Need a complete quality and risk analysis of requirement documents, not just a scope scan or a gap list.
- Materials may be a single PRD or a multi-source pack (stories, APIs, plans, role reports).
- Need one reviewable, assignable, verifiable gap register that can hand off to strategy or case writing.
## Workflow
1. Read and follow the main prompt listed under Progressive disclosure (coverage, structure, quality bar).
2. Run the fixed pipeline: intake → short-input gate → structure inventory → input audit → quality/smell/NFR → success metrics → behavior plus UX states → trace and goal-feature alignment → dependency grid → single register → risk algorithm → testability and oracles → blockers and next actions. Do not write risks or a “TOP 3” list first.View the complete source on GitHubcodexqa-rootcause-analyzer
When your agent uses it
Diagnoses exception root causes from stack traces, logs, call-chain dumps, and debug output using the CodexQA CLI for structured repo analysis. Use when the user mentions codexqa-rootcause-analyzer, exception RCA, crash analysis, AI code diagnosis, stack diagnosis, 异常根因, 堆栈诊断, 崩溃分析, 异常诊断, or asks to turn an exception into a root-cause report. Not structure/impact analysis (that is codexqa-code-analyzer), not SAST + Agent LLM Detection code-risk scan reports (that is codexqa-defect-analyzer), and not CodexQA evidence-pack HTML review (that is codexqa-code-reviewer). Former skill name: root-cause-diagnosis.
What it loads into context
Frontmatter
288 tokensAlways available to the agent
SKILL.md
2,786 tokensWhen the skill is activated
Reference documents
9,285 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Boundaries
- Split of work
- Happy path
- Report rules (mandatory)
- Entry
- Load order
- RCA rules
- CodexQA (CLI only)
Scripts executed separately
assets/report-chrome.jspackage.jsonscripts/cli_args.tsscripts/diagnose.tsscripts/draft_report.tsscripts/ensure_codexqa.tsscripts/html_report.tsscripts/materialize_repo.tsscripts/parse_exception.tsscripts/query_graph.tsscripts/render_html.tsscripts/report.tsscripts/resolve_repo.tsscripts/store.tsscripts/timing.tstests/analyze_frames.test.tstests/cli_smoke.test.tstests/draft_report.test.tstests/ensure_codexqa.test.tstests/html_report.test.tstests/materialize_repo.test.tstests/parse_exception.test.ts
Files
.gitignoreasset58 bytes.meta.jsonasset1,547 bytesHOW_IT_WORKS.mddoc3,259 bytesHOW_IT_WORKS.zh-CN.mddoc3,082 bytesKNOWN_LIMITATIONS.mddoc2,264 bytesKNOWN_LIMITATIONS.zh-CN.mddoc1,973 bytesREADME.mddoc4,069 bytesREADME.zh-CN.mddoc3,964 bytesSKILL.mdcore10,452 bytesSKILL.mdcore10,452 bytesSKILL.mdcore10,452 bytesSKILL.mdcore10,452 bytesSKILL.mdcore10,452 bytesSKILL.mdcore10,452 bytesSKILL.mdcore10,452 bytesSKILL.mdcore10,452 bytesSKILL.mdcore10,452 bytesSKILL.mdcore10,452 bytesSKILL.mdcore10,452 bytesassets/report-chrome.cssasset8,620 bytesassets/report-chrome.jsruns2,601 bytesdata/.gitkeepasset0 bytespackage.jsonruns307 bytesreferences/codexqa.mddoc4,480 bytesreferences/exception-parse.mddoc1,872 bytesreferences/report-template.mddoc3,800 bytesreferences/workflow.mddoc5,685 bytesscripts/cli_args.tsruns3,090 bytesscripts/diagnose.tsruns22,507 bytesscripts/draft_report.tsruns18,039 bytesscripts/ensure_codexqa.tsruns9,830 bytesscripts/html_report.tsruns9,828 bytesscripts/materialize_repo.tsruns6,958 bytesscripts/parse_exception.tsruns12,350 bytesscripts/query_graph.tsruns22,249 bytesscripts/render_html.tsruns840 bytesscripts/report.tsruns5,641 bytesscripts/resolve_repo.tsruns2,343 bytesscripts/store.tsruns2,454 bytesscripts/timing.tsruns1,169 bytestests/analyze_frames.test.tsruns12,266 bytestests/cli_smoke.test.tsruns7,267 bytestests/draft_report.test.tsruns18,736 bytestests/ensure_codexqa.test.tsruns5,766 bytestests/html_report.test.tsruns1,903 bytestests/materialize_repo.test.tsruns2,299 bytestests/parse_exception.test.tsruns7,496 bytestsconfig.jsonasset394 bytes
Read SKILL.md
# Root Cause Diagnosis
Turns exception evidence into an **English** root-cause report. Structured understanding of the business codebase comes from the CodexQA CLI; this skill diagnoses **on top of** that analysis.
CLI: `node {baseDir}/scripts/diagnose.ts` (`$SKILL_SCRIPT`). Task data: `{baseDir}/data/{taskId}/`.
`README.md` / `README.zh-CN.md` / `HOW_IT_WORKS.md` / `KNOWN_LIMITATIONS.md` (and their `.zh-CN` twins) are human-facing. Do not load them at runtime.
## Boundaries
| Need | Skill |
|---|---|
| Symbol-graph change impact, callers, test gaps, entry risk | `codexqa-code-analyzer` |
| Exception RCA from stacks/logs on top of CLI analysis | **this skill** |View the complete source on GitHubcodexqa-skill-router
When your agent uses it
Auto-routes a user request to the matching codexqa skill, then ensures that skill is on disk and follows its SKILL.md. Use whenever the user is unsure which skill to run, says 帮我选 skill、自动路由、选哪个 skill、不知道用哪个、 route this request、pick the right skill、codexqa 该用哪个, installs only codexqa-skill-router and still needs a worker skill, or describes a verification / QA / testing / review / RCA / requirements / cases / testdata task without naming a skill. Former skill name: skill-router. Matches against live siblings plus a bundled catalog so newly published pack skills remain routable; if the winner is not installed, fetch it beside this router (ask once, then ensure_skill.py --yes) and hand off — do not invent a parallel workflow. Not a replacement for any target skill.
What it loads into context
Frontmatter
316 tokensAlways available to the agent
SKILL.md
2,341 tokensWhen the skill is activated
Reference documents
5,553 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- 1. Discover (mandatory, every turn)
- 2. Match the user request
- 3. Ensure the winner is installed
- 4. Hand off and execute
- 5. Done criteria
- 6. Boundaries
Scripts executed separately
scripts/discover_skills.pyscripts/ensure_skill.pyscripts/refresh_catalog.pyscripts/suggest_route.py
Files
.meta.jsonasset2,076 bytesHOW_IT_WORKS.mddoc2,296 bytesHOW_IT_WORKS.zh-CN.mddoc2,210 bytesKNOWN_LIMITATIONS.mddoc2,249 bytesKNOWN_LIMITATIONS.zh-CN.mddoc2,049 bytesLICENSEasset10,754 bytesREADME.mddoc2,851 bytesREADME.zh-CN.mddoc2,826 bytesSKILL.mdcore8,957 bytesSKILL.mdcore8,957 bytesSKILL.mdcore8,957 bytesSKILL.mdcore8,957 bytesSKILL.mdcore8,957 bytesevals/evals.jsonasset6,327 bytesreferences/catalog.jsonasset13,100 bytesreferences/routing-rules.mddoc5,893 bytesscripts/discover_skills.pyruns10,258 bytesscripts/ensure_skill.pyruns11,517 bytesscripts/refresh_catalog.pyruns4,223 bytesscripts/suggest_route.pyruns49,755 bytes
Read SKILL.md
# codexqa-skill-router
Agent entry map for **discover → match → ensure installed → hand off**. Human
docs (`README.md`, `HOW_IT_WORKS.md`, `KNOWN_LIMITATIONS.md` and `.zh-CN` twins)
are not loaded at runtime.
This skill does not implement defect scans, case writing, RCA, or data build.
It selects a pack skill, makes sure its files exist next to this router, then
**executes that skill's contract**.
## 1. Discover (mandatory, every turn)
Refresh the match catalog:
View the complete source on GitHubcodexqa-testcase-generator
When your agent uses it
Generates test plans and test cases from local requirements for APP, Web, and server. Use when the user wants a test plan, test analysis, test design, write cases, both plan and cases, PRD-based testing, pre-submit case edits, post-submit incremental, PR/git regression, or says 测试方案、测试分析、测试设计、测试计划、只要方案、写用例、出用例、只要用例、方案和用例都要、按 PRD 出测试、提测前改用例、提测后增量、按 PR 或 git 补回归用例、帮我出测试、补测试、做一轮测试设计. Do not switch to other case-generation, knowledge-retrieval, or generic writing skills even if unnamed. Input is local files, directories, pasted text, or HTTPS document URLs the user gives this turn; output is local Markdown only. Complete Plan and Exec without skipping. For code incremental, require a case baseline before fetching the given PR/MR/git URL; otherwise bootstrap first. Does not connect to case or doc platforms. Former skill name: testcase-generation.
What it loads into context
Frontmatter
316 tokensAlways available to the agent
SKILL.md
3,541 tokensWhen the skill is activated
Reference documents
135,265 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- 1. Route first
- 2. Scopes and done criteria
- 3. Boundaries (and why)
- 4. After routing: directory and knowledge
- 5. Plan (test plan)
- 6. Exec (test cases)
- 7. Pre-submit update
- 8. Incremental (post-submit incremental)
Scripts executed separately
scripts/bootstrap_knowledge.pyscripts/check_run_gate.pyscripts/close_stage.pyscripts/extract_svg_text.pyscripts/fetch_knowledge_git.pyscripts/generate_case_report.pyscripts/incremental/build_diff_candidates.pyscripts/incremental/freeze_case_standard.pyscripts/incremental/freeze_inputs.pyscripts/incremental/inc_common.pyscripts/incremental/make_ids.pyscripts/incremental/pull_remote_code.pyscripts/incremental/setup_execution.pyscripts/incremental/write_task_status.pyscripts/ingest_local_docs.pyscripts/lib/python_resolve.shscripts/py_version.pyscripts/run_gate_lib.pyscripts/tcg-python
Files
.gitignoreasset251 bytes.meta.jsonasset2,321 bytesCONTRIBUTING.mddoc2,094 bytesHOW_IT_WORKS.mddoc3,297 bytesHOW_IT_WORKS.zh-CN.mddoc3,242 bytesKNOWN_LIMITATIONS.mddoc2,311 bytesKNOWN_LIMITATIONS.zh-CN.mddoc2,050 bytesLICENSEasset1,096 bytesREADME.mddoc5,076 bytesREADME.zh-CN.mddoc4,650 bytesSKILL.mdcore14,521 bytesreferences/case-export-notes.mddoc1,051 bytesreferences/case-tpl-app.mddoc32,820 bytesreferences/case-tpl-server.mddoc31,053 bytesreferences/case-tpl-web.mddoc30,099 bytesreferences/entry-routing.mddoc8,712 bytesreferences/incremental/artifact-spec.mddoc6,022 bytesreferences/incremental/case-standard-format.mddoc5,629 bytesreferences/incremental/code-fetch-spec.mddoc6,020 bytesreferences/incremental/exec-layout.mddoc4,681 bytesreferences/incremental/input-spec.mddoc5,405 bytesreferences/incremental/output-spec.mddoc2,907 bytesreferences/incremental/publish-rules.mddoc4,707 bytesreferences/incremental/report-spec.mddoc6,426 bytesreferences/incremental/script-spec.mddoc4,078 bytesreferences/incremental/standard-source-spec.mddoc3,572 bytesreferences/knowledge-adapter.mddoc43,894 bytesreferences/knowledge-receipt-templates.mddoc11,786 bytesreferences/node-outline.mddoc1,239 bytesreferences/plan-export-notes.mddoc342 bytesreferences/plan-md-template.mddoc24,677 bytesreferences/postsubmit-bootstrap.mddoc2,274 bytesreferences/postsubmit-enhance.mddoc9,868 bytesreferences/presubmit-case-edit.mddoc3,921 bytesreferences/run-workspace.mddoc21,038 bytesreferences/s00-req-ingest.mddoc30,410 bytesreferences/s01-req-analysis.mddoc61,060 bytesreferences/s02-impact-risk.mddoc21,938 bytesreferences/s03-coverage-judge.mddoc4,335 bytesreferences/s04-object-design.mddoc45,282 bytesreferences/s04a-design-audit.mddoc34,385 bytesreferences/s05-plan-compose.mddoc20,515 bytesreferences/s06-case-write.mddoc18,889 bytesreferences/scene-fusion.mddoc18,301 bytesreferences/shared-rules.mddoc27,284 bytesreferences/ui-visible-scenarios.mddoc6,855 bytesscripts/bootstrap_knowledge.pyruns9,160 bytesscripts/check_run_gate.pyruns4,916 bytesscripts/close_stage.pyruns10,420 bytesscripts/extract_svg_text.pyruns13,209 bytesscripts/fetch_knowledge_git.pyruns4,423 bytesscripts/generate_case_report.pyruns47,734 bytesscripts/incremental/build_diff_candidates.pyruns31,103 bytesscripts/incremental/freeze_case_standard.pyruns10,103 bytesscripts/incremental/freeze_inputs.pyruns15,346 bytesscripts/incremental/inc_common.pyruns14,619 bytesscripts/incremental/make_ids.pyruns3,209 bytesscripts/incremental/pull_remote_code.pyruns35,687 bytesscripts/incremental/setup_execution.pyruns4,852 bytesscripts/incremental/write_task_status.pyruns7,007 bytesscripts/ingest_local_docs.pyruns19,235 bytesscripts/lib/python_resolve.shruns805 bytesscripts/py_version.pyruns703 bytesscripts/run_gate_lib.pyruns32,386 bytesscripts/tcg-pythonruns372 bytesuser-guide.mddoc13,369 bytes
Read SKILL.md
# codexqa-testcase-generator
This file is the Agent execution map: decide the scope first, then read only the references that scope needs. How the user phrases requests and where artifacts go: [user-guide.md](user-guide.md). Do not use the user guide to cut stages — skipping steps makes the test plan and test cases drift apart.
`README.md` / `README.zh-CN.md` / `HOW_IT_WORKS.md` / `KNOWN_LIMITATIONS.md` (and their `.zh-CN` twins) are human-facing. Do not load them at runtime.
When invoking skill scripts, **always** use `<skill_dir>/scripts/tcg-python` (resolves Python 3.10+ on PATH). Do not use bare `python3` — on some hosts it is too old and will exit before gates run.
References longer than about 300 lines start with a "Reading guide". Read in those segments; do not load the whole file at once.
## 1. Route first
Scope can only be decided from the user's original words. Before reading materials, creating directories, or writing a test plan or test cases, read [references/entry-routing.md](references/entry-routing.md) and clear the gate. Ask before acting; do not guess that the user "really only wants cases".
View the complete source on GitHubcodexqa-testdata-generator
When your agent uses it
Constructs test data against real backends and writes it back into test cases as executable preconditions. Use whenever the user wants test data built, case materials or preconditions prepared, a data-build skill or tool reused, an API discovered, a construction script written, or a proven method recorded — including Chinese phrasings such as 构造测试数据, 准备测试数据, 造数据, 用例数据, 用例物料, 用例数据准备, 用例前置数据, 测试数据回写, 测试物料清单, 数据需求分析. Also use it for concrete requests that never say "test data", like "create this account from the OpenAPI", "build a script from these change APIs", "publish that script as a tool", or "scaffold a new domain from this OpenAPI directory". Not for authoring test cases from a PRD (that is codexqa-testcase-generator) or finding defects in code (that is codexqa-defect-analyzer). Bundled slots and sub-skills here are internal; reach them through this skill. Former skill name: testdata-generation.
What it loads into context
Frontmatter
352 tokensAlways available to the agent
SKILL.md
4,639 tokensWhen the skill is activated
Reference documents
19,646 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Documents (load on demand)
- Case-material route (check first)
- Decision tree
- Step 1 — Search matching data-build options
- Step 2 — Tool registry (only when no skill matched)
- Step 3 — API catalog
- Step 4 — Write and run a construction script
- What to tell the user
- Success follow-up (after any successful path)
- Material gates (high-level only)
- Guardrails
Scripts executed separately
package.jsonreferences/script-template.tsscripts/_verify_enterprise_onboard.tsscripts/_verify_extend_scene.tsscripts/_verify_pipeline_scenarios.tsscripts/_verify_rewrite.tsscripts/_verify_user_journeys.tsscripts/adapters/api_catalog.tsscripts/adapters/auth.tsscripts/adapters/case_writeback.tsscripts/adapters/cli.tsscripts/adapters/config.tsscripts/adapters/config_store.tsscripts/adapters/data_store.tsscripts/adapters/doc_source.tsscripts/adapters/experience_store.tsscripts/adapters/feature_flags.tsscripts/adapters/httputil.tsscripts/adapters/index.tsscripts/adapters/skill_marketplace.tsscripts/adapters/slot_roots.tsscripts/adapters/tool_registry.tsscripts/adapters/workspace_context.tsscripts/experience_client.tsscripts/favorites.tsscripts/pack_skills.tsscripts/search_data_build.tsscripts/sync_slot.tsslots/common/client.tsslots/mock_server.ts
Files
.gitignoreasset147 bytes.meta.jsonasset2,317 bytesCONTRIBUTING.mddoc2,416 bytesHOW_IT_WORKS.mddoc28,525 bytesHOW_IT_WORKS.zh-CN.mddoc4,955 bytesINSTALL.mddoc2,040 bytesKNOWN_LIMITATIONS.mddoc5,195 bytesKNOWN_LIMITATIONS.zh-CN.mddoc4,049 bytesLICENSEasset11,361 bytesREADME.mddoc6,507 bytesREADME.zh-CN.mddoc6,153 bytesSKILL.mdcore19,571 bytesSKILL.mdcore19,571 bytesSKILL.mdcore19,571 bytesSKILL.mdcore19,571 bytesSKILL.mdcore19,571 bytesSKILL.mdcore19,571 bytesSKILL.mdcore19,571 bytesSKILL.mdcore19,571 bytesSKILL.mdcore19,571 bytesSKILL.mdcore19,571 bytesSKILL.mdcore19,571 bytesSKILL.mdcore19,571 bytesSKILL.mdcore19,571 bytesSKILL.mdcore19,571 bytesSKILL.mdcore19,571 bytesSKILL.mdcore19,571 bytesSKILL.mdcore19,571 bytesSKILL.mdcore19,571 bytesassets/config.example.yamlasset2,312 bytesevals/evals.jsonasset1,021 bytespackage-lock.jsonasset1,513 bytespackage.jsonruns281 bytesreferences/adapters.mddoc4,015 bytesreferences/script-template.tsruns4,830 bytesreferences/workflow.mddoc10,813 bytesscripts/_verify_enterprise_onboard.tsruns22,216 bytesscripts/_verify_extend_scene.tsruns25,289 bytesscripts/_verify_pipeline_scenarios.tsruns54,127 bytesscripts/_verify_rewrite.tsruns90,773 bytesscripts/_verify_user_journeys.tsruns36,345 bytesscripts/adapters/api_catalog.tsruns10,825 bytesscripts/adapters/auth.tsruns1,917 bytesscripts/adapters/case_writeback.tsruns1,716 bytesscripts/adapters/cli.tsruns6,942 bytesscripts/adapters/config.tsruns9,052 bytesscripts/adapters/config_store.tsruns3,985 bytesscripts/adapters/data_store.tsruns2,164 bytesscripts/adapters/doc_source.tsruns1,982 bytesscripts/adapters/experience_store.tsruns6,637 bytesscripts/adapters/feature_flags.tsruns2,114 bytesscripts/adapters/httputil.tsruns2,610 bytesscripts/adapters/index.tsruns2,217 bytesscripts/adapters/skill_marketplace.tsruns5,669 bytesscripts/adapters/slot_roots.tsruns13,694 bytesscripts/adapters/tool_registry.tsruns8,241 bytesscripts/adapters/workspace_context.tsruns3,917 bytesscripts/experience_client.tsruns3,819 bytesscripts/favorites.tsruns10,443 bytesscripts/pack_skills.tsruns14,477 bytesscripts/search_data_build.tsruns7,186 bytesscripts/sync_slot.tsruns2,516 bytesslots/README.mddoc776 bytesslots/SLOT_SPEC.mddoc3,069 bytesslots/common/client.tsruns2,471 bytesslots/mock_server.tsruns9,193 bytestsconfig.jsonasset431 bytes
Read SKILL.md
# Test Data Generation
This directory is the skill. It has no baked-in company knowledge.
Platforms are adapters; local files work with zero extra infrastructure.
**This skill never invents business data.** It decides which path to take and
extracts parameters the user already supplied; an executor, a published tool, or
a generated script is what actually calls the backend. "Construct succeeded"
means the backend returned a business ID, not that an ID appeared in the reply.
`SKILL_DIR` is the folder that contains this `SKILL.md`. Every command below
uses it, so resolve it once:
```bashView the complete source on GitHubcase-data-material-planner
When your agent uses it
Prepares executable case preconditions and case-executable.md from a requirement or written cases. Internal case-material engine; enter through codexqa-testdata-generator so SKILL_DIR and adapters resolve.
What it loads into context
Frontmatter
63 tokensAlways available to the agent
SKILL.md
2,119 tokensWhen the skill is activated
Reference documents
19,638 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- How the work is divided
- Hard constraints
- Entry routes
- Material gate (case source)
- Constraints
- Path roots
- File layout
- Outputs
- Dependencies
- Collaboration
Scripts executed separately
scripts/bind_action.tsscripts/cache_tool_binding.tsscripts/dashboard/server.tsscripts/experience_compat.tsscripts/finalize.tsscripts/gate_check_cdata.tsscripts/generate_config_commands.tsscripts/hash_manifest.tsscripts/init_manifest.tsscripts/invoke_entity.tsscripts/lint_manifest.tsscripts/manifest_io.tsscripts/merge_executor_fields.tsscripts/merge_patch.tsscripts/parallel_search.tsscripts/pipeline.tsscripts/rollback.tsscripts/safe_io.tsscripts/search_data_build_skill.tsscripts/select_tool.tsscripts/slot_catalog.tsscripts/slot_render.tsscripts/topo_sort_batch.tsscripts/verify_tool_input_list.ts
Files
SKILL.mdcore8,700 bytesSKILL.mdcore8,700 bytesagents/knowledge-build.mddoc11,276 bytesagents/parse-case.mddoc19,212 bytesagents/select-tool.mddoc1,822 bytesagents/writeback.mddoc14,927 bytescase-dispatcher.mddoc1,842 bytesplanner.mddoc4,679 bytesreferences/agent-permissions.mddoc2,463 bytesreferences/confidence-policy.mddoc5,746 bytesreferences/experience-integration.mddoc1,227 bytesreferences/lint-verdict-spec.mddoc4,346 bytesreferences/param-source-spec.mddoc8,485 bytesreferences/slot-render-spec.mddoc4,124 bytesscripts/bind_action.tsruns8,855 bytesscripts/cache_tool_binding.tsruns39,781 bytesscripts/dashboard/index.htmlasset31,544 bytesscripts/dashboard/server.tsruns5,049 bytesscripts/experience_compat.tsruns4,258 bytesscripts/finalize.tsruns3,461 bytesscripts/gate_check_cdata.tsruns2,522 bytesscripts/generate_config_commands.tsruns5,918 bytesscripts/hash_manifest.tsruns2,198 bytesscripts/init_manifest.tsruns3,988 bytesscripts/invoke_entity.tsruns13,065 bytesscripts/lint_manifest.tsruns12,452 bytesscripts/manifest_io.tsruns1,223 bytesscripts/merge_executor_fields.tsruns4,567 bytesscripts/merge_patch.tsruns13,551 bytesscripts/parallel_search.tsruns7,057 bytesscripts/pipeline.tsruns16,046 bytesscripts/rollback.tsruns8,388 bytesscripts/safe_io.tsruns5,174 bytesscripts/search_data_build_skill.tsruns2,307 bytesscripts/select_tool.tsruns10,700 bytesscripts/slot_catalog.tsruns2,523 bytesscripts/slot_render.tsruns18,230 bytesscripts/topo_sort_batch.tsruns9,144 bytesscripts/verify_tool_input_list.tsruns3,994 bytestemplates/business-context-template.jsonasset760 bytestemplates/dispatcher-state-template.jsonasset313 bytestemplates/manifest-template.jsonasset1,007 bytestemplates/tool-binding-cache-template.jsonasset71 bytes
Read SKILL.md
# case-data-material-planner
One-stop material engine between case authoring and case execution.
- Build an optional business-context graph from requirements
- Parse entities and actions from each case
- Construct data and bind commands through adapters
- Emit `case-executable.md`
## How the work is divided
`scripts/pipeline.ts` owns orchestration. You supply judgment at three points
only — `parse-case`, `knowledge-build`, and `select-tool` — and the script does
construction, binding, linting, and writeback. This split exists because thoseView the complete source on GitHubslot-scaffolder
When your agent uses it
Generate a domain data-build slot from OpenAPI files: new business-domain pack, scaffold a data-build skill, or add an enterprise custom domain. Internal helper of the parent pack; reach this through codexqa-testdata-generator.
What it loads into context
Frontmatter
79 tokensAlways available to the agent
SKILL.md
661 tokensWhen the skill is activated
Reference documents
751 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Inputs
- Run
- After generation
Scripts executed separately
../scripts/search_data_build.ts../scripts/search_data_build.ts../scripts/sync_slot.ts../scripts/sync_slot.tsscripts/scaffold_slot.ts
Files
../scripts/search_data_build.tsruns7,186 bytes../scripts/search_data_build.tsruns7,186 bytes../scripts/sync_slot.tsruns2,516 bytes../scripts/sync_slot.tsruns2,516 bytesSKILL.mdcore2,540 bytesSKILL.mdcore2,540 bytesscripts/scaffold_slot.tsruns8,485 bytes../slots/SLOT_SPEC.mddoc3,069 bytes
Read SKILL.md
# Slot scaffolder
Bundled sub-skill of `codexqa-testdata-generator`: turn an OpenAPI directory plus a
domain name into a slot that matches [../slots/SLOT_SPEC.md](../slots/SLOT_SPEC.md),
the single copy of that contract.
## Inputs
`domain` and `openapi` are the prerequisite **materials**. If either is missing, or the OpenAPI directory has no `.yaml` / `.yml` / `.json` files, **stop and ask**. Do not invent operations or scaffold an empty slot. After the user provides them, generate the slot. Do not collect executor fields.
| Field | Meaning | Required |
|---|---|---|
| `domain` | Short English slug (`payments`, `logistics`) | yes |
| `openapi` | Directory of OpenAPI YAML/JSON files (at least one spec) | yes |View the complete source on GitHubcatalog
When your agent uses it
Constructs catalog products (standard or limited), catalog orders, and account-credit enrollment, including product-then-credit scenes. Internal catalog slot of the parent pack; do not invoke independently.
What it loads into context
Frontmatter
55 tokensAlways available to the agent
SKILL.md
504 tokensWhen the skill is activated
Reference documents
945 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Single-step routing
- Scene orchestration
- Guardrails
Scripts executed separately
scripts/executors/create_limited_product.tsscripts/executors/create_order.tsscripts/executors/create_product.tsscripts/executors/setup_account_credit.ts../mock_server.ts../mock_server.ts
Files
../SLOT_SPEC.mddoc3,069 bytesSKILL.mdcore2,056 bytesSKILL.mdcore2,056 bytesassets/openapi/catalog.yamlasset686 bytesreferences/tools-guide.mddoc639 bytesscripts/executors/create_limited_product.tsruns1,061 bytesscripts/executors/create_order.tsruns1,421 bytesscripts/executors/create_product.tsruns981 bytesscripts/executors/setup_account_credit.tsruns1,123 bytesslot.yamlasset1,261 bytes../mock_server.tsruns9,193 bytes../mock_server.tsruns9,193 bytes
Read SKILL.md
# Catalog data-build slot
Vendor-neutral catalog-domain slot. Drop-in under pack `slots/` (already discovered; no extra `slot_roots` / marketplace path).
`slot.yaml` is the scene config. More specific entities (limited / credit) are listed before generic product.
Executors talk to `DATA_BUILD_API_BASE` (default local mock on port 8765). The case pipeline binds these executors from `slot.yaml` without an LLM when the match is unique.
## Single-step routing
| User intent | Executor |
|---|---|
| Standard catalog product | `scripts/executors/create_product.ts` |
| Limited catalog product | `scripts/executors/create_limited_product.ts` |
| Catalog order | `scripts/executors/create_order.ts` |
| Account credit on a product / user | `scripts/executors/setup_account_credit.ts` |View the complete source on GitHubdistribution
When your agent uses it
Constructs distributor accounts, inventory binds, commission or markup, and browse-and-quote, including the ready-to-sell scene. Internal distribution slot of the parent pack; do not invoke independently.
What it loads into context
Frontmatter
56 tokensAlways available to the agent
SKILL.md
457 tokensWhen the skill is activated
Reference documents
921 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Single-step routing
- Scene: ready-to-sell
- Guardrails
Scripts executed separately
scripts/executors/bind_inventory.tsscripts/executors/browse_and_quote.tsscripts/executors/create_distributor.tsscripts/executors/set_commission.ts../mock_server.ts../mock_server.ts
Files
../SLOT_SPEC.mddoc3,069 bytesSKILL.mdcore1,914 bytesSKILL.mdcore1,914 bytesassets/openapi/distribution.yamlasset920 bytesreferences/tools-guide.mddoc566 bytesscripts/executors/bind_inventory.tsruns1,058 bytesscripts/executors/browse_and_quote.tsruns1,066 bytesscripts/executors/create_distributor.tsruns950 bytesscripts/executors/set_commission.tsruns1,064 bytesslot.yamlasset903 bytes../mock_server.tsruns9,193 bytes../mock_server.tsruns9,193 bytes
Read SKILL.md
# Distribution data-build slot
Vendor-neutral distributor slot. Drop-in under pack `slots/` (already discovered).
`slot.yaml` scene `ready-to-sell` is create distributor → bind inventory → set commission.
Executors talk to `DATA_BUILD_API_BASE` (default local mock on port 8765). The case pipeline binds from `slot.yaml` when the match is unique.
## Single-step routing
| User intent | Executor |
|---|---|
| Create distributor | `scripts/executors/create_distributor.ts` |
| Bind supply / inventory | `scripts/executors/bind_inventory.ts` |
| Set commission | `scripts/executors/set_commission.ts` |
| Browse and quote | `scripts/executors/browse_and_quote.ts` |View the complete source on GitHubSkills included
- codexqa-change-analysis
- codexqa-code-analyzer
- codexqa-code-reviewer
- codexqa-code-wiki
- codexqa-defect-analyzer
- codexqa-jev-browser
- codexqa-requirement-analyzer
- codexqa-rootcause-analyzer
- codexqa-skill-router
- codexqa-testcase-generator
- codexqa-testdata-generator
- case-data-material-planner
- slot-scaffolder
- catalog
- distribution
Repository facts
- License
- Apache-2.0
- Created
- Sep 5, 2026
- Last pushed
- Oct 3, 2026
- Forks
- 3
- Open issues
- 1
- Project activity
- Active
Before you install
Network or broad shellAutomated signals, not a guarantee
Checked Nov 5, 2026
Not fully analyzed: some files were too long, unreadable or missing. This never lowers the level.
Show 97 notes
skills/codexqa-change-analysis/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/codexqa-change-analysis/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/codexqa-code-analyzer/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/codexqa-code-reviewer/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/codexqa-code-reviewer/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/codexqa-code-reviewer/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/codexqa-code-reviewer/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/codexqa-code-reviewer/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/codexqa-code-reviewer/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/codexqa-code-reviewer/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/codexqa-code-reviewer/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/codexqa-code-reviewer/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/codexqa-code-reviewer/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/codexqa-code-reviewer/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/codexqa-code-reviewer/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/codexqa-code-reviewer/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/codexqa-code-reviewer/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/codexqa-code-reviewer/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/codexqa-code-reviewer/prompts/full-repo-review.md:42Analysis incomplete: physical or joined line exceeds character limitskills/codexqa-code-reviewer/prompts/pr-diff-review.md:48Analysis incomplete: physical or joined line exceeds character limit
- No broad tool permissions
- 75 dangerous shell commandsin 32 files: codexqa-code-reviewer/scripts/validate-skill.sh:209 codexqa-testdata-generator/scripts/_verify_rewrite.ts:456 codexqa-code-reviewer/scripts/resolve-pr-checkout.sh:68 and 29 more
- 1,308 network referencesin 144 files: codexqa-jev-browser/package-lock.json:29 codexqa-jev-browser/tests/step-opt.test.ts:39 codexqa-jev-browser/tests/jev.test.ts:8 and 141 more
- 1 obfuscation signalin 1 file: codexqa-testcase-generator/scripts/extract_svg_text.py:122
- No instruction overrides
- 272 executable scriptsin 264 files: codexqa-testdata-generator/slots/mock_server.ts:1 codexqa-testdata-generator/scripts/search_data_build.ts:1 codexqa-testdata-generator/scripts/sync_slot.ts:1 and 261 more
- 143 references to secretsin 54 files: codexqa-jev-browser/tests/config-env.test.ts:14 codexqa-defect-analyzer/scripts/run_scan.py:5 codexqa-jev-browser/README.md:33 and 51 more
- No requests to vote in Hot
Show all 1,799 signals by file
skills/codexqa-change-analysis/KNOWN_LIMITATIONS.md
- Network accessline 38
`codexqa tag . keys --json` currently registers taggers only for Spring / Rust (`framework.http`, `framework.http.method`, `framework.http.client`, `framework.mq_consumer`). A JS/TS/Python repo's `tagged --key framework.http` is empty, and
skills/codexqa-change-analysis/KNOWN_LIMITATIONS.zh-CN.md
- Network accessline 36
`codexqa tag . keys --json` 目前仅为 Spring / Rust 注册了标注器(`framework.http`, `framework.http.method`, `framework.http.client`, `framework.mq_consumer`)。在 JS/TS/Python 仓库中,`tagged --key framework.http` 结果为空,且 `repo_count` 为 0。
skills/codexqa-change-analysis/README.md
- Network accessline 39
npm install -g @openqa-cn/codexqa --registry https://registry.npmjs.org/
skills/codexqa-change-analysis/README.zh-CN.md
- Network accessline 39
npm install -g @openqa-cn/codexqa --registry https://registry.npmjs.org/
skills/codexqa-change-analysis/assets/report-template.html
- Network accessline 5
<meta name="viewport" content="width=device-width, initial-scale=1"> <title>Change impact analysis</title> <link rel="preconnect" href="https://fonts.googleapis.com"> - Network accessline 6
<title>Change impact analysis</title> <link rel="preconnect" href="https://fonts.googleapis.com"> <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin> - Network accessline 7
<link rel="preconnect" href="https://fonts.googleapis.com"> - Network accessline 8
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin> - Network accessline 9
<link href="https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@400;500;700&family=Noto+Sans+SC:wght@400;500;700&display=swap" rel="stylesheet"> - Network accessline 394
so before delivery render a static inline SVG as references/report.md describes, and delete this loader. --> <script type="module"> import('https://cdn.jsdelivr.net/npm/mermaid@11/dist/mermaid.esm.min.mjs') - Network accessline 395
<script type="module"> import('https://cdn.jsdelivr.net/npm/mermaid@11/dist/mermaid.esm.min.mjs') .then(m => m.default.initialize({ startOnLoad: true, theme: 'base' })) - Network accessline 396
import('https://cdn.jsdelivr.net/npm/mermaid@11/dist/mermaid.esm.min.mjs')
skills/codexqa-change-analysis/references/analysis.md
- Network accessline 110
codexqa tag . keys --json # tag keys this repo can query codexqa query --repo . tagged --key framework.http # server routes (Spring / Rust taggers only) codexqa query --repo . tagged --key framework.http.clie - Network accessline 111
codexqa query --repo . tagged --key framework.http # server routes (Spring / Rust taggers only) codexqa query --repo . tagged --key framework.http.client # outbound REST call sites codexqa query --repo . tagged --key framework.mq - Network accessline 112
codexqa query --repo . tagged --key framework.http.client # outbound REST call sites - Access to secretsline 183
[Credential-related source omitted]
skills/codexqa-code-analyzer/KNOWN_LIMITATIONS.md
- Network accessline 20
See the repository [support matrix](https://github.com/openqa-cn/codexqa/blob/main/docs/SUPPORT_MATRIX.md) for the current evidence status.
skills/codexqa-code-analyzer/KNOWN_LIMITATIONS.zh-CN.md
- Network accessline 20
当前公开证据见仓库[支持矩阵](https://github.com/openqa-cn/codexqa/blob/main/docs/SUPPORT_MATRIX.zh-CN.md)。
skills/codexqa-code-analyzer/README.md
- Network accessline 23
npm install -g @openqa-cn/codexqa --registry https://registry.npmjs.org/ - Network accessline 37
npx skills add openqa-cn/codexqa --skill codexqa-code-analyzer npm install -g @openqa-cn/codexqa --registry https://registry.npmjs.org/ - Network accessline 38
npm install -g @openqa-cn/codexqa --registry https://registry.npmjs.org/ - Network accessline 148
codexqa index /path/to/repo --diff-base origin/main # remote feature branch vs main # codexqa index https://github.com/org/repo.git -b feature --diff-base main - Network accessline 150
# codexqa index https://github.com/org/repo.git -b feature --diff-base main - Network accessline 257
codexqa tag <repo> keys --json codexqa query --repo <repo> tagged --key framework.http codexqa query --repo <repo> tagged --key framework.http.client - Network accessline 258
codexqa query --repo <repo> tagged --key framework.http codexqa query --repo <repo> tagged --key framework.http.client codexqa query --repo <repo> tagged --key <key> - Network accessline 259
codexqa query --repo <repo> tagged --key framework.http.client - Network accessline 270
- Tags find a **role** (endpoint, consumer, outbound client). Do not look them up by function name. - `framework.http` is server routing; REST clients use `framework.http.client`. Querying only the former comes back empty. - Network accessline 271
- `framework.http` is server routing; REST clients use `framework.http.client`. Querying only the former comes back empty. - Access to secretsline 285
[Credential-related source omitted]
skills/codexqa-code-analyzer/README.zh-CN.md
- Network accessline 21
npm install -g @openqa-cn/codexqa --registry https://registry.npmjs.org/ - Network accessline 39
npx skills add openqa-cn/codexqa --skill codexqa-code-analyzer npm install -g @openqa-cn/codexqa --registry https://registry.npmjs.org/ - Network accessline 40
npm install -g @openqa-cn/codexqa --registry https://registry.npmjs.org/ - Network accessline 183
codexqa index /path/to/repo --diff-base origin/main # 远程功能分支对照 main # codexqa index https://github.com/org/repo.git -b feature --diff-base main - Network accessline 185
# codexqa index https://github.com/org/repo.git -b feature --diff-base main - Network accessline 300
codexqa tag <repo> keys --json codexqa query --repo <repo> tagged --key framework.http codexqa query --repo <repo> tagged --key framework.http.client - Network accessline 301
codexqa query --repo <repo> tagged --key framework.http codexqa query --repo <repo> tagged --key framework.http.client codexqa query --repo <repo> tagged --key <key> - Network accessline 302
codexqa query --repo <repo> tagged --key framework.http.client - Network accessline 313
- Tag 找**角色**(端点、消费者、出站客户端),不要按函数名找。 - `framework.http` 是服务端路由;REST 客户端查 `framework.http.client`。只查前者会空。 - Network accessline 314
- `framework.http` 是服务端路由;REST 客户端查 `framework.http.client`。只查前者会空。 - Access to secretsline 330
[Credential-related source omitted]
skills/codexqa-code-analyzer/assets/checkout-change-impact.svg
- Network accessline 1
<?xml version="1.0" encoding="UTF-8"?> <svg xmlns="http://www.w3.org/2000/svg" width="1480" height="860" viewBox="0 0 1480 860" role="img" aria-label="Checkout change impact and test coverage"> - Network accessline 2
<svg xmlns="http://www.w3.org/2000/svg" width="1480" height="860" viewBox="0 0 1480 860" role="img" aria-label="Checkout change impact and test coverage">
skills/codexqa-code-analyzer/references/cli.md
- Network accessline 10
npm install -g @openqa-cn/codexqa --registry https://registry.npmjs.org/ - Network accessline 32
| Local path | `/path/to/repo` or `.` | Checkout already on disk; preferred for indexing | | Canonical id | `github.com/org/repo@main` | Reuse across commands after indexing; `@` is the branch | | Remote git URL | `https://github.com/org/re - Network accessline 34
| Remote git URL | `https://github.com/org/repo.git` | **Index only**: fetch that branch and parse it | - Network accessline 56
[llm] base_url = "https://api.openai.com/v1" - Network accessline 57
base_url = "https://api.openai.com/v1" - Access to secretsline 58
[Credential-related source omitted]
skills/codexqa-code-analyzer/references/playbook.md
- Network accessline 15
codexqa index /path/to/repo codexqa index https://github.com/org/repo.git - Network accessline 16
codexqa index https://github.com/org/repo.git - Network accessline 17
codexqa index https://github.com/org/repo.git -b main - Network accessline 37
codexqa index /path/to/repo --diff-base origin/main codexqa index /path/to/repo --diff-base HEAD~1 codexqa index https://github.com/org/repo.git -b feature --diff-base main - Network accessline 39
codexqa index https://github.com/org/repo.git -b feature --diff-base main - Network accessline 115
codexqa tag <repo> keys --json codexqa query --repo <repo> tagged --key framework.http codexqa query --repo <repo> tagged --key framework.http.client - Network accessline 116
codexqa query --repo <repo> tagged --key framework.http codexqa query --repo <repo> tagged --key framework.http.client codexqa query --repo <repo> tagged --key <key> - Network accessline 117
codexqa query --repo <repo> tagged --key framework.http.client - Network accessline 127
- Tags find a **role** (endpoint, consumer, outbound client). Do not look them up by function name. - `framework.http` is server routing; REST **clients** (reqwest `Client.get`, no axum/actix) use `framework.http.client`. Querying only the - Network accessline 128
- `framework.http` is server routing; REST **clients** (reqwest `Client.get`, no axum/actix) use `framework.http.client`. Querying only the former comes back empty. - Access to secretsline 140
[Credential-related source omitted]
skills/codexqa-code-reviewer/HOW_IT_WORKS.md
- Network accessline 47
| Skill | Difference | |---|---| | [`codexqa-code-analyzer`](https://github.com/openqa-cn/codexqa/blob/main/skills/codexqa-code-analyzer/README.md) | Symbol-graph Q&A / impact — not a full review-report pipeline | - Network accessline 48
|---|---| | [`codexqa-code-analyzer`](https://github.com/openqa-cn/codexqa/blob/main/skills/codexqa-code-analyzer/README.md) | Symbol-graph Q&A / impact — not a full review-report pipeline | | [`codexqa-defect-analyzer`](https://github.com/ - Network accessline 49
| [`codexqa-code-analyzer`](https://github.com/openqa-cn/codexqa/blob/main/skills/codexqa-code-analyzer/README.md) | Symbol-graph Q&A / impact — not a full review-report pipeline | - Network accessline 50
| [`codexqa-defect-analyzer`](https://github.com/openqa-cn/codexqa/blob/main/skills/codexqa-defect-analyzer/README.md) | SAST + Agent LLM Detection → `report_scan.*` (dedupe/merge) | - Network accessline 51
| [`codexqa-rootcause-analyzer`](https://github.com/openqa-cn/codexqa/blob/main/skills/codexqa-rootcause-analyzer/README.md) | Exception RCA on top of CLI facts |
skills/codexqa-code-reviewer/HOW_IT_WORKS.zh-CN.md
- Network accessline 47
| Skill | 差异 | |---|---| | [`codexqa-code-analyzer`](https://github.com/openqa-cn/codexqa/blob/main/skills/codexqa-code-analyzer/README.zh-CN.md) | 符号图问答 / 影响面 — 不是完整评审报告流水线 | - Network accessline 48
|---|---| | [`codexqa-code-analyzer`](https://github.com/openqa-cn/codexqa/blob/main/skills/codexqa-code-analyzer/README.zh-CN.md) | 符号图问答 / 影响面 — 不是完整评审报告流水线 | | [`codexqa-defect-analyzer`](https://github.com/openqa-cn/codexqa/blob/main/sk - Network accessline 49
| [`codexqa-code-analyzer`](https://github.com/openqa-cn/codexqa/blob/main/skills/codexqa-code-analyzer/README.zh-CN.md) | 符号图问答 / 影响面 — 不是完整评审报告流水线 | - Network accessline 50
| [`codexqa-defect-analyzer`](https://github.com/openqa-cn/codexqa/blob/main/skills/codexqa-defect-analyzer/README.zh-CN.md) | SAST + Agent LLM Detection → `report_scan.*`(去重合并) | - Network accessline 51
| [`codexqa-rootcause-analyzer`](https://github.com/openqa-cn/codexqa/blob/main/skills/codexqa-rootcause-analyzer/README.zh-CN.md) | 在 CLI facts 之上做异常 RCA |
skills/codexqa-code-reviewer/LICENSE
skills/codexqa-code-reviewer/README.md
- Network accessline 7
It is **not** [`codexqa-defect-analyzer`](https://github.com/openqa-cn/codexqa/blob/main/skills/codexqa-defect-analyzer/README.md) (SAST + Agent LLM Detection → `report_scan.*`), **not** [`codexqa-code-analyzer`](https://github.com/openqa-c - Network accessline 12
- `bash` 3.2+, `jq` on `PATH` - `@openqa-cn/codexqa` CLI on PATH: `npm install -g @openqa-cn/codexqa --registry https://registry.npmjs.org/` - Network accessline 13
- `@openqa-cn/codexqa` CLI on PATH: `npm install -g @openqa-cn/codexqa --registry https://registry.npmjs.org/` - A local Git checkout for PR/diff mode (`--diff-base`); full-repo / adhoc modes documented in `SKILL.md` - Network accessline 14
`npm install -g @openqa-cn/codexqa --registry https://registry.npmjs.org/` - Network accessline 26
See the [installation guide](https://github.com/openqa-cn/codexqa/blob/main/docs/GETTING_STARTED.md), [support matrix](https://github.com/openqa-cn/codexqa/blob/main/docs/SUPPORT_MATRIX.md), and [FAQ](https://github.com/openqa-cn/codexqa/bl
skills/codexqa-code-reviewer/README.zh-CN.md
- Network accessline 7
**不是** [`codexqa-defect-analyzer`](https://github.com/openqa-cn/codexqa/blob/main/skills/codexqa-defect-analyzer/README.zh-CN.md)(SAST + Agent LLM Detection → `report_scan.*`),**不是**单独的 [`codexqa-code-analyzer`](https://github.com/openqa-cn - Network accessline 12
- `PATH` 上有 `bash` 3.2+、`jq` - `PATH` 上有 `@openqa-cn/codexqa` CLI: `npm install -g @openqa-cn/codexqa --registry https://registry.npmjs.org/` - Network accessline 13
- `PATH` 上有 `@openqa-cn/codexqa` CLI: `npm install -g @openqa-cn/codexqa --registry https://registry.npmjs.org/` - PR/diff 模式需要本地 Git 工作副本与 `--diff-base`;全仓 / adhoc 模式见 `SKILL.md` - Network accessline 14
`npm install -g @openqa-cn/codexqa --registry https://registry.npmjs.org/` - Network accessline 26
见[安装指南](https://github.com/openqa-cn/codexqa/blob/main/docs/GETTING_STARTED.zh-CN.md)、[支持矩阵](https://github.com/openqa-cn/codexqa/blob/main/docs/SUPPORT_MATRIX.zh-CN.md)和 [FAQ](https://github.com/openqa-cn/codexqa/blob/main/docs/FAQ.zh-CN.m
skills/codexqa-code-reviewer/assets/report-chrome.js
- Executable scriptline 1
Executable file
skills/codexqa-code-reviewer/references/business-rule-records.md
- Access to secretsline 87
[Credential-related source omitted]
skills/codexqa-code-reviewer/references/dimensions/complexity.md
- Network accessline 3
Source: [Google eng-practices — Complexity](https://google.github.io/eng-practices/review/reviewer/looking-for.html)
skills/codexqa-code-reviewer/references/dimensions/dependencies.md
- Network accessline 3
Source: [Codacy — Proper Use Of Dependencies](https://blog.codacy.com/code-review-checklist);
skills/codexqa-code-reviewer/references/dimensions/design-fit.md
- Network accessline 3
Source: [Google eng-practices — Design](https://google.github.io/eng-practices/review/reviewer/looking-for.html)
skills/codexqa-code-reviewer/references/dimensions/performance.md
- Network accessline 13
| Criterion | Why this wins | |---|---| | N+1 is highest-ROI static perf gate | [n1detect](https://github.com/renaldid/n1detect), [Roslyn CI0011](https://blog.rogatnev.net/posts/en/2026/08/N-Plus-One-Problem.html), [QueryPerf](https://githu - Network accessline 14
|---|---| | N+1 is highest-ROI static perf gate | [n1detect](https://github.com/renaldid/n1detect), [Roslyn CI0011](https://blog.rogatnev.net/posts/en/2026/08/N-Plus-One-Problem.html), [QueryPerf](https://github.com/NetizenLabs/queryperf) — - Network accessline 15
| N+1 is highest-ROI static perf gate | [n1detect](https://github.com/renaldid/n1detect), [Roslyn CI0011](https://blog.rogatnev.net/posts/en/2026/08/N-Plus-One-Problem.html), [QueryPerf](https://github.com/NetizenLabs/queryperf) — missed ba - Network accessline 16
| Known pathologies: fix on sight | [sota-performance](https://github.com/martinholovsky/sota-skills/blob/main/skills/sota-performance/SKILL.md) — N+1 / unbounded cache need no profiler first |
skills/codexqa-code-reviewer/references/dimensions/privacy.md
- Access to secretsline 43
[Credential-related source omitted]
skills/codexqa-code-reviewer/references/dimensions/risk-tier.md
- Network accessline 8
Selected model: **ShipWithAI T0–T3** where **T0 = highest blast radius** ([Part 2 triage](https://shipwithai.io/blog/reviewing-ai-generated-pull-requests-2026--part2--senior-dev--en/), - Network accessline 9
([Part 2 triage](https://shipwithai.io/blog/reviewing-ai-generated-pull-requests-2026--part2--senior-dev--en/), - Network accessline 10
[Part 3 CI encoding](https://shipwithai.io/blog/reviewing-ai-generated-pull-requests-2026--part3--senior-dev--en/)).
skills/codexqa-code-reviewer/references/industry-bar.md
- Network accessline 11
5. **Multi-dimension pipeline** — Design fit → Complexity → Dependencies → Correctness → Resilience → security/sensitive → Privacy → API/contract → Change/rollout → regression/test gaps → observability → maintainability → **performance** ([ - Network accessline 12
6. **Human merge gate** — Skill advises; humans decide. 7. **Blast-radius risk tier (pre-pipeline)** — Assign T0–T3 from paths + tags + sensitive + rollout surfaces **before** deep review; auth/pay/migration/IaC force T0 and full evidence f - Network accessline 13
7. **Blast-radius risk tier (pre-pipeline)** — Assign T0–T3 from paths + tags + sensitive + rollout surfaces **before** deep review; auth/pay/migration/IaC force T0 and full evidence floor ([dimensions/risk-tier.md](dimensions/risk-tier.md) - Network accessline 14
8. **Performance pathology signatures** — Hot path / N+1 / unbounded allocation via local heuristics (`21-performance-signals.json`); fix-on-sight known pathologies ([n1detect](https://github.com/renaldid/n1detect), [Roslyn CI0011](https://
skills/codexqa-code-reviewer/scripts/acr-python
- Executable scriptline 1
#!/usr/bin/env bash
skills/codexqa-code-reviewer/scripts/audit-plan-coverage.sh
skills/codexqa-code-reviewer/scripts/collect-adhoc-evidence.sh
skills/codexqa-code-reviewer/scripts/collect-fullrepo-evidence.sh
- Executable scriptline 1
#!/usr/bin/env bash - Network accessline 39
--out DIR Output directory (default: <repo>/.codexqa-review/<run-id>) --primary-lang LANG Override detected primary language (e.g. Go, Java, TypeScript) --symbol-limit N Max symbols to fetch (default: 100) - Network accessline 40
--primary-lang LANG Override detected primary language (e.g. Go, Java, TypeScript) --symbol-limit N Max symbols to fetch (default: 100) --hotspot-limit N Max untested hotspots to keep (default: 30) - Network accessline 41
--symbol-limit N Max symbols to fetch (default: 100) - Access to secretsline 286
[Credential-related source omitted] - Access to secretsline 287
[Credential-related source omitted] - Access to secretsline 318
[Credential-related source omitted] - Access to secretsline 319
[Credential-related source omitted] - Access to secretsline 320
[Credential-related source omitted]
skills/codexqa-code-reviewer/scripts/collect-pr-evidence.sh
- Executable scriptline 1
#!/usr/bin/env bash - Access to secretsline 180
[Credential-related source omitted] - Access to secretsline 181
[Credential-related source omitted] - Access to secretsline 239
[Credential-related source omitted] - Access to secretsline 240
[Credential-related source omitted] - Access to secretsline 241
[Credential-related source omitted]
skills/codexqa-code-reviewer/scripts/lib/_annotation_edges_body.py
- Executable scriptline 1
#!/usr/bin/env python3
skills/codexqa-code-reviewer/scripts/lib/_complexity_body.py
- Executable scriptline 1
Executable file
skills/codexqa-code-reviewer/scripts/lib/_dependencies_body.py
- Executable scriptline 1
#!/usr/bin/env python3
skills/codexqa-code-reviewer/scripts/lib/_det_rules.py
- Executable scriptline 1
#!/usr/bin/env python3
skills/codexqa-code-reviewer/scripts/lib/_identical_copies.py
- Executable scriptline 1
#!/usr/bin/env python3
skills/codexqa-code-reviewer/scripts/lib/_line_scan.py
- Executable scriptline 1
#!/usr/bin/env python3 - Network accessline 125
Stabilizes derive/risk-tier on repos that ship security/SAST scanners: pattern source containing ``password|secret|email|fetch(`` must not force T0 or - Network accessline 126
source containing ``password|secret|email|fetch(`` must not force T0 or
skills/codexqa-code-reviewer/scripts/lib/_performance_body.py
- Executable scriptline 1
#!/usr/bin/env python3
skills/codexqa-code-reviewer/scripts/lib/_privacy_body.py
- Executable scriptline 1
#!/usr/bin/env python3
skills/codexqa-code-reviewer/scripts/lib/_resilience_body.py
skills/codexqa-code-reviewer/scripts/lib/_risk_tier_body.py
- Executable scriptline 1
#!/usr/bin/env python3
skills/codexqa-code-reviewer/scripts/lib/_rollout_body.py
- Executable scriptline 1
#!/usr/bin/env python3
skills/codexqa-code-reviewer/scripts/lib/_rule_router.py
- Executable scriptline 1
#!/usr/bin/env python3
skills/codexqa-code-reviewer/scripts/lib/_sast_body.py
- Executable scriptline 1
#!/usr/bin/env python3 - Access to secretsline 210
[Credential-related source omitted] - Network accessline 820
"do_not_report": "The host is checked against an allowlist before the fetch.", "fix": "Allowlist the host before opening the connection.", "noncompliant": "fetch(request.getParameter(\"url\"))", - Network accessline 821
"fix": "Allowlist the host before opening the connection.", "noncompliant": "fetch(request.getParameter(\"url\"))", "compliant": "if allowlist.contains(host): fetch(url)", - Network accessline 822
"noncompliant": "fetch(request.getParameter(\"url\"))", - Network accessline 823
"compliant": "if allowlist.contains(host): fetch(url)",
skills/codexqa-code-reviewer/scripts/lib/_secondary_body.py
- Executable scriptline 1
#!/usr/bin/env python3
skills/codexqa-code-reviewer/scripts/lib/build-coverage-ledger.py
- Executable scriptline 1
#!/usr/bin/env python3
skills/codexqa-code-reviewer/scripts/lib/build-judgment-packet.py
- Executable scriptline 1
#!/usr/bin/env python3
skills/codexqa-code-reviewer/scripts/lib/build-review-digest.py
- Executable scriptline 1
#!/usr/bin/env python3
skills/codexqa-code-reviewer/scripts/lib/codexqa-preflight.sh
skills/codexqa-code-reviewer/scripts/lib/collect-trace.sh
- Executable scriptline 1
#!/usr/bin/env bash
skills/codexqa-code-reviewer/scripts/lib/collect-unit-calls.sh
- Executable scriptline 1
#!/usr/bin/env bash
skills/codexqa-code-reviewer/scripts/lib/derive-annotation-edges.sh
- Executable scriptline 1
#!/usr/bin/env bash
skills/codexqa-code-reviewer/scripts/lib/derive-complexity.sh
skills/codexqa-code-reviewer/scripts/lib/derive-contract.sh
skills/codexqa-code-reviewer/scripts/lib/derive-dependencies.sh
skills/codexqa-code-reviewer/scripts/lib/derive-design-fit.sh
skills/codexqa-code-reviewer/scripts/lib/derive-maintainability.sh
skills/codexqa-code-reviewer/scripts/lib/derive-observability.sh
skills/codexqa-code-reviewer/scripts/lib/derive-performance.sh
skills/codexqa-code-reviewer/scripts/lib/derive-privacy.sh
skills/codexqa-code-reviewer/scripts/lib/derive-resilience.sh
skills/codexqa-code-reviewer/scripts/lib/derive-risk-tier.sh
skills/codexqa-code-reviewer/scripts/lib/derive-rollout.sh
skills/codexqa-code-reviewer/scripts/lib/derive-sast.sh
- Executable scriptline 1
#!/usr/bin/env bash
skills/codexqa-code-reviewer/scripts/lib/derive_triage.py
- Executable scriptline 1
#!/usr/bin/env python3
skills/codexqa-code-reviewer/scripts/lib/index-diff-base.sh
- Executable scriptline 1
#!/usr/bin/env bash
skills/codexqa-code-reviewer/scripts/lib/install-sast-tools.sh
- Executable scriptline 1
#!/usr/bin/env bash - Dangerous shell operationline 112
eval "$@" - Network accessline 134
local repo="$1" asset_re="$2" inner="$3" dest_name="$4" local tag url tmp if ! command -v curl >/dev/null 2>&1 || ! command -v jq >/dev/null 2>&1; then - Network accessline 135
local tag url tmp if ! command -v curl >/dev/null 2>&1 || ! command -v jq >/dev/null 2>&1; then log "ERROR: curl and jq are required to download ${dest_name}" - Network accessline 136
if ! command -v curl >/dev/null 2>&1 || ! command -v jq >/dev/null 2>&1; then - Network accessline 137
log "ERROR: curl and jq are required to download ${dest_name}" - Network accessline 138
return 1 fi tag="$(curl -fsSL --max-time 20 "https://api.github.com/repos/${repo}/releases/latest" | jq -r '.tag_name // empty')" - Network accessline 139
fi tag="$(curl -fsSL --max-time 20 "https://api.github.com/repos/${repo}/releases/latest" | jq -r '.tag_name // empty')" url="$(curl -fsSL --max-time 20 "https://api.github.com/repos/${repo}/releases/latest" \ - Network accessline 140
tag="$(curl -fsSL --max-time 20 "https://api.github.com/repos/${repo}/releases/latest" | jq -r '.tag_name // empty')" - Network accessline 141
url="$(curl -fsSL --max-time 20 "https://api.github.com/repos/${repo}/releases/latest" \ - Network accessline 147
log "DOWNLOAD: ${url}" if [[ "$PRINT_ONLY" -eq 1 ]]; then printf 'curl -fsSL -L -o "$HOME/.local/bin/%s" %q && chmod +x "$HOME/.local/bin/%s"\n' \ - Network accessline 148
if [[ "$PRINT_ONLY" -eq 1 ]]; then printf 'curl -fsSL -L -o "$HOME/.local/bin/%s" %q && chmod +x "$HOME/.local/bin/%s"\n' \ "$dest_name" "$url" "$dest_name" - Network accessline 149
printf 'curl -fsSL -L -o "$HOME/.local/bin/%s" %q && chmod +x "$HOME/.local/bin/%s"\n' \ - Network accessline 153
mkdir -p "${HOME}/.local/bin" tmp="$(mktemp -d)" curl -fsSL --max-time 45 -L "$url" -o "$tmp/asset" - Network accessline 154
tmp="$(mktemp -d)" curl -fsSL --max-time 45 -L "$url" -o "$tmp/asset" local found="" - Network accessline 155
curl -fsSL --max-time 45 -L "$url" -o "$tmp/asset" - Dangerous shell operationline 165
rm -rf "$tmp" - Dangerous shell operationline 170
rm -rf "$tmp" - Network accessline 186
fi if [[ "$PRINT_ONLY" -eq 1 ]]; then printf 'curl -fsSL -L -o "$HOME/.local/bin/%s" <latest %s release matching %s> && chmod +x "$HOME/.local/bin/%s"\n' \ - Network accessline 187
if [[ "$PRINT_ONLY" -eq 1 ]]; then printf 'curl -fsSL -L -o "$HOME/.local/bin/%s" <latest %s release matching %s> && chmod +x "$HOME/.local/bin/%s"\n' \ "$bin" "$repo" "$asset_re" "$bin" - Network accessline 188
printf 'curl -fsSL -L -o "$HOME/.local/bin/%s" <latest %s release matching %s> && chmod +x "$HOME/.local/bin/%s"\n' \
skills/codexqa-code-reviewer/scripts/lib/merge-llm-findings.py
- Executable scriptline 1
#!/usr/bin/env python3
skills/codexqa-code-reviewer/scripts/lib/python_resolve.sh
- Executable scriptline 1
#!/usr/bin/env bash
skills/codexqa-code-reviewer/scripts/lib/sast-tool-path.sh
- Executable scriptline 1
Executable file
skills/codexqa-code-reviewer/scripts/lib/seal-conclusion.py
- Executable scriptline 1
#!/usr/bin/env python3
skills/codexqa-code-reviewer/scripts/lib/validate-conclusion.py
- Executable scriptline 1
#!/usr/bin/env python3
skills/codexqa-code-reviewer/scripts/render-review-html.sh
skills/codexqa-code-reviewer/scripts/resolve-pr-checkout.sh
- Executable scriptline 1
#!/usr/bin/env bash - Dangerous shell operationline 68
trap 'rm -f "$TRIED_FILE"' EXIT - Dangerous shell operationline 153
rm -f "$err" - Dangerous shell operationline 158
claim_attempt "${key} http/1.1" || { cat "$err" >&2; rm -f "$err"; return 1; } - Dangerous shell operationline 160
rm -f "$err" - Dangerous shell operationline 165
rm -f "$err" - Dangerous shell operationline 221
rm -rf "$dest"
skills/codexqa-code-reviewer/scripts/validate-evidence.sh
- Executable scriptline 1
#!/usr/bin/env bash
skills/codexqa-code-reviewer/scripts/validate-skill.sh
- Executable scriptline 1
#!/usr/bin/env bash - Dangerous shell operationline 209
trap 'rm -rf "$TMP"' EXIT - Dangerous shell operationline 568
rm -f "$SCENE_DIR/23-sast-signals.json" - Dangerous shell operationline 1590
rm -f "$DF_DIR/10-design-fit-signals.json" - Dangerous shell operationline 1613
rm -f "$CX_DIR/11-complexity-signals.json" "$CX_DIR/10-design-fit-signals.json" - Dangerous shell operationline 1616
rm -f "$CX_DIR/11-complexity-signals.json" - Dangerous shell operationline 1738
rm -f "$DEP_DIR/12-dependency-signals.json" \ - Dangerous shell operationline 1821
rm -f "$PV_DIR/13-privacy-signals.json" \ - Dangerous shell operationline 1885
rm -f "$RS_DIR/14-resilience-signals.json" \ - Network accessline 1919
void charge() { try { http.Get("https://pay.example/charge"); - Network accessline 1920
try { http.Get("https://pay.example/charge"); } catch (Exception e) { - Network accessline 1921
http.Get("https://pay.example/charge"); - Network accessline 1948
// unbounded retry loop (no max / sleep) for (const id of ids) { await retry(() => fetch("https://pay.example/charge/" + id)); - Network accessline 1949
for (const id of ids) { await retry(() => fetch("https://pay.example/charge/" + id)); } - Network accessline 1950
await retry(() => fetch("https://pay.example/charge/" + id)); - Network accessline 1951
} return Promise.all(ids.map((id) => fetch("https://pay.example/status/" + id))); } - Network accessline 1952
return Promise.all(ids.map((id) => fetch("https://pay.example/status/" + id))); - Network accessline 1976
package client import "net/http" func Get() { http.Get("https://example.com") } - Network accessline 1977
import "net/http" func Get() { http.Get("https://example.com") } EOF - Network accessline 1978
func Get() { http.Get("https://example.com") } - Network accessline 2023
void otherRemote() { RestTemplate rt = null; rt.getForObject("https://example.com", String.class); - Network accessline 2024
RestTemplate rt = null; rt.getForObject("https://example.com", String.class); } - Network accessline 2025
rt.getForObject("https://example.com", String.class); - Dangerous shell operationline 2173
rm -f "$RO_DIR/15-rollout-signals.json" \ - Dangerous shell operationline 2679
rm -f "$RT_DIR/20-risk-tier.json" - Dangerous shell operationline 2708
rm -f "$PF_DIR/21-performance-signals.json" \ - Network accessline 4057
blob = pickle.loads(request.body) digest = hashlib.md5(blob).hexdigest() return requests.get(request.args.get("url")) - Network accessline 4058
digest = hashlib.md5(blob).hexdigest() return requests.get(request.args.get("url")) EOF - Network accessline 4059
return requests.get(request.args.get("url")) - Dangerous shell operationline 4073
rm -rf "$SAST_FIX" - Dangerous shell operationline 4099
rm -rf "$SAST_MERGE" - Dangerous shell operationline 4159
rm -rf "$SAST_POL" - Dangerous shell operationline 4290
rm -rf "$DIGEST_FIX" - Dangerous shell operationline 4338
rm -rf "$SCOPE_FIX" - Dangerous shell operationline 4399
rm -rf "$RESOLVE_DIR" "$RESOLVE_BIN" - Dangerous shell operationline 4482
rm -rf "$STUB_DIR" - Dangerous shell operationline 4496
rm -rf "$NOMANIFEST" - Access to secretsline 4560
[Credential-related source omitted]
skills/codexqa-code-wiki/README.md
skills/codexqa-code-wiki/README.zh-CN.md
skills/codexqa-code-wiki/SKILL.md
- Network accessline 73
Useful flags: `brief --limit 8` (large repos), `brief --lang en`, `brief --skip-index` (index is fresh), `build --out FILE`, `build --source-url 'https://host/repo/blob/{commit}/{path}'` (file links - Network accessline 74
`brief --skip-index` (index is fresh), `build --out FILE`, `build --source-url 'https://host/repo/blob/{commit}/{path}'` (file links when the remote is not GitHub / GitLab / Gitee / Bitbucket). - Network accessline 75
`build --source-url 'https://host/repo/blob/{commit}/{path}'` (file links
skills/codexqa-code-wiki/assets/wiki.js
- Executable scriptline 1
Executable file
skills/codexqa-code-wiki/package.json
- Executable scriptline 1
Executable file
skills/codexqa-code-wiki/references/cli.md
- Network accessline 10
npm install -g @openqa-cn/codexqa --registry https://registry.npmjs.org/ - Network accessline 32
| Local path | `/path/to/repo` or `.` | Checkout already on disk; preferred for indexing and wiki | | Canonical id | `github.com/org/repo@main` | Reuse across commands after indexing; `@` is the branch | | Remote git URL | `https://github.c - Network accessline 34
| Remote git URL | `https://github.com/org/repo.git` | **Index only**: fetch that branch and parse it | - Network accessline 67
- `--inputs FILE` reads a saved `wiki inputs` export instead of calling `codexqa` (no `--limit`; export with it instead). - One work dir belongs to one repo. `brief` and `build` refuse a work dir written for another path; pass `--dir`. - To - Network accessline 68
- One work dir belongs to one repo. `brief` and `build` refuse a work dir written for another path; pass `--dir`. - Tokens in a remote URL (`https://user:token@host/…`) are stripped from every file and page the script writes. - `CODEXQA_BIN - Network accessline 69
- Tokens in a remote URL (`https://user:token@host/…`) are stripped from every file and page the script writes.
skills/codexqa-code-wiki/scripts/lib/layout.mjs
- Executable scriptline 1
Executable file - Network accessline 221
const marker = (id, cls) => `<marker id="${id}" viewBox="0 0 10 10" refX="8.5" refY="5" markerUnits="userSpaceOnUse" markerWidth="12" markerHeight="12" orient="auto-start-reverse"><path d="M0,1.5 L9,5 L0,8.5 z" class="${cls}"/></marker>`; - Network accessline 222
const defs = `<defs>${marker('wa', 'arrow')}${marker('wa-on', 'arrow on')}</defs>`; const svg = `<svg class="graph-svg" viewBox="0 0 ${width} ${height}" width="${width}" height="${height}" role="group" aria-label="${esc(t.graphLabel)}" xm - Network accessline 223
const svg = `<svg class="graph-svg" viewBox="0 0 ${width} ${height}" width="${width}" height="${height}" role="group" aria-label="${esc(t.graphLabel)}" xmlns="http://www.w3.org/2000/svg">`
skills/codexqa-code-wiki/scripts/lib/model.mjs
- Executable scriptline 1
Executable file
skills/codexqa-code-wiki/scripts/lib/notes.mjs
- Executable scriptline 1
Executable file
skills/codexqa-code-wiki/scripts/lib/render.mjs
- Executable scriptline 1
Executable file
skills/codexqa-code-wiki/scripts/lib/repo.mjs
- Executable scriptline 1
Executable file - Network accessline 25
// Tokens in clone URLs (`https://user:token@host/…`) never reach files or pages. - Network accessline 60
} path = path.replace(/\.git$/, '').replace(/\/+$/, ''); const base = `https://${host}/${path}`; - Network accessline 61
path = path.replace(/\.git$/, '').replace(/\/+$/, ''); const base = `https://${host}/${path}`; const enc = (p) => p.split('/').map(encodeURIComponent).join('/'); - Network accessline 62
const base = `https://${host}/${path}`; - Network accessline 107
// github.com/org/name@branch, https://host/org/name.git, git@host:org/name.git
skills/codexqa-code-wiki/scripts/lib/strings.mjs
- Executable scriptline 1
Executable file
skills/codexqa-code-wiki/scripts/lib/text.mjs
- Executable scriptline 1
Executable file
skills/codexqa-code-wiki/scripts/wiki.mjs
- Executable scriptline 1
#!/usr/bin/env node - Network accessline 68
}); if ((r.error && r.error.code === 'ENOENT') || (win && r.status === 1 && /not recognized/i.test(r.stderr || ''))) { throw new UsageError(`\`${bin}\` not found. Install it with: npm install -g @openqa-cn/codexqa --registry https://r - Network accessline 69
if ((r.error && r.error.code === 'ENOENT') || (win && r.status === 1 && /not recognized/i.test(r.stderr || ''))) { throw new UsageError(`\`${bin}\` not found. Install it with: npm install -g @openqa-cn/codexqa --registry https://registr - Network accessline 70
throw new UsageError(`\`${bin}\` not found. Install it with: npm install -g @openqa-cn/codexqa --registry https://registry.npmjs.org/ (or set CODEXQA_BIN)`); - Network accessline 301
const tpl = opts['source-url']; if (tpl && (!/^https?:\/\//i.test(tpl) || !tpl.includes('{path}'))) { throw new UsageError('--source-url must be an http(s) URL containing {path}, e.g. https://host/repo/blob/{commit}/{path}'); - Network accessline 302
if (tpl && (!/^https?:\/\//i.test(tpl) || !tpl.includes('{path}'))) { throw new UsageError('--source-url must be an http(s) URL containing {path}, e.g. https://host/repo/blob/{commit}/{path}'); } - Network accessline 303
throw new UsageError('--source-url must be an http(s) URL containing {path}, e.g. https://host/repo/blob/{commit}/{path}');
skills/codexqa-code-wiki/tests/cli.test.mjs
- Executable scriptline 1
Executable file - Network accessline 106
assert.equal(ok.code, 0, ok.err); assert.match(ok.out, /notes\.json OK/); const final = run(['build', cwd, '--dir', 'w', '--out', 'out/final.html', '--source-url', 'https://code.example.com/r/blob/{commit}/{path}'], { cwd }); - Network accessline 107
assert.match(ok.out, /notes\.json OK/); const final = run(['build', cwd, '--dir', 'w', '--out', 'out/final.html', '--source-url', 'https://code.example.com/r/blob/{commit}/{path}'], { cwd }); assert.equal(final.code, 0, final.err); - Network accessline 108
const final = run(['build', cwd, '--dir', 'w', '--out', 'out/final.html', '--source-url', 'https://code.example.com/r/blob/{commit}/{path}'], { cwd }); - Network accessline 160
const cwd = sandbox(t); const bin = fakeCli(cwd); const url = 'https://user:ghp_SECRET@github.com/org/myrepo.git'; - Network accessline 161
const bin = fakeCli(cwd); const url = 'https://user:ghp_SECRET@github.com/org/myrepo.git'; const b = run(['brief', url], { cwd, bin }); - Network accessline 162
const url = 'https://user:ghp_SECRET@github.com/org/myrepo.git'; - Network accessline 180
const r = run(['build', cwd, '--dir', 'w', '--draft', '--out', 'x.html', '--source-url=https://h.example/r/{path}?a=b=c'], { cwd }); - Network accessline 181
assert.equal(r.code, 0, r.err); assert.match(readFileSync(join(cwd, 'x.html'), 'utf8'), /href="https:\/\/h\.example\/r\/[^"]+\?a=b=c"/); run(['build', cwd, '--dir', 'w', '--draft', '--out', 'y.html', '--source-url=https://h.example/{com - Network accessline 182
assert.match(readFileSync(join(cwd, 'x.html'), 'utf8'), /href="https:\/\/h\.example\/r\/[^"]+\?a=b=c"/); run(['build', cwd, '--dir', 'w', '--draft', '--out', 'y.html', '--source-url=https://h.example/{commit}/{path}'], { cwd }); assert. - Network accessline 183
run(['build', cwd, '--dir', 'w', '--draft', '--out', 'y.html', '--source-url=https://h.example/{commit}/{path}'], { cwd });
skills/codexqa-code-wiki/tests/fixtures/codexqa/meta.json
- Network accessline 8
"commitDate": "2026-09-28T18:11:08+08:00", "dirty": false, "remote": "https://github.com/openqa-cn/codexqa", - Network accessline 9
"dirty": false, "remote": "https://github.com/openqa-cn/codexqa", "generatedAt": "2026-09-28 18:30", - Network accessline 10
"remote": "https://github.com/openqa-cn/codexqa",
skills/codexqa-code-wiki/tests/helpers.mjs
- Executable scriptline 1
Executable file
skills/codexqa-code-wiki/tests/model.test.mjs
- Executable scriptline 1
Executable file
skills/codexqa-code-wiki/tests/notes.test.mjs
- Executable scriptline 1
Executable file
skills/codexqa-code-wiki/tests/render.test.mjs
- Executable scriptline 1
Executable file - Network accessline 61
assert.ok(textWidth(fit('一二三四五六七八九十', 5)) <= 5); assert.equal(fit('short', 20), 'short'); assert.equal(safeUrl('https://github.com/a/b'), 'https://github.com/a/b'); - Network accessline 62
assert.equal(fit('short', 20), 'short'); assert.equal(safeUrl('https://github.com/a/b'), 'https://github.com/a/b'); for (const bad of ['javascript:alert(1)', 'JAVASCRIPT:x', 'data:text/html,x', '//evil', 'https://a b', '', null]) { - Network accessline 63
assert.equal(safeUrl('https://github.com/a/b'), 'https://github.com/a/b'); - Network accessline 64
for (const bad of ['javascript:alert(1)', 'JAVASCRIPT:x', 'data:text/html,x', '//evil', 'https://a b', '', null]) { - Network accessline 143
modules: CHAIN.modules.map((m) => (m.id === 'p03' ? { ...m, files: ['src/db.ts', 'pkg/util', 'pkg/found'] } : m)), }); const repo = { fileUrl: (p) => `https://h.example/blob/main/${p}`, resolveFile: (p) => (p === 'pkg/found' ? 'pkg/foun - Network accessline 144
}); const repo = { fileUrl: (p) => `https://h.example/blob/main/${p}`, resolveFile: (p) => (p === 'pkg/found' ? 'pkg/found.py' : p) }; const { html } = render(inputs, null, { draft: true, repo }); - Network accessline 145
const repo = { fileUrl: (p) => `https://h.example/blob/main/${p}`, resolveFile: (p) => (p === 'pkg/found' ? 'pkg/found.py' : p) };
skills/codexqa-defect-analyzer/HOW_IT_WORKS.md
- Network accessline 53
| Skill | Difference | |---|---| | [`codexqa-code-reviewer`](https://github.com/openqa-cn/codexqa/blob/main/skills/codexqa-code-reviewer/README.md) | CodexQA evidence pack + heuristic dims + Agent LLM judgment (dedupe) → bilingual `REVIEW-R - Network accessline 54
|---|---| | [`codexqa-code-reviewer`](https://github.com/openqa-cn/codexqa/blob/main/skills/codexqa-code-reviewer/README.md) | CodexQA evidence pack + heuristic dims + Agent LLM judgment (dedupe) → bilingual `REVIEW-REPORT.html` — no `repor - Network accessline 55
| [`codexqa-code-reviewer`](https://github.com/openqa-cn/codexqa/blob/main/skills/codexqa-code-reviewer/README.md) | CodexQA evidence pack + heuristic dims + Agent LLM judgment (dedupe) → bilingual `REVIEW-REPORT.html` — no `report_scan` pi - Network accessline 56
| [`codexqa-code-analyzer`](https://github.com/openqa-cn/codexqa/blob/main/skills/codexqa-code-analyzer/README.md) | Structure/impact from the same CodexQA graph — not a finding severity report | - Network accessline 57
| [`codexqa-rootcause-analyzer`](https://github.com/openqa-cn/codexqa/blob/main/skills/codexqa-rootcause-analyzer/README.md) | Exception RCA on top of CLI facts — not incremental/full code-risk scan |
skills/codexqa-defect-analyzer/HOW_IT_WORKS.zh-CN.md
- Network accessline 53
| Skill | 差异 | |---|---| | [`codexqa-code-reviewer`](https://github.com/openqa-cn/codexqa/blob/main/skills/codexqa-code-reviewer/README.zh-CN.md) | CodexQA 证据包 + 启发式维度 + Agent LLM judgment(去重)→ 双语 `REVIEW-REPORT.html` — 无 `report_scan` 流水线 - Network accessline 54
|---|---| | [`codexqa-code-reviewer`](https://github.com/openqa-cn/codexqa/blob/main/skills/codexqa-code-reviewer/README.zh-CN.md) | CodexQA 证据包 + 启发式维度 + Agent LLM judgment(去重)→ 双语 `REVIEW-REPORT.html` — 无 `report_scan` 流水线 | | [`codexqa-c - Network accessline 55
| [`codexqa-code-reviewer`](https://github.com/openqa-cn/codexqa/blob/main/skills/codexqa-code-reviewer/README.zh-CN.md) | CodexQA 证据包 + 启发式维度 + Agent LLM judgment(去重)→ 双语 `REVIEW-REPORT.html` — 无 `report_scan` 流水线 | - Network accessline 56
| [`codexqa-code-analyzer`](https://github.com/openqa-cn/codexqa/blob/main/skills/codexqa-code-analyzer/README.zh-CN.md) | 同一 CodexQA 图上的结构/影响面 — 不是按严重级别排序的发现报告 | - Network accessline 57
| [`codexqa-rootcause-analyzer`](https://github.com/openqa-cn/codexqa/blob/main/skills/codexqa-rootcause-analyzer/README.zh-CN.md) | 在 CLI 事实之上做异常根因 — 不是增量/全量代码风险扫描 |
skills/codexqa-defect-analyzer/README.md
- Network accessline 7
It is **not** [`codexqa-code-reviewer`](https://github.com/openqa-cn/codexqa/blob/main/skills/codexqa-code-reviewer/README.md) (CodexQA evidence-pack HTML review), **not** [`codexqa-code-analyzer`](https://github.com/openqa-cn/codexqa/blob/ - Network accessline 12
- `git` on `PATH` for repository incremental/full scans - `@openqa-cn/codexqa` CLI on PATH for live graph analysis (repo scans hard-fail without it unless mock is allowed): `npm install -g @openqa-cn/codexqa --registry https://registry.np - Network accessline 13
- `@openqa-cn/codexqa` CLI on PATH for live graph analysis (repo scans hard-fail without it unless mock is allowed): `npm install -g @openqa-cn/codexqa --registry https://registry.npmjs.org/` - Optional scanners: Semgrep, Bandit, gosec, g - Network accessline 14
`npm install -g @openqa-cn/codexqa --registry https://registry.npmjs.org/` - Network accessline 26
See the [installation guide](https://github.com/openqa-cn/codexqa/blob/main/docs/GETTING_STARTED.md), [support matrix](https://github.com/openqa-cn/codexqa/blob/main/docs/SUPPORT_MATRIX.md), and [FAQ](https://github.com/openqa-cn/codexqa/bl
skills/codexqa-defect-analyzer/README.zh-CN.md
- Network accessline 7
**不是** [`codexqa-code-reviewer`](https://github.com/openqa-cn/codexqa/blob/main/skills/codexqa-code-reviewer/README.zh-CN.md)(CodexQA 证据包 HTML 评审),**不是** [`codexqa-code-analyzer`](https://github.com/openqa-cn/codexqa/blob/main/skills/codexq - Network accessline 12
- 仓库增量/全量扫描需要 `git` 在 `PATH` 上 - 实图分析需要 `PATH` 上有 `@openqa-cn/codexqa` CLI(未允许 mock 时仓库扫描硬失败): `npm install -g @openqa-cn/codexqa --registry https://registry.npmjs.org/` - Network accessline 13
- 实图分析需要 `PATH` 上有 `@openqa-cn/codexqa` CLI(未允许 mock 时仓库扫描硬失败): `npm install -g @openqa-cn/codexqa --registry https://registry.npmjs.org/` - 可选扫描器:Semgrep、Bandit、gosec、gitleaks、ruff / eslint / golangci-lint、osv-scanner(`bash scripts/insta - Network accessline 14
`npm install -g @openqa-cn/codexqa --registry https://registry.npmjs.org/` - Network accessline 26
见[安装指南](https://github.com/openqa-cn/codexqa/blob/main/docs/GETTING_STARTED.zh-CN.md)、[支持矩阵](https://github.com/openqa-cn/codexqa/blob/main/docs/SUPPORT_MATRIX.zh-CN.md)和 [FAQ](https://github.com/openqa-cn/codexqa/blob/main/docs/FAQ.zh-CN.m
skills/codexqa-defect-analyzer/SKILL.md
skills/codexqa-defect-analyzer/assets/report-chrome.js
- Executable scriptline 1
Executable file
skills/codexqa-defect-analyzer/evals/fixtures/auth_bypass.py
skills/codexqa-defect-analyzer/evals/fixtures/race_order.py
- Executable scriptline 1
Executable file
skills/codexqa-defect-analyzer/package.json
- Executable scriptline 1
Executable file
skills/codexqa-defect-analyzer/prompts/review_filter.md
- Network accessline 20
Example demote ambiguous SAST residue (localhost HTTP mock graded P3): Input: ambiguous Semgrep P1 at verify_foo.ts:40 "Unencrypted request over HTTP" Output: {"findings":[{"file":"verify_foo.ts","line":40,"category":"security","severity":" - Network accessline 22
Output: {"findings":[{"file":"verify_foo.ts","line":40,"category":"security","severity":"P3","rule_id":"SEC-001","title":"loopback mock health probe (not production TLS)","evidence":"fetch http://127.0.0.1 for local mock only","suggestion":
skills/codexqa-defect-analyzer/references/category_rules.md
- Dangerous shell operationline 32
- Auto-promoted dismissed pattern: `eval() executes dynamic input — RCE risk` (dismissed ≥3×)
skills/codexqa-defect-analyzer/references/ci-advisory-workflow.yml
- Network accessline 32
- name: Install CodexQA CLI run: | npm install -g @openqa-cn/codexqa --registry https://registry.npmjs.org/ || true - Network accessline 33
run: | npm install -g @openqa-cn/codexqa --registry https://registry.npmjs.org/ || true echo "PATH=$(npm prefix -g)/bin:$HOME/.local/bin:$HOME/go/bin:$PATH" >> "$GITHUB_ENV" - Network accessline 34
npm install -g @openqa-cn/codexqa --registry https://registry.npmjs.org/ || true
skills/codexqa-defect-analyzer/references/codexqa-cli.md
- Network accessline 28
bash scripts/install_codexqa.sh # or: npm install -g @openqa-cn/codexqa --registry https://registry.npmjs.org/ - Network accessline 29
# or: npm install -g @openqa-cn/codexqa --registry https://registry.npmjs.org/ export PATH="$(npm prefix -g)/bin:$PATH" - Network accessline 30
npm install -g @openqa-cn/codexqa --registry https://registry.npmjs.org/
skills/codexqa-defect-analyzer/references/llm-api.md
skills/codexqa-defect-analyzer/references/output_schema.json
skills/codexqa-defect-analyzer/references/policies/SEC-001.yaml
- Dangerous shell operationline 26
return eval(user_expr)
skills/codexqa-defect-analyzer/references/scope_policy.yaml
- Network accessline 4
# - SonarQube analysis scope: sonar.sources / sonar.inclusions / sonar.exclusions # only REDUCE analyzable set; separate main vs test scope. # https://docs.sonarsource.com/sonarqube-server/latest/project-administration/analysis-sc - Network accessline 5
# only REDUCE analyzable set; separate main vs test scope. # https://docs.sonarsource.com/sonarqube-server/latest/project-administration/analysis-scope/ # - Semgrep monorepo: --include / --subdir to scan application modules only. - Network accessline 6
# https://docs.sonarsource.com/sonarqube-server/latest/project-administration/analysis-scope/ - Network accessline 7
# - Semgrep monorepo: --include / --subdir to scan application modules only. # https://semgrep.dev/docs/kb/semgrep-ci/scan-monorepo-in-parts # - GitHub CodeQL: paths / paths-ignore for first-party application source; - Network accessline 8
# https://semgrep.dev/docs/kb/semgrep-ci/scan-monorepo-in-parts - Network accessline 9
# - GitHub CodeQL: paths / paths-ignore for first-party application source; # exclude tests, vendor, generated, node_modules. # https://docs.github.com/en/code-security/code-scanning/creating-an-advanced-setup-for-code-scanning/cu - Network accessline 10
# exclude tests, vendor, generated, node_modules. # https://docs.github.com/en/code-security/code-scanning/creating-an-advanced-setup-for-code-scanning/customizing-your-advanced-setup-for-code-scanning # - Sonatype reachability: - - Network accessline 11
# https://docs.github.com/en/code-security/code-scanning/creating-an-advanced-setup-for-code-scanning/customizing-your-advanced-setup-for-code-scanning - Network accessline 12
# - Sonatype reachability: --reachability-js-sources (app) vs # --reachability-js-excludes (tests, node_modules). # https://help.sonatype.com/en/reachability-analysis-cli.html - Network accessline 13
# --reachability-js-excludes (tests, node_modules). # https://help.sonatype.com/en/reachability-analysis-cli.html # - Polyglot project roots: deepest manifest root owns files (Cascade / projectdetect). - Network accessline 14
# https://help.sonatype.com/en/reachability-analysis-cli.html
skills/codexqa-defect-analyzer/scripts/agent_llm.py
skills/codexqa-defect-analyzer/scripts/audit_policy_fixtures.py
- Executable scriptline 1
#!/usr/bin/env python3
skills/codexqa-defect-analyzer/scripts/choose_scenario.py
- Executable scriptline 1
#!/usr/bin/env python3
skills/codexqa-defect-analyzer/scripts/codexqa_client.py
- Executable scriptline 1
#!/usr/bin/env python3 - Network accessline 25
Install: bash scripts/install_codexqa.sh # or: npm install -g @openqa-cn/codexqa@latest --registry https://registry.npmjs.org/ - Network accessline 27
# or: npm install -g @openqa-cn/codexqa@latest --registry https://registry.npmjs.org/ - Access to secretsline 47
[Credential-related source omitted] - Access to secretsline 86
[Credential-related source omitted] - Access to secretsline 165
[Credential-related source omitted] - Access to secretsline 307
[Credential-related source omitted] - Network accessline 533
'codexqa CLI not found. Install via:\n' ' bash scripts/install_codexqa.sh\n' ' # or: npm install -g @openqa-cn/codexqa@latest --registry https://registry.npmjs.org/\n' - Network accessline 534
' bash scripts/install_codexqa.sh\n' ' # or: npm install -g @openqa-cn/codexqa@latest --registry https://registry.npmjs.org/\n' 'Or set CODEXQA_FORCE_MOCK=1 to verify upper layers with mocked graph JSON.\n' - Network accessline 535
' # or: npm install -g @openqa-cn/codexqa@latest --registry https://registry.npmjs.org/\n' - Network accessline 539
r = subprocess.run( ['npm', 'install', '-g', '@openqa-cn/codexqa@latest', '--registry', 'https://registry.npmjs.org/'], - Network accessline 540
['npm', 'install', '-g', '@openqa-cn/codexqa@latest', '--registry', 'https://registry.npmjs.org/'], capture_output=True, text=True) - Network accessline 541
'--registry', 'https://registry.npmjs.org/'],
skills/codexqa-defect-analyzer/scripts/collect_full.py
- Executable scriptline 1
#!/usr/bin/env python3
skills/codexqa-defect-analyzer/scripts/collect_incremental.py
- Executable scriptline 1
#!/usr/bin/env python3
skills/codexqa-defect-analyzer/scripts/context_builder.py
- Executable scriptline 1
#!/usr/bin/env python3
skills/codexqa-defect-analyzer/scripts/dd-python
- Executable scriptline 1
#!/usr/bin/env bash
skills/codexqa-defect-analyzer/scripts/ensure_tools.py
- Executable scriptline 1
#!/usr/bin/env python3 - Network accessline 57
'golangci-lint': [ 'brew install golangci-lint', 'curl -sSfL https://raw.githubusercontent.com/golangci/golangci-lint/master/install.sh | sh -s -- -b "$HOME/.local/bin"', - Network accessline 58
'brew install golangci-lint', 'curl -sSfL https://raw.githubusercontent.com/golangci/golangci-lint/master/install.sh | sh -s -- -b "$HOME/.local/bin"', ], - Dangerous shell operationline 59
'curl -sSfL https://raw.githubusercontent.com/golangci/golangci-lint/master/install.sh | sh -s -- -b "$HOME/.local/bin"', - Network accessline 59
'curl -sSfL https://raw.githubusercontent.com/golangci/golangci-lint/master/install.sh | sh -s -- -b "$HOME/.local/bin"', - Access to secretsline 100
[Credential-related source omitted] - Access to secretsline 123
[Credential-related source omitted] - Access to secretsline 124
[Credential-related source omitted]
skills/codexqa-defect-analyzer/scripts/feedback.py
- Executable scriptline 1
#!/usr/bin/env python3
skills/codexqa-defect-analyzer/scripts/html_chrome.py
- Executable scriptline 1
Executable file
skills/codexqa-defect-analyzer/scripts/ingest_adhoc.py
- Executable scriptline 1
#!/usr/bin/env python3
skills/codexqa-defect-analyzer/scripts/install_codexqa.sh
- Executable scriptline 1
#!/usr/bin/env bash - Network accessline 5
REGISTRY="https://registry.npmjs.org/" - Network accessline 20
echo "Installing @openqa-cn/codexqa@latest …" npm install -g @openqa-cn/codexqa@latest --registry "$REGISTRY" - Network accessline 21
npm install -g @openqa-cn/codexqa@latest --registry "$REGISTRY" - Network accessline 30
if [[ -n "$PLATFORM_PKG" ]]; then echo "Installing latest platform binary ${PLATFORM_PKG} …" npm install -g "${PLATFORM_PKG}@latest" --registry "$REGISTRY" - Network accessline 31
echo "Installing latest platform binary ${PLATFORM_PKG} …" npm install -g "${PLATFORM_PKG}@latest" --registry "$REGISTRY" fi - Network accessline 32
npm install -g "${PLATFORM_PKG}@latest" --registry "$REGISTRY"
skills/codexqa-defect-analyzer/scripts/install_sast_tools.sh
- Executable scriptline 1
#!/usr/bin/env bash - Network accessline 126
brew install golangci-lint else curl -sSfL https://raw.githubusercontent.com/golangci/golangci-lint/master/install.sh \ - Network accessline 127
else curl -sSfL https://raw.githubusercontent.com/golangci/golangci-lint/master/install.sh \ | sh -s -- -b "${HOME}/.local/bin" - Dangerous shell operationline 128
curl -sSfL https://raw.githubusercontent.com/golangci/golangci-lint/master/install.sh | sh -s -- -b "${HOME}/.local/bin" - Network accessline 128
curl -sSfL https://raw.githubusercontent.com/golangci/golangci-lint/master/install.sh \
skills/codexqa-defect-analyzer/scripts/lib.py
skills/codexqa-defect-analyzer/scripts/llm_client.py
- Executable scriptline 1
#!/usr/bin/env python3 - Access to secretsline 11
[Credential-related source omitted] - Access to secretsline 12
[Credential-related source omitted] - Access to secretsline 13
[Credential-related source omitted] - Access to secretsline 14
[Credential-related source omitted] - Network accessline 21
if self.dry_run: return mock_review(prompt) req = urllib.request.Request( - Network accessline 22
return mock_review(prompt) req = urllib.request.Request( self.base + '/v1/chat/completions', - Network accessline 23
req = urllib.request.Request( - Network accessline 28
[Credential-related source omitted] - Network accessline 29
[Credential-related source omitted] - Network accessline 30
with urllib.request.urlopen(req, timeout=180) as resp: - Access to secretsline 56
[Credential-related source omitted]
skills/codexqa-defect-analyzer/scripts/merge_report.py
- Executable scriptline 1
#!/usr/bin/env python3
skills/codexqa-defect-analyzer/scripts/policy_loader.py
- Executable scriptline 1
#!/usr/bin/env python3
skills/codexqa-defect-analyzer/scripts/python_resolve.sh
- Executable scriptline 1
#!/usr/bin/env bash
skills/codexqa-defect-analyzer/scripts/rag_context.py
- Executable scriptline 1
#!/usr/bin/env python3
skills/codexqa-defect-analyzer/scripts/route_model.py
- Executable scriptline 1
#!/usr/bin/env python3
skills/codexqa-defect-analyzer/scripts/run_scan.py
- Executable scriptline 1
#!/usr/bin/env python3 - Access to secretsline 5
[Credential-related source omitted] - Access to secretsline 231
[Credential-related source omitted] - Access to secretsline 234
[Credential-related source omitted] - Access to secretsline 719
[Credential-related source omitted] - Access to secretsline 842
[Credential-related source omitted] - Access to secretsline 848
[Credential-related source omitted] - Access to secretsline 849
[Credential-related source omitted] - Access to secretsline 851
[Credential-related source omitted]
skills/codexqa-defect-analyzer/scripts/run_tests.sh
- Executable scriptline 1
#!/usr/bin/env bash
skills/codexqa-defect-analyzer/scripts/sast_adapters.py
- Executable scriptline 1
#!/usr/bin/env python3 - Access to secretsline 56
[Credential-related source omitted] - Access to secretsline 57
[Credential-related source omitted] - Network accessline 526
'package': {'name': pkg_name, 'ecosystem': 'Maven', 'version': ver}, }).encode('utf-8') req = urllib.request.Request( - Network accessline 527
}).encode('utf-8') req = urllib.request.Request( 'https://api.osv.dev/v1/query', - Network accessline 528
req = urllib.request.Request( - Network accessline 529
'https://api.osv.dev/v1/query', - Network accessline 533
) try: with urllib.request.urlopen(req, timeout=20) as resp: - Network accessline 534
try: with urllib.request.urlopen(req, timeout=20) as resp: data = json.loads(resp.read().decode('utf-8')) - Network accessline 535
with urllib.request.urlopen(req, timeout=20) as resp:
skills/codexqa-defect-analyzer/scripts/scope_planner.py
- Executable scriptline 1
#!/usr/bin/env python3
skills/codexqa-defect-analyzer/scripts/test_pipeline_fixes.py
- Executable scriptline 1
#!/usr/bin/env python3 - Access to secretsline 109
[Credential-related source omitted] - Access to secretsline 132
[Credential-related source omitted] - Network accessline 530
'ambiguous': True}] llm = [{'file': 'scripts/_verify.ts', 'line': 40, 'category': 'security', 'severity': 'P3', 'title': 'loopback mock health probe', 'evidence': 'http://127.0.0.1 mock only', - Network accessline 531
llm = [{'file': 'scripts/_verify.ts', 'line': 40, 'category': 'security', 'severity': 'P3', 'title': 'loopback mock health probe', 'evidence': 'http://127.0.0.1 mock only', 'suggestion': 'allowlist loopback', 'confid - Network accessline 532
'title': 'loopback mock health probe', 'evidence': 'http://127.0.0.1 mock only',
skills/codexqa-jev-browser/.env.example
- Access to secretsline 6
[Credential-related source omitted] - Network accessline 7
[Credential-related source omitted] - Access to secretsline 7
[Credential-related source omitted] - Network accessline 8
TYPESAFE_MODEL=jev-latest TYPESAFE_BASE_URL=https://api.typesafe.ai/v1 # Task plan before the browser opens. Also the decision when TYPESAFE_API_KEY is unset. - Network accessline 9
TYPESAFE_BASE_URL=https://api.typesafe.ai/v1 - Network accessline 10
[Credential-related source omitted] - Access to secretsline 10
[Credential-related source omitted] - Network accessline 11
[Credential-related source omitted] - Access to secretsline 11
[Credential-related source omitted] - Network accessline 12
OPENAI_BASE_URL=https://api.openai.com/v1 - Network accessline 14
TEXT_MODEL=gpt-4o-mini # Optional. Used only when set. The CLI does not probe local proxy ports. # HTTPS_PROXY=http://127.0.0.1:7897 - Network accessline 15
# Optional. Used only when set. The CLI does not probe local proxy ports. # HTTPS_PROXY=http://127.0.0.1:7897 # - Network accessline 16
# HTTPS_PROXY=http://127.0.0.1:7897 - Network accessline 17
# # Optional Cloak browser. No default mirror is included. # CLOAKBROWSER_DOWNLOAD_URL=https://example.com/cloakbrowser - Network accessline 18
# Optional Cloak browser. No default mirror is included. # CLOAKBROWSER_DOWNLOAD_URL=https://example.com/cloakbrowser # CLOAKBROWSER_SHA256= - Network accessline 19
# CLOAKBROWSER_DOWNLOAD_URL=https://example.com/cloakbrowser
skills/codexqa-jev-browser/.gitignore
- Access to secretsline 4
[Credential-related source omitted]
skills/codexqa-jev-browser/KNOWN_LIMITATIONS.md
- Access to secretsline 9
[Credential-related source omitted]
skills/codexqa-jev-browser/KNOWN_LIMITATIONS.zh-CN.md
- Access to secretsline 9
[Credential-related source omitted]
skills/codexqa-jev-browser/README.md
- Network accessline 5
**Jev Browser** is one skill in [CodexQA](https://github.com/openqa-cn/codexqa): local Agent Skills that check whether code is actually good after it is written. This repository is the standalone project. The same skill is also installed fr - Network accessline 13
On TypeSafe’s published System One comparison, a Jev decision is **40×–200× faster** than a frontier LLM on the same kind of question (70–500 ms, against multi-second LLM calls). Their workflow demo is **193.6× faster** and **444.6× cheaper - Access to secretsline 33
[Credential-related source omitted] - Network accessline 48
<p align="center"><a href="https://htmlpreview.github.io/?https://github.com/openqa-cn/codexqa/blob/main/docs/assets/previews/jev-report.html"><img src="docs/jev-report.png" alt="Jev Browser HTML execution report" width="640"></a></p> - Access to secretsline 54
[Credential-related source omitted] - Network accessline 67
[Credential-related source omitted] - Access to secretsline 67
[Credential-related source omitted] - Network accessline 69
TYPESAFE_BASE_URL=https://api.typesafe.ai/v1 - Network accessline 71
[Credential-related source omitted] - Access to secretsline 71
[Credential-related source omitted] - Network accessline 72
[Credential-related source omitted] - Access to secretsline 72
[Credential-related source omitted] - Network accessline 73
OPENAI_BASE_URL=https://api.openai.com/v1 - Access to secretsline 80
[Credential-related source omitted] - Access to secretsline 81
[Credential-related source omitted] - Access to secretsline 84
[Credential-related source omitted] - Network accessline 90
npx codexqa-jev-browser run cases/examples/search-docs.yaml cases/examples/login.yaml npx codexqa-jev-browser run cases/examples/search-docs.md npx codexqa-jev-browser run --from-api https://qa.example.com/cases - Network accessline 91
npx codexqa-jev-browser run cases/examples/search-docs.md npx codexqa-jev-browser run --from-api https://qa.example.com/cases npx codexqa-jev-browser auto --url examples/app/index.html --goal '搜索 Pilot 并打开文档' \ - Network accessline 92
npx codexqa-jev-browser run --from-api https://qa.example.com/cases - Network accessline 124
Browser replay is the UI step. The rest of the check lives in [CodexQA](https://github.com/openqa-cn/codexqa): requirements, cases, test data, blast radius, defect scans, and a review page you can open. Install the catalog, or only this ski - Network accessline 135
| Skill | What you get | | --- | --- | | [codexqa-skill-router](https://github.com/openqa-cn/codexqa/tree/main/skills/codexqa-skill-router) | Picks the matching skill and installs it if it is missing. | - Network accessline 136
| --- | --- | | [codexqa-skill-router](https://github.com/openqa-cn/codexqa/tree/main/skills/codexqa-skill-router) | Picks the matching skill and installs it if it is missing. | | [codexqa-requirement-analyzer](https://github.com/openqa-cn/ - Network accessline 137
| [codexqa-skill-router](https://github.com/openqa-cn/codexqa/tree/main/skills/codexqa-skill-router) | Picks the matching skill and installs it if it is missing. | - Network accessline 138
| [codexqa-requirement-analyzer](https://github.com/openqa-cn/codexqa/tree/main/skills/codexqa-requirement-analyzer) | A P0/P1 register of gaps and conflicts in a PRD, before code is written. | - Network accessline 139
| [codexqa-testcase-generator](https://github.com/openqa-cn/codexqa/tree/main/skills/codexqa-testcase-generator) | A local test plan and cases for Web, server, and APP. Unknowns stay TBD. | - Network accessline 140
| [codexqa-testdata-generator](https://github.com/openqa-cn/codexqa/tree/main/skills/codexqa-testdata-generator) | Backend data, with the returned business IDs written into case preconditions. | - Network accessline 141
| [codexqa-code-wiki](https://github.com/openqa-cn/codexqa/tree/main/skills/codexqa-code-wiki) | An architecture graph: modules, real dependencies, the hub, and where to start reading. | - Network accessline 142
| [codexqa-code-analyzer](https://github.com/openqa-cn/codexqa/tree/main/skills/codexqa-code-analyzer) | Blast radius: which APIs, methods, and call chains a change hits, and which edges have no tests. | - Network accessline 143
| [codexqa-rootcause-analyzer](https://github.com/openqa-cn/codexqa/tree/main/skills/codexqa-rootcause-analyzer) | A gated RCA that separates the throw site from the root cause. | - Network accessline 144
| [codexqa-defect-analyzer](https://github.com/openqa-cn/codexqa/tree/main/skills/codexqa-defect-analyzer) | A P0–P3 HTML scan of bugs, secrets, and dangerous patterns. | - Network accessline 145
| [codexqa-code-reviewer](https://github.com/openqa-cn/codexqa/tree/main/skills/codexqa-code-reviewer) | A bilingual `REVIEW-REPORT.html` a reviewer can open before merge. |
skills/codexqa-jev-browser/README.zh-CN.md
- Network accessline 5
**Jev Browser** 是 [CodexQA](https://github.com/openqa-cn/codexqa) 里的一个技能。CodexQA 是一组本地 Agent Skill,用来在代码写完之后检查它到底好不好。本仓库是独立项目,同一技能也可以从 CodexQA 目录安装。 - Network accessline 13
按 TypeSafe 公布的 System One 对比,同一种决策上 Jev 比前沿大模型快 **40–200 倍**(70–500 毫秒,对方是数秒到数百秒)。他们的工作流演示是快 **193.6 倍**、便宜 **444.6 倍**:0.114 秒、0.000081 美元,对比 8.566 秒、0.013880 美元。TypeSafe 把这一组称为实际收益里偏高的一端。Jev 的输入价是 **每百万 token 0.042 美元**,比 Claude Fable 5.1 - Access to secretsline 33
[Credential-related source omitted] - Network accessline 48
<p align="center"><a href="https://htmlpreview.github.io/?https://github.com/openqa-cn/codexqa/blob/main/docs/assets/previews/jev-report.html"><img src="docs/jev-report.png" alt="Jev Browser HTML 执行报告" width="640"></a></p> - Access to secretsline 54
[Credential-related source omitted] - Network accessline 67
[Credential-related source omitted] - Access to secretsline 67
[Credential-related source omitted] - Network accessline 69
TYPESAFE_BASE_URL=https://api.typesafe.ai/v1 - Network accessline 71
[Credential-related source omitted] - Access to secretsline 71
[Credential-related source omitted] - Network accessline 72
[Credential-related source omitted] - Access to secretsline 72
[Credential-related source omitted] - Network accessline 73
OPENAI_BASE_URL=https://api.openai.com/v1 - Access to secretsline 80
[Credential-related source omitted] - Access to secretsline 81
[Credential-related source omitted] - Access to secretsline 84
[Credential-related source omitted] - Network accessline 90
npx codexqa-jev-browser run cases/examples/search-docs.yaml cases/examples/login.yaml npx codexqa-jev-browser run cases/examples/search-docs.md npx codexqa-jev-browser run --from-api https://qa.example.com/cases - Network accessline 91
npx codexqa-jev-browser run cases/examples/search-docs.md npx codexqa-jev-browser run --from-api https://qa.example.com/cases npx codexqa-jev-browser auto --url examples/app/index.html --goal '搜索 Pilot 并打开文档' \ - Network accessline 92
npx codexqa-jev-browser run --from-api https://qa.example.com/cases - Network accessline 124
浏览器回放只是界面这一步。其余检查在 [CodexQA](https://github.com/openqa-cn/codexqa):需求、用例、测试数据、影响面、缺陷扫描,以及一份能打开的评审页。可以装整个目录,也可以只装这个技能: - Network accessline 135
| 技能 | 拿到什么 | | --- | --- | | [codexqa-skill-router](https://github.com/openqa-cn/codexqa/tree/main/skills/codexqa-skill-router) | 按你的话选对技能,没有就装上再交接。 | - Network accessline 136
| --- | --- | | [codexqa-skill-router](https://github.com/openqa-cn/codexqa/tree/main/skills/codexqa-skill-router) | 按你的话选对技能,没有就装上再交接。 | | [codexqa-requirement-analyzer](https://github.com/openqa-cn/codexqa/tree/main/skills/codexqa-require - Network accessline 137
| [codexqa-skill-router](https://github.com/openqa-cn/codexqa/tree/main/skills/codexqa-skill-router) | 按你的话选对技能,没有就装上再交接。 | - Network accessline 138
| [codexqa-requirement-analyzer](https://github.com/openqa-cn/codexqa/tree/main/skills/codexqa-requirement-analyzer) | 代码还没写时,一份 P0/P1 的需求缺口和冲突登记表。 | - Network accessline 139
| [codexqa-testcase-generator](https://github.com/openqa-cn/codexqa/tree/main/skills/codexqa-testcase-generator) | 本地测试方案和 Web / 服务端 / APP 用例。没写清的标 TBD。 | - Network accessline 140
| [codexqa-testdata-generator](https://github.com/openqa-cn/codexqa/tree/main/skills/codexqa-testdata-generator) | 对着后端造数,把返回的业务 ID 写回用例前置条件。 | - Network accessline 141
| [codexqa-code-wiki](https://github.com/openqa-cn/codexqa/tree/main/skills/codexqa-code-wiki) | 架构图谱:模块、真实依赖、枢纽,以及从哪开始读。 | - Network accessline 142
| [codexqa-code-analyzer](https://github.com/openqa-cn/codexqa/tree/main/skills/codexqa-code-analyzer) | 变更影响面:打到哪些接口、方法和调用链,哪些边还没测试。 | - Network accessline 143
| [codexqa-rootcause-analyzer](https://github.com/openqa-cn/codexqa/tree/main/skills/codexqa-rootcause-analyzer) | 带门禁的 RCA,把抛错位置和根因分开。 | - Network accessline 144
| [codexqa-defect-analyzer](https://github.com/openqa-cn/codexqa/tree/main/skills/codexqa-defect-analyzer) | P0–P3 的 HTML 扫描:缺陷、密钥和危险写法。 | - Network accessline 145
| [codexqa-code-reviewer](https://github.com/openqa-cn/codexqa/tree/main/skills/codexqa-code-reviewer) | 双语 `REVIEW-REPORT.html`,合码前给评审人打开。 |
skills/codexqa-jev-browser/SKILL.md
- Network accessline 28
npx codexqa-jev-browser run cases/examples/search-docs.yaml npx codexqa-jev-browser run cases/examples/search-docs.md npx codexqa-jev-browser run --from-api https://qa.example.com/cases?suite=smoke - Network accessline 29
npx codexqa-jev-browser run cases/examples/search-docs.md npx codexqa-jev-browser run --from-api https://qa.example.com/cases?suite=smoke npx codexqa-jev-browser auto --url <url> --goal '<goal>' - Network accessline 30
npx codexqa-jev-browser run --from-api https://qa.example.com/cases?suite=smoke - Access to secretsline 44
[Credential-related source omitted] - Network accessline 49
[Credential-related source omitted] - Access to secretsline 49
[Credential-related source omitted] - Network accessline 51
TYPESAFE_BASE_URL=https://api.typesafe.ai/v1 - Network accessline 53
[Credential-related source omitted] - Access to secretsline 53
[Credential-related source omitted] - Network accessline 54
[Credential-related source omitted] - Access to secretsline 54
[Credential-related source omitted] - Network accessline 55
OPENAI_BASE_URL=https://api.openai.com/v1 - Access to secretsline 60
[Credential-related source omitted] - Access to secretsline 64
[Credential-related source omitted]
skills/codexqa-jev-browser/bin/codexqa-jev-browser.mjs
- Executable scriptline 1
#!/usr/bin/env node
skills/codexqa-jev-browser/codexqa-jev-browser.config.yaml
skills/codexqa-jev-browser/examples/app/search-submit.html
- Network accessline 16
<input type="search" placeholder="搜索" aria-label="搜索"> <div class="icon"> <img alt="" width="32" height="32" src="data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='32' height='32'%3E%3C/svg%3E"> - Network accessline 17
<div class="icon"> <img alt="" width="32" height="32" src="data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='32' height='32'%3E%3C/svg%3E"> </div> - Network accessline 18
<img alt="" width="32" height="32" src="data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='32' height='32'%3E%3C/svg%3E">
skills/codexqa-jev-browser/package-lock.json
- Network accessline 29
"node_modules/@esbuild/aix-ppc64": { "version": "0.28.2", "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.28.2.tgz", - Network accessline 30
"version": "0.28.2", "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.28.2.tgz", "integrity": "sha512-XExcO+dvLKvVtNTibSTBej1NCAbaGhWn9Ww1ZPx80qsahhPFe/8jgWP0IchNe0F3HwkU7n8ejhH8bjonqht8mQ==", - Network accessline 31
"resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.28.2.tgz", - Network accessline 46
"node_modules/@esbuild/android-arm": { "version": "0.28.2", "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.28.2.tgz", - Network accessline 47
"version": "0.28.2", "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.28.2.tgz", "integrity": "sha512-kXXoiPVVGQcnIYGOeaovwOURpniDBpSq4A03qkQ+BMQqtGG6HYap3xne9C1O1yo4TR3qxlCX5IqqmX6fFo2Lqg==", - Network accessline 48
"resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.28.2.tgz", - Network accessline 63
"node_modules/@esbuild/android-arm64": { "version": "0.28.2", "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.28.2.tgz", - Network accessline 64
"version": "0.28.2", "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.28.2.tgz", "integrity": "sha512-5YfKeeI8qWfBZIX+u2xZC3Zlb3Os/gLS2sbEKM+I4ZOcsWmHS2WLysCcQZDAFRslDUU5Oiq44gf6PYN1vGwG5A==", - Network accessline 65
"resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.28.2.tgz", - Network accessline 80
"node_modules/@esbuild/android-x64": { "version": "0.28.2", "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.28.2.tgz", - Network accessline 81
"version": "0.28.2", "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.28.2.tgz", "integrity": "sha512-O387ite7SzUyCcy3JQX4P4bLtEA7bLLkx+esve5JHnyYfNTxcVpXZo9jhdB0lTKN44gztELTdU7nS8Nr16Fs1Q==", - Network accessline 82
"resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.28.2.tgz", - Network accessline 97
"node_modules/@esbuild/darwin-arm64": { "version": "0.28.2", "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.28.2.tgz", - Network accessline 98
"version": "0.28.2", "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.28.2.tgz", "integrity": "sha512-n4KqkOQrraxHJcgjM1RvwbigfQKIKJVpM7xp+KsxiyUSrRdIXnt73VhrPAx0fV44hgfmIVKjxMN9J1t5jySVkw==", - Network accessline 99
"resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.28.2.tgz", - Network accessline 114
"node_modules/@esbuild/darwin-x64": { "version": "0.28.2", "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.28.2.tgz", - Network accessline 115
"version": "0.28.2", "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.28.2.tgz", "integrity": "sha512-uq6suIWYP37qzGddBKPw5QEQPi6HiLGsO7UmkpfyaYNQ3D+rN6w6WfwH+nuqcGXWvawGwxOEroO4YGnFh95azw==", - Network accessline 116
"resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.28.2.tgz", - Network accessline 131
"node_modules/@esbuild/freebsd-arm64": { "version": "0.28.2", "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.28.2.tgz", - Network accessline 132
"version": "0.28.2", "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.28.2.tgz", "integrity": "sha512-n+I0BTSRIoy+d6RPKnEVwql5UwBJolytvY4mAOIEJorKlqgPII8ix6slVVrfZ5Tnj7glIZvloylbB/EJPMWEXw==", - Network accessline 133
"resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.28.2.tgz", - Network accessline 148
"node_modules/@esbuild/freebsd-x64": { "version": "0.28.2", "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.28.2.tgz", - Network accessline 149
"version": "0.28.2", "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.28.2.tgz", "integrity": "sha512-78XJTJkvPs0kz2w61301PJjXl4g7q3JqiYMZ/M/yVI73EHBrCRTgkhu9oqG7vPqq+a/yadEW8aD+agKlk5xrmg==", - Network accessline 150
"resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.28.2.tgz", - Network accessline 165
"node_modules/@esbuild/linux-arm": { "version": "0.28.2", "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.28.2.tgz", - Network accessline 166
"version": "0.28.2", "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.28.2.tgz", "integrity": "sha512-XlDnu2q5yoqems+xay6wSAcg9DDD7K9RLKZEBOMZm3ckNpJBvOX20tSfby8KfrrhINDyv9V2YVZKY/SpoGJI8w==", - Network accessline 167
"resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.28.2.tgz", - Network accessline 182
"node_modules/@esbuild/linux-arm64": { "version": "0.28.2", "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.28.2.tgz", - Network accessline 183
"version": "0.28.2", "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.28.2.tgz", "integrity": "sha512-pW4AC0P3it8c7do9MVM4p51FzHzdM/TZrerurgRcHJ2WTa1VQ1CIq18xncfpBJw4ojkiZZrKW2yIBWBP92j6Ug==", - Network accessline 184
"resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.28.2.tgz", - Network accessline 199
"node_modules/@esbuild/linux-ia32": { "version": "0.28.2", "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.28.2.tgz", - Network accessline 200
"version": "0.28.2", "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.28.2.tgz", "integrity": "sha512-CYbnj78HsIeA+DhgUKgFCfvNsTHFhMMrinUrMZpDXJXKN8T3XViTZ/+wtHeVxEWY8ewSzTFN+nRmSwO2tZaLUQ==", - Network accessline 201
"resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.28.2.tgz", - Network accessline 216
"node_modules/@esbuild/linux-loong64": { "version": "0.28.2", "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.28.2.tgz", - Network accessline 217
"version": "0.28.2", "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.28.2.tgz", "integrity": "sha512-buwkd8nsph4R+ajRvw0qM5Hja/TXQow3ptzWO2EbG/cqcIkHloRrdlBtQlshyYGTNFvfkfJ5tpPLVkY4DtsPfQ==", - Network accessline 218
"resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.28.2.tgz", - Network accessline 233
"node_modules/@esbuild/linux-mips64el": { "version": "0.28.2", "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.28.2.tgz", - Network accessline 234
"version": "0.28.2", "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.28.2.tgz", "integrity": "sha512-ZVykbDyk7519VwiNb9Lcj9m8XM6v5V9uKPvrEMkkEedVewf+0itkhahp4HDpgERXhwLRpWFypsGbG/J8s0QjJA==", - Network accessline 235
"resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.28.2.tgz", - Network accessline 250
"node_modules/@esbuild/linux-ppc64": { "version": "0.28.2", "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.28.2.tgz", - Network accessline 251
"version": "0.28.2", "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.28.2.tgz", "integrity": "sha512-CAXl+Dtd9UUuJd8pKKdwh6MLm3MUMiqMPmhZ3tTSXPqfyQ3vDl6R5hZdZ/kYojK4ofXtdfSv1tFq8XzWx3heNQ==", - Network accessline 252
"resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.28.2.tgz", - Network accessline 267
"node_modules/@esbuild/linux-riscv64": { "version": "0.28.2", "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.28.2.tgz", - Network accessline 268
"version": "0.28.2", "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.28.2.tgz", "integrity": "sha512-GeXCej4IQtU1B+QlDV8W/RRvbzI3O/Stss+/bCXv4lZls5WGRtu2a+3JkA3i4qIUlMXpcHebWpF8AkJhATowuA==", - Network accessline 269
"resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.28.2.tgz", - Network accessline 284
"node_modules/@esbuild/linux-s390x": { "version": "0.28.2", "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.28.2.tgz", - Network accessline 285
"version": "0.28.2", "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.28.2.tgz", "integrity": "sha512-3H1weTYZPxt/WOhByszQZybS9w5lKzUn1FDMsgEChbHWQwHYQQRfBxgCcZvPhjHfKyJjIievvMmEUawJrdY9Dg==", - Network accessline 286
"resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.28.2.tgz", - Network accessline 301
"node_modules/@esbuild/linux-x64": { "version": "0.28.2", "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.28.2.tgz", - Network accessline 302
"version": "0.28.2", "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.28.2.tgz", "integrity": "sha512-4xTZr1FUmSoQW4XIWmit3tzQrUTZM+N3P0XV8xROKYF50XfI7xeO90+1bZvNwxIufQ9hDQVRJH5YhgPVF8A/HQ==", - Network accessline 303
"resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.28.2.tgz", - Network accessline 318
"node_modules/@esbuild/netbsd-arm64": { "version": "0.28.2", "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.28.2.tgz", - Network accessline 319
"version": "0.28.2", "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.28.2.tgz", "integrity": "sha512-sSATRjPeDBg3pdgHoQfoYBob11Kk1FGa9lui5RIHZCoCkJa9QKlvl3/vKz2usCmYYjs7ymJR/2Nnsqe+Hjt5nw==", - Network accessline 320
"resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.28.2.tgz", - Network accessline 335
"node_modules/@esbuild/netbsd-x64": { "version": "0.28.2", "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.28.2.tgz", - Network accessline 336
"version": "0.28.2", "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.28.2.tgz", "integrity": "sha512-lqnzCV+mM0gIADaKihiCg6ifgfU2L3h5E33rNQBN1Y4MaVGnzryzmvvf7UHxprpQdE8hpqLolJ9Rl+SkIRDpyw==", - Network accessline 337
"resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.28.2.tgz", - Network accessline 352
"node_modules/@esbuild/openbsd-arm64": { "version": "0.28.2", "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.28.2.tgz", - Network accessline 353
"version": "0.28.2", "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.28.2.tgz", "integrity": "sha512-AL2qJILH7lNjrDmCQDvdxMfAUIv8KMNZOvrwAQ8i8//ntL9FflhOyMJ8OZSMBb8/AWXe3/5v5S20y3zCoZWKoQ==", - Network accessline 354
"resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.28.2.tgz", - Network accessline 369
"node_modules/@esbuild/openbsd-x64": { "version": "0.28.2", "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.28.2.tgz", - Network accessline 370
"version": "0.28.2", "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.28.2.tgz", "integrity": "sha512-QtiuPytchRyC4rwUKhexJdQKvDuZ6hWloi3igqPQNUJCS1/v9EiO3UTOXR6A3FoMo4fnAKbWJdqaIwhOzh8qEw==", - Network accessline 371
"resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.28.2.tgz", - Network accessline 386
"node_modules/@esbuild/openharmony-arm64": { "version": "0.28.2", "resolved": "https://registry.npmjs.org/@esbuild/openharmony-arm64/-/openharmony-arm64-0.28.2.tgz", - Network accessline 387
"version": "0.28.2", "resolved": "https://registry.npmjs.org/@esbuild/openharmony-arm64/-/openharmony-arm64-0.28.2.tgz", "integrity": "sha512-WkhYDmpTjLvGlScA1rwjRUmhl4k8oXR3cIbtqWmELgU/dFeHHlEllxDvdWcNJV9rbzCexB5vz8gtNewWLgCT7Q - Network accessline 388
"resolved": "https://registry.npmjs.org/@esbuild/openharmony-arm64/-/openharmony-arm64-0.28.2.tgz", - Network accessline 403
"node_modules/@esbuild/sunos-x64": { "version": "0.28.2", "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.28.2.tgz", - Network accessline 404
"version": "0.28.2", "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.28.2.tgz", "integrity": "sha512-GPMSkTOtMnv2U2F8gxe4Io6qmVs+YKyp832Etqqxr0hFngmXQ3rzwytelm3GIn7T4VviRUlf3sOgBOiTdvaf7g==", - Network accessline 405
"resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.28.2.tgz", - Network accessline 420
"node_modules/@esbuild/win32-arm64": { "version": "0.28.2", "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.28.2.tgz", - Network accessline 421
"version": "0.28.2", "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.28.2.tgz", "integrity": "sha512-PIhhEkE9uPBleRBrQEJpUn7MBnibZzbGzYWPmY3x+YoVg/95zbjB4CxPPOQ8l5tYYM4mMaCthF8/1DIfBQQyWQ==", - Network accessline 422
"resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.28.2.tgz", - Network accessline 437
"node_modules/@esbuild/win32-ia32": { "version": "0.28.2", "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.28.2.tgz", - Network accessline 438
"version": "0.28.2", "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.28.2.tgz", "integrity": "sha512-YmJbfTlvU7Sdn9BB+4PRES4oB6pxgS37MAONj+hBr/cpXS1aBPKXxNnDbu+QCWPj0o9dgyxeq79g6c5P8KeuYA==", - Network accessline 439
"resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.28.2.tgz", - Network accessline 454
"node_modules/@esbuild/win32-x64": { "version": "0.28.2", "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.28.2.tgz", - Network accessline 455
"version": "0.28.2", "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.28.2.tgz", "integrity": "sha512-5ebpxr3nWMzrL/rnUI755Jkuee0bHL/Gq0WTF9lvcpv73wAp5eu8MfBUgWK9bhWvZjj7yX8etf/8tI8Ney695g==", - Network accessline 456
"resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.28.2.tgz", - Network accessline 471
"node_modules/@jridgewell/sourcemap-codec": { "version": "1.6.0", "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.6.0.tgz", - Network accessline 472
"version": "1.6.0", "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.6.0.tgz", "integrity": "sha512-T7jf+5zgsZHwNJ4lvQ7/aezbyk0nNX+zJVWpmHA7VYsEx7a7qr5Rg5IbtJFqkgze5Y2sruq1RUY8Q837Od7iFw==" - Network accessline 473
"resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.6.0.tgz", - Network accessline 478
"node_modules/@napi-rs/lzma-linux-x64-gnu": { "version": "1.5.1", "resolved": "https://registry.npmjs.org/@napi-rs/lzma-linux-x64-gnu/-/lzma-linux-x64-gnu-1.5.1.tgz", - Network accessline 479
"version": "1.5.1", "resolved": "https://registry.npmjs.org/@napi-rs/lzma-linux-x64-gnu/-/lzma-linux-x64-gnu-1.5.1.tgz", "integrity": "sha512-oTXEIha4SsuXdTA4Iyskj0kpdx2yVXdhd75c2v3xGrHFfVMsbhTPZU/nMPL4sWKo4pBHm3aucLaqGlF696dTyQ - Network accessline 480
"resolved": "https://registry.npmjs.org/@napi-rs/lzma-linux-x64-gnu/-/lzma-linux-x64-gnu-1.5.1.tgz", - Network accessline 495
"node_modules/@rollup/rollup-android-arm-eabi": { "version": "4.63.4", "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.63.4.tgz", - Network accessline 496
"version": "4.63.4", "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.63.4.tgz", "integrity": "sha512-I+BSHzTAhKN2n7ZwGZsegGcZjDpLqFOMAtJz/u6uFGe0pUFbq56dEHjqJV/ZUdRJtNXNxA+hREU - Network accessline 497
"resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.63.4.tgz", - Network accessline 509
"node_modules/@rollup/rollup-android-arm64": { "version": "4.63.4", "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.63.4.tgz", - Network accessline 510
"version": "4.63.4", "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.63.4.tgz", "integrity": "sha512-pu3BdjS2LtEzRu2elmGzS3fIeWSZy4BMDIaLNwjorO76+k2d0LMluijhsDx3KQyQBQ/lLUZCQA9/s6csv - Network accessline 511
"resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.63.4.tgz", - Network accessline 523
"node_modules/@rollup/rollup-darwin-arm64": { "version": "4.63.4", "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.63.4.tgz", - Network accessline 524
"version": "4.63.4", "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.63.4.tgz", "integrity": "sha512-xfSrj9MHnWK9GaSqT9U0ImHtH/N8WZlHLx4cZHiuLcqs640hvZ3hLPd5UR2AZS57FaE8HrRUSpltbZdWRxH - Network accessline 525
"resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.63.4.tgz", - Network accessline 537
"node_modules/@rollup/rollup-darwin-x64": { "version": "4.63.4", "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.63.4.tgz", - Network accessline 538
"version": "4.63.4", "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.63.4.tgz", "integrity": "sha512-bqU99PLJb/dqb3S0GIMdeuyAEETSUgZBoqXYd3Sd+WCsV+MmPhnN6JrotWyir31+QgH7EvvE5/mwGJlEoci8Fw= - Network accessline 539
"resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.63.4.tgz", - Network accessline 551
"node_modules/@rollup/rollup-freebsd-arm64": { "version": "4.63.4", "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.63.4.tgz", - Network accessline 552
"version": "4.63.4", "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.63.4.tgz", "integrity": "sha512-JinsFZ5G40oXQb+sUuiA5x689vhr6dDYK0H0NL+rwKdL6CqnmYN8PE4ZwfRSoIjrCxqTQG/SLfTtSvHeG - Network accessline 553
"resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.63.4.tgz", - Network accessline 565
"node_modules/@rollup/rollup-freebsd-x64": { "version": "4.63.4", "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.63.4.tgz", - Network accessline 566
"version": "4.63.4", "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.63.4.tgz", "integrity": "sha512-GAdA4UxpiNm27cLHr2GqXBpAD0x9FqwYBY7/YSP0Ss0/PNi4k8gbviqpIpYbVSRBaS2ZcegXEzgTQMbRNCwxC - Network accessline 567
"resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.63.4.tgz", - Network accessline 579
"node_modules/@rollup/rollup-linux-arm-gnueabihf": { "version": "4.63.4", "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.63.4.tgz", - Network accessline 580
"version": "4.63.4", "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.63.4.tgz", "integrity": "sha512-qDd6NoA1znaLjp4jR5U/KWCdLAKDJNB8W9ChbbDaKbo0xA+Atln5HK6LFCZ4oJQpemtRZ - Network accessline 581
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.63.4.tgz", - Network accessline 593
"node_modules/@rollup/rollup-linux-arm-musleabihf": { "version": "4.63.4", "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.63.4.tgz", - Network accessline 594
"version": "4.63.4", "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.63.4.tgz", "integrity": "sha512-WtB5Tz5KTNINb8ZA+8sQ7bmjuS1JrRT7YverYIhUGdWWDlpzVWmIwuZE+jidkEXUn1l - Network accessline 595
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.63.4.tgz", - Network accessline 607
"node_modules/@rollup/rollup-linux-arm64-gnu": { "version": "4.63.4", "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.63.4.tgz", - Network accessline 608
"version": "4.63.4", "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.63.4.tgz", "integrity": "sha512-VcQ3L1tjnkKzWjryAVaFhHEWcqOfICX9uxVVoDzm2t0DpgKRHd2zOpVrJc0xsWeBZcBFyYROCIBdy - Network accessline 609
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.63.4.tgz", - Network accessline 621
"node_modules/@rollup/rollup-linux-arm64-musl": { "version": "4.63.4", "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.63.4.tgz", - Network accessline 622
"version": "4.63.4", "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.63.4.tgz", "integrity": "sha512-6+ZQX6P5s0cMDN2Ypb8Lbm2+/sZYmZjdaYny992ujUU9UKi/4CWoJWsl1pNvjWJHNHGK51m+jKG - Network accessline 623
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.63.4.tgz", - Network accessline 635
"node_modules/@rollup/rollup-linux-loong64-gnu": { "version": "4.63.4", "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-gnu/-/rollup-linux-loong64-gnu-4.63.4.tgz", - Network accessline 636
"version": "4.63.4", "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-gnu/-/rollup-linux-loong64-gnu-4.63.4.tgz", "integrity": "sha512-D72ZnvkFkBXOfzMMQLcwfPLyGkKb7HZ9/mf97B7v6/P5Lbv4oFOtSY/uHbS8lH6uKUOxoKiuo - Network accessline 637
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-gnu/-/rollup-linux-loong64-gnu-4.63.4.tgz", - Network accessline 649
"node_modules/@rollup/rollup-linux-loong64-musl": { "version": "4.63.4", "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-musl/-/rollup-linux-loong64-musl-4.63.4.tgz", - Network accessline 650
"version": "4.63.4", "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-musl/-/rollup-linux-loong64-musl-4.63.4.tgz", "integrity": "sha512-piU6BxeqA3O9KSu3kRCIQQtNqFFaTu21SEV4FwaRZowpnj3bLaWPZHw+xFqCs0XlJ+aOH3P - Network accessline 651
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-musl/-/rollup-linux-loong64-musl-4.63.4.tgz", - Network accessline 663
"node_modules/@rollup/rollup-linux-ppc64-gnu": { "version": "4.63.4", "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-gnu/-/rollup-linux-ppc64-gnu-4.63.4.tgz", - Network accessline 664
"version": "4.63.4", "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-gnu/-/rollup-linux-ppc64-gnu-4.63.4.tgz", "integrity": "sha512-/5PGpHwqt2EEEOUs1XwzubE/ucr0dWDQ+to3zqi4Ds7EWpwtQ79wXc4JBoxqj/OwpawTsKWzJxHfS - Network accessline 665
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-gnu/-/rollup-linux-ppc64-gnu-4.63.4.tgz", - Network accessline 677
"node_modules/@rollup/rollup-linux-ppc64-musl": { "version": "4.63.4", "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-musl/-/rollup-linux-ppc64-musl-4.63.4.tgz", - Network accessline 678
"version": "4.63.4", "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-musl/-/rollup-linux-ppc64-musl-4.63.4.tgz", "integrity": "sha512-cX3beZDLWt7G2oJF+nhChiT+qtaihs+S2xi7ziGmVB+2pwPng6D0Ed0HmElQOgv2UsUmSJJLGwp - Network accessline 679
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-musl/-/rollup-linux-ppc64-musl-4.63.4.tgz", - Network accessline 691
"node_modules/@rollup/rollup-linux-riscv64-gnu": { "version": "4.63.4", "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.63.4.tgz", - Network accessline 692
"version": "4.63.4", "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.63.4.tgz", "integrity": "sha512-1uz2mGWHyptR7DgHHrlbdRAjXK7v7elGZ9lMja910/RP+ZYbX6xAmCiU9UZSX4hqmgtHMv6lr - Network accessline 693
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.63.4.tgz", - Network accessline 705
"node_modules/@rollup/rollup-linux-riscv64-musl": { "version": "4.63.4", "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.63.4.tgz", - Network accessline 706
"version": "4.63.4", "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.63.4.tgz", "integrity": "sha512-nLS8topojxyz7SRpKR2IODRpQ0XPZ+xaOXvT3+hqK/Uy8Lo5HFgkkIBiIrCu5tL5YqzTvgo - Network accessline 707
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.63.4.tgz", - Network accessline 719
"node_modules/@rollup/rollup-linux-s390x-gnu": { "version": "4.63.4", "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.63.4.tgz", - Network accessline 720
"version": "4.63.4", "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.63.4.tgz", "integrity": "sha512-gs7DRKotr3l3q+jGPQBjH0ng1FjlEDm5ueQrkw5JtQvtLyEIcLASqAEaor56BhkKRzk+IcQzrcanB - Network accessline 721
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.63.4.tgz", - Network accessline 733
"node_modules/@rollup/rollup-linux-x64-gnu": { "version": "4.63.4", "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.63.4.tgz", - Network accessline 734
"version": "4.63.4", "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.63.4.tgz", "integrity": "sha512-791ET7W17NnScOZM7h4dX5hYspxE28htPFsb1awY/NRR8+PRNkS53e475rDdxXXDrP+kwnCcNWg9CX5zt - Network accessline 735
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.63.4.tgz", - Network accessline 747
"node_modules/@rollup/rollup-linux-x64-musl": { "version": "4.63.4", "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.63.4.tgz", - Network accessline 748
"version": "4.63.4", "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.63.4.tgz", "integrity": "sha512-iwZQRcmj7g88g3tzefIrQY7qvmuA/cfYwhrDtTBhsmukO4U2huVO5W+86XacUMRvdSFVAc6kZUZy21J - Network accessline 749
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.63.4.tgz", - Network accessline 761
"node_modules/@rollup/rollup-openbsd-x64": { "version": "4.63.4", "resolved": "https://registry.npmjs.org/@rollup/rollup-openbsd-x64/-/rollup-openbsd-x64-4.63.4.tgz", - Network accessline 762
"version": "4.63.4", "resolved": "https://registry.npmjs.org/@rollup/rollup-openbsd-x64/-/rollup-openbsd-x64-4.63.4.tgz", "integrity": "sha512-dVHFp9gRWrdTpnqQuGfCwd7hOQDatK1VCP2iWhLY/cGrOQs/ucFzJ6A5SRqbXX12ZDI8EUuejSM5kwg+ja7Pn - Network accessline 763
"resolved": "https://registry.npmjs.org/@rollup/rollup-openbsd-x64/-/rollup-openbsd-x64-4.63.4.tgz", - Network accessline 775
"node_modules/@rollup/rollup-openharmony-arm64": { "version": "4.63.4", "resolved": "https://registry.npmjs.org/@rollup/rollup-openharmony-arm64/-/rollup-openharmony-arm64-4.63.4.tgz", - Network accessline 776
"version": "4.63.4", "resolved": "https://registry.npmjs.org/@rollup/rollup-openharmony-arm64/-/rollup-openharmony-arm64-4.63.4.tgz", "integrity": "sha512-t3NlauOW6gxZVVFcBEnO62Cb4wbyDFL416gTg1uFI/2tgqYQlf69FbSE115Ajre9I+c26Lk4m - Network accessline 777
"resolved": "https://registry.npmjs.org/@rollup/rollup-openharmony-arm64/-/rollup-openharmony-arm64-4.63.4.tgz", - Network accessline 789
"node_modules/@rollup/rollup-win32-arm64-msvc": { "version": "4.63.4", "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.63.4.tgz", - Network accessline 790
"version": "4.63.4", "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.63.4.tgz", "integrity": "sha512-xWuIaSye5FWZF8+UYtVEcHtRJDN5kN9Kfgxx3Kq8XIov9KSKbc1fiqQCm90SKrgQbUXZelbnUhn - Network accessline 791
"resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.63.4.tgz", - Network accessline 803
"node_modules/@rollup/rollup-win32-ia32-msvc": { "version": "4.63.4", "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.63.4.tgz", - Network accessline 804
"version": "4.63.4", "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.63.4.tgz", "integrity": "sha512-9ALJJUOg/ZflMJepVo2PlgsGxSaxN7SQ4Z8GoZfVlarWr6r3rkHUNsd/zAio7p4YMtChSMXPionxe - Network accessline 805
"resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.63.4.tgz", - Network accessline 817
"node_modules/@rollup/rollup-win32-x64-gnu": { "version": "4.63.4", "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-gnu/-/rollup-win32-x64-gnu-4.63.4.tgz", - Network accessline 818
"version": "4.63.4", "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-gnu/-/rollup-win32-x64-gnu-4.63.4.tgz", "integrity": "sha512-blj9z5qx/Pv4WU0W1NMFDB97e0JH5ed+aZGywW8WCvp/NhWX/4PFAq5uu6Q0AebNn+Vo6KzUYDT++JzTT - Network accessline 819
"resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-gnu/-/rollup-win32-x64-gnu-4.63.4.tgz", - Network accessline 831
"node_modules/@rollup/rollup-win32-x64-msvc": { "version": "4.63.4", "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.63.4.tgz", - Network accessline 832
"version": "4.63.4", "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.63.4.tgz", "integrity": "sha512-Erx822VRBwLa124shbj+wNXe//BOgMEctDV0m1aqTQdNO1S69DgNUCFKC1RCeZfixs1J31l6igk1ziy - Network accessline 833
"resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.63.4.tgz", - Network accessline 845
"node_modules/@types/chai": { "version": "5.2.3", "resolved": "https://registry.npmjs.org/@types/chai/-/chai-5.2.3.tgz", - Network accessline 846
"version": "5.2.3", "resolved": "https://registry.npmjs.org/@types/chai/-/chai-5.2.3.tgz", "integrity": "sha512-Mw558oeA9fFbv65/y4mHtXDs9bPnFMZAL/jxdPFUpOHHIXX91mcgEHbS5Lahr+pwZFR8A7GQleRWeI6cGFC2UA==", - Network accessline 847
"resolved": "https://registry.npmjs.org/@types/chai/-/chai-5.2.3.tgz", - Network accessline 856
"node_modules/@types/deep-eql": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/@types/deep-eql/-/deep-eql-4.0.2.tgz", - Network accessline 857
"version": "4.0.2", "resolved": "https://registry.npmjs.org/@types/deep-eql/-/deep-eql-4.0.2.tgz", "integrity": "sha512-c9h9dVVMigMPc4bwTvC5dxqtqJZwQPePsWjPlpSOnojbor6pGqdk541lfA7AqFQr5pB1BRdq0juY9db81BwyFw==", - Network accessline 858
"resolved": "https://registry.npmjs.org/@types/deep-eql/-/deep-eql-4.0.2.tgz", - Network accessline 863
"node_modules/@types/estree": { "version": "1.0.9", "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.9.tgz", - Network accessline 864
"version": "1.0.9", "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.9.tgz", "integrity": "sha512-GhdPgy1el4/ImP05X05Uw4cw2/M93BCUmnEvWZNStlCzEKME4Fkk+YpoA5OiHNQmoS7Cafb8Xa3Pya8m1Qrzeg==", - Network accessline 865
"resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.9.tgz", - Network accessline 870
"node_modules/@types/node": { "version": "24.13.6", "resolved": "https://registry.npmjs.org/@types/node/-/node-24.13.6.tgz", - Network accessline 871
"version": "24.13.6", "resolved": "https://registry.npmjs.org/@types/node/-/node-24.13.6.tgz", "integrity": "sha512-SGrw/h3KPFshy3OE6ZL53LMBG5vGQQ8/gIpiqz/kRZhPJ7HgwCEs8LBuNtWLa8dvGZVpSF7+Bf+c11HUrCb/yg==", - Network accessline 872
"resolved": "https://registry.npmjs.org/@types/node/-/node-24.13.6.tgz", - Network accessline 880
"node_modules/@vitest/expect": { "version": "3.2.7", "resolved": "https://registry.npmjs.org/@vitest/expect/-/expect-3.2.7.tgz", - Network accessline 881
"version": "3.2.7", "resolved": "https://registry.npmjs.org/@vitest/expect/-/expect-3.2.7.tgz", "integrity": "sha512-E8eBXaKibuvH2pSZErOjdVb5vF4PbKYcrnluBTYxEk1l/VhhwZg1kZQsdtjq+CsF5CFydf2Rdkz7jDHKSisi3w==", - Network accessline 882
"resolved": "https://registry.npmjs.org/@vitest/expect/-/expect-3.2.7.tgz", - Network accessline 892
}, "funding": { "url": "https://opencollective.com/vitest" - Network accessline 893
"funding": { "url": "https://opencollective.com/vitest" } - Network accessline 894
"url": "https://opencollective.com/vitest" - Network accessline 897
"node_modules/@vitest/mocker": { "version": "3.2.7", "resolved": "https://registry.npmjs.org/@vitest/mocker/-/mocker-3.2.7.tgz", - Network accessline 898
"version": "3.2.7", "resolved": "https://registry.npmjs.org/@vitest/mocker/-/mocker-3.2.7.tgz", "integrity": "sha512-Trr0hYO9CM3Wj6ksWHRhK9IZpIY6wTMO5u/MqXurMxT57sWBaOPEtP3Oq60ihZuh5JsiagKfz95OcxdEP6dBrA==", - Network accessline 899
"resolved": "https://registry.npmjs.org/@vitest/mocker/-/mocker-3.2.7.tgz", - Network accessline 907
}, "funding": { "url": "https://opencollective.com/vitest" - Network accessline 908
"funding": { "url": "https://opencollective.com/vitest" }, - Network accessline 909
"url": "https://opencollective.com/vitest" - Network accessline 924
"node_modules/@vitest/pretty-format": { "version": "3.2.7", "resolved": "https://registry.npmjs.org/@vitest/pretty-format/-/pretty-format-3.2.7.tgz", - Network accessline 925
"version": "3.2.7", "resolved": "https://registry.npmjs.org/@vitest/pretty-format/-/pretty-format-3.2.7.tgz", "integrity": "sha512-KUHlwqVu0sRlhCdyPdQ/wBoTfRahjUky1MubOmYw9fWfIZy1gNoHpuaaQBPAaMaVYdQYHJLurzj8ECCj5OwTqA==", - Network accessline 926
"resolved": "https://registry.npmjs.org/@vitest/pretty-format/-/pretty-format-3.2.7.tgz", - Network accessline 932
}, "funding": { "url": "https://opencollective.com/vitest" - Network accessline 933
"funding": { "url": "https://opencollective.com/vitest" } - Network accessline 934
"url": "https://opencollective.com/vitest" - Network accessline 937
"node_modules/@vitest/runner": { "version": "3.2.7", "resolved": "https://registry.npmjs.org/@vitest/runner/-/runner-3.2.7.tgz", - Network accessline 938
"version": "3.2.7", "resolved": "https://registry.npmjs.org/@vitest/runner/-/runner-3.2.7.tgz", "integrity": "sha512-sB9y4ovltoQP+WaUPwmSxO9WIg9Ig694Di5PalVPsYHklAdE027mehpWF2SQSVq+k6sFgaivbTjTJwZLSHbedA==", - Network accessline 939
"resolved": "https://registry.npmjs.org/@vitest/runner/-/runner-3.2.7.tgz", - Network accessline 947
}, "funding": { "url": "https://opencollective.com/vitest" - Network accessline 948
"funding": { "url": "https://opencollective.com/vitest" } - Network accessline 949
"url": "https://opencollective.com/vitest" - Network accessline 952
"node_modules/@vitest/snapshot": { "version": "3.2.7", "resolved": "https://registry.npmjs.org/@vitest/snapshot/-/snapshot-3.2.7.tgz", - Network accessline 953
"version": "3.2.7", "resolved": "https://registry.npmjs.org/@vitest/snapshot/-/snapshot-3.2.7.tgz", "integrity": "sha512-7C+MwShwtBSI5Buwoyg3s/iY1eHL9PKAf+O1wVh/TdnjXUtkoL/9YQtre90i4MtNXM6edP1wJ2zOBpfCyhIS7g==", - Network accessline 954
"resolved": "https://registry.npmjs.org/@vitest/snapshot/-/snapshot-3.2.7.tgz", - Network accessline 962
}, "funding": { "url": "https://opencollective.com/vitest" - Network accessline 963
"funding": { "url": "https://opencollective.com/vitest" } - Network accessline 964
"url": "https://opencollective.com/vitest" - Network accessline 967
"node_modules/@vitest/spy": { "version": "3.2.7", "resolved": "https://registry.npmjs.org/@vitest/spy/-/spy-3.2.7.tgz", - Network accessline 968
"version": "3.2.7", "resolved": "https://registry.npmjs.org/@vitest/spy/-/spy-3.2.7.tgz", "integrity": "sha512-Q2eQGI6d2L/hBtZ0qNuKcAGid68XK6cv1xsoaIma6PaJhHPoqcEJhYpXZ/5myCMqkNgtP6UKuBhbc0nHKnrkuQ==", - Network accessline 969
"resolved": "https://registry.npmjs.org/@vitest/spy/-/spy-3.2.7.tgz", - Network accessline 975
}, "funding": { "url": "https://opencollective.com/vitest" - Network accessline 976
"funding": { "url": "https://opencollective.com/vitest" } - Network accessline 977
"url": "https://opencollective.com/vitest" - Network accessline 980
"node_modules/@vitest/utils": { "version": "3.2.7", "resolved": "https://registry.npmjs.org/@vitest/utils/-/utils-3.2.7.tgz", - Network accessline 981
"version": "3.2.7", "resolved": "https://registry.npmjs.org/@vitest/utils/-/utils-3.2.7.tgz", "integrity": "sha512-x6BDOd7dyo3PFLY3I9/HJ25X/6OurhGXk2/B9gOZNPF7XDVjeBK4k01lQE5uvDpbuheErh91qYuE1E2OEjK3Rw==", - Network accessline 982
"resolved": "https://registry.npmjs.org/@vitest/utils/-/utils-3.2.7.tgz", - Network accessline 990
}, "funding": { "url": "https://opencollective.com/vitest" - Network accessline 991
"funding": { "url": "https://opencollective.com/vitest" } - Network accessline 992
"url": "https://opencollective.com/vitest" - Network accessline 995
"node_modules/assertion-error": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-2.0.1.tgz", - Network accessline 996
"version": "2.0.1", "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-2.0.1.tgz", "integrity": "sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA==", - Network accessline 997
"resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-2.0.1.tgz", - Network accessline 1005
"node_modules/cac": { "version": "6.7.14", "resolved": "https://registry.npmjs.org/cac/-/cac-6.7.14.tgz", - Network accessline 1006
"version": "6.7.14", "resolved": "https://registry.npmjs.org/cac/-/cac-6.7.14.tgz", "integrity": "sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==", - Network accessline 1007
"resolved": "https://registry.npmjs.org/cac/-/cac-6.7.14.tgz", - Network accessline 1015
"node_modules/chai": { "version": "5.3.3", "resolved": "https://registry.npmjs.org/chai/-/chai-5.3.3.tgz", - Network accessline 1016
"version": "5.3.3", "resolved": "https://registry.npmjs.org/chai/-/chai-5.3.3.tgz", "integrity": "sha512-4zNhdJD/iOjSH0A05ea+Ke6MU5mmpQcbQsSOkgdaUMJ9zTlDTD/GYlwohmIE2u0gaxHYiVHEn1Fw9mZ/ktJWgw==", - Network accessline 1017
"resolved": "https://registry.npmjs.org/chai/-/chai-5.3.3.tgz", - Network accessline 1032
"node_modules/check-error": { "version": "2.1.3", "resolved": "https://registry.npmjs.org/check-error/-/check-error-2.1.3.tgz", - Network accessline 1033
"version": "2.1.3", "resolved": "https://registry.npmjs.org/check-error/-/check-error-2.1.3.tgz", "integrity": "sha512-PAJdDJusoxnwm1VwW07VWwUN1sl7smmC3OKggvndJFadxxDRyFJBX/ggnu/KE4kQAB7a3Dp8f/YXC1FlUprWmA==", - Network accessline 1034
"resolved": "https://registry.npmjs.org/check-error/-/check-error-2.1.3.tgz", - Network accessline 1042
"node_modules/debug": { "version": "4.4.3", "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz", - Network accessline 1043
"version": "4.4.3", "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz", "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==", - Network accessline 1044
"resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz", - Network accessline 1060
"node_modules/deep-eql": { "version": "5.0.2", "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-5.0.2.tgz", - Network accessline 1061
"version": "5.0.2", "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-5.0.2.tgz", "integrity": "sha512-h5k/5U50IJJFpzfL6nO9jaaumfjO/f2NjK/oYB2Djzm4p9L+3T9qWpZqZ2hAbLPuuYq9wrU08WQyBTL5GbPk5Q==", - Network accessline 1062
"resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-5.0.2.tgz", - Network accessline 1070
"node_modules/es-module-lexer": { "version": "1.7.0", "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.7.0.tgz", - Network accessline 1071
"version": "1.7.0", "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.7.0.tgz", "integrity": "sha512-jEQoCwk8hyb2AZziIOLhDqpm5+2ww5uIE6lkO/6jcOCusfk6LhMHpXXfBLXTZ7Ydyt0j4VoUQv6uGNYbdW+kBA==", - Network accessline 1072
"resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.7.0.tgz", - Network accessline 1077
"node_modules/esbuild": { "version": "0.28.2", "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.28.2.tgz", - Network accessline 1078
"version": "0.28.2", "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.28.2.tgz", "integrity": "sha512-HKVLS8dvII+xoKW9kmqxbRKrnWEXfJJr/FZhhJmiqIB0e053QNYFqOBouTMO/k5sID4MvCiUCvv8b9M4h32wIA==", - Network accessline 1079
"resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.28.2.tgz", - Network accessline 1119
"node_modules/estree-walker": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-3.0.3.tgz", - Network accessline 1120
"version": "3.0.3", "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-3.0.3.tgz", "integrity": "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==", - Network accessline 1121
"resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-3.0.3.tgz", - Network accessline 1129
"node_modules/expect-type": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/expect-type/-/expect-type-1.4.0.tgz", - Network accessline 1130
"version": "1.4.0", "resolved": "https://registry.npmjs.org/expect-type/-/expect-type-1.4.0.tgz", "integrity": "sha512-KfYbmpRm0VbLjEvVa9yGwCi9GI34xvi7A/HXYWQO65CSD2u3MczUJSuwXKFIxlGsgBQizV9q5J9NHj4VG0n+pA==", - Network accessline 1131
"resolved": "https://registry.npmjs.org/expect-type/-/expect-type-1.4.0.tgz", - Network accessline 1139
"node_modules/fdir": { "version": "6.5.0", "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz", - Network accessline 1140
"version": "6.5.0", "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz", "integrity": "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==", - Network accessline 1141
"resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz", - Network accessline 1157
"node_modules/fsevents": { "version": "2.3.3", "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", - Network accessline 1158
"version": "2.3.3", "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", - Network accessline 1159
"resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", - Network accessline 1172
"node_modules/js-tokens": { "version": "9.0.1", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-9.0.1.tgz", - Network accessline 1173
"version": "9.0.1", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-9.0.1.tgz", "integrity": "sha512-mxa9E9ITFOt0ban3j6L5MpjwegGz6lBQmM1IJkWeBZGcMxto50+eWdjC/52xDbS2vy0k7vIMK0Fe2wfL9OQSpQ==", - Network accessline 1174
"resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-9.0.1.tgz", - Network accessline 1179
"node_modules/loupe": { "version": "3.2.1", "resolved": "https://registry.npmjs.org/loupe/-/loupe-3.2.1.tgz", - Network accessline 1180
"version": "3.2.1", "resolved": "https://registry.npmjs.org/loupe/-/loupe-3.2.1.tgz", "integrity": "sha512-CdzqowRJCeLU72bHvWqwRBBlLcMEtIvGrlvef74kMnV2AolS9Y8xUv1I0U/MNAWMhBlKIoyuEgoJ0t/bbwHbLQ==", - Network accessline 1181
"resolved": "https://registry.npmjs.org/loupe/-/loupe-3.2.1.tgz", - Network accessline 1186
"node_modules/magic-string": { "version": "0.30.21", "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.21.tgz", - Network accessline 1187
"version": "0.30.21", "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.21.tgz", "integrity": "sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==", - Network accessline 1188
"resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.21.tgz", - Network accessline 1196
"node_modules/ms": { "version": "2.1.3", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - Network accessline 1197
"version": "2.1.3", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", - Network accessline 1198
"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - Network accessline 1203
"node_modules/nanoid": { "version": "3.3.19", "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.19.tgz", - Network accessline 1204
"version": "3.3.19", "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.19.tgz", "integrity": "sha512-Y2tUNy4ouw6tq5oDSKeQYGOyhkUBhNOcGV/02KC+6kd9eDGqdZd++mjMiIDilrBYvjEnCYvVtsuHCuP+okSfug==", - Network accessline 1205
"resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.19.tgz", - Network accessline 1209
{ "type": "github", "url": "https://github.com/sponsors/ai" - Network accessline 1210
"type": "github", "url": "https://github.com/sponsors/ai" } - Network accessline 1211
"url": "https://github.com/sponsors/ai" - Network accessline 1222
"node_modules/pathe": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/pathe/-/pathe-2.0.3.tgz", - Network accessline 1223
"version": "2.0.3", "resolved": "https://registry.npmjs.org/pathe/-/pathe-2.0.3.tgz", "integrity": "sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==", - Network accessline 1224
"resolved": "https://registry.npmjs.org/pathe/-/pathe-2.0.3.tgz", - Network accessline 1229
"node_modules/pathval": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/pathval/-/pathval-2.0.1.tgz", - Network accessline 1230
"version": "2.0.1", "resolved": "https://registry.npmjs.org/pathval/-/pathval-2.0.1.tgz", "integrity": "sha512-//nshmD55c46FuFw26xV/xFAaB5HF9Xdap7HJBBnrKdAd6/GxDBaNA1870O79+9ueg61cZLSVc+OaFlfmObYVQ==", - Network accessline 1231
"resolved": "https://registry.npmjs.org/pathval/-/pathval-2.0.1.tgz", - Network accessline 1239
"node_modules/picocolors": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", - Network accessline 1240
"version": "1.1.1", "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", - Network accessline 1241
"resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", - Network accessline 1246
"node_modules/picomatch": { "version": "4.0.7", "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.7.tgz", - Network accessline 1247
"version": "4.0.7", "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.7.tgz", "integrity": "sha512-qcJu88Q2IWqJsDD529JKMdwGm/dvInW4HvQnRwiH9JtihJvzGOscDtHE3x1pBKeUOTysQ8kVmLnJ2kJu7yhcGA==", - Network accessline 1248
"resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.7.tgz", - Network accessline 1254
}, "funding": { "url": "https://github.com/sponsors/jonschlinkert" - Network accessline 1255
"funding": { "url": "https://github.com/sponsors/jonschlinkert" } - Network accessline 1256
"url": "https://github.com/sponsors/jonschlinkert" - Network accessline 1259
"node_modules/playwright": { "version": "1.63.0", "resolved": "https://registry.npmjs.org/playwright/-/playwright-1.63.0.tgz", - Network accessline 1260
"version": "1.63.0", "resolved": "https://registry.npmjs.org/playwright/-/playwright-1.63.0.tgz", "integrity": "sha512-+7ziBLidS4NaNCdt57SUDT+wYmmd5fmiQejUic/kb+YsYSCPyOOE9sebzMjNmQrsnNpDJqd4WHvV/8lfKfUDUg==", - Network accessline 1261
"resolved": "https://registry.npmjs.org/playwright/-/playwright-1.63.0.tgz", - Network accessline 1274
"node_modules/playwright-core": { "version": "1.63.0", "resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.63.0.tgz", - Network accessline 1275
"version": "1.63.0", "resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.63.0.tgz", "integrity": "sha512-rYCsBF/M5HjUch52bbtVONEFjv6Xu8sm8h72dNlR5bzIE1fvC/bxgspzkjSfU+MweEMmPM8KJebG6nnyxo5mCg==", - Network accessline 1276
"resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.63.0.tgz", - Network accessline 1286
"node_modules/postcss": { "version": "8.5.28", "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.28.tgz", - Network accessline 1287
"version": "8.5.28", "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.28.tgz", "integrity": "sha512-RRuzqDtt5Y9h3quz5hWhK+TPnsmVs6WwSU6LkJMeY4HstUEDuYTG8UJSdawMRzmzAtV+KEoG8N3Qg2qLy5vM/A==", - Network accessline 1288
"resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.28.tgz", - Network accessline 1292
{ "type": "opencollective", "url": "https://opencollective.com/postcss/" - Network accessline 1293
"type": "opencollective", "url": "https://opencollective.com/postcss/" }, - Network accessline 1294
"url": "https://opencollective.com/postcss/" - Network accessline 1296
{ "type": "tidelift", "url": "https://tidelift.com/funding/github/npm/postcss" - Network accessline 1297
"type": "tidelift", "url": "https://tidelift.com/funding/github/npm/postcss" }, - Network accessline 1298
"url": "https://tidelift.com/funding/github/npm/postcss" - Network accessline 1300
{ "type": "github", "url": "https://github.com/sponsors/ai" - Network accessline 1301
"type": "github", "url": "https://github.com/sponsors/ai" } - Network accessline 1302
"url": "https://github.com/sponsors/ai" - Network accessline 1315
"node_modules/rollup": { "version": "4.63.4", "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.63.4.tgz", - Network accessline 1316
"version": "4.63.4", "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.63.4.tgz", "integrity": "sha512-4U0liVayNIoLp3GFl1FcI8561WepLnZ1rqfraGh7S9B3Ur5F9S283y8Futii7RUU2C/97tOBmBy7nYvhoiOpbQ==", - Network accessline 1317
"resolved": "https://registry.npmjs.org/rollup/-/rollup-4.63.4.tgz", - Network accessline 1361
"node_modules/siginfo": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/siginfo/-/siginfo-2.0.0.tgz", - Network accessline 1362
"version": "2.0.0", "resolved": "https://registry.npmjs.org/siginfo/-/siginfo-2.0.0.tgz", "integrity": "sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==", - Network accessline 1363
"resolved": "https://registry.npmjs.org/siginfo/-/siginfo-2.0.0.tgz", - Network accessline 1368
"node_modules/source-map-js": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", - Network accessline 1369
"version": "1.2.1", "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", - Network accessline 1370
"resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", - Network accessline 1378
"node_modules/stackback": { "version": "0.0.2", "resolved": "https://registry.npmjs.org/stackback/-/stackback-0.0.2.tgz", - Network accessline 1379
"version": "0.0.2", "resolved": "https://registry.npmjs.org/stackback/-/stackback-0.0.2.tgz", "integrity": "sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==", - Network accessline 1380
"resolved": "https://registry.npmjs.org/stackback/-/stackback-0.0.2.tgz", - Network accessline 1385
"node_modules/std-env": { "version": "3.10.0", "resolved": "https://registry.npmjs.org/std-env/-/std-env-3.10.0.tgz", - Network accessline 1386
"version": "3.10.0", "resolved": "https://registry.npmjs.org/std-env/-/std-env-3.10.0.tgz", "integrity": "sha512-5GS12FdOZNliM5mAOxFRg7Ir0pWz8MdpYm6AY6VPkGpbA7ZzmbzNcBJQ0GPvvyWgcY7QAhCgf9Uy89I03faLkg==", - Network accessline 1387
"resolved": "https://registry.npmjs.org/std-env/-/std-env-3.10.0.tgz", - Network accessline 1392
"node_modules/strip-literal": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/strip-literal/-/strip-literal-3.1.0.tgz", - Network accessline 1393
"version": "3.1.0", "resolved": "https://registry.npmjs.org/strip-literal/-/strip-literal-3.1.0.tgz", "integrity": "sha512-8r3mkIM/2+PpjHoOtiAW8Rg3jJLHaV7xPwG+YRGrv6FP0wwk/toTpATxWYOW0BKdWwl82VT2tFYi5DlROa0Mxg==", - Network accessline 1394
"resolved": "https://registry.npmjs.org/strip-literal/-/strip-literal-3.1.0.tgz", - Network accessline 1400
}, "funding": { "url": "https://github.com/sponsors/antfu" - Network accessline 1401
"funding": { "url": "https://github.com/sponsors/antfu" } - Network accessline 1402
"url": "https://github.com/sponsors/antfu" - Network accessline 1405
"node_modules/tinybench": { "version": "2.9.0", "resolved": "https://registry.npmjs.org/tinybench/-/tinybench-2.9.0.tgz", - Network accessline 1406
"version": "2.9.0", "resolved": "https://registry.npmjs.org/tinybench/-/tinybench-2.9.0.tgz", "integrity": "sha512-0+DUvqWMValLmha6lr4kD8iAMK1HzV0/aKnCtWb9v9641TnP/MFb7Pc2bxoxQjTXAErryXVgUOfv2YqNllqGeg==", - Network accessline 1407
"resolved": "https://registry.npmjs.org/tinybench/-/tinybench-2.9.0.tgz", - Network accessline 1412
"node_modules/tinyexec": { "version": "0.3.2", "resolved": "https://registry.npmjs.org/tinyexec/-/tinyexec-0.3.2.tgz", - Network accessline 1413
"version": "0.3.2", "resolved": "https://registry.npmjs.org/tinyexec/-/tinyexec-0.3.2.tgz", "integrity": "sha512-KQQR9yN7R5+OSwaK0XQoj22pwHoTlgYqmUscPYoknOoWCWfj/5/ABTMRi69FrKU5ffPVh5QcFikpWJI/P1ocHA==", - Network accessline 1414
"resolved": "https://registry.npmjs.org/tinyexec/-/tinyexec-0.3.2.tgz", - Network accessline 1419
"node_modules/tinyglobby": { "version": "0.2.17", "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.17.tgz", - Network accessline 1420
"version": "0.2.17", "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.17.tgz", "integrity": "sha512-wXR/dYpcqKmfWpEdZjiKJOwCNFndD0DMnrW/cYjVGttEkBfVgcLFHoNrlj47mjOVic9yyNu65alsgF4NQyTa2g==", - Network accessline 1421
"resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.17.tgz", - Network accessline 1431
}, "funding": { "url": "https://github.com/sponsors/SuperchupuDev" - Network accessline 1432
"funding": { "url": "https://github.com/sponsors/SuperchupuDev" } - Network accessline 1433
"url": "https://github.com/sponsors/SuperchupuDev" - Network accessline 1436
"node_modules/tinypool": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/tinypool/-/tinypool-1.1.1.tgz", - Network accessline 1437
"version": "1.1.1", "resolved": "https://registry.npmjs.org/tinypool/-/tinypool-1.1.1.tgz", "integrity": "sha512-Zba82s87IFq9A9XmjiX5uZA/ARWDrB03OHlq+Vw1fSdt0I+4/Kutwy8BP4Y/y/aORMo61FQ0vIb5j44vSo5Pkg==", - Network accessline 1438
"resolved": "https://registry.npmjs.org/tinypool/-/tinypool-1.1.1.tgz", - Network accessline 1446
"node_modules/tinyrainbow": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/tinyrainbow/-/tinyrainbow-2.0.0.tgz", - Network accessline 1447
"version": "2.0.0", "resolved": "https://registry.npmjs.org/tinyrainbow/-/tinyrainbow-2.0.0.tgz", "integrity": "sha512-op4nsTR47R6p0vMUUoYl/a+ljLFVtlfaXkLQmqfLR1qHma1h/ysYk4hEXZ880bf2CYgTskvTa/e196Vd5dDQXw==", - Network accessline 1448
"resolved": "https://registry.npmjs.org/tinyrainbow/-/tinyrainbow-2.0.0.tgz", - Network accessline 1456
"node_modules/tinyspy": { "version": "4.0.6", "resolved": "https://registry.npmjs.org/tinyspy/-/tinyspy-4.0.6.tgz", - Network accessline 1457
"version": "4.0.6", "resolved": "https://registry.npmjs.org/tinyspy/-/tinyspy-4.0.6.tgz", "integrity": "sha512-u8KszXvGfU68hVcZpRHKG28T0krMuv2G5nDhiHaMLen/gIuFEgIJhaJuO69qjnXg5paSrbPMFfx3brNuN8eVSg==", - Network accessline 1458
"resolved": "https://registry.npmjs.org/tinyspy/-/tinyspy-4.0.6.tgz", - Network accessline 1466
"node_modules/tsx": { "version": "4.23.15", "resolved": "https://registry.npmjs.org/tsx/-/tsx-4.23.15.tgz", - Network accessline 1467
"version": "4.23.15", "resolved": "https://registry.npmjs.org/tsx/-/tsx-4.23.15.tgz", "integrity": "sha512-Yiex1Ovn8z2xPpOWckIiysV1SSyRMY9BkLF++q0yKiDxCqRhosKfMg3janKkiLBwZ5c/YryloKwGZcrEmtwxKw==", - Network accessline 1468
"resolved": "https://registry.npmjs.org/tsx/-/tsx-4.23.15.tgz", - Network accessline 1485
"node_modules/typescript": { "version": "5.9.3", "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.9.3.tgz", - Network accessline 1486
"version": "5.9.3", "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.9.3.tgz", "integrity": "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==", - Network accessline 1487
"resolved": "https://registry.npmjs.org/typescript/-/typescript-5.9.3.tgz", - Network accessline 1499
"node_modules/undici": { "version": "7.29.1", "resolved": "https://registry.npmjs.org/undici/-/undici-7.29.1.tgz", - Network accessline 1500
"version": "7.29.1", "resolved": "https://registry.npmjs.org/undici/-/undici-7.29.1.tgz", "integrity": "sha512-RYONW2MeafgYlkVOKYKkA/Ag7BmXqgIWCa8t1m0JcxrQg9pI9lEqRhAOruOBCbAohOa/gkCF+iPi9hrgvTzu6Q==", - Network accessline 1501
"resolved": "https://registry.npmjs.org/undici/-/undici-7.29.1.tgz", - Network accessline 1508
"node_modules/undici-types": { "version": "7.18.2", "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.18.2.tgz", - Network accessline 1509
"version": "7.18.2", "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.18.2.tgz", "integrity": "sha512-AsuCzffGHJybSaRrmr5eHr81mwJU3kjw6M+uprWvCXiNeN9SOGwQ3Jn8jb8m3Z6izVgknn1R0FTCEAP2QrLY/w==", - Network accessline 1510
"resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.18.2.tgz", - Network accessline 1515
"node_modules/vite": { "version": "7.3.6", "resolved": "https://registry.npmjs.org/vite/-/vite-7.3.6.tgz", - Network accessline 1516
"version": "7.3.6", "resolved": "https://registry.npmjs.org/vite/-/vite-7.3.6.tgz", "integrity": "sha512-4XP60spRGjSZFf1qYH+dJIkK2znL3zQfl9KkOV9MkkRR/3Dls0dxaBsQPTloEc5BLXWPL9vsOxopxyKoMmDueg==", - Network accessline 1517
"resolved": "https://registry.npmjs.org/vite/-/vite-7.3.6.tgz", - Network accessline 1534
}, "funding": { "url": "https://github.com/vitejs/vite?sponsor=1" - Network accessline 1535
"funding": { "url": "https://github.com/vitejs/vite?sponsor=1" }, - Network accessline 1536
"url": "https://github.com/vitejs/vite?sponsor=1" - Network accessline 1590
"node_modules/vite-node": { "version": "3.2.4", "resolved": "https://registry.npmjs.org/vite-node/-/vite-node-3.2.4.tgz", - Network accessline 1591
"version": "3.2.4", "resolved": "https://registry.npmjs.org/vite-node/-/vite-node-3.2.4.tgz", "integrity": "sha512-EbKSKh+bh1E1IFxeO0pg1n4dvoOTt0UDiXMd/qn++r98+jPO1xtJilvXldeuQ8giIB5IkpjCgMleHMNEsGH6pg==", - Network accessline 1592
"resolved": "https://registry.npmjs.org/vite-node/-/vite-node-3.2.4.tgz", - Network accessline 1608
}, "funding": { "url": "https://opencollective.com/vitest" - Network accessline 1609
"funding": { "url": "https://opencollective.com/vitest" } - Network accessline 1610
"url": "https://opencollective.com/vitest" - Network accessline 1613
"node_modules/vitest": { "version": "3.2.7", "resolved": "https://registry.npmjs.org/vitest/-/vitest-3.2.7.tgz", - Network accessline 1614
"version": "3.2.7", "resolved": "https://registry.npmjs.org/vitest/-/vitest-3.2.7.tgz", "integrity": "sha512-KrxIJ62Fd89gfysR4WotlgZABiz2dqFPgqGzX7s+CwsqLFomRH7777ZcrOD6+WVAh7khPQP41A+BKbpcJFrdEg==", - Network accessline 1615
"resolved": "https://registry.npmjs.org/vitest/-/vitest-3.2.7.tgz", - Network accessline 1649
}, "funding": { "url": "https://opencollective.com/vitest" - Network accessline 1650
"funding": { "url": "https://opencollective.com/vitest" }, - Network accessline 1651
"url": "https://opencollective.com/vitest" - Network accessline 1686
"node_modules/why-is-node-running": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/why-is-node-running/-/why-is-node-running-2.3.0.tgz", - Network accessline 1687
"version": "2.3.0", "resolved": "https://registry.npmjs.org/why-is-node-running/-/why-is-node-running-2.3.0.tgz", "integrity": "sha512-hUrmaWBdVDcxvYqnyh09zunKzROWjbZTiNy8dBEjkS7ehEDQibXJ7XvlmtbwuTclUiIyN+CyXQD4Vmko8fNm8w==", - Network accessline 1688
"resolved": "https://registry.npmjs.org/why-is-node-running/-/why-is-node-running-2.3.0.tgz", - Network accessline 1703
"node_modules/yaml": { "version": "2.9.1", "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.9.1.tgz", - Network accessline 1704
"version": "2.9.1", "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.9.1.tgz", "integrity": "sha512-3NxN8+78OdzbT7C/WjGsyfPAtJaN3FNDsWxv7Y7mcDsT/oOmgW8BpyQQFFBnvZE3j9Y2Sdz1ULFLezL7Eb2yFw==", - Network accessline 1705
"resolved": "https://registry.npmjs.org/yaml/-/yaml-2.9.1.tgz", - Network accessline 1713
}, "funding": { "url": "https://github.com/sponsors/eemeli" - Network accessline 1714
"funding": { "url": "https://github.com/sponsors/eemeli" } - Network accessline 1715
"url": "https://github.com/sponsors/eemeli"
skills/codexqa-jev-browser/package.json
- Executable scriptline 1
Executable file
skills/codexqa-jev-browser/references/examples.md
skills/codexqa-jev-browser/references/schema.md
skills/codexqa-jev-browser/src/act.ts
- Executable scriptline 1
Executable file - Network accessline 142
const json = step.json !== undefined ? expandDeep(step.json, extra) : undefined; const body = step.body !== undefined ? expandVars(step.body, extra) : undefined; const response = await fetch(url, { - Network accessline 143
const body = step.body !== undefined ? expandVars(step.body, extra) : undefined; const response = await fetch(url, { method: (step.method ?? "GET").toUpperCase(), - Network accessline 144
const response = await fetch(url, {
skills/codexqa-jev-browser/src/agent.ts
- Executable scriptline 1
Executable file
skills/codexqa-jev-browser/src/browser.ts
skills/codexqa-jev-browser/src/cases.ts
- Executable scriptline 1
Executable file - Network accessline 219
const target = expandVars(url, extra); assertHttpUrl(target); const response = await fetch(target, { headers }); - Network accessline 220
assertHttpUrl(target); const response = await fetch(target, { headers }); if (!response.ok) throw new Error(`API ${url} returned HTTP ${response.status}`); - Network accessline 221
const response = await fetch(target, { headers });
skills/codexqa-jev-browser/src/cli.ts
skills/codexqa-jev-browser/src/cloak-install.ts
- Executable scriptline 1
Executable file - Network accessline 210
for (let hop = 0; hop < 5; hop += 1) { assertHttpsUrl(current); const response = await fetch(current, { redirect: "manual" }); - Network accessline 211
assertHttpsUrl(current); const response = await fetch(current, { redirect: "manual" }); if (response.status >= 300 && response.status < 400) { - Network accessline 212
const response = await fetch(current, { redirect: "manual" });
skills/codexqa-jev-browser/src/cloak.ts
skills/codexqa-jev-browser/src/config.ts
- Executable scriptline 1
Executable file - Network accessline 16
reportsDir: "reports", model: { baseUrl: process.env.OPENAI_BASE_URL || "https://api.openai.com/v1", - Network accessline 17
[Credential-related source omitted] - Network accessline 18
baseUrl: process.env.OPENAI_BASE_URL || "https://api.openai.com/v1", - Access to secretsline 19
[Credential-related source omitted] - Network accessline 23
[Credential-related source omitted] - Access to secretsline 23
[Credential-related source omitted] - Network accessline 24
typesafeModel: process.env.TYPESAFE_MODEL || "jev-latest", typesafeBaseUrl: process.env.TYPESAFE_BASE_URL || "https://api.typesafe.ai/v1", }, - Network accessline 25
typesafeBaseUrl: process.env.TYPESAFE_BASE_URL || "https://api.typesafe.ai/v1", - Access to secretsline 43
[Credential-related source omitted] - Access to secretsline 52
[Credential-related source omitted] - Access to secretsline 56
[Credential-related source omitted] - Access to secretsline 94
[Credential-related source omitted] - Access to secretsline 123
[Credential-related source omitted] - Access to secretsline 126
[Credential-related source omitted]
skills/codexqa-jev-browser/src/errors.ts
- Executable scriptline 1
Executable file
skills/codexqa-jev-browser/src/explore.ts
- Executable scriptline 1
Executable file
skills/codexqa-jev-browser/src/generate.ts
- Executable scriptline 1
Executable file
skills/codexqa-jev-browser/src/jev.ts
skills/codexqa-jev-browser/src/knowledge-draft.ts
- Executable scriptline 1
Executable file
skills/codexqa-jev-browser/src/knowledge.ts
- Executable scriptline 1
Executable file
skills/codexqa-jev-browser/src/model-http.ts
- Executable scriptline 1
Executable file
skills/codexqa-jev-browser/src/observe/snapshot.dom.js
- Executable scriptline 1
Executable file
skills/codexqa-jev-browser/src/observe/snapshot.ts
- Executable scriptline 1
Executable file - Network accessline 166
function shortHref(href: string): string { try { const url = new URL(href, "https://local.invalid"); - Network accessline 167
try { const url = new URL(href, "https://local.invalid"); const path = `${url.hostname}${url.pathname}`.replace(/\/$/, ""); - Network accessline 168
const url = new URL(href, "https://local.invalid");
skills/codexqa-jev-browser/src/policy.ts
skills/codexqa-jev-browser/src/record.ts
- Executable scriptline 1
Executable file
skills/codexqa-jev-browser/src/report.ts
- Executable scriptline 1
Executable file
skills/codexqa-jev-browser/src/runner.ts
- Executable scriptline 1
Executable file
skills/codexqa-jev-browser/src/types.ts
- Executable scriptline 1
Executable file
skills/codexqa-jev-browser/src/util.ts
- Executable scriptline 1
Executable file
skills/codexqa-jev-browser/src/verify.ts
- Executable scriptline 1
Executable file
skills/codexqa-jev-browser/tests/cloak.test.ts
- Executable scriptline 1
Executable file - Network accessline 75
expect(cloakGeoIpUrl()).toBe(""); expect(() => cloakArchiveUrl("darwin-arm64", "145.0.7632.109.2")).toThrow(/CLOAKBROWSER_DOWNLOAD_URL/); process.env.CLOAKBROWSER_DOWNLOAD_URL = "http://mirror.example/cloak"; - Network accessline 76
expect(() => cloakArchiveUrl("darwin-arm64", "145.0.7632.109.2")).toThrow(/CLOAKBROWSER_DOWNLOAD_URL/); process.env.CLOAKBROWSER_DOWNLOAD_URL = "http://mirror.example/cloak"; expect(() => cloakArchiveUrl("darwin-arm64", "145.0.7 - Network accessline 77
process.env.CLOAKBROWSER_DOWNLOAD_URL = "http://mirror.example/cloak"; - Network accessline 78
expect(() => cloakArchiveUrl("darwin-arm64", "145.0.7632.109.2")).toThrow(/https/); process.env.CLOAKBROWSER_DOWNLOAD_URL = "https://mirror.example/cloak"; expect(cloakArchiveUrl("darwin-arm64", "145.0.7632.109.2")).toBe( - Network accessline 79
process.env.CLOAKBROWSER_DOWNLOAD_URL = "https://mirror.example/cloak"; - Network accessline 80
expect(cloakArchiveUrl("darwin-arm64", "145.0.7632.109.2")).toBe( "https://mirror.example/cloak/chromium-v145.0.7632.109.2/cloakbrowser-darwin-arm64.tar.gz", ); - Network accessline 81
"https://mirror.example/cloak/chromium-v145.0.7632.109.2/cloakbrowser-darwin-arm64.tar.gz", - Network accessline 82
); expect(cloakArchiveUrl("windows-x64", "146.0.7680.177.5")).toBe( "https://mirror.example/cloak/chromium-v146.0.7680.177.5/cloakbrowser-windows-x64.zip", - Network accessline 83
expect(cloakArchiveUrl("windows-x64", "146.0.7680.177.5")).toBe( "https://mirror.example/cloak/chromium-v146.0.7680.177.5/cloakbrowser-windows-x64.zip", ); - Network accessline 84
"https://mirror.example/cloak/chromium-v146.0.7680.177.5/cloakbrowser-windows-x64.zip", - Network accessline 85
); process.env.CLOAKBROWSER_GEOIP_URL = "https://mirror.example/geoip.mmdb"; expect(cloakGeoIpUrl()).toBe("https://mirror.example/geoip.mmdb"); - Network accessline 86
process.env.CLOAKBROWSER_GEOIP_URL = "https://mirror.example/geoip.mmdb"; - Network accessline 87
expect(cloakGeoIpUrl()).toBe("https://mirror.example/geoip.mmdb"); - Network accessline 105
try { await expect(ensureCloakBrowser({ force: true })).rejects.toThrow(/CLOAKBROWSER_DOWNLOAD_URL/); process.env.CLOAKBROWSER_DOWNLOAD_URL = "https://mirror.example/cloak"; - Network accessline 106
await expect(ensureCloakBrowser({ force: true })).rejects.toThrow(/CLOAKBROWSER_DOWNLOAD_URL/); process.env.CLOAKBROWSER_DOWNLOAD_URL = "https://mirror.example/cloak"; process.env.CLOAKBROWSER_VERSION = process.env.CLOAKBROWSER_ - Network accessline 107
process.env.CLOAKBROWSER_DOWNLOAD_URL = "https://mirror.example/cloak";
skills/codexqa-jev-browser/tests/compiler-report.test.ts
- Executable scriptline 1
Executable file - Network accessline 58
], }, "https://example.com", - Network accessline 59
}, "https://example.com", "scroll", - Network accessline 60
"https://example.com", - Network accessline 86
pageChanged: true, durationMs: 1, url: "https://example.com/app", - Network accessline 87
durationMs: 1, url: "https://example.com/app", matched: { role: "button", name: "进入", within: "登录" }, - Network accessline 88
url: "https://example.com/app", - Network accessline 91
], }, "https://example.com/login", - Network accessline 92
}, "https://example.com/login", ); - Network accessline 93
"https://example.com/login", - Network accessline 162
observeMs: 186, observed: { url: "https://example.com", - Network accessline 163
observed: { url: "https://example.com", title: "搜索", - Network accessline 164
url: "https://example.com", - Network accessline 176
observeAfterMs: 40, assertVerdict: "pass", url: "https://example.com", - Network accessline 177
assertVerdict: "pass", url: "https://example.com", title: "搜索", - Network accessline 178
url: "https://example.com",
skills/codexqa-jev-browser/tests/config-env.test.ts
- Executable scriptline 1
Executable file - Access to secretsline 14
[Credential-related source omitted] - Access to secretsline 38
[Credential-related source omitted] - Access to secretsline 40
[Credential-related source omitted] - Access to secretsline 42
[Credential-related source omitted] - Access to secretsline 47
[Credential-related source omitted] - Access to secretsline 50
[Credential-related source omitted] - Access to secretsline 53
[Credential-related source omitted] - Access to secretsline 54
[Credential-related source omitted] - Network accessline 61
const config = loadConfig(path.join(root, "codexqa-jev-browser.config.yaml")); expect(config.model.apiKey).toBe(""); expect(config.model.baseUrl).toBe("https://api.openai.com/v1"); - Network accessline 62
expect(config.model.apiKey).toBe(""); expect(config.model.baseUrl).toBe("https://api.openai.com/v1"); expect(config.model.model).toBe("gpt-4o-mini"); - Network accessline 63
expect(config.model.baseUrl).toBe("https://api.openai.com/v1"); - Network accessline 70
const config = applyCliOverrides(defaultConfig(), { model: "gpt-test", baseUrl: "https://example.test/v1", - Network accessline 71
model: "gpt-test", baseUrl: "https://example.test/v1", }); - Network accessline 72
baseUrl: "https://example.test/v1", - Network accessline 73
}); expect(config.model.model).toBe("gpt-test"); expect(config.model.baseUrl).toBe("https://example.test/v1"); - Network accessline 74
expect(config.model.model).toBe("gpt-test"); expect(config.model.baseUrl).toBe("https://example.test/v1"); }); - Network accessline 75
expect(config.model.baseUrl).toBe("https://example.test/v1"); - Access to secretsline 80
[Credential-related source omitted] - Access to secretsline 87
[Credential-related source omitted] - Network accessline 95
]); expect(fileArgs(["run", "--headed", "cases/examples/login.yaml"], "run")).toEqual(["cases/examples/login.yaml"]); expect(fileArgs(["run", "--from-api", "https://qa.example.com/cases", "cases/examples/login.yaml"], "run")).toEqua - Network accessline 96
expect(fileArgs(["run", "--headed", "cases/examples/login.yaml"], "run")).toEqual(["cases/examples/login.yaml"]); expect(fileArgs(["run", "--from-api", "https://qa.example.com/cases", "cases/examples/login.yaml"], "run")).toEqual([ - Network accessline 97
expect(fileArgs(["run", "--from-api", "https://qa.example.com/cases", "cases/examples/login.yaml"], "run")).toEqual([ - Access to secretsline 118
[Credential-related source omitted] - Access to secretsline 121
[Credential-related source omitted]
skills/codexqa-jev-browser/tests/jev.test.ts
- Executable scriptline 1
Executable file - Network accessline 8
function page(...elements: ObservedElement[]): PageState { return { url: "https://www.baidu.com/", - Network accessline 9
return { url: "https://www.baidu.com/", title: "百度", - Network accessline 10
url: "https://www.baidu.com/", - Network accessline 60
const config = defaultConfig(); config.model.typesafeModel = "jev-latest"; const body = buildJevRequest(config, { url: "https://www.baidu.com/", title: "百度" }, "搜索携程", [], space); - Network accessline 61
config.model.typesafeModel = "jev-latest"; const body = buildJevRequest(config, { url: "https://www.baidu.com/", title: "百度" }, "搜索携程", [], space); const questions = body.questions as Record<string, { criteria: Record<string, unknow - Network accessline 62
const body = buildJevRequest(config, { url: "https://www.baidu.com/", title: "百度" }, "搜索携程", [], space); - Network accessline 80
); const goal = "从百度搜索「携程旅行网」并打开携程官网。出发地北京,目的地三亚(不是上海、不是深圳)。去程2026-10-01。"; const body = buildJevRequest(defaultConfig(), { url: "https://flights.ctrip.com/", title: "机票" }, goal, [], space); - Network accessline 81
const goal = "从百度搜索「携程旅行网」并打开携程官网。出发地北京,目的地三亚(不是上海、不是深圳)。去程2026-10-01。"; const body = buildJevRequest(defaultConfig(), { url: "https://flights.ctrip.com/", title: "机票" }, goal, [], space); const questions = body.questions as Record< - Network accessline 82
const body = buildJevRequest(defaultConfig(), { url: "https://flights.ctrip.com/", title: "机票" }, goal, [], space); - Network accessline 102
const config = defaultConfig(); config.model.typesafeApiKey = "apikey_test"; config.model.typesafeBaseUrl = "https://typesafe.example/v1"; - Network accessline 103
config.model.typesafeApiKey = "apikey_test"; config.model.typesafeBaseUrl = "https://typesafe.example/v1"; const judged = await jevAssert(config, { - Network accessline 104
config.model.typesafeBaseUrl = "https://typesafe.example/v1"; - Network accessline 107
value: "携程旅行网", after: { url: "https://www.baidu.com/", - Network accessline 108
after: { url: "https://www.baidu.com/", title: "百度一下", - Network accessline 109
url: "https://www.baidu.com/", - Network accessline 126
const body = buildJevRequest( defaultConfig(), { url: "https://example.com/login", title: "login" }, - Network accessline 127
defaultConfig(), { url: "https://example.com/login", title: "login" }, "登录", - Network accessline 128
{ url: "https://example.com/login", title: "login" }, - Network accessline 150
name: "携程官网", operations: ["CLICK"], href: "https://www.baidu.com/s?wd=%E6%90%BA%E7%A8%8B%E5%AE%98%E7%BD%91", - Network accessline 151
operations: ["CLICK"], href: "https://www.baidu.com/s?wd=%E6%90%BA%E7%A8%8B%E5%AE%98%E7%BD%91", }), - Network accessline 152
href: "https://www.baidu.com/s?wd=%E6%90%BA%E7%A8%8B%E5%AE%98%E7%BD%91", - Network accessline 158
name: "www.ctrip.com", operations: ["CLICK"], href: "https://www.ctrip.com/", - Network accessline 159
operations: ["CLICK"], href: "https://www.ctrip.com/", }), - Network accessline 160
href: "https://www.ctrip.com/", - Network accessline 162
), ); const body = buildJevRequest(defaultConfig(), { url: "https://www.baidu.com/s", title: "携程_百度搜索" }, "打开携程官网", [], space); - Network accessline 163
); const body = buildJevRequest(defaultConfig(), { url: "https://www.baidu.com/s", title: "携程_百度搜索" }, "打开携程官网", [], space); const criteria = (body.questions as { click_target: { criteria: Record<string, { element: string }> } }).cl - Network accessline 164
const body = buildJevRequest(defaultConfig(), { url: "https://www.baidu.com/s", title: "携程_百度搜索" }, "打开携程官网", [], space); - Network accessline 193
const config = defaultConfig(); config.model.typesafeApiKey = "apikey_test"; config.model.typesafeBaseUrl = "https://typesafe.example/v1"; - Network accessline 194
config.model.typesafeApiKey = "apikey_test"; config.model.typesafeBaseUrl = "https://typesafe.example/v1"; const checked = await jevConfirmDone( - Network accessline 195
config.model.typesafeBaseUrl = "https://typesafe.example/v1"; - Network accessline 196
const checked = await jevConfirmDone( config, { url: "https://flights.ctrip.com/online/list/round-bjs-kmg?depdate=2026-10-01_2026-10-07", title: "北京到昆明", text: "", elements: [] }, - Network accessline 197
config, { url: "https://flights.ctrip.com/online/list/round-bjs-kmg?depdate=2026-10-01_2026-10-07", title: "北京到昆明", text: "", elements: [] }, "页面上可见北京到昆明的航班列表", - Network accessline 198
{ url: "https://flights.ctrip.com/online/list/round-bjs-kmg?depdate=2026-10-01_2026-10-07", title: "北京到昆明", text: "", elements: [] }, - Network accessline 217
), ); const body = buildJevRequest(defaultConfig(), { url: "https://search.jd.com/", title: "搜索" }, "读出价格", [], space); - Network accessline 218
); const body = buildJevRequest(defaultConfig(), { url: "https://search.jd.com/", title: "搜索" }, "读出价格", [], space); const questions = body.questions as Record<string, { criteria: Record<string, { element?: string }> }>; - Network accessline 219
const body = buildJevRequest(defaultConfig(), { url: "https://search.jd.com/", title: "搜索" }, "读出价格", [], space);
skills/codexqa-jev-browser/tests/live.test.ts
- Executable scriptline 1
Executable file - Network accessline 314
[Credential-related source omitted] - Network accessline 315
[Credential-related source omitted] - Network accessline 316
[Credential-related source omitted] - Network accessline 317
{ op: "http", url: "https://example.test/${token}", expect_status: 200 }, - Network accessline 324
expect(result.status).toBe("fail"); expect(result.steps[1].status).toBe("pass"); expect(result.steps[1].http?.url).toBe("https://example.test/abc"); - Network accessline 325
expect(result.steps[1].status).toBe("pass"); expect(result.steps[1].http?.url).toBe("https://example.test/abc"); expect(result.steps[2].status).toBe("fail"); - Network accessline 326
expect(result.steps[1].http?.url).toBe("https://example.test/abc"); - Network accessline 364
const runner = new CaseRunner(session, writer); await runner.runCase(normalizeCase({ id: "first", start: { url: app, storage_state: first }, steps: [{ op: "wait", wait_ms: 1 }] })); const afterFirst = await session.page?.context - Network accessline 365
await runner.runCase(normalizeCase({ id: "first", start: { url: app, storage_state: first }, steps: [{ op: "wait", wait_ms: 1 }] })); const afterFirst = await session.page?.context().cookies("https://example.com"); expect(afterF - Network accessline 366
const afterFirst = await session.page?.context().cookies("https://example.com"); - Network accessline 367
expect(afterFirst?.map((item) => item.value)).toEqual(["one"]); await runner.runCase(normalizeCase({ id: "second", start: { url: app, storage_state: second }, steps: [{ op: "wait", wait_ms: 1 }] })); const afterSecond = await se - Network accessline 368
await runner.runCase(normalizeCase({ id: "second", start: { url: app, storage_state: second }, steps: [{ op: "wait", wait_ms: 1 }] })); const afterSecond = await session.page?.context().cookies("https://example.com"); expect(aft - Network accessline 369
const afterSecond = await session.page?.context().cookies("https://example.com");
skills/codexqa-jev-browser/tests/loaders.test.ts
- Executable scriptline 1
Executable file - Network accessline 48
new Response(payload, { status: 200, headers: { "content-type": "application/json" } }); try { const cases = await loadApiCases("https://qa.example.com/cases", defaultConfig()); - Network accessline 49
try { const cases = await loadApiCases("https://qa.example.com/cases", defaultConfig()); expect(cases[0].id).toBe("api-search-docs"); - Network accessline 50
const cases = await loadApiCases("https://qa.example.com/cases", defaultConfig()); - Network accessline 66
const item = normalizeCase({ id: "auth", start: { url: "https://example.com/${UI_PILOT_PATH}", storage_state: "auth.json" }, - Network accessline 67
id: "auth", start: { url: "https://example.com/${UI_PILOT_PATH}", storage_state: "auth.json" }, steps: [ - Network accessline 68
start: { url: "https://example.com/${UI_PILOT_PATH}", storage_state: "auth.json" }, - Network accessline 69
[Credential-related source omitted] - Network accessline 70
[Credential-related source omitted] - Access to secretsline 70
[Credential-related source omitted] - Access to secretsline 71
[Credential-related source omitted] - Network accessline 73
}); expect(item.start.storageState).toBe("auth.json"); expect(item.start.url).toBe("https://example.com/${UI_PILOT_PATH}"); - Network accessline 74
expect(item.start.storageState).toBe("auth.json"); expect(item.start.url).toBe("https://example.com/${UI_PILOT_PATH}"); expect(item.steps[0].url).toBe("https://example.com/${UI_PILOT_HTTP_TOKEN}"); - Network accessline 75
expect(item.start.url).toBe("https://example.com/${UI_PILOT_PATH}"); - Network accessline 76
[Credential-related source omitted] - Access to secretsline 76
[Credential-related source omitted] - Network accessline 77
[Credential-related source omitted] - Access to secretsline 77
[Credential-related source omitted] - Network accessline 78
[Credential-related source omitted] - Network accessline 79
[Credential-related source omitted] - Network accessline 96
writeFileSync( path.join(dir, "ok.yaml"), "id: ok\nname: ok\nstart: https://example.com\nsteps:\n - op: wait\n wait_ms: 1\n", - Network accessline 97
path.join(dir, "ok.yaml"), "id: ok\nname: ok\nstart: https://example.com\nsteps:\n - op: wait\n wait_ms: 1\n", ); - Network accessline 98
"id: ok\nname: ok\nstart: https://example.com\nsteps:\n - op: wait\n wait_ms: 1\n",
skills/codexqa-jev-browser/tests/locator-policy.test.ts
- Executable scriptline 1
Executable file - Network accessline 9
function page(...elements: ObservedElement[]): PageState { return { url: "https://example.com", - Network accessline 10
return { url: "https://example.com", title: "t", - Network accessline 11
url: "https://example.com", - Network accessline 142
const space = buildSpace( page( el({ index: "1", node: 1, role: "link", name: "", href: "https://www.jd.com/", operations: ["CLICK"] }), - Network accessline 143
page( el({ index: "1", node: 1, role: "link", name: "", href: "https://www.jd.com/", operations: ["CLICK"] }), el({ - Network accessline 144
el({ index: "1", node: 1, role: "link", name: "", href: "https://www.jd.com/", operations: ["CLICK"] }), - Network accessline 148
role: "link", name: "Apple iPhone 17 Pro Max 256GB", href: "https://item.jd.com/1001.html", - Network accessline 149
name: "Apple iPhone 17 Pro Max 256GB", href: "https://item.jd.com/1001.html", operations: ["CLICK"], - Network accessline 150
href: "https://item.jd.com/1001.html",
skills/codexqa-jev-browser/tests/model-http.test.ts
- Executable scriptline 1
Executable file - Network accessline 18
it("prefers HTTPS_PROXY from the environment", async () => { process.env.HTTPS_PROXY = "http://127.0.0.1:6553"; - Network accessline 19
process.env.HTTPS_PROXY = "http://127.0.0.1:6553"; - Network accessline 20
resetModelProxyCache(); expect(envProxyUrl()).toBe("http://127.0.0.1:6553"); expect(await resolveModelProxy()).toBe("http://127.0.0.1:6553"); - Network accessline 21
expect(envProxyUrl()).toBe("http://127.0.0.1:6553"); - Network accessline 22
expect(await resolveModelProxy()).toBe("http://127.0.0.1:6553");
skills/codexqa-jev-browser/tests/model-proxy-retry.test.ts
- Executable scriptline 1
Executable file - Network accessline 22
describe("model proxy failure", () => { it("does not retry a proxied model call on the direct network", async () => { process.env.HTTPS_PROXY = "http://127.0.0.1:6553"; - Network accessline 23
it("does not retry a proxied model call on the direct network", async () => { process.env.HTTPS_PROXY = "http://127.0.0.1:6553"; resetModelProxyCache(); - Network accessline 24
process.env.HTTPS_PROXY = "http://127.0.0.1:6553"; - Network accessline 25
resetModelProxyCache(); fetchMock.mockRejectedValue(new Error("proxy down")); await expect(modelFetch("https://api.example.com/v1/chat/completions", { method: "POST", body: "{}" })).rejects.toThrow( - Network accessline 26
fetchMock.mockRejectedValue(new Error("proxy down")); await expect(modelFetch("https://api.example.com/v1/chat/completions", { method: "POST", body: "{}" })).rejects.toThrow( /proxy down/, - Network accessline 27
await expect(modelFetch("https://api.example.com/v1/chat/completions", { method: "POST", body: "{}" })).rejects.toThrow(
skills/codexqa-jev-browser/tests/regressions.test.ts
- Executable scriptline 1
Executable file - Network accessline 46
); const state: PageState = { url: "https://example.com/form", - Network accessline 47
const state: PageState = { url: "https://example.com/form", title: "Form", - Network accessline 48
url: "https://example.com/form", - Network accessline 78
[Credential-related source omitted] - Network accessline 79
[Credential-related source omitted] - Network accessline 80
config.model.baseUrl = "https://text.example/v1"; - Network accessline 104
}); const state: PageState = { url: "https://example.com/form", - Network accessline 105
const state: PageState = { url: "https://example.com/form", title: "Form", - Network accessline 106
url: "https://example.com/form", - Network accessline 136
[Credential-related source omitted] - Network accessline 137
[Credential-related source omitted] - Network accessline 138
config.model.baseUrl = "https://text.example/v1"; - Network accessline 267
function pricePage(): PageState { return { url: "https://search.jd.com/Search?keyword=iPhone%2018%20Pro%20Max", - Network accessline 268
return { url: "https://search.jd.com/Search?keyword=iPhone%2018%20Pro%20Max", title: "iPhone 18 - 商品搜索 - 京东", - Network accessline 269
url: "https://search.jd.com/Search?keyword=iPhone%2018%20Pro%20Max", - Network accessline 304
function flightPage(): PageState { return { url: "https://flights.example/home", - Network accessline 305
return { url: "https://flights.example/home", title: "机票", - Network accessline 306
url: "https://flights.example/home", - Network accessline 353
it("drafts a note from the failed control and writes it only when accepted", () => { const note = draftKnowledgeNote({ url: "https://www.example.com/login", - Network accessline 354
const note = draftKnowledgeNote({ url: "https://www.example.com/login", goal: "打开「工作台」并不要点退出", - Network accessline 355
url: "https://www.example.com/login", - Network accessline 381
const moved = draftKnowledgeNote({ url: "https://flights.ctrip.com/home", - Network accessline 382
url: "https://flights.ctrip.com/home", - Network accessline 402
const plain = draftKnowledgeNote({ url: "https://shop.example.co.uk/home", - Network accessline 403
url: "https://shop.example.co.uk/home", - Network accessline 412
const english = draftKnowledgeNote({ url: "https://example.com/docs", - Network accessline 413
url: "https://example.com/docs",
skills/codexqa-jev-browser/tests/step-opt.test.ts
- Executable scriptline 1
Executable file - Network accessline 39
it("attaches matching business notes for the text model", async () => { const notes = retrieveKnowledge({ goal: sanyaGoal, url: "https://www.baidu.com/" }); - Network accessline 40
const notes = retrieveKnowledge({ goal: sanyaGoal, url: "https://www.baidu.com/" }); - Network accessline 55
[Credential-related source omitted] - Network accessline 56
[Credential-related source omitted] - Network accessline 57
[Credential-related source omitted] - Network accessline 68
it("checks the page after the action, not whether the whole goal is done", () => { const before = { url: "https://www.baidu.com/", - Network accessline 69
const before = { url: "https://www.baidu.com/", title: "百度一下,你就知道", - Network accessline 70
url: "https://www.baidu.com/", - Network accessline 77
before, after: { url: "https://www.baidu.com/s?wd=携程", - Network accessline 78
after: { url: "https://www.baidu.com/s?wd=携程", title: "携程旅行网_百度搜索", - Network accessline 79
url: "https://www.baidu.com/s?wd=携程", - Network accessline 114
value: "Pilot", before: { url: "https://example.com", - Network accessline 115
before: { url: "https://example.com", title: "Demo", - Network accessline 116
url: "https://example.com", - Network accessline 119
}, after: { url: "https://example.com", - Network accessline 120
after: { url: "https://example.com", title: "Demo", - Network accessline 121
url: "https://example.com", - Network accessline 137
matched: { node: 2, role: "textbox", name: "请选择日期", within: "" }, before: { url: "https://example.com", - Network accessline 138
before: { url: "https://example.com", title: "机票", - Network accessline 139
url: "https://example.com", - Network accessline 145
}, after: { url: "https://example.com", - Network accessline 146
after: { url: "https://example.com", title: "机票", - Network accessline 147
url: "https://example.com", - Network accessline 161
matched: { node: 1, role: "textbox", name: "密码" }, before: { url: "https://example.com/login", - Network accessline 162
before: { url: "https://example.com/login", title: "登录", - Network accessline 163
url: "https://example.com/login", - Network accessline 166
}, after: { url: "https://example.com/login", - Network accessline 167
after: { url: "https://example.com/login", title: "登录", - Network accessline 168
url: "https://example.com/login", - Network accessline 179
matched: { node: 1, role: "textbox", name: "搜索" }, before: { url: "https://www.baidu.com/", - Network accessline 180
before: { url: "https://www.baidu.com/", title: "百度", - Network accessline 181
url: "https://www.baidu.com/", - Network accessline 185
}, after: { url: "https://www.baidu.com/s?wd=携程", - Network accessline 186
after: { url: "https://www.baidu.com/s?wd=携程", title: "携程_百度搜索", - Network accessline 187
url: "https://www.baidu.com/s?wd=携程", - Network accessline 199
matched: { node: 1, role: "textbox", name: "搜索" }, before: { url: "https://www.baidu.com/", - Network accessline 200
before: { url: "https://www.baidu.com/", title: "百度", - Network accessline 201
url: "https://www.baidu.com/", - Network accessline 205
}, after: { url: "https://www.baidu.com/", - Network accessline 206
after: { url: "https://www.baidu.com/", title: "百度", - Network accessline 207
url: "https://www.baidu.com/", - Network accessline 219
matched: { node: 1, role: "textbox", name: "可输入城市" }, before: { url: "https://flights.example.com/", - Network accessline 220
before: { url: "https://flights.example.com/", title: "机票", - Network accessline 221
url: "https://flights.example.com/", - Network accessline 225
}, after: { url: "https://flights.example.com/", - Network accessline 226
after: { url: "https://flights.example.com/", title: "机票", - Network accessline 227
url: "https://flights.example.com/", - Network accessline 241
matched: { node: 1, role: "textbox", name: "搜索" }, before: { url: "https://www.ctrip.com/", - Network accessline 242
before: { url: "https://www.ctrip.com/", title: "携程旅行网", - Network accessline 243
url: "https://www.ctrip.com/", - Network accessline 248
}, after: { url: "https://www.ctrip.com/error", - Network accessline 249
after: { url: "https://www.ctrip.com/error", title: "携程旅行网", - Network accessline 250
url: "https://www.ctrip.com/error", - Network accessline 262
matched: { node: 1, role: "textbox", name: "搜索" }, before: { url: "https://www.baidu.com/", - Network accessline 263
before: { url: "https://www.baidu.com/", title: "百度", - Network accessline 264
url: "https://www.baidu.com/", - Network accessline 268
}, after: { url: "https://www.baidu.com/s?wd=%E6%90%BA%E7%A8%8B", - Network accessline 269
after: { url: "https://www.baidu.com/s?wd=%E6%90%BA%E7%A8%8B", title: "百度搜索", - Network accessline 270
url: "https://www.baidu.com/s?wd=%E6%90%BA%E7%A8%8B", - Network accessline 299
[Credential-related source omitted] - Network accessline 300
[Credential-related source omitted] - Network accessline 301
config.model.baseUrl = "https://planner.example/v1"; - Network accessline 318
[Credential-related source omitted] - Network accessline 319
[Credential-related source omitted] - Network accessline 320
config.model.baseUrl = "https://planner.example/v1"; - Network accessline 321
const page = { url: "https://www.xiaohongshu.com/search_result_ai?keyword=AI", title: "AI最新新闻 - 小红书搜索", - Network accessline 322
url: "https://www.xiaohongshu.com/search_result_ai?keyword=AI",
skills/codexqa-jev-browser/vitest.config.ts
- Executable scriptline 1
Executable file
skills/codexqa-requirement-analyzer/CONTRIBUTING.md
- Network accessline 20
See the repository [SECURITY.md](https://github.com/openqa-cn/codexqa/blob/main/SECURITY.md).
skills/codexqa-requirement-analyzer/HOW_IT_WORKS.md
- Network accessline 9
Agents read [`SKILL.md`](SKILL.md) then [`prompts/codexqa-requirement-analyzer.md`](prompts/codexqa-requirement-analyzer.md), not this page. Gaps: [Known limitations](KNOWN_LIMITATIONS.md). Sample register: [preview](https://htmlpreview.git - Network accessline 21
The model judges wording and conflicts. Grids in `references/` decide what “complete” means. Writing cases is [`codexqa-testcase-generator`](https://github.com/openqa-cn/codexqa/blob/main/skills/codexqa-testcase-generator/README.md). - Network accessline 82
| Quality bar | [`prompts/codexqa-requirement-analyzer.md`](prompts/codexqa-requirement-analyzer.md) | | Shortest path | [`quick-start.md`](quick-start.md) | | What each published skill takes | [FAQ](https://github.com/openqa-cn/codexqa/blo - Network accessline 84
| What each published skill takes | [FAQ](https://github.com/openqa-cn/codexqa/blob/main/docs/FAQ.md) |
skills/codexqa-requirement-analyzer/HOW_IT_WORKS.zh-CN.md
- Network accessline 9
Agent 运行时读 [`SKILL.md`](SKILL.md) 再读 [`prompts/codexqa-requirement-analyzer.md`](prompts/codexqa-requirement-analyzer.md),不要读本页。能力边界见[已知边界](KNOWN_LIMITATIONS.zh-CN.md)。登记表样例:[预览页](https://htmlpreview.github.io/?https://github.com/openqa-cn/ - Network accessline 21
模型判断措辞和冲突。`references/` 里的格子定义「完整」是什么。写用例是 [`codexqa-testcase-generator`](https://github.com/openqa-cn/codexqa/blob/main/skills/codexqa-testcase-generator/README.zh-CN.md)。 - Network accessline 82
| 质量条 | [`prompts/codexqa-requirement-analyzer.md`](prompts/codexqa-requirement-analyzer.md) | | 最短路径 | [`quick-start.md`](quick-start.md) | | 各 skill 要交什么 | [FAQ](https://github.com/openqa-cn/codexqa/blob/main/docs/FAQ.zh-CN.md) | - Network accessline 84
| 各 skill 要交什么 | [FAQ](https://github.com/openqa-cn/codexqa/blob/main/docs/FAQ.zh-CN.md) |
skills/codexqa-requirement-analyzer/README.md
- Network accessline 9
<p align="center"> <a href="https://htmlpreview.github.io/?https://github.com/openqa-cn/codexqa/blob/main/docs/assets/previews/ra-register.html"><img src="https://raw.githubusercontent.com/openqa-cn/codexqa/main/docs/assets/previews/ra-re - Network accessline 10
<a href="https://htmlpreview.github.io/?https://github.com/openqa-cn/codexqa/blob/main/docs/assets/previews/ra-register.html"><img src="https://raw.githubusercontent.com/openqa-cn/codexqa/main/docs/assets/previews/ra-register.png" alt="Samp - Network accessline 13
It is **not** [`codexqa-testcase-generator`](https://github.com/openqa-cn/codexqa/blob/main/skills/codexqa-testcase-generator/README.md). That skill writes test plans and manual cases from local requirements (files, paste, or HTTPS docs). T
skills/codexqa-requirement-analyzer/README.zh-CN.md
- Network accessline 9
<p align="center"> <a href="https://htmlpreview.github.io/?https://github.com/openqa-cn/codexqa/blob/main/docs/assets/previews/ra-register.html"><img src="https://raw.githubusercontent.com/openqa-cn/codexqa/main/docs/assets/previews/ra-re - Network accessline 10
<a href="https://htmlpreview.github.io/?https://github.com/openqa-cn/codexqa/blob/main/docs/assets/previews/ra-register.html"><img src="https://raw.githubusercontent.com/openqa-cn/codexqa/main/docs/assets/previews/ra-register.png" alt="需求分析 - Network accessline 13
**不是** [`codexqa-testcase-generator`](https://github.com/openqa-cn/codexqa/blob/main/skills/codexqa-testcase-generator/README.zh-CN.md)。那个 skill 根据本地需求(文件、粘贴或 HTTPS 文档)写测试方案与手工用例。本 skill 审的是需求本身是否完整、一致、可测。
skills/codexqa-requirement-analyzer/scripts/batch_convert_templates.ts
- Executable scriptline 1
Executable file
skills/codexqa-requirement-analyzer/scripts/common_parser.ts
- Executable scriptline 1
Executable file
skills/codexqa-requirement-analyzer/scripts/convert_formats.ts
- Executable scriptline 1
Executable file
skills/codexqa-requirement-analyzer/scripts/convert_output_formats.ts
- Executable scriptline 1
Executable file
skills/codexqa-requirement-analyzer/scripts/convert_to_csv.ts
- Executable scriptline 1
Executable file
skills/codexqa-requirement-analyzer/scripts/convert_to_excel.ts
- Executable scriptline 1
Executable file
skills/codexqa-requirement-analyzer/scripts/convert_to_json.ts
- Executable scriptline 1
Executable file
skills/codexqa-requirement-analyzer/scripts/convert_to_markdown.ts
- Executable scriptline 1
Executable file
skills/codexqa-requirement-analyzer/scripts/convert_to_word.ts
- Executable scriptline 1
Executable file
skills/codexqa-requirement-analyzer/scripts/convert_to_xmind.ts
- Executable scriptline 1
Executable file
skills/codexqa-requirement-analyzer/scripts/office_io.ts
- Executable scriptline 1
Executable file
skills/codexqa-requirement-analyzer/scripts/parse_csv.ts
- Executable scriptline 1
Executable file
skills/codexqa-requirement-analyzer/scripts/parse_excel.ts
- Executable scriptline 1
Executable file
skills/codexqa-requirement-analyzer/scripts/parse_formats.ts
- Executable scriptline 1
Executable file
skills/codexqa-requirement-analyzer/scripts/parse_html.ts
- Executable scriptline 1
Executable file
skills/codexqa-requirement-analyzer/scripts/parse_json.ts
- Executable scriptline 1
Executable file
skills/codexqa-requirement-analyzer/scripts/parse_markdown.ts
- Executable scriptline 1
Executable file
skills/codexqa-requirement-analyzer/scripts/parse_output_formats.ts
- Executable scriptline 1
Executable file
skills/codexqa-requirement-analyzer/scripts/parse_pdf.ts
- Executable scriptline 1
Executable file
skills/codexqa-requirement-analyzer/scripts/parse_word.ts
- Executable scriptline 1
Executable file
skills/codexqa-requirement-analyzer/scripts/parse_xmind.ts
- Executable scriptline 1
Executable file
skills/codexqa-requirement-analyzer/scripts/run_analysis.ts
- Executable scriptline 1
Executable file
skills/codexqa-rootcause-analyzer/README.md
- Network accessline 7
It is **not** [`codexqa-code-analyzer`](https://github.com/openqa-cn/codexqa/blob/main/skills/codexqa-code-analyzer/README.md) (symbol-graph impact / callers / test gaps), **not** [`codexqa-defect-analyzer`](https://github.com/openqa-cn/cod - Network accessline 12
- `git` on `PATH` when the input is a remote repository - `@openqa-cn/codexqa` CLI on PATH (install if missing): `npm install -g @openqa-cn/codexqa --registry https://registry.npmjs.org/` - Network accessline 13
- `@openqa-cn/codexqa` CLI on PATH (install if missing): `npm install -g @openqa-cn/codexqa --registry https://registry.npmjs.org/` - Network only to clone a remote repo and, if needed, install the CLI - Network accessline 14
`npm install -g @openqa-cn/codexqa --registry https://registry.npmjs.org/` - Network accessline 26
See the [installation guide](https://github.com/openqa-cn/codexqa/blob/main/docs/GETTING_STARTED.md), [support matrix](https://github.com/openqa-cn/codexqa/blob/main/docs/SUPPORT_MATRIX.md), and [FAQ](https://github.com/openqa-cn/codexqa/bl
skills/codexqa-rootcause-analyzer/README.zh-CN.md
- Network accessline 7
**不是** [`codexqa-code-analyzer`](https://github.com/openqa-cn/codexqa/blob/main/skills/codexqa-code-analyzer/README.zh-CN.md)(符号图影响面 / 调用方 / 测试缺口),**不是** [`codexqa-defect-analyzer`](https://github.com/openqa-cn/codexqa/blob/main/skills/code - Network accessline 12
- 远程仓库输入时需要 `git` 在 `PATH` 上 - `PATH` 上有 `@openqa-cn/codexqa` CLI(缺失时安装): `npm install -g @openqa-cn/codexqa --registry https://registry.npmjs.org/` - Network accessline 13
- `PATH` 上有 `@openqa-cn/codexqa` CLI(缺失时安装): `npm install -g @openqa-cn/codexqa --registry https://registry.npmjs.org/` - 仅在克隆远程仓库、以及必要时安装 CLI 时联网 - Network accessline 14
`npm install -g @openqa-cn/codexqa --registry https://registry.npmjs.org/` - Network accessline 26
见[安装指南](https://github.com/openqa-cn/codexqa/blob/main/docs/GETTING_STARTED.zh-CN.md)、[支持矩阵](https://github.com/openqa-cn/codexqa/blob/main/docs/SUPPORT_MATRIX.zh-CN.md)和 [FAQ](https://github.com/openqa-cn/codexqa/blob/main/docs/FAQ.zh-CN.m
skills/codexqa-rootcause-analyzer/SKILL.md
- Network accessline 148
Install if missing: `npm install -g @openqa-cn/codexqa --registry https://registry.npmjs.org/`. Talk to the `codexqa` binary only (`index` / `query` / `stats` / `repos`). Do **not** copy engine or skill source into this skill. Details: [ref
skills/codexqa-rootcause-analyzer/assets/report-chrome.js
- Executable scriptline 1
Executable file
skills/codexqa-rootcause-analyzer/package.json
- Executable scriptline 1
Executable file
skills/codexqa-rootcause-analyzer/references/codexqa.md
- Network accessline 11
Install: `npm install -g @openqa-cn/codexqa --registry https://registry.npmjs.org/`
skills/codexqa-rootcause-analyzer/scripts/cli_args.ts
- Executable scriptline 1
Executable file
skills/codexqa-rootcause-analyzer/scripts/diagnose.ts
- Executable scriptline 1
#!/usr/bin/env node
skills/codexqa-rootcause-analyzer/scripts/draft_report.ts
- Executable scriptline 1
Executable file
skills/codexqa-rootcause-analyzer/scripts/ensure_codexqa.ts
- Executable scriptline 1
Executable file - Network accessline 5
export const PACKAGE_NAME = "@openqa-cn/codexqa"; export const BINARY_NAME = "codexqa"; export const NPM_REGISTRY = "https://registry.npmjs.org/"; - Network accessline 6
export const BINARY_NAME = "codexqa"; export const NPM_REGISTRY = "https://registry.npmjs.org/"; export const INSTALL_TIMEOUT = 300; - Network accessline 7
export const NPM_REGISTRY = "https://registry.npmjs.org/";
skills/codexqa-rootcause-analyzer/scripts/html_report.ts
- Executable scriptline 1
Executable file
skills/codexqa-rootcause-analyzer/scripts/materialize_repo.ts
- Executable scriptline 1
Executable file
skills/codexqa-rootcause-analyzer/scripts/parse_exception.ts
- Executable scriptline 1
Executable file
skills/codexqa-rootcause-analyzer/scripts/query_graph.ts
- Executable scriptline 1
Executable file
skills/codexqa-rootcause-analyzer/scripts/render_html.ts
- Executable scriptline 1
#!/usr/bin/env node
skills/codexqa-rootcause-analyzer/scripts/report.ts
- Executable scriptline 1
Executable file
skills/codexqa-rootcause-analyzer/scripts/resolve_repo.ts
- Executable scriptline 1
Executable file
skills/codexqa-rootcause-analyzer/scripts/store.ts
- Executable scriptline 1
Executable file
skills/codexqa-rootcause-analyzer/scripts/timing.ts
- Executable scriptline 1
Executable file
skills/codexqa-rootcause-analyzer/tests/analyze_frames.test.ts
- Executable scriptline 1
Executable file
skills/codexqa-rootcause-analyzer/tests/cli_smoke.test.ts
- Executable scriptline 1
Executable file
skills/codexqa-rootcause-analyzer/tests/draft_report.test.ts
- Executable scriptline 1
Executable file - Network accessline 160
return null; } return client.fetch(id); - Network accessline 161
} return client.fetch(id); `); - Network accessline 162
return client.fetch(id); - Network accessline 358
extract_swallow(` if (flag) { return null; } try { return client.fetch(); } - Network accessline 359
if (flag) { return null; } try { return client.fetch(); } catch (TException e) { throw e; } - Network accessline 360
try { return client.fetch(); } - Network accessline 374
key: "UserProxy#getUser", weak: false, source: { text: "User getUser() { return client.fetch(); }", startLine: 20, endLine: 30 }, - Network accessline 375
weak: false, source: { text: "User getUser() { return client.fetch(); }", startLine: 20, endLine: 30 }, }, - Network accessline 376
source: { text: "User getUser() { return client.fetch(); }", startLine: 20, endLine: 30 },
skills/codexqa-rootcause-analyzer/tests/ensure_codexqa.test.ts
- Executable scriptline 1
Executable file
skills/codexqa-rootcause-analyzer/tests/html_report.test.ts
- Executable scriptline 1
Executable file
skills/codexqa-rootcause-analyzer/tests/materialize_repo.test.ts
- Executable scriptline 1
Executable file
skills/codexqa-rootcause-analyzer/tests/parse_exception.test.ts
- Executable scriptline 1
Executable file
skills/codexqa-skill-router/LICENSE
skills/codexqa-skill-router/README.md
- Network accessline 9
It is **not** a substitute for [`codexqa-defect-analyzer`](https://github.com/openqa-cn/codexqa/blob/main/skills/codexqa-defect-analyzer/README.md), - Network accessline 10
[`codexqa-defect-analyzer`](https://github.com/openqa-cn/codexqa/blob/main/skills/codexqa-defect-analyzer/README.md), - Network accessline 11
[`codexqa-code-reviewer`](https://github.com/openqa-cn/codexqa/blob/main/skills/codexqa-code-reviewer/README.md), - Network accessline 12
[`codexqa-code-analyzer`](https://github.com/openqa-cn/codexqa/blob/main/skills/codexqa-code-analyzer/README.md), - Network accessline 13
[`codexqa-change-analysis`](https://github.com/openqa-cn/codexqa/blob/main/skills/codexqa-change-analysis/README.md), - Network accessline 14
[`codexqa-code-wiki`](https://github.com/openqa-cn/codexqa/blob/main/skills/codexqa-code-wiki/README.md), - Network accessline 15
[`codexqa-rootcause-analyzer`](https://github.com/openqa-cn/codexqa/blob/main/skills/codexqa-rootcause-analyzer/README.md), - Network accessline 16
[`codexqa-requirement-analyzer`](https://github.com/openqa-cn/codexqa/blob/main/skills/codexqa-requirement-analyzer/README.md), - Network accessline 17
[`codexqa-testcase-generator`](https://github.com/openqa-cn/codexqa/blob/main/skills/codexqa-testcase-generator/README.md), - Network accessline 18
[`codexqa-testdata-generator`](https://github.com/openqa-cn/codexqa/blob/main/skills/codexqa-testdata-generator/README.md), or - Network accessline 19
[`codexqa-jev-browser`](https://github.com/openqa-cn/codexqa/blob/main/skills/codexqa-jev-browser/README.md).
skills/codexqa-skill-router/README.zh-CN.md
- Network accessline 8
**不是**替代 [`codexqa-defect-analyzer`](https://github.com/openqa-cn/codexqa/blob/main/skills/codexqa-defect-analyzer/README.zh-CN.md)、 - Network accessline 9
[`codexqa-defect-analyzer`](https://github.com/openqa-cn/codexqa/blob/main/skills/codexqa-defect-analyzer/README.zh-CN.md)、 - Network accessline 10
[`codexqa-code-reviewer`](https://github.com/openqa-cn/codexqa/blob/main/skills/codexqa-code-reviewer/README.zh-CN.md)、 - Network accessline 11
[`codexqa-code-analyzer`](https://github.com/openqa-cn/codexqa/blob/main/skills/codexqa-code-analyzer/README.zh-CN.md)、 - Network accessline 12
[`codexqa-change-analysis`](https://github.com/openqa-cn/codexqa/blob/main/skills/codexqa-change-analysis/README.zh-CN.md)、 - Network accessline 13
[`codexqa-code-wiki`](https://github.com/openqa-cn/codexqa/blob/main/skills/codexqa-code-wiki/README.zh-CN.md)、 - Network accessline 14
[`codexqa-rootcause-analyzer`](https://github.com/openqa-cn/codexqa/blob/main/skills/codexqa-rootcause-analyzer/README.zh-CN.md)、 - Network accessline 15
[`codexqa-requirement-analyzer`](https://github.com/openqa-cn/codexqa/blob/main/skills/codexqa-requirement-analyzer/README.zh-CN.md)、 - Network accessline 16
[`codexqa-testcase-generator`](https://github.com/openqa-cn/codexqa/blob/main/skills/codexqa-testcase-generator/README.zh-CN.md)、 - Network accessline 17
[`codexqa-testdata-generator`](https://github.com/openqa-cn/codexqa/blob/main/skills/codexqa-testdata-generator/README.zh-CN.md) - Network accessline 18
或 [`codexqa-jev-browser`](https://github.com/openqa-cn/codexqa/blob/main/skills/codexqa-jev-browser/README.zh-CN.md)。 那些才是干活的 skill;本 skill 负责**发现、匹配、按需安装、按对方 SKILL.md 交接**。 - Network accessline 19
[`codexqa-jev-browser`](https://github.com/openqa-cn/codexqa/blob/main/skills/codexqa-jev-browser/README.zh-CN.md)。
skills/codexqa-skill-router/scripts/discover_skills.py
skills/codexqa-skill-router/scripts/ensure_skill.py
- Executable scriptline 1
#!/usr/bin/env python3 - Access to secretsline 47
[Credential-related source omitted] - Access to secretsline 67
[Credential-related source omitted] - Network accessline 78
DEFAULT_BRANCH = "main" DEFAULT_TARBALL = ( "https://codeload.github.com/%s/tar.gz/%s" % (DEFAULT_PACK, DEFAULT_BRANCH) - Network accessline 79
DEFAULT_TARBALL = ( "https://codeload.github.com/%s/tar.gz/%s" % (DEFAULT_PACK, DEFAULT_BRANCH) ) - Network accessline 80
"https://codeload.github.com/%s/tar.gz/%s" % (DEFAULT_PACK, DEFAULT_BRANCH) - Network accessline 122
with tempfile.TemporaryDirectory(prefix="codexqa-skill-router-fetch-") as tmp: tar_path = Path(tmp) / "pack.tar.gz" req = urllib.request.Request(url, headers={"User-Agent": "codexqa-skill-router-ensure/1.0"}) - Network accessline 123
tar_path = Path(tmp) / "pack.tar.gz" req = urllib.request.Request(url, headers={"User-Agent": "codexqa-skill-router-ensure/1.0"}) with urllib.request.urlopen(req, timeout=120) as resp: - Network accessline 124
req = urllib.request.Request(url, headers={"User-Agent": "codexqa-skill-router-ensure/1.0"}) - Network accessline 125
with urllib.request.urlopen(req, timeout=120) as resp: - Access to secretsline 313
[Credential-related source omitted]
skills/codexqa-skill-router/scripts/refresh_catalog.py
skills/codexqa-skill-router/scripts/suggest_route.py
skills/codexqa-testcase-generator/CONTRIBUTING.md
- Network accessline 26
Vulnerability reporting is at the repository level: [SECURITY.md](https://github.com/openqa-cn/codexqa/blob/main/SECURITY.md). For this skill specifically:
skills/codexqa-testcase-generator/HOW_IT_WORKS.md
- Network accessline 42
| Skill | Difference | |---|---| | [`codexqa-requirement-analyzer`](https://github.com/openqa-cn/codexqa/blob/main/skills/codexqa-requirement-analyzer/README.md) | Requirement quality / gap register — does not write a case library | - Network accessline 43
|---|---| | [`codexqa-requirement-analyzer`](https://github.com/openqa-cn/codexqa/blob/main/skills/codexqa-requirement-analyzer/README.md) | Requirement quality / gap register — does not write a case library | | [`codexqa-testdata-generator - Network accessline 44
| [`codexqa-requirement-analyzer`](https://github.com/openqa-cn/codexqa/blob/main/skills/codexqa-requirement-analyzer/README.md) | Requirement quality / gap register — does not write a case library | - Network accessline 45
| [`codexqa-testdata-generator`](https://github.com/openqa-cn/codexqa/blob/main/skills/codexqa-testdata-generator/README.md) | Live backend IDs and precondition write-back — not plan/case authoring | - Network accessline 46
| [`codexqa-defect-analyzer`](https://github.com/openqa-cn/codexqa/blob/main/skills/codexqa-defect-analyzer/README.md) / [`codexqa-code-reviewer`](https://github.com/openqa-cn/codexqa/blob/main/skills/codexqa-code-reviewer/README.md) | Code
skills/codexqa-testcase-generator/HOW_IT_WORKS.zh-CN.md
- Network accessline 42
| Skill | 区别 | |---|---| | [`codexqa-requirement-analyzer`](https://github.com/openqa-cn/codexqa/blob/main/skills/codexqa-requirement-analyzer/README.zh-CN.md) | 需求质量 / 缺口登记 — 不写用例库 | - Network accessline 43
|---|---| | [`codexqa-requirement-analyzer`](https://github.com/openqa-cn/codexqa/blob/main/skills/codexqa-requirement-analyzer/README.zh-CN.md) | 需求质量 / 缺口登记 — 不写用例库 | | [`codexqa-testdata-generator`](https://github.com/openqa-cn/codexqa/b - Network accessline 44
| [`codexqa-requirement-analyzer`](https://github.com/openqa-cn/codexqa/blob/main/skills/codexqa-requirement-analyzer/README.zh-CN.md) | 需求质量 / 缺口登记 — 不写用例库 | - Network accessline 45
| [`codexqa-testdata-generator`](https://github.com/openqa-cn/codexqa/blob/main/skills/codexqa-testdata-generator/README.zh-CN.md) | 真实后端 ID 与前置回写 — 不写方案/用例 | - Network accessline 46
| [`codexqa-defect-analyzer`](https://github.com/openqa-cn/codexqa/blob/main/skills/codexqa-defect-analyzer/README.zh-CN.md) / [`codexqa-code-reviewer`](https://github.com/openqa-cn/codexqa/blob/main/skills/codexqa-code-reviewer/README.zh-C
skills/codexqa-testcase-generator/README.md
- Dangerous shell operationline 5
Conversation-driven **test-plan and test-case** generation for APP, Web, and server. Fully run **Plan (Stages 0–5)**, **Exec (Stage 6)**, and/or **Incremental (post-submit)**. Artifacts are local Markdown only. - Network accessline 9
It is **not** [`codexqa-requirement-analyzer`](https://github.com/openqa-cn/codexqa/blob/main/skills/codexqa-requirement-analyzer/README.md) (gap/conflict register), **not** [`codexqa-testdata-generator`](https://github.com/openqa-cn/codexq - Network accessline 22
See the [installation guide](https://github.com/openqa-cn/codexqa/blob/main/docs/GETTING_STARTED.md), [support matrix](https://github.com/openqa-cn/codexqa/blob/main/docs/SUPPORT_MATRIX.md), and [FAQ](https://github.com/openqa-cn/codexqa/bl - Network accessline 35
Knowledge directory: /Users/me/kb/biz Knowledge repo: https://git.example.com/team/biz-knowledge.git#main - Network accessline 36
Knowledge repo: https://git.example.com/team/biz-knowledge.git#main
skills/codexqa-testcase-generator/README.zh-CN.md
- Dangerous shell operationline 5
面向 APP / Web / 服务端的对话式**测试方案与用例**生成。完整跑 **Plan(阶段 0–5)**、**Exec(阶段 6)** 和/或 **Incremental(提测后增量)**。产物仅为本地 Markdown。 - Network accessline 9
**不是** [`codexqa-requirement-analyzer`](https://github.com/openqa-cn/codexqa/blob/main/skills/codexqa-requirement-analyzer/README.zh-CN.md)(缺口 / 冲突登记表),**不是** [`codexqa-testdata-generator`](https://github.com/openqa-cn/codexqa/blob/main/ski - Network accessline 22
见[安装指南](https://github.com/openqa-cn/codexqa/blob/main/docs/GETTING_STARTED.zh-CN.md)、[支持矩阵](https://github.com/openqa-cn/codexqa/blob/main/docs/SUPPORT_MATRIX.zh-CN.md)和 [FAQ](https://github.com/openqa-cn/codexqa/blob/main/docs/FAQ.zh-CN.m - Network accessline 35
知识目录:/Users/me/kb/biz 知识库仓库:https://git.example.com/team/biz-knowledge.git#main - Network accessline 36
知识库仓库:https://git.example.com/team/biz-knowledge.git#main
skills/codexqa-testcase-generator/SKILL.md
- Dangerous shell operationline 112
## 6. Exec (test cases)
skills/codexqa-testcase-generator/references/case-tpl-app.md
- Network accessline 178
| **Case type** | Format: [regression mark]+[dimension]<br><br>- **Regression-mark enum**: New, Change, Regression<br>- **Dimension enum**: UI, Interaction, Logic, Flow, Analytics<br><br>*Examples*:<br>- [New][UI]<br>- [Change][Interaction] - Network accessline 179
| **Case name** | **Principle:** dimension, page-module, and verification-goal description are clear; the title does not exceed 150 characters.<br><br>**Format:** `[dimension-test type][page-module] scenario (optional) + verification-goal d - Network accessline 180
| **Preconditions** | **Execution-environment description:**<br>- environment ID: {environment-ID value}<br>- End: {APP name} ({OS}) >= {version}<br> *Example: user App (iOS / Android / HarmonyOS) >=1.2.0; merchant App (iOS - Network accessline 257
| 2 | Click the cart page-bottom "Checkout" button and wait for the checkout page to finish loading | Enter the checkout page; the delivery-fee area shows "Delivery fee ¥5.00"; the payable-amount area shows "¥35.00" | | 3 | Click the checko - Network accessline 258
| 3 | Click the checkout page-"Submit order" button | The page navigates to the order-success page and shows the "Order submitted successfully" copy and the order number | | 4 | HTTP API call (triggered by step 3):<br>- Type: POST<br>- URL: - Network accessline 259
| 4 | HTTP API call (triggered by step 3):<br>- Type: POST<br>- URL: https://app.example.com/api/v1/order/create<br>- Input structure: {"storeId":"long(store S1's storeId)","addressId":"long(address A1's addressId confirmed in step 2)","sku - Network accessline 265
{scenario-table diagram link, sourced from the test plan "diagram link" column, inherited character for character; fill --- when not hit} (e.g.: https://docs.example.com/api/file/cdn/2783551353/253193639345)
skills/codexqa-testcase-generator/references/case-tpl-server.md
- Network accessline 67
| Case ID | Functional module | Case name | Preconditions | Operation steps | Expected results | Priority | Case type | Provenance | |--------|---------|---------|--------|---------|---------|--------|--------|------| | {runid}-[millisecond - Network accessline 68
|--------|---------|---------|--------|---------|---------|--------|--------|------| | {runid}-[millisecond timestamp (must differ per case)+3-digit random] | [functional-module name] | [Function-Positive][API HTTP] - Place an order with a - Network accessline 69
| {runid}-[millisecond timestamp (must differ per case)+3-digit random] | [functional-module name] | [Function-Positive][API HTTP] - Place an order with a coupon successfully | **Environment dependency:** environment ID, domain<br><br>**Dat
skills/codexqa-testcase-generator/references/case-tpl-web.md
- Network accessline 177
| **Case type** | Format: [regression mark]+[dimension]<br><br>- **Regression-mark enum**: New, Change, Regression<br>- **Dimension enum**: UI, Interaction, Logic, Flow, Analytics<br><br>*Examples*:<br>- [New][UI]<br>- [Change][Interaction] - Network accessline 178
| **Case name** | **Principle:** dimension, page-module, and verification-goal description are clear; the title does not exceed 150 characters.<br><br>**Format:** `[dimension-test type][page-module] scenario (optional) + verification-goal d - Network accessline 179
| **Preconditions** | **Execution-environment description:**<br>- environment ID: {environment-ID value}<br>- End: WEB client description + login method e.g.: log in to the merchant-backend PC [https://merchant.test.example.com/dining](http - Network accessline 238
**Execution-environment description** - environment ID: {environment-ID value} (e.g.: TBD) - End: {WEB client description} + login method (e.g.: log in to the merchant-backend PC https://merchant.test.example.com/dining, account password TB - Network accessline 240
- End: {WEB client description} + login method (e.g.: log in to the merchant-backend PC https://merchant.test.example.com/dining, account password TBD) - Network accessline 248
| # | Step | Expected results | |---|------|---------| | 1 | Open a browser, visit the merchant-backend PC https://merchant.test.example.com/dining, and log in with account password xx/xx | Enter the merchant-backend home; the merchant data - Network accessline 249
|---|------|---------| | 1 | Open a browser, visit the merchant-backend PC https://merchant.test.example.com/dining, and log in with account password xx/xx | Enter the merchant-backend home; the merchant data overview is shown | | 2 | Click - Network accessline 250
| 1 | Open a browser, visit the merchant-backend PC https://merchant.test.example.com/dining, and log in with account password xx/xx | Enter the merchant-backend home; the merchant data overview is shown | - Network accessline 251
| 2 | Click the left menu-"Order management", then click the "Order list" entry | Enter the order-list page; the order data table is shown | | 3 | Double-click the row whose order status is "Pending payment" and open the order-detail dialog - Network accessline 252
| 3 | Double-click the row whose order status is "Pending payment" and open the order-detail dialog | The dialog shows the complete order information, including product details and amount information | | 4 | HTTP API call (triggered by step - Network accessline 253
| 4 | HTTP API call (triggered by step 3):<br>- Type: POST<br>- URL: https://merchant.test.example.com/api/v1/order/create<br>- Input structure: {"storeId":"long(store S1's storeId)","addressId":"long(address A1's addressId)"} | API returns - Network accessline 260
{scenario-table diagram link, sourced from the test plan "diagram link" column, inherited character for character; fill --- when not hit} (e.g.: https://docs.example.com/api/file/cdn/2783551353/253193639345)
skills/codexqa-testcase-generator/references/incremental/code-fetch-spec.md
- Network accessline 39
- GitHub style: `https://host/owner/repo/pull/123` (suffixes such as `/files` are allowed) - GitLab style: `https://host/group/repo/-/merge_requests/123` - Other HTTPS PR/MR paths: `/pulls/`, `/pull-requests/`, `/merge-requests/`, `/merge_r - Network accessline 40
- GitLab style: `https://host/group/repo/-/merge_requests/123` - Other HTTPS PR/MR paths: `/pulls/`, `/pull-requests/`, `/merge-requests/`, `/merge_requests/`, standalone segment `/pr/` (for example `https://host/owner/repo/pr/123`) - Code- - Network accessline 41
- Other HTTPS PR/MR paths: `/pulls/`, `/pull-requests/`, `/merge-requests/`, `/merge_requests/`, standalone segment `/pr/` (for example `https://host/owner/repo/pr/123`) - Network accessline 42
- Code-platform PR page: path is `/code/repo-detail/{group}/{repo}/pr/{n}` (suffixes such as `/diff` and `/files` are allowed). `family=code-ui`: take group/repo/number from the path; do not treat a suffix as the repo name. **Rewrite the ho - Network accessline 43
- Custom git repo: `https://host/path/repo.git`, `git@host:path/repo.git`, `ssh://git@host[:port]/path/repo.git`; an HTTPS repo may also omit `.git`
skills/codexqa-testcase-generator/references/knowledge-adapter.md
- Dangerous shell operationline 37
- **Exec (Stage 6)**: Write cases from the formal test plan + built-in three-end templates; read the local pack only when it already exists and test-data setup / format gaps remain.
skills/codexqa-testcase-generator/references/plan-md-template.md
- Network accessline 124
|-----------|---------|-------------| | RPC | type; protocol; serviceId; class; method; params; auth | `RPC; protocol: Thrift; serviceId: com.xxx.api; class: com.xxx.ActivityService; method: createActivity; params: {"name": "", "type": 0}; - Network accessline 125
| RPC | type; protocol; serviceId; class; method; params; auth | `RPC; protocol: Thrift; serviceId: com.xxx.api; class: com.xxx.ActivityService; method: createActivity; params: {"name": "", "type": 0}; auth: no auth required` (protocol valu - Network accessline 126
| HTTP | type; serviceId; url; method; request params; auth | `HTTP; serviceId: com.xxx.api; url: https://xxx.com/api/activity/create; method: POST; params: {"name": "", "type": 0}; auth: Header carries access token` |
skills/codexqa-testcase-generator/references/postsubmit-bootstrap.md
- Dangerous shell operationline 21
4. After the plan is valid, ask the user whether to generate the missing-end cases; execute **Exec (Stage 6)** only after the user confirms. The target end only limits the output end; do not cut Exec's internal flow.
skills/codexqa-testcase-generator/references/s00-req-ingest.md
- Network accessline 24
| **B Upstream archive / already-cleaned local file** | Input is already persisted in this run under `testcase/testdocs/` (same run_dir resume/rerun), or the user directly provides already-cleaned body text | **Skip ingest-flow steps 1–3 an - Network accessline 25
| **C Pasted body text** | User pastes requirement / technical-design body text directly in the conversation, with no file path | First write the body to `{run_dir}/testcase/testdocs/_ingest/pasted-<id>.md` or persist it as `requirement-[ti - Network accessline 26
| **D HTTPS / HTTP document URL** | User this turn gives one or more `https://` or `http://` document URLs, with no corresponding local file. Host does not matter | Follow "Form D HTTPS persist" below. Do **not** install or call a doc-platf
skills/codexqa-testcase-generator/scripts/bootstrap_knowledge.py
- Executable scriptline 1
#!/usr/bin/env python3 - Network accessline 157
) return manifest fetch_info = fetch(valid_url, output_dir / "repo", valid_ref or "") - Network accessline 158
return manifest fetch_info = fetch(valid_url, output_dir / "repo", valid_ref or "") if not fetch_info.get("ok"): - Network accessline 159
fetch_info = fetch(valid_url, output_dir / "repo", valid_ref or "")
skills/codexqa-testcase-generator/scripts/check_run_gate.py
- Executable scriptline 1
#!/usr/bin/env python3
skills/codexqa-testcase-generator/scripts/close_stage.py
- Executable scriptline 1
#!/usr/bin/env python3
skills/codexqa-testcase-generator/scripts/extract_svg_text.py
skills/codexqa-testcase-generator/scripts/fetch_knowledge_git.py
- Executable scriptline 1
#!/usr/bin/env python3 - Network accessline 83
def fetch(url: str, dest: Path, ref: str = "") -> dict: - Network accessline 135
dest = Path(args.output_dir).expanduser().resolve() / "repo" result = fetch(valid_url, dest, valid_ref or "") - Network accessline 136
result = fetch(valid_url, dest, valid_ref or "")
skills/codexqa-testcase-generator/scripts/generate_case_report.py
- Executable scriptline 1
#!/usr/bin/env python3
skills/codexqa-testcase-generator/scripts/incremental/build_diff_candidates.py
- Executable scriptline 1
#!/usr/bin/env python3
skills/codexqa-testcase-generator/scripts/incremental/freeze_case_standard.py
- Executable scriptline 1
#!/usr/bin/env python3
skills/codexqa-testcase-generator/scripts/incremental/freeze_inputs.py
- Executable scriptline 1
#!/usr/bin/env python3
skills/codexqa-testcase-generator/scripts/incremental/inc_common.py
- Executable scriptline 1
#!/usr/bin/env python3
skills/codexqa-testcase-generator/scripts/incremental/make_ids.py
- Executable scriptline 1
#!/usr/bin/env python3
skills/codexqa-testcase-generator/scripts/incremental/pull_remote_code.py
- Executable scriptline 1
#!/usr/bin/env python3 - Network accessline 147
project = project.strip("/") if project.endswith(".git"): return f"https://{host}/{project}" - Network accessline 148
if project.endswith(".git"): return f"https://{host}/{project}" return f"https://{host}/{project}.git" - Network accessline 149
return f"https://{host}/{project}" - Network accessline 150
return f"https://{host}/{project}.git" - Network accessline 266
raise SkillError( "PR_URL_UNSUPPORTED", "Only https://, git@host:path, or ssh://git@host/path is supported", - Network accessline 267
"PR_URL_UNSUPPORTED", "Only https://, git@host:path, or ssh://git@host/path is supported", ) - Network accessline 268
"Only https://, git@host:path, or ssh://git@host/path is supported", - Access to secretsline 362
[Credential-related source omitted] - Network accessline 577
try: if parsed.get("apiKind") == "github": url = f"https://{host}/api/v3/repos/{owner}/{repo}/pulls/{number}" - Network accessline 578
if parsed.get("apiKind") == "github": url = f"https://{host}/api/v3/repos/{owner}/{repo}/pulls/{number}" if host in {"github.com", "www.github.com"}: - Network accessline 579
url = f"https://{host}/api/v3/repos/{owner}/{repo}/pulls/{number}" - Network accessline 580
if host in {"github.com", "www.github.com"}: url = f"https://api.github.com/repos/{owner}/{repo}/pulls/{number}" elif parsed.get("apiKind") == "gitlab": - Network accessline 581
url = f"https://api.github.com/repos/{owner}/{repo}/pulls/{number}" - Network accessline 582
elif parsed.get("apiKind") == "gitlab": project = f"{owner}/{repo}".replace("/", "%2F") url = f"https://{host}/api/v4/projects/{project}/merge_requests/{number}" - Network accessline 583
project = f"{owner}/{repo}".replace("/", "%2F") url = f"https://{host}/api/v4/projects/{project}/merge_requests/{number}" else: - Network accessline 584
url = f"https://{host}/api/v4/projects/{project}/merge_requests/{number}" - Network accessline 892
code_ui = parse_source_url( "https://dev.example.com/code/repo-detail/group/repo/pr/731/diff" - Network accessline 893
"https://dev.example.com/code/repo-detail/group/repo/pr/731/diff" - Network accessline 901
if code_ui["host"] != "git.example.com": failures.append("code-ui host=%s" % code_ui["host"]) if code_ui["gitUrl"] != "https://git.example.com/group/repo.git": - Network accessline 902
failures.append("code-ui host=%s" % code_ui["host"]) if code_ui["gitUrl"] != "https://git.example.com/group/repo.git": failures.append("code-ui gitUrl=%s" % code_ui["gitUrl"]) - Network accessline 903
if code_ui["gitUrl"] != "https://git.example.com/group/repo.git": - Network accessline 910
github = parse_source_url("https://github.com/owner/repo/pull/731/files") - Network accessline 911
if github["family"] != "github" or github["number"] != 731: failures.append("github parse drifted") if github["gitUrl"] != "https://github.com/owner/repo.git": - Network accessline 912
failures.append("github parse drifted") if github["gitUrl"] != "https://github.com/owner/repo.git": failures.append("github gitUrl=%s" % github["gitUrl"]) - Network accessline 913
if github["gitUrl"] != "https://github.com/owner/repo.git": - Network accessline 916
gitlab = parse_source_url("https://gitlab.com/group/repo/-/merge_requests/731") - Network accessline 920
short_pr = parse_source_url("https://example.com/owner/repo/pr/731") - Network accessline 924
samples = ( "致命错误:无法更新重定向后的 URL 基址:\n重定向:https://login.example.com/", - Network accessline 925
"致命错误:无法更新重定向后的 URL 基址:\n重定向:https://login.example.com/", - Network accessline 926
"fatal: unable to update url base from redirection.\nredirected to https://login.example.com/",
skills/codexqa-testcase-generator/scripts/incremental/setup_execution.py
- Executable scriptline 1
#!/usr/bin/env python3
skills/codexqa-testcase-generator/scripts/incremental/write_task_status.py
- Executable scriptline 1
#!/usr/bin/env python3
skills/codexqa-testcase-generator/scripts/ingest_local_docs.py
- Executable scriptline 1
#!/usr/bin/env python3
skills/codexqa-testcase-generator/scripts/lib/python_resolve.sh
- Executable scriptline 1
#!/usr/bin/env bash
skills/codexqa-testcase-generator/scripts/py_version.py
- Executable scriptline 1
Executable file
skills/codexqa-testcase-generator/scripts/run_gate_lib.py
- Executable scriptline 1
Executable file
skills/codexqa-testcase-generator/scripts/tcg-python
- Executable scriptline 1
#!/usr/bin/env bash
skills/codexqa-testcase-generator/user-guide.md
- Network accessline 40
**Incremental exception (code only):** when you explicitly say to increment cases from a PR / MR or a custom git repo URL, this Skill git-fetches into `{run_dir}/testcase/.pr-cache/`, then diff-enhances existing cases. Supported: GitHub/Git - Network accessline 46
> This directory has a PRD and a technical design; generate a test plan: /Users/me/docs/feature-x/ > > Generate a test plan from https://docs.example.com/prd/feature-x - Network accessline 47
> > Generate a test plan from https://docs.example.com/prd/feature-x > - Network accessline 48
> Generate a test plan from https://docs.example.com/prd/feature-x - Network accessline 62
Git URLs support only `https://…`, `git@…`, and `ssh://git@…`, optionally with `#branch`. Links in requirement text are **not** treated as a knowledge repo. Mid-run, the Skill will not ask you for a knowledge directory or Git URL just to fi - Network accessline 82
You: Generate a test plan. Requirements: /Users/me/docs/prd.md Knowledge repo: https://git.example.com/team/biz-knowledge.git#main - Network accessline 83
Knowledge repo: https://git.example.com/team/biz-knowledge.git#main - Network accessline 198
**Can a PR link or custom repo URL auto-fill cases?** Yes, but you must explicitly say to increment from that URL, and a case baseline must already exist. This Skill uses git and does not depend on `gh`. Supported: GitHub/GitLab PR/MR, `h - Network accessline 199
Yes, but you must explicitly say to increment from that URL, and a case baseline must already exist. This Skill uses git and does not depend on `gh`. Supported: GitHub/GitLab PR/MR, `https://dev.example.com/code/repo-detail/{group}/{repo}/p
skills/codexqa-testdata-generator/.gitignore
- Access to secretsline 7
[Credential-related source omitted]
skills/codexqa-testdata-generator/CONTRIBUTING.md
- Network accessline 7
1. Keep the [Agent Skills](https://agentskills.io/specification) contract: `SKILL.md` `name` may contain only lowercase `a-z`, digits, and single `-` (no `_`, no uppercase, no leading/trailing/consecutive hyphens) and must match the directo - Network accessline 47
Vulnerability reporting is at the repository level: [SECURITY.md](https://github.com/openqa-cn/codexqa/blob/main/SECURITY.md). For this skill specifically:
skills/codexqa-testdata-generator/HOW_IT_WORKS.md
- Network accessline 9
Agents read [`SKILL.md`](SKILL.md), not this page. Command-level detail is in the [operator appendix](#operator-appendix) below. Gaps: [Known limitations](KNOWN_LIMITATIONS.md). Sample write-back: [preview](https://htmlpreview.github.io/?ht - Network accessline 37
Default backend is the local mock (`http://127.0.0.1:8765`). Mock `p_1` and a staging-gateway ID can look the same. Confirm the base URL before trusting write-back. - Network accessline 84
| Agent runtime contract | [`SKILL.md`](SKILL.md) | | Commands, report payloads, install, troubleshooting | [Operator appendix](#operator-appendix) below | | What each published skill takes | [FAQ](https://github.com/openqa-cn/codexqa/blob/ - Network accessline 86
| What each published skill takes | [FAQ](https://github.com/openqa-cn/codexqa/blob/main/docs/FAQ.md) | - Access to secretsline 239
[Credential-related source omitted] - Network accessline 250
| `DATA_GENERATE_SKILLS_ROOT` | Package root that contains `slots/` (usually the same as the row above after install) | | `DATA_BUILD_CONFIG` | Config file path | | `DATA_BUILD_API_BASE` | HTTP base URL for executors; default `http://127.0. - Network accessline 251
| `DATA_BUILD_CONFIG` | Config file path | | `DATA_BUILD_API_BASE` | HTTP base URL for executors; default `http://127.0.0.1:8765` | | `DATA_BUILD_TOKEN` | Optional Bearer token | - Network accessline 252
| `DATA_BUILD_API_BASE` | HTTP base URL for executors; default `http://127.0.0.1:8765` | - Network accessline 334
Then start a new Agent conversation. Host flags: [INSTALL.md](INSTALL.md) and [docs/GETTING_STARTED.md](https://github.com/openqa-cn/codexqa/blob/main/docs/GETTING_STARTED.md). - Access to secretsline 529
[Credential-related source omitted]
skills/codexqa-testdata-generator/HOW_IT_WORKS.zh-CN.md
- Network accessline 9
Agent 运行时读 [`SKILL.md`](SKILL.md),不要读本页。命令、安装、排障在英文 [HOW_IT_WORKS.md 操作附录](HOW_IT_WORKS.md#operator-appendix)。能力边界见[已知边界](KNOWN_LIMITATIONS.zh-CN.md)。回写样例:[预览页](https://htmlpreview.github.io/?https://github.com/openqa-cn/codexqa/blob/main/d - Network accessline 37
默认后端是本地 mock(`http://127.0.0.1:8765`)。mock 的 `p_1` 和预发网关的 ID 长得一样,信任回写前先确认 base URL。 - Network accessline 84
| Agent 运行时契约 | [`SKILL.md`](SKILL.md) | | 命令、上报 payload、排障 | 英文 [HOW_IT_WORKS.md 操作附录](HOW_IT_WORKS.md#operator-appendix) | | 各 skill 要交什么 | [FAQ](https://github.com/openqa-cn/codexqa/blob/main/docs/FAQ.zh-CN.md) | - Network accessline 86
| 各 skill 要交什么 | [FAQ](https://github.com/openqa-cn/codexqa/blob/main/docs/FAQ.zh-CN.md) |
skills/codexqa-testdata-generator/INSTALL.md
- Network accessline 13
Then start a **new** agent session. Host-specific flags (`--agent cursor`, `--agent claude-code`, `--agent codex`, `--global`) are documented in the [repo getting started](https://github.com/openqa-cn/codexqa/blob/main/docs/GETTING_STARTED. - Network accessline 28
The frontmatter `name` is `codexqa-testdata-generator` (lowercase `a-z`, digits, and single `-` only, per the [Agent Skills spec](https://agentskills.io/specification)). The source folder, zip root, and install directory all use this name.
skills/codexqa-testdata-generator/KNOWN_LIMITATIONS.md
- Network accessline 9
Out of the box, executors point at `DATA_BUILD_API_BASE`, which defaults to `http://127.0.0.1:8765` — the bundled `slots/mock_server.ts`. The mock hands back `p_1`, `o_1`, `d_1` and appends to `testdata/mock-store.json`. That is enough to e
skills/codexqa-testdata-generator/KNOWN_LIMITATIONS.zh-CN.md
- Network accessline 9
开箱时 executor 指向 `DATA_BUILD_API_BASE`,默认 `http://127.0.0.1:8765`——自带的 `slots/mock_server.ts`。mock 会发回 `p_1`、`o_1`、`d_1`,并追加到 `testdata/mock-store.json`。这够用来走通路由、场景顺序和回写,**不能**证明任何东西进了真实系统。
skills/codexqa-testdata-generator/LICENSE
skills/codexqa-testdata-generator/README.md
- Network accessline 5
Vendor-neutral [Agent Skill](https://agentskills.io/specification) for constructing test data against a backend and, when the request is a case-material job, writing the values back as executable preconditions. - Network accessline 9
<p align="center"> <a href="https://htmlpreview.github.io/?https://github.com/openqa-cn/codexqa/blob/main/docs/assets/previews/testdata-writeback.html"><img src="https://raw.githubusercontent.com/openqa-cn/codexqa/main/docs/assets/preview - Network accessline 10
<a href="https://htmlpreview.github.io/?https://github.com/openqa-cn/codexqa/blob/main/docs/assets/previews/testdata-writeback.html"><img src="https://raw.githubusercontent.com/openqa-cn/codexqa/main/docs/assets/previews/testdata-writeback. - Network accessline 13
It does **not** invent business IDs. "Construct succeeded" means the backend returned an ID, not that one appeared in the chat. It also does **not** author test cases from a PRD — that is the sibling [`codexqa-testcase-generator`](https://g
skills/codexqa-testdata-generator/README.zh-CN.md
- Network accessline 5
厂商无关的 [Agent Skill](https://agentskills.io/specification):对着后端构造测试数据;若请求是用例物料,再把业务字段回写成可执行前置条件。 - Network accessline 9
<p align="center"> <a href="https://htmlpreview.github.io/?https://github.com/openqa-cn/codexqa/blob/main/docs/assets/previews/testdata-writeback.html"><img src="https://raw.githubusercontent.com/openqa-cn/codexqa/main/docs/assets/preview - Network accessline 10
<a href="https://htmlpreview.github.io/?https://github.com/openqa-cn/codexqa/blob/main/docs/assets/previews/testdata-writeback.html"><img src="https://raw.githubusercontent.com/openqa-cn/codexqa/main/docs/assets/previews/testdata-writeback. - Network accessline 13
**不编造业务 ID。**「构造成功」指后端返回了 ID,不是对话里出现了一个号。也**不**根据 PRD 写测试用例——那是兄弟 skill [`codexqa-testcase-generator`](https://github.com/openqa-cn/codexqa/blob/main/skills/codexqa-testcase-generator/README.zh-CN.md)。
skills/codexqa-testdata-generator/SKILL.md
- Dangerous shell operationline 255
| unpin | `node "$SKILL_DIR/scripts/favorites.ts" rm --name "<name>"` (or `--uuid` / `--id`) |
skills/codexqa-testdata-generator/assets/config.example.yaml
- Access to secretsline 59
[Credential-related source omitted]
skills/codexqa-testdata-generator/package-lock.json
- Network accessline 18
"node_modules/@types/node": { "version": "22.20.1", "resolved": "https://registry.npmjs.org/@types/node/-/node-22.20.1.tgz", - Network accessline 19
"version": "22.20.1", "resolved": "https://registry.npmjs.org/@types/node/-/node-22.20.1.tgz", "integrity": "sha512-EANqOCF9QFyra+4pfxUcX9STKJpCLjMbObVzljIJomAWSnuSIEAvyzEU53GaajbXJEgdh0iEcPL+DGvpUd4k1Q==", - Network accessline 20
"resolved": "https://registry.npmjs.org/@types/node/-/node-22.20.1.tgz", - Network accessline 28
"node_modules/typescript": { "version": "5.9.3", "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.9.3.tgz", - Network accessline 29
"version": "5.9.3", "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.9.3.tgz", "integrity": "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==", - Network accessline 30
"resolved": "https://registry.npmjs.org/typescript/-/typescript-5.9.3.tgz", - Network accessline 42
"node_modules/undici-types": { "version": "6.21.0", "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.21.0.tgz", - Network accessline 43
"version": "6.21.0", "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.21.0.tgz", "integrity": "sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==", - Network accessline 44
"resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.21.0.tgz",
skills/codexqa-testdata-generator/package.json
- Executable scriptline 1
Executable file
skills/codexqa-testdata-generator/references/adapters.md
skills/codexqa-testdata-generator/references/case-data-material-planner/agents/writeback.md
skills/codexqa-testdata-generator/references/case-data-material-planner/scripts/bind_action.ts
- Executable scriptline 1
#!/usr/bin/env node
skills/codexqa-testdata-generator/references/case-data-material-planner/scripts/cache_tool_binding.ts
- Executable scriptline 1
#!/usr/bin/env node
skills/codexqa-testdata-generator/references/case-data-material-planner/scripts/dashboard/server.ts
skills/codexqa-testdata-generator/references/case-data-material-planner/scripts/experience_compat.ts
- Executable scriptline 1
#!/usr/bin/env node - Network accessline 12
minSimilarity = 0.7, ): Promise<JsonObject> { return buildRuntime().experience_store.fetch(queries, domain, topK, minSimilarity); - Network accessline 13
): Promise<JsonObject> { return buildRuntime().experience_store.fetch(queries, domain, topK, minSimilarity); } - Network accessline 14
return buildRuntime().experience_store.fetch(queries, domain, topK, minSimilarity);
skills/codexqa-testdata-generator/references/case-data-material-planner/scripts/finalize.ts
- Executable scriptline 1
#!/usr/bin/env node
skills/codexqa-testdata-generator/references/case-data-material-planner/scripts/gate_check_cdata.ts
- Executable scriptline 1
#!/usr/bin/env node
skills/codexqa-testdata-generator/references/case-data-material-planner/scripts/generate_config_commands.ts
- Executable scriptline 1
#!/usr/bin/env node
skills/codexqa-testdata-generator/references/case-data-material-planner/scripts/hash_manifest.ts
- Executable scriptline 1
#!/usr/bin/env node
skills/codexqa-testdata-generator/references/case-data-material-planner/scripts/init_manifest.ts
- Executable scriptline 1
#!/usr/bin/env node
skills/codexqa-testdata-generator/references/case-data-material-planner/scripts/invoke_entity.ts
- Executable scriptline 1
#!/usr/bin/env node
skills/codexqa-testdata-generator/references/case-data-material-planner/scripts/lint_manifest.ts
- Executable scriptline 1
#!/usr/bin/env node
skills/codexqa-testdata-generator/references/case-data-material-planner/scripts/manifest_io.ts
- Executable scriptline 1
#!/usr/bin/env node
skills/codexqa-testdata-generator/references/case-data-material-planner/scripts/merge_executor_fields.ts
- Executable scriptline 1
#!/usr/bin/env node
skills/codexqa-testdata-generator/references/case-data-material-planner/scripts/merge_patch.ts
- Executable scriptline 1
#!/usr/bin/env node
skills/codexqa-testdata-generator/references/case-data-material-planner/scripts/parallel_search.ts
- Executable scriptline 1
#!/usr/bin/env node
skills/codexqa-testdata-generator/references/case-data-material-planner/scripts/pipeline.ts
- Executable scriptline 1
#!/usr/bin/env node
skills/codexqa-testdata-generator/references/case-data-material-planner/scripts/rollback.ts
- Executable scriptline 1
#!/usr/bin/env node
skills/codexqa-testdata-generator/references/case-data-material-planner/scripts/safe_io.ts
- Executable scriptline 1
Executable file
skills/codexqa-testdata-generator/references/case-data-material-planner/scripts/search_data_build_skill.ts
- Executable scriptline 1
#!/usr/bin/env node
skills/codexqa-testdata-generator/references/case-data-material-planner/scripts/select_tool.ts
- Executable scriptline 1
#!/usr/bin/env node
skills/codexqa-testdata-generator/references/case-data-material-planner/scripts/slot_catalog.ts
- Executable scriptline 1
Executable file
skills/codexqa-testdata-generator/references/case-data-material-planner/scripts/slot_render.ts
- Executable scriptline 1
#!/usr/bin/env node
skills/codexqa-testdata-generator/references/case-data-material-planner/scripts/topo_sort_batch.ts
- Executable scriptline 1
#!/usr/bin/env node
skills/codexqa-testdata-generator/references/case-data-material-planner/scripts/verify_tool_input_list.ts
- Executable scriptline 1
#!/usr/bin/env node
skills/codexqa-testdata-generator/references/script-template.ts
- Executable scriptline 1
#!/usr/bin/env node - Network accessline 16
export const ENV = process.env.DATA_BUILD_ENV || "test"; export const BASE_URL = process.env.DATA_BUILD_API_BASE || "http://127.0.0.1:8765"; - Network accessline 17
export const BASE_URL = process.env.DATA_BUILD_API_BASE || "http://127.0.0.1:8765"; - Access to secretsline 34
[Credential-related source omitted] - Network accessline 42
} try { const resp = await fetch(url, { - Network accessline 43
try { const resp = await fetch(url, { method, - Network accessline 44
const resp = await fetch(url, {
skills/codexqa-testdata-generator/references/workflow.md
- Dangerous shell operationline 178
| unpin | `node scripts/favorites.ts rm --name "<name>"` | - Access to secretsline 211
[Credential-related source omitted] - Network accessline 216
**Q4: The API needs extra auth?** Put tokens in the auth adapter or environment. Scripts must call `callHttp`, not ad-hoc curl with pasted cookies. - Network accessline 217
Put tokens in the auth adapter or environment. Scripts must call `callHttp`, not ad-hoc curl with pasted cookies.
skills/codexqa-testdata-generator/scripts/_verify_enterprise_onboard.ts
- Executable scriptline 1
#!/usr/bin/env node - Network accessline 173
while (Date.now() - start < 8000) { try { if ((await fetch(`http://127.0.0.1:${port}/health`)).ok) return child; - Network accessline 174
try { if ((await fetch(`http://127.0.0.1:${port}/health`)).ok) return child; } catch { - Network accessline 175
if ((await fetch(`http://127.0.0.1:${port}/health`)).ok) return child; - Network accessline 243
import { realpathSync } from "node:fs"; import { fileURLToPath } from "node:url"; const BASE_URL = process.env.DATA_BUILD_API_BASE || "http://127.0.0.1:8765"; - Network accessline 244
import { fileURLToPath } from "node:url"; const BASE_URL = process.env.DATA_BUILD_API_BASE || "http://127.0.0.1:8765"; export async function main(params) { - Network accessline 245
const BASE_URL = process.env.DATA_BUILD_API_BASE || "http://127.0.0.1:8765"; - Network accessline 247
const title = params.title || params.name; if (!title) return { success: false, data: null, error: "missing required param: title" }; const resp = await fetch(BASE_URL + "/v1/invoices", { - Network accessline 248
if (!title) return { success: false, data: null, error: "missing required param: title" }; const resp = await fetch(BASE_URL + "/v1/invoices", { method: "POST", - Network accessline 249
const resp = await fetch(BASE_URL + "/v1/invoices", { - Network accessline 273
import { realpathSync } from "node:fs"; import { fileURLToPath } from "node:url"; const BASE_URL = process.env.DATA_BUILD_API_BASE || "http://127.0.0.1:8765"; - Network accessline 274
import { fileURLToPath } from "node:url"; const BASE_URL = process.env.DATA_BUILD_API_BASE || "http://127.0.0.1:8765"; export async function main(params) { - Network accessline 275
const BASE_URL = process.env.DATA_BUILD_API_BASE || "http://127.0.0.1:8765"; - Network accessline 276
export async function main(params) { if (!params.invoiceId) return { success: false, data: null, error: "missing required param: invoiceId" }; const resp = await fetch(BASE_URL + "/v1/invoices/" + params.invoiceId + "/pay", { - Network accessline 277
if (!params.invoiceId) return { success: false, data: null, error: "missing required param: invoiceId" }; const resp = await fetch(BASE_URL + "/v1/invoices/" + params.invoiceId + "/pay", { method: "POST", - Network accessline 278
const resp = await fetch(BASE_URL + "/v1/invoices/" + params.invoiceId + "/pay", { - Network accessline 405
return results; } const env = { ...isolatedEnv, DATA_BUILD_API_BASE: `http://127.0.0.1:${port}` }; - Network accessline 406
} const env = { ...isolatedEnv, DATA_BUILD_API_BASE: `http://127.0.0.1:${port}` }; try { - Network accessline 407
const env = { ...isolatedEnv, DATA_BUILD_API_BASE: `http://127.0.0.1:${port}` };
skills/codexqa-testdata-generator/scripts/_verify_extend_scene.ts
- Executable scriptline 1
#!/usr/bin/env node - Network accessline 170
while (Date.now() - start < 8000) { try { if ((await fetch(`http://127.0.0.1:${port}/health`)).ok) return child; - Network accessline 171
try { if ((await fetch(`http://127.0.0.1:${port}/health`)).ok) return child; } catch { - Network accessline 172
if ((await fetch(`http://127.0.0.1:${port}/health`)).ok) return child; - Network accessline 187
import { realpathSync } from "node:fs"; import { fileURLToPath } from "node:url"; const BASE_URL = process.env.DATA_BUILD_API_BASE || "http://127.0.0.1:8765"; - Network accessline 188
import { fileURLToPath } from "node:url"; const BASE_URL = process.env.DATA_BUILD_API_BASE || "http://127.0.0.1:8765"; export async function main(params) { - Network accessline 189
const BASE_URL = process.env.DATA_BUILD_API_BASE || "http://127.0.0.1:8765"; - Network accessline 190
export async function main(params) { if (!params.name) return { success: false, data: null, error: "missing required param: name" }; const resp = await fetch(BASE_URL + "/v1/wallets", { - Network accessline 191
if (!params.name) return { success: false, data: null, error: "missing required param: name" }; const resp = await fetch(BASE_URL + "/v1/wallets", { method: "POST", - Network accessline 192
const resp = await fetch(BASE_URL + "/v1/wallets", { - Network accessline 218
import { realpathSync } from "node:fs"; import { fileURLToPath } from "node:url"; const BASE_URL = process.env.DATA_BUILD_API_BASE || "http://127.0.0.1:8765"; - Network accessline 219
import { fileURLToPath } from "node:url"; const BASE_URL = process.env.DATA_BUILD_API_BASE || "http://127.0.0.1:8765"; export async function main(params) { - Network accessline 220
const BASE_URL = process.env.DATA_BUILD_API_BASE || "http://127.0.0.1:8765"; - Network accessline 222
if (!params.walletId) return { success: false, data: null, error: "missing required param: walletId" }; const amount = Number(params.amount || 100); const resp = await fetch(BASE_URL + "/v1/wallets/" + params.walletId + "/topup", { - Network accessline 223
const amount = Number(params.amount || 100); const resp = await fetch(BASE_URL + "/v1/wallets/" + params.walletId + "/topup", { method: "POST", - Network accessline 224
const resp = await fetch(BASE_URL + "/v1/wallets/" + params.walletId + "/topup", { - Network accessline 513
const port = 18791; const env = { ...isolatedEnv, DATA_BUILD_API_BASE: `http://127.0.0.1:${port}` }; - Network accessline 514
const env = { ...isolatedEnv, DATA_BUILD_API_BASE: `http://127.0.0.1:${port}` };
skills/codexqa-testdata-generator/scripts/_verify_pipeline_scenarios.ts
- Executable scriptline 1
#!/usr/bin/env node - Network accessline 229
async function withMock<T>(port: number, fn: (env: NodeJS.ProcessEnv) => Promise<T>): Promise<T | undefined> { const env = { ...isolatedEnv, DATA_BUILD_API_BASE: `http://127.0.0.1:${port}` }; - Network accessline 230
const env = { ...isolatedEnv, DATA_BUILD_API_BASE: `http://127.0.0.1:${port}` }; - Network accessline 236
const up = await waitUntil(async () => { try { return (await fetch(`http://127.0.0.1:${port}/health`)).ok; - Network accessline 237
try { return (await fetch(`http://127.0.0.1:${port}/health`)).ok; } catch { - Network accessline 238
return (await fetch(`http://127.0.0.1:${port}/health`)).ok; - Dangerous shell operationline 399
const rm = readObj(reusePath);
skills/codexqa-testdata-generator/scripts/_verify_rewrite.ts
- Executable scriptline 1
#!/usr/bin/env node - Dangerous shell operationline 456
assertExit("F07", "favorites.ts rm (no selector)", got, 1); - Dangerous shell operationline 462
assertExit("F08", "favorites.ts rm --name missing", got, 1); - Dangerous shell operationline 463
assertContains("F08-out", "favorites rm missing", got.stdout, "no matching pinned skill", "not-found message"); - Dangerous shell operationline 468
assertExit("F09", "favorites.ts rm --name catalog", got, 0); - Network accessline 482
{ const got = nodeTs(cli, ["fetch"]); assertExit("E02", "experience_client.ts fetch (no --queries)", got, 2); - Network accessline 483
const got = nodeTs(cli, ["fetch"]); assertExit("E02", "experience_client.ts fetch (no --queries)", got, 2); assertContains("E02-err", "experience_client fetch", got.stderr, "error: --queries is required", "--queries required"); - Network accessline 484
assertExit("E02", "experience_client.ts fetch (no --queries)", got, 2); - Network accessline 923
async function verifySlots(): Promise<void> { const port = 18765; const env = { ...isolatedEnv, DATA_BUILD_API_BASE: `http://127.0.0.1:${port}` }; - Network accessline 924
const port = 18765; const env = { ...isolatedEnv, DATA_BUILD_API_BASE: `http://127.0.0.1:${port}` }; const child = spawn(process.execPath, [join(TS_ROOT, "slots/mock_server.ts"), "--port", String(port)], { - Network accessline 925
const env = { ...isolatedEnv, DATA_BUILD_API_BASE: `http://127.0.0.1:${port}` }; - Network accessline 935
const up = await waitUntil(async () => { try { const resp = await fetch(`http://127.0.0.1:${port}/health`); - Network accessline 936
try { const resp = await fetch(`http://127.0.0.1:${port}/health`); return resp.ok; - Network accessline 937
const resp = await fetch(`http://127.0.0.1:${port}/health`); - Network accessline 950
try { const health = await fetch(`http://127.0.0.1:${port}/health`); - Network accessline 951
const health = await fetch(`http://127.0.0.1:${port}/health`); - Dangerous shell operationline 959
const got = exec("slots/catalog/scripts/executors/create_product.ts", '{"name":"Northwind Standard","city":"demo-city"}'); - Dangerous shell operationline 965
const miss = exec("slots/catalog/scripts/executors/create_product.ts", "{}"); - Dangerous shell operationline 972
const limited = exec("slots/catalog/scripts/executors/create_limited_product.ts", '{"name":"Limited SKU","validHours":3}'); - Dangerous shell operationline 976
const orderMiss = exec("slots/catalog/scripts/executors/create_order.ts", '{"name":"x"}'); - Dangerous shell operationline 980
const order = exec("slots/catalog/scripts/executors/create_order.ts", JSON.stringify({ productId, userId: "u-1", quantity: 2 })); - Dangerous shell operationline 985
const credit = exec("slots/catalog/scripts/executors/setup_account_credit.ts", JSON.stringify({ productId, userId: "u-1", credits: 500 })); - Dangerous shell operationline 989
const dist = exec("slots/distribution/scripts/executors/create_distributor.ts", '{"name":"North Channel"}'); - Dangerous shell operationline 995
const bind = exec("slots/distribution/scripts/executors/bind_inventory.ts", JSON.stringify({ distributorId, productId })); - Dangerous shell operationline 999
const comm = exec("slots/distribution/scripts/executors/set_commission.ts", JSON.stringify({ distributorId, rate: 0.15 })); - Dangerous shell operationline 1003
const quote = exec("slots/distribution/scripts/executors/browse_and_quote.ts", JSON.stringify({ distributorId, productId })); - Dangerous shell operationline 1007
const bindMiss = exec("slots/distribution/scripts/executors/bind_inventory.ts", "{}"); - Network accessline 1518
const up = await waitUntil(async () => { try { const resp = await fetch(`http://127.0.0.1:${port}/api/all`); - Network accessline 1519
try { const resp = await fetch(`http://127.0.0.1:${port}/api/all`); return resp.ok; - Network accessline 1520
const resp = await fetch(`http://127.0.0.1:${port}/api/all`); - Network accessline 1527
if (up) { try { const resp = await fetch(`http://127.0.0.1:${port}/api/all`); - Network accessline 1528
try { const resp = await fetch(`http://127.0.0.1:${port}/api/all`); const data = (await resp.json()) as JsonObject; - Network accessline 1529
const resp = await fetch(`http://127.0.0.1:${port}/api/all`); - Network accessline 1576
const tmpl = run(process.execPath, [join(TS_ROOT, "references/script-template.ts"), "--json", '{"name":"Workflow Item"}'], { env: { ...isolatedEnv, DATA_BUILD_API_BASE: "http://127.0.0.1:9" }, - Network accessline 1577
env: { ...isolatedEnv, DATA_BUILD_API_BASE: "http://127.0.0.1:9" }, - Network accessline 1803
const port = 18766; const env = { ...isolatedEnv, DATA_BUILD_API_BASE: `http://127.0.0.1:${port}` }; - Network accessline 1804
const env = { ...isolatedEnv, DATA_BUILD_API_BASE: `http://127.0.0.1:${port}` }; - Network accessline 1810
const up = await waitUntil(async () => { try { const resp = await fetch(`http://127.0.0.1:${port}/health`); - Network accessline 1811
try { const resp = await fetch(`http://127.0.0.1:${port}/health`); return resp.ok; - Network accessline 1812
const resp = await fetch(`http://127.0.0.1:${port}/health`);
skills/codexqa-testdata-generator/scripts/_verify_user_journeys.ts
- Executable scriptline 1
#!/usr/bin/env node - Network accessline 212
import { realpathSync } from "node:fs"; import { fileURLToPath } from "node:url"; const BASE_URL = process.env.DATA_BUILD_API_BASE || "http://127.0.0.1:8765"; - Network accessline 213
import { fileURLToPath } from "node:url"; const BASE_URL = process.env.DATA_BUILD_API_BASE || "http://127.0.0.1:8765"; export async function main(params) { - Network accessline 214
const BASE_URL = process.env.DATA_BUILD_API_BASE || "http://127.0.0.1:8765"; - Network accessline 217
if (!name) return { success: false, data: null, error: "missing required param: name" }; const body = { name, status: params.status || "open" }; const resp = await fetch(BASE_URL + "/v1/records", { - Network accessline 218
const body = { name, status: params.status || "open" }; const resp = await fetch(BASE_URL + "/v1/records", { method: "POST", - Network accessline 219
const resp = await fetch(BASE_URL + "/v1/records", { - Network accessline 244
import { realpathSync } from "node:fs"; import { fileURLToPath } from "node:url"; const BASE_URL = process.env.DATA_BUILD_API_BASE || "http://127.0.0.1:8765"; - Network accessline 245
import { fileURLToPath } from "node:url"; const BASE_URL = process.env.DATA_BUILD_API_BASE || "http://127.0.0.1:8765"; export async function main(params) { - Network accessline 246
const BASE_URL = process.env.DATA_BUILD_API_BASE || "http://127.0.0.1:8765"; - Network accessline 247
export async function main(params) { if (!params.recordId) return { success: false, data: null, error: "missing required param: recordId" }; const resp = await fetch(BASE_URL + "/v1/records/" + params.recordId + "/close", { - Network accessline 248
if (!params.recordId) return { success: false, data: null, error: "missing required param: recordId" }; const resp = await fetch(BASE_URL + "/v1/records/" + params.recordId + "/close", { method: "POST", - Network accessline 249
const resp = await fetch(BASE_URL + "/v1/records/" + params.recordId + "/close", { - Network accessline 424
const port = 18781; const env = { ...isolatedEnv, DATA_BUILD_API_BASE: `http://127.0.0.1:${port}` }; - Network accessline 425
const env = { ...isolatedEnv, DATA_BUILD_API_BASE: `http://127.0.0.1:${port}` }; - Network accessline 432
const up = await waitUntil(async () => { try { return (await fetch(`http://127.0.0.1:${port}/health`)).ok; - Network accessline 433
try { return (await fetch(`http://127.0.0.1:${port}/health`)).ok; } catch { - Network accessline 434
return (await fetch(`http://127.0.0.1:${port}/health`)).ok;
skills/codexqa-testdata-generator/scripts/adapters/api_catalog.ts
- Executable scriptline 1
#!/usr/bin/env node
skills/codexqa-testdata-generator/scripts/adapters/auth.ts
skills/codexqa-testdata-generator/scripts/adapters/case_writeback.ts
- Executable scriptline 1
#!/usr/bin/env node
skills/codexqa-testdata-generator/scripts/adapters/cli.ts
- Executable scriptline 1
#!/usr/bin/env node
skills/codexqa-testdata-generator/scripts/adapters/config.ts
- Executable scriptline 1
#!/usr/bin/env node
skills/codexqa-testdata-generator/scripts/adapters/config_store.ts
- Executable scriptline 1
#!/usr/bin/env node
skills/codexqa-testdata-generator/scripts/adapters/data_store.ts
- Executable scriptline 1
#!/usr/bin/env node
skills/codexqa-testdata-generator/scripts/adapters/doc_source.ts
- Executable scriptline 1
#!/usr/bin/env node - Network accessline 29
if (ref.startsWith("http://") || ref.startsWith("https://")) { try { const resp = await fetch(ref, { headers: await this.auth.headers(), signal: AbortSignal.timeout(20_000) }); - Network accessline 30
try { const resp = await fetch(ref, { headers: await this.auth.headers(), signal: AbortSignal.timeout(20_000) }); const content = await resp.text(); - Network accessline 31
const resp = await fetch(ref, { headers: await this.auth.headers(), signal: AbortSignal.timeout(20_000) });
skills/codexqa-testdata-generator/scripts/adapters/experience_store.ts
skills/codexqa-testdata-generator/scripts/adapters/feature_flags.ts
- Executable scriptline 1
#!/usr/bin/env node
skills/codexqa-testdata-generator/scripts/adapters/httputil.ts
skills/codexqa-testdata-generator/scripts/adapters/index.ts
- Executable scriptline 1
#!/usr/bin/env node
skills/codexqa-testdata-generator/scripts/adapters/skill_marketplace.ts
- Executable scriptline 1
#!/usr/bin/env node
skills/codexqa-testdata-generator/scripts/adapters/slot_roots.ts
- Executable scriptline 1
Executable file
skills/codexqa-testdata-generator/scripts/adapters/tool_registry.ts
- Executable scriptline 1
#!/usr/bin/env node
skills/codexqa-testdata-generator/scripts/adapters/workspace_context.ts
- Executable scriptline 1
#!/usr/bin/env node
skills/codexqa-testdata-generator/scripts/experience_client.ts
- Executable scriptline 1
#!/usr/bin/env node - Network accessline 95
return 2; } result = await store.fetch(JSON.parse(values.queries), values.domain, Number(values["top-k"] || 3)); - Network accessline 96
} result = await store.fetch(JSON.parse(values.queries), values.domain, Number(values["top-k"] || 3)); } else if (command === "report") { - Network accessline 97
result = await store.fetch(JSON.parse(values.queries), values.domain, Number(values["top-k"] || 3));
skills/codexqa-testdata-generator/scripts/favorites.ts
- Executable scriptline 1
#!/usr/bin/env node - Access to secretsline 11
[Credential-related source omitted] - Access to secretsline 23
[Credential-related source omitted] - Dangerous shell operationline 253
process.stdout.write(`Usage: node favorites.ts rm (--name <name> | --uuid <uuid> | --id <id>) - Dangerous shell operationline 264
node favorites.ts rm --name "catalog" - Dangerous shell operationline 289
rm Unpin a skill - Dangerous shell operationline 298
node favorites.ts rm --name "catalog"
skills/codexqa-testdata-generator/scripts/pack_skills.ts
- Executable scriptline 1
#!/usr/bin/env node
skills/codexqa-testdata-generator/scripts/search_data_build.ts
- Executable scriptline 1
#!/usr/bin/env node - Executable scriptline 1
#!/usr/bin/env node - Executable scriptline 1
Executable file; content unavailable - Network accessline 49
const provenPromise = (async () => { if (!(queryText || registryKey)) return [] as JsonObject[]; const resp = await runtime.experience_store.fetch( - Network accessline 49
const provenPromise = (async () => { if (!(queryText || registryKey)) return [] as JsonObject[]; const resp = await runtime.experience_store.fetch( - Network accessline 50
if (!(queryText || registryKey)) return [] as JsonObject[]; const resp = await runtime.experience_store.fetch( [{ key: registryKey || "", type: entryType, query_text: queryText || registryKey || "" }], - Network accessline 50
if (!(queryText || registryKey)) return [] as JsonObject[]; const resp = await runtime.experience_store.fetch( [{ key: registryKey || "", type: entryType, query_text: queryText || registryKey || "" }], - Network accessline 51
const resp = await runtime.experience_store.fetch( - Network accessline 51
const resp = await runtime.experience_store.fetch(
skills/codexqa-testdata-generator/scripts/sync_slot.ts
skills/codexqa-testdata-generator/slot-scaffolder/scripts/scaffold_slot.ts
- Executable scriptline 1
#!/usr/bin/env node - Network accessline 20
const BASE_URL = process.env.DATA_BUILD_API_BASE || "http://127.0.0.1:8765"; - Access to secretsline 25
[Credential-related source omitted] - Network accessline 26
[Credential-related source omitted] - Network accessline 27
try { const resp = await fetch(url, { method, - Network accessline 28
const resp = await fetch(url, {
skills/codexqa-testdata-generator/slots/SLOT_SPEC.md
- Network accessline 36
`name` must match the directory name and may contain only lowercase `a-z`, digits, and single `-` (no `_`, no uppercase, no leading/trailing/consecutive hyphens). Follow the [Agent Skills spec](https://agentskills.io/specification). - Network accessline 36
`name` must match the directory name and may contain only lowercase `a-z`, digits, and single `-` (no `_`, no uppercase, no leading/trailing/consecutive hyphens). Follow the [Agent Skills spec](https://agentskills.io/specification). - Network accessline 36
`name` must match the directory name and may contain only lowercase `a-z`, digits, and single `-` (no `_`, no uppercase, no leading/trailing/consecutive hyphens). Follow the [Agent Skills spec](https://agentskills.io/specification). - Network accessline 36
`name` must match the directory name and may contain only lowercase `a-z`, digits, and single `-` (no `_`, no uppercase, no leading/trailing/consecutive hyphens). Follow the [Agent Skills spec](https://agentskills.io/specification).
skills/codexqa-testdata-generator/slots/catalog/assets/openapi/catalog.yaml
skills/codexqa-testdata-generator/slots/catalog/references/tools-guide.md
- Network accessline 3
All executors POST JSON to `DATA_BUILD_API_BASE` (default `http://127.0.0.1:8765`).
skills/codexqa-testdata-generator/slots/catalog/scripts/executors/create_limited_product.ts
- Executable scriptline 1
#!/usr/bin/env node
skills/codexqa-testdata-generator/slots/catalog/scripts/executors/create_order.ts
- Executable scriptline 1
#!/usr/bin/env node
skills/codexqa-testdata-generator/slots/catalog/scripts/executors/create_product.ts
- Executable scriptline 1
#!/usr/bin/env node
skills/codexqa-testdata-generator/slots/catalog/scripts/executors/setup_account_credit.ts
- Executable scriptline 1
#!/usr/bin/env node
skills/codexqa-testdata-generator/slots/common/client.ts
- Executable scriptline 1
#!/usr/bin/env node - Network accessline 4
const DEFAULT_BASE = process.env.DATA_BUILD_API_BASE || "http://127.0.0.1:8765"; - Access to secretsline 26
[Credential-related source omitted] - Network accessline 27
[Credential-related source omitted] - Network accessline 28
try { const resp = await fetch(url, { method, - Network accessline 29
const resp = await fetch(url, {
skills/codexqa-testdata-generator/slots/distribution/assets/openapi/distribution.yaml
skills/codexqa-testdata-generator/slots/distribution/references/tools-guide.md
- Network accessline 3
All executors POST JSON to `DATA_BUILD_API_BASE` (default `http://127.0.0.1:8765`).
skills/codexqa-testdata-generator/slots/distribution/scripts/executors/bind_inventory.ts
- Executable scriptline 1
#!/usr/bin/env node
skills/codexqa-testdata-generator/slots/distribution/scripts/executors/browse_and_quote.ts
- Executable scriptline 1
#!/usr/bin/env node
skills/codexqa-testdata-generator/slots/distribution/scripts/executors/create_distributor.ts
- Executable scriptline 1
#!/usr/bin/env node
skills/codexqa-testdata-generator/slots/distribution/scripts/executors/set_commission.ts
- Executable scriptline 1
#!/usr/bin/env node
skills/codexqa-testdata-generator/slots/mock_server.ts
- Executable scriptline 1
#!/usr/bin/env node - Executable scriptline 1
#!/usr/bin/env node - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
#!/usr/bin/env node - Executable scriptline 1
Executable file; content unavailable - Network accessline 250
const server = createServer(async (req, res) => { const url = new URL(req.url || "/", `http://${host}:${port}`); - Network accessline 250
const server = createServer(async (req, res) => { const url = new URL(req.url || "/", `http://${host}:${port}`); - Network accessline 250
const server = createServer(async (req, res) => { const url = new URL(req.url || "/", `http://${host}:${port}`); - Network accessline 251
const url = new URL(req.url || "/", `http://${host}:${port}`); - Network accessline 251
const url = new URL(req.url || "/", `http://${host}:${port}`); - Network accessline 251
const url = new URL(req.url || "/", `http://${host}:${port}`); - Network accessline 284
server.listen(port, host, () => { process.stdout.write(`mock server http://${host}:${port} store=${STORE_PATH}\n`); - Network accessline 284
server.listen(port, host, () => { process.stdout.write(`mock server http://${host}:${port} store=${STORE_PATH}\n`); - Network accessline 284
server.listen(port, host, () => { process.stdout.write(`mock server http://${host}:${port} store=${STORE_PATH}\n`); - Network accessline 285
process.stdout.write(`mock server http://${host}:${port} store=${STORE_PATH}\n`); - Network accessline 285
process.stdout.write(`mock server http://${host}:${port} store=${STORE_PATH}\n`); - Network accessline 285
process.stdout.write(`mock server http://${host}:${port} store=${STORE_PATH}\n`);
How the signals fit together
Facts from a static read of the files at the pinned commit. They describe what the code does, not why.
Some files could not be read; the facts below still hold.
Declared and executed: 3 facts
- Contacts www.w3.org, which SKILL.md, the README and the plugin manifest do not mentioncodexqa-code-wiki/scripts/lib/layout.mjs:223High confidence
- Contacts raw.githubusercontent.com, which SKILL.md, the README and the plugin manifest do not mentioncodexqa-defect-analyzer/scripts/ensure_tools.py:59High confidence
- Contacts raw.githubusercontent.com, which SKILL.md, the README and the plugin manifest do not mentioncodexqa-defect-analyzer/scripts/install_sast_tools.sh:128High confidence
Signal confidence: 497 facts
- Network access in prose of documentationcodexqa-change-analysis/KNOWN_LIMITATIONS.md:38Low confidence
- Network access in prose of documentationcodexqa-change-analysis/KNOWN_LIMITATIONS.zh-CN.md:36Low confidence
- Network access in code of documentationcodexqa-change-analysis/README.md:39Low confidence
- Network access in code of documentationcodexqa-change-analysis/README.zh-CN.md:39Low confidence
- Network access in code of documentationcodexqa-change-analysis/references/analysis.md:110Low confidence
- Network access in code of documentationcodexqa-change-analysis/references/analysis.md:111Low confidence
- Network access in code of documentationcodexqa-change-analysis/references/analysis.md:112Low confidence
- Access to secrets in code of documentationcodexqa-change-analysis/references/analysis.md:183Low confidence
- Network access in prose of documentationcodexqa-code-analyzer/KNOWN_LIMITATIONS.md:20Low confidence
- Network access in prose of documentationcodexqa-code-analyzer/KNOWN_LIMITATIONS.zh-CN.md:20Low confidence
- Network access in code of documentationcodexqa-code-analyzer/README.md:23Low confidence
- Network access in code of documentationcodexqa-code-analyzer/README.md:37Low confidence
- Network access in code of documentationcodexqa-code-analyzer/README.md:38Low confidence
- Network access in code of documentationcodexqa-code-analyzer/README.md:148Low confidence
- Network access in code of documentationcodexqa-code-analyzer/README.md:150Low confidence
- Network access in code of documentationcodexqa-code-analyzer/README.md:257Low confidence
- Network access in code of documentationcodexqa-code-analyzer/README.md:258Low confidence
- Network access in code of documentationcodexqa-code-analyzer/README.md:259Low confidence
- Network access in prose of documentationcodexqa-code-analyzer/README.md:270Low confidence
- Network access in prose of documentationcodexqa-code-analyzer/README.md:271Low confidence
- Access to secrets in code of documentation: a variable, placeholder or call, not a stored valuecodexqa-code-analyzer/README.md:285Low confidence
- Network access in code of documentationcodexqa-code-analyzer/README.zh-CN.md:21Low confidence
- Network access in code of documentationcodexqa-code-analyzer/README.zh-CN.md:39Low confidence
- Network access in code of documentationcodexqa-code-analyzer/README.zh-CN.md:40Low confidence
- Network access in code of documentationcodexqa-code-analyzer/README.zh-CN.md:183Low confidence
- Network access in code of documentationcodexqa-code-analyzer/README.zh-CN.md:185Low confidence
- Network access in code of documentationcodexqa-code-analyzer/README.zh-CN.md:300Low confidence
- Network access in code of documentationcodexqa-code-analyzer/README.zh-CN.md:301Low confidence
- Network access in code of documentationcodexqa-code-analyzer/README.zh-CN.md:302Low confidence
- Network access in prose of documentationcodexqa-code-analyzer/README.zh-CN.md:313Low confidence
- Network access in prose of documentationcodexqa-code-analyzer/README.zh-CN.md:314Low confidence
- Access to secrets in code of documentation: a variable, placeholder or call, not a stored valuecodexqa-code-analyzer/README.zh-CN.md:330Low confidence
- Network access in code of documentationcodexqa-code-analyzer/references/cli.md:10Low confidence
- Network access in prose of documentationcodexqa-code-analyzer/references/cli.md:32Low confidence
- Network access in prose of documentationcodexqa-code-analyzer/references/cli.md:34Low confidence
- Network access in code of documentationcodexqa-code-analyzer/references/cli.md:56Low confidence
- Network access in code of documentationcodexqa-code-analyzer/references/cli.md:57Low confidence
- Access to secrets in code of documentationcodexqa-code-analyzer/references/cli.md:58Low confidence
- Network access in code of documentationcodexqa-code-analyzer/references/playbook.md:15Low confidence
- Network access in code of documentationcodexqa-code-analyzer/references/playbook.md:16Low confidence
- Network access in code of documentationcodexqa-code-analyzer/references/playbook.md:17Low confidence
- Network access in code of documentationcodexqa-code-analyzer/references/playbook.md:37Low confidence
- Network access in code of documentationcodexqa-code-analyzer/references/playbook.md:39Low confidence
- Network access in code of documentationcodexqa-code-analyzer/references/playbook.md:115Low confidence
- Network access in code of documentationcodexqa-code-analyzer/references/playbook.md:116Low confidence
- Network access in code of documentationcodexqa-code-analyzer/references/playbook.md:117Low confidence
- Network access in prose of documentationcodexqa-code-analyzer/references/playbook.md:127Low confidence
- Network access in prose of documentationcodexqa-code-analyzer/references/playbook.md:128Low confidence
- Access to secrets in code of documentation: a variable, placeholder or call, not a stored valuecodexqa-code-analyzer/references/playbook.md:140Low confidence
- Network access in prose of documentationcodexqa-code-reviewer/HOW_IT_WORKS.md:47Low confidence
and 447 more
Only the first 500 facts are listed.
Works with
| Agent | Status | Evidence | Install to |
|---|---|---|---|
| Claude Code | Compatible | Standard SKILL.md skills/codexqa-change-analysis/SKILL.md | .claude/skills/<skill-name>/ |
| Codex | Native | Manifest AGENTS.md | .agents/skills/<skill-name>/ |
| Cursor | Compatible | Standard SKILL.md skills/codexqa-change-analysis/SKILL.md | .cursor/skills/<skill-name>/ |
| Gemini CLI | Compatible | Standard SKILL.md skills/codexqa-change-analysis/SKILL.md | .gemini/skills/<skill-name>/ |
| GitHub Copilot | Compatible | Standard SKILL.md skills/codexqa-change-analysis/SKILL.md | .github/skills/<skill-name>/ |
| OpenCode | Compatible | Standard SKILL.md skills/codexqa-change-analysis/SKILL.md | .opencode/skills/<skill-name>/ |
- Native The repository ships a manifest, folder or frontmatter field for this agent.
- Compatible A standard SKILL.md that this agent can read.
- Unknown No evidence either way.
Derived automatically from paths, manifests and frontmatter. Not tested on each agent.