Этот скилл MUST быть вызван когда пользователь просит проверить или протестировать 1С через браузер в интерактивном режиме (быстрые ручные проверки).

AGPL-3.0Auto-check: notesAgent Workflows

Install Web Test

skills CLI
$ npx skills add Arman-Kudaibergenov/1c-ai-development-kit --skill web-test -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install Arman-Kudaibergenov/1c-ai-development-kit web-test --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/Arman-Kudaibergenov/1c-ai-development-kit.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.claude/skills/web-test .claude/skills/web-test && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
web-test
GitHub stars
166
Token cost
~3.4k tokens
SKILL.md length
1,037 words
Files
7 (incl. scripts)
Skills in repo
50
Repo updated
First seen
Licence
AGPL-3.0

At a glance

Этот скилл MUST быть вызван когда пользователь просит проверить или протестировать 1С через браузер в интерактивном режиме (быстрые ручные проверки).

  • Agent Workflows work in your project
  • SKILL.md covers Quick start, Setup (first time), URL resolution and Execution modes, plus 5 more sections
  • Runs JavaScript scripts from its folder; calls node and npm

What it does

Web Test is an agent skill from Arman-Kudaibergenov/1c-ai-development-kit. Этот скилл MUST быть вызван когда пользователь просит проверить или протестировать 1С через браузер в интерактивном режиме (быстрые ручные проверки). SHOULD также вызывать для одноразовой верификации поведения веб-интерфейса 1С. Do NOT использовать для создания файлов автотестов — используй playwright-test; для сложных сценариев — используй 1c-web-session.

Its SKILL.md is about 3.4k tokens, which your agent loads only when the skill is triggered. The skill folder holds 7 other files, including scripts (for example `recording.md`, `scripts/package-lock.json` and `scripts/package.json`).

It sits in Agent Workflows. It works with Playwright. The repository describes itself as: Comprehensive AI agents, skills and rules toolkit for 1C:Enterprise development in Cursor IDE. The licence is AGPL-3.0.

When your agent uses it

  • Agent Workflows work in your project

Example prompts

  • “/web-test”

Requirements

  • Node.js
  • Pre-approved tools (allowed-tools): Bash, Read, Write, Glob, Grep

What it can do on your machine

Read from SKILL.md and the folder at commit 92d389e. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves these tools, so the agent can use them without asking each time:

    • Bash
    • Read
    • Write
    • Glob
    • Grep

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Ships 5 files in scripts/ (JavaScript), which the agent can run.

    Shell commands in SKILL.md call:

    • node
    • npm

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md. Its commands use npm, which can reach the network depending on how they are called.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Web Test loads about 3.4k tokens when it runs. Until then it costs about 92 tokens; SKILL.md has 1,037 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~92
When it runs · the whole SKILL.md, loaded when a task matches
~3.4k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check: notes

The automated check noted patterns worth knowing about, such as sudo or a known installer.

  • NotePre-approves every shell command (allowed-tools: Bash)SKILL.md
    allowed-tools: Bash, Read, Write, Glob, Grep

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); the scripts in this folder are not scanned.

SKILL.md

The full file from Arman-Kudaibergenov/1c-ai-development-kit at commit 92d389e, republished under its AGPL-3.0 licence (© Arman-Kudaibergenov). 1,037 words, ~3,396 tokens.

Download SKILL.mdSave it as .claude/skills/web-test/SKILL.md (or your agent's skills folder). This skill also uses 6 other files; get the full folder from GitHub.
name
web-test
description
Этот скилл MUST быть вызван когда пользователь просит проверить или протестировать 1С через браузер в интерактивном режиме (быстрые ручные проверки). SHOULD также вызывать для одноразовой верификации поведения веб-интерфейса 1С. Do NOT использовать для создания файлов автотестов — используй playwright-test; для сложных сценариев — используй 1c-web-session.
allowed-tools
Bash, Read, Write, Glob, Grep
argument-hint
сценарий на естественном языке

/web-test — Browser automation for 1C web client

Automates user interactions with 1C:Enterprise web client via Playwright — navigating sections, filling forms, reading tables and reports, filtering lists.

Quick start

bash
RUN=".claude/skills/web-test/scripts/run.mjs"

# One-shot: opens browser → runs script → closes browser → exits
node $RUN run http://localhost:8081/bpdemo test-scenario.js

# Or pipe inline:
cat <<'SCRIPT' | node $RUN run http://localhost:8081/bpdemo -
await navigateSection('Продажи');
await openCommand('Заказы клиентов');
await clickElement('Создать');
await fillFields({ 'Клиент': 'Альфа' });
await clickElement('Провести и закрыть');
SCRIPT

Setup (first time)

bash
cd .claude/skills/web-test/scripts && npm install

Requires Node.js 18+. npm install downloads Playwright and Chromium.

URL resolution

Read .v8-project.json from project root. Each database has id and optional webUrl. Construct URL as http://localhost:8081/<id> or use webUrl if set. Use /web-publish first if the database is not published.

Execution modes

Autonomous mode (preferred for complete scenarios)
bash
node $RUN run <url> script.js   # exits when done, no session
Interactive mode (step-by-step development)
bash
# 1. Start session (run_in_background=true, prints JSON when ready)
node $RUN start <url>

# 2. Execute scripts against running session
cat <<'SCRIPT' | node $RUN exec -
const form = await getFormState();
console.log(JSON.stringify(form, null, 2));
SCRIPT

# 3. Screenshot
node $RUN shot result.png

# 4. Stop (logout + close)
node $RUN stop

start runs an HTTP server in background. Use exec/shot/stop from other shells.

Writing exec scripts

All browser.mjs exports are globals — no import needed. console.log() output is captured in the JSON response. writeFileSync / readFileSync also available.

API reference

Navigation
navigateSection(name) → { navigated, sections, commands }

Go to a top-level section (fuzzy match). Returns list of commands in that section.

js
await navigateSection('Продажи');
// { navigated: 'Продажи', sections: [...], commands: ['Заказы клиентов', ...] }
openCommand(name) → form state

Open a command from the function panel (fuzzy). Returns form state of the opened form.

js
const form = await openCommand('Заказы клиентов');

Open any 1C object by metadata path (Shift+F11 dialog). Bypasses section/command navigation.

js
await navigateLink('Документ.ЗаказКлиента');
await navigateLink('РегистрНакопления.ЗаказыКлиентов');
await navigateLink('Справочник.Контрагенты');
switchTab(name) → form state

Switch to an already-open tab/window (fuzzy match).

Reading form state
getFormState() → { fields, buttons, tabs, table, filters, reportSettings? }

Returns current form structure. This is the primary way to understand what's on screen.

fields — each field has: name, value, label?, actions? (select, clear, open), required? (true for unfilled mandatory fields)

table — summary only: { name, columns, rowCount }. Use readTable() for actual data.

reportSettings — for DCS reports: human-readable filter settings instead of raw technical names:

js
const form = await getFormState();
// form.reportSettings = [
//   { name: "Склад", enabled: true, value: "Склад бытовой техники", actions: ["select"] },
//   { name: "Номенклатура", enabled: false, value: "" }
// ]

errorModal — if present, 1C showed an error dialog. Read the message and decide how to proceed.

confirmation — if present, a Yes/No dialog is shown. Call clickElement('Да') or clickElement('Нет').

Reading data
readTable({ maxRows?, offset? }) → { columns, rows, total, shown, offset }

Read actual grid data with pagination. Each row is { columnName: value }.

OptionDefaultDescription
maxRows20Max rows to return per call
offset0Skip first N rows

Special row fields:

  • _kind: 'group' — hierarchical group row
  • _kind: 'parent' — parent row in hierarchy
  • _tree: 'expanded'|'collapsed' — tree node state
  • _level: N — nesting depth in tree view
  • hierarchical: true — list has groups (on result object)
  • viewMode: 'tree' — tree view active (on result object)
js
const t = await readTable({ maxRows: 50 });
console.log('Columns:', t.columns);
console.log('Rows:', t.rows.length, 'of', t.total);
// Pagination:
const page2 = await readTable({ maxRows: 50, offset: 50 });
readSpreadsheet() → { title?, headers?, data?, totals?, rows?, total }

Read report output (SpreadsheetDocument) after clicking "Сформировать".

Returns structured data when header row is detected:

js
await clickElement('Сформировать');
await wait(5);
const report = await readSpreadsheet();
// { title: "Остатки товаров", headers: ["Номенклатура", "Склад", "Количество"],
//   data: [{ "Номенклатура": "Бумага", "Склад": "Основной", "Количество": "150" }, ...],
//   totals: { "Количество": "1250" }, total: 42 }

Falls back to { rows: string[][], total } when headers can't be detected.

getSections() → { activeSection, sections, commands }

Read section panel and commands without navigating.

getCommands() → string[]

Commands of the current section.

getPageState() → { activeSection, activeTab, sections, tabs }

Sections + all open tabs.

Actions
clickElement(text, { dblclick? }) → form state

Click button, hyperlink, tab, or grid row (fuzzy match).

  • Single click selects a row in a list. Double-click opens the item:
    js
    await clickElement('0000-000227', { dblclick: true }); // opens document
  • Returns submenu[] when a menu opens — click again with item name:
    js
    const r = await clickElement('Ещё');
    // r.submenu = ['Расширенный поиск', 'Настройки', ...]
    await clickElement('Расширенный поиск');
  • Handles tree nodes: clicking a tree icon expands/collapses.
fillFields({ name: value }) → { filled, form }

Fill form fields by label (fuzzy match). Auto-detects field type.

ValueField typeMethod
'Конфетпром'ReferenceClipboard paste + typeahead
'5000'Plain textClipboard paste
'true' / 'да'CheckboxToggle
'Оплата поставщику'RadioFuzzy label match

DCS report filters: use human-readable label names. Checkbox is auto-enabled:

js
await fillFields({
  'Склад': 'Склад бытовой техники',   // auto-enables "Склад" checkbox + fills value
  'Номенклатура': 'Вентилятор'          // same: enables checkbox + fills
});

Returns { filled: [{ field, ok, value, method }], form: {...} }. Method is one of: 'toggle' | 'radio' | 'paste' | 'dropdown' | 'form' | 'typeahead'

selectValue(field, search) → form state with selected

Select a value from reference field via dropdown or selection form. More reliable than fillFields for reference fields that need exact selection from a catalog.

js
await selectValue('Организация', 'Конфетпром');
// result.selected = { field: 'Организация', search: 'Конфетпром', method: 'dropdown'|'form' }

Also supports DCS labels — auto-enables the paired checkbox.

fillTableRow(fields, opts) → form state

Fill table row cells via Tab navigation.

js
// Add new row:
await fillTableRow(
  { 'Номенклатура': 'Бумага', 'Количество': '10', 'Цена': '100' },
  { tab: 'Товары', add: true }
);
// Edit existing row:
await fillTableRow(
  { 'Количество': '20' },
  { tab: 'Товары', row: 0 }
);
  • Tab-based sequential navigation — field order set by 1C form config
  • Fuzzy cell match: "Количество" matches "ТоварыКоличество"
  • Reference cells auto-detected by autocomplete popup
deleteTableRow(row, { tab? }) → form state

Delete row by 0-based index.

Show full SKILL.md (430 more words)Show less
closeForm({ save? }) → form state

Close the current form via Escape.

ArgumentBehavior
{ save: false }Auto-clicks "Нет" on confirmation
{ save: true }Auto-clicks "Да" on confirmation
{} (omitted)Returns confirmation field if dialog appears

Preferred over clickElement('×') — close buttons on tabs are ambiguous.

filterList(text, opts?) → form state

Filter list. Simple mode searches all columns, advanced mode targets a specific field.

js
await filterList('КП00-000018');                          // simple — all columns
await filterList('Мишка', { field: 'Наименование' });     // advanced — specific column
await filterList('Мишка', { field: 'Наименование', exact: true }); // exact match

Works on hierarchical catalogs too (flattens the view).

unfilterList({ field? }) → form state

Clear filters. Without arguments clears all, with { field } clears specific badge.

Utility
screenshot() → PNG Buffer
wait(seconds) → form state
getPage() → Playwright Page (raw, for advanced scripting)
startRecording(path, opts?) / stopRecording() → MP4 video recording
showCaption(text, opts?) / hideCaption() → text overlay on page
showTitleSlide(text, opts?) / hideTitleSlide() → full-screen title card (intro/outro)
isRecording() → boolean
setHighlight(on) / isHighlightMode() → auto-highlight mode for video
highlight(text) / unhighlight() → manual element highlighting

See recording.md for setup (ffmpeg), highlight mode, API details, and examples. If .v8-project.json has ffmpegPath, pass it to startRecording({ ffmpegPath }).

Common patterns

Create and save a document
js
await navigateSection('Продажи');
await openCommand('Заказы клиентов');
await clickElement('Создать');
await fillFields({ 'Организация': 'Конфетпром', 'Контрагент': 'Альфа' });
await fillTableRow({ 'Номенклатура': 'Бумага', 'Количество': '10' }, { tab: 'Товары', add: true });
await clickElement('Провести и закрыть');
Open item from list
js
await clickElement('КП00-000227', { dblclick: true });
// Always use { dblclick: true } — single click only selects the row
Work with hierarchical lists
js
await filterList('Конфетпром');                               // flatten + search
await clickElement('Конфетпром ООО', { dblclick: true });     // open
await closeForm();
await unfilterList();                                          // restore hierarchy
Generate and read a report
js
// Fill report filters using readable labels
await fillFields({ 'Склад': 'Основной склад' });
await clickElement('Сформировать');
await wait(5);
const report = await readSpreadsheet();
console.log('Title:', report.title);
console.log('Data rows:', report.data?.length);
Keyboard shortcuts (via page.keyboard.press)
KeyContextAction
F8Reference field focusedCreate new catalog item
Shift+F4Reference field focusedClear field value
F4Reference field focusedOpen selection form
Alt+FList/table formOpen advanced search dialog
Closing forms — which method to use
GoalMethod
Post & close documentclickElement('Провести и закрыть')
Save & close catalogclickElement('Записать и закрыть')
Close without savingcloseForm({ save: false })
Close and savecloseForm({ save: true })
Close (manual confirm)closeForm() — returns confirmation if dialog appears

Exec response format

json
{ "ok": true, "output": "...console.log output...", "elapsed": 3.2 }

On error (auto-screenshot taken):

json
{ "ok": false, "error": "Element not found", "output": "...", "screenshot": "error-shot.png", "elapsed": 1.5 }

Avoiding loops

  • Max 2 attempts per operation. If an action fails twice with the same approach — stop and report to the user
  • Not found = not found. If filterList returns 0 rows or readTable is empty after filtering — the item likely doesn't exist in this database. Don't retry the same search 5 times with slight variations
  • Try a different approach, not the same one. Couldn't find via section navigation? Try navigateLink. Couldn't find via simple search? Try advanced search with a specific field. But don't repeat the same method
  • Report partial results. If you found the list but not the specific item — say so. Show what IS available instead of silently retrying

Important notes

  • Headed mode — 1C requires visible browser, no headless
  • Startup time — 1C loads 30-60s on initial connect (built into start)
  • Fuzzy matching — all name lookups: exact > startsWith > includes
  • Clipboard paste — all text fields filled via Ctrl+V (triggers 1C events properly)
  • Cyrillic in bash — use cat <<'SCRIPT' | node $RUN exec - to avoid escaping issues
  • Non-breaking spaces — 1C uses \u00a0 instead of regular spaces. All matching is normalized internally

© Arman-Kudaibergenov, AGPL-3.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 6 other files (scripts) in .claude/skills/web-test of Arman-Kudaibergenov/1c-ai-development-kit.

  • SKILL.md
  • recording.md
  • scripts/browser.mjs
  • scripts/dom.mjs
  • scripts/package-lock.json
  • scripts/package.json
  • scripts/run.mjs

Open the folder on GitHubat commit 92d389e

Compare with similar skills

Web Test next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Web Test compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Web Test this skillArman-Kudaibergenov/1c-ai-development-kit166—~3.4kAutomated safety check: NotesAGPL-3.0
Context Mode Output Sandboxmksglu/context-mode26k—~4.1kAutomated safety check: PassCustom licence
Agent QA Authoringvostride/agent-qa902—~569Automated safety check: PassCustom licence
Agent QA Result Triagevostride/agent-qa902—~394Automated safety check: PassCustom licence
Project Releaseswimmwatch/cloakbrowser-mcp161—~1.9kAutomated safety check: PassMIT
Lightpandalightpanda-io/agent-skill101—~6kAutomated safety check: PassApache-2.0

Similar skills

  • Context Mode Output Sandbox

    mksglu/context-mode

    Routes large command, file, API and browser output through context-mode tools so only the needed result enters the agent's context, instead of dumping it via Bash.

    26k GitHub stars~4.1k tokensUpdated yesterday
    Agent WorkflowsAuto-check passed
  • Agent QA Authoring

    vostride/agent-qa

    A skill your agent uses when creating, editing, validating, or running agent-qa tests, suites, or hooks.

    902 GitHub stars~569 tokensUpdated 2 mo ago
    Agent WorkflowsAuto-check passed
  • Agent QA Result Triage

    vostride/agent-qa

    A skill your agent uses when investigating failed agent-qa runs, inspecting artifacts, classifying failures, or comparing recent runs.

    902 GitHub stars~394 tokensUpdated 2 mo ago
    Agent WorkflowsAuto-check passed
  • Project Release

    swimmwatch/cloakbrowser-mcp

    Prepare, publish, verify, or recover a cloakbrowser-mcp release only when the user explicitly requests release work.

    161 GitHub stars~1.9k tokensUpdated 7 days ago
    Agent WorkflowsAuto-check passed
  • Lightpanda

    lightpanda-io/agent-skill

    Lightpanda browser, drop-in replacement for Chrome-based browsing in any AI agent - faster and lighter for tasks without graphical rendering like data retrieval.

    101 GitHub stars~6k tokensUpdated 2 days ago
    Agent WorkflowsAuto-check passed
  • Verified Research

    sweetcornna/free-search-mcp

    Use with the free-search MCP tools whenever a web lookup must yield facts someone will rely on: dates, deadlines, prices, prizes, fees, rules, eligibility, schedules, versions, statistics, news, or…

    116 GitHub stars~1.8k tokensUpdated 4 days ago
    Agent WorkflowsAuto-check passed

More from Arman-Kudaibergenov/1c-ai-development-kit

All 50 skills in this repo
  • 1c Web Session

    Arman-Kudaibergenov/1c-ai-development-kit

    Этот скилл MUST быть вызван для управления 1С:Предприятие в веб-клиенте через Playwright MCP: запуск/перезапуск/завершение сеанса, навигация, создание и редактирование справочников и документов.

    166 GitHub stars~2.5k tokensUpdated 4 mo ago
    Auto-check: notes
  • Inspect

    Arman-Kudaibergenov/1c-ai-development-kit

    Этот скилл MUST быть вызван для анализа и инспекции любого объекта 1С из XML-выгрузки: конфигурация (cf-info), объект метаданных (meta-info), управляемая форма (form-info), схема компоновки данных…

    166 GitHub stars~3.4k tokensUpdated 4 mo ago
    Auto-check: notes
  • 1c Project Init

    Arman-Kudaibergenov/1c-ai-development-kit

    Этот скилл MUST быть вызван когда пользователь говорит "инициализируем проект", "init project", просит настроить 1С-проект.

    166 GitHub stars~4.2k tokensUpdated 4 mo ago
    Auto-check: notes
  • Cf Edit

    Arman-Kudaibergenov/1c-ai-development-kit

    Этот скилл MUST быть вызван когда нужно изменить свойства конфигурации, добавить или удалить объект из состава ChildObjects, настроить роли по умолчанию.

    166 GitHub stars~582 tokensUpdated 4 mo ago
    Auto-check: notes
  • Cfe Diff

    Arman-Kudaibergenov/1c-ai-development-kit

    Этот скилл MUST быть вызван когда нужно проанализировать состав расширения (CFE): заимствованные объекты, перехватчики, проверить перенесены ли вставки.

    166 GitHub stars~531 tokensUpdated 4 mo ago
    Auto-check: notes
  • Cfe Init

    Arman-Kudaibergenov/1c-ai-development-kit

    Этот скилл MUST быть вызван когда пользователь просит создать новое расширение конфигурации (CFE) для исправления, доработки или дополнения.

    166 GitHub stars~569 tokensUpdated 4 mo ago
    Auto-check: notes

Works with

Categories

Questions about Web Test

What does Web Test do?

Этот скилл MUST быть вызван когда пользователь просит проверить или протестировать 1С через браузер в интерактивном режиме (быстрые ручные проверки). Web Test is an agent skill from Arman-Kudaibergenov/1c-ai-development-kit. Этот скилл MUST быть вызван когда пользователь просит проверить или протестировать 1С через браузер в интерактивном режиме (быстрые ручные проверки).

When should I use Web Test?

Web Test fits situations like: agent Workflows work in your project.

How do I install Web Test in Claude Code?

Run `npx skills add Arman-Kudaibergenov/1c-ai-development-kit --skill web-test -a claude-code`. Or copy the skill folder (.claude/skills/web-test in Arman-Kudaibergenov/1c-ai-development-kit) into .claude/skills/web-test in your project. Claude Code loads it when a task matches its description.

How do I install Web Test in Codex?

Run `npx skills add Arman-Kudaibergenov/1c-ai-development-kit --skill web-test -a codex`. Or copy the skill folder (.claude/skills/web-test in Arman-Kudaibergenov/1c-ai-development-kit) into .agents/skills/web-test in your project. Codex loads it when a task matches its description.

Can I use Web Test in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add Arman-Kudaibergenov/1c-ai-development-kit --skill web-test -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/web-test, .gemini/skills/web-test, .github/skills/web-test and .opencode/skills/web-test in your project.

What does Web Test need to run?

Going by SKILL.md and its folder, Web Test needs JavaScript for the scripts in its folder and the command-line tools its instructions call (node and npm). Our summary lists: Node.js. Its frontmatter pre-approves these tools: Bash, Read, Write, Glob, Grep.

Does Web Test access the network?

SKILL.md contains no URLs. Its commands use npm, which can reach the network depending on how they are called. This is read from the text; nothing was executed.

Is Web Test safe to install?

Our automated static check of SKILL.md found notes only (pre-approves every shell command (allowed-tools: bash)), nothing it rates as a warning. It is not a guarantee. The check reads SKILL.md only: the scripts in the folder are not scanned, so read them before running anything.

What licence does Web Test use?

Web Test is published under the AGPL-3.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Web Test use?

About 3.4k tokens (SKILL.md is roughly 14k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Web Test?

Skills that share tags, products or a category with Web Test: Context Mode Output Sandbox (mksglu/context-mode, 26k stars), Agent QA Authoring (vostride/agent-qa, 902 stars), Agent QA Result Triage (vostride/agent-qa, 902 stars) and Project Release (swimmwatch/cloakbrowser-mcp, 161 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Web Test?

Arman-Kudaibergenov (a GitHub user) maintains it in Arman-Kudaibergenov/1c-ai-development-kit, which has 166 GitHub stars. The repository holds 50 skills in this directory. The repository was last updated on May 25, 2026.

Source: Arman-Kudaibergenov/1c-ai-development-kit on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.