diff --git a/docs/competitive/reports/agent-ci-efficiency-2026-08-05/README.md b/docs/competitive/reports/agent-ci-efficiency-2026-08-05/README.md new file mode 100644 index 000000000..f5d4afc1b --- /dev/null +++ b/docs/competitive/reports/agent-ci-efficiency-2026-08-05/README.md @@ -0,0 +1,8 @@ +# Agent and CI efficiency review + +Open [`index.html`](./index.html) to inspect the human-readable report. + +The report compares the pre-change PR/push pipeline with the scoped CI gate delivered in PRs +[#2083](https://github.com/RefinedStone/codex-exec-loop/pull/2083) and +[#2085](https://github.com/RefinedStone/codex-exec-loop/pull/2085). Measurements link directly to +the GitHub Actions runs used as evidence. diff --git a/docs/competitive/reports/agent-ci-efficiency-2026-08-05/index.html b/docs/competitive/reports/agent-ci-efficiency-2026-08-05/index.html new file mode 100644 index 000000000..b5cd488fa --- /dev/null +++ b/docs/competitive/reports/agent-ci-efficiency-2026-08-05/index.html @@ -0,0 +1,345 @@ + + + + + + + + Akra Agent & CI Efficiency Review · 2026-08-05 + + + +
+ + A + AKRA DELIVERY LABAgent prompt & CI efficiency · 2026-08-05 KST + +
verified on GitHub Actions
+
+ +
+
+
+

Measured delivery improvement

+

검증은 유지하고,
대기만 줄였습니다.

+

+ 긴 에이전트 규칙을 실행 가능한 fast path로 줄이고, 변경 범위별 CI와 하나의 안정된 + CI Gate, 보호된 rebase 자동 병합, 병합 후 smoke를 연결했습니다. 아래 수치는 + 추정이 아니라 실제 PR·push·workflow_dispatch 실행 결과입니다. +

+
+ +
+ +
+
PR + merge wall time−47.4%19m 24s → 10m 12s
+
runner consumption−58.6%41m 39s → 17m 14s
+
post-merge validation1m 42s첫 cache warming 2m 00s
+
agent guide bytes−34.3%4,262B → 2,802B
+
+ +
+
+

Before / after

전달 경로가 어떻게 달라졌나

+

품질 게이트를 약화한 것이 아닙니다. PR에서 필요한 검증을 한 번 수행하고, 병합 commit은 빠른 컴파일 smoke로 연결했습니다.

+
+
+
+

이전 PR #2079 기준

+
+
CHANGE작은 문서 변경도 동일한 전체 검증
+
PRLinux 전체 + 3개 portable · 9m 44s
+
MERGE사람이 병합 타이밍을 다시 확인
+
PUSH동일한 전체 suite 재실행 · 9m 40s
+
+
+
+

현재 PR #2085 기준

+
+
CLASSIFYdocs / rust / tui / admin / full
+
PR선택된 job 병렬 실행 + cache · full 8m 12s
+
GATE항상 존재하는 단일 required status
+
MERGE보호된 rebase auto-merge
+
SMOKE병합 commit 컴파일 확인 · 2분 이내
+
+
+
+
+ +
+
+

Execution evidence

실제 실행 결과

+

시간은 GitHub Actions의 run 생성부터 종료까지이며, job 시간은 병렬 runner 사용량 계산에 사용했습니다.

+
+
+ + + + + + + + + + + +
실험Run선택된 핵심 job결과Wall time
baseline PR30941998445monolith + Linux/Windows/macOS portablePASS9m 44s
baseline push30942795580동일한 전체 suite 재실행PASS9m 40s
scoped full PR30952600575tests · lint · node · Windows · macOS 병렬PASS8m 12s
merge smoke30953192810scope · cargo check · stable gatePASS2m 00s
concurrent smoke30954898246Rust dispatch와 동시 실행, heavy jobs skippedPASS1m 42s
forced docs30953398426scope · stable gate, heavy jobs skippedPASS33s
forced rust30954923182tests · lint · Windows · macOS, Node skippedPASS8m 19s
+
+
+ +
+
+

Agent convention

프롬프트는 규칙집에서 실행 경로로

+

모든 세부 구현을 매 턴 다시 읽히는 대신, 반드시 지킬 불변식과 필요할 때 열 문서를 분리했습니다.

+
+
+
+

바뀐 운영 계약

+
    +
  • 읽기 전용 진단·계획은 worktree와 PR 없이 현재 checkout에서 수행
  • +
  • 첫 tracked mutation 직전에만 전용 worktree 생성
  • +
  • 작은 commit마다 PR을 만들지 않고, 사용자에게 보이는 한 결과를 한 PR로 전달
  • +
  • CI Gate 통과 뒤 rebase auto-merge와 cleanup까지 하나의 완료 조건으로 정의
  • +
+
+
+

실행 가능한 진입점

+

agent-plan.mjs가 base·staged·working·untracked 경로를 모아 CI와 동일한 분류기를 재사용합니다.

+
node scripts/agent-plan.mjs + +Change plan: rust +Required local checks: + cargo fmt --all -- --check + cargo test --locked + cargo clippy --locked --all-targets --all-features -- -D warnings
+
+
+
+ +
+
+

Scope contract

빠르되, 모르는 변경은 넓게

+

선택 job이 skip되더라도 required check가 영원히 pending이 되지 않도록 마지막 CI Gate는 항상 실행됩니다.

+
+
+ + + + + + + + + + +
범위Rust tests/lintNode/AdminPortable목적
docsskipskipskip정책 테스트 + gate
adminskiprunskip프론트 빌드·typecheck·audit
rust / tuirunskiprunnative 기능과 플랫폼 계약
full / unknownrunrunrunworkflow·정책·미분류 경로 fail closed
prerelease pushsmokeskipskip병합 commit의 최소 유효성
main pushrunrunrunrelease 경계의 전체 검증
+
+
+ +
+
+

Troubleshooting record

직접 테스트가 찾아낸 경계

+

스크립트를 단순 통합하는 과정에서도 호스트별 실행 의미가 달랐습니다. 실패를 우회하지 않고 계약으로 남겼습니다.

+
+
+ WINDOWS ACL +

GitHub-hosted Windows에서 동일한 Rust ACL fixture가 PowerShell child에서는 owner 검증에 실패하고 Git Bash에서는 통과했습니다. 로컬 개발자용 PowerShell gate는 유지하되, CI 보안 계약은 기존에 검증된 Git Bash 전용 스크립트로 고정했습니다.

+
+
+ DISPATCH RACE +

첫 Rust 강제 범위 run 30953452412는 모든 선택 job과 gate가 성공한 직후 unrelated prerelease push에 의해 cancelled 처리됐습니다. PR #2088에서 수동 실행만 고유 run ID를 concurrency key로 사용하도록 격리했고, push smoke와 Rust dispatch를 동시에 실행해 회귀를 확인했습니다.

+
+
+

로컬 Windows gate

Git Bash의 Windows npm spawn·GNU tar 경로 충돌을 피하기 위해 check_native_pr.ps1를 만들었습니다. Full 모드는 실제로 90.5초에 통과했습니다.

+

테스트 경계의 명시화

Windows 전체 cargo test는 POSIX/clean-host 전제 때문에 2,257 pass / 461 fail이었습니다. 개발 PC 결정론 계약과 clean-host portable 계약을 분리했습니다.

+
+
+ +
+
+

Next leverage

다음으로 보강할 4가지

+

현재 병목은 분류기가 아니라 Linux 전체 테스트 7분대입니다. 아래 순서가 다음 투자 대비 효과가 큽니다.

+
+
+

Linux test suite 측정 기반 분할

unit / architecture / native validation을 별도 job으로 병렬화하되 fixture 간 숨은 순서 의존성을 먼저 제거합니다.

+

clean-host 계약 독립성 강화

테스트가 이전 테스트의 repository·authority 상태에 기대지 않도록 fixture setup을 자체 완결형으로 바꿉니다.

+

분류 경로 회귀 감사

새 최상위 디렉터리와 workflow 파일이 추가될 때 unknown→full 동작을 유지하고, 월 1회 action SHA를 갱신합니다.

+

cache 효율 관측

restore key 적중률과 cache 크기를 기록해 오래된 target artifact 때문에 restore가 느려지는 시점을 판단합니다.

+
+
+ +
+

Audit trail

코드·PR·설정 근거

+ +
+ + +
+ +