autonomous-flow-daemon 1.1.0 → 1.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +39 -0
- package/README.ko.md +124 -164
- package/README.md +99 -170
- package/package.json +11 -5
- package/src/adapters/index.ts +246 -35
- package/src/cli.ts +71 -1
- package/src/commands/benchmark.ts +187 -0
- package/src/commands/diagnose.ts +56 -14
- package/src/commands/doctor.ts +243 -0
- package/src/commands/evolution.ts +107 -0
- package/src/commands/fix.ts +22 -2
- package/src/commands/hooks.ts +136 -0
- package/src/commands/mcp.ts +129 -0
- package/src/commands/restart.ts +14 -0
- package/src/commands/score.ts +164 -96
- package/src/commands/start.ts +74 -15
- package/src/commands/stats.ts +103 -0
- package/src/commands/status.ts +157 -0
- package/src/commands/stop.ts +23 -4
- package/src/commands/sync.ts +253 -20
- package/src/commands/vaccine.ts +177 -0
- package/src/constants.ts +25 -1
- package/src/core/boast.ts +27 -12
- package/src/core/db.ts +74 -3
- package/src/core/evolution.ts +215 -0
- package/src/core/hologram/engine.ts +71 -0
- package/src/core/hologram/fallback.ts +11 -0
- package/src/core/hologram/incremental.ts +227 -0
- package/src/core/hologram/py-extractor.ts +132 -0
- package/src/core/hologram/ts-extractor.ts +320 -0
- package/src/core/hologram/types.ts +25 -0
- package/src/core/hologram.ts +64 -236
- package/src/core/hook-manager.ts +259 -0
- package/src/core/i18n/messages.ts +43 -0
- package/src/core/immune.ts +8 -123
- package/src/core/log-rotate.ts +33 -0
- package/src/core/log-utils.ts +38 -0
- package/src/core/lru-map.ts +61 -0
- package/src/core/notify.ts +27 -19
- package/src/core/rule-engine.ts +287 -0
- package/src/core/semantic-diff.ts +432 -0
- package/src/core/telemetry.ts +94 -0
- package/src/core/vaccine-registry.ts +212 -0
- package/src/core/workspace.ts +28 -0
- package/src/core/yaml-minimal.ts +176 -0
- package/src/daemon/client.ts +34 -6
- package/src/daemon/event-batcher.ts +108 -0
- package/src/daemon/guards.ts +13 -0
- package/src/daemon/http-routes.ts +293 -0
- package/src/daemon/mcp-handler.ts +270 -0
- package/src/daemon/server.ts +439 -353
- package/src/daemon/types.ts +100 -0
- package/src/daemon/workspace-map.ts +92 -0
- package/src/platform.ts +23 -2
- package/src/version.ts +15 -0
package/CHANGELOG.md
CHANGED
|
@@ -7,6 +7,45 @@ Versioning follows [Semantic Versioning](https://semver.org/).
|
|
|
7
7
|
|
|
8
8
|
---
|
|
9
9
|
|
|
10
|
+
## [1.5.0] - 2026-04-02 — "Trust-Builder"
|
|
11
|
+
|
|
12
|
+
> The immune system now speaks. Three pillars that make afd's defenses visible, self-improving, and smarter.
|
|
13
|
+
|
|
14
|
+
### Added
|
|
15
|
+
|
|
16
|
+
- **Hologram L1 — Import-Based Semantic Compression**
|
|
17
|
+
- New optional `contextFile` parameter on `afd_hologram` MCP tool and `/hologram` HTTP endpoint
|
|
18
|
+
- `extractImportedSymbols()` function: regex fast-path parsing of named imports, default imports, and namespace imports from the context file
|
|
19
|
+
- L1 filtering in `generateHologram()`: directly imported symbols receive full type signatures; non-imported exports are reduced to name-only stubs with guide text `// details omitted — read directly if needed`
|
|
20
|
+
- Namespace imports (`import * as X`) trigger full L0 hologram (safe default, no false filtering)
|
|
21
|
+
- Silent fallback to L0 when `contextFile` is missing, unreadable, or yields zero import results
|
|
22
|
+
- Compression target: 85%+ with contextFile (vs ~80% L0 baseline)
|
|
23
|
+
- L1 is MCP/HTTP path only — S.E.A.M hot path remains L0 to protect the 270ms budget
|
|
24
|
+
|
|
25
|
+
- **Antibody Passive Defense — Mistake History Injection**
|
|
26
|
+
- New `mistake_history` SQLite table: `file_path`, `mistake_type`, `description` (max 200 chars), `antibody_id`, `timestamp`
|
|
27
|
+
- Indexes on `file_path` and `timestamp` for sub-millisecond query performance
|
|
28
|
+
- Write-through cache: `mistakeCache: Map<string, MistakeEntry[]>` loaded on daemon startup, updated on every insert
|
|
29
|
+
- Per-file cap of 5 most recent entries enforced at write time
|
|
30
|
+
- 30-day TTL purge on daemon startup (consistent with `telemetry` table pattern)
|
|
31
|
+
- Direct DB insert on auto-heal events (not via HTTP POST): records `mistake_type` from `symptom.patternType` and `description` from `symptom.title`
|
|
32
|
+
- New GET `/mistake-history?file=<path>` HTTP endpoint (returns max 5 entries, most recent first)
|
|
33
|
+
- `pastMistakes` field injected into `afd diagnose --format a2a` output on both the healthy path (proactive warning) and the auto-heal path (reactive)
|
|
34
|
+
- `pastMistakes` is omitted entirely when no history exists (zero token overhead)
|
|
35
|
+
- Path normalization: `file_path` stored with forward slashes (cross-platform safe)
|
|
36
|
+
|
|
37
|
+
- **HUD Defense Counter + Reasons**
|
|
38
|
+
- `/mini-status` endpoint enhanced with `total_defenses: number` and `defense_reasons: string[]` (in-memory only, no DB query — always under 200ms)
|
|
39
|
+
- `defense_reasons` derived from in-memory `state.autoHealLog` (capped at 100 entries), returning up to 3 most recent unique `mistake_type` values
|
|
40
|
+
- Status bar format: `[afd] {N}건 방어 ({reason1}, {reason2}, ...)` when defenses exist; `[afd] ON` when none
|
|
41
|
+
- Existing `healed_count` and `last_healed` fields preserved for backward compatibility
|
|
42
|
+
|
|
43
|
+
### Fixed
|
|
44
|
+
|
|
45
|
+
- **Windows path normalization in `assertInsideWorkspace()`**: backslash (`\`) separators in Windows paths are now normalized to forward slashes before workspace boundary checks, fixing false-positive "outside workspace" errors on Windows
|
|
46
|
+
|
|
47
|
+
---
|
|
48
|
+
|
|
10
49
|
## [1.0.0] - 2026-03-31 — "The Immortal Flow"
|
|
11
50
|
|
|
12
51
|
> [afd] 🛡️ AI agent deleted '.claudeignore' | 🩹 Self-healed in 184ms | Context preserved.
|
package/README.ko.md
CHANGED
|
@@ -6,15 +6,15 @@
|
|
|
6
6
|
<p align="center"><strong>AI가 스스로 고치는 개발 환경. 복구까지 단 0.2초.</strong></p>
|
|
7
7
|
|
|
8
8
|
<p align="center">
|
|
9
|
-
<
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
<b>🛡️ 불멸의 컨텍스트 흐름:</b>
|
|
13
|
-
<em>"afd는 지연 시간이 거의 없는 즉각적인 복구를 통해, AI 개발 흐름이 끊기지 않도록 보호하고 토큰 비용을 혁신적으로 절감합니다."</em>
|
|
9
|
+
<a href="https://github.com/dotoricode/autonomous-flow-daemon">
|
|
10
|
+
<img src="demo.gif" width="850" alt="afd demo" style="border-radius: 12px; box-shadow: 0 20px 40px rgba(0,0,0,0.4);">
|
|
11
|
+
</a>
|
|
14
12
|
</p>
|
|
15
13
|
|
|
14
|
+
---
|
|
15
|
+
|
|
16
16
|
<p align="center">
|
|
17
|
-
<img src="https://img.shields.io/badge/version-1.
|
|
17
|
+
<img src="https://img.shields.io/badge/version-1.6.0-blue?style=flat-square" alt="version" />
|
|
18
18
|
<a href="https://www.npmjs.com/package/autonomous-flow-daemon"><img src="https://img.shields.io/npm/v/autonomous-flow-daemon?style=flat-square&logo=npm&color=cb0000" alt="npm" /></a>
|
|
19
19
|
<img src="https://img.shields.io/badge/runtime-Bun-f472b6?style=flat-square&logo=bun" alt="Bun" />
|
|
20
20
|
<img src="https://img.shields.io/badge/license-MIT-green?style=flat-square" alt="MIT" />
|
|
@@ -29,48 +29,75 @@
|
|
|
29
29
|
|
|
30
30
|
## 왜 afd인가?
|
|
31
31
|
|
|
32
|
-
> [afd]
|
|
32
|
+
> [afd] AI가 '.claudeignore'를 삭제했습니다 | 184ms 만에 자가 복구 완료 | 컨텍스트 보존됨.
|
|
33
33
|
|
|
34
|
-
|
|
34
|
+
AI 에이전트가 실수로 설정 파일을 삭제하거나, 훅 파일을 망가뜨립니다. `afd` 없이는 작업을 멈추고, 원인을 진단하고, 직접 고쳐야 합니다: **30분이 날아갑니다**.
|
|
35
35
|
|
|
36
|
-
`afd`가 있다면, 데몬이 10ms 만에 이상을 감지하고, 184ms 안에 복구를 완료합니다. **당신은 아무것도 몰랐습니다.**
|
|
36
|
+
`afd`가 있다면, 데몬이 10ms 만에 이상을 감지하고, 184ms 안에 복구를 완료합니다. **당신은 아무것도 몰랐습니다.** Bun 기반 네이티브 데몬으로 CPU 0.1% 미만, 메모리 ~40MB만 사용합니다.
|
|
37
37
|
|
|
38
38
|
| 상황 | afd 없을 때 | afd 있을 때 |
|
|
39
39
|
|:-----|:------------|:------------|
|
|
40
40
|
| AI가 `.claudeignore` 삭제 | 30분 수동 복구 | **0.2초 자동 치유** |
|
|
41
41
|
| 훅 파일 손상 | 훅 재주입, 세션 재시작 | **백그라운드 자동 복구** |
|
|
42
42
|
| `git checkout`으로 파일 50개 동시 변경 | AI가 폭주 | **대규모 이벤트 억제기 작동** |
|
|
43
|
-
|
|
|
43
|
+
| AI가 대용량 파일 8개 읽기 (114KB) | ~28,600 토큰 소비 | **홀로그램으로 ~1,700 토큰 (94% 절감)** |
|
|
44
44
|
|
|
45
45
|
---
|
|
46
46
|
|
|
47
|
-
##
|
|
48
|
-
|
|
49
|
-
`afd`는 개발 흐름을 방해하는 것이 아니라, 보호하기 위해 설계되었습니다.
|
|
47
|
+
## 주요 기능
|
|
50
48
|
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
49
|
+
| 기능 | 설명 |
|
|
50
|
+
|:-----|:-----|
|
|
51
|
+
| **S.E.A.M 자율 치유** | 파일 삭제/손상을 감지하고 270ms 이내에 복구 |
|
|
52
|
+
| **홀로그램 추출** | MCP를 통해 80-93% 가벼운 타입 뼈대를 AI 에이전트에 제공, 토큰 비용 대폭 절감 |
|
|
53
|
+
| **스마트 파일 리더** | `afd_read` — 작은 파일은 원본, 큰 파일은 자동 홀로그램 압축; 라인 범위 읽기 지원 |
|
|
54
|
+
| **워크스페이스 맵** | `afd://workspace-map` — 전체 파일 트리 + export 시그니처를 한 번에 제공 |
|
|
55
|
+
| **홀로그램 L1** | import 기반 정밀 압축 — 실제 import된 심볼만 전체 시그니처 유지 (85%+ 절감) |
|
|
56
|
+
| **격리 구역** | 복구 전 손상된 파일을 `.afd/quarantine/`에 백업 |
|
|
57
|
+
| **자가 진화** | 격리된 실패 사례를 분석하여 `afd-lessons.md`에 방지 규칙 자동 생성 |
|
|
58
|
+
| **실수 이력 주입** | PreToolUse 훅이 파일 편집 전 과거 실수를 경고로 주입 |
|
|
59
|
+
| **더블탭 감지** | 한 번 삭제 = 자동 복구; 30초 내 재삭제 = 사용자 의도로 존중 |
|
|
60
|
+
| **백신 네트워크** | `afd sync`로 학습된 항체를 팀 전체에 전파 |
|
|
61
|
+
| **MCP 통합** | `afd mcp install`로 MCP 서버 자동 등록 |
|
|
62
|
+
| **HUD 방어 카운터** | 상태 표시줄에 방어 건수와 사유 요약을 한눈에 표시 |
|
|
54
63
|
|
|
55
64
|
---
|
|
56
65
|
|
|
57
|
-
##
|
|
66
|
+
## 토큰 절약 — 실측 데이터
|
|
58
67
|
|
|
59
|
-
|
|
60
|
-
|:-----|:-----|
|
|
61
|
-
| **🛡️ S.E.A.M 자율 치유** | 파일 삭제를 감지하고 270ms 이내에 복구 — AI 에이전트가 눈치채기도 전에 |
|
|
62
|
-
| **🔍 스마트 탐색** | `.claude/`, `.cursorrules`, `.mcp.json` 등 AI 설정 파일을 자동 감지 — 설정 필요 없음 |
|
|
63
|
-
| **🏥 위트 있는 닥터** | 실시간 가치 추적: 절약한 토큰, 시간, 비용을 매 치유마다 위트 있게 알려줍니다 |
|
|
64
|
-
| **🌐 자동 다국어** | 시스템 언어에 따라 한국어/영어를 자동 전환. 직접 설정도 가능: `afd lang ko` |
|
|
65
|
-
| **🧬 더블탭 감지** | 실수와 의도를 구분 — 한 번 지우면 복구, 30초 내 다시 지우면 삭제를 존중 |
|
|
66
|
-
| **💉 백신 네트워크** | `afd sync`로 학습된 항체를 팀 전체에 전파 |
|
|
67
|
-
| **📊 홀로그램 추출** | AI 에이전트에게 80%+ 가벼운 파일 뼈대를 제공해 토큰 비용 절감 |
|
|
68
|
+
홀로그램 시스템은 AI 기반 개발에서 afd의 가장 큰 가치입니다. 실제 세션에서 측정한 결과입니다:
|
|
68
69
|
|
|
69
|
-
|
|
70
|
+
### 세션 스냅샷 (실제 코딩 세션에서 측정)
|
|
71
|
+
|
|
72
|
+
| 지표 | 값 |
|
|
73
|
+
|:-----|:---|
|
|
74
|
+
| 홀로그램 요청 횟수 | 8회 |
|
|
75
|
+
| 대상 파일 총 크기 | ~114.5 KB (8개 파일, 평균 14.3 KB) |
|
|
76
|
+
| 원본 토큰 비용 | ~28,600 토큰 |
|
|
77
|
+
| 홀로그램 압축 후 | ~1,700 토큰 |
|
|
78
|
+
| **절약된 토큰** | **~26,900 토큰 (94% 절감)** |
|
|
70
79
|
|
|
71
|
-
|
|
80
|
+
### 규모별 효과
|
|
81
|
+
|
|
82
|
+
```
|
|
83
|
+
세션 사용 토큰 (ctx ~15%): ~150,000 ████████████████
|
|
84
|
+
홀로그램 절약 토큰: ~26,900 ██░░░░░░░░░░░░░░ (세션의 18%)
|
|
85
|
+
```
|
|
72
86
|
|
|
73
|
-
|
|
87
|
+
ctx 50% 이상에서는 파일 읽기가 토큰 예산의 대부분을 차지합니다. 홀로그램 없이 대용량 파일 8개를 읽으면 매번 ~28.6K 토큰이 소비됩니다. 홀로그램을 사용하면 **각 파일을 원본의 1/16 비용**으로 읽을 수 있으며, 반복 읽기가 많을수록 격차는 더 벌어집니다.
|
|
88
|
+
|
|
89
|
+
### 토큰 최적화 3단계
|
|
90
|
+
|
|
91
|
+
| 레이어 | 도구 | 절감률 | 방식 |
|
|
92
|
+
|:-------|:-----|:-------|:-----|
|
|
93
|
+
| **L0 홀로그램** | `afd_hologram` | 80%+ | 함수 본문 제거, 타입 시그니처만 보존 |
|
|
94
|
+
| **L1 홀로그램** | `afd_hologram` + `contextFile` | 85%+ | import된 심볼만 필터링 |
|
|
95
|
+
| **스마트 리더** | `afd_read` | 자동 | 10KB 미만은 원본, 이상은 자동 홀로그램 |
|
|
96
|
+
| **워크스페이스 맵** | `afd://workspace-map` | N/A | 프로젝트 전체 구조를 한 번에 파악 |
|
|
97
|
+
|
|
98
|
+
---
|
|
99
|
+
|
|
100
|
+
## 명령어 한 줄로 시작
|
|
74
101
|
|
|
75
102
|
```bash
|
|
76
103
|
npx @dotoricode/afd start
|
|
@@ -84,25 +111,22 @@ bun link && afd start
|
|
|
84
111
|
|
|
85
112
|
이게 전부입니다. 나머지는 `afd`가 알아서 처리합니다:
|
|
86
113
|
|
|
87
|
-
- **자동 훅
|
|
88
|
-
- **초고속 실시간 감시** —
|
|
89
|
-
- **배경 자율 치유** —
|
|
114
|
+
- **자동 훅 주입** — Claude Code의 `PreToolUse` 훅을 자동으로 설치합니다.
|
|
115
|
+
- **초고속 실시간 감시** — 핵심 설정 파일을 10ms 단위로 모니터링합니다.
|
|
116
|
+
- **배경 자율 치유** — S.E.A.M 사이클이 조용히 복구합니다.
|
|
90
117
|
|
|
91
118
|
```
|
|
92
119
|
$ afd start
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
✅ .claude/hooks.json에 감시 훅 주입 완료
|
|
120
|
+
데몬 시작 (pid 4812, port 52413)
|
|
121
|
+
스마트 탐색: AI 컨텍스트 대상 7개 감시 시작
|
|
122
|
+
.claude/hooks.json에 감시 훅 주입 완료
|
|
97
123
|
```
|
|
98
124
|
|
|
99
|
-
> `afd start`를 치고 나면 그냥 잊어버리세요. 그것이 우리가 추구하는 최고의 UX입니다.
|
|
100
|
-
|
|
101
125
|
---
|
|
102
126
|
|
|
103
|
-
##
|
|
127
|
+
## S.E.A.M 사이클
|
|
104
128
|
|
|
105
|
-
|
|
129
|
+
모든 파일 이벤트는 4단계를 거쳐 처리됩니다:
|
|
106
130
|
|
|
107
131
|
```mermaid
|
|
108
132
|
graph LR
|
|
@@ -118,149 +142,94 @@ graph LR
|
|
|
118
142
|
|
|
119
143
|
| 단계 | 주요 동작 | 처리 속도 |
|
|
120
144
|
|:------|:-----|:-----|
|
|
121
|
-
| **Sense** | Chokidar 와처가
|
|
122
|
-
| **Extract** |
|
|
123
|
-
| **Adapt** |
|
|
124
|
-
| **Mutate** | RFC 6902 JSON-Patch
|
|
145
|
+
| **Sense** | Chokidar 와처가 파일 생성, 변경, 삭제를 즉각 감지 | < 10ms |
|
|
146
|
+
| **Extract** | 홀로그램(타입 뼈대) 생성 + 건강 검진 실행 | < 5ms |
|
|
147
|
+
| **Adapt** | 증상-항체 매칭, 손상 파일 격리, 수정 전략 선택 | < 1ms |
|
|
148
|
+
| **Mutate** | RFC 6902 JSON-Patch로 원본 파일 복원 | < 25ms |
|
|
125
149
|
|
|
126
|
-
>
|
|
150
|
+
> 전체 사이클: 파일 삭제 감지부터 복구 완료까지 **270ms 미만**.
|
|
127
151
|
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
아래 파일들이 실시간 감시됩니다. 면역 파일(IMM-*)은 삭제 시 자동으로 복구됩니다:
|
|
131
|
-
|
|
132
|
-
| 대상 | 유형 | 항체 | 자동 복구 |
|
|
133
|
-
|:-----|:-----|:-----|:----------|
|
|
134
|
-
| `.claude/` | 디렉토리 | IMM-002 (`hooks.json`) | ✅ |
|
|
135
|
-
| `CLAUDE.md` | 파일 | IMM-003 | ✅ |
|
|
136
|
-
| `.claudeignore` | 파일 | IMM-001 | ✅ |
|
|
137
|
-
| `.cursorrules` | 파일 | — | 이벤트 로깅만 |
|
|
138
|
-
| `.gitignore` | 파일 | — | 이벤트 로깅만 |
|
|
139
|
-
| `mcp-config.json` | 파일 | — | 🔍 스마트 탐색 |
|
|
140
|
-
| `.mcp.json` | 파일 | — | 🔍 스마트 탐색 |
|
|
141
|
-
| `.ai/` | 디렉토리 | — | 🔍 스마트 탐색 |
|
|
142
|
-
| `.windsurfrules` | 파일 | — | 🔍 스마트 탐색 |
|
|
152
|
+
---
|
|
143
153
|
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
154
|
+
## 명령어
|
|
155
|
+
|
|
156
|
+
| 명령어 | 설명 |
|
|
157
|
+
|:-------|:-----|
|
|
158
|
+
| `afd start` | 스마트 탐색 + 데몬 가동 + 훅/MCP 자동 주입 |
|
|
159
|
+
| `afd stop` | 근무 요약 리포트 + 안전한 종료 (`--clean`으로 훅/MCP 제거) |
|
|
160
|
+
| `afd score` | 진화/홀로그램 통계 포함 건강 대시보드 |
|
|
161
|
+
| `afd fix` | 홀로그램 컨텍스트 기반 진단 및 항체 학습 |
|
|
162
|
+
| `afd sync` | 백신 페이로드 추출/가져오기 (`--push`, `--pull`, `--remote <url>`) |
|
|
163
|
+
| `afd restart` | 종료 후 재시작 |
|
|
164
|
+
| `afd status` | 빠른 건강 확인 — 데몬, 훅, MCP, 방어 현황 |
|
|
165
|
+
| `afd doctor` | 종합 건강 분석 + 자동 수정 권고 |
|
|
166
|
+
| `afd evolution` | 격리된 실패 분석 및 방지 규칙 생성 |
|
|
167
|
+
| `afd mcp install` | MCP 서버를 프로젝트 + 글로벌 설정에 등록 |
|
|
168
|
+
| `afd vaccine` | 커뮤니티 항체 조회, 설치, 발행 |
|
|
169
|
+
| `afd lang` | 표시 언어 전환 (`afd lang ko` / `afd lang en`) |
|
|
147
170
|
|
|
148
171
|
---
|
|
149
172
|
|
|
150
|
-
##
|
|
173
|
+
## 고급 기능
|
|
151
174
|
|
|
152
|
-
|
|
175
|
+
### Double-Tap 휴리스틱
|
|
153
176
|
|
|
154
|
-
|
|
155
|
-
|:-------|:-----|:----------|
|
|
156
|
-
| `afd start` | **시동** | 스마트 탐색 + 데몬 가동 + 자동 훅 주입 |
|
|
157
|
-
| `afd fix` | **수술** | 현재 프로젝트 진단 및 새로운 항체 학습 |
|
|
158
|
-
| `afd score` | **대시보드** | 다국어 건강 검진 리포트 & 가치 분석 |
|
|
159
|
-
| `afd sync` | **전파** | 학습된 항체를 백신 파일로 추출 (팀 공유용) |
|
|
160
|
-
| `afd lang` | **언어** | 표시 언어 전환 (`afd lang ko` / `afd lang en`) |
|
|
161
|
-
| `afd stop` | **종료** | 근무 요약 리포트 + 안전한 종료 |
|
|
162
|
-
|
|
163
|
-
---
|
|
164
|
-
|
|
165
|
-
## 📊 실시간 대시보드: `afd score`
|
|
177
|
+
`afd`는 **실수**와 **의도**를 구분합니다:
|
|
166
178
|
|
|
167
179
|
```
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
│ 에코시스템 : Claude Code │
|
|
172
|
-
├──────────────────────────────────────────────┤
|
|
173
|
-
│ 가동 시간 : 1h 23m │
|
|
174
|
-
│ 이벤트 : 156 │
|
|
175
|
-
│ 감지된 파일 : 8 │
|
|
176
|
-
├──────────────────────────────────────────────┤
|
|
177
|
-
│ 면역 시스템 │
|
|
178
|
-
│ ────────────────────────────── │
|
|
179
|
-
│ 항체 수 : 7 │
|
|
180
|
-
│ 방어 레벨 : 철통 방어 │
|
|
181
|
-
│ 자동 치유 : 3건 백그라운드 치유됨 │
|
|
182
|
-
├──────────────────────────────────────────────┤
|
|
183
|
-
│ 📈 전달된 가치 │
|
|
184
|
-
│ ────────────────────────────── │
|
|
185
|
-
│ 절약한 토큰 : ~2.9K │
|
|
186
|
-
│ 아낀 시간 : ~40 min │
|
|
187
|
-
│ 절감 비용 : ~$0.01 │
|
|
188
|
-
├──────────────────────────────────────────────┤
|
|
189
|
-
│ 🗣️ 면역 체계 이상 무. 오늘도 한 건 │
|
|
190
|
-
│ 해결했습니다 💪 │
|
|
191
|
-
└──────────────────────────────────────────────┘
|
|
180
|
+
$ rm .claudeignore # 1차 삭제 -> 즉시 복구
|
|
181
|
+
$ rm .claudeignore # 30초 내 재삭제 -> "진짜 지우고 싶구나?"
|
|
182
|
+
[afd] 사용자 의도 확인. 항체 IMM-001 휴면 전환. 삭제를 존중합니다.
|
|
192
183
|
```
|
|
193
184
|
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
### Double-Tap 휴리스틱 (의도와 실수의 구분)
|
|
185
|
+
| 시나리오 | 대응 |
|
|
186
|
+
|:---------|:-----|
|
|
187
|
+
| 단일 삭제 (실수) | 자동 복구 + 첫 탭 기록 |
|
|
188
|
+
| 30초 내 재삭제 (의도) | 항체 휴면, 삭제 존중 |
|
|
189
|
+
| 1초 내 3건 이상 (git checkout) | 대규모 이벤트 감지, 억제 일시 정지 |
|
|
201
190
|
|
|
202
|
-
|
|
191
|
+
### 백신 네트워크
|
|
203
192
|
|
|
204
193
|
```bash
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
194
|
+
afd sync # .afd/global-vaccine-payload.json으로 추출
|
|
195
|
+
afd sync --push # 원격으로 백신 전파
|
|
196
|
+
afd sync --pull # 원격에서 백신 수신
|
|
208
197
|
```
|
|
209
198
|
|
|
210
|
-
|
|
211
|
-
- **의도 존중:** 30초 내에 같은 파일을 또 지우면 사용자의 확고한 의지로 판단해 복구를 멈춥니다.
|
|
212
|
-
- **Git 쇼크 방지:** `git checkout`처럼 수많은 파일이 한꺼번에 바뀌는 상황(1초 내 3개 이상)은 '대규모 이벤트'로 자동 인식하여 과도한 치유 동작을 멈춥니다.
|
|
213
|
-
|
|
214
|
-
### 백신 네트워크 (팀 전파)
|
|
199
|
+
페이로드는 정제되어 있어 기밀 정보가 포함되지 않습니다.
|
|
215
200
|
|
|
216
|
-
|
|
201
|
+
### 자가 진화
|
|
217
202
|
|
|
218
203
|
```bash
|
|
219
|
-
afd
|
|
220
|
-
# → .afd/global-vaccine-payload.json 생성
|
|
204
|
+
afd evolution
|
|
221
205
|
```
|
|
222
|
-
이 파일은 정제되어 있어 기밀 정보가 섞이지 않습니다. 다른 프로젝트에 넣기만 하면 `afd`가 해당 프로젝트의 면역력을 즉시 이식받습니다.
|
|
223
206
|
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
AI 에이전트가 파일 내용을 요구할 때, `afd`는 **뼈대만 남긴 초경량 요약본**을 제공합니다. 주석과 긴 함수 본문은 걷어내고 타입 정의와 구조만 전달하여 **토큰 비용을 80% 이상 절감**합니다.
|
|
207
|
+
격리된 실패 사례를 분석하고 `afd-lessons.md`에 방지 규칙을 자동 기록합니다. AI 에이전트는 면역 파일 편집 전에 이를 읽어 과거의 실패를 미래의 예방책으로 전환합니다.
|
|
227
208
|
|
|
228
209
|
---
|
|
229
210
|
|
|
230
|
-
##
|
|
231
|
-
|
|
232
|
-
`afd`를 **Model Context Protocol (MCP) 서버**로 등록하면 Claude Code가 시작될 때 데몬이 자동으로 실행됩니다.
|
|
211
|
+
## MCP 설정
|
|
233
212
|
|
|
234
|
-
|
|
213
|
+
`afd`가 제공하는 MCP 도구와 리소스:
|
|
235
214
|
|
|
236
|
-
|
|
215
|
+
| MCP 도구 | 용도 |
|
|
216
|
+
|:---------|:-----|
|
|
217
|
+
| `afd_read` | 스마트 파일 리더 — 작은 파일은 원본, 큰 파일은 자동 홀로그램, 라인 범위 지원 |
|
|
218
|
+
| `afd_hologram` | TS/JS 파일의 토큰 효율적 타입 뼈대 (80%+ 절감) |
|
|
219
|
+
| `afd_diagnose` | 건강 진단 + 홀로그램 컨텍스트 |
|
|
220
|
+
| `afd_score` | 런타임 통계: 가동시간, 치유 횟수, 홀로그램 절감률 |
|
|
237
221
|
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
"afd": {
|
|
242
|
-
"command": "bun",
|
|
243
|
-
"args": ["run", "src/cli.ts", "start"]
|
|
244
|
-
}
|
|
245
|
-
}
|
|
246
|
-
}
|
|
247
|
-
```
|
|
248
|
-
|
|
249
|
-
### 수동 실행
|
|
222
|
+
| MCP 리소스 | 용도 |
|
|
223
|
+
|:-----------|:-----|
|
|
224
|
+
| `afd://workspace-map` | 전체 파일 트리 + export 시그니처를 한 번에 제공 |
|
|
250
225
|
|
|
251
226
|
```bash
|
|
252
|
-
afd
|
|
253
|
-
```
|
|
254
|
-
|
|
255
|
-
등록 후 Claude Code 상태 표시줄에서 실시간으로 확인할 수 있습니다:
|
|
256
|
-
|
|
257
|
-
```
|
|
258
|
-
🛡️ afd: ON | 🩹 3 Healed | last: IMM-003
|
|
227
|
+
afd mcp install # .mcp.json + ~/.claude.json에 자동 등록
|
|
259
228
|
```
|
|
260
229
|
|
|
261
230
|
---
|
|
262
231
|
|
|
263
|
-
##
|
|
232
|
+
## 기술 스택
|
|
264
233
|
|
|
265
234
|
| 계층 | 기술 | 선택 이유 |
|
|
266
235
|
|:-----|:-----|:----------|
|
|
@@ -269,11 +238,10 @@ afd start # 백그라운드 데몬 시작 및 훅 자동 주입
|
|
|
269
238
|
| 파일 감시 | **Chokidar** | 크로스플랫폼, 실전 검증된 와처 |
|
|
270
239
|
| 패칭 | **RFC 6902 JSON-Patch** | 결정론적이고 조합 가능한 파일 변이 |
|
|
271
240
|
| CLI | **Commander.js** | 표준적이고 예측 가능한 커맨드 파싱 |
|
|
272
|
-
| 다국어 | **자체 i18n 엔진** | 외부 의존성 없이 0.01ms로 언어 전환 |
|
|
273
241
|
|
|
274
242
|
---
|
|
275
243
|
|
|
276
|
-
##
|
|
244
|
+
## 설치
|
|
277
245
|
|
|
278
246
|
```bash
|
|
279
247
|
# Bun 사용 권장
|
|
@@ -281,26 +249,18 @@ bun install
|
|
|
281
249
|
bun link
|
|
282
250
|
afd start
|
|
283
251
|
|
|
284
|
-
# 설치 없이 바로
|
|
252
|
+
# 설치 없이 바로 실행 (npx)
|
|
285
253
|
npx @dotoricode/afd start
|
|
286
254
|
```
|
|
287
255
|
|
|
288
256
|
### 환경 요구 사항
|
|
289
|
-
- **Bun** >= 1.0
|
|
290
|
-
- **OS**: Windows, macOS, Linux 지원
|
|
291
|
-
- **호환 환경**: Claude Code, Cursor 등 (생태계 자동 감지)
|
|
292
|
-
|
|
293
|
-
---
|
|
294
257
|
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
> **"설정 파일 하나 날아가서 30분을 허비하는 그런 날은 이제 끝났습니다."**
|
|
300
|
-
|
|
301
|
-
당신은 코드에만 집중하세요. 프로젝트 환경의 건강은 `afd`가 24시간 백그라운드에서 지켜드립니다.
|
|
258
|
+
- **Bun** >= 1.0
|
|
259
|
+
- **OS**: Windows, macOS, Linux
|
|
260
|
+
- **호환 환경**: Claude Code, Cursor, Windsurf, Codex (생태계 자동 감지)
|
|
302
261
|
|
|
303
262
|
---
|
|
304
263
|
|
|
305
264
|
## 라이선스
|
|
265
|
+
|
|
306
266
|
MIT
|