본문으로 건너뛰기
cccskills
무료GitHub에 공개한국어 소개

speed-up-ci

측정값으로 풀 리퀘스트 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.

different-ai/openwork스타 24,316(GitHub 24,316 + cccskills 0)
연동 도구GitHubMySQL

실행 점수 미검증

설치 방법 보기

이럴 때 유용합니다

  • CI 완료 시간 측정
  • 느린 작업과 테스트 찾기
  • 변경 전후 CI 시간 비교
  • 검사를 유지하며 CI 단축

한국어 소개

할 수 있는 일

이 스킬은 느낌에 의존하지 않고 CI 시간을 측정합니다. 풀 리퀘스트를 푸시한 시점부터 필수 검사가 통과할 때까지, 그리고 모든 GitHub Actions 검사가 끝날 때까지 걸린 시간을 집계합니다. 중앙값과 상위 백분위수로 기준값을 기록하고, 작업과 단계별 소요 시간 및 테스트 기록을 살펴 시간이 쓰이는 곳을 찾습니다. 개선 가설을 한 번에 하나씩 시험하고 비슷한 조건의 실행 결과와 비교합니다.

이럴 때 유용합니다

CI가 느리지만 원인을 모를 때 작업이나 테스트 중 어디가 오래 걸리는지 찾는 데 도움이 됩니다. 측정 결과를 바탕으로 서비스 시작, 중복 빌드, 반복적인 준비 작업 같은 개선 후보를 찾을 수 있습니다. 속도를 높이면서 결함을 발견하는 검사와 병합 전 필수 검사를 유지하려는 경우에 적합합니다.

사용 예시

  • “최근 풀 리퀘스트에서 CI 검사가 통과하기까지 걸린 시간을 측정해 주세요.”
  • “이 CI 작업에서 시간이 오래 걸리는 단계를 찾아 주세요.”
  • “개선안 하나를 시험하고 변경 전후 CI 시간을 비교해 주세요.”

주의 사항

GitHub Actions 실행 정보와 저장소의 CI 측정 스크립트를 사용합니다. 비교하려면 같은 종류의 실행기에서 기준 실행이 필요합니다. 검사를 약화하거나 생략하면 안 되며, 변경 후에도 같은 문제를 찾아내야 합니다.

이 소개문은 공개된 SKILL.md를 바탕으로 AI(OpenAI Codex)가 작성했습니다. 정확한 사양은 아래 원문을 확인하세요.

문서 점검

AI가 SKILL.md의 내용에서 주의가 필요한 작업과 도입 전제를 확인했습니다. 점수는 실제로 실행한 결과(실행 검증)만으로 매깁니다.

안전성전송·삭제·명령 실행 등을 명시하고 있는가
A양호검사를 약화하거나 실패 결과를 재사용하지 말라고 명시합니다.
도입의 용이성필요한 도구나 API 키가 적고 적혀 있는가
B일부 부족GitHub Actions 데이터와 저장소의 측정 스크립트가 필요합니다.

점수에는 넣지 않았습니다. 2026년 10월 28일 기준으로 AI(OpenAI Codex)가 판정했습니다. 참고용이므로 설치 전에 원문도 확인해 주세요.

평가가 다르다고 생각되면 재검토를 요청하기

어느 항목이 왜 다르다고 생각하는지 적어 주세요. 로그인은 필요 없습니다. SKILL.md와 대조해 평가를 다시 만들고 이곳에 반영합니다.

이 양식은 reCAPTCHA로 보호되며 Google 개인정보처리방침 및 서비스 약관이 적용됩니다.

포함된 파일(1)

  • SKILL.md5.6 KB

SKILL.md(원문)

설치하기 전에 에이전트에게 전달되는 지시 내용을 확인할 수 있습니다.

Skill: Speed up CI

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.

1. Measure time to green

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).
  • Failed or unfinished commits are excluded from the percentiles and counted separately.

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.

2. Find where the seconds go

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.

3. Choose the change: strongest rung first

Work down this list (the classic performance mantras) and stop at the first rung that reaches the target:

  1. Don't do it. Remove waits and work whose result nothing checks (e.g. waiting for a reviewer snapshot to save before reporting a verdict).
  2. Don't do it again. Reuse a result whose inputs are byte-identical: build once per commit and share it; skip a suite whose input hash already passed. Failures are never reused.
  3. Do it less. Start one service per job and isolate tests inside it (one organization per test) instead of one service per test.
  4. Do it later. Move work that need not block a push into the merge queue.
  5. Do it when nobody is waiting. Pre-warm images and worlds on dev.
  6. Do it concurrently. Shard long serial steps.
  7. Do it cheaper. Faster flags, in-memory databases, fewer statements.

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.

4. The loop

  • One hypothesis per change, naming a mechanism ("den-web runs next dev and recompiles per test"), never "try caching".
  • Measure before and after on CI, against a control on the same runner type at about the same time (another PR on current 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.
  • Keep a change only when the number moves past noise and every gate stays green. Otherwise revert it completely and record why.
  • Log every attempt, kept or not, in a decision.tsv outside the repo: id, hypothesis, change, before, after, delta, tests, verdict, note.
  • Independent hypotheses can run in parallel, each in its own worktree and PR. Give each lane the baseline, the measured facts and these rules.

Guardrails

  • Never weaken a check for speed. No skipped specs, no soft-failing steps, no looser assertions. A moved check must still run before merge (e.g. in the merge queue) and fail for the same defects.
  • Never make the shared clone shallow. 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.
  • Work in a worktree from fresh 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.
  • Den API tests assume UTC: run them locally with TZ=UTC, or the hourly sign-in tests fail for reasons unrelated to your change.
  • Check open PRs for the same files before starting (gh pr list), and re-measure after rebasing onto a dev that changed the job you measured.
  • A red dev invalidates every comparison: fix or wait for it first (diagnose-a-red-run).

Evidence in the PR

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.

리뷰

아직 리뷰가 없습니다. 사용해 본 소감을 남겨 주세요.

댓글

로그인 없이 쓸 수 있습니다. 사용 후기, 질문, 작동하지 않은 환경 등을 편하게 남겨 주세요.

아직 댓글이 없습니다. 첫 댓글을 남겨 보세요.

보내면 바로 공개됩니다. 이메일 주소나 전화번호 같은 개인 정보는 쓰지 마세요. URL은 2개까지입니다.

0 / 1,000자

이 양식은 reCAPTCHA로 보호되며 Google 개인정보처리방침 및 서비스 약관이 적용됩니다.

같은 저장소의 스킬

add-a-feature

무료요약 있음

OpenWork 기능 플래그를 코딩 전에 등록하고 조직 및 배포 환경별로 단계적으로 공개하며, 문제가 생기면 전체 배포에서 중단하고 공개 완료 후 임시 플래그를 제거합니다. 코드 검사와 진행 중인 작업, 저장 데이터, 기록을 중단 시 어떻게 처리할지도 다룹니다.

  • 구현 전에 새 기능 등록
  • 지정한 조직부터 단계적으로 공개
  • 클라우드와 자체 호스팅 범위 분리
different-ai/openwork2.4만2026년 10월 30일 업데이트

browser-automation

무료요약 있음

OpenCode 브라우저 도구를 로컬에서 실행 중인 OpenWork Electron 앱에 연결해 화면을 살펴보고, 작업을 입력해 전송한 뒤 응답을 확인합니다. CDP를 이용한 탐색과 디버깅을 지원합니다.

  • 로컬 Electron 앱에 연결
  • 디버깅 중 화면 상태 확인
  • 입력창에서 작업 전송
different-ai/openwork2.4만2026년 10월 30일 업데이트

confidentiality-review

무료요약 있음

변경 사항의 추가된 줄에서 고객, 잠재 고객, 협력사 또는 외부 개인을 식별할 수 있는 정보를 확인합니다. 내용을 되풀이하지 않고 위치와 최소 수정 방안을 보고하며, 이미 공개된 정보는 상위 대응으로 넘깁니다.

  • 고객이나 협력사 식별 정보를 확인할 때
  • 문서와 테스트 데이터의 신원 정보를 검토할 때
  • 내용을 되풀이하지 않고 노출 위치를 보고할 때
different-ai/openwork2.4만2026년 10월 30일 업데이트

connect-openwork-mcp

무료요약 있음

Claude Code와 Codex 같은 AI 클라이언트를 OpenWork MCP Gateway에 연결해 조직의 스킬, 플러그인, 외부 연결을 사용하도록 안내합니다. 브라우저 인증을 진행하고 기능 검색·실행 도구가 로드되었는지 확인합니다.

  • AI 클라이언트와 조직 리소스 연결
  • MCP 인증 후 사용 가능한 도구 확인
  • 조직 전환 또는 인증 오류 해결
different-ai/openwork2.4만2026년 10월 30일 업데이트

contributor-screen

무료요약 있음

외부 기여자의 풀 리퀘스트 코드를 실행하기 전에 난독화, 숨겨진 통신, 의심스러운 의존성, 설치 및 빌드 스크립트를 살펴봅니다. 파일 위치와 관리자가 확인할 사항을 함께 제시합니다.

  • 외부 변경 사항을 실행 전에 검토할 때
  • 난독화 코드나 알 수 없는 통신을 확인할 때
  • 의존성과 설치 스크립트를 살펴볼 때
different-ai/openwork2.4만2026년 10월 30일 업데이트

create-plugin

무료요약 있음

OpenWork용 OpenCode 플러그인을 만들고 사용자 정의 도구와 훅, 설정 파일 항목을 구성합니다. 도구의 실행 로직을 작성하고 특정 시점에 코드를 실행하도록 설정할 수 있습니다.

  • OpenWork에 사용자 정의 도구 추가
  • 메모 저장 및 목록 도구 만들기
  • 도구 실행 전후에 코드 실행
different-ai/openwork2.4만2026년 10월 30일 업데이트

different-ai의 스킬 모두 보기

이 스킬의 문제 신고