Skip to content

feat: 화려한 테마 4종 + bold 펄스 채널(pulse_style)#2

Merged
ictechgy merged 18 commits into
mainfrom
feature/flashy-themes
Jun 4, 2026
Merged

feat: 화려한 테마 4종 + bold 펄스 채널(pulse_style)#2
ictechgy merged 18 commits into
mainfrom
feature/flashy-themes

Conversation

@ictechgy
Copy link
Copy Markdown
Owner

@ictechgy ictechgy commented Jun 4, 2026

Summary

  • Phase 1 — 색 프리셋 4종 neon/aurora/sunset/spectrum 추가 (총 9종, src/themes.rs 순수 데이터). render 무변경.
  • Phase 2 — 데드 데이터였던 pulse_style을 실제 시각 채널로 승격: calm(기본)/flash(감마 2.2 강화 호흡)/hue(틴트 hue 360° 회전)/swap(hue + 글리프 모양 교대). RGB↔HSV 헬퍼 추가.
  • CLIunderstatus pulse <style>(교체) / understatus pulse(현재값) 추가. config.toml [pulse].pulse_style만 안전 병합 기록.
  • 화려한 테마 bold 기본: neon·spectrum=hue, aurora·sunset=flash; 기존 5종은 calm 유지(개별 키로 재정의 가능).
  • 발동 구간은 기존 pulse_on_threshold/pulse_off_threshold로 조절(새 코드 없음).

불변식 / 회귀 안전

  • calm 경로는 수학적 동치로 보존(기존 펄스 스냅샷 테스트 그대로 통과).
  • ANSI bold(\x1b[1m) 금지 불변식 유지 — 화려함은 색/글리프로만.
  • 미지 pulse_style은 런타임 calm 폴백 + 쓰기 경로 하드 검증.

Test plan

  • cargo test — 177 passed
  • cargo clippy --all-targets -- -D warnings — clean
  • cargo fmt --check — clean
  • cargo build --release — green
  • understatus pulse <style> set/show/reject 동작
  • 각 테마·스타일 실제 ANSI(truecolor) 렌더 확인 (hue 라이브 회전 포함)

설계/계획 문서: docs/superpowers/specs/2026-06-04-flashy-themes-design.md, docs/superpowers/plans/2026-06-04-flashy-themes.md

🤖 Generated with Claude Code

ictechgy and others added 18 commits June 4, 2026 23:46
브레인스토밍 합의 결과를 spec으로 정리. 2단계 설계:
- Phase 1: neon/aurora/sunset/spectrum 색 프리셋 4종(데이터만, render 무변경)
- Phase 2: pulse_style 승격(calm/flash/hue/swap), 발동 구간·효과 설정화

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
TDD bite-sized 9개 태스크. Phase 1(themes.rs 데이터)·Phase 2(theme.rs
pulse_style 분기 + pulse 명령). calm 경로 불변 회귀 게이트 명시.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
각 테마는 THEME_KEYS 8개 전부 구체값. 화려한 4종은 처음부터 bold
pulse_style(neon·spectrum=hue, aurora·sunset=flash)을 갖되 Phase 2
render 분기 전까지는 무시되어 calm 동작.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
CI fmt-check 게이트 통과용. 동작 변화 없음.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
neon이 출시 테마가 되면서 parse_theme_prompt("neon")이 더는 에러가 아니다.
미지 테마 분기 검증용 입력을 invalid_theme로 교체.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
영문/한국어 테마 테이블에 neon/aurora/sunset/spectrum 행 추가,
theme 유효값 목록 5종→9종 갱신.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
calm 경로는 수학적 동치로 보존(기존 스냅샷 테스트 그대로 통과). hue는
기준색 hue를 한 주기 동안 360° 회전, flash는 calm wave에 감마(2.2) 적용.
RGB<->HSV 변환 헬퍼는 hue_rotate가 호출한다.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
swap만 글리프 고정 불변식을 해제(펄스 ON 위상 후반 교대). calm/flash/hue는
글리프 고정 유지. PULSE_STYLES/is_known_pulse_style는 쓰기 경로 검증 SSOT.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
theme::is_known_pulse_style/PULSE_STYLES를 쓰기 경로 검증에 사용하면서
이전 커밋의 임시 #[allow(dead_code)] 2개 제거(이제 실사용).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
main이 install::set_pulse_style를 호출하면서 이전 커밋의 임시
#[allow(dead_code)] 제거(이제 실사용). pulse 인자 없으면 현재 스타일 출력.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
rgb_hsv_roundtrip_within_tolerance 테스트의 인라인 ColorSpec 구조체
리터럴이 rustfmt 기준에 맞게 확장됨. 기능 변경 없음.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
calm/flash/hue/swap 스타일, 화려한 테마 bold 기본, pulse_on/off_threshold
발동 구간, understatus pulse 명령 사용법 추가.
Configuration 표의 pulse_style 설명 및 How it works 단락도 4종 스타일 기준으로 갱신.
영문 + 한국어 병렬 섹션 모두 추가.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
- config.rs PulseConfig.pulse_style 필드 doc: 레거시 'bold' 설명을
  실제 4종(calm/flash/hue/swap)으로 교체
- themes.rs: pulse_style '데드 데이터' 주석을 라이브 채널로 갱신
- README: 화려한 4종 글리프 열을 실제 load_glyphs로 수정(calm 복붙 오류)

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
understatus pulse hue typo 처럼 잉여 인자를 조용히 무시하고 config를
기록하던 동작을 막는다. 두 명령 모두 동일하게 has_extra_args로 가드.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
손편집된 미지 pulse_style(레거시 bold 포함)을 로드 시 1줄 경고하고
calm으로 진행. 값은 보존, render가 calm 폴백.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
flash가 calm과 같은 테라코타 끝점이라는 표현을 각 테마의 pulse_palette
끝점으로 정정(신규 테마는 테라코타 아님). pulse_on/off_threshold
히스테리시스(냉각 중 지속) 한 줄 보강.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@ictechgy ictechgy merged commit 37e8f09 into main Jun 4, 2026
1 check passed
@ictechgy ictechgy deleted the feature/flashy-themes branch June 4, 2026 17:05
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant