Skip to content

GitHub 기능 유기적 도입 로드맵 (관례→플랫폼강제 / 손작업→무인화 / 미검증→실측) #98

Description

@pdw96

출처: 2026-06-21 다중 에이전트 갭 감사(워크플로 17 에이전트 · 1.08M 토큰 · 적대 검증). GitHub 기능 전체 표면 ↔ Fleet 현재 사용 현황 대조.
메인테이너 결정으로 #27 백로그와 완전 분리된 독립 트랙#27 sub-issue 아님. GitHub 플랫폼 인프라/위생 전용.

한 줄 결론

Fleet 루프(#27 → sub-issue → feat 브랜치 → PR(Closes #N) → Codex 리뷰 → CI 4게이트 → squash → 보드 Done → tag → Release)의 모든 관문이 "AGENTS.md 관례"일 뿐 플랫폼이 강제하지 않는다. 본 로드맵은 그것을 관례→플랫폼강제 / 손작업→무인화 / 미검증→실측 으로 전환한다.

검증 하이라이트(적대 검증이 잡은 것): required status check는 잡 id(quality)가 아니라 잡 표시명으로 등록해야 영구 pending 함정 회피 · 네이티브 이슈 타입은 ORG 전용(GET /orgs/pdw96/issue-types → 404)이라 USER 계정 불가 · #27 본문 실측 ~10K자(140K 과장 정정) · gh CLI v2.94(2026-06-10) --parent/--blocked-by 네이티브 플래그 신설.


🔑 키스톤 — master ruleset 1개

현재 master: branch protection 404, rulesets [] → 멀티 에이전트 직접 커밋에 무방비. ruleset 하나로 4관문 동시 폐쇄:

  • Require a pull request before merging (Require approvals=0 — 솔로 자가승인 불가) ← AGENTS.md "master 직접 작업 금지"
  • Require status checks to pass: typecheck · lint · test · build + windows vitest (win32 보안 회귀)잡 표시명(잡 id 아님), release 매트릭스 잡 절대 금지 ← "4게이트 green"을 진짜 머지 게이트로
  • Require conversation resolution (Codex 봇 인라인 스레드) ← MEMORY "merge-requires-confirmation"
  • Block force pushes + Restrict deletions ← 멀티 에이전트 커밋 무결성
  • 설정: bypass actors에 repo admin(본인) 추가 · Require branches up to date=OFF · ⚠️ paths 필터와 동시 도입 금지(skip된 required check는 영구 pending)
  • UI(Settings>Rules) 권장 — PR 실제 체크목록에서 골라 오타 회피

🟢 Quick wins (지금 · 거의 0비용)

  • repo description + topics: gh repo edit pdw96/fleet --description "Multi-LLM orchestration desktop app — claude/codex/gemini CLIs + anthropic/openai/google APIs behind a unified LlmSession, role-based DAG collaboration. Pure, electron-free, vitest-verifiable core." --add-topic electron,typescript,react,llm,multi-agent,ai-agents,mcp,model-context-protocol,desktop-app,orchestration
  • Secret scanning + Push protection ON (Settings→Code security) — provider 키 3종, PUBLIC 누출 초단위 스크랩
  • Dependabot alerts + security updates ON (Settings→Code security) — Electron 42·Vite 7 churn 최고조
  • CodeQL default setup (Settings→Code scanning→Default setup, javascript-typescript) — child_process/spawn/safe-regex command-injection·ReDoS 매핑
  • squash-only + 브랜치 자동삭제: gh api -X PATCH repos/pdw96/fleet -f allow_merge_commit=false -f allow_rebase_merge=false -f delete_branch_on_merge=true
  • 보드 feat: capability-scored·manual 역할 배정 배선 완성 #1 내장 워크플로: Auto-add(area:/tier: AND 조건) / Item added→Status=Todo / Reopened→In Progress (커스텀 필드 자동채움은 미지원)
  • .github/PULL_REQUEST_TEMPLATE.md: Closes # + 4게이트 체크박스(typecheck/lint/format/test/build) + Codex 리뷰 반영 체크 + context7 교차검증 여부
  • README CI 배지: [![CI](https://github.com/pdw96/fleet/actions/workflows/ci.yml/badge.svg)](https://github.com/pdw96/fleet/actions/workflows/ci.yml)
  • AGENTS.md sub-issue 절차 → gh --parent 네이티브 플래그(DB id 보일러플레이트 제거) — ✅ docs(agents): #98 AGENTS.md 플랫폼-강제 동기화 + 보드/sub-issue 절차 갱신 #108 머지(303b6d8)로 적용 + 보드 절차 축소 + 플랫폼-강제 주석 동기화

🟡 Foundational (백본)

  • master ruleset (위 키스톤) — 카테고리 최고 ROI · ✅ id 17940177 active
  • .github/dependabot.yml: npm(grouped dev/minor·patch, open-pull-requests-limit:3) + github-actions weekly · 메이저(electron/vite/vitest)는 개별 PR로 분리 → 메타: 백로그 우선순위 / 로드맵 (코드 검증 기반) #27 수동 트랙 · commit-message.prefix: 'chore(deps)'
  • .github/workflows/dependency-review.yml: dependency-review-action@v4 · fail-on-severity: high · fail-on-scopes: runtime, development, unknown(Codex P2 반영 — devDep 26/29 커버) (PR diff 신규 의존성 CVE 가시화)
  • v0.1.0 첫 릴리스 컷 — ✅ 출하 완료(2026-06-21, tag v0.1.0 @ 0408ac0, github-actions[bot] published). 3-job 파이프라인 완주(prepare 07:26→release 07:39). 인프라 chore(release): #98 v0.1.0 릴리스 인프라 — notes 분류 + build provenance attestation #109 0408ac0. 검증 전량 통과: 단일 릴리스(중복 race 없음) · attestation verify ✅(exe·AppImage 둘 다 exit 0) · latest.yml/latest-linux.yml feed 정상(sha512 일치, 공백 없는 URL → %20 회귀 회피 입증) · .github/release.yml 노트 분류 작동. 잔여 실측(미차단): 설치본 autoUpdater 실동작은 v0.1.1 update 1회 필요.
  • 얇은 .github/CONTRIBUTING.md (AGENTS.md 포인터 — 본문 복제 금지)
  • LICENSE = MIT ✅결정 + package.json license 필드 동기화

🔵 Advanced (나중)

⛔ Skip (도입 안 함 — 사유 명확)

CODEOWNERS/Required reviewers(솔로 → 머지 영구 락아웃) · Auto-merge(Codex 대기 규율 충돌) · Merge queue · Signed commits(에이전트 커밋 서명 비용↑·자동화 중단 위험) · OIDC · npm audit 게이트(노이즈) · GitHub Packages · Pages · Discussions · Wiki · CODE_OF_CONDUCT/FUNDING/SUPPORT/프로필 README · stale bot(트래커 파괴) · release-drafter(--generate-notes 중복) · github-script · auto-assign/labeler · org rulesets/custom properties · reusable workflow/composite/job summaries(과설계). (릴리스 0·외부 0·솔로 단계에선 빈 신호 역효과)


🙋 결정 현황

  • LICENSE = MIT (결정 완료)
  • v0.1.0 첫 릴리스 지금 컷? — 권장: 지금(미검증 파이프라인 실측 + topics/notes/attestation 묶어 1회 검증, 0.x breaking 자유 명시)
  • 백로그 정량화 보드 필드 이관? — 규율 약속(매 sub-issue 필드 입력) 가능할 때만; 아니면 라벨/prose 유지가 정직

전체 감사 원본(카테고리별 verdict·reason·organicLinks)은 워크플로 산출물 보관. 필요 시 항목을 이 트래커의 sub-issue로 분해 가능.

Metadata

Metadata

Assignees

No one assigned

    Labels

    area:devx빌드·툴체인·테스트·개발 위생enhancementNew feature or requesttype:meta메타 트래커/로드맵type:security보안 관련

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions