open-wiki-spec 0.2.0 → 0.2.1

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 (2) hide show
  1. package/README.md +59 -4
  2. package/package.json +1 -1
package/README.md CHANGED
@@ -5,7 +5,7 @@
5
5
  <!-- Badges -->
6
6
  [![npm version](https://img.shields.io/npm/v/open-wiki-spec)](https://www.npmjs.com/package/open-wiki-spec)
7
7
  [![license](https://img.shields.io/npm/l/open-wiki-spec)](./LICENSE)
8
- [![tests](https://img.shields.io/badge/tests-674%20passed-brightgreen)](#)
8
+ [![tests](https://img.shields.io/badge/tests-805%20passed-brightgreen)](#)
9
9
 
10
10
  ---
11
11
 
@@ -128,10 +128,12 @@ The retrieval pipeline uses **weighted scoring signals**, not free-form LLM judg
128
128
  |--------|--------|
129
129
  | Exact title match | +40 |
130
130
  | Alias match | +35 |
131
+ | Semantic similarity | +30 |
131
132
  | Active change overlap | +25 |
132
133
  | Same system | +20 |
133
134
  | Same feature link | +20 |
134
- | Full-text match | +15 |
135
+ | Partial title match | +20 |
136
+ | Full-text match | +15 / +8 |
135
137
  | Shared source | +10 |
136
138
  | Shared decision | +10 |
137
139
  | Backlink proximity | +10 |
@@ -145,7 +147,9 @@ Classification is rule-based with thresholds:
145
147
  | `new_feature` | Nothing similar found. Create new Feature + Change. |
146
148
  | `needs_confirmation` | Ambiguous results. Ask the user to choose. |
147
149
 
148
- Results are deterministic, explainable, and debuggable. No embedding service required.
150
+ Results are deterministic, explainable, and debuggable.
151
+
152
+ **v0.2.0+** also includes **semantic search** via local embeddings (`multilingual-e5-small`). When available, a 10th scoring signal (`semantic_similarity: +30`) catches meaning-based matches that keyword search misses — e.g., "새 사용자를 받고 싶어" finds "회원가입" Feature even without keyword overlap. The embedding model downloads automatically on first use (~113MB, cached locally). Use `--keywords` to let the agent pass refined search terms directly.
149
153
 
150
154
  ## Key differences from OpenSpec
151
155
 
@@ -154,7 +158,7 @@ Results are deterministic, explainable, and debuggable. No embedding service req
154
158
  | Storage | Fixed filesystem directories | Typed markdown vault with frontmatter + wikilinks |
155
159
  | Canonical spec | `spec.md` file | `Feature` note with `## Requirements` section |
156
160
  | Identity | Filepath/filename | Immutable `id` in frontmatter (survives rename/move) |
157
- | Similarity detection | Free-form LLM reasoning | Deterministic retrieval subagent with scored signals |
161
+ | Similarity detection | Free-form LLM reasoning | Deterministic retrieval + semantic embedding (multilingual) |
158
162
  | Pre-investigation | Prompt-driven, varies by session | Mandatory preflight scan before `propose` |
159
163
  | Note relationships | Directory nesting | Typed graph: wikilinks, backlinks, frontmatter links |
160
164
  | Completion model | Archive-first file movement | Status lifecycle + deferred archive |
@@ -287,10 +291,61 @@ See the full migration guide (available in `docs/migration.md` when building fro
287
291
  - Propose | Continue | Apply
288
292
  - Verify | Query | CLI Init
289
293
 
294
+ ## Full lifecycle example
295
+
296
+ ```bash
297
+ # 1. Initialize
298
+ ows init
299
+
300
+ # 2. Propose a change (preflight retrieval runs automatically)
301
+ ows propose "Add user authentication with email/password" --keywords "auth,login,password"
302
+
303
+ # 3. Fill in the Change sections (Why, Delta Summary, Tasks, Validation)
304
+ # Then advance through the lifecycle:
305
+ ows continue <changeId> # proposed → planned
306
+ ows continue <changeId> # planned → in_progress
307
+
308
+ # 4. Complete tasks, then apply to canonical Feature
309
+ ows apply <changeId>
310
+
311
+ # 5. Fill in any ADDED/MODIFIED markers in the Feature note
312
+ # Then verify everything is consistent
313
+ ows verify
314
+
315
+ # 6. Archive the completed change
316
+ ows archive <changeId>
317
+ ```
318
+
290
319
  ## Requirements
291
320
 
292
321
  - Node.js >= 20.0.0
293
322
 
323
+ ## Contributing
324
+
325
+ **We actively welcome contributions!** Whether it's bug reports, feature ideas, documentation improvements, or code — all forms of participation are appreciated.
326
+
327
+ - **Issues**: Found a bug or have a suggestion? [Open an issue](https://github.com/sh940701/open-wiki-spec/issues).
328
+ - **Pull Requests**: Fork the repo, make your changes, and submit a PR. We review promptly.
329
+ - **Discussions**: Questions about architecture, design decisions, or use cases? Start a discussion in Issues.
330
+
331
+ ### Getting started for contributors
332
+
333
+ ```bash
334
+ git clone https://github.com/sh940701/open-wiki-spec.git
335
+ cd open-wiki-spec
336
+ npm install
337
+ npm run build
338
+ npm test # 805+ tests should pass
339
+ ```
340
+
341
+ ### Areas where help is especially welcome
342
+
343
+ - **Semantic search improvements** — better embedding models, multilingual support
344
+ - **Obsidian plugin** — native Obsidian integration for graph view, Dataview queries
345
+ - **Additional agent runtime support** — Cursor, Codex, Gemini CLI adapters
346
+ - **Documentation** — tutorials, examples, translations
347
+ - **Testing** — edge cases, performance benchmarks, real-world usage reports
348
+
294
349
  ## License
295
350
 
296
351
  [MIT](./LICENSE)
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "open-wiki-spec",
3
- "version": "0.2.0",
3
+ "version": "0.2.1",
4
4
  "description": "Obsidian-first wiki workflow engine for specification management",
5
5
  "type": "module",
6
6
  "bin": {