feat(design-system): map magazine palette to colors tokens#573
Merged
Conversation
Adds magPrimary/magAccent/magBg/magText to the colors object so TS consumers can reach the editorial palette without raw CSS vars. The --mag-* CSS vars already exist in globals.css; this only closes the TS-side SSOT drift. Refs #311 Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
12 tasks
CIOI
added a commit
that referenced
this pull request
May 24, 2026
…loader ops) (#577) * feat(data-pipeline): Instagram 엔티티 enrichment 파이프라인 추가 (#544) * feat(data-pipeline): add Instagram entity enrichment Adds a quota-aware Instagram account enrichment pipeline that keeps runtime state in assets while writing reviewed entity catalog data to operation. Co-authored-by: Cursor <cursoragent@cursor.com> * fix(data-pipeline): retry stale entity enrichment steps Co-authored-by: Cursor <cursoragent@cursor.com> * style(data-pipeline): format enrichment admin routes Co-authored-by: Cursor <cursoragent@cursor.com> --------- Co-authored-by: Cursor <cursoragent@cursor.com> * feat(admin): improve group member management UI (#546) Co-authored-by: Cursor <cursoragent@cursor.com> * feat(web): add legal pages and minimal footer for Rakuten affiliate (#553) Add About, Privacy Policy, Terms of Service, and Affiliate Disclosure pages with a streamlined footer so affiliate reviewers can reach policy content and contact email without dedicated contact routes. Closes #552 Co-authored-by: Cursor <cursoragent@cursor.com> * docs: Step 1 (ADR+architecture stub) + Step 2 (미분류 문서 매핑) — refs #518 (#542) * docs: ADR + architecture → vault stub 전환 (refs #518) 본문이 decoded-docs vault Architecture/ 로 이미 마이그레이션(M2) 완료된 상태. monorepo 원본은 vault redirect stub만 남김 — sync-policy.md 의 "MOVED" 룰 대로 vault 가 SoT, monorepo 원본은 stub. 변경 파일 (6): - docs/adr/ADR-0001-ai-dev-boilerplate.md - docs/adr/ADR-0002-llm-wiki-foundation.md - docs/architecture/README.md - docs/architecture/assets-project.md - docs/architecture/data-pipeline.md - docs/architecture/state-management.md 각 파일은 vault GitHub 링크 + Obsidian path + sync-policy 참조만 보유. 검증: vault 본문은 monorepo 본문에 frontmatter(date/tags/source/migrated_on) 만 추가된 형태로 정보 손실 없음. CLAUDE.md / docs/agent/ 의 architecture·adr 링크는 stub 을 거쳐 vault 로 redirect 되는 구조이므로 깨지지 않음. CLAUDE.md 직링크 교체는 Step 5(라우팅 업데이트)에서 처리. * docs: Step 2 — 미분류 문서 매핑 (refs #518) decoded-docs vault 마이그레이션 Step 2 산출물. docs/ + .planning/codebase/ 전체 파일을 transition-design.md §분류 원칙(5가지 판단 기준)에 따라 🟢 MONOREPO / 🔵 VAULT / ⚪ STUB / 🟡 ARCHIVE 로 분류. 핵심 결정: - wiki/ 전체 MONOREPO 유지 — tools/wiki/lib/config.ts 의 INDEX_PATH + INGEST_TOPICS 하드코딩, CLAUDE.md SSOT import 의존성 (spec과 충돌, Step 5 PR에서 spec 정정 예정) - .planning/codebase/ STUB 패턴 — CLAUDE.md L19/L25/L87-93 8건 직접 링크. Step 1 (ADR/architecture) 와 동일 패턴 적용 - qa-screenshots/ MONOREPO — visual-qa.spec.ts:41 테스트 출력 경로 집계: 🟢 65% / 🔵 28% / ⚪ 11% / 🟡 2%, 🔴 REVIEW 0건 (전부 확정). 다음: 팀 리뷰 → Step 3 (vault 복사 + stub 생성) * docs: Step 2 매핑 재점검 — Q3 B + Q4 E 반영 (refs #518) grill-docs 재점검 (2026-05-21, Q1~Q5) 결과 Step 2 매핑 정정: - Section A: post-centric, home-sections-feasibility → 🟢 MONOREPO 정정 - Section I: plans/specs/briefs 전체 🟢 MONOREPO 잔류 (Q4 E, 5-criteria 4/5 monorepo) - Section K: research/incidents/handoffs 전체 🟢 MONOREPO 잔류 - Section N: `.planning/codebase/*` STUB 패턴 폐기 → 🟢 MONOREPO 잔류 (Q3 B) · 갱신 책임 모호 + outdated 스냅샷이 vault "팀 지식"으로 위장하는 비용 회피 · CLAUDE.md L19/L25/L87-L93 직접 링크 변경 없음 집계 재계산: - 🟢 MONOREPO ~145 / ⚪ STUB 6 (Step 1) / 🔵 VAULT 9 / 🟡 ARCHIVE 2 - vault 이동 대상이 종전 ~35건 → 9건으로 축소 Step 3 scope: - A (이 commit): Step 2 매핑 정정. monorepo 변경 0건. - B (다음): vault `decoded-docs`에 9개 파일 복사 + frontmatter, 별도 PR. `Archive/` 신설안(Q2 C)은 Q4 E 채택으로 자연 폐기. * fix(docs): vault stub frontmatter 추가 — wiki-lint 통과 (refs #518) Step 1 (PR #542 first commit `64a5a76`) 에서 ADR + architecture 본문을 vault redirect stub으로 전환할 때 frontmatter도 함께 제거되어 wiki-lint MISSING_FRONTMATTER 실패. 6개 stub에 minimal frontmatter 추가: - docs/adr/ADR-0001-ai-dev-boilerplate.md - docs/adr/ADR-0002-llm-wiki-foundation.md - docs/architecture/README.md - docs/architecture/assets-project.md - docs/architecture/data-pipeline.md - docs/architecture/state-management.md 각 stub: owner=llm, status=deprecated (Step 5에서 삭제 예정), tags 에 [obsidian, deprecated] 포함하여 wiki-lint 허용 어휘 준수. ADR 의 title 콜론은 YAML parse 위해 큰따옴표 인용. * fix(vton): handle Vertex AI RAI filter error (#535) * docs: add content-studio pipeline v2 design spec (#530) Post picker modal, UUID packet ID fix, unified LLM call, channel thumbnails, and Research/Firecrawl removal. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * fix(vton): handle Vertex AI RAI filter with user-friendly error Vertex AI returns raiFilteredReason instead of image data when safety filter triggers. Log full response in dev and surface actionable message. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * docs: add content studio spec frontmatter --------- Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com> * ci(github): dispatch git events to decoded-docs vault (#556) Trigger decoded-docs repository_dispatch (git-event) when a PR is merged into main/dev, a release is published, or via manual workflow_dispatch. Pairs with the vault-sync workflow in decoded-docs to record changelog entries automatically. Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com> * ci(github): sync issue and project status automation (#555) * docs: add content-studio pipeline v2 design spec (#530) Post picker modal, UUID packet ID fix, unified LLM call, channel thumbnails, and Research/Firecrawl removal. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * ci(github): close linked issues on dev merge * ci(github): sync issue and project status automation --------- Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com> * revert: ci: dispatch git events to decoded-docs vault (#557) Reverts PR #556. An external dispatch source (likely decoded-app or a GitHub App) is already populating decoded-docs vault Changelog with a richer set of events (pr-opened, pr-merged, push, deploy-success). The new workflow added in PR #556 was duplicating dispatches and causing vault-sync concurrency cancellations. Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com> * docs(spec): mark telegram-bot-vault-integration as deprecated/superseded (#554) 원안(5/14) Phase 1+2가 decoded-agent의 manager agent + conversation digest agent로 흡수·발전되어 본 spec은 역사적 참조용으로 전환. - frontmatter status: draft → deprecated - superseded_by, superseded_date 필드 추가 - 본문 최상단에 redirect 안내 + 신규 위치(decoded-agent#61, vault history note) 링크 - H1 title (SUPERSEDED) 마커 - tags: superseded → deprecated (wiki-lint 허용 어휘) Refs: - closes/supersedes monorepo #516, #517 (both closed as not-planned/superseded) - decoded-agent epic: #61 (conversation digest) - vault history: decoded-docs Project/integrations/telegram-vault-bot.md * docs(harness): docs/agent + skills/commands 정합성 점검 (audit #558) (#559) * docs(harness): add 2026-05-21 docs/agent + skills/commands audit report HIGH/MEDIUM/LOW findings for .agents/skills/* (9 new), .claude/commands/* (6 new), and docs/agent ↔ decoded-docs vault routing. Confirms vault-dispatch.yml is intended state (#557 reverted a separate duplicate workflow). Companion master issue will track follow-up actions. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> * docs(skills): add excalidraw-generator and meeting-prep skills audit (2026-05-21)에서 즉시 커밋 가능 판정된 2개 스킬. - excalidraw-generator: 다이어그램 JSON 생성 - meeting-prep: 주간 업데이트 요약, 실 사용 검증된 동적 조회 사용 Refs #558 Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> * docs(skills): add 7 generator skills with F1/F2/F3 fixes applied audit #558 즉시 체크리스트 적용: - F1: model: Codex-sonnet-4-20250514 비표준 ID 줄 제거 - F2: specs/shared/ → specs/_shared/ (실제 경로 정정) - F2: git-workflow .Codex/agents/ → ~/.claude/agents/ 정정 - F3: data-model-generator lib/types/ → packages/shared/types/ prefix 추가 - F3: component-template-generator @/lib/types → @decoded/shared/types 정정 신규 스킬: - api-contract-generator, component-template-generator - data-model-generator, git-workflow - pencil-screen-ui, screen-spec-generator - supabase-migration-generator Refs #558 Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> * docs(commands): add Matt Pocock slash commands with F4 path fix audit #558 F4 적용: - /Users/kiyeol/.agents/ → ~/.agents/ (타 머신 호환) - gstack.md 컨벤션과 일치 신규 commands: - /grill, /grill-docs (plan/design 인터뷰) - /to-prd, /to-issues (PRD/이슈 분해) - /zoom-out (맥락 확장) - /setup-matt-skills (1회성 setup) Refs #558 Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> * docs(agent): add decoded-docs vault routing note to README audit #558 F6 적용. docs/agent/README.md가 CLAUDE.md의 vault 라우팅 컨벤션과 drift 상태였음 — vault 위치와 sync-policy 링크를 intro 직후에 추가하여 에이전트가 회의/결정/기획 질의를 vault로 라우팅하도록 명시. Refs #558 Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> * docs(claude): register 9 new skills + 6 Matt Pocock commands in skill routing audit #558 routing 표 등록. 신규 9개 spec/generator 스킬과 6개 Matt Pocock slash command를 CLAUDE.md Skill routing 섹션에 트리거 키워드와 함께 등록하여 에이전트가 자동으로 라우팅하도록 함. Refs #558 Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> * docs(agents): add Matt Pocock skills setup (F5) audit #558 F5 적용. /to-prd, /to-issues, /grill 등 Matt Pocock skills가 요구하는 1회성 setup 완료: - docs/agents/issue-tracker.md: GitHub Issues + gh CLI 컨벤션 - docs/agents/triage-labels.md: canonical 5-role mapping - docs/agents/domain.md: multi-context (monorepo) layout - CLAUDE.md: ## Agent skills 블록 추가 (3개 docs로 라우팅) decisions: - Issue tracker: GitHub (decodedcorp/decoded) - Triage labels: canonical defaults (기존 triage 라벨 없음) - Domain docs: multi-context, .planning/codebase/* + docs/adr/ 기반 Refs #558 Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> * fix(wiki): replace UNKNOWN_TAG values in harness-audit frontmatter wiki-lint CI 실패 해결 — "audit", "docs"는 tag vocabulary (docs/wiki/schema/tags.md)에 없는 태그. 의미가 가까운 "ops"와 audit이 위치한 폴더 기반 "superpowers"로 대체. before: [harness, agent, audit, docs] after: [harness, agent, ops, superpowers] Refs #558 #559 Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com> * chore(harness): audit #558 후속 정리 — gitignore + plans + command 등록 (#560) * chore(gitignore): ignore per-package OMC artifacts, .next.bak, .scratch audit #558 후속 F7. PR #559 작업 중 untracked 노이즈가 다수 — root .omc/ 정책(state 폴더 ignore, project-memory.json만 tracked)을 package 레벨에도 일관되게 적용. ignore: - packages/*/.omc/ (per-package OMC state, project-memory) - packages/*/.next.bak/ (Next.js 빌드 백업) - .scratch/ (로컬 작업물 디렉토리) 검증: git status -s에서 packages/web/.omc/, packages/api-server/.omc/, packages/web/.next.bak/, .scratch/ 모두 사라짐. Refs #558 Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> * docs(plans): add profile-tries-detail-modal + content-studio-pipeline-v2 plans audit #558 후속. 5/7, 5/14 작성된 구현 plan 2개를 작업 이력으로 보존. specs/...-design.md(origin/dev)가 설계 SOT, plans는 구현 task breakdown. - 2026-05-07-profile-tries-detail-modal.md (1293 lines) - 2026-05-14-content-studio-pipeline-v2.md (1892 lines) Refs #558 Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> * docs(commands): register /improve-codebase-architecture slash command audit #558 후속. Matt Pocock의 improve-codebase-architecture 스킬을 /grill, /to-prd 등과 동일 패턴으로 .claude/commands/에 등록. - 코드베이스 deepening opportunities 발견 - docs/agents/domain.md + docs/adr/ 기반 (PR #559 setup 결과 활용) - subagent_type=Explore 사용 - \$ARGUMENTS로 대상 영역 지정 (예: packages/web/lib/supabase) Refs #558 Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com> * feat(content-studio): unified pipeline v2 — LLM generation, post picker, thumbnails (#565) * fix(content-studio): use crypto.randomUUID() for packet/variant IDs Replace packet_{postId} format that caused 'invalid input syntax for type uuid' errors. DB uniqueness is enforced by content_packets.post_id unique constraint. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * refactor(content-studio): remove research schemas, add unified content schema Drop all Research/Firecrawl types (ResearchRun, ResearchSource, ResearchInsight, etc.) and research-related fields from ContentPacket, ContentVariant, generateVariantsRequestSchema, assetPlanRequestSchema, shortFormPlanRequestSchema. Add unifiedContentResponseSchema for the new single-call LLM pipeline that generates keywords + imagePrompts + channel variants together. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * refactor(content-studio): remove research module and all dependencies Remove the entire research subsystem (Firecrawl client, domain policy, normalization, query suggestions, recommendations, service) and clean all references from governance checks, LLM generation, asset/short-form pipelines, UI components, API routes, and tests. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * feat(content-studio): add rule keyword extraction and unified LLM generation Single OpenAI call now returns keywords, image prompts, and channel variants together, replacing the previous multi-call pattern. Template fallback preserved when LLM is unavailable or validation fails. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * feat(content-studio): add channel thumbnail generation API - schemas.ts — thumbnailChannelSchema + generateThumbnailsRequestSchema - assets/service.ts — generateChannelThumbnails(): parallel image gen per channel (youtube/instagram_feed/instagram_story) with partial failure handling - assets/thumbnails/route.ts — POST /api/v1/content/assets/thumbnails with admin auth - assets/index.ts — export new service functions - tests — 6 new tests (schema validation + generation + partial failures), 28 total passing Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * feat(content-studio): add PostPickerModal and post search API Admin 전용 포스트 검색 API(GET /api/v1/content/posts/search)와 PostPickerModal 컴포넌트 추가. ILIKE 검색, cursor 기반 무한스크롤, 이미지 그리드 UI로 Content Studio에서 포스트를 시각적으로 선택 가능. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * feat(content-studio): integrate PostPickerModal into page.tsx Add Browse button next to Post ID input for visual post selection, wiring PostPickerModal with open/close state and onSelect callback. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * fix(content-studio): add local API types and fix test type warnings Replace @/lib/api/generated/models imports with local api-types.ts to resolve missing module errors. Fix 'response possibly undefined' warnings in post-picker tests and add missing PostDetailResponse fields in test fixtures. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * fix(content-studio): align PostDetailResponse import to local api-types Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com> * chore(harness): entry SSOT + ownership-matrix + folder unify (#561 PR-A) (#562) * docs(harness): add docs/agent/skills.md as skills inventory canonical (#561) * docs(plan): add #561 harness docs/wiki SSOT implementation plan * docs(harness): expand AGENTS.md as canonical cross-tool entry (#561) * docs(harness): shrink CLAUDE.md to Claude Code overlay (#561) * docs(harness): align WARP.md as Warp overlay, defer common rules to AGENTS.md (#561) * docs(harness): point .cursor/rules to AGENTS.md as common entry (#561) * docs(harness): redirect AGENT.md to AGENTS.md (#561) * docs(harness): promote ownership-matrix to routing SSOT, add 5 new rows (#561) * docs(harness): merge docs/agents/ into docs/agent/setup/ (#561) * docs(wiki): add `skills` tag to vocabulary for docs/agent/skills.md (#561) `docs/agent/skills.md` introduced in this PR uses `tags: [agent, harness, skills]` but `skills` was missing from the vocab, breaking wiki-lint. Add `skills` to the domain category — slash command / skill 카탈로그 의미. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com> * fix(modal): prevent maximize/close buttons from overlapping social actions (#528) (#566) - Keep maximize/close buttons fixed at top-right on all breakpoints - Convert SocialActions footer to floating pill bar matching full-page style Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com> * chore(harness): recover #561 PR-B/PR-C commits that missed dev (#567) * docs(adr): add monorepo index pointing to vault canonical (#561) * docs(adr): convert ADR-0001/0002 to vault redirect stubs (#561) * docs(adr): make ADR stubs wiki-lint compliant (#561) ADR redirect stubs were failing wiki-lint due to: - MISSING_FIELD owner/tags - INVALID_STATUS "superseded-by-vault" (not in vocab) - H1_TITLE_MISMATCH - UNKNOWN_TAG "adr" in docs/adr/index.md Normalize frontmatter to the existing vocab: - status: deprecated for redirect stubs (vault is canonical) - tags: [harness, agent] - align H1 with title; move "(redirect to vault)" into body callout No semantic change — vault remains the canonical ADR source. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> * docs(archive): create docs/_archive/, move warehouse-schema (#561) * docs(wiki): fix INDEX.md interface/impl drift, manual maintenance explicit (#561) --------- Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com> * feat(harness): expand vault-dispatch to issues/comments/reviews/release (#569) * feat(harness): expand vault-dispatch to issues/comments/reviews/release (#540) Adds 4 new event types to the changelog dispatch: - issues (opened/closed/reopened/labeled/assigned) - issue_comment (created) - pull_request_review (submitted) - release (published) projects_v2_item is deferred — needs org-level webhook config and additional PAT scope (projects: read). Closes #540 Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com> * chore(ci): bump actions/checkout v4 → v6 (Node.js 24 support) GitHub Actions runner removes Node.js 20 on 2026-09-16. v6 explicitly supports Node.js 24. Affected: backend-release, db-drift-check, api-server-invariants, wiki-lint, daily-digest, health-check, deploy-backend. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 4.7 <noreply@anthropic.com> * chore(harness): #561 follow-up — archive misc docs + qa-screenshots quarterly + conventions lint cleanup (#570) #561 잔여 follow-up 3건을 하나의 PR로: 1. qa-screenshots 분기별 archive 정책 - docs/qa-screenshots/{40 PNG, DIFFERENCES.md, README.md} → docs/_archive/qa-screenshots-2026-Q1/ - docs/qa-screenshots/는 visual-qa.spec.ts 출력 경로로 유지 (새 placeholder README) - docs/_archive/README.md에 분기 정책 명시 (QN cutoff, 디렉토리 명명) 2. 미분류 docs 3건 archive (이전 grill-docs 재결정) - post-centric-refactoring-summary.md → _archive/ (2025-12-18 완료 회고 snapshot) - home-sections-backend-feasibility.md → _archive/ (MVP feasibility, home 리뉴얼로 superseded) - backend-frontend-status.md → _archive/ (2026-02-08 상태 snapshot) - 각 파일에 frontmatter status: archived + archive 사유 callout 추가 - docs/superpowers/plans/2026-05-15-docs-migration-step2-mapping.md에 재결정 노트 3. docs/wiki/schema/conventions.md TOO_MANY_RELATED warning 해소 (6→4) - 제거: .cursor/rules/{api-routes,react-components,rust-api}.mdc (파일별 패턴) - 추가: AGENTS.md (canonical entry) - 최종: ownership-matrix.md, AGENTS.md, CLAUDE.md, .cursor/rules/monorepo.mdc Verification: - bun run wiki:lint → 0 errors, 0 warnings (이전: 1 warning) - archived 파일 참조는 historical plan(2026-05-15 mapping, 2026-05-21 #561 plan)만 잔존, OK Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com> * feat(design-system): map magazine palette to colors tokens (#573) Adds magPrimary/magAccent/magBg/magText to the colors object so TS consumers can reach the editorial palette without raw CSS vars. The --mag-* CSS vars already exist in globals.css; this only closes the TS-side SSOT drift. Refs #311 Co-authored-by: Claude Opus 4.7 <noreply@anthropic.com> * feat(web): add GA4 integration for Rakuten affiliate traffic (#568) (#574) Load Google Analytics when NEXT_PUBLIC_GA_MEASUREMENT_ID is set so production traffic can be reported for affiliate program approval. Co-authored-by: Cursor <cursoragent@cursor.com> * chore(ops): mount Instaloader session volume for prod ai-server (#575) (#576) Persist Instagram Instaloader sessions across ai container restarts and sync .env.backend.example with prod-required RAW_POSTS_R2_* / INSTAGRAM_* keys. Co-authored-by: Cursor <cursoragent@cursor.com> --------- Co-authored-by: Cursor <cursoragent@cursor.com> Co-authored-by: Kiyori <113906780+thxforall@users.noreply.github.com> Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
CIOI
added a commit
that referenced
this pull request
May 25, 2026
) * feat(data-pipeline): Instagram 엔티티 enrichment 파이프라인 추가 (#544) * feat(data-pipeline): add Instagram entity enrichment Adds a quota-aware Instagram account enrichment pipeline that keeps runtime state in assets while writing reviewed entity catalog data to operation. Co-authored-by: Cursor <cursoragent@cursor.com> * fix(data-pipeline): retry stale entity enrichment steps Co-authored-by: Cursor <cursoragent@cursor.com> * style(data-pipeline): format enrichment admin routes Co-authored-by: Cursor <cursoragent@cursor.com> --------- Co-authored-by: Cursor <cursoragent@cursor.com> * feat(admin): improve group member management UI (#546) Co-authored-by: Cursor <cursoragent@cursor.com> * feat(web): add legal pages and minimal footer for Rakuten affiliate (#553) Add About, Privacy Policy, Terms of Service, and Affiliate Disclosure pages with a streamlined footer so affiliate reviewers can reach policy content and contact email without dedicated contact routes. Closes #552 Co-authored-by: Cursor <cursoragent@cursor.com> * docs: Step 1 (ADR+architecture stub) + Step 2 (미분류 문서 매핑) — refs #518 (#542) * docs: ADR + architecture → vault stub 전환 (refs #518) 본문이 decoded-docs vault Architecture/ 로 이미 마이그레이션(M2) 완료된 상태. monorepo 원본은 vault redirect stub만 남김 — sync-policy.md 의 "MOVED" 룰 대로 vault 가 SoT, monorepo 원본은 stub. 변경 파일 (6): - docs/adr/ADR-0001-ai-dev-boilerplate.md - docs/adr/ADR-0002-llm-wiki-foundation.md - docs/architecture/README.md - docs/architecture/assets-project.md - docs/architecture/data-pipeline.md - docs/architecture/state-management.md 각 파일은 vault GitHub 링크 + Obsidian path + sync-policy 참조만 보유. 검증: vault 본문은 monorepo 본문에 frontmatter(date/tags/source/migrated_on) 만 추가된 형태로 정보 손실 없음. CLAUDE.md / docs/agent/ 의 architecture·adr 링크는 stub 을 거쳐 vault 로 redirect 되는 구조이므로 깨지지 않음. CLAUDE.md 직링크 교체는 Step 5(라우팅 업데이트)에서 처리. * docs: Step 2 — 미분류 문서 매핑 (refs #518) decoded-docs vault 마이그레이션 Step 2 산출물. docs/ + .planning/codebase/ 전체 파일을 transition-design.md §분류 원칙(5가지 판단 기준)에 따라 🟢 MONOREPO / 🔵 VAULT / ⚪ STUB / 🟡 ARCHIVE 로 분류. 핵심 결정: - wiki/ 전체 MONOREPO 유지 — tools/wiki/lib/config.ts 의 INDEX_PATH + INGEST_TOPICS 하드코딩, CLAUDE.md SSOT import 의존성 (spec과 충돌, Step 5 PR에서 spec 정정 예정) - .planning/codebase/ STUB 패턴 — CLAUDE.md L19/L25/L87-93 8건 직접 링크. Step 1 (ADR/architecture) 와 동일 패턴 적용 - qa-screenshots/ MONOREPO — visual-qa.spec.ts:41 테스트 출력 경로 집계: 🟢 65% / 🔵 28% / ⚪ 11% / 🟡 2%, 🔴 REVIEW 0건 (전부 확정). 다음: 팀 리뷰 → Step 3 (vault 복사 + stub 생성) * docs: Step 2 매핑 재점검 — Q3 B + Q4 E 반영 (refs #518) grill-docs 재점검 (2026-05-21, Q1~Q5) 결과 Step 2 매핑 정정: - Section A: post-centric, home-sections-feasibility → 🟢 MONOREPO 정정 - Section I: plans/specs/briefs 전체 🟢 MONOREPO 잔류 (Q4 E, 5-criteria 4/5 monorepo) - Section K: research/incidents/handoffs 전체 🟢 MONOREPO 잔류 - Section N: `.planning/codebase/*` STUB 패턴 폐기 → 🟢 MONOREPO 잔류 (Q3 B) · 갱신 책임 모호 + outdated 스냅샷이 vault "팀 지식"으로 위장하는 비용 회피 · CLAUDE.md L19/L25/L87-L93 직접 링크 변경 없음 집계 재계산: - 🟢 MONOREPO ~145 / ⚪ STUB 6 (Step 1) / 🔵 VAULT 9 / 🟡 ARCHIVE 2 - vault 이동 대상이 종전 ~35건 → 9건으로 축소 Step 3 scope: - A (이 commit): Step 2 매핑 정정. monorepo 변경 0건. - B (다음): vault `decoded-docs`에 9개 파일 복사 + frontmatter, 별도 PR. `Archive/` 신설안(Q2 C)은 Q4 E 채택으로 자연 폐기. * fix(docs): vault stub frontmatter 추가 — wiki-lint 통과 (refs #518) Step 1 (PR #542 first commit `64a5a76`) 에서 ADR + architecture 본문을 vault redirect stub으로 전환할 때 frontmatter도 함께 제거되어 wiki-lint MISSING_FRONTMATTER 실패. 6개 stub에 minimal frontmatter 추가: - docs/adr/ADR-0001-ai-dev-boilerplate.md - docs/adr/ADR-0002-llm-wiki-foundation.md - docs/architecture/README.md - docs/architecture/assets-project.md - docs/architecture/data-pipeline.md - docs/architecture/state-management.md 각 stub: owner=llm, status=deprecated (Step 5에서 삭제 예정), tags 에 [obsidian, deprecated] 포함하여 wiki-lint 허용 어휘 준수. ADR 의 title 콜론은 YAML parse 위해 큰따옴표 인용. * fix(vton): handle Vertex AI RAI filter error (#535) * docs: add content-studio pipeline v2 design spec (#530) Post picker modal, UUID packet ID fix, unified LLM call, channel thumbnails, and Research/Firecrawl removal. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * fix(vton): handle Vertex AI RAI filter with user-friendly error Vertex AI returns raiFilteredReason instead of image data when safety filter triggers. Log full response in dev and surface actionable message. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * docs: add content studio spec frontmatter --------- Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com> * ci(github): dispatch git events to decoded-docs vault (#556) Trigger decoded-docs repository_dispatch (git-event) when a PR is merged into main/dev, a release is published, or via manual workflow_dispatch. Pairs with the vault-sync workflow in decoded-docs to record changelog entries automatically. Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com> * ci(github): sync issue and project status automation (#555) * docs: add content-studio pipeline v2 design spec (#530) Post picker modal, UUID packet ID fix, unified LLM call, channel thumbnails, and Research/Firecrawl removal. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * ci(github): close linked issues on dev merge * ci(github): sync issue and project status automation --------- Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com> * revert: ci: dispatch git events to decoded-docs vault (#557) Reverts PR #556. An external dispatch source (likely decoded-app or a GitHub App) is already populating decoded-docs vault Changelog with a richer set of events (pr-opened, pr-merged, push, deploy-success). The new workflow added in PR #556 was duplicating dispatches and causing vault-sync concurrency cancellations. Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com> * docs(spec): mark telegram-bot-vault-integration as deprecated/superseded (#554) 원안(5/14) Phase 1+2가 decoded-agent의 manager agent + conversation digest agent로 흡수·발전되어 본 spec은 역사적 참조용으로 전환. - frontmatter status: draft → deprecated - superseded_by, superseded_date 필드 추가 - 본문 최상단에 redirect 안내 + 신규 위치(decoded-agent#61, vault history note) 링크 - H1 title (SUPERSEDED) 마커 - tags: superseded → deprecated (wiki-lint 허용 어휘) Refs: - closes/supersedes monorepo #516, #517 (both closed as not-planned/superseded) - decoded-agent epic: #61 (conversation digest) - vault history: decoded-docs Project/integrations/telegram-vault-bot.md * docs(harness): docs/agent + skills/commands 정합성 점검 (audit #558) (#559) * docs(harness): add 2026-05-21 docs/agent + skills/commands audit report HIGH/MEDIUM/LOW findings for .agents/skills/* (9 new), .claude/commands/* (6 new), and docs/agent ↔ decoded-docs vault routing. Confirms vault-dispatch.yml is intended state (#557 reverted a separate duplicate workflow). Companion master issue will track follow-up actions. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> * docs(skills): add excalidraw-generator and meeting-prep skills audit (2026-05-21)에서 즉시 커밋 가능 판정된 2개 스킬. - excalidraw-generator: 다이어그램 JSON 생성 - meeting-prep: 주간 업데이트 요약, 실 사용 검증된 동적 조회 사용 Refs #558 Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> * docs(skills): add 7 generator skills with F1/F2/F3 fixes applied audit #558 즉시 체크리스트 적용: - F1: model: Codex-sonnet-4-20250514 비표준 ID 줄 제거 - F2: specs/shared/ → specs/_shared/ (실제 경로 정정) - F2: git-workflow .Codex/agents/ → ~/.claude/agents/ 정정 - F3: data-model-generator lib/types/ → packages/shared/types/ prefix 추가 - F3: component-template-generator @/lib/types → @decoded/shared/types 정정 신규 스킬: - api-contract-generator, component-template-generator - data-model-generator, git-workflow - pencil-screen-ui, screen-spec-generator - supabase-migration-generator Refs #558 Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> * docs(commands): add Matt Pocock slash commands with F4 path fix audit #558 F4 적용: - /Users/kiyeol/.agents/ → ~/.agents/ (타 머신 호환) - gstack.md 컨벤션과 일치 신규 commands: - /grill, /grill-docs (plan/design 인터뷰) - /to-prd, /to-issues (PRD/이슈 분해) - /zoom-out (맥락 확장) - /setup-matt-skills (1회성 setup) Refs #558 Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> * docs(agent): add decoded-docs vault routing note to README audit #558 F6 적용. docs/agent/README.md가 CLAUDE.md의 vault 라우팅 컨벤션과 drift 상태였음 — vault 위치와 sync-policy 링크를 intro 직후에 추가하여 에이전트가 회의/결정/기획 질의를 vault로 라우팅하도록 명시. Refs #558 Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> * docs(claude): register 9 new skills + 6 Matt Pocock commands in skill routing audit #558 routing 표 등록. 신규 9개 spec/generator 스킬과 6개 Matt Pocock slash command를 CLAUDE.md Skill routing 섹션에 트리거 키워드와 함께 등록하여 에이전트가 자동으로 라우팅하도록 함. Refs #558 Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> * docs(agents): add Matt Pocock skills setup (F5) audit #558 F5 적용. /to-prd, /to-issues, /grill 등 Matt Pocock skills가 요구하는 1회성 setup 완료: - docs/agents/issue-tracker.md: GitHub Issues + gh CLI 컨벤션 - docs/agents/triage-labels.md: canonical 5-role mapping - docs/agents/domain.md: multi-context (monorepo) layout - CLAUDE.md: ## Agent skills 블록 추가 (3개 docs로 라우팅) decisions: - Issue tracker: GitHub (decodedcorp/decoded) - Triage labels: canonical defaults (기존 triage 라벨 없음) - Domain docs: multi-context, .planning/codebase/* + docs/adr/ 기반 Refs #558 Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> * fix(wiki): replace UNKNOWN_TAG values in harness-audit frontmatter wiki-lint CI 실패 해결 — "audit", "docs"는 tag vocabulary (docs/wiki/schema/tags.md)에 없는 태그. 의미가 가까운 "ops"와 audit이 위치한 폴더 기반 "superpowers"로 대체. before: [harness, agent, audit, docs] after: [harness, agent, ops, superpowers] Refs #558 #559 Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com> * chore(harness): audit #558 후속 정리 — gitignore + plans + command 등록 (#560) * chore(gitignore): ignore per-package OMC artifacts, .next.bak, .scratch audit #558 후속 F7. PR #559 작업 중 untracked 노이즈가 다수 — root .omc/ 정책(state 폴더 ignore, project-memory.json만 tracked)을 package 레벨에도 일관되게 적용. ignore: - packages/*/.omc/ (per-package OMC state, project-memory) - packages/*/.next.bak/ (Next.js 빌드 백업) - .scratch/ (로컬 작업물 디렉토리) 검증: git status -s에서 packages/web/.omc/, packages/api-server/.omc/, packages/web/.next.bak/, .scratch/ 모두 사라짐. Refs #558 Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> * docs(plans): add profile-tries-detail-modal + content-studio-pipeline-v2 plans audit #558 후속. 5/7, 5/14 작성된 구현 plan 2개를 작업 이력으로 보존. specs/...-design.md(origin/dev)가 설계 SOT, plans는 구현 task breakdown. - 2026-05-07-profile-tries-detail-modal.md (1293 lines) - 2026-05-14-content-studio-pipeline-v2.md (1892 lines) Refs #558 Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> * docs(commands): register /improve-codebase-architecture slash command audit #558 후속. Matt Pocock의 improve-codebase-architecture 스킬을 /grill, /to-prd 등과 동일 패턴으로 .claude/commands/에 등록. - 코드베이스 deepening opportunities 발견 - docs/agents/domain.md + docs/adr/ 기반 (PR #559 setup 결과 활용) - subagent_type=Explore 사용 - \$ARGUMENTS로 대상 영역 지정 (예: packages/web/lib/supabase) Refs #558 Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com> * feat(content-studio): unified pipeline v2 — LLM generation, post picker, thumbnails (#565) * fix(content-studio): use crypto.randomUUID() for packet/variant IDs Replace packet_{postId} format that caused 'invalid input syntax for type uuid' errors. DB uniqueness is enforced by content_packets.post_id unique constraint. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * refactor(content-studio): remove research schemas, add unified content schema Drop all Research/Firecrawl types (ResearchRun, ResearchSource, ResearchInsight, etc.) and research-related fields from ContentPacket, ContentVariant, generateVariantsRequestSchema, assetPlanRequestSchema, shortFormPlanRequestSchema. Add unifiedContentResponseSchema for the new single-call LLM pipeline that generates keywords + imagePrompts + channel variants together. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * refactor(content-studio): remove research module and all dependencies Remove the entire research subsystem (Firecrawl client, domain policy, normalization, query suggestions, recommendations, service) and clean all references from governance checks, LLM generation, asset/short-form pipelines, UI components, API routes, and tests. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * feat(content-studio): add rule keyword extraction and unified LLM generation Single OpenAI call now returns keywords, image prompts, and channel variants together, replacing the previous multi-call pattern. Template fallback preserved when LLM is unavailable or validation fails. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * feat(content-studio): add channel thumbnail generation API - schemas.ts — thumbnailChannelSchema + generateThumbnailsRequestSchema - assets/service.ts — generateChannelThumbnails(): parallel image gen per channel (youtube/instagram_feed/instagram_story) with partial failure handling - assets/thumbnails/route.ts — POST /api/v1/content/assets/thumbnails with admin auth - assets/index.ts — export new service functions - tests — 6 new tests (schema validation + generation + partial failures), 28 total passing Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * feat(content-studio): add PostPickerModal and post search API Admin 전용 포스트 검색 API(GET /api/v1/content/posts/search)와 PostPickerModal 컴포넌트 추가. ILIKE 검색, cursor 기반 무한스크롤, 이미지 그리드 UI로 Content Studio에서 포스트를 시각적으로 선택 가능. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * feat(content-studio): integrate PostPickerModal into page.tsx Add Browse button next to Post ID input for visual post selection, wiring PostPickerModal with open/close state and onSelect callback. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * fix(content-studio): add local API types and fix test type warnings Replace @/lib/api/generated/models imports with local api-types.ts to resolve missing module errors. Fix 'response possibly undefined' warnings in post-picker tests and add missing PostDetailResponse fields in test fixtures. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * fix(content-studio): align PostDetailResponse import to local api-types Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com> * chore(harness): entry SSOT + ownership-matrix + folder unify (#561 PR-A) (#562) * docs(harness): add docs/agent/skills.md as skills inventory canonical (#561) * docs(plan): add #561 harness docs/wiki SSOT implementation plan * docs(harness): expand AGENTS.md as canonical cross-tool entry (#561) * docs(harness): shrink CLAUDE.md to Claude Code overlay (#561) * docs(harness): align WARP.md as Warp overlay, defer common rules to AGENTS.md (#561) * docs(harness): point .cursor/rules to AGENTS.md as common entry (#561) * docs(harness): redirect AGENT.md to AGENTS.md (#561) * docs(harness): promote ownership-matrix to routing SSOT, add 5 new rows (#561) * docs(harness): merge docs/agents/ into docs/agent/setup/ (#561) * docs(wiki): add `skills` tag to vocabulary for docs/agent/skills.md (#561) `docs/agent/skills.md` introduced in this PR uses `tags: [agent, harness, skills]` but `skills` was missing from the vocab, breaking wiki-lint. Add `skills` to the domain category — slash command / skill 카탈로그 의미. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com> * fix(modal): prevent maximize/close buttons from overlapping social actions (#528) (#566) - Keep maximize/close buttons fixed at top-right on all breakpoints - Convert SocialActions footer to floating pill bar matching full-page style Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com> * chore(harness): recover #561 PR-B/PR-C commits that missed dev (#567) * docs(adr): add monorepo index pointing to vault canonical (#561) * docs(adr): convert ADR-0001/0002 to vault redirect stubs (#561) * docs(adr): make ADR stubs wiki-lint compliant (#561) ADR redirect stubs were failing wiki-lint due to: - MISSING_FIELD owner/tags - INVALID_STATUS "superseded-by-vault" (not in vocab) - H1_TITLE_MISMATCH - UNKNOWN_TAG "adr" in docs/adr/index.md Normalize frontmatter to the existing vocab: - status: deprecated for redirect stubs (vault is canonical) - tags: [harness, agent] - align H1 with title; move "(redirect to vault)" into body callout No semantic change — vault remains the canonical ADR source. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> * docs(archive): create docs/_archive/, move warehouse-schema (#561) * docs(wiki): fix INDEX.md interface/impl drift, manual maintenance explicit (#561) --------- Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com> * feat(harness): expand vault-dispatch to issues/comments/reviews/release (#569) * feat(harness): expand vault-dispatch to issues/comments/reviews/release (#540) Adds 4 new event types to the changelog dispatch: - issues (opened/closed/reopened/labeled/assigned) - issue_comment (created) - pull_request_review (submitted) - release (published) projects_v2_item is deferred — needs org-level webhook config and additional PAT scope (projects: read). Closes #540 Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com> * chore(ci): bump actions/checkout v4 → v6 (Node.js 24 support) GitHub Actions runner removes Node.js 20 on 2026-09-16. v6 explicitly supports Node.js 24. Affected: backend-release, db-drift-check, api-server-invariants, wiki-lint, daily-digest, health-check, deploy-backend. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 4.7 <noreply@anthropic.com> * chore(harness): #561 follow-up — archive misc docs + qa-screenshots quarterly + conventions lint cleanup (#570) #561 잔여 follow-up 3건을 하나의 PR로: 1. qa-screenshots 분기별 archive 정책 - docs/qa-screenshots/{40 PNG, DIFFERENCES.md, README.md} → docs/_archive/qa-screenshots-2026-Q1/ - docs/qa-screenshots/는 visual-qa.spec.ts 출력 경로로 유지 (새 placeholder README) - docs/_archive/README.md에 분기 정책 명시 (QN cutoff, 디렉토리 명명) 2. 미분류 docs 3건 archive (이전 grill-docs 재결정) - post-centric-refactoring-summary.md → _archive/ (2025-12-18 완료 회고 snapshot) - home-sections-backend-feasibility.md → _archive/ (MVP feasibility, home 리뉴얼로 superseded) - backend-frontend-status.md → _archive/ (2026-02-08 상태 snapshot) - 각 파일에 frontmatter status: archived + archive 사유 callout 추가 - docs/superpowers/plans/2026-05-15-docs-migration-step2-mapping.md에 재결정 노트 3. docs/wiki/schema/conventions.md TOO_MANY_RELATED warning 해소 (6→4) - 제거: .cursor/rules/{api-routes,react-components,rust-api}.mdc (파일별 패턴) - 추가: AGENTS.md (canonical entry) - 최종: ownership-matrix.md, AGENTS.md, CLAUDE.md, .cursor/rules/monorepo.mdc Verification: - bun run wiki:lint → 0 errors, 0 warnings (이전: 1 warning) - archived 파일 참조는 historical plan(2026-05-15 mapping, 2026-05-21 #561 plan)만 잔존, OK Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com> * feat(design-system): map magazine palette to colors tokens (#573) Adds magPrimary/magAccent/magBg/magText to the colors object so TS consumers can reach the editorial palette without raw CSS vars. The --mag-* CSS vars already exist in globals.css; this only closes the TS-side SSOT drift. Refs #311 Co-authored-by: Claude Opus 4.7 <noreply@anthropic.com> * feat(web): add GA4 integration for Rakuten affiliate traffic (#568) (#574) Load Google Analytics when NEXT_PUBLIC_GA_MEASUREMENT_ID is set so production traffic can be reported for affiliate program approval. Co-authored-by: Cursor <cursoragent@cursor.com> * chore(ops): mount Instaloader session volume for prod ai-server (#575) (#576) Persist Instagram Instaloader sessions across ai container restarts and sync .env.backend.example with prod-required RAW_POSTS_R2_* / INSTAGRAM_* keys. Co-authored-by: Cursor <cursoragent@cursor.com> * fix(admin): serve instagram enrichment list via api-server (#578) (#583) * fix(admin): serve instagram enrichment list via api-server, not web service role Fixes #578 — move operation DB reads to GET /api/v1/admin/entity-enrichment/instagram-accounts so Vercel web never needs DATABASE_SERVICE_ROLE_KEY. Web BFF proxies with admin JWT only. Co-authored-by: Cursor <cursoragent@cursor.com> * docs(database): note api-server admin reads and #580 program links Part of #578 — enrichment RFC points to epic/issues; operating-model table links program tracking on GitHub instead of a separate monorepo file. Co-authored-by: Cursor <cursoragent@cursor.com> * style(web): format instagram-accounts admin proxy route Co-authored-by: Cursor <cursoragent@cursor.com> * style(api-server): rustfmt entity_enrichment admin module Co-authored-by: Cursor <cursoragent@cursor.com> * fix(api-server): satisfy clippy on entity_enrichment SQL statements Co-authored-by: Cursor <cursoragent@cursor.com> * test(api-server): unit tests for entity enrichment instagram-accounts admin API Covers ILIKE escaping, summary pending counts, account row mapping, and DB errors. Co-authored-by: Cursor <cursoragent@cursor.com> --------- Co-authored-by: Cursor <cursoragent@cursor.com> --------- Co-authored-by: Cursor <cursoragent@cursor.com> Co-authored-by: Kiyori <113906780+thxforall@users.noreply.github.com> Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
4 tasks
3 tasks
thxforall
added a commit
that referenced
this pull request
May 28, 2026
…ual palette (#589) * docs(design-system): bump README to v2.2.0 with content fundamentals + dual palette - Version: 2.1.0 -> 2.2.0, Last Updated: 2026-05-28 - Add v2.2 변경사항: Content Fundamentals, Animations 카탈로그, Dual Palette, Magazine palette tokens (#573), Navigation Facts, Home sequence, IBM Plex Mono (inline), DecodedLogo WebGL - Document Index: 신규 Foundation (v2.2) 섹션 — content-fundamentals.md, animations.md 추가 - Tech Stack table 확장: OKLCH + Hex magazine palette, typography 4종, three.js + @chenglou/pretext (DecodedLogo) - Navigation Facts + Home Page Sequence 섹션 추가 (app/page.tsx:568 앵커) Closes #572 (part 1/7). Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> * docs(design-system): add content-fundamentals.md 7 sections covering Voice / Casing / Person / Language / Pricing / Numbers / Emoji policy with Do/Don't rules and code anchors: - Pricing: ko-KR locale + ₩ prefix, toLocaleString (앵커: DecodedSolutionsSection.tsx:40 — 마이그레이션 대상) - Numbers: 사용자 표면은 toLocaleString 통과 (앵커: lib/utils/format.ts:36) - Voice: editorial(큐레이션) vs product UI(명료) 분리 - Language: ko-KR 기본, 고유명사·기술 용어 원문 유지 - Emoji: editorial 표면 금지, product UI 절제, Lucide 우선 Closes #572 (part 2/7). Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> * docs(design-system): add animations.md catalog 15+ CSS keyframe catalog with file/line anchors from packages/web/app/globals.css: - dash-flow (L299), hologram-* family (L318-L351), spot-* family (L410-L458), slide-up (L487), shimmer (L503), ai-summary-* (L522-L535), card-glow (L551), marquee-c (L585) - duration/easing/용도/reduce-motion 컬럼 - Easing 함수 정리: ease-out (단방향 reveal), ease-in-out (펄스), linear (무한 flow), cubic-bezier(0.22, 1, 0.36, 1) — observe pattern, cubic-bezier(0.16, 1, 0.3, 1) — ai-summary smooth reveal - prefers-reduced-motion 정책: 4개 미디어 쿼리 블록 + .js-observe transition fallback - 사용 예시: spot 마커, skeleton shimmer, ai-summary, .js-observe Closes #572 (part 3/7). Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> * docs(design-system): patterns.md add 5.4 dual palette usage * docs(design-system): tokens.md add magazine palette sub-table * docs(agent): rewrite design-system-llm.md as v2.2.0 1-pager SSOT * docs(agent): design-system-summary.md add v2.2.0 entry --------- Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
14 tasks
thxforall
added a commit
that referenced
this pull request
May 28, 2026
…ual palette (#589) * docs(design-system): bump README to v2.2.0 with content fundamentals + dual palette - Version: 2.1.0 -> 2.2.0, Last Updated: 2026-05-28 - Add v2.2 변경사항: Content Fundamentals, Animations 카탈로그, Dual Palette, Magazine palette tokens (#573), Navigation Facts, Home sequence, IBM Plex Mono (inline), DecodedLogo WebGL - Document Index: 신규 Foundation (v2.2) 섹션 — content-fundamentals.md, animations.md 추가 - Tech Stack table 확장: OKLCH + Hex magazine palette, typography 4종, three.js + @chenglou/pretext (DecodedLogo) - Navigation Facts + Home Page Sequence 섹션 추가 (app/page.tsx:568 앵커) Closes #572 (part 1/7). Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> * docs(design-system): add content-fundamentals.md 7 sections covering Voice / Casing / Person / Language / Pricing / Numbers / Emoji policy with Do/Don't rules and code anchors: - Pricing: ko-KR locale + ₩ prefix, toLocaleString (앵커: DecodedSolutionsSection.tsx:40 — 마이그레이션 대상) - Numbers: 사용자 표면은 toLocaleString 통과 (앵커: lib/utils/format.ts:36) - Voice: editorial(큐레이션) vs product UI(명료) 분리 - Language: ko-KR 기본, 고유명사·기술 용어 원문 유지 - Emoji: editorial 표면 금지, product UI 절제, Lucide 우선 Closes #572 (part 2/7). Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> * docs(design-system): add animations.md catalog 15+ CSS keyframe catalog with file/line anchors from packages/web/app/globals.css: - dash-flow (L299), hologram-* family (L318-L351), spot-* family (L410-L458), slide-up (L487), shimmer (L503), ai-summary-* (L522-L535), card-glow (L551), marquee-c (L585) - duration/easing/용도/reduce-motion 컬럼 - Easing 함수 정리: ease-out (단방향 reveal), ease-in-out (펄스), linear (무한 flow), cubic-bezier(0.22, 1, 0.36, 1) — observe pattern, cubic-bezier(0.16, 1, 0.3, 1) — ai-summary smooth reveal - prefers-reduced-motion 정책: 4개 미디어 쿼리 블록 + .js-observe transition fallback - 사용 예시: spot 마커, skeleton shimmer, ai-summary, .js-observe Closes #572 (part 3/7). Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> * docs(design-system): patterns.md add 5.4 dual palette usage * docs(design-system): tokens.md add magazine palette sub-table * docs(agent): rewrite design-system-llm.md as v2.2.0 1-pager SSOT * docs(agent): design-system-summary.md add v2.2.0 entry --------- Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
thxforall
added a commit
that referenced
this pull request
May 28, 2026
* feat(ci): schema drift PR gate (TS<->DB) — #373 v2 (#588) * docs(database): add schema-drift-sot.md SSOT mapping (#373 v2) TS 상수 ↔ DB CHECK constraint 매핑 SSOT. scripts/check-schema-drift.ts 의 SOT_MAPPINGS 와 함께 갱신한다. v2 PR gate 의 동작/허용 constraint 형식/ 의도적 우회(drift-bypass label)/v3 후속 항목(posts.status, generated types) 명시. * feat(scripts): add check-schema-drift.ts for TS<->DB enum drift (#373 v2) ts-morph 로 TS 상수 (`export const X = [...] as const`) 값 set 추출 → psql 로 pg_get_constraintdef 파싱 → set-equality 비교. 세 가지 CHECK constraint 형식 (status::text=ANY ARRAY, col=ANY ARRAY, IN list) 지원. drift 1건 이상이면 exit 1, stdout 은 PR comment 용 markdown report. devDependency: ts-morph@^24.0.0 추가. * feat(ci): add schema-drift.yml PR gate workflow (#373 v2) postgres:17 service + postgresql-client-17 + bun install + supabase migrations 순차 적용 + check-schema-drift.ts 실행 + sticky PR comment (marocchino/sticky-pull-request-comment@v2, header=schema-drift). drift-bypass label: continue-on-error 로 job green 유지 (comment 는 유지). branch protection 별도 설정 필요. * docs(database): drift-check.md mark v2 PR gate landed (#373) v1 nightly 와 v2 PR gate 채널을 분리 명시. v2 세부는 schema-drift-sot.md 에서 별도 owning. * docs(design-system): v2.2.0 동기화 — content fundamentals, animations, dual palette (#589) * docs(design-system): bump README to v2.2.0 with content fundamentals + dual palette - Version: 2.1.0 -> 2.2.0, Last Updated: 2026-05-28 - Add v2.2 변경사항: Content Fundamentals, Animations 카탈로그, Dual Palette, Magazine palette tokens (#573), Navigation Facts, Home sequence, IBM Plex Mono (inline), DecodedLogo WebGL - Document Index: 신규 Foundation (v2.2) 섹션 — content-fundamentals.md, animations.md 추가 - Tech Stack table 확장: OKLCH + Hex magazine palette, typography 4종, three.js + @chenglou/pretext (DecodedLogo) - Navigation Facts + Home Page Sequence 섹션 추가 (app/page.tsx:568 앵커) Closes #572 (part 1/7). Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> * docs(design-system): add content-fundamentals.md 7 sections covering Voice / Casing / Person / Language / Pricing / Numbers / Emoji policy with Do/Don't rules and code anchors: - Pricing: ko-KR locale + ₩ prefix, toLocaleString (앵커: DecodedSolutionsSection.tsx:40 — 마이그레이션 대상) - Numbers: 사용자 표면은 toLocaleString 통과 (앵커: lib/utils/format.ts:36) - Voice: editorial(큐레이션) vs product UI(명료) 분리 - Language: ko-KR 기본, 고유명사·기술 용어 원문 유지 - Emoji: editorial 표면 금지, product UI 절제, Lucide 우선 Closes #572 (part 2/7). Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> * docs(design-system): add animations.md catalog 15+ CSS keyframe catalog with file/line anchors from packages/web/app/globals.css: - dash-flow (L299), hologram-* family (L318-L351), spot-* family (L410-L458), slide-up (L487), shimmer (L503), ai-summary-* (L522-L535), card-glow (L551), marquee-c (L585) - duration/easing/용도/reduce-motion 컬럼 - Easing 함수 정리: ease-out (단방향 reveal), ease-in-out (펄스), linear (무한 flow), cubic-bezier(0.22, 1, 0.36, 1) — observe pattern, cubic-bezier(0.16, 1, 0.3, 1) — ai-summary smooth reveal - prefers-reduced-motion 정책: 4개 미디어 쿼리 블록 + .js-observe transition fallback - 사용 예시: spot 마커, skeleton shimmer, ai-summary, .js-observe Closes #572 (part 3/7). Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> * docs(design-system): patterns.md add 5.4 dual palette usage * docs(design-system): tokens.md add magazine palette sub-table * docs(agent): rewrite design-system-llm.md as v2.2.0 1-pager SSOT * docs(agent): design-system-summary.md add v2.2.0 entry --------- Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com> * feat(content-studio): Video Generation Pipeline — AI 영상 합성 통합 (#592) * feat(content-studio): add xAI scene video pipeline * docs(content-studio): plan video job pipeline * docs(content-studio): harden video job plan * feat(content-studio): add video job pipeline * feat(content-studio): abstract video providers * feat(content-studio): select video mode per scene * feat(content-studio): compose final video exports * feat(content-studio): resume persisted video jobs * feat(content-studio): attach governance to video jobs * fix(content-studio): strengthen short-form video prompts * feat(content-studio): add local video download runner * feat(content-studio): save source image for local videos * fix(content-studio): split long local video scenes * feat(content-studio): compose local video clips * fix(magazines): MAGAZINE_STATUSES — 'generating' 누락 복원 (#373 drift) DB constraint post_magazines_status_check 는 'generating' 포함 5-state 인데 TS MAGAZINE_STATUSES 는 4-state. 1주일+ 잠재한 schema drift. #373 drift gate fix (#595) 가 처음 정상 작동하며 발견. 발생 경위: - 20260430120000: 'generating' 추가 (api-server generate handler 초기 INSERT) - 20260430150000: 4-state 로 축소 (TS 와 동기화) - 20260504133842: 'generating' 복원 (api-server insert + UI 필요) - 마지막 migration 의 TS 동기화 누락 → drift magazines.ts 의 MAGAZINE_STATUSES 에 'generating' 추가 (DB 와 같은 순서). Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
tokens.ts의colors객체에 magazine palette (magPrimary / magAccent / magBg / magText) 4개 키 추가.CSS vars (
--mag-*)는 이미globals.css에 존재하지만 TS에서 접근이 불가능했던 SSOT 드리프트만 해소.Refs
Note
Test plan
🤖 Generated with Claude Code