AIエージェントの作業時間を、進行中の作業なら実測した進捗と残作業から見積もり、これからの作業なら作業量や基準データから算出します。利用者向けの時刻も指定コマンドで確認します。
- 実行中の作業の残り時間を知りたいとき
- 新しい依頼の所要時間を見積もりたいとき
- 終了予定や現在時刻を利用者向けに示したいとき
E2Eテストの開始前に、外部サービスやホスト、ブラウザー、モデル、エージェントなどの前提条件を整理し、確認用の手順と記録を整えます。
Check external services, hosts, browser sessions, model endpoints, and agents before an end-to-end run. MANUAL-ONLY: load when a caller names it. NEVER auto-load from context for ordinary testing or debugging.
実行スコア 未検証
インストール方法を見るE2Eテストの前に、リポジトリ外のサービスやホスト、ブラウザーセッション、モデルの接続先、エージェントなど、テスト結果に関わる外部システムの前提条件を整えます。承認済みの計画から必要な確認項目を洗い出し、設定上の決定事項を記録したうえで、各システムの説明資料、確認用スクリプト、失敗を分類するスコアボードの3点を用意します。確認スクリプトは複数の問題をまとめて報告し、環境を修復せず、いずれかの確認が失敗すればテストを開始できない状態を示します。実行中に環境条件が変わった場合は、テストを無効として最初から確認し直します。
受け入れ確認の証拠がリポジトリ外のシステムから得られるE2Eテストで、製品の不具合と環境の問題を分けて調べたいときに向いています。承認済みのテスト計画があり、外部依存の確認を再現可能な形で残したい場合に使います。通常のテストやデバッグで自動的に読み込むスキルではなく、呼び出し側が明示的に指定した場合に使います。
対象リポジトリごとに、ローカルの設定や外部システムの説明資料が必要です。利用者の判断が必要な設定は決定・記録してから確認項目を定めます。確認スクリプトは修復を行わず、外部環境を変更した場合は事前確認からやり直します。
この紹介文は、公開されている SKILL.md をもとに AI(OpenAI Codex)が作成しました。正確な仕様は下の原文を確認してください。
インストールする前に、エージェントに与えられる指示の中身を確認できます。
Never auto-triggered. Named callers only:
| Caller | Moment |
|---|---|
| A requirements document or test plan | once end-to-end proof is required and the document names an external system |
| A task brief | before staffing any end-to-end journey |
e2e-red-triage | when a red turns out to be environmental and owes a new check |
This skill is self-contained: the trigger and the three artifacts.
Terms: the owner is whoever owns the work, usually the user; a row is one acceptance check in the test plan; a journey is one end-to-end scenario made of rows; a red is a row that failed or gave no answer; the suite is all the rows of a journey.
Each repository binds this locally. A repo-level e2e-environment-preflight names its own systems, its
own primer directory, its own evidence paths, and its own configuration decisions. This file is
the contract; the local one is the address book. If the repository has no local binding, the
first journey that needs one writes it.
The preflight is required when any acceptance row's evidence comes from a system outside the repository under test — a running service, a host, a browser session, a live model endpoint, an installed agent. Rows whose evidence is produced entirely by code in the repository do not trigger it.
The test plan or requirements document states the answer as one of two literal forms:
External systems: none — <scope fact>
External systems: <name>, <name> — preflight required
A library with no external systems answers none and never sees this skill again. A plan that names a system for
which no primer exists does not pass — that refusal is how the first primer for a system gets
written, without anyone having to remember to write it.
The three classes that reliably burn days — anything with a login, anything driving a browser, anything driving another agent — share one property: when they break they produce nothing rather than an error, and the nothing appears far from the cause. A revoked credential still reads as valid locally. A missing profile looks like an empty result. A dead actor looks like a slow one.
So an hour goes into attributing an absence, and goes again next month on the next system. The preflight moves that cost to the front, where it is paid once and mechanically.
Three reasons it is a gate and not a checklist: you cannot tell a product defect from a setup defect once the suite is running; every mid-run fix invalidates the rows already passed, so the suite stops being one observation and becomes N observations of N environments; and fix-one-rerun is a serial loop with a full suite inside it — twelve missing preconditions found one at a time cost twelve suite runs, found together they cost one repair pass.
No row starts while any check is red. Amber is red. A check going red at row 14 stops there: the run is void, rows 1–13 do not carry over, repair happens outside the run, and the preflight runs again from the top.
Checking before the configuration is settled is checking against nothing. These are defaults; a project may choose otherwise and record it in its local binding.
Stage A — settle the decisions. Some preconditions cannot be checked because nobody has said what correct means. A product with several valid configurations has no wrong setting to detect; run the suite against whichever one happened to be set and it measures an arbitrary configuration and answers a question nobody asked.
The sorting test is one sentence: if two defensible answers would make the same row pass and fail, it is the owner's decision. Everything else the agent settles from the approved plan, the repository, or a written ruling — handing those up is noise, and noise makes the real questions get skimmed.
Always the owner's, and most often forgotten: the ceilings — wall-clock, spend, and which hosts may be destroyed. Ask with a recommendation derived from a measured sample. Without a recorded ceiling the budget check cannot be green or red at all, and an executor invents one, silently changing what pass means.
Onboarding is part of this and is the part that gets skipped. A run of a real flow starts where a real user starts. If the product has a first-run path, the preflight names which path the run takes. A suite that begins after onboarding has excluded the part most likely to break for a new user, and it keeps passing while every new user fails.
Collect the owner's set from the whole plan first and ask in one exchange, each item with options, downstream consequence, and your recommendation. Answers become configuration-of-record in the preflight artifact — a configuration that lives only in a chat window cannot be reproduced and cannot be cited.
Stage B — derive the checks. The standing floor — the checks every run needs whatever the plan says, such as the credential and absent-variable checks below — always applies. The project half is read off the approved plan, never invented: every actor (service, agent, or process) named alive during the test, every artifact path in an evidence requirement, every capability a planted defect needs. A precondition no row needs is not added; a row whose preconditions were never extracted is a defect in the plan.
A plan cannot name a precondition its author does not know exists. That is what the primer supplies, and it is why Stage B depends on one.
One per external system, one per repository, re-derived on a version change. Contents:
No bare value that has no command. An accurate document quotes an identifier, the identifier moves, and the next reader inherits a false fact that reads as surveyed truth. Your file will do this to its next reader unless the command is preferred.
One script per system. The primer exists so the runner is derived from it rather than invented, which means every check carries five fields: the command, the expected observable, the failure calibration, the person or team responsible for it, and the artifact field it writes.
The baseline and the mutations allowed anyway. Rows themselves change the environment — they kill children, cut networks, plant stale records. So each row declares its own disposable mutations before it runs; a declared mutation is expected, is reverted, and voids nothing. Anything outside that allowlist — a dependency changed, a credential rotated, a host rebooted — voids the run.
The two rules that keep being skipped are one rule. A credential check that reads a variable has checked nothing; only a real call that returned a real response passes. And some variables must be absent, enumerated by name and asserted empty, because a key that overrides the intended login path silently changes which account and model the entire run used.
Acquiring a credential and using one are different things. An interactive first-time login does not fail this gate: the credential persists and refreshes, and every call after it is made with no human present. What is not automatable is recovery after revocation — and that is the gate working, not a hole in it. Record it as a bounded, named, human repair.
This is what the gate is for. Every red gets exactly one bucket, appended to a journey-scoped scoreboard beside the preflight artifact:
| Bucket | Meaning |
|---|---|
source | a product defect — the only kind that counts as a win |
environment | a precondition wrong or unset |
stuck | no verdict at all: hang, timeout, empty, silent absence |
harness | the test itself was wrong |
{"row":"<row-id>","bucket":"source","note":"…","owed_check":null}
Four buckets, exhaustive, one per red, no "other". The rule that turns the scoreboard into a ratchet:
An
environmentorstuckred must name the preflight check that should have caught it. If no such check exists, it is written before the journey closes —owed_checkcarries the new check's id.
Report the four counts at the end of every run. Rising source with falling environment and
stuck is the gate working. Flat environment across two journeys means the ratchet is not
being applied — a process defect, not bad luck.
These are defaults; a project may choose otherwise and record it in its local binding.
| Anti-pattern | Why it is fatal | |
|---|---|---|
| P1 | Asserting a variable is set instead of that the call works | set-and-wrong is the common case, not the edge case |
| P2 | Asking a human to paste a credential during the run | a missing credential is a design defect, not a question |
| P3 | Skipping a check because it passed last run | the environment changed; that is why it is a gate |
| P4 | A check that passes when its input source is missing | it must report SOURCE MISSING, never CLEAR |
| P5 | Installing or repairing inside the check | the check then measures itself |
| P6 | Starting with a known-amber item | amber is red; there is no third state |
| P7 | A preflight derived from imagination rather than the approved plan | it checks what no row needs and misses what every row needs |
| P8 | Counting a mocked dependency as ready | a mock proves nothing about the real system it stands in for |
| P9 | Choosing a configuration default silently | the run then measures an arbitrary setting |
| P10 | Asking the owner one decision at a time, or asking what is derivable | N rounds instead of one, and noise makes the real questions get skimmed |
| P11 | Starting the flow after onboarding because onboarding is "setup" | the first-run path is where new users break, and it stays untested forever |
まだレビューはありません。使ってみた感想をお寄せください。
ログインなしで書き込めます。使ってみた感想、質問、動かなかった環境などを気軽にどうぞ。
まだコメントはありません。最初のコメントを書いてみませんか。
AIエージェントの作業時間を、進行中の作業なら実測した進捗と残作業から見積もり、これからの作業なら作業量や基準データから算出します。利用者向けの時刻も指定コマンドで確認します。
成功と報告された処理が、意図したデータ変更や外部呼び出しを本当に起こしたかを、入口から出力先まで追い、実行箇所と観測できる数値で確かめます。
離席中に記録された完了作業、停滞中の項目、返答待ち、利用枠の変化を1ページに整理し、戻ったときの状況把握を助けます。
相互レビューとエージェント自身の自己点検で見つかった問題を記録から集計し、期間やモデル別に並べて確認できるようにします。
担当者が成果物や対象外の範囲、確定済みの判断、合否を確認できる方法を明文化した作業憲章を作成・改訂し、既存憲章の不整合も点検します。
Claude CodeからCodexへ実装作業を引き継ぎ、Shell、TypeScript、Python、Rustの言語に応じた手順でコードを書かせます。