diff --git a/.editorconfig b/.editorconfig new file mode 100644 index 00000000..8c52ff93 --- /dev/null +++ b/.editorconfig @@ -0,0 +1,12 @@ +root = true + +[*] +charset = utf-8 +end_of_line = lf +indent_style = space +indent_size = 2 +insert_final_newline = true +trim_trailing_whitespace = true + +[*.md] +trim_trailing_whitespace = false diff --git a/.env.example b/.env.example index b88e8c9c..9173d68a 100644 --- a/.env.example +++ b/.env.example @@ -1,7 +1,7 @@ # file: .env.example # owner: duksan # created: 2025-09-22 11:15 UTC / 2025-09-22 20:15 KST -# updated: 2025-09-22 11:15 UTC / 2025-09-22 20:15 KST +# updated: 2025-09-23 06:33 UTC / 2025-09-23 15:33 KST # description: 샘플 환경 변수 파일(민감값은 비워두고 문서화 목적) # doc_refs: ["SECURITY.md", "THREAT_MODEL.md", "admin/plan/improvement-rounds.md"] @@ -25,3 +25,24 @@ STORAGE_BUCKET=gg-real STORAGE_ACCESS_KEY=your-access-key STORAGE_SECRET_KEY=your-secret-key +# Observability / Monitoring +ENABLE_SENTRY=false +SENTRY_DSN= +SENTRY_ENVIRONMENT=development +SENTRY_TRACES_SAMPLE_RATE=0.1 +SENTRY_PROFILES_SAMPLE_RATE=0.1 +ENABLE_OTEL=false +OTEL_SERVICE_NAME=gg-real-api +OTEL_EXPORTER_OTLP_ENDPOINT= +OTEL_EXPORTER_OTLP_HEADERS=Authorization=Bearer YOUR_TOKEN + +# Frontend Sentry +NEXT_PUBLIC_ENABLE_SENTRY=false +NEXT_PUBLIC_SENTRY_DSN= +NEXT_PUBLIC_SENTRY_ENVIRONMENT=development +NEXT_PUBLIC_SENTRY_TRACES_SAMPLE_RATE=0.1 +NEXT_PUBLIC_SENTRY_PROFILES_SAMPLE_RATE=0.1 + +# Optional Sentry project metadata +SENTRY_ORG= +SENTRY_PROJECT= diff --git a/.githooks/pre-commit b/.githooks/pre-commit index 1a07644d..cb89a07c 100755 --- a/.githooks/pre-commit +++ b/.githooks/pre-commit @@ -1,10 +1,48 @@ #!/usr/bin/env bash -# Git pre-commit hook: 문서 변경 포함 시 자동 체크포인트 생성 후 스테이징 +# Git pre-commit hook: 민감 파일 가드 + 문서 updated 자동 스탬프 + 문서 변경 시 체크포인트 set -euo pipefail # 현재 스테이징된 파일 목록 staged=$(git diff --cached --name-only --diff-filter=ACMR || true) +# [Guard] 비밀/민감 파일 스테이징 차단(.env/키/자격증명 등) +if [[ -n "$staged" ]]; then + # 차단 패턴 목록(확장 가능) + deny_patterns=( + '^\.env(\..*)?$' # .env, .env.* + '(^|/)\.env(\..*)?$' # any path/.env* + '\.pem$' # private keys + '\b(id_rsa|id_ecdsa|id_ed25519)(\.pub)?$' + '\.p8$' # Apple keys + '\bservice-account.*\.json$' + ) + for f in $staged; do + for pat in "${deny_patterns[@]}"; do + if [[ $f =~ $pat ]]; then + echo "[pre-commit][BLOCK] 민감 파일 스테이징 감지: $f" >&2 + echo "[pre-commit] 해당 파일은 .gitignore에 추가하고 커밋에서 제외하세요." >&2 + exit 1 + fi + done + done +fi + +# 문서 updated: 자동 스탬프(UTC/KST) +if [ -n "$staged" ]; then + if [ -x scripts/update_frontmatter_time.sh ]; then + bash scripts/update_frontmatter_time.sh >/dev/null 2>&1 || true + fi +fi + +# 핵심 검사: 문서/참조/마이그/코드헤더/사이드카 +if [ -n "$staged" ]; then + bash scripts/validate_docs.sh + bash scripts/validate_refs.sh + bash scripts/validate_migrations.sh + bash scripts/validate_code_headers.sh + bash scripts/validate_sidecar_meta.sh +fi + # 문서 변경이 있는지 검사(.md 또는 admin/docs 디렉토리 등) if echo "$staged" | grep -Eq '\.(md)$|^AGENTS\.md$|^admin/|^docs/'; then # 체크포인트 생성하고 파일을 커밋에 포함 diff --git a/.github/workflows/auto-enable-automerge.yml b/.github/workflows/auto-enable-automerge.yml new file mode 100644 index 00000000..8864c5f3 --- /dev/null +++ b/.github/workflows/auto-enable-automerge.yml @@ -0,0 +1,31 @@ +name: Auto Enable PR Auto-Merge + +on: + pull_request: + types: [opened, ready_for_review] + +permissions: + pull-requests: write + contents: read + +jobs: + enable-automerge: + if: ${{ github.event.pull_request.head.repo.full_name == github.repository }} + runs-on: ubuntu-latest + steps: + - name: Enable auto-merge (squash) + uses: actions/github-script@v7 + with: + script: | + const pr = context.payload.pull_request + try { + const query = `mutation($pr:ID!, $method: PullRequestMergeMethod!) { + enablePullRequestAutoMerge(input:{pullRequestId:$pr, mergeMethod:$method}) { + clientMutationId + } + }` + await github.graphql(query, { pr: pr.node_id, method: 'SQUASH' }) + core.info('Auto-merge enabled (SQUASH)') + } catch (e) { + core.warning('Auto-merge enable failed: ' + e.message) + } diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml new file mode 100644 index 00000000..1cd6f03b --- /dev/null +++ b/.github/workflows/build.yml @@ -0,0 +1,54 @@ +name: Build Pipeline + +on: + push: + branches: [main] + pull_request: + branches: [main] + +permissions: + contents: read + +jobs: + quality: + name: ${{ matrix.task }} + runs-on: ubuntu-latest + timeout-minutes: 60 + strategy: + fail-fast: false + matrix: + task: + - lint:root + - lint:web + - lint:api + - typecheck + - build:web + steps: + - name: Checkout + uses: actions/checkout@v4 + + - name: Setup pnpm + uses: pnpm/action-setup@v4 + with: + version: 9.12.0 + + - name: Setup Node + uses: actions/setup-node@v4 + with: + node-version-file: '.nvmrc' + cache: 'pnpm' + + - name: Install dependencies + run: pnpm install --frozen-lockfile + + - name: Build documents (verbose) + if: ${{ matrix.task == 'build:web' }} + run: pnpm --filter @gg-real/documents run build + + - name: Build web (verbose) + if: ${{ matrix.task == 'build:web' }} + run: pnpm --filter web run build + + - name: Run task (default) + if: ${{ matrix.task != 'build:web' }} + run: pnpm run ${{ matrix.task }} diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 44623170..e373b42c 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -13,6 +13,9 @@ jobs: - name: Checkout uses: actions/checkout@v4 + - name: Install ripgrep (rg) + run: sudo apt-get update && sudo apt-get install -y ripgrep + - name: Run secrets scan (strict) run: | chmod +x scripts/secrets_scan.sh || true @@ -23,12 +26,15 @@ jobs: steps: - name: Checkout uses: actions/checkout@v4 + with: + fetch-depth: 0 # gitleaks가 PR 범위를 계산할 수 있게 전체 히스토리 필요 - name: Run gitleaks uses: zricethezav/gitleaks-action@v2 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: - config-path: .gitleaks.toml - fail: true + args: "--source . --no-banner" summary: runs-on: ubuntu-latest diff --git a/.github/workflows/docs-validate.yml b/.github/workflows/docs-validate.yml index 4f19c5d3..d16c0bbb 100644 --- a/.github/workflows/docs-validate.yml +++ b/.github/workflows/docs-validate.yml @@ -2,9 +2,9 @@ name: Docs Validate on: push: - branches: [ main ] + branches: [main] pull_request: - branches: [ main ] + branches: [main] jobs: docs-validate: @@ -12,23 +12,43 @@ jobs: steps: - name: Checkout uses: actions/checkout@v4 + with: + fetch-depth: 0 + + - name: Setup pnpm + uses: pnpm/action-setup@v4 + with: + version: 9.12.0 + run_install: false - - name: Setup Node + - name: Setup Node 20 uses: actions/setup-node@v4 with: node-version: 20 + cache: 'pnpm' + + - name: Install dependencies + run: pnpm install --frozen-lockfile + + - name: Run precommit:meta (docs + refs) + run: pnpm -s precommit:meta + + - name: Run docs validator (full suite) + run: pnpm run validate:docs - - name: Install markdownlint-cli - run: npm i -g markdownlint-cli@0.38.0 + - name: Run cross-ref validator (R9) + run: pnpm run validate:refs - - name: Install ajv-cli and js-yaml - run: npm i -g ajv-cli@5.0.0 js-yaml@4.1.0 + - name: Run migration governance validator (R10) + run: pnpm exec bash scripts/validate_migrations.sh - - name: Run markdownlint (MD029 ordered) - run: markdownlint -q -c .markdownlint.json "**/*.md" + - name: Run code header validator (P1) + run: pnpm exec bash scripts/validate_code_headers.sh - - name: Run local docs validator - run: bash scripts/validate_docs.sh + - name: Run sidecar meta validator (P3) + env: + ALLOW_SIDECAR_MISSING: 'true' + run: pnpm exec bash scripts/validate_sidecar_meta.sh - name: Validate hub manifests against schema if: ${{ always() }} @@ -36,9 +56,11 @@ jobs: set -e shopt -s nullglob for f in admin/manifests/*.yaml; do + # Skip sidecar files like *.meta.yaml — they are validated separately + case "$f" in *.meta.yaml) continue ;; esac echo "Validating $f" - tmp=$(mktemp) - js-yaml "$f" > "$tmp" - ajv validate -s admin/schemas/hub.schema.json -d "$tmp" + tmp="$(mktemp).json" + pnpm exec js-yaml "$f" > "$tmp" + pnpm exec ajv validate -s admin/schemas/hub.schema.json -d "$tmp" rm -f "$tmp" done diff --git a/.gitignore b/.gitignore new file mode 100644 index 00000000..3f48a479 --- /dev/null +++ b/.gitignore @@ -0,0 +1,25 @@ +# Environment +.env + +# Node.js +node_modules/ +.pnpm-store/ +.pnp.* + +# Build outputs +.next/ +dist/ +build/ +out/ +coverage/ +.turbo/ + +# Logs and caches +npm-debug.log* +yarn-debug.log* +yarn-error.log* +pnpm-debug.log* +*.log +.DS_Store +.idea/ +.vscode/ diff --git a/.husky/pre-commit b/.husky/pre-commit new file mode 100755 index 00000000..279cc6f6 --- /dev/null +++ b/.husky/pre-commit @@ -0,0 +1,5 @@ +#!/usr/bin/env sh +set -e + +pnpm -s precommit:meta +pnpm exec lint-staged diff --git a/.nvmrc b/.nvmrc new file mode 100644 index 00000000..80a9956e --- /dev/null +++ b/.nvmrc @@ -0,0 +1 @@ +v20.16.0 diff --git a/.prettierignore b/.prettierignore new file mode 100644 index 00000000..01b42acd --- /dev/null +++ b/.prettierignore @@ -0,0 +1,8 @@ +# Auto-generated checkpoint snapshots +admin/checkpoints/** + +# pnpm lockfile formatting은 pnpm이 담당 +pnpm-lock.yaml + +# Git hooks 템플릿 등 바이너리성 스크립트 +.githooks/** diff --git a/AGENTS.md b/AGENTS.md index 97235038..5ecf27a0 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -3,51 +3,80 @@ file: AGENTS.md title: 에이전트 운영 규칙 owner: duksan created: 2025-09-22 07:45 UTC / 2025-09-22 16:45 KST -updated: 2025-09-22 09:22 UTC / 2025-09-22 18:22 KST +updated: 2025-09-22 17:53 UTC / 2025-09-23 02:53 KST status: active tags: [policy, language, workflow] schemaVersion: 1 description: 프로젝트 전반에 적용되는 운영 규칙과 회의모드 시그널 정의 +code_refs: + [ + 'scripts/validate_docs.sh', + 'scripts/checkpoint.sh', + 'scripts/session_boot.sh', + 'scripts/validate_refs.sh', + 'scripts/fix_checkpoints.sh', + 'scripts/update_frontmatter_time.sh', + 'scripts/update_frontmatter_time.js', + 'scripts/validate_sidecar_meta.sh', + 'scripts/validate_code_headers.sh', + 'scripts/backfill_metadata.sh', + 'scripts/gh_protect_main.sh', + 'scripts/gh_enable_automerge.sh', + ] --- # 1. 언어 정책 + - 사용자의 기본 언어는 한국어이다. - 모든 출력은 한국어 우선으로 하며, 필요한 경우에만 영어를 보조적으로 사용한다. # 2. 사용자 수준 + - 사용자는 컴퓨터 프로그래밍/바이브 코딩의 초보자이다. - 기술적 설명은 쉬운 비유와 예시를 통해 풀어서 설명한다. - 전문 용어가 나오면 반드시 풀어서 설명한다. # 3. 선택지 제시 + - 여러 선택지를 제시해야 할 경우, 반드시 우선순위를 명시한다. - 최우선 선택지는 “왜 이것부터 해야 하는지”를 사용자 눈높이에 맞춘 설명으로 제공한다. # 4. 사용자 발화 처리 + - 요청이 들어오면 곧바로 실행하지 않는다. - 먼저 사용자의 발화를 정리·재진술하여 “이렇게 이해했는데 맞습니까?”로 확인한다. - 실행이 필요한 경우, 반드시 실행 여부를 사용자에게 묻고 승인받은 후 진행한다. # 5. 파일 관리 및 체크포인트 + - 파일 생성/수정/삭제/이동이 발생하면 반드시 기록한다. - 모든 변경 사항은 `admin/checkpoints/`에 저장하여 추후 복구 가능하게 한다. # 6. 시간 기록 + - 모든 타임스탬프는 UTC와 한국 표준시(KST)를 동시에 기록한다. - 예: 2025-09-22 07:45 UTC / 2025-09-22 16:45 KST # 7. 회의모드 규칙 + - 사용자가 “회의모드”를 선언한 시점부터 “회의모드 해제”가 명시될 때까지, 에이전트는 어떠한 파일 생성/수정/삭제/실행을 수행하지 않는다. - 회의모드 해제 시그널은 다음 중 하나의 명시적 문구로 판단한다: “실행하라”, “반영하라”. - 해제 시그널이 없는 동안에는 제안/질의/설계 논의만 진행한다. 긴급 실행이 필요한 경우에도 사용자의 명시적 승인 문장을 먼저 받아야 한다. +# 7-1. 실행 후 자동 후속 조치(권장 작업) + +- 사용자가 실행을 승인하면, 에이전트는 안전한 권장 후속 작업(검증/체크포인트/문서화/CI 연동 등)을 추가 승인 없이 자동으로 수행한다. +- 단, 파괴적 변경(데이터 삭제/대규모 리팩터링/비가역 조치)이나 범위 확대는 별도 확인을 요청한다. + # 8. 동기화 확인(중대한 의사결정/변경) + - 큰 의사결정이나 변경 사항이 발생한 후에는, 에이전트가 반드시 다음과 같이 확인 질문을 한다: "깃 허브에 동기화 할까요?" - 사용자가 동의할 때에만 스테이징→커밋(UTC/KST 포함)→푸시를 수행한다. 동의가 없으면 대기한다. - 동의 후에는 `admin/checkpoints/`에 변경 요약과 파일 목록을 기록한다. - 회의모드 동안에는 쓰기 불가이므로 동기화 질문을 보류하며, 회의모드 해제 시(“실행하라/반영하라”) 다시 확인한다. # 9. 컴포넌트·단일책임·문서-코드 동기화 + - 컴포넌트화: 사용자가 보는 모든 웹페이지는 “기능 단위 컴포넌트”로 분리하여 디버깅 시 책임 범위를 명확히 한다. 재사용 가능한 UI는 `packages/ui`에 배치한다. - 단일 책임(1파일 1책임): 모든 코딩 관련 파일은 하나의 명확한 책임만 갖도록 설계한다. 파일이 과도하게 비대해질 경우, 하위 모듈/컴포넌트로 분리한다. - 문서-코드 동기화: 문서와 코드 사이의 추적성을 유지한다. @@ -57,6 +86,7 @@ description: 프로젝트 전반에 적용되는 운영 규칙과 회의모드 - 품질 게이트(후속): pre-commit 훅으로 프런트매터/헤더 주석의 존재를 검사하고, 누락 시 커밋을 차단한다. # 10. 세션 부팅 체크리스트(리부트 대비) + - 새 채팅/재기동 시 기본 모드는 회의모드다. “실행하라/반영하라” 수신 전까지 쓰기/명령 금지. - 부팅 순서(읽기 순서): 1. AGENTS.md 운영 규칙 확인 @@ -68,10 +98,21 @@ description: 프로젝트 전반에 적용되는 운영 규칙과 회의모드 - 위 순서를 완료한 후, 에이전트는 “현재 위치/다음 우선 작업”을 요약 보고한다. - 중대한 변경 제안 시에는 먼저 “깃 허브에 동기화 할까요?”라고 확인한다. +# 10-1. 자동 후속 실행 플래그 + +- admin/state/session.json의 `auto_followups: true`인 경우, 실행 승인 직후 후속 권장 작업을 자동 수행한다. + # 11. 문서 스타일 가이드(목록/우선순위 표기) + - 채팅/이슈/PR 코멘트 등 렌더러가 일정치 않은 환경에서는 자동 번호에 의존하지 않는다. - 우선순위 표기는 `P1)`, `P2)`, `P3)` 또는 `[P1]`, `[P2]` 형식을 사용한다. - 번호 목록은 `1) 2) 3)` 형태를 권장한다. - 문서(.md) 본문에서는 명시적으로 `1. 2. 3.` 형태를 사용하며, 같은 리스트 안에서 빈 줄로 분리하지 않는다. - 자동 번호(모든 항목을 1.로 작성) 사용은 금지한다. 편집기마다 다르게 표시될 수 있음. - 저장소 검증: markdownlint MD029 규칙을 `ordered`로 강제한다. 도구 부재 시 스크립트가 연속된 `1.` 반복을 경고한다. + +# 12. GitHub 운영 대행 + +- 모든 GitHub 관련 작업(브랜치 생성, PR 개설/업데이트, 리뷰 준비, 브랜치 보호 규칙 설정, 머지/동기화 등)은 에이전트가 전담한다. +- 사용자는 승인/지침만 제공하며, 에이전트는 실행 전 승인 절차(섹션 4, 8)를 준수한다. +- GitHub 설정 변경이나 자동화 스크립트 실행 후에는 결과를 요약 보고하고 필요 시 롤백 계획을 함께 제시한다. diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 00000000..5af83659 --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,75 @@ +--- +file: CHANGELOG.md +title: 변경 로그 +owner: duksan +created: 2025-09-22 14:22 UTC / 2025-09-22 23:22 KST +updated: 2025-09-23 06:36 UTC / 2025-09-23 15:36 KST +status: active +tags: [changelog, governance] +schemaVersion: 1 +description: 스키마/거버넌스 관련 변경을 포함한 변경 로그 +code_refs: ['scripts/validate_migrations.sh', 'admin/migrations/README.md'] +--- + +# 가이드 + +- 스키마(문서/코드 메타의 schemaVersion) 변경 시, 해당 변경과 함께 이 파일을 업데이트합니다. +- 각 항목에는 날짜(UTC/KST), 관련 파일, 요약, 마이그레이션 파일명을 포함합니다. + +# 2025-09-22 + +- 초기 도입(R10): 마이그레이션 거버넌스, 검증 스크립트, 템플릿 추가 + - scripts/validate_migrations.sh 추가 + - admin/migrations/README.md 및 templates 추가 + - docs-validate CI에 마이그 검증 추가 예정 + +# 2025-09-22 — Sprint 1 문서 기반 정리 + +- admin/templates/README.md 추가로 템플릿 사용 지침 문서화 +- doc/frontmatter · checkpoint 템플릿 정비 및 reciprocal code_refs 보강 +- basesettings.md의 M0-1, M0-2 완료 처리 +- scripts/checkpoint.sh 메타 검증 유지 확인 + +# 2025-09-22 — Sprint 2 샘플 데이터 채우기 + +- admin/data/ 디렉터리에 timeline.gantt.md, graph.json, kpi.md 추가 +- 샘플 데이터 README.md 작성 및 프런트매터 템플릿 링크 연동 +- basesettings.md의 M0-4 항목 완료 표시 + +# 2025-09-22 — Sprint 3 프론트 골조 세우기 + +- apps/web Next.js 14 부트스트랩 및 관리자 라우트(/admin/\*) 스켈레톤 추가 +- Markdown 로더(lib/content.ts)와 MarkdownContent 컴포넌트로 admin 문서/데이터 연결 +- 배포용 README 갱신, lint 스크립트 검증 + +# 2025-09-22 — Sprint 4 API 골조 구축 + +- apps/api NestJS Fastify 스켈레톤 추가 (/healthz, /ready, /metrics 구현) +- 관측 토글 파일(observability.ts)과 metrics service 도입 +- admin 문서(basesettings.md, m1-kickoff.md) 체크박스 업데이트, README 전환 + +# 2025-09-22 — Sprint 5 CI/거버넌스 강화 + +- build.yml에 web/api lint·build 매트릭스를 추가하고, lint:web/lint:api 스크립트 작성 +- apps/api README를 프런트매터 포맷으로 정리하고 health.spec.ts를 통해 헬스 엔드포인트 호출 점검 +- lint-staged 설정을 조정해 각 앱의 lint 명령이 프리커밋에서 자동 실행되도록 구성 + +# 2025-09-23 — Sprint 6 문서 검색 고도화 + +- `@gg-real/documents` 워크스페이스 라이브러리를 추가해 관리자 문서 메타 로딩 및 검색 로직을 공용화 +- Next.js `/admin/wiki`에 검색 패널과 `/api/documents/search` 라우트를 도입해 실시간 키워드·태그 검색 및 백링크 표시 지원 +- NestJS API에 `/documents/search` 엔드포인트와 문서 서비스 모듈을 추가해 UI·백엔드가 동일한 검색 엔진을 공유하도록 구성 + +# 2025-09-23 — Sprint 7 API 확장 및 테스트 + +- `/documents` 목록·필터 API와 `/documents/stats` 집계 API를 추가해 관리자 UI의 태그/상태 기반 탐색 토대를 마련 +- `@gg-real/documents` 패키지에 문서 목록/통계 유틸리티를 추가(listDocuments, calculateDocumentStats)하고 `list.ts`를 신설해 책임 분리 +- Next.js 콘텐츠 헬퍼에서 문서 요약·통계 함수를 노출해 향후 UI 연동을 준비하고, NestJS 문서 서비스가 신규 유틸리티를 활용하도록 리팩터링 +- dist 기반 스모크 테스트(`pnpm --filter api test:e2e`)를 구성해 목록/검색/통계 로직을 자동으로 검증 + +# 2025-09-23 — Sprint 8 관측/알람 실연동 + +- NestJS `configureObservability`에 Sentry/OTel 초기화를 구현하고 콘솔 또는 OTLP Exporter로 스팬을 전송하도록 구성 +- 전역 예외 필터(`SentryExceptionFilter`)로 서버 오류를 Sentry에 수집하고 종료 시 Sentry/OTel 리소스를 안전하게 정리 +- Next.js 앱에 `@sentry/nextjs` 설정을 추가하고 클라이언트/서버/Edge 런타임에서 토글 기반 Sentry 초기화를 제공 +- `.env.example`과 README들을 업데이트해 관측 관련 환경 변수와 사용법을 문서화 diff --git a/SECURITY.md b/SECURITY.md index 218fe8e6..24b0dd0e 100644 --- a/SECURITY.md +++ b/SECURITY.md @@ -8,6 +8,7 @@ status: active tags: [security, policy] schemaVersion: 1 description: 비밀정보 관리, 취약점 제보, 기본 보안 기준(헤더/CORS/레이트리밋) 요약 초안 +code_refs: ["scripts/secrets_scan.sh"] --- # 비밀정보 관리 @@ -23,5 +24,3 @@ description: 비밀정보 관리, 취약점 제보, 기본 보안 기준(헤더/ - 레이트리밋: IP/계정/라우트 단위 - 헤더: HSTS, CSP, Frame-Ancestors, Referrer-Policy, Permissions-Policy -# code_refs -- code_refs: ["scripts/secrets_scan.sh", ".gitleaks.toml", "apps/api/config/security.sample.json", ".github/workflows/ci.yml"] diff --git a/THREAT_MODEL.md b/THREAT_MODEL.md index 372eb376..49c1f607 100644 --- a/THREAT_MODEL.md +++ b/THREAT_MODEL.md @@ -8,6 +8,7 @@ status: active tags: [security, threat-model] schemaVersion: 1 description: STRIDE 관점의 핵심 위험과 통제 초안 +code_refs: ["scripts/secrets_scan.sh"] --- # 범위 @@ -21,5 +22,3 @@ description: STRIDE 관점의 핵심 위험과 통제 초안 - Denial of Service: 레이트리밋, 요청 크기 제한, 재시도 폭주 방지 - Elevation of Privilege: RBAC, 관리자 경로 보호, 코드 리뷰 필수 -# code_refs -- code_refs: ["scripts/secrets_scan.sh", ".github/workflows/ci.yml"] diff --git a/admin/checkpoints/20250922-0736-UTC_1636-KST.md.bak b/admin/checkpoints/20250922-0736-UTC_1636-KST.md.bak new file mode 100644 index 00000000..abb64bf8 --- /dev/null +++ b/admin/checkpoints/20250922-0736-UTC_1636-KST.md.bak @@ -0,0 +1,19 @@ +--- +file: admin/checkpoints/20250922-0736-UTC_1636-KST.md +title: 체크포인트 - basesettings.md 생성 +owner: duksan +created: 2025-09-22 07:36 UTC / 2025-09-22 16:36 KST +updated: 2025-09-22 07:36 UTC / 2025-09-22 16:36 KST +status: completed +tags: [checkpoint, bootstrap] +description: 기준 문서 생성 기록 및 변경 목록 +--- + +## 변경 요약 +- 기준 문서 `basesettings.md` 신규 생성(베이스 실행 계획/체크리스트/완료 기준 포함) + +## 생성 파일 +- basesettings.md + +## 참고 +- 향후 스캐폴딩(M0-1~3) 단계에서 admin/* 문서/템플릿 추가 예정 diff --git a/admin/checkpoints/20250922-0745-UTC_1645-KST.md.bak b/admin/checkpoints/20250922-0745-UTC_1645-KST.md.bak new file mode 100644 index 00000000..659b3b35 --- /dev/null +++ b/admin/checkpoints/20250922-0745-UTC_1645-KST.md.bak @@ -0,0 +1,21 @@ +--- +file: admin/checkpoints/20250922-0745-UTC_1645-KST.md +title: 체크포인트 - 아키텍처 반영 및 회의모드 규칙 추가 +owner: duksan +created: 2025-09-22 07:45 UTC / 2025-09-22 16:45 KST +updated: 2025-09-22 07:45 UTC / 2025-09-22 16:45 KST +status: completed +tags: [checkpoint, architecture, policy] +description: basesettings.md 보강(백엔드/프론트/호스팅/성능/AI 파이프라인) 및 AGENTS.md 회의모드 규칙 추가 +--- + +## 변경 요약 +- basesettings.md: 백엔드·프론트엔드·미들웨어·호스팅 맵, 성능 목표, AI/임베딩 파이프라인, PWA 체크리스트 등 추가 및 갱신 +- AGENTS.md: 회의모드 규칙(해제 시그널 "실행하라"/"반영하라") 명시, 기존 정책 정리 + +## 변경/신규 파일 +- M basesettings.md +- A AGENTS.md + +## 참고 +- 다음 단계: M0 스캐폴딩(admin 구조/템플릿, 샘플 간트/그래프, 체크포인트 스크립트) diff --git a/admin/checkpoints/20250922-0749-UTC_1649-KST.md.bak b/admin/checkpoints/20250922-0749-UTC_1649-KST.md.bak new file mode 100644 index 00000000..ff27516a --- /dev/null +++ b/admin/checkpoints/20250922-0749-UTC_1649-KST.md.bak @@ -0,0 +1,17 @@ +--- +file: admin/checkpoints/20250922-0749-UTC_1649-KST.md +title: 체크포인트 - AGENTS.md 동기화 확인 규칙 추가 +owner: duksan +created: 2025-09-22 07:49 UTC / 2025-09-22 16:49 KST +updated: 2025-09-22 07:49 UTC / 2025-09-22 16:49 KST +status: completed +tags: [checkpoint, policy] +description: 중대한 의사결정/변경 후 "깃 허브에 동기화 할까요?" 확인 규칙 신설 +--- + +## 변경 요약 +- AGENTS.md에 “동기화 확인(중대한 의사결정/변경)” 조항(#8) 추가 및 타임스탬프 갱신 + +## 변경/신규 파일 +- M AGENTS.md + diff --git a/admin/checkpoints/20250922-0751-UTC_1651-KST.md.bak b/admin/checkpoints/20250922-0751-UTC_1651-KST.md.bak new file mode 100644 index 00000000..27624995 --- /dev/null +++ b/admin/checkpoints/20250922-0751-UTC_1651-KST.md.bak @@ -0,0 +1,18 @@ +--- +file: admin/checkpoints/20250922-0751-UTC_1651-KST.md +title: 체크포인트 - 실행 순서 수정(권장안 반영) +owner: duksan +created: 2025-09-22 07:51 UTC / 2025-09-22 16:51 KST +updated: 2025-09-22 07:51 UTC / 2025-09-22 16:51 KST +status: completed +tags: [checkpoint, plan] +description: basesettings.md의 실행 순서/완료 기준을 권장 수정안으로 업데이트 +--- + +## 변경 요약 +- 실행 순서에 M0-0(모노레포/도구), M0-3(CI 베이스), M1-5(API 스켈레톤), M1-6(관측) 등을 추가하고 의존성 최적화 +- 완료 기준에 CI/헬스체크/OpenAPI/관측 항목 추가 + +## 변경/신규 파일 +- M basesettings.md + diff --git a/admin/checkpoints/20250922-0757-UTC_1657-KST.md.bak b/admin/checkpoints/20250922-0757-UTC_1657-KST.md.bak new file mode 100644 index 00000000..21adb85a --- /dev/null +++ b/admin/checkpoints/20250922-0757-UTC_1657-KST.md.bak @@ -0,0 +1,18 @@ +--- +file: admin/checkpoints/20250922-0757-UTC_1657-KST.md +title: 체크포인트 - 컴포넌트/단일책임/문서-코드 동기화 규칙 반영 +owner: duksan +created: 2025-09-22 07:57 UTC / 2025-09-22 16:57 KST +updated: 2025-09-22 07:57 UTC / 2025-09-22 16:57 KST +status: completed +tags: [checkpoint, policy, design] +description: AGENTS.md 규칙 확장 및 basesettings.md에 설계 원칙 섹션 추가 +--- + +## 변경 요약 +- AGENTS.md: 컴포넌트화, 1파일 1책임, 문서-코드 상호 참조 규칙 추가 +- basesettings.md: 설계 원칙 섹션 추가 및 타임스탬프 갱신 + +## 변경/신규 파일 +- M AGENTS.md +- M basesettings.md diff --git a/admin/checkpoints/20250922-0812-UTC_1712-KST.md.bak b/admin/checkpoints/20250922-0812-UTC_1712-KST.md.bak new file mode 100644 index 00000000..8604fbf8 --- /dev/null +++ b/admin/checkpoints/20250922-0812-UTC_1712-KST.md.bak @@ -0,0 +1,20 @@ +--- +file: admin/checkpoints/20250922-0812-UTC_1712-KST.md +title: 체크포인트 - 개선 라운드 문서 생성 및 Round 1 완료 +owner: duksan +created: 2025-09-22 08:12 UTC / 2025-09-22 17:12 KST +updated: 2025-09-22 08:12 UTC / 2025-09-22 17:12 KST +status: completed +tags: [checkpoint, improvement] +description: improvement-rounds.md 생성, SoT(state/config) 추가, Round 1 체크 완료 +--- + +## 변경 요약 +- admin/plan/improvement-rounds.md 생성 및 Round 1 체크 완료 +- admin/state/project.json, admin/config/status.yaml, admin/config/taxonomy.yaml 추가 + +## 생성/변경 파일 +- A admin/plan/improvement-rounds.md +- A admin/state/project.json +- A admin/config/status.yaml +- A admin/config/taxonomy.yaml diff --git a/admin/checkpoints/20250922-0821-UTC_1721-KST.md.bak b/admin/checkpoints/20250922-0821-UTC_1721-KST.md.bak new file mode 100644 index 00000000..583e6911 --- /dev/null +++ b/admin/checkpoints/20250922-0821-UTC_1721-KST.md.bak @@ -0,0 +1,16 @@ +--- +file: admin/checkpoints/20250922-0821-UTC_1721-KST.md +title: 체크포인트 - 라운드 계획에 호환성/보안/최신 환경 기준 반영 +owner: duksan +created: 2025-09-22 08:21 UTC / 2025-09-22 17:21 KST +updated: 2025-09-22 08:21 UTC / 2025-09-22 17:21 KST +status: completed +tags: [checkpoint, compatibility, security, devx] +description: improvement-rounds.md에 최고 수준 호환성·보안·개발환경 기준 추가 및 라운드 3/7/8 확장 +--- + +## 변경 요약 +- admin/plan/improvement-rounds.md 업데이트: 호환성/보안/개발환경 기준 섹션 추가, Round 3/7/8 항목 확장 + +## 변경/신규 파일 +- M admin/plan/improvement-rounds.md diff --git a/admin/checkpoints/20250922-0826-UTC_1726-KST.md.bak b/admin/checkpoints/20250922-0826-UTC_1726-KST.md.bak new file mode 100644 index 00000000..47ab45dc --- /dev/null +++ b/admin/checkpoints/20250922-0826-UTC_1726-KST.md.bak @@ -0,0 +1,19 @@ +--- +file: admin/checkpoints/20250922-0826-UTC_1726-KST.md +title: 체크포인트 - 라운드 2~4 실행(MVP) 완료 +owner: duksan +created: 2025-09-22 08:26 UTC / 2025-09-22 17:26 KST +updated: 2025-09-22 08:26 UTC / 2025-09-22 17:26 KST +status: completed +tags: [checkpoint, rounds] +description: decisions/index.md, 검증 스크립트, 세션 부팅/상태 파일 추가 및 improvement-rounds 체크 갱신 +--- + +## 생성/변경 파일 +- A admin/decisions/index.md +- A scripts/validate_docs.sh +- A scripts/validate_refs.sh +- A scripts/session_boot.sh +- A admin/state/session.json +- M admin/plan/improvement-rounds.md (Round 2~4 체크) + diff --git a/admin/checkpoints/20250922-0902-UTC_1802-KST.md.bak b/admin/checkpoints/20250922-0902-UTC_1802-KST.md.bak new file mode 100644 index 00000000..c0057da8 --- /dev/null +++ b/admin/checkpoints/20250922-0902-UTC_1802-KST.md.bak @@ -0,0 +1,14 @@ +--- +file: admin/checkpoints/20250922-0902-UTC_1802-KST.md +title: 체크포인트 - 세션 부팅 규칙 추가 및 meeting 모드 설정 +owner: duksan +created: 2025-09-22 09:02 UTC / 2025-09-22 18:02 KST +updated: 2025-09-22 09:02 UTC / 2025-09-22 18:02 KST +status: completed +tags: [checkpoint, session, policy] +description: AGENTS.md에 세션 부팅 체크리스트 추가, session.json을 meeting 모드로 갱신 +--- + +## 변경/신규 파일 +- M AGENTS.md +- M admin/state/session.json diff --git a/admin/checkpoints/20250922-1134-UTC_2034-KST.md b/admin/checkpoints/20250922-1134-UTC_2034-KST.md new file mode 100644 index 00000000..58459b19 --- /dev/null +++ b/admin/checkpoints/20250922-1134-UTC_2034-KST.md @@ -0,0 +1,39 @@ +--- +file: admin/checkpoints/20250922-1134-UTC_2034-KST.md +title: 체크포인트 - 변경 자동 수집(12건) +owner: duksan +created: 2025-09-22 11:34 UTC / 2025-09-22 20:34 KST +updated: 2025-09-22 11:34 UTC / 2025-09-22 20:34 KST +status: completed +tags: [checkpoint, automation] +schemaVersion: 1 +description: git status 기반으로 변경 파일을 자동 수집하여 체크포인트를 생성. branch=chore/branch-protection-warmup, head=df61b5d +--- + +## 변경 파일 요약 +- 브랜치: chore/branch-protection-warmup +- HEAD: df61b5d +- 변경 수: 12 + +## Added(10) +- admin/checkpoints/20250922-0736-UTC_1636-KST.md.bak +- admin/checkpoints/20250922-0745-UTC_1645-KST.md.bak +- admin/checkpoints/20250922-0749-UTC_1649-KST.md.bak +- admin/checkpoints/20250922-0751-UTC_1651-KST.md.bak +- admin/checkpoints/20250922-0757-UTC_1657-KST.md.bak +- admin/checkpoints/20250922-0812-UTC_1712-KST.md.bak +- admin/checkpoints/20250922-0821-UTC_1721-KST.md.bak +- admin/checkpoints/20250922-0826-UTC_1726-KST.md.bak +- admin/checkpoints/20250922-0902-UTC_1802-KST.md.bak +- scripts/.keep + +## Modified(2) +- scripts/checkpoint.sh +- scripts/secrets_scan.sh + +## Deleted(0) + +## Renamed(0) + +## 비고 +- 이 파일은 scripts/checkpoint.sh로 생성되었습니다. diff --git a/admin/checkpoints/20250922-1345-UTC_2245-KST.md b/admin/checkpoints/20250922-1345-UTC_2245-KST.md new file mode 100644 index 00000000..d8685eab --- /dev/null +++ b/admin/checkpoints/20250922-1345-UTC_2245-KST.md @@ -0,0 +1,19 @@ +--- +file: admin/checkpoints/20250922-1345-UTC_2245-KST.md +title: 체크포인트 - PR 자동 머지 세팅(Allow auto-merge + 워크플로우) +owner: duksan +created: 2025-09-22 13:45 UTC / 2025-09-22 22:45 KST +updated: 2025-09-22 13:45 UTC / 2025-09-22 22:45 KST +status: completed +tags: [checkpoint, ci, automerge] +schemaVersion: 1 +description: 레포 Auto-merge 활성화 스크립트 추가, PR 생성 시 자동으로 Auto-merge를 켜주는 워크플로우 추가 +--- + +## 변경/신규 파일 +- A .github/workflows/auto-enable-automerge.yml +- A scripts/gh_enable_automerge.sh + +## 비고 +- 저장소 설정에서 Allow auto-merge가 꺼져 있으면 gh_enable_automerge.sh로 켤 수 있습니다. +- 워크플로우는 같은 레포 내부 브랜치에서 열린 PR에만 자동 적용됩니다. diff --git a/admin/checkpoints/20250922-1347-UTC_2247-KST.md b/admin/checkpoints/20250922-1347-UTC_2247-KST.md new file mode 100644 index 00000000..a0e99809 --- /dev/null +++ b/admin/checkpoints/20250922-1347-UTC_2247-KST.md @@ -0,0 +1,31 @@ +--- +file: admin/checkpoints/20250922-1347-UTC_2247-KST.md +title: 체크포인트 - 변경 자동 수집(4건) +owner: duksan +created: 2025-09-22 13:47 UTC / 2025-09-22 22:47 KST +updated: 2025-09-22 13:47 UTC / 2025-09-22 22:47 KST +status: completed +tags: [checkpoint, automation] +schemaVersion: 1 +description: git status 기반으로 변경 파일을 자동 수집하여 체크포인트를 생성. branch=chore/branch-protection-warmup, head=92ef3a2 +--- + +## 변경 파일 요약 +- 브랜치: chore/branch-protection-warmup +- HEAD: 92ef3a2 +- 변경 수: 4 + +## Added(3) +- .github/workflows/auto-enable-automerge.yml +- admin/checkpoints/20250922-1345-UTC_2245-KST.md +- scripts/gh_enable_automerge.sh + +## Modified(1) +- scripts/gh_protect_main.sh + +## Deleted(0) + +## Renamed(0) + +## 비고 +- 이 파일은 scripts/checkpoint.sh로 생성되었습니다. diff --git a/admin/checkpoints/20250922-1407-UTC_2307-KST.md b/admin/checkpoints/20250922-1407-UTC_2307-KST.md new file mode 100644 index 00000000..906c0d16 --- /dev/null +++ b/admin/checkpoints/20250922-1407-UTC_2307-KST.md @@ -0,0 +1,37 @@ +--- +file: admin/checkpoints/20250922-1407-UTC_2307-KST.md +title: 체크포인트 - 변경 자동 수집(10건) +owner: duksan +created: 2025-09-22 14:07 UTC / 2025-09-22 23:07 KST +updated: 2025-09-22 14:07 UTC / 2025-09-22 23:07 KST +status: completed +tags: [checkpoint, automation] +schemaVersion: 1 +description: git status 기반으로 변경 파일을 자동 수집하여 체크포인트를 생성. branch=chore/branch-protection-warmup, head=47f6fbd +--- + +## 변경 파일 요약 +- 브랜치: chore/branch-protection-warmup +- HEAD: 47f6fbd +- 변경 수: 10 + +## Added(0) + +## Modified(10) +- AGENTS.md +- SECURITY.md +- THREAT_MODEL.md +- admin/plan/improvement-rounds.md +- basesettings.md +- docs/style-guides/markdown.md +- scripts/checkpoint.sh +- scripts/session_boot.sh +- scripts/validate_docs.sh +- scripts/validate_refs.sh + +## Deleted(0) + +## Renamed(0) + +## 비고 +- 이 파일은 scripts/checkpoint.sh로 생성되었습니다. diff --git a/admin/checkpoints/20250922-1410-UTC_2310-KST.md b/admin/checkpoints/20250922-1410-UTC_2310-KST.md new file mode 100644 index 00000000..f9fa53f8 --- /dev/null +++ b/admin/checkpoints/20250922-1410-UTC_2310-KST.md @@ -0,0 +1,39 @@ +--- +file: admin/checkpoints/20250922-1410-UTC_2310-KST.md +title: 체크포인트 - 변경 자동 수집(12건) +owner: duksan +created: 2025-09-22 14:10 UTC / 2025-09-22 23:10 KST +updated: 2025-09-22 14:10 UTC / 2025-09-22 23:10 KST +status: completed +tags: [checkpoint, automation] +schemaVersion: 1 +description: git status 기반으로 변경 파일을 자동 수집하여 체크포인트를 생성. branch=chore/branch-protection-warmup, head=47f6fbd +--- + +## 변경 파일 요약 +- 브랜치: chore/branch-protection-warmup +- HEAD: 47f6fbd +- 변경 수: 12 + +## Added(2) +- .env +- admin/checkpoints/20250922-1407-UTC_2307-KST.md + +## Modified(10) +- AGENTS.md +- SECURITY.md +- THREAT_MODEL.md +- admin/plan/improvement-rounds.md +- basesettings.md +- docs/style-guides/markdown.md +- scripts/checkpoint.sh +- scripts/session_boot.sh +- scripts/validate_docs.sh +- scripts/validate_refs.sh + +## Deleted(0) + +## Renamed(0) + +## 비고 +- 이 파일은 scripts/checkpoint.sh로 생성되었습니다. diff --git a/admin/checkpoints/20250922-1411-UTC_2311-KST.md b/admin/checkpoints/20250922-1411-UTC_2311-KST.md new file mode 100644 index 00000000..dcb43c18 --- /dev/null +++ b/admin/checkpoints/20250922-1411-UTC_2311-KST.md @@ -0,0 +1,27 @@ +--- +file: admin/checkpoints/20250922-1411-UTC_2311-KST.md +title: 체크포인트 - 변경 자동 수집(0건) +owner: duksan +created: 2025-09-22 14:11 UTC / 2025-09-22 23:11 KST +updated: 2025-09-22 14:11 UTC / 2025-09-22 23:11 KST +status: completed +tags: [checkpoint, automation] +schemaVersion: 1 +description: git status 기반으로 변경 파일을 자동 수집하여 체크포인트를 생성. branch=chore/branch-protection-warmup, head=eaacd51 +--- + +## 변경 파일 요약 +- 브랜치: chore/branch-protection-warmup +- HEAD: eaacd51 +- 변경 수: 0 + +## Added(0) + +## Modified(0) + +## Deleted(0) + +## Renamed(0) + +## 비고 +- 이 파일은 scripts/checkpoint.sh로 생성되었습니다. diff --git a/admin/checkpoints/20250922-1412-UTC_2312-KST.md b/admin/checkpoints/20250922-1412-UTC_2312-KST.md new file mode 100644 index 00000000..53800ea8 --- /dev/null +++ b/admin/checkpoints/20250922-1412-UTC_2312-KST.md @@ -0,0 +1,30 @@ +--- +file: admin/checkpoints/20250922-1412-UTC_2312-KST.md +title: 체크포인트 - 변경 자동 수집(3건) +owner: duksan +created: 2025-09-22 14:12 UTC / 2025-09-22 23:12 KST +updated: 2025-09-22 14:12 UTC / 2025-09-22 23:12 KST +status: completed +tags: [checkpoint, automation] +schemaVersion: 1 +description: git status 기반으로 변경 파일을 자동 수집하여 체크포인트를 생성. branch=chore/branch-protection-warmup, head=eaacd51 +--- + +## 변경 파일 요약 +- 브랜치: chore/branch-protection-warmup +- HEAD: eaacd51 +- 변경 수: 3 + +## Added(2) +- admin/checkpoints/20250922-1411-UTC_2311-KST.md +- admin/checkpoints/20250922-1412-UTC_2312-KST.md + +## Modified(1) +- .github/workflows/docs-validate.yml + +## Deleted(0) + +## Renamed(0) + +## 비고 +- 이 파일은 scripts/checkpoint.sh로 생성되었습니다. diff --git a/admin/checkpoints/20250922-1416-UTC_2316-KST.md b/admin/checkpoints/20250922-1416-UTC_2316-KST.md new file mode 100644 index 00000000..fe021a72 --- /dev/null +++ b/admin/checkpoints/20250922-1416-UTC_2316-KST.md @@ -0,0 +1,33 @@ +--- +file: admin/checkpoints/20250922-1416-UTC_2316-KST.md +title: 체크포인트 - 변경 자동 수집(6건) +owner: duksan +created: 2025-09-22 14:16 UTC / 2025-09-22 23:16 KST +updated: 2025-09-22 14:16 UTC / 2025-09-22 23:16 KST +status: completed +tags: [checkpoint, automation] +schemaVersion: 1 +description: git status 기반으로 변경 파일을 자동 수집하여 체크포인트를 생성. branch=chore/branch-protection-warmup, head=5dfd2d0 +--- + +## 변경 파일 요약 +- 브랜치: chore/branch-protection-warmup +- HEAD: 5dfd2d0 +- 변경 수: 6 + +## Added(4) +- admin/checkpoints/20250922-1416-UTC_2316-KST.md +- admin/templates/code-header.sh.tmpl +- admin/templates/code-header.ts.tmpl +- admin/templates/doc-frontmatter.md + +## Modified(2) +- .githooks/pre-commit +- scripts/validate_refs.sh + +## Deleted(0) + +## Renamed(0) + +## 비고 +- 이 파일은 scripts/checkpoint.sh로 생성되었습니다. diff --git a/admin/checkpoints/20250922-1419-UTC_2319-KST.md b/admin/checkpoints/20250922-1419-UTC_2319-KST.md new file mode 100644 index 00000000..3b0e30d8 --- /dev/null +++ b/admin/checkpoints/20250922-1419-UTC_2319-KST.md @@ -0,0 +1,29 @@ +--- +file: admin/checkpoints/20250922-1419-UTC_2319-KST.md +title: 체크포인트 - 변경 자동 수집(2건) +owner: duksan +created: 2025-09-22 14:19 UTC / 2025-09-22 23:19 KST +updated: 2025-09-22 14:19 UTC / 2025-09-22 23:19 KST +status: completed +tags: [checkpoint, automation] +schemaVersion: 1 +description: git status 기반으로 변경 파일을 자동 수집하여 체크포인트를 생성. branch=chore/branch-protection-warmup, head=b92c2b0 +--- + +## 변경 파일 요약 +- 브랜치: chore/branch-protection-warmup +- HEAD: b92c2b0 +- 변경 수: 2 + +## Added(1) +- admin/checkpoints/20250922-1419-UTC_2319-KST.md + +## Modified(1) +- admin/plan/improvement-rounds.md + +## Deleted(0) + +## Renamed(0) + +## 비고 +- 이 파일은 scripts/checkpoint.sh로 생성되었습니다. diff --git a/admin/checkpoints/20250922-1422-UTC_2322-KST.md b/admin/checkpoints/20250922-1422-UTC_2322-KST.md new file mode 100644 index 00000000..472461f3 --- /dev/null +++ b/admin/checkpoints/20250922-1422-UTC_2322-KST.md @@ -0,0 +1,36 @@ +--- +file: admin/checkpoints/20250922-1422-UTC_2322-KST.md +title: 체크포인트 - 변경 자동 수집(9건) +owner: duksan +created: 2025-09-22 14:22 UTC / 2025-09-22 23:22 KST +updated: 2025-09-22 14:22 UTC / 2025-09-22 23:22 KST +status: completed +tags: [checkpoint, automation] +schemaVersion: 1 +description: git status 기반으로 변경 파일을 자동 수집하여 체크포인트를 생성. branch=chore/branch-protection-warmup, head=4be5eb9 +--- + +## 변경 파일 요약 +- 브랜치: chore/branch-protection-warmup +- HEAD: 4be5eb9 +- 변경 수: 9 + +## Added(6) +- CHANGELOG.md +- admin/checkpoints/20250922-1422-UTC_2322-KST.md +- admin/migrations/README.md +- admin/migrations/templates/migration.md.tmpl +- admin/migrations/templates/migration.sh.tmpl +- scripts/validate_migrations.sh + +## Modified(3) +- .github/workflows/docs-validate.yml +- admin/plan/improvement-rounds.md +- scripts/validate_refs.sh + +## Deleted(0) + +## Renamed(0) + +## 비고 +- 이 파일은 scripts/checkpoint.sh로 생성되었습니다. diff --git a/admin/checkpoints/20250922-1426-UTC_2326-KST.md b/admin/checkpoints/20250922-1426-UTC_2326-KST.md new file mode 100644 index 00000000..2ac7fe51 --- /dev/null +++ b/admin/checkpoints/20250922-1426-UTC_2326-KST.md @@ -0,0 +1,30 @@ +--- +file: admin/checkpoints/20250922-1426-UTC_2326-KST.md +title: 체크포인트 - 변경 자동 수집(3건) +owner: duksan +created: 2025-09-22 14:26 UTC / 2025-09-22 23:26 KST +updated: 2025-09-22 14:26 UTC / 2025-09-22 23:26 KST +status: completed +tags: [checkpoint, automation] +schemaVersion: 1 +description: git status 기반으로 변경 파일을 자동 수집하여 체크포인트를 생성. branch=chore/branch-protection-warmup, head=6a17afc +--- + +## 변경 파일 요약 +- 브랜치: chore/branch-protection-warmup +- HEAD: 6a17afc +- 변경 수: 3 + +## Added(1) +- admin/checkpoints/20250922-1426-UTC_2326-KST.md + +## Modified(2) +- AGENTS.md +- admin/state/session.json + +## Deleted(0) + +## Renamed(0) + +## 비고 +- 이 파일은 scripts/checkpoint.sh로 생성되었습니다. diff --git a/admin/checkpoints/20250922-1430-UTC_2330-KST.md b/admin/checkpoints/20250922-1430-UTC_2330-KST.md new file mode 100644 index 00000000..e78f5806 --- /dev/null +++ b/admin/checkpoints/20250922-1430-UTC_2330-KST.md @@ -0,0 +1,34 @@ +--- +file: admin/checkpoints/20250922-1430-UTC_2330-KST.md +title: 체크포인트 - 변경 자동 수집(7건) +owner: duksan +created: 2025-09-22 14:30 UTC / 2025-09-22 23:30 KST +updated: 2025-09-22 14:30 UTC / 2025-09-22 23:30 KST +status: completed +tags: [checkpoint, automation] +schemaVersion: 1 +description: git status 기반으로 변경 파일을 자동 수집하여 체크포인트를 생성. branch=chore/branch-protection-warmup, head=3f025b0 +--- + +## 변경 파일 요약 +- 브랜치: chore/branch-protection-warmup +- HEAD: 3f025b0 +- 변경 수: 7 + +## Added(3) +- admin/checkpoints/20250922-1430-UTC_2330-KST.md +- admin/runbooks/release.md +- admin/runbooks/rollback.md + +## Modified(4) +- admin/plan/improvement-rounds.md +- scripts/validate_docs.sh +- scripts/validate_migrations.sh +- scripts/validate_refs.sh + +## Deleted(0) + +## Renamed(0) + +## 비고 +- 이 파일은 scripts/checkpoint.sh로 생성되었습니다. diff --git a/admin/checkpoints/20250922-1456-UTC_2356-KST.md b/admin/checkpoints/20250922-1456-UTC_2356-KST.md new file mode 100644 index 00000000..4e37513e --- /dev/null +++ b/admin/checkpoints/20250922-1456-UTC_2356-KST.md @@ -0,0 +1,50 @@ +--- +file: admin/checkpoints/20250922-1456-UTC_2356-KST.md +title: 체크포인트 - 변경 자동 수집(23건) +owner: duksan +created: 2025-09-22 14:56 UTC / 2025-09-22 23:56 KST +updated: 2025-09-22 14:56 UTC / 2025-09-22 23:56 KST +status: completed +tags: [checkpoint, automation] +schemaVersion: 1 +description: git status 기반으로 변경 파일을 자동 수집하여 체크포인트를 생성. branch=chore/branch-protection-warmup, head=28145a7 +--- + +## 변경 파일 요약 +- 브랜치: chore/branch-protection-warmup +- HEAD: 28145a7 +- 변경 수: 23 + +## Added(12) +- admin/checkpoints/20250922-1456-UTC_2356-KST.md +- admin/manifests/contenthub-admin-ui.yaml.meta.yaml +- admin/manifests/contenthub-docs.yaml.meta.yaml +- admin/schemas/hub.schema.json.meta.yaml +- admin/state/project.json.meta.yaml +- admin/state/session.json.meta.yaml +- apps/api/config/security.sample.json.meta.yaml +- scripts/.keep.meta.yaml +- scripts/backfill_metadata.sh +- scripts/update_frontmatter_time.sh +- scripts/validate_code_headers.sh +- scripts/validate_sidecar_meta.sh + +## Modified(11) +- .githooks/pre-commit +- .github/workflows/docs-validate.yml +- AGENTS.md +- admin/plan/improvement-rounds.md +- admin/templates/code-header.sh.tmpl +- admin/templates/code-header.ts.tmpl +- admin/templates/doc-frontmatter.md +- docs/style-guides/markdown.md +- scripts/validate_docs.sh +- scripts/validate_migrations.sh +- scripts/validate_refs.sh + +## Deleted(0) + +## Renamed(0) + +## 비고 +- 이 파일은 scripts/checkpoint.sh로 생성되었습니다. diff --git a/admin/checkpoints/20250922-1459-UTC_2359-KST.md b/admin/checkpoints/20250922-1459-UTC_2359-KST.md new file mode 100644 index 00000000..f6c6435f --- /dev/null +++ b/admin/checkpoints/20250922-1459-UTC_2359-KST.md @@ -0,0 +1,29 @@ +--- +file: admin/checkpoints/20250922-1459-UTC_2359-KST.md +title: 체크포인트 - 변경 자동 수집(2건) +owner: duksan +created: 2025-09-22 14:59 UTC / 2025-09-22 23:59 KST +updated: 2025-09-22 14:59 UTC / 2025-09-22 23:59 KST +status: completed +tags: [checkpoint, automation] +schemaVersion: 1 +description: git status 기반으로 변경 파일을 자동 수집하여 체크포인트를 생성. branch=chore/branch-protection-warmup, head=fe2542d +--- + +## 변경 파일 요약 +- 브랜치: chore/branch-protection-warmup +- HEAD: fe2542d +- 변경 수: 2 + +## Added(1) +- admin/checkpoints/20250922-1459-UTC_2359-KST.md + +## Modified(1) +- admin/plan/improvement-rounds.md + +## Deleted(0) + +## Renamed(0) + +## 비고 +- 이 파일은 scripts/checkpoint.sh로 생성되었습니다. diff --git a/admin/checkpoints/20250922-1506-UTC_0006-KST.md b/admin/checkpoints/20250922-1506-UTC_0006-KST.md new file mode 100644 index 00000000..f47d7026 --- /dev/null +++ b/admin/checkpoints/20250922-1506-UTC_0006-KST.md @@ -0,0 +1,35 @@ +--- +file: admin/checkpoints/20250922-1506-UTC_0006-KST.md +title: 체크포인트 - 변경 자동 수집(8건) +owner: duksan +created: 2025-09-22 15:06 UTC / 2025-09-23 00:06 KST +updated: 2025-09-22 15:06 UTC / 2025-09-23 00:06 KST +status: completed +tags: [checkpoint, automation] +schemaVersion: 1 +description: git status 기반으로 변경 파일을 자동 수집하여 체크포인트를 생성. branch=chore/branch-protection-warmup, head=d0cfa08 +--- + +## 변경 파일 요약 +- 브랜치: chore/branch-protection-warmup +- HEAD: d0cfa08 +- 변경 수: 8 + +## Added(2) +- admin/checkpoints/20250922-1506-UTC_0006-KST.md +- admin/plan/m1-kickoff.md + +## Modified(6) +- basesettings.md +- scripts/validate_code_headers.sh +- scripts/validate_docs.sh +- scripts/validate_migrations.sh +- scripts/validate_refs.sh +- scripts/validate_sidecar_meta.sh + +## Deleted(0) + +## Renamed(0) + +## 비고 +- 이 파일은 scripts/checkpoint.sh로 생성되었습니다. diff --git a/admin/checkpoints/20250922-1517-UTC_0017-KST.md b/admin/checkpoints/20250922-1517-UTC_0017-KST.md new file mode 100644 index 00000000..3f2cfd20 --- /dev/null +++ b/admin/checkpoints/20250922-1517-UTC_0017-KST.md @@ -0,0 +1,38 @@ +--- +file: admin/checkpoints/20250922-1517-UTC_0017-KST.md +title: 체크포인트 - 변경 자동 수집(11건) +owner: duksan +created: 2025-09-22 15:17 UTC / 2025-09-23 00:17 KST +updated: 2025-09-22 15:17 UTC / 2025-09-23 00:17 KST +status: completed +tags: [checkpoint, automation] +schemaVersion: 1 +description: git status 기반으로 변경 파일을 자동 수집하여 체크포인트를 생성. branch=chore/branch-protection-warmup, head=1003372 +--- + +## 변경 파일 요약 +- 브랜치: chore/branch-protection-warmup +- HEAD: 1003372 +- 변경 수: 11 + +## Added(10) +- .editorconfig +- .husky/pre-commit +- .nvmrc +- eslint.config.js +- lint-staged.config.cjs +- package.json +- pnpm-lock.yaml +- pnpm-workspace.yaml +- prettier.config.cjs +- turbo.json + +## Modified(1) +- .gitignore + +## Deleted(0) + +## Renamed(0) + +## 비고 +- 이 파일은 scripts/checkpoint.sh로 생성되었습니다. diff --git a/admin/checkpoints/20250922-1522-UTC_0022-KST.md b/admin/checkpoints/20250922-1522-UTC_0022-KST.md new file mode 100644 index 00000000..389c0879 --- /dev/null +++ b/admin/checkpoints/20250922-1522-UTC_0022-KST.md @@ -0,0 +1,40 @@ +--- +file: admin/checkpoints/20250922-1522-UTC_0022-KST.md +title: 체크포인트 - 변경 자동 수집(13건) +owner: duksan +created: 2025-09-22 15:22 UTC / 2025-09-23 00:22 KST +updated: 2025-09-22 15:22 UTC / 2025-09-23 00:22 KST +status: completed +tags: [checkpoint, automation] +schemaVersion: 1 +description: git status 기반으로 변경 파일을 자동 수집하여 체크포인트를 생성. branch=chore/branch-protection-warmup, head=1003372 +--- + +## 변경 파일 요약 +- 브랜치: chore/branch-protection-warmup +- HEAD: 1003372 +- 변경 수: 13 + +## Added(10) +- .editorconfig +- .husky/pre-commit +- .nvmrc +- eslint.config.js +- lint-staged.config.cjs +- package.json +- pnpm-lock.yaml +- pnpm-workspace.yaml +- prettier.config.cjs +- turbo.json + +## Modified(3) +- .gitignore +- admin/plan/m1-kickoff.md +- basesettings.md + +## Deleted(0) + +## Renamed(0) + +## 비고 +- 이 파일은 scripts/checkpoint.sh로 생성되었습니다. diff --git a/admin/checkpoints/20250922-1534-UTC_0034-KST.md b/admin/checkpoints/20250922-1534-UTC_0034-KST.md new file mode 100644 index 00000000..c84e9e8f --- /dev/null +++ b/admin/checkpoints/20250922-1534-UTC_0034-KST.md @@ -0,0 +1,32 @@ +--- +file: admin/checkpoints/20250922-1534-UTC_0034-KST.md +title: 체크포인트 - 변경 자동 수집(5건) +owner: duksan +created: 2025-09-22 15:34 UTC / 2025-09-23 00:34 KST +updated: 2025-09-22 15:34 UTC / 2025-09-23 00:34 KST +status: completed +tags: [checkpoint, automation] +schemaVersion: 1 +description: git status 기반으로 변경 파일을 자동 수집하여 체크포인트를 생성. branch=chore/branch-protection-warmup, head=3f3365a +--- + +## 변경 파일 요약 +- 브랜치: chore/branch-protection-warmup +- HEAD: 3f3365a +- 변경 수: 5 + +## Added(1) +- .github/workflows/build.yml + +## Modified(4) +- admin/plan/m1-kickoff.md +- basesettings.md +- package.json +- turbo.json + +## Deleted(0) + +## Renamed(0) + +## 비고 +- 이 파일은 scripts/checkpoint.sh로 생성되었습니다. diff --git a/admin/checkpoints/20250922-1553-UTC_0053-KST.md b/admin/checkpoints/20250922-1553-UTC_0053-KST.md new file mode 100644 index 00000000..d3acbf8f --- /dev/null +++ b/admin/checkpoints/20250922-1553-UTC_0053-KST.md @@ -0,0 +1,28 @@ +--- +file: admin/checkpoints/20250922-1553-UTC_0053-KST.md +title: 체크포인트 - 변경 자동 수집(1건) +owner: duksan +created: 2025-09-22 15:53 UTC / 2025-09-23 00:53 KST +updated: 2025-09-22 15:53 UTC / 2025-09-23 00:53 KST +status: completed +tags: [checkpoint, automation] +schemaVersion: 1 +description: git status 기반으로 변경 파일을 자동 수집하여 체크포인트를 생성. branch=chore/branch-protection-warmup, head=ab5a186 +--- + +## 변경 파일 요약 +- 브랜치: chore/branch-protection-warmup +- HEAD: ab5a186 +- 변경 수: 1 + +## Added(0) + +## Modified(1) +- AGENTS.md + +## Deleted(0) + +## Renamed(0) + +## 비고 +- 이 파일은 scripts/checkpoint.sh로 생성되었습니다. diff --git a/admin/checkpoints/20250922-1602-UTC_0102-KST.md b/admin/checkpoints/20250922-1602-UTC_0102-KST.md new file mode 100644 index 00000000..7638785c --- /dev/null +++ b/admin/checkpoints/20250922-1602-UTC_0102-KST.md @@ -0,0 +1,28 @@ +--- +file: admin/checkpoints/20250922-1602-UTC_0102-KST.md +title: 체크포인트 - 변경 자동 수집(1건) +owner: duksan +created: 2025-09-22 16:02 UTC / 2025-09-23 01:02 KST +updated: 2025-09-22 16:02 UTC / 2025-09-23 01:02 KST +status: completed +tags: [checkpoint, automation] +schemaVersion: 1 +description: git status 기반으로 변경 파일을 자동 수집하여 체크포인트를 생성. branch=chore/branch-protection-warmup, head=5b3ab76 +--- + +## 변경 파일 요약 +- 브랜치: chore/branch-protection-warmup +- HEAD: 5b3ab76 +- 변경 수: 1 + +## Added(0) + +## Modified(1) +- scripts/gh_protect_main.sh + +## Deleted(0) + +## Renamed(0) + +## 비고 +- 이 파일은 scripts/checkpoint.sh로 생성되었습니다. diff --git a/admin/checkpoints/20250922-1635-UTC_0135-KST.md b/admin/checkpoints/20250922-1635-UTC_0135-KST.md new file mode 100644 index 00000000..8b3a9758 --- /dev/null +++ b/admin/checkpoints/20250922-1635-UTC_0135-KST.md @@ -0,0 +1,28 @@ +--- +file: admin/checkpoints/20250922-1635-UTC_0135-KST.md +title: 체크포인트 - 변경 자동 수집(1건) +owner: duksan +created: 2025-09-22 16:35 UTC / 2025-09-23 01:35 KST +updated: 2025-09-22 16:35 UTC / 2025-09-23 01:35 KST +status: completed +tags: [checkpoint, automation] +schemaVersion: 1 +description: git status 기반으로 변경 파일을 자동 수집하여 체크포인트를 생성. branch=chore/branch-protection-warmup, head=9d70a58 +--- + +## 변경 파일 요약 +- 브랜치: chore/branch-protection-warmup +- HEAD: 9d70a58 +- 변경 수: 1 + +## Added(0) + +## Modified(1) +- admin/plan/improvement-rounds.md + +## Deleted(0) + +## Renamed(0) + +## 비고 +- 이 파일은 scripts/checkpoint.sh로 생성되었습니다. diff --git a/admin/checkpoints/20250922-1641-UTC_0141-KST.md b/admin/checkpoints/20250922-1641-UTC_0141-KST.md new file mode 100644 index 00000000..5951198d --- /dev/null +++ b/admin/checkpoints/20250922-1641-UTC_0141-KST.md @@ -0,0 +1,31 @@ +--- +file: admin/checkpoints/20250922-1641-UTC_0141-KST.md +title: 체크포인트 - 변경 자동 수집(4건) +owner: duksan +created: 2025-09-22 16:41 UTC / 2025-09-23 01:41 KST +updated: 2025-09-22 16:41 UTC / 2025-09-23 01:41 KST +status: completed +tags: [checkpoint, automation] +schemaVersion: 1 +description: git status 기반으로 변경 파일을 자동 수집하여 체크포인트를 생성. branch=chore/branch-protection-warmup, head=9d70a58 +--- + +## 변경 파일 요약 +- 브랜치: chore/branch-protection-warmup +- HEAD: 9d70a58 +- 변경 수: 4 + +## Added(1) +- admin/checkpoints/20250922-1635-UTC_0135-KST.md + +## Modified(3) +- admin/plan/improvement-rounds.md +- package.json +- pnpm-lock.yaml + +## Deleted(0) + +## Renamed(0) + +## 비고 +- 이 파일은 scripts/checkpoint.sh로 생성되었습니다. diff --git a/admin/checkpoints/20250922-1649-UTC_0149-KST.md b/admin/checkpoints/20250922-1649-UTC_0149-KST.md new file mode 100644 index 00000000..239838d1 --- /dev/null +++ b/admin/checkpoints/20250922-1649-UTC_0149-KST.md @@ -0,0 +1,28 @@ +--- +file: admin/checkpoints/20250922-1649-UTC_0149-KST.md +title: 체크포인트 - 변경 자동 수집(1건) +owner: duksan +created: 2025-09-22 16:49 UTC / 2025-09-23 01:49 KST +updated: 2025-09-22 16:49 UTC / 2025-09-23 01:49 KST +status: completed +tags: [checkpoint, automation] +schemaVersion: 1 +description: git status 기반으로 변경 파일을 자동 수집하여 체크포인트를 생성. branch=chore/branch-protection-warmup, head=4db8c4d +--- + +## 변경 파일 요약 +- 브랜치: chore/branch-protection-warmup +- HEAD: 4db8c4d +- 변경 수: 1 + +## Added(0) + +## Modified(1) +- admin/plan/improvement-rounds.md + +## Deleted(0) + +## Renamed(0) + +## 비고 +- 이 파일은 scripts/checkpoint.sh로 생성되었습니다. diff --git a/admin/checkpoints/20250922-1723-UTC_0223-KST.md b/admin/checkpoints/20250922-1723-UTC_0223-KST.md new file mode 100644 index 00000000..03de3f31 --- /dev/null +++ b/admin/checkpoints/20250922-1723-UTC_0223-KST.md @@ -0,0 +1,30 @@ +--- +file: admin/checkpoints/20250922-1723-UTC_0223-KST.md +title: 체크포인트 - 변경 자동 수집(3건) +owner: duksan +created: 2025-09-22 17:23 UTC / 2025-09-23 02:23 KST +updated: 2025-09-22 17:23 UTC / 2025-09-23 02:23 KST +status: completed +tags: [checkpoint, automation] +schemaVersion: 1 +description: git status 기반으로 변경 파일을 자동 수집하여 체크포인트를 생성. branch=chore/branch-protection-warmup, head=e8d7eab +--- + +## 변경 파일 요약 +- 브랜치: chore/branch-protection-warmup +- HEAD: e8d7eab +- 변경 수: 3 + +## Added(0) + +## Modified(3) +- admin/plan/improvement-rounds.md +- scripts/validate_docs.sh +- scripts/validate_refs.sh + +## Deleted(0) + +## Renamed(0) + +## 비고 +- 이 파일은 scripts/checkpoint.sh로 생성되었습니다. diff --git a/admin/checkpoints/20250922-1733-UTC_0233-KST.md b/admin/checkpoints/20250922-1733-UTC_0233-KST.md new file mode 100644 index 00000000..ee37e6df --- /dev/null +++ b/admin/checkpoints/20250922-1733-UTC_0233-KST.md @@ -0,0 +1,36 @@ +--- +file: admin/checkpoints/20250922-1733-UTC_0233-KST.md +title: 체크포인트 - 변경 자동 수집(9건) +owner: duksan +created: 2025-09-22 17:33 UTC / 2025-09-23 02:33 KST +updated: 2025-09-22 17:33 UTC / 2025-09-23 02:33 KST +status: completed +tags: [checkpoint, automation] +schemaVersion: 1 +description: git status 기반으로 변경 파일을 자동 수집하여 체크포인트를 생성. branch=chore/branch-protection-warmup, head=e8d7eab +--- + +## 변경 파일 요약 +- 브랜치: chore/branch-protection-warmup +- HEAD: e8d7eab +- 변경 수: 9 + +## Added(0) + +## Modified(9) +- admin/plan/improvement-rounds.md +- admin/plan/m1-kickoff.md +- admin/runbooks/repo-protection.md +- basesettings.md +- scripts/gh_enable_automerge.sh +- scripts/gh_protect_main.sh +- scripts/update_frontmatter_time.sh +- scripts/validate_docs.sh +- scripts/validate_refs.sh + +## Deleted(0) + +## Renamed(0) + +## 비고 +- 이 파일은 scripts/checkpoint.sh로 생성되었습니다. diff --git a/admin/checkpoints/20250922-1735-UTC_0235-KST.md b/admin/checkpoints/20250922-1735-UTC_0235-KST.md new file mode 100644 index 00000000..8975a965 --- /dev/null +++ b/admin/checkpoints/20250922-1735-UTC_0235-KST.md @@ -0,0 +1,28 @@ +--- +file: admin/checkpoints/20250922-1735-UTC_0235-KST.md +title: 체크포인트 - 변경 자동 수집(1건) +owner: duksan +created: 2025-09-22 17:35 UTC / 2025-09-23 02:35 KST +updated: 2025-09-22 17:35 UTC / 2025-09-23 02:35 KST +status: completed +tags: [checkpoint, automation] +schemaVersion: 1 +description: git status 기반으로 변경 파일을 자동 수집하여 체크포인트를 생성. branch=chore/branch-protection-warmup, head=74b7089 +--- + +## 변경 파일 요약 +- 브랜치: chore/branch-protection-warmup +- HEAD: 74b7089 +- 변경 수: 1 + +## Added(0) + +## Modified(1) +- scripts/gh_enable_automerge.sh + +## Deleted(0) + +## Renamed(0) + +## 비고 +- 이 파일은 scripts/checkpoint.sh로 생성되었습니다. diff --git a/admin/checkpoints/20250922-1749-UTC_0249-KST.md b/admin/checkpoints/20250922-1749-UTC_0249-KST.md new file mode 100644 index 00000000..1703cb47 --- /dev/null +++ b/admin/checkpoints/20250922-1749-UTC_0249-KST.md @@ -0,0 +1,35 @@ +--- +file: admin/checkpoints/20250922-1749-UTC_0249-KST.md +title: 체크포인트 - 변경 자동 수집(8건) +owner: duksan +created: 2025-09-22 17:49 UTC / 2025-09-23 02:49 KST +updated: 2025-09-22 17:53 UTC / 2025-09-23 02:53 KST +status: completed +tags: [checkpoint, automation] +schemaVersion: 1 +description: git status 기반으로 변경 파일을 자동 수집하여 체크포인트를 생성. branch=chore/branch-protection-warmup, head=fd9603e +--- + +## 변경 파일 요약 +- 브랜치: chore/branch-protection-warmup +- HEAD: fd9603e +- 변경 수: 8 + +## Added(1) +- scripts/update_frontmatter_time.js + +## Modified(7) +- .husky/pre-commit +- AGENTS.md +- admin/plan/improvement-rounds.md +- admin/runbooks/release.md +- docs/style-guides/markdown.md +- package.json +- scripts/update_frontmatter_time.sh + +## Deleted(0) + +## Renamed(0) + +## 비고 +- 이 파일은 scripts/checkpoint.sh로 생성되었습니다. diff --git a/admin/checkpoints/20250922-1800-UTC_0300-KST.md b/admin/checkpoints/20250922-1800-UTC_0300-KST.md new file mode 100644 index 00000000..b52f8dfd --- /dev/null +++ b/admin/checkpoints/20250922-1800-UTC_0300-KST.md @@ -0,0 +1,29 @@ +--- +file: admin/checkpoints/20250922-1800-UTC_0300-KST.md +title: 체크포인트 - 변경 자동 수집(2건) +owner: duksan +created: 2025-09-22 18:00 UTC / 2025-09-23 03:00 KST +updated: 2025-09-22 18:02 UTC / 2025-09-23 03:02 KST +status: completed +tags: [checkpoint, automation] +schemaVersion: 1 +description: git status 기반으로 변경 파일을 자동 수집하여 체크포인트를 생성. branch=chore/branch-protection-warmup, head=6c07f92 +--- + +## 변경 파일 요약 +- 브랜치: chore/branch-protection-warmup +- HEAD: 6c07f92 +- 변경 수: 2 + +## Added(0) + +## Modified(2) +- .github/workflows/docs-validate.yml +- admin/plan/improvement-rounds.md + +## Deleted(0) + +## Renamed(0) + +## 비고 +- 이 파일은 scripts/checkpoint.sh로 생성되었습니다. diff --git a/admin/checkpoints/20250922-1808-UTC_0308-KST.md b/admin/checkpoints/20250922-1808-UTC_0308-KST.md new file mode 100644 index 00000000..ba44fc72 --- /dev/null +++ b/admin/checkpoints/20250922-1808-UTC_0308-KST.md @@ -0,0 +1,28 @@ +--- +file: admin/checkpoints/20250922-1808-UTC_0308-KST.md +title: 체크포인트 - 변경 자동 수집(1건) +owner: duksan +created: 2025-09-22 18:08 UTC / 2025-09-23 03:08 KST +updated: 2025-09-22 18:09 UTC / 2025-09-23 03:09 KST +status: completed +tags: [checkpoint, automation] +schemaVersion: 1 +description: git status 기반으로 변경 파일을 자동 수집하여 체크포인트를 생성. branch=chore/branch-protection-warmup, head=4cb3d55 +--- + +## 변경 파일 요약 +- 브랜치: chore/branch-protection-warmup +- HEAD: 4cb3d55 +- 변경 수: 1 + +## Added(0) + +## Modified(1) +- scripts/validate_refs.sh + +## Deleted(0) + +## Renamed(0) + +## 비고 +- 이 파일은 scripts/checkpoint.sh로 생성되었습니다. diff --git a/admin/checkpoints/20250922-1826-UTC_0326-KST.md b/admin/checkpoints/20250922-1826-UTC_0326-KST.md new file mode 100644 index 00000000..998b85f7 --- /dev/null +++ b/admin/checkpoints/20250922-1826-UTC_0326-KST.md @@ -0,0 +1,29 @@ +--- +file: admin/checkpoints/20250922-1826-UTC_0326-KST.md +title: 체크포인트 - 변경 자동 수집(2건) +owner: duksan +created: 2025-09-22 18:26 UTC / 2025-09-23 03:26 KST +updated: 2025-09-22 18:26 UTC / 2025-09-23 03:26 KST +status: completed +tags: [checkpoint, automation] +schemaVersion: 1 +description: git status 기반으로 변경 파일을 자동 수집하여 체크포인트를 생성. branch=chore/branch-protection-warmup, head=d58263a +--- + +## 변경 파일 요약 +- 브랜치: chore/branch-protection-warmup +- HEAD: d58263a +- 변경 수: 2 + +## Added(0) + +## Modified(2) +- admin/plan/improvement-rounds.md +- scripts/checkpoint.sh + +## Deleted(0) + +## Renamed(0) + +## 비고 +- 이 파일은 scripts/checkpoint.sh로 생성되었습니다. diff --git a/admin/checkpoints/20250922-1849-UTC_0349-KST.md b/admin/checkpoints/20250922-1849-UTC_0349-KST.md new file mode 100644 index 00000000..c0fcee58 --- /dev/null +++ b/admin/checkpoints/20250922-1849-UTC_0349-KST.md @@ -0,0 +1,31 @@ +--- +file: admin/checkpoints/20250922-1849-UTC_0349-KST.md +title: 체크포인트 - 변경 자동 수집(4건) +owner: duksan +created: 2025-09-22 18:49 UTC / 2025-09-23 03:49 KST +updated: 2025-09-22 18:59 UTC / 2025-09-23 03:59 KST +status: completed +tags: [checkpoint, automation] +schemaVersion: 1 +description: git status 기반으로 변경 파일을 자동 수집하여 체크포인트를 생성. branch=chore/branch-protection-warmup, head=5cb25cc +--- + +## 변경 파일 요약 +- 브랜치: chore/branch-protection-warmup +- HEAD: 5cb25cc +- 변경 수: 4 + +## Added(0) + +## Modified(4) +- CHANGELOG.md +- admin/templates/doc-frontmatter.md +- basesettings.md +- scripts/checkpoint.sh + +## Deleted(0) + +## Renamed(0) + +## 비고 +- 이 파일은 scripts/checkpoint.sh로 생성되었습니다. diff --git a/admin/checkpoints/20250922-1857-UTC_0357-KST.md b/admin/checkpoints/20250922-1857-UTC_0357-KST.md new file mode 100644 index 00000000..d317ed2f --- /dev/null +++ b/admin/checkpoints/20250922-1857-UTC_0357-KST.md @@ -0,0 +1,31 @@ +--- +file: admin/checkpoints/20250922-1857-UTC_0357-KST.md +title: 체크포인트 - 변경 자동 수집(4건) +owner: duksan +created: 2025-09-22 18:57 UTC / 2025-09-23 03:57 KST +updated: 2025-09-22 18:59 UTC / 2025-09-23 03:59 KST +status: completed +tags: [checkpoint, automation] +schemaVersion: 1 +description: git status 기반으로 변경 파일을 자동 수집하여 체크포인트를 생성. branch=chore/branch-protection-warmup, head=5cb25cc +--- + +## 변경 파일 요약 +- 브랜치: chore/branch-protection-warmup +- HEAD: 5cb25cc +- 변경 수: 4 + +## Added(0) + +## Modified(4) +- CHANGELOG.md +- admin/templates/doc-frontmatter.md +- basesettings.md +- scripts/checkpoint.sh + +## Deleted(0) + +## Renamed(0) + +## 비고 +- 이 파일은 scripts/checkpoint.sh로 생성되었습니다. diff --git a/admin/checkpoints/20250922-1953-UTC_0453-KST.md b/admin/checkpoints/20250922-1953-UTC_0453-KST.md new file mode 100644 index 00000000..884d060c --- /dev/null +++ b/admin/checkpoints/20250922-1953-UTC_0453-KST.md @@ -0,0 +1,35 @@ +--- +file: admin/checkpoints/20250922-1953-UTC_0453-KST.md +title: 체크포인트 - 변경 자동 수집(8건) +owner: duksan +created: 2025-09-22 19:53 UTC / 2025-09-23 04:53 KST +updated: 2025-09-22 20:02 UTC / 2025-09-23 05:02 KST +status: completed +tags: [checkpoint, automation] +schemaVersion: 1 +description: git status 기반으로 변경 파일을 자동 수집하여 체크포인트를 생성. branch=chore/branch-protection-warmup, head=6c563fc +--- + +## 변경 파일 요약 +- 브랜치: chore/branch-protection-warmup +- HEAD: 6c563fc +- 변경 수: 8 + +## Added(0) + +## Modified(8) +- CHANGELOG.md +- admin/data/README.md +- admin/data/kpi.md +- admin/data/timeline.gantt.md +- admin/plan/m1-kickoff.md +- basesettings.md +- package.json +- pnpm-lock.yaml + +## Deleted(0) + +## Renamed(0) + +## 비고 +- 이 파일은 scripts/checkpoint.sh로 생성되었습니다. diff --git a/admin/checkpoints/20250922-2047-UTC_0547-KST.md b/admin/checkpoints/20250922-2047-UTC_0547-KST.md new file mode 100644 index 00000000..f40d8e92 --- /dev/null +++ b/admin/checkpoints/20250922-2047-UTC_0547-KST.md @@ -0,0 +1,28 @@ +--- +file: admin/checkpoints/20250922-2047-UTC_0547-KST.md +title: 체크포인트 - 변경 자동 수집(1건) +owner: duksan +created: 2025-09-22 20:47 UTC / 2025-09-23 05:47 KST +updated: 2025-09-22 20:50 UTC / 2025-09-23 05:50 KST +status: completed +tags: [checkpoint, automation] +schemaVersion: 1 +description: git status 기반으로 변경 파일을 자동 수집하여 체크포인트를 생성. branch=chore/branch-protection-warmup, head=0f28255 +--- + +## 변경 파일 요약 +- 브랜치: chore/branch-protection-warmup +- HEAD: 0f28255 +- 변경 수: 1 + +## Added(0) + +## Modified(1) +- CHANGELOG.md + +## Deleted(0) + +## Renamed(0) + +## 비고 +- 이 파일은 scripts/checkpoint.sh로 생성되었습니다. diff --git a/admin/checkpoints/20250923-0340-UTC_1240-KST.md b/admin/checkpoints/20250923-0340-UTC_1240-KST.md new file mode 100644 index 00000000..c01b4229 --- /dev/null +++ b/admin/checkpoints/20250923-0340-UTC_1240-KST.md @@ -0,0 +1,48 @@ +--- +file: admin/checkpoints/20250923-0340-UTC_1240-KST.md +title: 체크포인트 - Sprint 6 문서 검색 고도화 +owner: duksan +created: 2025-09-23 03:40 UTC / 2025-09-23 12:40 KST +updated: 2025-09-23 03:51 UTC / 2025-09-23 12:51 KST +status: completed +tags: [checkpoint, search] +schemaVersion: 1 +description: Sprint 6 문서 검색 고도화 작업 동안 추가·수정된 코드 및 문서 목록을 기록. branch=chore/branch-protection-warmup, head=7a770da +--- + +## 변경 파일 요약 +- 브랜치: chore/branch-protection-warmup +- HEAD: 7a770da +- 변경 수: 20 + +## Added(11) +- apps/api/src/documents/documents.controller.ts +- apps/api/src/documents/documents.module.ts +- apps/api/src/documents/documents.service.ts +- apps/web/src/app/admin/wiki/search-client.tsx +- apps/web/src/app/api/documents/search/route.ts +- packages/documents/package.json +- packages/documents/src/index.ts +- packages/documents/src/repository.ts +- packages/documents/src/search.ts +- packages/documents/src/types.ts +- packages/documents/tsconfig.json + +## Modified(9) +- CHANGELOG.md +- apps/api/package.json +- apps/api/src/app.module.ts +- apps/api/src/main.ts +- apps/web/package.json +- apps/web/src/app/admin/wiki/page.tsx +- apps/web/src/lib/content.ts +- basesettings.md +- pnpm-lock.yaml + +## Deleted(0) + +## Renamed(0) + +## 비고 +- @gg-real/documents 패키지를 통해 문서 검색 로직을 공용화하고 Next.js/NestJS에서 동일한 인덱스를 사용하도록 구성했습니다. +- 위키 화면에 검색 UI와 백엔드 검색 API를 추가했으며, 빌드/린트/타입 검증을 통과했습니다. diff --git a/admin/checkpoints/20250923-0425-UTC_1325-KST.md b/admin/checkpoints/20250923-0425-UTC_1325-KST.md new file mode 100644 index 00000000..862b4ef7 --- /dev/null +++ b/admin/checkpoints/20250923-0425-UTC_1325-KST.md @@ -0,0 +1,41 @@ +--- +file: admin/checkpoints/20250923-0425-UTC_1325-KST.md +title: 체크포인트 - Sprint 7 문서 API 확장 및 스모크 테스트 +owner: duksan +created: 2025-09-23 04:25 UTC / 2025-09-23 13:25 KST +updated: 2025-09-23 05:32 UTC / 2025-09-23 14:32 KST +status: completed +tags: [checkpoint, api, test] +schemaVersion: 1 +description: Sprint 7에서 문서 API 확장과 스모크 테스트 구성을 진행한 변경 내역 기록. branch=chore/branch-protection-warmup, head=e7cffe0 +--- + +## 변경 파일 요약 +- 브랜치: chore/branch-protection-warmup +- HEAD: e7cffe0 +- 변경 수: 12 (추가 2, 수정 10) + +## Added(2) +- apps/api/test/run-smoke.mjs +- packages/documents/src/list.ts + +## Modified(10) +- CHANGELOG.md +- admin/plan/m1-kickoff.md +- apps/api/README.md +- apps/api/package.json +- apps/api/src/documents/documents.controller.ts +- apps/api/src/documents/documents.service.ts +- apps/web/README.md +- apps/web/src/lib/content.ts +- packages/documents/src/index.ts +- packages/documents/src/types.ts + +## 테스트 +- `pnpm lint` +- `pnpm --filter @gg-real/documents build` +- `pnpm --filter api test:e2e` + +## 비고 +- 문서 API에 목록/통계 엔드포인트를 추가하고, dist 기반 스모크 테스트(run-smoke.mjs)로 자동 검증 경로를 마련했습니다. +- `@gg-real/documents` 패키지는 list/statistics 유틸리티를 포함하도록 확장되었습니다. diff --git a/admin/checkpoints/20250923-0633-UTC_1533-KST.md b/admin/checkpoints/20250923-0633-UTC_1533-KST.md new file mode 100644 index 00000000..af8d1931 --- /dev/null +++ b/admin/checkpoints/20250923-0633-UTC_1533-KST.md @@ -0,0 +1,47 @@ +--- +file: admin/checkpoints/20250923-0633-UTC_1533-KST.md +title: 체크포인트 - Sprint 8 관측/알람 실연동 +owner: duksan +created: 2025-09-23 06:33 UTC / 2025-09-23 15:33 KST +updated: 2025-09-23 06:49 UTC / 2025-09-23 15:49 KST +status: completed +tags: [checkpoint, observability] +schemaVersion: 1 +description: Sprint 8에서 Sentry/OTel 관측 환경을 실연동하고 문서/구성을 갱신한 내역. branch=chore/branch-protection-warmup, head=fd3d800 +--- + +## 변경 파일 요약 +- 브랜치: chore/branch-protection-warmup +- HEAD: fd3d800 +- 변경 수: 17 (추가 4, 수정 13) + +## Added(4) +- apps/api/src/filters/sentry.filter.ts +- apps/web/instrumentation.ts +- apps/web/sentry.client.config.ts +- apps/web/sentry.config.ts + +## Modified(13) +- .env.example +- CHANGELOG.md +- admin/plan/m1-kickoff.md +- apps/api/README.md +- apps/api/package.json +- apps/api/src/main.ts +- apps/api/src/observability.ts +- apps/api/test/run-smoke.js +- apps/web/README.md +- apps/web/next.config.ts +- apps/web/package.json +- basesettings.md +- pnpm-lock.yaml + +## 테스트 +- `pnpm lint` +- `pnpm --filter @gg-real/documents build` +- `pnpm --filter api test:e2e` +- `pnpm --filter web build` + +## 비고 +- Sentry DSN/샘플링 변수를 기반으로 API와 Web 양쪽에서 Sentry를 초기화하고, OpenTelemetry NodeSDK로 서버 트레이싱을 수집하도록 구성했습니다. +- Next.js instrumentation hook을 추가해 App Router에서도 서버/Edge 오류가 Sentry로 전송되도록 했습니다. diff --git a/admin/checkpoints/20250923-0744-UTC_1644-KST.md b/admin/checkpoints/20250923-0744-UTC_1644-KST.md new file mode 100644 index 00000000..31ce19aa --- /dev/null +++ b/admin/checkpoints/20250923-0744-UTC_1644-KST.md @@ -0,0 +1,49 @@ +--- +file: admin/checkpoints/20250923-0744-UTC_1644-KST.md +title: 체크포인트 - Sprint 9 Timeline/Graph 실사용화 착수 +owner: duksan +created: 2025-09-23 07:44 UTC / 2025-09-23 16:44 KST +updated: 2025-09-23 07:58 UTC / 2025-09-23 16:58 KST +status: in_progress +tags: [checkpoint, timeline, graph] +schemaVersion: 1 +description: Sprint 9 1차 실행으로 타임라인/그래프 화면을 데이터 기반으로 전환하고 상태 팔레트를 확장한 내역. branch=chore/branch-protection-warmup, head=3c2ce703 +--- + +## 변경 파일 요약 +- 브랜치: chore/branch-protection-warmup +- HEAD: 3c2ce703 +- 변경 수: 19 (추가 10, 수정 9) + +## Added(10) +- admin/data/timeline.events.json +- apps/web/src/components/graph/DependencyGraph.tsx +- apps/web/src/components/timeline/MermaidTimeline.tsx +- apps/web/src/components/timeline/TimelineView.tsx +- apps/web/src/lib/graph-data.server.ts +- apps/web/src/lib/graph.ts +- apps/web/src/lib/status.server.ts +- apps/web/src/lib/status.ts +- apps/web/src/lib/timeline-data.server.ts +- apps/web/src/lib/timeline.ts + +## Modified(9) +- admin/config/status.yaml +- admin/data/README.md +- admin/data/graph.json +- apps/web/package.json +- apps/web/src/app/admin/graph/page.tsx +- apps/web/src/app/admin/timeline/page.tsx +- apps/web/src/lib/content.ts +- basesettings.md +- pnpm-lock.yaml + +## 테스트 +- `pnpm lint` +- `pnpm --filter web build` +- `pnpm --filter api test:e2e` + +## 비고 +- 상태 팔레트에 `completed`를 추가하고 JSON/YAML 로더가 프런트매터를 무시하도록 보강했습니다. +- `/admin/timeline`은 SoT 기반 이벤트 JSON과 필터 UI, Mermaid 클라이언트 렌더러를 사용하도록 전환했습니다. +- `/admin/graph`는 React Flow 시각화와 상태/엣지 범례를 제공하며, 데이터 파일의 doc_refs/coderefs를 최신 컴포넌트와 연결했습니다. diff --git a/admin/checkpoints/20250923-0831-UTC_1731-KST.md b/admin/checkpoints/20250923-0831-UTC_1731-KST.md new file mode 100644 index 00000000..23f6ade7 --- /dev/null +++ b/admin/checkpoints/20250923-0831-UTC_1731-KST.md @@ -0,0 +1,24 @@ +--- +file: admin/checkpoints/20250923-0831-UTC_1731-KST.md +title: 체크포인트 - Mermaid 타임라인 파싱 오류 수정 +owner: duksan +created: 2025-09-23 08:31 UTC / 2025-09-23 17:31 KST +updated: 2025-09-23 08:32 UTC / 2025-09-23 17:32 KST +status: completed +tags: [checkpoint, timeline] +schemaVersion: 1 +description: Mermaid 간트 문자열을 정규화해 /admin/timeline과 /admin/graph 하단에서 발생하던 파서 오류를 제거했습니다. branch=chore/branch-protection-warmup, head=HEAD +--- + +## 변경 파일 요약 +- 변경 수: 1 (추가 0, 수정 1) +- 수정: apps/web/src/lib/timeline.ts + +## 테스트 +- `pnpm lint` +- `pnpm --filter web build` +- `pnpm --filter api test:e2e` + +## 비고 +- Mermaid가 요구하는 task id 규칙에 맞추기 위해 상태 키워드를 매핑하고, 식별자에 포함된 하이픈을 안전한 문자열로 치환했습니다. +- /admin/timeline과 /admin/graph 화면 하단에 표시되던 Syntax error 오버레이가 사라졌는지 로컬에서 확인해 주세요. diff --git a/admin/checkpoints/20250923-0843-UTC_1743-KST.md b/admin/checkpoints/20250923-0843-UTC_1743-KST.md new file mode 100644 index 00000000..6967755d --- /dev/null +++ b/admin/checkpoints/20250923-0843-UTC_1743-KST.md @@ -0,0 +1,24 @@ +--- +file: admin/checkpoints/20250923-0843-UTC_1743-KST.md +title: 체크포인트 - Mermaid 주석 제거 및 재빌드 +owner: duksan +created: 2025-09-23 08:43 UTC / 2025-09-23 17:43 KST +updated: 2025-09-23 08:45 UTC / 2025-09-23 17:45 KST +status: completed +tags: [checkpoint, timeline] +schemaVersion: 1 +description: Mermaid 간트 문자열에서 주석을 제거해 파싱 오류를 마무리하고 전체 빌드를 재검증했습니다. branch=chore/branch-protection-warmup, head=HEAD +--- + +## 변경 파일 요약 +- 변경 수: 1 (추가 0, 수정 1) +- 수정: apps/web/src/lib/timeline.ts + +## 테스트 +- `pnpm lint` +- `pnpm --filter web build` +- `pnpm --filter api test:e2e` + +## 비고 +- Mermaid가 section 내부 주석(`%% ...`)을 task 데이터로 인식해 `Expecting 'taskData'` 오류가 재발했던 부분을 제거했습니다. +- dev 서버(`pnpm --filter web dev`)를 재시작하거나 강력 새로고침하면 `/admin/timeline`과 `/admin/graph`에서 더 이상 Syntax error 배너가 나타나지 않습니다. diff --git a/admin/checkpoints/20250923-0903-UTC_1804-KST.md b/admin/checkpoints/20250923-0903-UTC_1804-KST.md new file mode 100644 index 00000000..b349b184 --- /dev/null +++ b/admin/checkpoints/20250923-0903-UTC_1804-KST.md @@ -0,0 +1,24 @@ +--- +file: admin/checkpoints/20250923-0903-UTC_1804-KST.md +title: 체크포인트 - Mermaid Gantt 상태 스타일 제거 +owner: duksan +created: 2025-09-23 09:03 UTC / 2025-09-23 18:04 KST +updated: 2025-09-23 09:06 UTC / 2025-09-23 18:06 KST +status: completed +tags: [checkpoint, timeline] +schemaVersion: 1 +description: Mermaid 10.9.x가 Gantt chart에서 classDef/class 구문을 지원하지 않아 파싱 오류가 발생하던 문제를 기본 상태 키워드만 사용하도록 수정했습니다. branch=chore/branch-protection-warmup, head=HEAD +--- + +## 변경 파일 요약 +- 변경 수: 2 (추가 0, 수정 2) +- 수정: apps/web/src/lib/timeline.ts, apps/web/src/components/timeline/TimelineView.tsx + +## 테스트 +- `pnpm lint` +- `pnpm --filter web build` +- `pnpm --filter api test:e2e` + +## 비고 +- Mermaid 10.9.4의 Gantt 파서는 `classDef` 문법을 아직 허용하지 않아 `Expecting 'taskData'` 오류가 반복되었습니다. +- 상태별 색상은 추후 Mermaid `themeVariables` 혹은 CSS 연동으로 다시 맞출 예정이며, 현재는 `done/active/crit` 기본 값을 사용합니다. diff --git a/admin/checkpoints/20250923-0927-UTC_1827-KST.md b/admin/checkpoints/20250923-0927-UTC_1827-KST.md new file mode 100644 index 00000000..297f895e --- /dev/null +++ b/admin/checkpoints/20250923-0927-UTC_1827-KST.md @@ -0,0 +1,24 @@ +--- +file: admin/checkpoints/20250923-0927-UTC_1827-KST.md +title: 체크포인트 - 타임라인 간트 확대/축소 컨트롤 추가 +owner: duksan +created: 2025-09-23 09:27 UTC / 2025-09-23 18:27 KST +updated: 2025-09-23 09:31 UTC / 2025-09-23 18:31 KST +status: completed +tags: [checkpoint, timeline, ui] +schemaVersion: 1 +description: Mermaid 간트가 작게 표시되던 문제를 확대/축소 컨트롤과 여유 있는 패딩으로 개선했습니다. branch=chore/branch-protection-warmup, head=HEAD +--- + +## 변경 파일 요약 +- 변경 수: 1 (추가 0, 수정 1) +- 수정: apps/web/src/components/timeline/MermaidTimeline.tsx + +## 테스트 +- `pnpm lint` +- `pnpm --filter web build` +- `pnpm --filter api test:e2e` + +## 비고 +- 슬라이더와 +/- 버튼, 초기화 버튼을 제공하여 사용자가 차트 크기를 빠르게 조절할 수 있습니다. +- Mermaid 설정에서 `barHeight`, `barGap`, `topPadding` 등을 키워 가로/세로 가독성을 높였습니다. diff --git a/admin/checkpoints/20250923-1211-UTC_2112-KST.md b/admin/checkpoints/20250923-1211-UTC_2112-KST.md new file mode 100644 index 00000000..5b03b1dd --- /dev/null +++ b/admin/checkpoints/20250923-1211-UTC_2112-KST.md @@ -0,0 +1,25 @@ +--- +file: admin/checkpoints/20250923-1211-UTC_2112-KST.md +title: 체크포인트 - 타임라인 간트 가독성 보강 +owner: duksan +created: 2025-09-23 12:11 UTC / 2025-09-23 21:12 KST +updated: 2025-09-23 12:16 UTC / 2025-09-23 21:16 KST +status: completed +tags: [checkpoint, timeline, ui] +schemaVersion: 1 +description: /admin/timeline Mermaid 간트가 화면 폭에 맞게 표시되도록 레이아웃과 확대/축소 로직을 개선했습니다. branch=chore/branch-protection-warmup, head=HEAD +--- + +## 변경 파일 요약 +- 변경 수: 3 (추가 1, 수정 2) +- 추가: admin/checkpoints/20250923-1211-UTC_2112-KST.md +- 수정: apps/web/src/components/timeline/MermaidTimeline.tsx, apps/web/src/components/timeline/TimelineView.tsx, apps/web/src/app/globals.css + +## 테스트 +- `pnpm lint` +- `pnpm --filter web build` +- `pnpm --filter api test:e2e` + +## 비고 +- 확대/축소 컨트롤이 SVG 폭을 직접 조절하도록 바꿔 텍스트/바 크기가 실제로 커집니다. +- 상위 래퍼와 글로벌 스타일을 조정해 1920×1080에서 최초 진입 시 간트가 화면 폭 대부분을 차지하며, 넘치는 경우 수평 스크롤이 가능합니다. diff --git a/admin/checkpoints/20250923-1440-UTC_2341-KST.md b/admin/checkpoints/20250923-1440-UTC_2341-KST.md new file mode 100644 index 00000000..2d57818e --- /dev/null +++ b/admin/checkpoints/20250923-1440-UTC_2341-KST.md @@ -0,0 +1,26 @@ +--- +file: admin/checkpoints/20250923-1440-UTC_2341-KST.md +title: 체크포인트 - Sprint 10 착수(캘린더 뷰/내보내기/전역 오류) +owner: duksan +created: 2025-09-23 14:40 UTC / 2025-09-23 23:41 KST +updated: 2025-09-23 14:56 UTC / 2025-09-23 23:56 KST +status: in_progress +tags: [checkpoint, timeline, graph, error] +schemaVersion: 1 +description: 타임라인에 FullCalendar 기반 캘린더 뷰를 추가하고, Mermaid SVG 저장/전역 오류 화면을 도입했습니다. branch=chore/branch-protection-warmup, head=HEAD +--- + +## 변경 파일 요약 +- 의존성: @fullcalendar/*, html-to-image 추가 +- 추가: apps/web/src/components/timeline/CalendarView.tsx, apps/web/src/app/global-error.tsx +- 수정: apps/web/src/components/timeline/TimelineView.tsx(간트/캘린더 토글), apps/web/src/components/timeline/MermaidTimeline.tsx(SVG 저장/가독성) +- 스타일: apps/web/src/app/globals.css(gg-timeline-wrap, SVG 폭 고정) + +## 테스트 +- `pnpm lint` +- `pnpm --filter web build` +- `pnpm --filter api test:e2e` + +## 비고 +- FullCalendar CSS는 빌드 오류를 피하기 위해 직접 임포트하지 않고, 후속 스프린트에서 전역 스타일로 통합 적용 예정입니다. +- 그래프(React Flow) 상세 패널/PNG 내보내기는 다음 단계에서 추가 구현합니다. diff --git a/admin/checkpoints/20250923-1537-UTC_0037-KST.md b/admin/checkpoints/20250923-1537-UTC_0037-KST.md new file mode 100644 index 00000000..08e0775c --- /dev/null +++ b/admin/checkpoints/20250923-1537-UTC_0037-KST.md @@ -0,0 +1,33 @@ +--- +file: admin/checkpoints/20250923-1537-UTC_0037-KST.md +title: 체크포인트 — 그래프 상세/PNG, 간트 테마, 캘린더 CSS 보강 +owner: duksan +created: 2025-09-23 15:37 UTC / 2025-09-24 00:37 KST +updated: 2025-09-23 16:43 UTC / 2025-09-24 01:43 KST +status: active +tags: [checkpoint, web, timeline, graph] +schemaVersion: 1 +description: 회의모드 해제(“실행하라”) 후 다음 단계 반영 — FullCalendar 전역 CSS 다크모드 보강, React Flow 그래프 상세 패널/PNG 내보내기, Mermaid 간트 상태 팔레트 매핑(classDef) 적용. +--- + +요약 +- 캘린더 CSS 전역 적용 보강: 다크 모드 색상/버튼/보더 톤 추가. +- 그래프: 노드 클릭 상세 패널(오른쪽), PNG 내보내기 버튼 추가. +- 간트: 상태 팔레트(status.yaml)를 Mermaid classDef로 매핑하여 막대 색상 일치. + +변경 파일 +- apps/web/src/styles/fullcalendar.css +- apps/web/src/components/graph/DependencyGraph.tsx +- apps/web/src/lib/timeline.ts +- apps/web/src/components/timeline/TimelineView.tsx +- apps/web/README.md + +검증 메모 +- pnpm --filter web lint → 통과 +- pnpm --filter web build → 통과 + +릴리즈 노트(요약) +- /admin/graph: 상단에 “PNG 내보내기” 버튼, 노드 클릭 시 우측 패널에 상세 정보 표시. +- /admin/timeline: 간트 막대 색상이 status.yaml 팔레트와 정확히 일치. +- FullCalendar 월/주: 다크 모드에서도 가독성 유지. + diff --git a/admin/checkpoints/20250923-1601-UTC_0101-KST.md b/admin/checkpoints/20250923-1601-UTC_0101-KST.md new file mode 100644 index 00000000..e66f3c46 --- /dev/null +++ b/admin/checkpoints/20250923-1601-UTC_0101-KST.md @@ -0,0 +1,23 @@ +--- +file: admin/checkpoints/20250923-1601-UTC_0101-KST.md +title: 체크포인트 — FullCalendar CSS 경로 오류 제거, 다크 모드 초기화 스크립트 +owner: duksan +created: 2025-09-23 16:01 UTC / 2025-09-24 01:01 KST +updated: 2025-09-23 16:43 UTC / 2025-09-24 01:43 KST +status: active +tags: [checkpoint, web, calendar, darkmode] +schemaVersion: 1 +description: 개발 서버에서 발생한 '@fullcalendar/*/index.css' 모듈 해석 오류 제거, 초기 로드 시 OS/저장값 기준으로 html.dark 적용, 전역 변수 다크 지원. +--- + +변경 파일 +- apps/web/src/app/layout.tsx — FullCalendar 모듈 CSS import 제거, ThemeScript(beforeInteractive) 추가 +- apps/web/src/styles/fullcalendar.css — 모듈 @import 제거(오버라이드만 유지), .dark 셀렉터 보강 +- apps/web/src/app/globals.css — html.dark에서 전역 색 변수 적용 +- apps/web/package.json — @fullcalendar/core 명시 의존성 추가(정합성 향상) + +검증 메모 +- dev 빌드 로그의 CSS 모듈 해석 오류 사라짐 +- 시스템 다크 또는 localStorage.theme='dark' → 즉시 다크 적용(.dark 클래스) +- `pnpm --filter web build` 성공 + diff --git a/admin/checkpoints/20250923-1615-UTC_0115-KST.md b/admin/checkpoints/20250923-1615-UTC_0115-KST.md new file mode 100644 index 00000000..b4471ac7 --- /dev/null +++ b/admin/checkpoints/20250923-1615-UTC_0115-KST.md @@ -0,0 +1,19 @@ +--- +file: admin/checkpoints/20250923-1615-UTC_0115-KST.md +title: 체크포인트 — RootLayout 스크립트 제거 및 서버사이드 다크 고정 +owner: duksan +created: 2025-09-23 16:15 UTC / 2025-09-24 01:15 KST +updated: 2025-09-23 16:43 UTC / 2025-09-24 01:43 KST +status: active +tags: [checkpoint, darkmode, hydration] +schemaVersion: 1 +description: 초기 진입 시 발생한