Vesper | Synapse Wiki
← 메인 홈으로

01. AI 인과율 메모리 레이어 (Causal Smart Skipping) CORE DAG

대규모 모노레포에서 영향받지 않은 수십만 줄의 컴파일을 0.00초 만에 완벽히 스킵하는 원리

📌 Git Porcelain -uall 실시간 작업 트리 추적

Synapse Kit은 git status --porcelain -uall을 통해 변경된 파일 목록을 실시간 감지합니다. -uall 안전성 가드를 통해 새로 생성된 하위 폴더의 미추적 파일도 디렉터리 단위로 축약되지 않고 100% 개별 파일 단위로 정밀 열거됩니다.

TERMINAL • GIT WORKTREE EXTRACTION
$ git status --porcelain -uall M src/components/Button.svelte ?? src-tauri/src/dsp/new_filter.rs D services/bridge/OldService.cs
💡 Why -uall Safety Guard?: 기본 Git status는 새 폴더 내 파일들을 폴더명 하나로 묶어 반환하므로 하위 파일의 언어 트리거를 놓칠 수 있습니다. -uall 플래그는 중첩된 모든 파일 경로를 1단계에서 완전히 평탄화하여 인과 판정의 100% 정합성을 보장합니다.

⚡ 2단계 인과 분기 매핑 규칙 & DAG 흐름

수정된 파일의 경로와 각 플러그인의 triggers 정규식을 교차 분석하여 불필요한 도구를 0.00초 만에 건너뜁니다:

[Git Worktree Delta: 1 file modified (src/components/Button.svelte)] │ ▼ [Porcelain -uall Flat Path Enumeration] │ ▼ [Bidirectional Causal Trigger Matrix] │ ┌─────────────────────┼─────────────────────┐ ▼ ▼ ▼ [Rust Core Engine] [Svelte 5 UI Track] [Java / C# Services] src-tauri/, crates/ src/, components/ services/** (No Diff Detected) (Match: *.svelte) (No Diff Detected) │ │ │ ▼ ▼ ▼ ⏭️ 0.00s SKIPPED ⚡ 0.29s PASSED ⏭️ 0.00s SKIPPED
작업 트리 파일 패턴 인과 트리거 매핑 플러그인 미변경 시 인과 처리
src-tauri/**, crates/** rustChecker() (Cargo) 0.00s SKIPPED (컴파일러 기동 생략)
src/**, components/** svelteChecker() (TS 7.1) 0.00s SKIPPED (타입체커 기동 생략)
*.cpp, *.hpp, dsp/** cppChecker() (g++ / MSVC) 0.00s SKIPPED (컴파일러/링커 기동 생략)
services/bridge/** csharpChecker() (.NET) 0.00s SKIPPED (MSBuild 기동 생략)
services/gateway/** javaChecker() (javac) 0.00s SKIPPED (JVM 바이트코드 컴파일 생략)
telemetry/**, *.go goChecker() (go vet) 0.00s SKIPPED (패키지 재스캔 생략)
analyzer/**, *.py pythonChecker() (py_compile) 0.00s SKIPPED (모듈 임포트 생략)

⏱️ 인메모리 일시정지 핫픽스 루프 (Interactive Live-Fix: check -i)

컴파일 에러가 발생하면 프로세스를 강제 종료하지 않고 동결합니다. 코드 오타나 타입을 수정한 뒤 파일을 저장하면, 프로세스 재부팅 없이 인메모리에서 0.05초 만에 즉시 핫 재검증하여 피드백 루프를 극적으로 단축합니다.

⚡ Cold Reboot vs In-Memory Hotfix: 기존 빌드 도구는 오류 발생 시 exit(1)로 프로세스를 종료하여 매 수정마다 28초 이상의 콜드 스타트 오버헤드가 누적됩니다. Synapse Kit의 대화형 모드(check -i)는 자식 프로세스를 동결하고 파일 수정 즉시 0.05초 만에 AST 캐시를 재검증합니다.

02. 5대 핵심 엔지니어링 CLI 파이프라인 CLI SPEC

검증부터 증분 빌드, 초고속 번들링, 암호 서명까지 단일 프레임워크로 완결

1. bunx synapse-kit check

Git 작업 트리를 분석하여 변경된 영역만 선별 검증합니다.

CLI USAGE • CHECK PIPELINE
# 일상 개발용 인과율 스마트 검증 (기본 0.3s) bunx synapse-kit check # 배포/커밋 전 전방위 강제 전체 검사 bunx synapse-kit check --all # 실시간 핫픽스 모드 (에러 시 일시정지 후 저장 즉시 0.05s 재검증) bunx synapse-kit check -i # AI 에이전트 연동용 99.8% 토큰 압축 모드 (단 11 토큰 JSON) bunx synapse-kit check --compact # 정형화된 JSON 트리 diagnostics 모드 bunx synapse-kit check --agent # 최초 에러 발견 즉시 파이프라인 중단 bunx synapse-kit check --bail
종료 코드 (Exit Code) 의미 파이프라인 동작
0 (SUCCESS) 모든 검증 통과 (0 Errors) 빌드 또는 다음 CI 단계로 즉시 진행
1 (VERIFY_FAIL) 타입/문법 에러 검출 실패한 플러그인의 정제된 diagnostics 반환
2 (CONFIG_ERR) 설정 파일 또는 환경 오류 synapse.config.ts 문법 또는 누락된 SDK 경로 안내

2. bunx synapse-kit build

등록된 buildTracks의 소스 파일 변경 여부(mtime)와 산출물 해시를 교차 검사하여, 미변경 트랙은 0.00초 스킵하고 변경된 트랙만 멀티코어 병렬 빌드합니다.

CLI USAGE • PARALLEL BUILD TRACKS
# 증분 멀티트랙 병렬 빌드 (미변경 트랙 0.00s 자동 스킵) bunx synapse-kit build # 캐시 무시하고 전체 트랙 강제 재빌드 bunx synapse-kit build --force # 특정 이름의 트랙만 단독 빌드 bunx synapse-kit build --track "Rust Core DLL"

3. bunx synapse-kit package

Tauri 데스크톱 앱 패키징 시 불필요한 WiX MSI 중복 빌드를 차단하고, 단일 NSIS 타겟 + zlib 고속 스트리밍 압축을 적용하여 번들링 속도를 5배 이상 가속합니다.

4. bunx synapse-kit sign

산출된 인스톨러 바이너리의 SHA-256 해시를 검사하여 변경 시에만 Minisign / Ed25519 암호화 서명을 생성합니다. 해시 불변 시 0.00초 스킵합니다.

5. bunx synapse-kit init

현재 프로젝트 구조를 분석하여 최적화된 synapse.config.ts 설정 템플릿을 자동 생성합니다.

🚀 GitHub Actions CI/CD 실전 연동

CI 서버에서 불필요한 빌드 지연을 막고 99% 속도 단축을 유지하기 위한 GitHub Actions 워크플로우 예시입니다:

.github/workflows/synapse-ci.yml
name: Synapse Causal CI on: [push, pull_request] jobs: verify: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 with: fetch-depth: 0 # 인과율 DAG 분석용 히스토리 - uses: oven-sh/setup-bun@v1 - run: bun install - name: Run Causal Verification run: bunx synapse-kit check

03. 7대 표준 언어 플러그인 생태계 POLYGLOT

Rust, C++, C#, Java, TypeScript, Go, Python 등 폴리글랏 모노레포 완벽 지원

🧩 완전 모듈식 플러그인 아키텍처: 7대 언어 체커는 각각 독립된 워커 스레드에서 격리 실행되며, 프로젝트에 필요한 체커만 plugins 배열에 등록하여 메모리를 극소화합니다.
플러그인 함수 대상 환경 인과 트리거 및 동작 원리
rustChecker() Rust / Cargo Cargo.toml, *.rs 변경 감지 ➜ non-blocking cargo check
svelteChecker() Svelte 5 / TS *.svelte, *.ts 변경 감지 ➜ TS 7.1 네이티브 결합 검사
cppChecker() C/C++ DSP Kernel *.cpp, *.hpp, CMakeLists.txt ➜ g++ / clang++ 헤더 및 머신코드 구문 검사
csharpChecker() C# .NET Bridge *.cs, *.csproj ➜ .NET dotnet build --no-restore 고속 검사
javaChecker() Java / JVM pom.xml, build.gradle, *.java ➜ javac 바이트코드 구문 검사
goChecker() Go Telemetry go.mod, *.go ➜ go vet 패키지 정적 분석
pythonChecker() Python Analyzer requirements.txt, *.py ➜ py_compile / mypy AST 타입 분석
schemaChecker() Tauri / JSON tauri.conf.json, package.json 구조적 스키마 무결성 검증
nativeChecker() Win32 PE DLL x64 DLL 머신 헤더 및 익스포트 심볼 무결성 바이너리 검증
nsisChecker() NSIS 스크립트 .nsi 템플릿 문법 및 파일 참조 유효성 검사

🛠️ 커스텀 플러그인 작성법

기본 제공 플러그인 외에도 createCheckerPlugin() API를 사용하여 팀 내부 독자 린터나 코드 제너레이터를 인과 파이프라인에 등록할 수 있습니다:

custom-checker.ts
import { createCheckerPlugin } from 'synapse-kit'; export const sqlChecker = createCheckerPlugin({ name: 'SQL Migration Checker', triggers: ['migrations/**/*.sql'], async check({ modifiedFiles, log }) { log.info(`Validating ${modifiedFiles.length} SQL migrations...`); return { ok: true, duration: '0.04s' }; } });

04. AI 코딩 에이전트 연동 가이드 99.8% TOKEN DIET

Claude Code, Cursor, Windsurf, Antigravity 환경에서 99.8% 컨텍스트 토큰 다이어트 달성

💡 에이전트 룰 설정 (CLAUDE.md / .cursorrules)

AI 에이전트가 코드를 수정한 뒤 터미널의 수천 줄 ANSI 로그를 읽으면 컨텍스트 윈도우가 급속히 고갈됩니다. 아래와 같이 룰 파일에 지침을 추가하세요:

CLAUDE.md / .cursorrules
# AI Verification Rule 코드 수정 후에는 일반 터미널 빌드 대신 반드시 시냅스 킷을 컴팩트 모드로 실행하세요: $ bunx synapse-kit check --compact - 성공 시 단 1줄의 JSON ({"ok":true,"duration":"0.31s"})으로 11 토큰만 방출합니다. - 실패 시 오류가 발생한 플러그인의 정제된 diagnostics만 최소 크기로 반환합니다.

📊 토큰 절감 실측 비교

출력 모드 페이로드 포맷 토큰 소모량 절감율
기존 ANSI 터미널 로그 다중 언어 컴파일러 Raw 출력 ~3,400 Tokens 기준치
--agent 모드 구조화된 정형 JSON 포맷 120 Tokens -96.5%
--compact 모드 Minified Single-Line JSON 11 Tokens -99.8% (극단적 절감)

📋 정제된 에러 진단 페이로드 규격

에러 발생 시 방출되는 JSON diagnostics 규격입니다. 에이전트는 파일 경로, 줄 번호, 원인 메시지만을 정확히 소비합니다:

JSON DIAGNOSTICS PAYLOAD
{ "ok": false, "duration": "0.31s", "errors": 1, "diagnostics": [ { "checker": "svelteChecker", "file": "src/components/Button.svelte", "line": 42, "col": 15, "message": "Type 'string' is not assignable to type 'number'.", "code": "TS2322" } ] }

05. synapse.config.ts API 명세서 API REFERENCE

프로젝트 루트의 synapse.config.ts 전체 타입 정의 및 옵션 레퍼런스

synapse.config.ts • FULL PRODUCTION EXAMPLE
import { defineConfig, rustChecker, svelteChecker, cppChecker, csharpChecker, javaChecker, goChecker, pythonChecker, schemaChecker } from 'synapse-kit'; export default defineConfig({ // 1. AI 인과율 메모리 레이어 설정 aiMemory: { enabled: true, // 인과율 엔진 활성화 여부 (기본: true) smartSkipping: true, // 미수정 파일 0.00초 스킵 활성화 여부 cacheDir: '.synapse', // 인메모리 AST 캐시 디렉터리 }, // 2. 7대 표준 언어 멀티트랙 검증 플러그인 목록 plugins: [ rustChecker({ workspaceDir: './src-tauri', allTargets: true, }), svelteChecker({ tsconfig: './tsconfig.json', }), cppChecker({ sourceDir: './src-tauri/dsp', }), csharpChecker({ projectFile: './services/bridge/Bridge.csproj', }), javaChecker({ sourceDir: './services/gateway', }), goChecker({ dir: './telemetry', }), pythonChecker({ dir: './analyzer', }), schemaChecker({ targets: [{ path: './src-tauri/tauri.conf.json' }], }), ], // 3. 인과율 증분 빌드 트랙 (소스 변경 시에만 병렬 빌드) buildTracks: [ { name: 'Rust Core DLL', command: ['cargo', 'build', '--release'], sources: ['src-tauri/src/', 'Cargo.toml'], artifacts: ['target/release/core.dll'], }, { name: 'Svelte UI Bundle', command: ['bun', 'run', 'build'], sources: ['src/', 'static/'], artifacts: ['build/index.html'], }, ], // 4. 고속 패키징 및 암호화 서명 설정 package: { framework: 'tauri', targets: ['nsis'], compression: 'zlib', // zlib 고속 압축 스트리밍 }, sign: { privateKeyPath: 'src-tauri/keys/updater', passwordEnv: 'TAURI_KEY_PASSWORD', }, });

⚙️ 주요 옵션 레퍼런스 표

옵션 속성 타입 기본값 설명
aiMemory.enabled boolean true 인과율 메모리 그래프 엔진 활성화
aiMemory.smartSkipping boolean true 미수정 서브시스템 0.00초 스킵 허용 여부
plugins CheckerPlugin[] [] 병렬 검증을 수행할 언어별 체커 목록
buildTracks BuildTrack[] [] 소스-산출물 해시를 추적하는 증분 빌드 트랙
package.compression 'zlib' | 'lzma' 'zlib' NSIS 패키징 고속 압축 스트리밍 알고리즘
sign.privateKeyPath string - Ed25519 비밀키 경로 (해시 변경 시 서명)