Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
59 changes: 51 additions & 8 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,15 +13,20 @@ Symphony는 AI 개발환경(IDE, MCP 기반 LLM Tooling)을 위한 정책 기반
- [목차](#목차)
- [주요 기능](#주요-기능)
- [빠른 시작](#빠른-시작)
- [컨벤션 관리](#컨벤션-관리)
- [MCP 설정](#mcp-설정)
- [사용 가능한 MCP 도구](#사용-가능한-mcp-도구)
- [`query_conventions`](#query_conventions)
- [`list_convention`](#list_convention)
- [`validate_code`](#validate_code)
- [`list_category`](#list_category)
- [`add_category`](#add_category)
- [`edit_category`](#edit_category)
- [`remove_category`](#remove_category)
- [`import_convention`](#import_convention)
- [`add_convention`](#add_convention)
- [`edit_convention`](#edit_convention)
- [`remove_convention`](#remove_convention)
- [`convert`](#convert)
- [컨벤션 파일](#컨벤션-파일)
- [요구사항](#요구사항)
- [지원 플랫폼](#지원-플랫폼)
Expand All @@ -47,15 +52,24 @@ npm install -g @dev-symphony/sym

# 2. 프로젝트 초기화 (.sym/ 폴더 생성 + MCP 설정)
sym init

# 3. 대시보드 실행 및 컨벤션 편집
sym dashboard

# 4. MCP 서버를 LLM IDE 내부에서 사용
```

---

## 컨벤션 관리

컨벤션은 아래 3가지 방식으로 관리할 수 있습니다:

- **CLI 명령어**: `sym category|convention|import|convert`
- **MCP 도구(권장)**: `list_*`, `add_*`, `edit_*`, `remove_*`, `import_convention`, `convert`
- **Dashboard**: `sym dash`로 웹에서 편집

권장사항: **LLM IDE(Cursor/Claude Code 등)를 사용한다면 MCP 기반 관리**를 권장합니다(조회/편집/변환/검증을 일관된 플로우로 자동화 가능).

예시 문장: “`docs/team-standards.md`를 컨벤션에 반영해줘.”

자세한 내용은 [`docs/CONVENTION_MANAGEMENT.md`](docs/CONVENTION_MANAGEMENT.md)를 참고하세요.

## MCP 설정

`sym init` 명령은 MCP 서버 구성을 자동으로 설정합니다.
Expand All @@ -76,10 +90,10 @@ sym dashboard

## 사용 가능한 MCP 도구

### `query_conventions`
### `list_convention`

- 프로젝트 컨벤션을 조회합니다.
- 카테고리, 파일 목록, 언어 등의 파라미터는 모두 optional입니다.
- 카테고리, 언어 등의 파라미터는 모두 optional입니다.

### `validate_code`

Expand Down Expand Up @@ -113,6 +127,27 @@ sym dashboard
- 필수 파라미터: `path`
- 선택 파라미터: `mode` (`append` 또는 `clear`, 기본값: `append`)

### `add_convention`

- 새 컨벤션(규칙)을 추가합니다 (배치 지원).
- 필수 파라미터: `conventions` (배열)
- 컨벤션에 포함된 언어는 자동으로 `defaults.languages`에 추가됩니다.

### `edit_convention`

- 기존 컨벤션을 편집합니다 (배치 지원).
- 필수 파라미터: `edits` (배열)

### `remove_convention`

- 컨벤션을 삭제합니다 (배치 지원).
- 필수 파라미터: `ids` (배열)

### `convert`

- user-policy.json(Schema A)에서 code-policy.json(Schema B) 및 린터 설정 파일을 생성/갱신합니다.
- 컨벤션/카테고리를 추가/편집/삭제한 뒤 실행하는 것을 권장합니다.

---

## 컨벤션 파일
Expand All @@ -124,6 +159,14 @@ Symphony는 프로젝트 컨벤션을 **정책 파일(`.sym/user-policy.json`)**
sym dashboard
```

컨벤션/카테고리를 수정한 후에는 아래 명령으로 린터 설정을 갱신하세요:

```bash
sym convert
```

자세한 관리 방법은 문서에서 확인할 수 있습니다: [`docs/CONVENTION_MANAGEMENT.md`](docs/CONVENTION_MANAGEMENT.md)

예시 정책 파일:

```json
Expand Down
6 changes: 5 additions & 1 deletion docs/ARCHITECTURE.md
Original file line number Diff line number Diff line change
Expand Up @@ -140,13 +140,17 @@ AI 코딩 도구(Claude Code, Cursor 등)와 stdio를 통해 통신합니다.

| Tool | Description |
|------|-------------|
| `query_conventions` | 프로젝트 컨벤션 조회 |
| `list_convention` | 프로젝트 컨벤션 조회 |
| `validate_code` | 코드 변경사항 검증 |
| `list_category` | 카테고리 목록 조회 |
| `add_category` | 카테고리 추가 (배치 지원) |
| `edit_category` | 카테고리 편집 (배치 지원) |
| `remove_category` | 카테고리 삭제 (배치 지원) |
| `import_convention` | 외부 문서에서 컨벤션 추출 |
| `add_convention` | 컨벤션 추가 (배치 지원) |
| `edit_convention` | 컨벤션 편집 (배치 지원) |
| `remove_convention` | 컨벤션 삭제 (배치 지원) |
| `convert` | user-policy.json → code-policy.json + 린터 설정 생성/갱신 |

#### HTTP Server (`internal/server`)

Expand Down
Loading