initial commit
This commit is contained in:
+21
@@ -0,0 +1,21 @@
|
||||
# Architecture Decision Records
|
||||
|
||||
## 철학
|
||||
{프로젝트의 핵심 가치관 (예: MVP 속도 최우선. 외부 의존성 최소화. 작동하는 최소 구현을 선택.)}
|
||||
|
||||
---
|
||||
|
||||
### ADR-001: {결정 사항 (예: Next.js App Router 선택)}
|
||||
**결정**: {뭘 선택했는지}
|
||||
**이유**: {왜 선택했는지}
|
||||
**트레이드오프**: {뭘 포기했는지}
|
||||
|
||||
### ADR-002: {결정 사항}
|
||||
**결정**: {뭘 선택했는지}
|
||||
**이유**: {왜 선택했는지}
|
||||
**트레이드오프**: {뭘 포기했는지}
|
||||
|
||||
### ADR-003: {결정 사항}
|
||||
**결정**: {뭘 선택했는지}
|
||||
**이유**: {왜 선택했는지}
|
||||
**트레이드오프**: {뭘 포기했는지}
|
||||
@@ -0,0 +1,24 @@
|
||||
# 아키텍처
|
||||
|
||||
## 디렉토리 구조
|
||||
```
|
||||
src/
|
||||
├── app/ # 페이지 + API 라우트
|
||||
├── components/ # UI 컴포넌트
|
||||
├── types/ # TypeScript 타입 정의
|
||||
├── lib/ # 유틸리티 + 헬퍼
|
||||
└── services/ # 외부 API 래퍼
|
||||
```
|
||||
|
||||
## 패턴
|
||||
{사용하는 디자인 패턴 (예: Server Components 기본, 인터랙션이 필요한 곳만 Client Component)}
|
||||
|
||||
## 데이터 흐름
|
||||
```
|
||||
{데이터가 어떻게 흐르는지 (예:
|
||||
사용자 입력 → Client Component → API Route → 외부 API → 응답 → UI 업데이트
|
||||
)}
|
||||
```
|
||||
|
||||
## 상태 관리
|
||||
{상태 관리 방식 (예: 서버 상태는 Server Components, 클라이언트 상태는 useState/useReducer)}
|
||||
@@ -0,0 +1,83 @@
|
||||
# Codex Migration Guide
|
||||
|
||||
## Purpose
|
||||
|
||||
This repository was converted from a Claude-oriented Harness template into a Codex-oriented template.
|
||||
|
||||
## Mapping
|
||||
|
||||
| Claude surface | Codex surface | Repository path |
|
||||
|---|---|---|
|
||||
| `CLAUDE.md` | persistent repo instructions | `AGENTS.md` |
|
||||
| `.claude/commands/*.md` | repo skills | `.agents/skills/*/SKILL.md` |
|
||||
| Claude sub-agents | project-scoped custom agents | `.codex/agents/*.toml` |
|
||||
| `.claude/settings.json` hooks | Codex hooks | `.codex/hooks.json` |
|
||||
| `claude -p` automation | `codex exec` automation | `scripts/execute.py` |
|
||||
| ad hoc slash commands | optional plugin command layer | `plugins/harness-engineering/commands/` |
|
||||
|
||||
## Repository surfaces
|
||||
|
||||
### `AGENTS.md`
|
||||
|
||||
Codex loads `AGENTS.md` as the persistent instruction file for the repository.
|
||||
|
||||
Use it for:
|
||||
|
||||
- project-level rules
|
||||
- architecture constraints
|
||||
- workflow expectations
|
||||
- validation commands
|
||||
|
||||
### `.agents/skills/`
|
||||
|
||||
Repo skills are the primary reusable workflow layer.
|
||||
|
||||
- `harness-workflow`: plan phases and generate `phases/` files
|
||||
- `harness-review`: review changes against Harness docs and rules
|
||||
|
||||
These are automatically discoverable by Codex in this repository.
|
||||
|
||||
### `.codex/agents/`
|
||||
|
||||
Custom agents are defined as standalone TOML files.
|
||||
|
||||
- `phase_planner`: read-heavy planner for decomposing work into steps
|
||||
- `harness_reviewer`: read-only reviewer for architecture and test compliance
|
||||
|
||||
Use these only when the user explicitly asks Codex to fan out work across subagents.
|
||||
|
||||
### `.codex/hooks.json`
|
||||
|
||||
As of 2026-04-15, Codex documents hooks as experimental and disabled on native Windows.
|
||||
|
||||
This repo still ships hook definitions because they work on macOS, Linux, and WSL once `codex_hooks` is enabled. On native Windows, use `python scripts/validate_workspace.py` manually or through `scripts/execute.py`.
|
||||
|
||||
### `plugins/harness-engineering/`
|
||||
|
||||
This is an optional repo-local plugin that exposes Harness slash-command prompts through the local marketplace.
|
||||
|
||||
Install path:
|
||||
|
||||
1. Restart Codex.
|
||||
2. Open `/plugins`.
|
||||
3. Choose the local marketplace `Local Harness Engineering`.
|
||||
4. Install `harness-engineering`.
|
||||
|
||||
## Automation
|
||||
|
||||
`scripts/execute.py` now calls `codex exec` instead of `claude -p`.
|
||||
|
||||
Execution model:
|
||||
|
||||
- inject `AGENTS.md` and `docs/*.md` into each step prompt
|
||||
- run steps in order
|
||||
- retry failed steps up to 3 times with prior error feedback
|
||||
- persist step outputs under `phases/{phase}/stepN-output.json`
|
||||
- create code and metadata commits after successful steps
|
||||
|
||||
## Validation
|
||||
|
||||
`python scripts/validate_workspace.py` is the repo-level fallback validator.
|
||||
|
||||
- If `package.json` exists, it auto-runs available `npm run lint`, `npm run build`, and `npm run test`.
|
||||
- If the project needs another validation chain, set `HARNESS_VALIDATION_COMMANDS` to newline-separated commands.
|
||||
+21
@@ -0,0 +1,21 @@
|
||||
# PRD: {프로젝트명}
|
||||
|
||||
## 목표
|
||||
{이 프로젝트가 해결하려는 문제를 한 줄로 요약}
|
||||
|
||||
## 사용자
|
||||
{누가 이 제품을 쓰는지}
|
||||
|
||||
## 핵심 기능
|
||||
1. {기능 1}
|
||||
2. {기능 2}
|
||||
3. {기능 3}
|
||||
|
||||
## MVP 제외 사항
|
||||
- {안 만들 것 1}
|
||||
- {안 만들 것 2}
|
||||
- {안 만들 것 3}
|
||||
|
||||
## 디자인
|
||||
- {디자인 방향 (예: 다크모드 고정, 미니멀)}
|
||||
- {색상 (예: 무채색 + 포인트 1가지)}
|
||||
@@ -0,0 +1,76 @@
|
||||
# UI 디자인 가이드
|
||||
|
||||
## 디자인 원칙
|
||||
1. {원칙 1 — 예: "도구처럼 보여야 한다. 마케팅 페이지가 아니라 매일 쓰는 대시보드."}
|
||||
2. {원칙 2}
|
||||
3. {원칙 3}
|
||||
|
||||
## AI 슬롭 안티패턴 — 하지 마라
|
||||
| 금지 사항 | 이유 |
|
||||
|-----------|------|
|
||||
| backdrop-filter: blur() | glass morphism은 AI 템플릿의 가장 흔한 징후 |
|
||||
| gradient-text (배경 그라데이션 텍스트) | AI가 만든 SaaS 랜딩의 1번 특징 |
|
||||
| "Powered by AI" 배지 | 기능이 아니라 장식. 사용자에게 가치 없음 |
|
||||
| box-shadow 글로우 애니메이션 | 네온 글로우 = AI 슬롭 |
|
||||
| 보라/인디고 브랜드 색상 | "AI = 보라색" 클리셰 |
|
||||
| 모든 카드에 동일한 rounded-2xl | 균일한 둥근 모서리는 템플릿 느낌 |
|
||||
| 배경 gradient orb (blur-3xl 원형) | 모든 AI 랜딩 페이지에 있는 장식 |
|
||||
|
||||
## 색상
|
||||
### 배경
|
||||
| 용도 | 값 |
|
||||
|------|------|
|
||||
| 페이지 | {예: #0a0a0a} |
|
||||
| 카드 | {예: #141414} |
|
||||
|
||||
### 텍스트
|
||||
| 용도 | 값 |
|
||||
|------|------|
|
||||
| 주 텍스트 | {예: text-white} |
|
||||
| 본문 | {예: text-neutral-300} |
|
||||
| 보조 | {예: text-neutral-400} |
|
||||
| 비활성 | {예: text-neutral-500} |
|
||||
|
||||
### 데이터/시맨틱 색상
|
||||
| 용도 | 값 |
|
||||
|------|------|
|
||||
| {긍정/성공} | {예: #22c55e} |
|
||||
| {부정/에러} | {예: #ef4444} |
|
||||
| {중립/기본} | {예: #525252} |
|
||||
|
||||
## 컴포넌트
|
||||
### 카드
|
||||
```
|
||||
{예: rounded-lg bg-[#141414] border border-neutral-800 p-6}
|
||||
```
|
||||
|
||||
### 버튼
|
||||
```
|
||||
Primary: {예: rounded-lg bg-white text-black hover:bg-neutral-200}
|
||||
Text: {예: text-neutral-500 hover:text-neutral-300}
|
||||
```
|
||||
|
||||
### 입력 필드
|
||||
```
|
||||
{예: rounded-lg bg-neutral-900 border border-neutral-800 px-4 py-3}
|
||||
```
|
||||
|
||||
## 레이아웃
|
||||
- 전체 너비: {예: max-w-5xl}
|
||||
- 정렬: {예: 좌측 정렬 기본. 중앙 정렬 금지}
|
||||
- 간격: {예: gap-3~4, 섹션 간 space-y-8}
|
||||
|
||||
## 타이포그래피
|
||||
| 용도 | 스타일 |
|
||||
|------|--------|
|
||||
| 페이지 제목 | {예: text-4xl font-semibold text-white} |
|
||||
| 카드 제목 | {예: text-sm font-medium text-neutral-400} |
|
||||
| 본문 | {예: text-sm text-neutral-300 leading-relaxed} |
|
||||
|
||||
## 애니메이션
|
||||
- {허용할 애니메이션만 나열. 예: fade-in (0.4s), slide-up (0.5s)}
|
||||
- {그 외 모든 애니메이션 금지}
|
||||
|
||||
## 아이콘
|
||||
- {예: SVG 인라인, strokeWidth 1.5}
|
||||
- {예: 아이콘 컨테이너(둥근 배경 박스)로 감싸지 않는다}
|
||||
Reference in New Issue
Block a user