OpenWorkの新機能を無効状態で登録し、組織別・提供環境別の段階公開から全体停止、公開完了後のフラグ削除まで、一貫した仕組みで管理するスキル。
- 実装前に新機能を登録したいとき
- 特定の組織から段階公開したいとき
- cloudとself_hostedの提供範囲を分離
CIの実行時間を計測して遅いジョブや工程を特定し、チェックの品質を保ったまま、効果を比較しながら高速化するスキルです。
CI is slow, time to green, how long do checks take, p50/p90, make CI faster, speed up a job or spec, hillclimb CI. Use to measure PR CI time, find where a job's seconds go, and land speedups one measured change at a time without weakening any check.
実行スコア 未検証
インストール方法を見るCIの遅さを感覚ではなく実測値で調べます。プルリクエストのpushから必須チェックが通るまでの時間や、すべてのGitHub Actionsチェックが終わるまでの時間を集計し、中央値や上位パーセンタイルで基準値を記録します。各ジョブ・ステップの所要時間やテストの記録を確認して、時間を使っている箇所を特定します。そのうえで改善仮説を一つずつ試し、同じ条件に近い実行結果と比較して効果を判断します。
CIが遅く、どのジョブやテストが原因か分からないときに役立ちます。サービス起動や重複ビルド、繰り返しのセットアップなど、改善候補を測定結果から探したいチームにも向いています。速度を上げながら、チェックが検出する不具合やマージ前の検査を維持したい場面で使えます。
GitHub Actionsの実行情報やリポジトリ内のCI計測スクリプトを使います。比較には同じ種類のランナーによる基準実行が必要です。チェックを弱めたり省略したりせず、変更後も同じ不具合を検出できることを保ちます。
この紹介文は、公開されている SKILL.md をもとに AI(OpenAI Codex)が作成しました。正確な仕様は下の原文を確認してください。
SKILL.md の記述から、注意が要る操作と導入の前提を AI が確認しました。点数は実際に動かした結果(実行検証)だけで付けています。
点数には入れていません。 2026年10月28日 時点で AI(OpenAI Codex)が判定しました。目安なので、入れる前に原文も確認してください。
インストールする前に、エージェントに与えられる指示の中身を確認できます。
CI speed is a measured number, not a feeling. Measure it the same way every time, find where the seconds actually go, change one thing, measure again, keep it only if the number moved and every check still guards what it did.
node .github/scripts/ci-time-to-green.mjs --hours 24 # all PRs
node .github/scripts/ci-time-to-green.mjs --hours 6 --branch-prefix perf/ci-x --json
required: push → last merge-gating check green (openwork-tests-required, warden-clear).full: push → last GitHub Actions check green. "Evidence preview" is ignored (a link, not a test).Record the baseline (p50/p90/p99 and n) before changing anything. Compare
p50/p90 with at least ~20 commits; one PR's run is a data point, not a trend.
Never guess from YAML. Read the timings GitHub and the test kit already record.
# Every job and step of a run, with durations
gh run view <run-id> --json jobs --jq '.jobs[] | "\(.name)", (.steps[] | " \(.name)")'
gh api repos/different-ai/openwork/actions/jobs/<job-id> \
--jq '.steps[] | "\(((.completed_at|fromdate)-(.started_at|fromdate)))s \(.name)"'
# Full log (strip colours)
gh api --allow-escape-sequences repos/different-ai/openwork/actions/jobs/<job-id>/logs | sed 's/\x1b\[[0-9;]*m//g'
For e2e specs, download the run's pr-proof-* artifacts and read
test-runs/*/test-run.json: every trace entry has a stage, channel,
verb and ms. Sum ms by (stage, channel, verb):
world/seed/den|desktop|appWeb is time spent starting services; body/* is
the test. Compare createdAt/closedAt with the first and last trace entry
to see setup and teardown the trace does not cover.
Things that look slow but are not the cause until measured: runner pickup (usually ~3s), the test's own assertions. Things that usually are: starting services per test, rebuilding the same commit in several jobs, waiting on something no assertion uses, repeated setup in every matrix job.
Work down this list (the classic performance mantras) and stop at the first rung that reaches the target:
dev.Rung 7 alone rarely gets far: folding the Den API test schema DDL and an in-memory MySQL saved 18s on a 134s step. Rungs 1-3 remove minutes.
next dev
and recompiles per test"), never "try caching".dev, or the same job on
dev). Laptop wall times are not evidence: other work on the machine
moved the same suite between 94s and 147s.decision.tsv outside the repo:
id, hypothesis, change, before, after, delta, tests, verdict, note.git fetch --depth=1 in any
worktree writes .git/shallow for every worktree and the main checkout;
rebases then replay the whole history. CI scripts that fetch with depth 1
are for CI only. If it happens: confirm the parents of the shallow commit
exist (git cat-file -e), move .git/shallow aside, run
git fsck --connectivity-only.origin/dev; do not touch someone else's
checkout, branch or running containers. Start your own MySQL on a free
port with a unique name, and remove it afterwards.TZ=UTC, or the
hourly sign-in tests fail for reasons unrelated to your change.gh pr list), and
re-measure after rebasing onto a dev that changed the job you measured.dev invalidates every comparison: fix or wait for it first
(diagnose-a-red-run).Name the job and step, the control run and your run, and the seconds:
"Run Den API security tests: 134s → 116s (run A vs run B, same runner)."
State Release note: none. Follow open-a-pr.
まだレビューはありません。使ってみた感想をお寄せください。
ログインなしで書き込めます。使ってみた感想、質問、動かなかった環境などを気軽にどうぞ。
まだコメントはありません。最初のコメントを書いてみませんか。
OpenWorkの新機能を無効状態で登録し、組織別・提供環境別の段階公開から全体停止、公開完了後のフラグ削除まで、一貫した仕組みで管理するスキル。
ローカル開発中のOpenWorkのElectronアプリに接続し、画面の状態確認や入力・タスク送信を自動化します。応答を画面で確かめながら、挙動の調査やデバッグを進めるためのスキルです。
変更差分の追加行から、顧客・見込み客・取引先・外部の個人を特定する情報を確認。情報そのものを再掲せず、該当箇所と最小限の修正方針を報告します。
Claude CodeやCodexなどをOpenWork MCP Gatewayに接続し、組織のスキル・プラグイン・外部接続を使うための設定と認証、接続確認を進めます。
外部協力者のプルリクエストを実行前に調べ、難読化や隠れた通信、不審な依存関係などを確認。通常の差分レビューでは見落としやすい挙動を指摘します。
OpenWorkで使うOpenCodeプラグインのひな形を作成し、独自ツールの定義や処理を呼び出すフック、設定ファイルへの追加まで整えるスキル。