Skip to content

Atomic

Low-level primitives: file I/O, git, HTTP, shell, SSH, process management, and testing.

44 modules

ModuleDescription
配列フィルター条件によって配列要素をフィルタリングする
配列ソート配列要素を昇順または降順でソートする
配列ユニーク配列から重複値を除去する
OAuth2 Token ExchangeExchange authorization code, refresh token, or client credentials for an access token
DNSルックアップドメインレコードのDNSルックアップ
テキスト差分2つのテキスト文字列の差分を生成
ファイル編集正確な文字列マッチングを使用してファイル内のテキストを置換
ファイル存在確認ファイルまたはディレクトリが存在するか確認する
ファイル読み込みファイルからコンテンツを読み込む
ファイル書き込みファイルにコンテンツを書き込む
Git クローンGit リポジトリをクローンする
Git コミットGit コミットを作成する
Git 差分Git 差分を取得する
HTTP PaginateAutomatically iterate through paginated API endpoints and collect all results
HTTPリクエストHTTPリクエストを送信してレスポンスを受け取る
HTTPレスポンス検証HTTPレスポンスのプロパティを検証する
HTTP SessionSend a sequence of HTTP requests with persistent cookies (login → action → logout)
Webhook WaitStart a temporary server and wait for an incoming webhook callback
LLMチャットインテリジェントな操作のためにLLM APIと対話
AIコード修正問題に基づいてコード修正を自動生成
計算基本的な数学演算を実行
HTTPヘルスチェックHTTPヘルスチェック / アップタイムモニター
ポートチェックネットワークポートが開いているか閉じているかをチェック
ポート待機ネットワークポートが利用可能になるまで待機
プロセス一覧実行中のすべてのバックグラウンドプロセスを一覧表示
バックグラウンドプロセス開始バックグラウンドプロセス(サーバー、サービスなど)を開始
プロセス停止実行中のバックグラウンドプロセスを停止
シェルコマンド実行シェルコマンドを実行して出力をキャプチャ
SSH 実行SSH を使ってリモートサーバーでコマンドを実行
SFTP ダウンロードSFTP を使ってリモートサーバーからファイルをダウンロード
SFTP アップロードSFTP を使ってリモートサーバーにファイルをアップロード
E2Eステップ実行エンドツーエンドテストステップを順次実行
品質ゲート定義されたしきい値に対して品質メトリクスを評価
HTTPテスト実行HTTP APIテストスイートを実行
リンター実行ソースコードでリンティングチェックを実行
レポート生成テスト実行レポートを生成
シナリオ実行シナリオベースのテスト(BDDスタイル)を実行
セキュリティスキャンセキュリティ脆弱性をスキャン
テストスイート実行テストのコレクションを実行
ユニットテスト実行ユニットテストを実行
ビジュアル比較ビジュアル出力の違いを比較
UI品質評価多次元スコアリングによる包括的なUI品質評価
AIで画像を分析OpenAI Vision API(GPT-4V)を使用して画像を分析
画像比較2つの画像を比較して視覚的な違いを特定

Modules

配列フィルター

array.filter

条件によって配列要素をフィルタリングする

Parameters:

NameTypeRequiredDefaultDescription
arrayarrayYes-Array of items to process. Can be numbers, strings, or objects.
conditionselect (eq, ne, gt, gte, lt, lte, contains, startswith, endswith, regex, in, notin, exists, empty, notempty)Yes-How to compare each item against the value
valuestringYes-Value to compare each item against (leave empty for exists/empty checks)

Output:

FieldTypeDescription
filteredarrayフィルタリングされた配列
countnumberフィルタリングされた要素数

Example: Filter numbers greater than 5

yaml
array: [1, 5, 10, 15, 3]
condition: gt
value: 5

配列ソート

array.sort

配列要素を昇順または降順でソートする

Parameters:

NameTypeRequiredDefaultDescription
arrayarrayYes-Array of items to process. Can be numbers, strings, or objects.
orderselect (asc, desc)NoascDirection to sort items

Output:

FieldTypeDescription
sortedarrayソートされた配列
countnumberソートされた要素数

Example: Sort numbers ascending

yaml
array: [5, 2, 8, 1, 9]
order: asc

配列ユニーク

array.unique

配列から重複値を除去する

Parameters:

NameTypeRequiredDefaultDescription
arrayarrayYes-Array of items to process. Can be numbers, strings, or objects.
preserve_orderbooleanNoTrueKeep first occurrence order

Output:

FieldTypeDescription
uniquearrayユニークな値を持つ配列
countnumberユニークな要素数
duplicates_removednumber除去された重複の数

Example: Remove duplicates

yaml
array: [1, 2, 2, 3, 4, 3, 5]
preserve_order: true

OAuth2 Token Exchange

auth.oauth2

Exchange authorization code, refresh token, or client credentials for an access token

Parameters:

NameTypeRequiredDefaultDescription
token_urlstringYes-OAuth2 token endpoint URL
grant_typestringNoauthorization_codeOAuth2 grant type
client_idstringYes-OAuth2 application client ID
client_secretstringNo-OAuth2 application client secret
codestringNo-Authorization code received from the OAuth2 authorization flow
redirect_uristringNo-Redirect URI used in the authorization request (must match exactly)
refresh_tokenstringNo-Refresh token for obtaining a new access token
scopestringNo-Space-separated list of OAuth2 scopes
code_verifierstringNo-PKCE code verifier for public clients
client_auth_methodstringNobodyHow to send client credentials to the token endpoint
extra_paramsobjectNo{}Additional parameters to include in the token request
timeoutnumberNo15Maximum time to wait in seconds

Output:

FieldTypeDescription
okbooleanWhether token exchange was successful
access_tokenstringThe access token for API requests
token_typestringToken type (usually "Bearer")
expires_innumberToken lifetime in seconds
refresh_tokenstringRefresh token (if provided by the OAuth2 server)
scopestringGranted scopes
rawobjectFull raw response from the token endpoint
duration_msnumberRequest duration in milliseconds

Example: Exchange authorization code (Google)

yaml
token_url: https://oauth2.googleapis.com/token
grant_type: authorization_code
client_id: ${env.GOOGLE_CLIENT_ID}
client_secret: ${env.GOOGLE_CLIENT_SECRET}
code: 4/0AX4XfWh...
redirect_uri: https://yourapp.com/callback

Example: Refresh an expired token

yaml
token_url: https://oauth2.googleapis.com/token
grant_type: refresh_token
client_id: ${env.GOOGLE_CLIENT_ID}
client_secret: ${env.GOOGLE_CLIENT_SECRET}
refresh_token: ${env.REFRESH_TOKEN}

Example: Client credentials (machine-to-machine)

yaml
token_url: https://login.microsoftonline.com/{tenant}/oauth2/v2.0/token
grant_type: client_credentials
client_id: ${env.AZURE_CLIENT_ID}
client_secret: ${env.AZURE_CLIENT_SECRET}
scope: https://graph.microsoft.com/.default

Example: GitHub OAuth (code exchange)

yaml
token_url: https://github.com/login/oauth/access_token
grant_type: authorization_code
client_id: ${env.GITHUB_CLIENT_ID}
client_secret: ${env.GITHUB_CLIENT_SECRET}
code: abc123...

DNSルックアップ

dns.lookup

ドメインレコードのDNSルックアップ

Parameters:

NameTypeRequiredDefaultDescription
domainstringYes-ルックアップするドメイン名
record_typeselect (A, AAAA, CNAME, MX, NS, TXT, SOA, SRV)NoAクエリするDNSレコードタイプ
timeoutnumberNo10クエリのタイムアウト(秒)

Output:

FieldTypeDescription
okbooleanWhether lookup succeeded
dataobject

Example: A record lookup

yaml
domain: example.com
record_type: A

Example: MX record lookup

yaml
domain: example.com
record_type: MX

テキスト差分

file.diff

2つのテキスト文字列の差分を生成

Parameters:

NameTypeRequiredDefaultDescription
originalstringYes-元のテキスト
modifiedstringYes-変更後のテキスト
context_linesnumberNo3変更周辺のコンテキスト行数
filenamestringNofile差分ヘッダーで使用するファイル名

Output:

FieldTypeDescription
diffstring統一された差分出力
changedboolean変更があるかどうか
additionsnumber追加された行数
deletionsnumber削除された行数

Example: Diff two strings

yaml
original: hello
world
modified: hello
world!
filename: test.txt

ファイル編集

file.edit

正確な文字列マッチングを使用してファイル内のテキストを置換

Parameters:

NameTypeRequiredDefaultDescription
pathstringYes-編集するファイルのパス
old_stringstringYes-検索して置換するテキスト
new_stringstringYes-置換後のテキスト
replace_allbooleanNoFalse最初だけでなくすべての出現を置換
encodingselect (utf-8, ascii, latin-1, utf-16, gbk, big5)Noutf-8ファイルのエンコーディング

Output:

FieldTypeDescription
pathstring編集されたファイルのパス
replacementsnumber置換された回数
diffstring変更内容を示す差分

Example: Replace string in file

yaml
path: /tmp/example.py
old_string: def hello():
new_string: def hello_world():

ファイル存在確認

file.exists

ファイルまたはディレクトリが存在するか確認する

Parameters:

NameTypeRequiredDefaultDescription
pathstringYes-Path to the file

Output:

FieldTypeDescription
existsbooleanパスが存在するかどうか
is_filebooleanファイルかどうか
is_directorybooleanディレクトリかどうか

Example: Check file exists

yaml
path: /tmp/data.txt

ファイル読み込み

file.read

ファイルからコンテンツを読み込む

Parameters:

NameTypeRequiredDefaultDescription
pathstringYes-Path to the file
encodingselect (utf-8, ascii, latin-1, utf-16, gbk, big5)Noutf-8Character encoding for the file

Output:

FieldTypeDescription
contentstringファイルコンテンツ
sizenumberファイルサイズ

Example: Read text file

yaml
path: /tmp/data.txt
encoding: utf-8

ファイル書き込み

file.write

ファイルにコンテンツを書き込む

Parameters:

NameTypeRequiredDefaultDescription
pathstringYes-Path to the file
contentstringYes-Text content to write to the file
encodingselect (utf-8, ascii, latin-1, utf-16, gbk, big5)Noutf-8Character encoding for the file
modeselect (overwrite, append)NooverwriteHow to write content to the file

Output:

FieldTypeDescription
pathstringファイルパス
bytes_writtennumber書き込まれたバイト数

Example: Write text file

yaml
path: /tmp/output.txt
content: Hello World
mode: overwrite

Git クローン

git.clone

Git リポジトリをクローンする

Parameters:

NameTypeRequiredDefaultDescription
urlstringYes-Git リポジトリの URL (HTTPS または SSH)
destinationstringYes-クローン先のローカルパス
branchstringNo-クローン後にチェックアウトするブランチ
depthnumberNo-浅いクローンの深さ(フルクローンの場合は省略)
tokenstringNo-プライベートリポジトリ用の個人アクセス トークン

Output:

FieldTypeDescription
okbooleanWhether clone succeeded
dataobject

Example: Clone public repository

yaml
url: https://github.com/user/repo.git
destination: /tmp/repo

Example: Shallow clone specific branch

yaml
url: https://github.com/user/repo.git
destination: /tmp/repo
branch: develop
depth: 1

Git コミット

git.commit

Git コミットを作成する

Parameters:

NameTypeRequiredDefaultDescription
repo_pathstringYes-Git リポジトリのパス
messagestringYes-コミットメッセージ
add_allbooleanNoFalseコミット前にすべての変更をステージする (git add -A)
filesarrayNo-コミット前にステージする特定のファイル
author_namestringNo-コミットの著者名を上書きする
author_emailstringNo-コミットの著者メールを上書きする

Output:

FieldTypeDescription
okbooleanWhether commit succeeded
dataobject

Example: Commit all changes

yaml
repo_path: /home/user/project
message: feat: add user authentication
add_all: true

Example: Commit specific files

yaml
repo_path: /home/user/project
message: fix: correct typo in readme
files: ["README.md"]

Git 差分

git.diff

Git 差分を取得する

Parameters:

NameTypeRequiredDefaultDescription
repo_pathstringYes-Git リポジトリのパス
ref1stringNoHEAD最初の参照(コミット、ブランチ、タグ)
ref2stringNo-比較対象の2番目の参照
stagedbooleanNoFalseステージされた変更のみを表示する (--cached)
stat_onlybooleanNoFalseファイル統計のみを表示する (--stat)

Output:

FieldTypeDescription
okbooleanWhether diff succeeded
dataobject

Example: Show unstaged changes

yaml
repo_path: /home/user/project

Example: Compare branches

yaml
repo_path: /home/user/project
ref1: main
ref2: feature/login

Example: Show staged changes stats

yaml
repo_path: /home/user/project
staged: true
stat_only: true

HTTP Paginate

http.paginate

Automatically iterate through paginated API endpoints and collect all results

Parameters:

NameTypeRequiredDefaultDescription
urlstringYes-URL to navigate to
methodselect (GET, POST, PUT, PATCH, DELETE, HEAD, OPTIONS)NoGETHTTP request method
headersobjectNo{}HTTP request headers as key-value pairs
authobjectNo-Authentication credentials for the HTTP request
strategystringNooffsetHow the API implements pagination
data_pathstringNo-Dot-notation path to the array of items in the response (e.g. "data", "results", "items")
offset_paramstringNooffsetQuery parameter name for offset
limit_paramstringNolimitQuery parameter name for page size
page_sizenumberNo100Number of items per page
page_paramstringNopageQuery parameter name for page number
start_pagenumberNo1First page number (usually 0 or 1)
cursor_paramstringNocursorQuery parameter name for cursor token
cursor_pathstringNo-Dot-notation path to the next cursor in the response (e.g. "meta.next_cursor", "pagination.next")
max_pagesnumberNo50Maximum number of pages to fetch (safety limit)
delay_msnumberNo0Milliseconds to wait between page requests (rate limiting)
timeoutnumberNo30Maximum time to wait in seconds
verify_sslbooleanNoTrueVerify SSL certificates

Output:

FieldTypeDescription
okbooleanWhether all pages were fetched successfully
itemsarrayAll collected items across all pages
total_itemsnumberTotal number of items collected
pages_fetchednumberNumber of pages fetched
duration_msnumberTotal duration in milliseconds

Example: Offset pagination (REST API)

yaml
url: https://api.example.com/users
strategy: offset
data_path: data
page_size: 100

Example: Page number pagination

yaml
url: https://api.example.com/products
strategy: page
data_path: results
page_param: page
page_size: 50
start_page: 1

Example: Cursor pagination (Slack, Notion)

yaml
url: https://api.notion.com/v1/databases/{db_id}/query
method: POST
strategy: cursor
data_path: results
cursor_path: next_cursor
cursor_param: start_cursor
auth: {"type": "bearer", "token": "${env.NOTION_TOKEN}"}

Example: Link header pagination (GitHub)

yaml
url: https://api.github.com/repos/octocat/hello-world/issues
strategy: link_header
page_size: 100
auth: {"type": "bearer", "token": "${env.GITHUB_TOKEN}"}

HTTPリクエスト

http.request

HTTPリクエストを送信してレスポンスを受け取る

Parameters:

NameTypeRequiredDefaultDescription
urlstringYes-URL to navigate to
methodselect (GET, POST, PUT, PATCH, DELETE, HEAD, OPTIONS)NoGETHTTP request method
headersobjectNo{}HTTP request headers as key-value pairs
bodyanyNo-HTTP request body content (JSON, text, or form data)
queryobjectNo{}URL query string parameters as key-value pairs
content_typeselect (application/json, application/x-www-form-urlencoded, multipart/form-data, text/plain, text/html, application/xml)Noapplication/jsonContent type of the request body
authobjectNo-Authentication credentials for the HTTP request
timeoutnumberNo30Maximum time to wait in seconds
follow_redirectsbooleanNoTrueAutomatically follow HTTP redirects
verify_sslbooleanNoTrueVerify SSL certificates
response_typeselect (auto, json, text, binary)NoautoHow to parse the response body
retry_countnumberNo0Number of retries on failure or 429/503 status
retry_backoffstringNoexponentialBackoff strategy between retries
retry_delaynumberNo1Initial delay between retries in seconds

Output:

FieldTypeDescription
okbooleanリクエストが成功したかどうか(2xxステータス)
statusnumberHTTPステータスコード
status_textstringHTTPステータステキスト
headersobjectレスポンスヘッダー
bodyanyレスポンスボディ(パースされたJSONまたはテキスト)
urlstring最終URL(リダイレクト後)
duration_msnumberリクエスト処理時間(ミリ秒)
content_typestringレスポンスのContent-Type
content_lengthnumberコンテンツ長

Example: Simple GET request

yaml
url: https://api.example.com/users
method: GET

Example: POST with JSON body

yaml
url: https://api.example.com/users
method: POST
body: {"name": "John", "email": "john@example.com"}

Example: Request with Bearer auth

yaml
url: https://api.example.com/protected
method: GET
auth: {"type": "bearer", "token": "${env.API_TOKEN}"}

Example: Request with query params

yaml
url: https://api.example.com/search
method: GET
query: {"q": "flyto", "limit": 10}

HTTPレスポンス検証

http.response_assert

HTTPレスポンスのプロパティを検証する

Parameters:

NameTypeRequiredDefaultDescription
responseobjectYes-HTTP response object from http.request
statusanyNo-Expected status code (number, array of numbers, or range string "200-299")
body_containsanyNo-String or array of strings that body should contain
body_not_containsanyNo-String or array of strings that body should NOT contain
body_matchesstringYes-Regular expression pattern
json_pathobjectNo-Object mapping JSON paths to expected values (e.g., {"data.id": 123})
json_path_existsarrayNo-Array of JSON paths that should exist
header_containsobjectNo-Object mapping header names to expected values
content_typeselect (application/json, application/x-www-form-urlencoded, multipart/form-data, text/plain, text/html, application/xml)No-Content type of the request body
max_duration_msnumberNo-Maximum allowed response time in milliseconds
schemaobjectNo-JSON Schema to validate response body against
fail_fastbooleanNoFalseStop on first assertion failure

Output:

FieldTypeDescription
okbooleanすべてのアサーションが通過したかどうか
passednumber通過したアサーション数
failednumber失敗したアサーション数
totalnumberアサーション総数
assertionsarray詳細なアサーション結果
errorsarrayエラーメッセージ

Example: Assert status 200

yaml
response: ${http_request.result}
status: 200

Example: Assert JSON structure

yaml
response: ${http_request.result}
status: 200
json_path: {"data.id": "${expected_id}", "data.name": "John"}
json_path_exists: ["data.created_at", "data.email"]

Example: Assert API response

yaml
response: ${api_result}
status: [200, 201]
content_type: application/json
max_duration_ms: 1000
json_path: {"success": true}

HTTP Session

http.session

Send a sequence of HTTP requests with persistent cookies (login → action → logout)

Parameters:

NameTypeRequiredDefaultDescription
requestsarrayYes-Ordered list of HTTP requests to execute with shared cookies
authobjectNo-Authentication applied to all requests in the session
stop_on_errorbooleanNoTrueStop executing remaining requests if one fails (non-2xx)
timeoutnumberNo30Maximum time per individual request
verify_sslbooleanNoTrueVerify SSL certificates

Output:

FieldTypeDescription
okbooleanWhether all requests succeeded
resultsarrayResults from each request in order
cookiesobjectFinal session cookies as key-value pairs
duration_msnumberTotal duration in milliseconds

Example: Login and fetch data

yaml
requests: [{"label": "Login", "url": "https://example.com/api/login", "method": "POST", "body": {"username": "${env.USER}", "password": "${env.PASS}"}}, {"label": "Get Profile", "url": "https://example.com/api/profile", "method": "GET"}]
stop_on_error: true

Example: CSRF token flow

yaml
requests: [{"label": "Get CSRF Token", "url": "https://example.com/csrf-token", "method": "GET"}, {"label": "Submit Form", "url": "https://example.com/api/submit", "method": "POST", "body": {"data": "value"}}]

Webhook Wait

http.webhook_wait

Start a temporary server and wait for an incoming webhook callback

Parameters:

NameTypeRequiredDefaultDescription
pathstringNo/webhookURL path to listen on (e.g. /webhook, /callback)
portnumberNo0Port to listen on (0 = auto-assign)
timeoutnumberNo300Maximum time to wait for the webhook callback
use_ngrokbooleanNoFalseCreate an ngrok tunnel for public access (requires pyngrok)
ngrok_tokenstringNo-ngrok authentication token (free at ngrok.com)
expected_methodstringNoPOSTOnly accept this HTTP method (empty = accept any)
response_statusnumberNo200HTTP status code to respond with when webhook is received
response_bodystringNo{"ok": true}Response body to send back to the webhook caller

Output:

FieldTypeDescription
okbooleanWhether webhook was received before timeout
webhook_urlstringThe URL to send webhooks to (public if ngrok enabled)
methodstringHTTP method of the received webhook
headersobjectHeaders from the received webhook
bodyanyBody from the received webhook (parsed JSON or raw text)
queryobjectQuery parameters from the received webhook
duration_msnumberTime waited for the webhook in milliseconds

Example: Wait for Stripe webhook (local)

yaml
path: /webhook/stripe
port: 8765
timeout: 120
use_ngrok: false

Example: Wait for webhook with ngrok tunnel

yaml
path: /webhook
timeout: 300
use_ngrok: true
ngrok_token: ${env.NGROK_AUTH_TOKEN}

LLMチャット

llm.chat

インテリジェントな操作のためにLLM APIと対話

Parameters:

NameTypeRequiredDefaultDescription
promptstringYes-The prompt or question to send to the AI model
system_promptstringNo-System instructions to set AI behavior and context
contextobjectNo-Additional context data to include
messagesarrayNo-Previous messages for multi-turn conversation
providerselect (openai, anthropic, ollama)NoopenaiAI model provider
modelstringNogpt-4oSpecific model to use
temperaturenumberNo0.7Creativity level (0=deterministic, 1=creative)
max_tokensnumberNo2000Maximum tokens in response
response_formatselect (text, json, code, markdown)NotextExpected format of the AI response
api_keystringNo-API key (defaults to provider env var)
base_urlstringNo-Custom API base URL (for Ollama or proxies)

Output:

FieldTypeDescription
okbooleanリクエストが成功したかどうか
responsestringリクエストが成功したかどうか
parsedanyリクエストが成功したかどうか
modelstringLLMレスポンステキスト
tokens_usednumberパースされたレスポンス(JSON形式が要求された場合)
finish_reasonstring使用されたモデル

Example: Code Review

yaml
prompt: Review this code for bugs and improvements:

${code}
system_prompt: You are an expert code reviewer. Be specific and actionable.
model: gpt-4o

Example: Generate Fix

yaml
prompt: The UI evaluation found these issues: ${issues}

Generate code fixes.
system_prompt: You are a frontend developer. Return only valid code.
response_format: code

Example: Decision Making

yaml
prompt: Based on these test results, should we deploy? ${test_results}
system_prompt: You are a DevOps engineer. Return JSON: {"decision": "yes/no", "reason": "..."}
response_format: json

AIコード修正

llm.code_fix

問題に基づいてコード修正を自動生成

Parameters:

NameTypeRequiredDefaultDescription
issuesarrayYes-List of issues to fix (from ui.evaluate, test results, etc.)
source_filesarrayYes-Files to analyze and potentially fix
fix_modeselect (suggest, apply, dry_run)NosuggestHow to handle the suggested fixes
backupbooleanNoTrueCreate .bak backup before modifying files
contextstringNo-Text content to process
modelstringNogpt-4oSpecific model to use
api_keystringNo-API key (defaults to provider env var)

Output:

FieldTypeDescription
okboolean操作が成功したかどうか
fixesarray操作が成功したかどうか
appliedarray操作が成功したかどうか
failedarray生成された修正のリスト
summarystring適用された修正のリスト(fix_modeがapplyの場合)

Example: Fix UI Issues

yaml
issues: ${ui_evaluation.issues}
source_files: ["./src/components/Footer.tsx", "./src/styles/footer.css"]
fix_mode: suggest
context: React + Tailwind CSS project

Example: Auto-fix and Apply

yaml
issues: ${test_results.failures}
source_files: ["./src/App.tsx"]
fix_mode: apply
backup: true

計算

math.calculate

基本的な数学演算を実行

Parameters:

NameTypeRequiredDefaultDescription
operationselect (add, subtract, multiply, divide, power, modulo, sqrt, abs)Yes-Operation to perform
anumberYes-First operand
bnumberNo-Second operand (not required for sqrt and abs)
precisionnumberNo2Number of decimal places

Output:

FieldTypeDescription
resultnumber計算結果
operationstring計算結果
expressionstring計算結果

Example: Add two numbers

yaml
operation: add
a: 10
b: 5

Example: Calculate power

yaml
operation: power
a: 2
b: 8

HTTPヘルスチェック

monitor.http_check

HTTPヘルスチェック / アップタイムモニター

Parameters:

NameTypeRequiredDefaultDescription
urlstringYes-チェックするURL
methodselect (GET, HEAD, POST)NoGETHTTPメソッド
expected_statusnumberNo200期待されるHTTPステータスコード
timeout_msnumberNo10000リクエストタイムアウト(ミリ秒)
headersobjectNo-カスタムリクエストヘッダー
bodystringNo-リクエストボディ(POST用)
check_sslbooleanNoTrueSSL証明書の有効性と期限をチェック
containsstringNo-レスポンスボディに含まれるべき文字列
follow_redirectsbooleanNoTrueHTTPリダイレクトを追跡

Output:

FieldTypeDescription
okbooleanWhether check completed
dataobject

Example: Basic health check

yaml
url: https://api.example.com/health
expected_status: 200

Example: Check with content validation

yaml
url: https://api.example.com/health
contains: "status":"ok"
timeout_ms: 5000

ポートチェック

port.check

ネットワークポートが開いているか閉じているかをチェック

Parameters:

NameTypeRequiredDefaultDescription
portanyYes-チェックするポート番号またはポートの配列
hoststringNolocalhostチェックするポート番号またはポートの配列
connect_timeoutnumberNo2接続先ホスト
expect_openbooleanNo-各接続試行のタイムアウト

Output:

FieldTypeDescription
okbooleanポートが開いていることを確認する場合はtrue、閉じている場合はfalseに設定
resultsarrayすべてのチェックが合格したかどうか(expect_openが設定されている場合)
open_portsarrayすべてのチェックが合格したかどうか(expect_openが設定されている場合)
closed_portsarrayポートチェック結果の配列
summaryobject開いているポートのリスト

Example: Check single port

yaml
port: 3000

Example: Check multiple ports

yaml
port: [3000, 8080, 5432]
host: localhost

Example: Assert ports are open

yaml
port: [80, 443]
host: example.com
expect_open: true

ポート待機

port.wait

ネットワークポートが利用可能になるまで待機

Parameters:

NameTypeRequiredDefaultDescription
portnumberYes-待機するポート番号
hoststringNolocalhost接続先ホスト
timeoutnumberNo60接続先ホスト
intervalnumberNo500最大待機時間
expect_closedbooleanNoFalse接続試行間の間隔(ミリ秒)

Output:

FieldTypeDescription
okboolean代わりにポートが利用不可になるまで待機
availablebooleanポートが期待される状態かどうか
hoststringポートが期待される状態かどうか
portnumberポートが現在利用可能かどうか
wait_time_msnumberチェックされたホスト
attemptsnumberチェックされたポート

Example: Wait for dev server

yaml
port: 3000
timeout: 30

Example: Wait for database

yaml
port: 5432
host: localhost
timeout: 60

Example: Wait for port to close

yaml
port: 8080
expect_closed: true
timeout: 10

プロセス一覧

process.list

実行中のすべてのバックグラウンドプロセスを一覧表示

Parameters:

NameTypeRequiredDefaultDescription
filter_namestringNo-Filter processes by name (substring match)
include_statusbooleanNoTrueInclude running/stopped status check for each process

Output:

FieldTypeDescription
okboolean操作成功
processesarray操作成功
countnumber操作成功
runningnumberプロセス情報のリスト
stoppednumberプロセスの総数

Example: List all processes

yaml

Example: Filter by name

yaml
filter_name: dev

バックグラウンドプロセス開始

process.start

バックグラウンドプロセス(サーバー、サービスなど)を開始

Parameters:

NameTypeRequiredDefaultDescription
commandstringYes-Shell command to execute
cwdstringNo-Directory to execute command in
envobjectNo-Additional environment variables to set
namestringNo-Friendly name to identify the process
wait_for_outputstringNo-String to wait for in stdout before returning
wait_timeoutnumberNo60Maximum time to wait in seconds
capture_outputbooleanNoTrueCapture stdout/stderr output from the process
log_filestringNo-File path to write process output to
auto_restartbooleanNoFalseAutomatically restart the process if it exits

Output:

FieldTypeDescription
okbooleanプロセスが正常に開始したかどうか
pidnumberプロセスが正常に開始したかどうか
process_idstringプロセスが正常に開始したかどうか
namestringプロセスID
commandstringprocess.stop用の内部プロセス識別子
cwdstringプロセス名
started_atstring実行されたコマンド
initial_outputstringプロセス開始のISOタイムスタンプ

Example: Start dev server

yaml
command: npm run dev
cwd: ./frontend
name: frontend-dev
wait_for_output: ready on
wait_timeout: 30

Example: Start Python HTTP server

yaml
command: python -m http.server 8000
name: static-server

Example: Start with environment

yaml
command: node server.js
env: {"PORT": "3000", "NODE_ENV": "test"}
name: api-server
wait_for_output: listening

プロセス停止

process.stop

実行中のバックグラウンドプロセスを停止

Parameters:

NameTypeRequiredDefaultDescription
process_idstringNo-Internal process identifier (from process.start)
namestringNo-Friendly name to identify the process
pidnumberNo-System process ID (PID) of the process
signalselect (SIGTERM, SIGKILL, SIGINT)NoSIGTERMSignal to send to the process
timeoutnumberNo10Maximum time to wait in seconds
forcebooleanNoFalseForce kill the process immediately with SIGKILL
stop_allbooleanNoFalseStop all tracked processes

Output:

FieldTypeDescription
okbooleanすべてのプロセスが正常に停止したかどうか
stoppedarrayすべてのプロセスが正常に停止したかどうか
failedarray停止したプロセス情報のリスト
countnumber停止したプロセス情報のリスト

Example: Stop by process ID

yaml
process_id: ${start_result.process_id}

Example: Stop by name

yaml
name: dev-server

Example: Force kill by PID

yaml
pid: 12345
force: true

Example: Stop all processes

yaml
stop_all: true

シェルコマンド実行

shell.exec

シェルコマンドを実行して出力をキャプチャ

Parameters:

NameTypeRequiredDefaultDescription
commandstringYes-Shell command to execute
cwdstringNo-Directory to execute command in
envobjectNo-Additional environment variables to set
timeoutnumberNo300Maximum time to wait in seconds
shellbooleanNoFalseExecute command through shell (enables pipes, redirects)
capture_stderrbooleanNoTrueCapture stderr separately from stdout
encodingselect (utf-8, ascii, latin-1, utf-16, gbk, big5)Noutf-8Character encoding for the file
raise_on_errorbooleanNoFalseRaise exception if command returns non-zero exit code

Output:

FieldTypeDescription
okbooleanコマンドが正常に実行されたかどうか(終了コード0)
exit_codenumberコマンドが正常に実行されたかどうか(終了コード0)
stdoutstringコマンドが正常に実行されたかどうか(終了コード0)
stderrstringコマンド終了コード
commandstring標準出力
cwdstring標準エラー出力
duration_msnumber実行されたコマンド

Example: Run npm install

yaml
command: npm install
cwd: ./my-project

Example: Run tests with pytest

yaml
command: python -m pytest tests/ -v
timeout: 120

Example: Git status

yaml
command: git status --porcelain

Example: Build project

yaml
command: npm run build
cwd: ./frontend
env: {"NODE_ENV": "production"}

SSH 実行

ssh.exec

SSH を使ってリモートサーバーでコマンドを実行

Parameters:

NameTypeRequiredDefaultDescription
hoststringYes-SSH サーバーのホスト名または IP
portnumberNo22SSH ポート
usernamestringYes-SSH ユーザー名
passwordstringNo-SSH パスワード
private_keystringNo-PEM 形式の秘密鍵
commandstringYes-リモートサーバーで実行するコマンド
timeoutnumberNo30コマンドのタイムアウト(秒)

Output:

FieldTypeDescription
okbooleanWhether command succeeded
dataobject

Example: List files on remote server

yaml
host: 192.168.1.100
username: deploy
command: ls -la /var/www

Example: Restart service

yaml
host: 10.0.0.5
username: root
command: systemctl restart nginx

SFTP ダウンロード

ssh.sftp_download

SFTP を使ってリモートサーバーからファイルをダウンロード

Parameters:

NameTypeRequiredDefaultDescription
hoststringYes-SSH サーバーのホスト名または IP
portnumberNo22SSH ポート
usernamestringYes-SSH ユーザー名
passwordstringNo-SSHパスワード
private_keystringNo-PEM形式の秘密鍵
remote_pathstringYes-リモートサーバー上のファイルパス
local_pathstringYes-ローカルマシンの保存先パス

Output:

FieldTypeDescription
okbooleanWhether download succeeded
dataobject

Example: Download server log

yaml
host: 10.0.0.5
username: deploy
remote_path: /var/log/nginx/access.log
local_path: /tmp/access.log

SFTP アップロード

ssh.sftp_upload

SFTP を使ってリモートサーバーにファイルをアップロード

Parameters:

NameTypeRequiredDefaultDescription
hoststringYes-SSH サーバーのホスト名または IP
portnumberNo22SSH ポート
usernamestringYes-SSH ユーザー名
passwordstringNo-SSH パスワード
private_keystringNo-PEM 形式の秘密鍵
local_pathstringYes-アップロードするローカルファイルのパス
remote_pathstringYes-リモートサーバーの保存先パス
overwritebooleanNoTrue既存のリモートファイルを上書き

Output:

FieldTypeDescription
okbooleanWhether upload succeeded
dataobject

Example: Upload deployment archive

yaml
host: 10.0.0.5
username: deploy
local_path: /tmp/app.tar.gz
remote_path: /opt/releases/app.tar.gz

E2Eステップ実行

testing.e2e.run_steps

エンドツーエンドテストステップを順次実行

Parameters:

NameTypeRequiredDefaultDescription
stepsarrayYes-テストステップ定義の配列
stop_on_failurebooleanNoTrueWhether to stop on failure
timeout_per_stepnumberNo30000Timeout Per Step value

Output:

FieldTypeDescription
okboolean操作が成功したかどうか
passednumber操作が成功したかどうか
failednumber操作が成功したかどうか
resultsarray合格したテストの数

品質ゲート

testing.gate.evaluate

定義されたしきい値に対して品質メトリクスを評価

Parameters:

NameTypeRequiredDefaultDescription
metricsobjectYes-評価するメトリクス
thresholdsobjectYes-評価するメトリクス
fail_on_breachbooleanNoTrueWhether to fail on breach

Output:

FieldTypeDescription
okboolean各メトリクスのしきい値
passedboolean操作が成功したかどうか
resultsarray操作が成功したかどうか
summarystring合格したテストの数

HTTPテスト実行

testing.http.run_suite

HTTP APIテストスイートを実行

Parameters:

NameTypeRequiredDefaultDescription
testsarrayYes-HTTPテスト定義の配列
base_urlstringNo-Base URL for API requests
headersobjectNo{}HTTP request headers

Output:

FieldTypeDescription
okboolean操作が成功したかどうか
passednumber操作が成功したかどうか
failednumber操作が成功したかどうか
resultsarray合格したテストの数

リンター実行

testing.lint.run

ソースコードでリンティングチェックを実行

Parameters:

NameTypeRequiredDefaultDescription
pathsarrayYes-リントするファイルまたはディレクトリ
linterstringNoautoLinter
fixbooleanNoFalseWhether to fix

Output:

FieldTypeDescription
okboolean操作が成功したかどうか
errorsnumber操作が成功したかどうか
warningsnumber操作が成功したかどうか
issuesarray発生したエラーの数

レポート生成

testing.report.generate

テスト実行レポートを生成

Parameters:

NameTypeRequiredDefaultDescription
resultsobjectYes-Results data
formatstringNojsonFormat
titlestringNoTest ReportTitle

Output:

FieldTypeDescription
okboolean操作が成功したかどうか
reportstring操作が成功したかどうか
formatstring操作が成功したかどうか
summaryobjectレポート

シナリオ実行

testing.scenario.run

シナリオベースのテスト(BDDスタイル)を実行

Parameters:

NameTypeRequiredDefaultDescription
scenarioobjectYes-given/when/thenを含むシナリオ定義
contextobjectNo{}Additional context data

Output:

FieldTypeDescription
okbooleangiven/when/thenを含むシナリオ定義
passedboolean操作が成功したかどうか
stepsarray操作が成功したかどうか

セキュリティスキャン

testing.security.scan

セキュリティ脆弱性をスキャン

Parameters:

NameTypeRequiredDefaultDescription
targetsarrayYes-スキャンするファイル、URL、またはパス
scan_typestringNoallScan Type
severity_thresholdstringNomediumSeverity Threshold

Output:

FieldTypeDescription
okboolean操作が成功したかどうか
vulnerabilitiesarray操作が成功したかどうか
summaryobject操作が成功したかどうか

テストスイート実行

testing.suite.run

テストのコレクションを実行

Parameters:

NameTypeRequiredDefaultDescription
testsarrayYes-テスト定義の配列
parallelbooleanNoFalseWhether to parallel
max_failuresnumberNo0テスト定義の配列

Output:

FieldTypeDescription
okboolean0 = 制限なし
passednumber0 = 制限なし
failednumber操作が成功したかどうか
skippednumber合格したテストの数
resultsarray失敗したテストの数

ユニットテスト実行

testing.unit.run

ユニットテストを実行

Parameters:

NameTypeRequiredDefaultDescription
pathsarrayYes-テストファイルまたはディレクトリへのパス
patternstringNotest_*.pyPattern
verbosebooleanNoFalseWhether to verbose

Output:

FieldTypeDescription
okboolean操作が成功したかどうか
passednumber操作が成功したかどうか
failednumber操作が成功したかどうか
errorsnumber合格したテストの数
resultsarray失敗したテストの数

ビジュアル比較

testing.visual.compare

ビジュアル出力の違いを比較

Parameters:

NameTypeRequiredDefaultDescription
actualstringYes-実際の画像のパスまたはBase64
expectedstringYes-実際の画像のパスまたはBase64
thresholdnumberNo0.1期待される画像のパスまたはBase64
output_diffbooleanNoTrueWhether to output diff

Output:

FieldTypeDescription
okboolean許容される最大差分(0-1)
matchboolean操作が成功したかどうか
differencenumber操作が成功したかどうか
diff_imagestring一致

UI品質評価

ui.evaluate

多次元スコアリングによる包括的なUI品質評価

Parameters:

NameTypeRequiredDefaultDescription
screenshotstringYes-評価するスクリーンショットのパスまたはURL
app_typestringNoweb_app評価するスクリーンショットのパスまたはURL
page_typestringNo-評価されるページのタイプ
evaluation_criteriaarrayNo['visual_design', 'usability', 'accessibility', 'consistency', 'responsiveness']評価する特定の基準(デフォルト: すべて)
target_audiencestringNo-ターゲットユーザーの説明
brand_guidelinesstringNo-チェックする簡単なブランドガイドライン
min_scorenumberNo70合格するための最小総合スコア(0-100)
api_keystringNo-OpenAI APIキー(デフォルト: 環境変数 OPENAI_API_KEY)

Output:

FieldTypeDescription
okbooleanOpenAI APIキー(デフォルト: 環境変数 OPENAI_API_KEY)
passedboolean評価が成功したかどうか
overall_scorenumber評価が成功したかどうか
scoresobjectUI品質の総合スコア(0-100)
strengthsarrayUI品質の総合スコア(0-100)
issuesarray評価基準別のスコア
recommendationsarrayUIの強みのリスト
summarystring具体的な改善提案

Example: Evaluate Dashboard

yaml
screenshot: ./screenshots/dashboard.png
app_type: dashboard
page_type: analytics dashboard
target_audience: business analysts
min_score: 75

Example: E-commerce Page Review

yaml
screenshot: ./screenshots/product.png
app_type: e_commerce
page_type: product detail
evaluation_criteria: ["usability", "cta_effectiveness", "visual_design"]

AIで画像を分析

vision.analyze

OpenAI Vision API(GPT-4V)を使用して画像を分析

Parameters:

NameTypeRequiredDefaultDescription
imagestringYes-Image file path, URL, or base64 data
promptstringYes-What to analyze in the image
analysis_typeselect (general, ui_review, accessibility, bug_detection, comparison, data_extraction)NogeneralType of analysis to perform
contextstringNo-Additional context about the image
output_formatselect (text, structured, json, checklist)NostructuredFormat of the analysis output
modelstringNogpt-4oSpecific model to use
max_tokensnumberNo1000Maximum tokens in response
api_keystringYes-API key for authentication
header_namestringNoX-API-KeyHTTP header name
detailselect (low, high, auto)NohighLevel of detail for image analysis

Output:

FieldTypeDescription
okboolean分析が成功したかどうか
analysisstring分析が成功したかどうか
structuredobjectAI分析結果
modelstring構造化された分析データ(output_formatがstructured/jsonの場合)
tokens_usednumber分析に使用されたモデル

Example: UI Review

yaml
image: ./screenshots/dashboard.png
prompt: Review this dashboard UI. Evaluate: 1) Visual hierarchy 2) Color contrast 3) Button visibility 4) Overall usability. Suggest specific improvements.
analysis_type: ui_review
output_format: structured

Example: Bug Detection

yaml
image: ./screenshots/form.png
prompt: Find any visual bugs, layout issues, or broken elements in this form
analysis_type: bug_detection

Example: Accessibility Check

yaml
image: ./screenshots/page.png
prompt: Evaluate accessibility: color contrast, text readability, button sizes, clear labels
analysis_type: accessibility

画像比較

vision.compare

2つの画像を比較して視覚的な違いを特定

Parameters:

NameTypeRequiredDefaultDescription
image_beforestringYes-Path to baseline/before image
image_afterstringYes-Path to current/after image
comparison_typeselect (visual_regression, layout_diff, content_diff, full_analysis)Novisual_regressionType of comparison to perform
thresholdnumberNo5Acceptable difference percentage
focus_areasarrayNo-Specific areas to focus on
ignore_areasarrayNo-Areas to ignore (dynamic content, ads, etc.)
modelstringNogpt-4oSpecific model to use
api_keystringYes-API key for authentication
header_namestringNoX-API-KeyHTTP header name

Output:

FieldTypeDescription
okboolean比較が成功したかどうか
has_differencesboolean比較が成功したかどうか
similarity_scorenumber重要な違いが見つかったかどうか
differencesarray類似度パーセンテージ(0-100)
summarystring特定された違いのリスト
recommendationstring比較結果のサマリー

Example: Visual Regression Test

yaml
image_before: ./screenshots/baseline/home.png
image_after: ./screenshots/current/home.png
comparison_type: visual_regression
threshold: 5

Example: Layout Comparison

yaml
image_before: ./design/mockup.png
image_after: ./screenshots/implementation.png
comparison_type: layout_diff
focus_areas: ["header", "main content"]

Released under the Apache 2.0 License.