> ## Documentation Index
> Fetch the complete documentation index at: https://docs.replit.com/llms.txt
> Use this file to discover all available pages before exploring further.

# 커스텀 템플릿

> Replit Enterprise에서 커스텀 템플릿을 설정하고 관리하여 조직이 Agent로 빌드하는 방식을 표준화하세요.

## 시작하기

Replit은 어떤 프레임워크나 스택도 작성하고 실행할 수 있는 클라우드 개발 환경입니다. 커스텀 템플릿을 빌드하는 데는 두 가지 권장 경로가 있습니다:

1. **[Git 제공자에서 가져오기](https://replit.com/import)** — GitHub, GitLab, 또는 Bitbucket에서 기존 스타터 스택(또는 원하는 스택)을 가져옵니다.
2. **Blank 템플릿 포크** — [Blank 템플릿](https://replit.com/@replit/Nothing?v=1)을 포크하여 완전히 빈 개발 환경에서 처음부터 시작합니다.

고객들은 Rust, Python, Java, C++ 및 다양한 스택에 맞는 템플릿을 성공적으로 빌드해 왔습니다. 어떤 것이든 실행된다면 Replit에서도 실행할 수 있습니다.

<Tip>
  첫 번째 템플릿을 빌드할 때 Replit의 **Field Engineering 팀**과 함께 작업하는 것을 권장합니다. 이 팀은 다양한 스택에 걸쳐 커스텀 템플릿을 설정한 풍부한 경험을 보유하고 있으며 도움을 드릴 수 있습니다. 담당 Account Executive에게 연락하여 연결하세요.
</Tip>

커스텀 템플릿을 사용하면 Enterprise 관리자가 조직의 모든 구성원을 위해 Agent 입력 상자에 직접 표시되는 사전 구성된 시작점을 만들 수 있습니다. 빌더가 커스텀 템플릿을 선택하면 Agent가 이를 포크하고 템플릿의 구성, 지침, 스킬을 사용하여 이후 모든 작업을 안내합니다. 추가 설정이 필요하지 않습니다.

<Note>
  커스텀 템플릿은 **Enterprise** 플랜에서만 사용할 수 있습니다. 조직 관리자만 템플릿을 고정하고 관리할 수 있습니다.
</Note>

## 커스텀 템플릿의 작동 방식

커스텀 템플릿은 **Agent 입력 상자에 고정된** 조직 내 표준 Replit App입니다. 빌더가 선택하면:

1. Agent가 템플릿을 포크하여 새 앱을 생성합니다 (모든 파일이 복사됨)
2. Agent가 계획 단계를 건너뛰고 바로 빌드로 진행합니다
3. 템플릿의 `custom_instruction/instructions.md` 파일이 Agent의 컨텍스트에 주입됩니다
4. `.agents/skills/`의 커스텀 [스킬](/references/agent/skills)이 발견되어 사용 가능해집니다
5. [`replit.md`](/references/project-setup/replit-dot-md) 파일이 지속적인 프로젝트 컨텍스트를 제공합니다

즉, 조직의 표준, 패턴, 도구가 첫 번째 상호작용부터 내장됩니다.

## 템플릿 파일 구조

커스텀 템플릿의 권장 레이아웃은 다음과 같습니다:

```
my-template/
├── .replit                              # 앱 구성 (실행 명령, 포트, 모듈)
├── replit.md                            # Agent 메모리: 프로젝트 개요 및 기본 설정
├── custom_instruction/
│   └── instructions.md                  # Agent 프롬프트에 주입되는 회사 지침
├── .agents/
│   └── skills/
│       └── my-skill/
│           └── SKILL.md                 # Agent가 필요 시 호출할 수 있는 커스텀 스킬
└── ...                                  # 나머지 저장소 구조
```

각 파일은 고유한 역할을 수행합니다. 아래 섹션에서 각 파일을 구성하는 방법을 안내합니다.

## 커스텀 템플릿 설정

### 기본 앱 만들기

조직에서 새 Replit App을 만듭니다. 빌더가 시작점으로 필요한 모든 파일, 종속성 및 구성으로 프로젝트를 설정합니다. 여기에는 다음이 포함됩니다:

* 소스 코드 스캐폴딩 (컴포넌트, 유틸리티, 구성 파일)
* 사전 설치된 종속성 (`package.json`, `requirements.txt` 등)
* [`.replit` 파일](/replit-app/configuration)의 환경 구성

### 공유 시크릿 구성

템플릿이 API 키, 토큰 또는 기타 자격 증명에 의존하는 경우, 고정하기 전에 템플릿의 **Secrets**(도구 패널 아래)에 추가하세요. 빌더가 템플릿에서 새 앱을 만들면 모든 시크릿이 새 앱에 자동으로 복사되므로, 빌더는 자격 증명을 직접 구성하지 않고도 작업을 시작할 수 있습니다.

`custom_instruction/instructions.md`(또는 전용 스킬)에 모든 시크릿을 문서화하여 빌더가 무엇이 있는지, 각 키가 무엇에 사용되는지 알 수 있도록 하세요.

<Warning>
  시크릿은 포크 시점에 복사되며 동적으로 동기화되지 않습니다. 키를 교체하거나 템플릿에 새 시크릿을 추가하면, 이전에 포크된 기존 앱은 업데이트되지 않습니다. 빌더는 해당 앱에서 수동으로 시크릿을 추가하거나 업데이트해야 합니다.
</Warning>

### 커스텀 지침 작성

프로젝트 루트의 `custom_instruction/instructions.md`에 파일을 만듭니다. 이것은 템플릿에서 가장 중요한 파일로, 조직이 소프트웨어를 빌드하는 방식을 Agent에게 알려줍니다.

<Warning>
  폴더 이름은 `custom_instructions`(복수형)가 아닌 `custom_instruction`(단수형)이어야 합니다.
</Warning>

Agent는 이 파일을 회사가 제공한 지침으로 프레이밍하는 서문과 함께 시스템 프롬프트에 직접 주입합니다. Markdown으로 작성하고 다음을 포함하세요:

* **아키텍처 패턴**: 앱의 구조화 방식
* **코딩 표준**: 명명 규칙, 파일 구성 규칙, 린팅 기대치
* **컴포넌트 사용**: 사용할 (그리고 피해야 할) 라이브러리와 컴포넌트
* **API 패턴**: 백엔드 서비스 호출, 인증 처리, 오류 관리 방법
* **테스트 요구 사항**: 기대되는 테스트와 실행 방법
* **배포 지침**: 환경별 구성 및 배포 워크플로

````markdown theme={null}
# 회사 엔지니어링 표준

## 아키텍처
모든 웹 애플리케이션은 TypeScript와 함께 React를 사용합니다. 훅이 있는
함수형 컴포넌트만 사용합니다. 상태 관리는 로컬 상태에 Zustand를,
서버 상태에 React Query를 사용합니다.

## 컴포넌트 라이브러리
내부 디자인 시스템 패키지 `@acme/ui`를 사용합니다. 버튼, 입력, 폼,
모달에는 절대 원시 HTML 요소를 사용하지 말고 항상 `@acme/ui`의
해당 컴포넌트를 사용합니다.

다음과 같이 컴포넌트를 가져옵니다:
```tsx
import { Button, TextField, Modal } from '@acme/ui';
```

## API 통합
모든 API 호출은 `@acme/api-client` 패키지를 통해 이루어집니다.
절대 raw fetch나 axios를 직접 사용하지 않습니다. 인증은 클라이언트가
자동으로 처리합니다.

## 테스트
모든 컴포넌트에는 해당 테스트 파일이 있어야 합니다. 단위 테스트에는
Vitest를, 통합 테스트에는 Playwright를 사용합니다.
````

**크기 제한**: 콘텐츠는 약 25 KB로 소프트 제한됩니다. 이 제한을 초과하는 콘텐츠는 점진적으로 잘릴 수 있습니다. 지침이 늘어나면, 모든 것을 `instructions.md`에 유지하는 대신 상세한 참조 자료를 `.agents/skills/`의 [스킬](/references/agent/skills)로 이동하세요. 스킬은 관련 있을 때 필요 시 로드되므로 지침 크기 제한에 포함되지 않으며 주요 지침을 고수준 규칙에 집중되게 유지합니다.

### 커스텀 스킬 추가

Agent가 따라야 할 특수 워크플로를 위해 `.agents/skills/` 디렉터리에 스킬을 만듭니다. 각 스킬은 YAML 프론트매터가 있는 `SKILL.md` 파일을 포함하는 디렉터리입니다.

```
.agents/skills/
├── use-design-system/
│   └── SKILL.md
├── api-integration/
│   └── SKILL.md
└── run-tests/
    └── SKILL.md
```

각 `SKILL.md`에는 프론트매터에 `name`과 `description`이 필요합니다:

```markdown theme={null}
---
name: use-design-system
description: Use when building UI components. Provides component patterns, theming rules, and accessibility requirements for the Acme design system.
---

# Acme Design System

## Available components

- `Button` — Primary, secondary, and ghost variants
- `TextField` — Text input with validation support
- `Modal` — Dialog overlay with focus trapping
...
```

| 필드            | 필수 여부 | 세부 사항                                           |
| ------------- | ----- | ----------------------------------------------- |
| `name`        | 예     | 최대 64자. 소문자, 숫자, 하이픈만 가능합니다.                    |
| `description` | 예     | 최대 1,024자. 스킬이 무엇을 하는지, 언제 사용하는지 설명합니다.         |
| `enabled`     | 아니오   | 기본값은 `true`입니다. 삭제하지 않고 비활성화하려면 `false`로 설정합니다. |

**스킬 로드 방식**: Agent는 프롬프트에서 `name`과 `description`만 봅니다. 스킬이 현재 작업과 관련 있을 때 필요 시 전체 `SKILL.md` 콘텐츠를 읽습니다. 즉, `description`이 매우 중요합니다. Agent가 스킬을 사용해야 하는 시나리오와 일치하도록 작성하세요.

스킬은 `SKILL.md`와 함께 지원 파일도 포함할 수 있습니다:

```
.agents/skills/use-design-system/
├── SKILL.md
├── references/
│   └── component-api.md
└── assets/
    └── theme-tokens.json
```

스킬에 대한 자세한 내용은 [Agent Skills](/references/agent/skills) 및 [스킬 사용](/build/use-agent-skills)을 참조하세요.

### replit.md 구성

프로젝트 루트의 `replit.md`에 템플릿의 아키텍처 개요를 사전에 채워 넣습니다. 이 파일은 항상 Agent의 컨텍스트에 로드되며 지속적인 프로젝트 메모리 역할을 합니다.

파일에는 다음 네 섹션이 있어야 합니다:

```markdown theme={null}
# Overview
Task management application built with React, TypeScript, and the Acme
design system. Uses Express.js backend with PostgreSQL.

# User Preferences
- Use TypeScript for all files
- Prefer functional components with hooks
- Follow Acme coding standards

# System Architecture
- Frontend: React + TypeScript + @acme/ui
- Backend: Express.js + TypeScript
- Database: PostgreSQL with Drizzle ORM
- Auth: Acme SSO via @acme/auth

# External Dependencies
- @acme/ui: Internal design system
- @acme/api-client: API integration layer
- @acme/auth: Authentication SDK
```

Agent는 프로젝트가 발전함에 따라 `replit.md`를 업데이트합니다. 파일이 약 4,000 토큰을 초과하면 Agent가 자동으로 요약하여 집중적이고 유용하게 유지합니다.

자세한 내용은 [replit.md](/references/project-setup/replit-dot-md)를 참조하세요.

### 조직에 템플릿 고정

템플릿이 준비되면:

1. 조직의 템플릿 앱으로 이동합니다
2. 앱의 작업 메뉴(점 세 개 메뉴)를 엽니다
3. **Agent 입력 상자에 고정**을 선택합니다

<img src="https://mintcdn.com/replit/uqviMSOK8jcxVPwq/images/teams/custom-templates-pin-to-agent.png?fit=max&auto=format&n=uqviMSOK8jcxVPwq&q=85&s=6633df41d207aa5e9215ce0f4f1e1683" alt="Agent 입력 상자에 고정 옵션을 보여주는 앱 작업 메뉴" width="984" height="856" data-path="images/teams/custom-templates-pin-to-agent.png" />

<Note>
  조직 관리자(`system_admins` 역할의 구성원)만 템플릿을 고정하거나 고정 해제할 수 있습니다.
</Note>

구성원이 고정된 템플릿을 편집하지 않고 보고 사용할 수 있도록 구성원 액세스를 **읽기 전용**으로 설정합니다.

<img src="https://mintcdn.com/replit/uqviMSOK8jcxVPwq/images/teams/custom-templates-members-read-only.png?fit=max&auto=format&n=uqviMSOK8jcxVPwq&q=85&s=76e9519d8881090d5dce7f7634acb701" alt="구성원 액세스가 읽기 전용으로 설정된 초대 대화 상자" width="954" height="1064" data-path="images/teams/custom-templates-members-read-only.png" />

이제 템플릿이 조직의 모든 구성원을 위해 Agent 입력 상자 아래에 선택 가능한 필로 표시됩니다. 제거하려면 동일한 메뉴를 열고 **Agent 입력 상자에서 고정 해제**를 선택합니다.

### 템플릿 접근 제어

고정하면 템플릿이 모든 조직 구성원에게 표시됩니다. 보다 타겟팅된 배포를 위해 템플릿 앱의 **초대** 버튼을 사용하여 특정 [그룹 또는 개별 사용자](/teams/identity-and-access-management/groups-and-permissions)와 공유합니다. 이를 통해 조직 전체 입력 상자에 고정하지 않고도 어떤 팀이나 사람이 템플릿을 보고 포크할 수 있는지 제한할 수 있습니다.

## 빌더가 템플릿을 선택하면 어떻게 되는가

<img src="https://mintcdn.com/replit/uqviMSOK8jcxVPwq/images/teams/custom-templates-input-box.png?fit=max&auto=format&n=uqviMSOK8jcxVPwq&q=85&s=627369c01a5a109f15ca0c61968a8505" alt="Agent 입력 상자에 선택 가능한 필로 표시된 템플릿" width="1746" height="726" data-path="images/teams/custom-templates-input-box.png" />

조직 구성원이 Agent 입력 상자에서 고정된 템플릿을 선택하면:

1. **포크**: 모든 파일이 포함된 템플릿의 복사본으로 새 앱이 생성됩니다
2. **계획 건너뛰기**: Agent가 초기 계획 대화를 건너뛰고 빌드 모드로 직접 진행합니다
3. **지침 로드**: `custom_instruction/instructions.md`가 읽혀 회사 제공 지침으로 Agent의 시스템 프롬프트에 주입됩니다
4. **스킬 발견**: `.agents/skills/`의 스킬이 식별되어 필요 시 로드를 위해 Agent의 컨텍스트에 나열됩니다
5. **프로젝트 컨텍스트 로드**: `replit.md`가 읽혀 Agent의 컨텍스트에 주입됩니다 (없으면 자동 생성됨)
6. **구성 상속**: `.replit` 파일, 종속성, 모든 템플릿 파일이 새 앱으로 이어집니다

빌더는 즉시 특정 요구 사항으로 Agent에게 프롬프트를 시작할 수 있으며, Agent는 템플릿에서 설정된 가드레일 내에서 작동합니다.

## 파일이 함께 작동하는 방식

각 구성 파일은 고유한 역할을 수행합니다:

| 파일                                   | 목적              | Agent가 읽는 시점      | Agent가 수정 가능 여부            |
| ------------------------------------ | --------------- | ----------------- | -------------------------- |
| `custom_instruction/instructions.md` | 조직 표준 및 규칙      | 항상 (시스템 프롬프트에 주입) | 아니오                        |
| `.agents/skills/*/SKILL.md`          | 특수 워크플로 및 패턴    | 필요 시 (관련 있을 때)    | 예 (Agent도 스킬을 만들 수 있음)     |
| `replit.md`                          | 프로젝트 개요 및 기본 설정 | 항상 (시스템 프롬프트에 주입) | 예 (Agent가 시간이 지남에 따라 업데이트) |
| `.replit`                            | 런타임 구성          | 앱 구성 시            | 예                          |

**핵심 구분**: `custom_instruction/instructions.md`는 조직 표준을 위한 정적이고 권위 있는 소스입니다. `replit.md`는 프로젝트가 발전함에 따라 Agent가 유지 관리하는 살아있는 문서입니다. 스킬은 특정 워크플로를 위한 필요 시 참조 자료입니다.

## 모범 사례

### 지침을 집중되게 유지

가장 중요한 패턴을 위해 `custom_instruction/instructions.md`를 작성합니다. 다음에 집중하세요:

* 되돌리기 어려운 결정 (아키텍처, 데이터 모델)
* 일관되어야 하는 패턴 (컴포넌트 사용, API 규칙)
* 빌더가 모를 수 있는 표준 (내부 라이브러리, 팀 규칙)

변경 이력, 구현 세부 사항, 또는 자주 변경되는 정보는 포함하지 마세요.

### 발견 가능한 스킬 설명 작성

`SKILL.md` 프론트매터의 `description` 필드는 Agent가 스킬을 로드할 시점을 결정하는 데 사용하는 것입니다. 스킬이 관련 있는 작업과 일치하는 설명을 작성하세요:

```yaml theme={null}
# 좋음 — 언제 사용할지 설명
description: Use when building forms or handling user input. Provides validation patterns, error display conventions, and accessible form layouts.

# 덜 효과적 — 너무 모호함
description: Form utilities and helpers.
```

### 워크플로별로 스킬 구성

기술적 카테고리가 아닌 워크플로를 중심으로 스킬을 그룹화합니다:

| 접근 방식      | 예시                                           |
| ---------- | -------------------------------------------- |
| **워크플로별**  | `build-a-form`, `connect-to-api`, `add-auth` |
| **기술 영역별** | `react-utils`, `api-helpers`, `auth-config`  |

워크플로 접근 방식은 Agent가 적시에 스킬을 발견하는 데 도움이 됩니다.

### 템플릿을 반복 개선

템플릿은 사용하면서 개선됩니다. 팀이 템플릿으로 빌드를 시작한 후:

1. Agent가 잘못 처리하는 패턴을 확인하고 `instructions.md`에 추가합니다
2. Agent가 문제를 잘 해결할 때 새 스킬을 만들어 해결책을 캡처합니다
3. 스택이 발전함에 따라 기본 종속성과 구성을 업데이트합니다
4. 템플릿에서 새 앱을 만들어 변경 사항을 테스트하여 경험을 확인합니다

### 템플릿 업데이트와 기존 앱

템플릿 앱에 대한 변경 사항은 새로 만들어지는 앱에 반영됩니다. 템플릿에서 이전에 포크된 기존 앱은 독립적인 복사본이며 업데이트를 받지 않습니다.

## 관련 리소스

* [Agent Skills](/references/agent/skills) — 스킬의 작동 방식과 만드는 방법 알아보기
* [스킬 사용](/build/use-agent-skills) — 스킬 사용 및 빌드에 관한 실습 가이드
* [replit.md](/references/project-setup/replit-dot-md) — 프로젝트 수준 컨텍스트로 Agent의 동작 커스텀화
* [디자인 시스템](/teams/custom-design-system) — Agent를 위한 조직의 디자인 시스템 설정
* [앱 구성](/replit-app/configuration) — `.replit` 파일 구성
* [개발자 프레임워크](/replit-workspace/templates) — 커뮤니티 템플릿 및 게시 방법
* [Enterprise 개요](/category/teams) — Enterprise 기능 알아보기
