neurain 0.1.0-alpha.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.
Files changed (89) hide show
  1. package/CHANGELOG.md +19 -0
  2. package/LICENSE +57 -0
  3. package/README.md +205 -0
  4. package/SECURITY.md +22 -0
  5. package/bin/neurain.mjs +7 -0
  6. package/docs/comparison-mem0.en.md +22 -0
  7. package/docs/connect-claude.en.md +48 -0
  8. package/docs/connect-claude.kr.md +51 -0
  9. package/docs/connect-codex.en.md +38 -0
  10. package/docs/connect-codex.kr.md +40 -0
  11. package/docs/connect-gemini.en.md +71 -0
  12. package/docs/connect-gemini.kr.md +71 -0
  13. package/docs/connect-runtime.en.md +61 -0
  14. package/docs/connect-runtime.kr.md +61 -0
  15. package/docs/development-status.en.md +157 -0
  16. package/docs/development-status.kr.md +157 -0
  17. package/docs/knowledge-os.en.md +105 -0
  18. package/docs/knowledge-os.kr.md +106 -0
  19. package/docs/pricing.en.md +14 -0
  20. package/docs/privacy-and-data-flow.en.md +25 -0
  21. package/docs/public-saas-readiness.en.md +39 -0
  22. package/docs/quickstart.en.md +64 -0
  23. package/docs/quickstart.kr.md +64 -0
  24. package/docs/release-checklist.en.md +38 -0
  25. package/docs/safety.en.md +36 -0
  26. package/docs/self-improvement-90-roadmap.en.md +429 -0
  27. package/docs/self-improvement-90-roadmap.kr.md +429 -0
  28. package/docs/self-improving-workflows.en.md +163 -0
  29. package/docs/self-improving-workflows.kr.md +163 -0
  30. package/docs/support.en.md +17 -0
  31. package/docs/troubleshooting.en.md +35 -0
  32. package/package.json +36 -0
  33. package/src/cli.mjs +261 -0
  34. package/src/core/adopt.mjs +304 -0
  35. package/src/core/answer_eval.mjs +450 -0
  36. package/src/core/capabilities.mjs +217 -0
  37. package/src/core/capture_durable.mjs +181 -0
  38. package/src/core/classify.mjs +237 -0
  39. package/src/core/compile_desk.mjs +324 -0
  40. package/src/core/complete.mjs +108 -0
  41. package/src/core/config.mjs +142 -0
  42. package/src/core/connect.mjs +355 -0
  43. package/src/core/curator.mjs +351 -0
  44. package/src/core/daemon.mjs +536 -0
  45. package/src/core/digest.mjs +155 -0
  46. package/src/core/doctor.mjs +115 -0
  47. package/src/core/durable.mjs +96 -0
  48. package/src/core/envelope.mjs +97 -0
  49. package/src/core/flush.mjs +190 -0
  50. package/src/core/fs.mjs +121 -0
  51. package/src/core/init.mjs +194 -0
  52. package/src/core/journal.mjs +269 -0
  53. package/src/core/labels.mjs +117 -0
  54. package/src/core/lessons.mjs +793 -0
  55. package/src/core/lifecycle.mjs +1138 -0
  56. package/src/core/link_check.mjs +180 -0
  57. package/src/core/live_cases.mjs +221 -0
  58. package/src/core/onboard.mjs +175 -0
  59. package/src/core/plan_receipt.mjs +177 -0
  60. package/src/core/plan_writeback.mjs +176 -0
  61. package/src/core/queue.mjs +62 -0
  62. package/src/core/queue_archive.mjs +87 -0
  63. package/src/core/queue_model.mjs +161 -0
  64. package/src/core/queue_write.mjs +28 -0
  65. package/src/core/recall.mjs +1802 -0
  66. package/src/core/recall_bench.mjs +275 -0
  67. package/src/core/recall_corpus.mjs +152 -0
  68. package/src/core/recall_facts.mjs +233 -0
  69. package/src/core/recall_intel.mjs +233 -0
  70. package/src/core/recall_lexical.mjs +269 -0
  71. package/src/core/recap.mjs +78 -0
  72. package/src/core/review_queue.mjs +131 -0
  73. package/src/core/review_worker.mjs +284 -0
  74. package/src/core/route.mjs +73 -0
  75. package/src/core/safety.mjs +57 -0
  76. package/src/core/scheduler.mjs +697 -0
  77. package/src/core/search.mjs +54 -0
  78. package/src/core/secret_scan.mjs +143 -0
  79. package/src/core/semantic.mjs +187 -0
  80. package/src/core/source_digest.mjs +56 -0
  81. package/src/core/source_digest_gen.mjs +311 -0
  82. package/src/core/stage.mjs +105 -0
  83. package/src/core/status.mjs +175 -0
  84. package/src/core/vault_state.mjs +115 -0
  85. package/src/core/watch.mjs +282 -0
  86. package/src/core/wiki_log.mjs +29 -0
  87. package/src/core/wrap.mjs +62 -0
  88. package/src/mcp/server.mjs +865 -0
  89. package/templates/starter-vault/README.md +9 -0
@@ -0,0 +1,71 @@
1
+ # Gemini CLI 연결
2
+
3
+ Version: v0.1
4
+
5
+ Gemini CLI는 MCP로 Neurain에 연결할 수 있습니다. Neurain은 제한된 tool allowlist를 사용하므로 Gemini가 상태, 검색, recall, eval, preview report를 읽을 수 있지만 조용히 durable write를 수행하는 도구는 받지 않습니다.
6
+
7
+ ## 미리보기
8
+
9
+ ```bash
10
+ npx neurain connect gemini ~/NeurainDemo --dry-run
11
+ ```
12
+
13
+ dry-run은 실제로 실행될 `gemini mcp add` 명령을 보여줍니다. Gemini 설정은 바꾸지 않습니다.
14
+
15
+ ## 적용
16
+
17
+ 출력을 확인한 뒤 같은 명령에서 `--dry-run`만 제거합니다.
18
+
19
+ ```bash
20
+ npx neurain connect gemini ~/NeurainDemo
21
+ ```
22
+
23
+ 기본은 project scope입니다. 필요하면 scope를 직접 고를 수 있습니다.
24
+
25
+ ```bash
26
+ npx neurain connect gemini ~/NeurainDemo --scope user
27
+ npx neurain connect gemini ~/NeurainDemo --scope project
28
+ ```
29
+
30
+ ## 수동 설정 fallback
31
+
32
+ Gemini CLI는 `settings.json`의 `mcpServers` 설정도 지원합니다. 수동 설정을 원하면 아래 형태를 사용합니다.
33
+
34
+ ```json
35
+ {
36
+ "mcpServers": {
37
+ "neurain": {
38
+ "command": "npx",
39
+ "args": ["-y", "neurain", "mcp", "--root", "/path/to/NeurainDemo"],
40
+ "env": {
41
+ "NEURAIN_ROOT": "/path/to/NeurainDemo"
42
+ },
43
+ "trust": false,
44
+ "includeTools": [
45
+ "neurain_status",
46
+ "neurain_search",
47
+ "neurain_adopt_scan",
48
+ "neurain_recall_hybrid_search",
49
+ "neurain_answer_quality_eval",
50
+ "neurain_live_cases_scaffold",
51
+ "neurain_wrap_preview"
52
+ ]
53
+ }
54
+ }
55
+ }
56
+ ```
57
+
58
+ ## Lifecycle boundary
59
+
60
+ Gemini MCP 연결은 지원됩니다. 다만 native Gemini lifecycle hook 자동화는 이번 alpha에서는 manual-only입니다. boundary receipt가 필요하면 명시적으로 lifecycle command를 실행합니다.
61
+
62
+ ```bash
63
+ npx neurain lifecycle emit ~/NeurainDemo --host gemini --event turn_end --session-id gemini-session-1 --turn-id turn-1 --confirm "1건 저장 진행"
64
+ ```
65
+
66
+ ## 안전 기준
67
+
68
+ - MCP는 preview와 eval을 실행할 수 있습니다.
69
+ - MCP는 lesson을 조용히 승격하거나 durable wiki knowledge를 쓰지 않습니다.
70
+ - Gemini allowlist는 기본적으로 raw capture를 제외합니다.
71
+ - redacted live-case scaffold는 hash-only source ref를 반환하고 raw source text를 저장하지 않습니다.
@@ -0,0 +1,61 @@
1
+ # Connect Agent Runtime
2
+
3
+ Agent Runtime means a generic AI host that owns prompt assembly, model calls, tool execution, and session lifecycle. It is not an LLM. The clean Neurain path is to let the runtime stay in front while Neurain runs behind it as a bounded MCP knowledge server.
4
+
5
+ Preview a bounded runtime MCP config:
6
+
7
+ ```bash
8
+ npx neurain connect runtime ~/NeurainDemo --dry-run
9
+ ```
10
+
11
+ The alpha does not edit any host config directly. It prints a bounded config snippet like this:
12
+
13
+ ```yaml
14
+ mcp_servers:
15
+ neurain:
16
+ command: "npx"
17
+ args: ["-y", "neurain", "mcp", "--root", "/path/to/NeurainDemo"]
18
+ env:
19
+ NEURAIN_ROOT: "/path/to/NeurainDemo"
20
+ tools:
21
+ include:
22
+ - neurain_status
23
+ - neurain_search
24
+ - neurain_recall_search
25
+ - neurain_recall_status
26
+ - neurain_recall_verify
27
+ - neurain_recall_cross_host_eval
28
+ - neurain_lifecycle_report
29
+ - neurain_watch_report
30
+ - neurain_review_worker
31
+ - neurain_scheduler_tick
32
+ - neurain_scheduler_eval
33
+ - neurain_wrap_preview
34
+ resources: false
35
+ prompts: false
36
+ ```
37
+
38
+ After adding the snippet to the target host config, reload MCP using that host's normal reload flow.
39
+
40
+ Safety boundary:
41
+
42
+ - The agent runtime gets a small read-heavy Neurain tool surface.
43
+ - Neurain does not become dependent on any single runtime.
44
+ - MCP cannot silently promote lessons, rebuild recall cache, or write durable wiki knowledge.
45
+ - Durable Neurain writes still require explicit CLI confirmation.
46
+ - The alpha snippet does not support paths containing newline or control bytes.
47
+ - Scheduler access is read-only and cannot install background jobs or start daemons.
48
+ - Scheduler eval access is read-only and checks trigger precision, trigger recall, no-recursion, private-boundary handling, case-file size limits, and target-root non-write snapshots.
49
+ - Lifecycle access is read-only through MCP. The runtime can inspect session lineage, while deeper lifecycle event emission uses the separate host-proxy contract below.
50
+
51
+ ## Lifecycle Boundary
52
+
53
+ Runtime does not have a Neurain-owned native config writer in alpha. Instead, Neurain exposes a host-proxy lifecycle contract that an agent runtime can call when it knows a turn boundary:
54
+
55
+ ```bash
56
+ npx neurain connect runtime ~/NeurainDemo --lifecycle-hooks --dry-run
57
+ ```
58
+
59
+ The preview prints a JSON contract with the command and supported direct lifecycle events such as `session_start`, `turn_start`, `turn_end`, `review_due`, `compaction`, `resume`, and `session_end`.
60
+
61
+ This is not a claim that Neurain owns the agent loop. The runtime remains the front agent host. Neurain receives only boundary metadata, requires explicit confirmation in the command, and does not store prompt bodies, messages, transcript paths, tool stdout, or tool stderr.
@@ -0,0 +1,61 @@
1
+ # Agent Runtime 연결
2
+
3
+ Agent Runtime은 prompt assembly, model call, tool execution, session lifecycle을 소유하는 일반 AI host를 뜻합니다. LLM 자체가 아닙니다. Neurain의 깔끔한 방향은 runtime을 앞단에 두고, Neurain은 뒤에서 bounded MCP knowledge server로 동작하게 하는 것입니다.
4
+
5
+ Bounded runtime MCP config를 preview합니다.
6
+
7
+ ```bash
8
+ npx neurain connect runtime ~/NeurainDemo --dry-run
9
+ ```
10
+
11
+ Alpha에서는 어떤 host config도 직접 수정하지 않습니다. 대신 아래와 같은 bounded config snippet을 출력합니다.
12
+
13
+ ```yaml
14
+ mcp_servers:
15
+ neurain:
16
+ command: "npx"
17
+ args: ["-y", "neurain", "mcp", "--root", "/path/to/NeurainDemo"]
18
+ env:
19
+ NEURAIN_ROOT: "/path/to/NeurainDemo"
20
+ tools:
21
+ include:
22
+ - neurain_status
23
+ - neurain_search
24
+ - neurain_recall_search
25
+ - neurain_recall_status
26
+ - neurain_recall_verify
27
+ - neurain_recall_cross_host_eval
28
+ - neurain_lifecycle_report
29
+ - neurain_watch_report
30
+ - neurain_review_worker
31
+ - neurain_scheduler_tick
32
+ - neurain_scheduler_eval
33
+ - neurain_wrap_preview
34
+ resources: false
35
+ prompts: false
36
+ ```
37
+
38
+ Snippet을 대상 host config에 추가한 뒤, 해당 host의 일반 MCP reload flow를 사용합니다.
39
+
40
+ Safety boundary:
41
+
42
+ - Agent runtime은 작은 read-heavy Neurain tool surface만 받습니다.
43
+ - Neurain은 특정 runtime에 dependency를 갖지 않습니다.
44
+ - MCP는 lesson을 조용히 promote하거나 recall cache를 rebuild하거나 durable wiki knowledge를 write할 수 없습니다.
45
+ - Durable Neurain write는 여전히 explicit CLI confirmation이 필요합니다.
46
+ - Alpha snippet은 newline 또는 control byte가 포함된 path를 지원하지 않습니다.
47
+ - Scheduler access는 read-only이며 background job을 설치하거나 daemon을 시작할 수 없습니다.
48
+ - Scheduler eval access도 read-only이며 trigger precision, trigger recall, no-recursion, private-boundary handling, case-file size limit, target-root non-write snapshot을 확인합니다.
49
+ - Lifecycle access는 MCP에서 read-only입니다. Runtime은 session lineage를 읽을 수 있고, 더 깊은 lifecycle event emission은 아래 host-proxy contract를 사용합니다.
50
+
51
+ ## Lifecycle Boundary
52
+
53
+ Alpha에서 Neurain은 runtime native config writer를 소유하지 않습니다. 대신 agent runtime이 turn boundary를 알고 있을 때 호출할 수 있는 host-proxy lifecycle contract를 제공합니다.
54
+
55
+ ```bash
56
+ npx neurain connect runtime ~/NeurainDemo --lifecycle-hooks --dry-run
57
+ ```
58
+
59
+ Preview는 command와 지원하는 direct lifecycle event가 포함된 JSON contract를 출력합니다. 지원 event는 `session_start`, `turn_start`, `turn_end`, `review_due`, `compaction`, `resume`, `session_end` 등을 포함합니다.
60
+
61
+ 이것은 Neurain이 agent loop를 소유한다는 뜻이 아닙니다. Runtime은 앞단 agent host로 남고, Neurain은 boundary metadata만 받습니다. Command에는 explicit confirmation이 필요하며 prompt body, messages, transcript path, tool stdout, tool stderr는 저장하지 않습니다.
@@ -0,0 +1,157 @@
1
+ # Development Status
2
+
3
+ Version: v0.1
4
+ Last updated: 2026-06-09 KST
5
+ Package: `neurain@0.1.0-alpha.0`
6
+ Latest documented commit: `3496262 Add E24 onboarding and Gemini MCP connector`
7
+
8
+ This document is the canonical product development snapshot for the public package. It tracks what is shipped, what has evidence, and what must not be claimed yet.
9
+
10
+ ## Current Product Stage
11
+
12
+ Neurain is a publish-ready alpha CLI and MCP package. It is ready for private beta or alpha user tests, not public SaaS GA.
13
+
14
+ Current verified score:
15
+
16
+ | Gate | Result |
17
+ |---|---:|
18
+ | `npm test` | 37/37 pass |
19
+ | `node scripts/readiness.mjs --json` | `ok:true`, score `100`, 35 checks |
20
+ | `npm run readiness -- --json` | `ok:true`, score `100` |
21
+ | `npm audit` | 0 vulnerabilities |
22
+ | `npm pack --dry-run` | pass |
23
+ | Temporary tarball install smoke | pass |
24
+
25
+ ## Shipped Development
26
+
27
+ ### Foundation Before E21
28
+
29
+ - Starter vault initialization with `neurain init`.
30
+ - Existing folder adoption scan, apply, receipt, and rollback.
31
+ - Local doctor, search, capabilities, recap, and wrap preview.
32
+ - Event journal add/list/verify with explicit confirmation.
33
+ - Lesson list, candidates, eval, promotion, and rollback.
34
+ - Watch report, review worker, scheduler tick, scheduler monitor, foreground daemon.
35
+ - Curator status, run preview, confirmed status updates, snapshot, and rollback.
36
+ - Optional SQLite FTS5 recall DB with markdown fallback and rebuild receipts.
37
+ - Answer-quality eval with synthetic and reviewed case-file modes.
38
+
39
+ ### E21: Native Lifecycle Automation Eval
40
+
41
+ Status: shipped.
42
+
43
+ - CLI: `neurain lifecycle eval <folder>`.
44
+ - MCP: `neurain_lifecycle_eval`, read-only.
45
+ - Replays Claude Code, Codex, Runtime, and generic lifecycle payloads through actual adapters in isolated temp roots.
46
+ - Proves prompt bodies, transcript paths, tool stdout, tool stderr, secret-like content, and injection-like content are not persisted.
47
+ - Gates malformed, unsupported, missing-session, traversal, target-root non-write, coverage, and temp cleanup.
48
+ - Honest scope: this is a lifecycle safety gate. It does not make Neurain own the host model loop and does not claim automatic background self-improvement.
49
+
50
+ ### E22: Semantic Recall Quality
51
+
52
+ Status: shipped.
53
+
54
+ - CLI: `neurain recall semantic-search`, `neurain recall eval --semantic`.
55
+ - MCP: `neurain_recall_semantic_search`, `neurain_recall_semantic_eval`, read-only.
56
+ - Adds deterministic local lexical-semantic recall using stemming, curated synonyms, and fuzzy character-trigram matching.
57
+ - Makes no model call, has no external dependency, and keeps provider replacement possible.
58
+ - Honest scope: this is not neural semantic understanding. It improves paraphrase recall within its local lexical scope.
59
+
60
+ ### Hybrid Recall Fix
61
+
62
+ Status: shipped after real-content live-eval exposed a regression.
63
+
64
+ - CLI: `neurain recall hybrid-search`.
65
+ - MCP: `neurain_recall_hybrid_search`, read-only.
66
+ - Combines exact-token recall with local lexical-semantic recall.
67
+ - Guarantees the hybrid union is not worse than exact-token for covered results.
68
+ - `--top` is per branch, so returned union can be longer than `--top`.
69
+
70
+ ### E23: Live Use Eval Infrastructure
71
+
72
+ Status: shipped for first increment and redacted scaffold.
73
+
74
+ - CLI: `neurain recall live-eval <folder>`.
75
+ - CLI: `neurain live-cases scaffold <folder>`.
76
+ - MCP: `neurain_live_cases_scaffold`, read-only.
77
+ - Live-eval measures real-folder recall coverage without storing source content.
78
+ - Scaffold creates hash-only source refs and reviewed case templates without raw source text, absolute local paths, secret-like content, or injection-like content.
79
+ - Scaffold intentionally reports `reviewed_live_user_evidence:false` and `human_judged:false` until a human fills cases.
80
+ - Honest scope: this prepares safe live evidence. It does not fabricate external user proof, and three real user walkthroughs are still required for that claim.
81
+
82
+ ### E24: Non-Developer Onboarding
83
+
84
+ Status: shipped.
85
+
86
+ - CLI: `neurain onboard <folder>`.
87
+ - Read-only first screen for new users.
88
+ - Tells a user whether to initialize, scan an existing folder, connect a host, or preview wrap.
89
+ - Reports what Neurain stores and does not store.
90
+ - Makes no model call, no external call, and no durable write.
91
+
92
+ ### E25: Installable CLI Readiness
93
+
94
+ Status: shipped as publish-ready alpha.
95
+
96
+ - `package.json` exposes the `neurain` binary.
97
+ - README, quickstart, safety, privacy, support, pricing, troubleshooting, and release checklist exist.
98
+ - CI workflow, issue templates, PR template, license, and security doc exist.
99
+ - Full readiness verifies npm audit, pack dry-run, and temporary tarball install smoke.
100
+ - Honest scope: npm publish or package name reservation still requires an explicit release action.
101
+
102
+ ### E26: Thin MCP Connector
103
+
104
+ Status: shipped.
105
+
106
+ - Codex MCP command dry-run and apply command generation.
107
+ - Claude Code MCP command dry-run and apply command generation.
108
+ - Gemini CLI MCP command dry-run and apply command generation with bounded read-first tool allowlist.
109
+ - Runtime MCP config-preview snippet.
110
+ - MCP server exposes bounded alpha tools for status, search, scan, recall, eval, live-case scaffold, lesson preview, scheduler preview, lifecycle report/eval, and wrap preview.
111
+ - MCP does not expose silent durable wiki writes, lifecycle emit, daemon run/stop, curator write, recall rebuild write, or lesson promotion.
112
+
113
+ ## Current Connector Truth Table
114
+
115
+ | Host | MCP connection | Lifecycle hook preview | Notes |
116
+ |---|---|---|---|
117
+ | Codex | shipped | shipped | `.codex/hooks.json` preview |
118
+ | Claude Code | shipped | shipped | Claude settings preview |
119
+ | Gemini CLI | shipped | manual lifecycle only | MCP config and `gemini mcp add` command supported |
120
+ | Agent Runtime | config-preview shipped | host-proxy contract shipped | Neurain does not edit Runtime config |
121
+
122
+ ## Still Not Shipped
123
+
124
+ - External user walkthrough evidence from at least three real folders.
125
+ - Non-developer GUI.
126
+ - Hosted control plane.
127
+ - Public Trust Center and status page.
128
+ - npm publish or package name reservation.
129
+ - Public GitHub publication if the repo is intentionally kept private during beta.
130
+
131
+ ## Documentation Maintenance Rule
132
+
133
+ Update this file and the Korean pair whenever any of the following changes:
134
+
135
+ - CLI command surface.
136
+ - MCP tool surface.
137
+ - Safety, privacy, write, rollback, or lifecycle boundary.
138
+ - Readiness score, test count, or package version.
139
+ - E milestone status.
140
+ - Product claim level, such as alpha, private beta, public beta, or SaaS GA.
141
+
142
+ Minimum update procedure:
143
+
144
+ ```bash
145
+ npm test
146
+ node scripts/readiness.mjs --json
147
+ npm run readiness -- --json
148
+ ```
149
+
150
+ Then update:
151
+
152
+ - `README.md`
153
+ - `docs/development-status.en.md`
154
+ - `docs/development-status.kr.md`
155
+ - affected connector docs
156
+ - affected workflow, readiness, or release docs
157
+
@@ -0,0 +1,157 @@
1
+ # 개발 진행 상태
2
+
3
+ Version: v0.1
4
+ Last updated: 2026-06-09 KST
5
+ Package: `neurain@0.1.0-alpha.0`
6
+ Latest documented commit: `3496262 Add E24 onboarding and Gemini MCP connector`
7
+
8
+ 이 문서는 public package 기준의 canonical 개발 상태 스냅샷입니다. 무엇이 shipped인지, 어떤 증거가 있는지, 아직 주장하면 안 되는 것이 무엇인지 함께 기록합니다.
9
+
10
+ ## 현재 제품 단계
11
+
12
+ Neurain은 publish-ready alpha CLI 및 MCP package입니다. private beta 또는 alpha user test에는 들어갈 수 있지만 public SaaS GA는 아닙니다.
13
+
14
+ 현재 검증된 상태:
15
+
16
+ | Gate | Result |
17
+ |---|---:|
18
+ | `npm test` | 37/37 pass |
19
+ | `node scripts/readiness.mjs --json` | `ok:true`, score `100`, 35 checks |
20
+ | `npm run readiness -- --json` | `ok:true`, score `100` |
21
+ | `npm audit` | 0 vulnerabilities |
22
+ | `npm pack --dry-run` | pass |
23
+ | Temporary tarball install smoke | pass |
24
+
25
+ ## shipped 개발 범위
26
+
27
+ ### E21 이전 foundation
28
+
29
+ - `neurain init` starter vault initialization.
30
+ - 기존 폴더 adoption scan, apply, receipt, rollback.
31
+ - local doctor, search, capabilities, recap, wrap preview.
32
+ - 명시적 confirmation이 필요한 event journal add/list/verify.
33
+ - lesson list, candidates, eval, promotion, rollback.
34
+ - watch report, review worker, scheduler tick, scheduler monitor, foreground daemon.
35
+ - curator status, run preview, confirmed status update, snapshot, rollback.
36
+ - markdown fallback과 rebuild receipt가 있는 optional SQLite FTS5 recall DB.
37
+ - synthetic 및 reviewed case-file mode를 지원하는 answer-quality eval.
38
+
39
+ ### E21: Native Lifecycle Automation Eval
40
+
41
+ Status: shipped.
42
+
43
+ - CLI: `neurain lifecycle eval <folder>`.
44
+ - MCP: read-only `neurain_lifecycle_eval`.
45
+ - Claude Code, Codex, Runtime, generic lifecycle payload를 실제 adapter로 격리된 temp root에서 재생합니다.
46
+ - prompt body, transcript path, tool stdout, tool stderr, secret-like content, injection-like content가 저장되지 않음을 증명합니다.
47
+ - malformed, unsupported, missing-session, traversal, target-root non-write, coverage, temp cleanup을 gate로 봅니다.
48
+ - 정직한 범위: lifecycle 안전 gate입니다. Neurain이 host model loop를 소유한다거나 automatic background self-improvement를 완성했다고 주장하지 않습니다.
49
+
50
+ ### E22: Semantic Recall Quality
51
+
52
+ Status: shipped.
53
+
54
+ - CLI: `neurain recall semantic-search`, `neurain recall eval --semantic`.
55
+ - MCP: read-only `neurain_recall_semantic_search`, `neurain_recall_semantic_eval`.
56
+ - stemming, curated synonym, fuzzy char-trigram matching을 이용한 deterministic local lexical-semantic recall을 추가합니다.
57
+ - model call이 없고, external dependency가 없고, provider 교체 가능성을 유지합니다.
58
+ - 정직한 범위: neural semantic understanding은 아닙니다. local lexical scope 안에서 paraphrase recall을 개선합니다.
59
+
60
+ ### Hybrid Recall Fix
61
+
62
+ Status: real-content live-eval이 regression을 잡은 뒤 shipped.
63
+
64
+ - CLI: `neurain recall hybrid-search`.
65
+ - MCP: read-only `neurain_recall_hybrid_search`.
66
+ - exact-token recall과 local lexical-semantic recall을 합칩니다.
67
+ - covered result 기준 hybrid union이 exact-token보다 나빠지지 않게 합니다.
68
+ - `--top`은 branch별 후보 깊이라 반환 union은 `--top`보다 길어질 수 있습니다.
69
+
70
+ ### E23: Live Use Eval Infrastructure
71
+
72
+ Status: first increment와 redacted scaffold shipped.
73
+
74
+ - CLI: `neurain recall live-eval <folder>`.
75
+ - CLI: `neurain live-cases scaffold <folder>`.
76
+ - MCP: read-only `neurain_live_cases_scaffold`.
77
+ - live-eval은 source content를 저장하지 않고 실제 폴더의 recall coverage를 측정합니다.
78
+ - scaffold는 raw source text, absolute local path, secret-like content, injection-like content 없이 hash-only source ref와 reviewed case template을 만듭니다.
79
+ - scaffold는 사람이 case를 채우기 전까지 의도적으로 `reviewed_live_user_evidence:false`, `human_judged:false`를 보고합니다.
80
+ - 정직한 범위: 안전한 live evidence 준비물입니다. 외부 사용자 증거를 만들었다고 주장하지 않으며, 최소 3개 실제 user walkthrough는 아직 필요합니다.
81
+
82
+ ### E24: Non-Developer Onboarding
83
+
84
+ Status: shipped.
85
+
86
+ - CLI: `neurain onboard <folder>`.
87
+ - 신규 사용자를 위한 read-only 첫 화면입니다.
88
+ - 사용자가 initialize, existing-folder scan, host connect, wrap preview 중 무엇을 해야 하는지 알려줍니다.
89
+ - Neurain이 저장하는 것과 저장하지 않는 것을 설명합니다.
90
+ - model call, external call, durable write가 없습니다.
91
+
92
+ ### E25: Installable CLI Readiness
93
+
94
+ Status: publish-ready alpha로 shipped.
95
+
96
+ - `package.json`이 `neurain` binary를 노출합니다.
97
+ - README, quickstart, safety, privacy, support, pricing, troubleshooting, release checklist가 존재합니다.
98
+ - CI workflow, issue template, PR template, license, security doc이 존재합니다.
99
+ - full readiness가 npm audit, pack dry-run, temporary tarball install smoke를 검증합니다.
100
+ - 정직한 범위: npm publish 또는 package name reservation은 별도 release action이 필요합니다.
101
+
102
+ ### E26: Thin MCP Connector
103
+
104
+ Status: shipped.
105
+
106
+ - Codex MCP command dry-run 및 apply command generation.
107
+ - Claude Code MCP command dry-run 및 apply command generation.
108
+ - Gemini CLI MCP command dry-run 및 bounded read-first tool allowlist가 포함된 apply command generation.
109
+ - Runtime MCP config-preview snippet.
110
+ - MCP server는 status, search, scan, recall, eval, live-case scaffold, lesson preview, scheduler preview, lifecycle report/eval, wrap preview용 bounded alpha tool을 노출합니다.
111
+ - MCP는 silent durable wiki write, lifecycle emit, daemon run/stop, curator write, recall rebuild write, lesson promotion을 노출하지 않습니다.
112
+
113
+ ## 현재 connector truth table
114
+
115
+ | Host | MCP connection | Lifecycle hook preview | Notes |
116
+ |---|---|---|---|
117
+ | Codex | shipped | shipped | `.codex/hooks.json` preview |
118
+ | Claude Code | shipped | shipped | Claude settings preview |
119
+ | Gemini CLI | shipped | manual lifecycle only | MCP config와 `gemini mcp add` command 지원 |
120
+ | Agent Runtime | config-preview shipped | host-proxy contract shipped | Neurain은 Runtime config를 직접 수정하지 않음 |
121
+
122
+ ## 아직 shipped가 아닌 것
123
+
124
+ - 최소 3개 실제 폴더 기준 external user walkthrough evidence.
125
+ - non-developer GUI.
126
+ - hosted control plane.
127
+ - public Trust Center 및 status page.
128
+ - npm publish 또는 package name reservation.
129
+ - beta 동안 repo를 private으로 유지한다면 public GitHub publication.
130
+
131
+ ## 문서 유지관리 규칙
132
+
133
+ 아래가 바뀌면 이 문서와 영어 pair를 업데이트합니다.
134
+
135
+ - CLI command surface.
136
+ - MCP tool surface.
137
+ - safety, privacy, write, rollback, lifecycle boundary.
138
+ - readiness score, test count, package version.
139
+ - E milestone status.
140
+ - alpha, private beta, public beta, SaaS GA 같은 product claim level.
141
+
142
+ 최소 업데이트 절차:
143
+
144
+ ```bash
145
+ npm test
146
+ node scripts/readiness.mjs --json
147
+ npm run readiness -- --json
148
+ ```
149
+
150
+ 그 다음 아래 문서를 업데이트합니다.
151
+
152
+ - `README.md`
153
+ - `docs/development-status.en.md`
154
+ - `docs/development-status.kr.md`
155
+ - 영향을 받은 connector docs
156
+ - 영향을 받은 workflow, readiness, release docs
157
+
@@ -0,0 +1,105 @@
1
+ # Neurain Knowledge OS
2
+
3
+ Version: 0.2
4
+
5
+ Neurain Knowledge OS is the external product name for Neurain's local-first knowledge layer.
6
+
7
+ For current shipped scope, test evidence, and remaining gaps, see `docs/development-status.en.md`.
8
+
9
+ It is designed for a simple customer promise:
10
+
11
+ > Bring your folder, keep your knowledge, use any AI agent.
12
+
13
+ ## What It Is
14
+
15
+ Neurain Knowledge OS is a source-grounded operating layer for a user's working folder.
16
+
17
+ It gives AI agents a consistent way to:
18
+
19
+ - understand the folder structure
20
+ - keep a durable wiki
21
+ - preserve source evidence
22
+ - capture important work
23
+ - expose reviewed lessons from prior sessions
24
+ - avoid unsafe durable writes
25
+ - recover and continue across agents
26
+
27
+ ## What It Is Not
28
+
29
+ Neurain is not an LLM.
30
+
31
+ It does not replace Claude, GPT, Gemini, DeepSeek, or local models. It also does not need one fixed model provider to work.
32
+
33
+ Neurain is also not a hidden cloud memory database. The default product direction is local-first. The user's folder and Neurain vault remain the source of truth unless the user explicitly connects another service.
34
+
35
+ ## Layer Model
36
+
37
+ Neurain should be explained with three layers.
38
+
39
+ | Layer | Examples | Job |
40
+ |---|---|---|
41
+ | Model layer | Claude, GPT, Gemini, DeepSeek, local models | Generate reasoning and text |
42
+ | Agent runtime layer | Agent Runtime, Codex, Claude Code, Gemini CLI, OpenClaw | Assemble prompts, call models, execute tools, manage turns |
43
+ | Knowledge OS layer | Neurain Knowledge OS | Store source-grounded knowledge, memory, wiki, lessons, receipts, and recovery state |
44
+
45
+ Agent Runtime means a generic AI host that owns prompt assembly, model calls, tool execution, and session lifecycle. In this document, "Agent Runtime" always refers to a runtime, not an LLM. Comparing a runtime to Claude or Gemini model families is a category mistake.
46
+
47
+ ## Why Use Neurain With An Agent Runtime
48
+
49
+ Runtime can own the agent loop and provide a strong self-improving runtime. Neurain's role is different.
50
+
51
+ Neurain helps when the user wants:
52
+
53
+ - the working folder to remain the durable source of truth
54
+ - knowledge to be portable across Codex, Claude Code, Gemini CLI, Agent Runtime, and future hosts
55
+ - source-grounded wiki pages instead of chat-only memory
56
+ - safety gates before durable writes
57
+ - rollback receipts for changes
58
+ - private material to stay local
59
+ - a plain markdown fallback when the AI host changes
60
+
61
+ The preferred relationship is not "runtime versus Neurain." It is "runtime in front, Neurain behind" when the user wants an agent runtime to own the loop.
62
+
63
+ Before/after example:
64
+
65
+ - Before Neurain: the user repeats project context whenever they switch from Codex to Claude Code or Agent Runtime.
66
+ - After Neurain: each host can read the same local startup, wiki, receipts, and reviewed lessons, so the folder carries the memory instead of one chat.
67
+
68
+ ## Product Vocabulary
69
+
70
+ Use these terms in external product material:
71
+
72
+ - Neurain Knowledge OS
73
+ - local-first knowledge layer
74
+ - source-grounded wiki
75
+ - portable AI memory
76
+ - reviewed lessons
77
+ - safety receipts
78
+ - folder adoption
79
+ - agent-independent continuity
80
+
81
+ Avoid these claims until they are proven by product evidence:
82
+
83
+ - fully autonomous self-improvement
84
+ - automatic durable learning
85
+ - public SaaS ready
86
+ - enterprise governance ready
87
+ - better than a dedicated runtime as a runtime
88
+
89
+ ## First-Run Customer Story
90
+
91
+ 1. The user has a work folder.
92
+ 2. The user runs `npx neurain init <folder>`.
93
+ 3. Neurain creates a clean local vault.
94
+ 4. The user runs `npx neurain adopt <work-folder> --dry-run`.
95
+ 5. Neurain scans before writing and explains the plan.
96
+ 6. The user connects Codex, Claude Code, Gemini CLI, Agent Runtime, or another host.
97
+ 7. During work, the user runs `neurain wrap <folder> --dry-run`.
98
+ 8. Neurain previews the state, risks, recap, and lesson candidates.
99
+ 9. Durable changes require explicit human confirmation.
100
+
101
+ ## Branding Rule
102
+
103
+ For external-facing docs, prefer "Neurain Knowledge OS" on first mention. After that, "Neurain" is fine.
104
+
105
+ For internal engineering docs, "AI Knowledge OS" may still describe the category, but "Neurain Knowledge OS" is the product brand.