Communitygithub.com

오픈소스 파이프라인

오픈소스 파이프라인: 비공개 프로젝트를 포크, 정제, 패키징하여 안전하게 공개 배포합니다. 3개 에이전트(forker, sanitizer, packager)를 연결합니다.

오픈소스 파이프라인란 무엇인가요?

이 스킬은 비공개 저장소를 공개 오픈소스 프로젝트로 안전하게 전환하는 3단계 파이프라인을 제공합니다. '포크(fork)' 단계에서는 프로젝트 파일을 복사하면서 모든 시크릿과 자격 증명을 제거하고, '정제(sanitize)' 단계에서는 6가지 검사 항목(시크릿, 개인정보, 내부 참조, 위험 파일, 설정 완전성, Git 히스토리)을 통해 깨끗한 상태를 확인합니다. '패키징(package)' 단계에서는 CLAUDE.md, setup.sh, README, LICENSE, CONTRIBUTING.md 등 공개 저장소에 필요한 모든 파일을 자동 생성합니다. 각 단계는 독립적인 하위 에이전트가 담당하며, 사용자는 `/opensource fork`, `/opensource verify`, `/opensource package` 명령어로 개별 단계를 실행하거나 전체 파이프라인을 한 번에 실행할 수 있습니다. 최종 결과물은 사용자 승인 후 GitHub에 퍼블리시되며, sanitizer에서 실패 시 최대 3번 재시도 후 사용자에게 수동 수정을 요청하는 안전 장치가 마련되어 있습니다.

지원 대상✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/affaan-m/ECC/tree/main/skills/opensource-pipeline

즐겨 사용하는 AI에게 물어보기

이 에이전트 스킬이 미리 로드된 새 채팅을 엽니다.

문서

오픈소스 파이프라인 스킬

어떤 프로젝트든 안전하게 오픈소스화하는 3단계 파이프라인: 포크(시크릿 제거) → 정제(깨끗한지 확인) → 패키징(CLAUDE.md + setup.sh + README).

활성화 시점

  • 사용자가 "이 프로젝트를 오픈소스로 공개" 또는 "이것을 공개하라"고 말할 때
  • 사용자가 비공개 저장소를 공개 배포용으로 준비하려 할 때
  • 사용자가 GitHub에 푸시하기 전에 시크릿을 제거해야 할 때
  • 사용자가 /opensource fork, /opensource verify, 또는 /opensource package를 호출할 때

명령어

명령어동작
/opensource fork PROJECT전체 파이프라인: 포크 + 정제 + 패키징
/opensource verify PROJECT기존 저장소에 대해 정제기 실행
/opensource package PROJECTCLAUDE.md + setup.sh + README 생성
/opensource list모든 준비 중인 프로젝트 표시
/opensource status PROJECT준비 중인 프로젝트의 보고서 표시

프로토콜

/opensource fork PROJECT

전체 파이프라인 — 주요 워크플로우.

1단계: 매개변수 수집

프로젝트 경로를 확인합니다. PROJECT에 /가 포함되어 있으면 경로(절대 또는 상대)로 처리합니다. 그렇지 않으면 현재 작업 디렉토리, $HOME/PROJECT 순서로 확인한 후 사용자에게 묻습니다.

SOURCE_PATH="<확인된 절대 경로>"
STAGING_PATH="$HOME/opensource-staging/${PROJECT_NAME}"

사용자에게 묻습니다:

  1. "어떤 프로젝트인가요?" (찾을 수 없는 경우)
  2. "라이선스? (MIT / Apache-2.0 / GPL-3.0 / BSD-3-Clause)"
  3. "GitHub 조직 또는 사용자 이름?" (기본값: gh api user -q .login으로 감지)
  4. "GitHub 저장소 이름?" (기본값: 프로젝트 이름)
  5. "README에 대한 설명?" (프로젝트를 분석하여 제안)

2단계: 스테이징 디렉토리 생성

mkdir -p $HOME/opensource-staging/

3단계: 포커 에이전트 실행

opensource-forker 에이전트를 생성합니다:

Agent(
  description="{PROJECT}를 오픈소스용으로 포크",
  subagent_type="opensource-forker",
  prompt="""
프로젝트를 오픈소스 배포용으로 포크합니다.

소스: {SOURCE_PATH}
대상: {STAGING_PATH}
라이선스: {chosen_license}

전체 포킹 프로토콜을 따르세요:
1. 파일 복사 (.git, node_modules, __pycache__, .venv 제외)
2. 모든 시크릿과 자격 증명 제거
3. 내부 참조를 플레이스홀더로 대체
4. .env.example 생성
5. Git 히스토리 정리
6. {STAGING_PATH}/FORK_REPORT.md에 FORK_REPORT.md 생성
"""
)

완료될 때까지 기다립니다. {STAGING_PATH}/FORK_REPORT.md를 읽습니다.

4단계: 정제기 에이전트 실행

opensource-sanitizer 에이전트를 생성합니다:

Agent(
  description="{PROJECT} 정제 확인",
  subagent_type="opensource-sanitizer",
  prompt="""
오픈소스 포크의 정제를 확인합니다.

프로젝트: {STAGING_PATH}
소스(참조용): {SOURCE_PATH}

모든 검사 카테고리를 실행하세요:
1. 시크릿 검사 (치명적)
2. 개인정보(PII) 검사 (치명적)
3. 내부 참조 검사 (치명적)
4. 위험 파일 검사 (치명적)
5. 설정 완전성 검사 (경고)
6. Git 히스토리 감사

{STAGING_PATH} 안에 PASS/FAIL 판정과 함께 SANITIZATION_REPORT.md를 생성하세요.
"""
)

완료될 때까지 기다립니다. {STAGING_PATH}/SANITIZATION_REPORT.md를 읽습니다.

FAIL인 경우: 발견 사항을 사용자에게 보여줍니다. "이것들을 수정하고 다시 검사할까요, 아니면 중단할까요?"라고 묻습니다.

  • 수정 선택: 수정을 적용하고 정제기를 다시 실행합니다 (최대 3회 재시도 — 3회 FAIL 후에는 모든 발견 사항을 제시하고 사용자에게 수동 수정을 요청합니다)
  • 중단 선택: 스테이징 디렉토리를 정리합니다

PASS 또는 PASS WITH WARNINGS인 경우: 5단계로 계속 진행합니다.

5단계: 패키저 에이전트 실행

opensource-packager 에이전트를 생성합니다:

Agent(
  description="{PROJECT}를 오픈소스용으로 패키징",
  subagent_type="opensource-packager",
  prompt="""
프로젝트의 오픈소스 패키징을 생성합니다.

프로젝트: {STAGING_PATH}
라이선스: {chosen_license}
프로젝트 이름: {PROJECT_NAME}
설명: {description}
GitHub 저장소: {github_repo}

생성:
1. CLAUDE.md (명령어, 아키텍처, 주요 파일)
2. setup.sh (원클릭 부트스트랩, 실행 가능하도록)
3. README.md (또는 기존 파일 개선)
4. LICENSE
5. CONTRIBUTING.md
6. .github/ISSUE_TEMPLATE/ (bug_report.md, feature_request.md)
"""
)

6단계: 최종 검토

사용자에게 표시합니다:

오픈소스 포크 준비 완료: {PROJECT_NAME}

위치: {STAGING_PATH}
라이선스: {license}
생성된 파일:
  - CLAUDE.md
  - setup.sh (실행 가능)
  - README.md
  - LICENSE
  - CONTRIBUTING.md
  - .env.example ({N}개 변수)

정제 결과: {sanitization_verdict}

다음 단계:
  1. 검토: cd {STAGING_PATH}
  2. 저장소 생성: gh repo create {github_org}/{github_repo} --public
  3. 푸시: git remote add origin ... && git push -u origin main

GitHub 생성을 진행할까요? (yes/no/review first)

7단계: GitHub 퍼블리시 (사용자 승인 시)

cd "{STAGING_PATH}"
gh repo create "{github_org}/{github_repo}" --public --source=. --push --description "{description}"

/opensource verify PROJECT

정제기를 독립적으로 실행합니다. 경로 확인: PROJECT에 /가 포함되어 있으면 경로로 처리합니다. 그렇지 않으면 $HOME/opensource-staging/PROJECT, $HOME/PROJECT, 현재 디렉토리 순서로 확인합니다.

Agent(
  subagent_type="opensource-sanitizer",
  prompt="{resolved_path}의 정제를 확인합니다. 6개 검사 카테고리 모두를 실행하고 SANITIZATION_REPORT.md를 생성하세요."
)

/opensource package PROJECT

패키저를 독립적으로 실행합니다. "라이선스?"와 "설명?"을 묻고 다음을 실행합니다:

Agent(
  subagent_type="opensource-packager",
  prompt="{resolved_path}를 패키징합니다..."
)

/opensource list

ls -d $HOME/opensource-staging/*/

각 프로젝트를 파이프라인 진행 상황(FORK_REPORT.md, SANITIZATION_REPORT.md, CLAUDE.md 존재 여부)과 함께 표시합니다.


/opensource status PROJECT

cat $HOME/opensource-staging/${PROJECT}/SANITIZATION_REPORT.md
cat $HOME/opensource-staging/${PROJECT}/FORK_REPORT.md

스테이징 레이아웃

$HOME/opensource-staging/
  my-project/
    FORK_REPORT.md           # 포커 에이전트에서 생성
    SANITIZATION_REPORT.md   # 정제기 에이전트에서 생성
    CLAUDE.md                # 패키저 에이전트에서 생성
    setup.sh                 # 패키저 에이전트에서 생성
    README.md                # 패키저 에이전트에서 생성
    .env.example             # 포커 에이전트에서 생성
    ...                      # 정제된 프로젝트 파일

안티 패턴

  • 절대 사용자 승인 없이 GitHub에 푸시하지 않음
  • 절대 정제기를 건너뛰지 않음 — 정제기는 안전 게이트입니다
  • 절대 정제기 FAIL 후 모든 치명적 발견 사항을 수정하지 않고 진행하지 않음
  • 절대 .env, *.pem, 또는 credentials.json을 스테이징 디렉토리에 남겨두지 않음

모범 사례

  • 새 릴리스에는 항상 전체 파이프라인(포크 → 정제 → 패키징)을 실행하세요
  • 스테이징 디렉토리는 명시적으로 정리될 때까지 유지됩니다 — 검토에 활용하세요
  • 게시 전에 수동 수정 후에는 반드시 정제기를 다시 실행하세요
  • 시크릿을 삭제하지 말고 매개변수화하여 프로젝트 기능을 유지하세요

관련 스킬

정제기에서 사용하는 시크릿 탐지 패턴은 security-review를 참조하세요.

Individual skills in this repo

This repo contains 20 individual skills — each has its own dedicated page.

accessibility

Design, implement, and audit inclusive digital products using WCAG 2.2 Level AA. Use when building or auditing UI that must meet WCAG 2.2 Level AA, or when reviewing a change for keyboard, contrast, or screen-reader support.

affaan-m/content-engine

Create platform-native content systems for X, LinkedIn, TikTok, YouTube, newsletters, and repurposed multi-platform campaigns. Use when the user wants social posts, threads, scripts, content calendars, or one source asset adapted cleanly across platforms.

affaan-m/ECC

Multi-platform content distribution across X, LinkedIn, Threads, and Bluesky. Adapts content per platform using content-engine patterns. Never posts identical content cross-platform. Use when the user wants to distribute content across social platforms.

affaan-m/fal-ai-media

Unified media generation via fal.ai MCP — image, video, and audio. Covers text-to-image (Nano Banana), text/image-to-video (Seedance, Kling, Veo 3), text-to-speech (CSM-1B), and video-to-audio (ThinkSound). Use when the user wants to generate images, videos, or audio with AI.

affaan-m/manim-video

日本語翻訳:このファイルは manim-video 用の日本語翻訳が必要です

affaan-m/remotion-video-creation

Remotion のベストプラクティス - React で動画を作成する。3D、アニメーション、音声、字幕、チャート、トランジションなどをカバーするドメイン固有の29のルール。

affaan-m/video-editing

AI-assisted video editing workflows for cutting, structuring, and augmenting real footage. Covers the full pipeline from raw capture through FFmpeg, Remotion, ElevenLabs, fal.ai, and final polish in Descript or CapCut. Use when the user wants to edit video, cut footage, create vlogs, or build video content.

agent-architecture-audit

Full-stack diagnostic for agent and LLM applications. Audits the 12-layer agent stack for wrapper regression, memory pollution, tool discipline failures, hidden repair loops, and rendering corruption. Produces severity-ranked findings with code-first fixes. Essential for developers building agent applications, autonomous loops, or any LLM-powered feature. Use when an agent or LLM feature misbehaves and the failing layer is unknown, or before shipping an agent stack.

agent-eval

Head-to-head comparison of coding agents (Claude Code, Aider, Codex, etc.) on custom tasks with pass rate, cost, time, and consistency metrics. Use when choosing between coding agents, or when a change to an agent setup needs measured pass rate, cost, and time rather than an impression.

agent-harness-construction

Design and optimize AI agent action spaces, tool definitions, and observation formatting for higher completion rates. Use when defining or revising an agent

agentic-engineering

Operate as an agentic engineer using eval-first execution, decomposition, and cost-aware model routing. Use when planning or executing engineering work that agents will carry out end to end.

agentic-os

Build persistent multi-agent operating systems on Claude Code. Covers kernel architecture, specialist agents, slash commands, file-based memory, scheduled automation, and state management without external databases. Use when building a persistent multi-agent system on Claude Code with its own memory, commands, and scheduling.

agent-introspection-debugging

Structured self-debugging workflow for AI agent failures using capture, diagnosis, contained recovery, and introspection reports. Use when an agent run fails and you need a reproducible diagnosis instead of a retry.

agent-payment-x402

Add x402 payment execution to AI agents with per-task budgets, spending controls, and non-custodial wallets. Supports Base through agentwallet-sdk and X Layer through OKX Payments / OKX Agent Payments Protocol. Use when an agent must pay for something itself and needs per-task budgets, spending controls, and a non-custodial wallet.

agent-self-evaluation

Use after completing any non-trivial task. The agent self-rates its output on 5 axes — accuracy, completeness, clarity, actionability, conciseness — with concrete evidence per criterion. Produces a structured 1-5 scorecard with specific improvement suggestions.

agent-sort

Build an evidence-backed ECC install plan for a specific repo by sorting skills, commands, rules, hooks, and extras into DAILY vs LIBRARY buckets using parallel repo-aware review passes. Use when ECC should be trimmed to what a project actually needs instead of loading the full bundle.

ai-first-engineering

Engineering operating model for teams where AI agents generate a large share of implementation output. Use when setting team process, review gates, or ownership rules for a codebase largely written by agents.

ai-regression-testing

Regression testing strategies for AI-assisted development. Sandbox-mode API testing without database dependencies, automated bug-check workflows, and patterns to catch AI blind spots where the same model writes and reviews code. Use when adding regression coverage to AI-assisted code, or when the same model both wrote and reviewed a change.

android-clean-architecture

Clean Architecture patterns for Android and Kotlin Multiplatform projects — module structure, dependency rules, UseCases, Repositories, and data layer patterns. Use when structuring modules, layers, or data flow in an Android or KMP project.

angular-developer

Generates Angular code and provides architectural guidance. Trigger when creating projects, components, or services, or for best practices on reactivity (signals, linkedSignal, resource), forms, dependency injection, routing, SSR, accessibility (ARIA), animations, styling (component styles, Tailwind CSS), testing, or CLI tooling.

관련 스킬