@plures/praxis 1.2.12 → 1.2.41

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 (85) hide show
  1. package/README.md +63 -0
  2. package/dist/browser/{chunk-VOMLVI6V.js → chunk-BBP2F7TT.js} +70 -1
  3. package/dist/browser/{chunk-K377RW4V.js → chunk-FCEH7WMH.js} +1 -1
  4. package/dist/browser/{engine-YJZV4SLD.js → engine-65QDGCAN.js} +1 -1
  5. package/dist/browser/index.d.ts +104 -2
  6. package/dist/browser/index.js +181 -5
  7. package/dist/browser/integrations/svelte.d.ts +2 -2
  8. package/dist/browser/integrations/svelte.js +2 -2
  9. package/dist/browser/{reactive-engine.svelte-9aS0kTa8.d.ts → reactive-engine.svelte-Cqd8Mod2.d.ts} +56 -1
  10. package/dist/node/{chunk-PRPQO6R5.js → chunk-32YFEEML.js} +1 -1
  11. package/dist/node/{chunk-VOMLVI6V.js → chunk-BBP2F7TT.js} +70 -1
  12. package/dist/node/{chunk-5RH7UAQC.js → chunk-PTH6MD6P.js} +1 -0
  13. package/dist/node/cli/index.cjs +1553 -839
  14. package/dist/node/cli/index.js +39 -2
  15. package/dist/node/cloud/index.d.cts +1 -1
  16. package/dist/node/cloud/index.d.ts +1 -1
  17. package/dist/node/components/index.d.cts +2 -2
  18. package/dist/node/components/index.d.ts +2 -2
  19. package/dist/node/conversations-KQBXTP3N.js +596 -0
  20. package/dist/node/{engine-2DQBKBJC.js → engine-7CXQV6RC.js} +1 -1
  21. package/dist/node/index.cjs +408 -3
  22. package/dist/node/index.d.cts +308 -7
  23. package/dist/node/index.d.ts +308 -7
  24. package/dist/node/index.js +336 -6
  25. package/dist/node/integrations/svelte.cjs +70 -1
  26. package/dist/node/integrations/svelte.d.cts +3 -3
  27. package/dist/node/integrations/svelte.d.ts +3 -3
  28. package/dist/node/integrations/svelte.js +2 -2
  29. package/dist/node/{protocol-Qek7ebBl.d.ts → protocol-BocKczNv.d.cts} +1 -1
  30. package/dist/node/{protocol-Qek7ebBl.d.cts → protocol-BocKczNv.d.ts} +1 -1
  31. package/dist/node/{reactive-engine.svelte-CRNqHlbv.d.ts → reactive-engine.svelte-CGe8SpVE.d.cts} +57 -2
  32. package/dist/node/{reactive-engine.svelte-BFIZfawz.d.cts → reactive-engine.svelte-D-xTDxT5.d.ts} +57 -2
  33. package/dist/node/{terminal-adapter-B-UK_Vdz.d.ts → terminal-adapter-CvIvgTo4.d.ts} +1 -1
  34. package/dist/node/{terminal-adapter-BQSIF5bf.d.cts → terminal-adapter-Db-snPJ3.d.cts} +1 -1
  35. package/dist/node/{validate-CNHUULQE.js → validate-EN3M4FUR.js} +1 -1
  36. package/dist/node/{verify-KLJRXVJS.js → verify-7VZRP2WS.js} +2 -2
  37. package/docs/BOT_UPDATE_POLICY.md +125 -0
  38. package/docs/DOGFOODING_CHECKLIST.md +254 -0
  39. package/docs/DOGFOODING_INDEX.md +169 -0
  40. package/docs/DOGFOODING_QUICK_START.md +140 -0
  41. package/docs/KNO_ENG_EXTRACTION_PLAN.md +577 -0
  42. package/docs/PLURES_TOOLS_INVENTORY.md +170 -0
  43. package/docs/README.md +12 -0
  44. package/docs/TESTING_BOT_WORKFLOWS.md +154 -0
  45. package/docs/conversations/INTEGRATION_POINTS.md +719 -0
  46. package/docs/conversations/README.md +168 -0
  47. package/docs/core/extending-praxis-core.md +604 -0
  48. package/docs/core/praxis-core-api.md +385 -0
  49. package/docs/decision-ledger/contract-index.json +2 -2
  50. package/docs/decision-ledger/decisions/2026-02-01-monorepo-organization.md +130 -0
  51. package/docs/examples/DOGFOODING_WORKFLOW_EXAMPLE.md +295 -0
  52. package/docs/examples/README.md +41 -0
  53. package/docs/workflows/pr-overlap-guard.md +50 -0
  54. package/package.json +7 -2
  55. package/src/__tests__/chronicle.test.ts +512 -0
  56. package/src/__tests__/conversations.test.ts +312 -0
  57. package/src/__tests__/edge-cases.test.ts +1 -1
  58. package/src/__tests__/engine-dx.test.ts +355 -0
  59. package/src/cli/commands/conversations.ts +252 -0
  60. package/src/cli/index.ts +73 -0
  61. package/src/conversations/README.md +230 -0
  62. package/src/conversations/candidate.schema.json +123 -0
  63. package/src/conversations/candidates.ts +114 -0
  64. package/src/conversations/capture.ts +56 -0
  65. package/src/conversations/classify.ts +110 -0
  66. package/src/conversations/conversation.schema.json +106 -0
  67. package/src/conversations/emitters/fs.ts +65 -0
  68. package/src/conversations/emitters/github.ts +115 -0
  69. package/src/conversations/gate.ts +102 -0
  70. package/src/conversations/index.ts +28 -0
  71. package/src/conversations/normalize.ts +51 -0
  72. package/src/conversations/redact.ts +57 -0
  73. package/src/conversations/types.ts +96 -0
  74. package/src/core/chronicle/chronicle.ts +227 -0
  75. package/src/core/chronicle/context.ts +80 -0
  76. package/src/core/chronicle/index.ts +53 -0
  77. package/src/core/chronicle/mcp.ts +135 -0
  78. package/src/core/chronicle/types.ts +61 -0
  79. package/src/core/engine.ts +99 -1
  80. package/src/core/pluresdb/index.ts +22 -0
  81. package/src/core/pluresdb/store.ts +162 -5
  82. package/src/core/rules.ts +12 -0
  83. package/src/dsl/index.ts +6 -0
  84. package/src/index.ts +18 -0
  85. package/src/integrations/pluresdb.ts +22 -0
@@ -0,0 +1,577 @@
1
+ # kno-eng Extraction Plan: Integration into Praxis
2
+
3
+ **Status**: Planning Phase
4
+ **Created**: 2026-02-01
5
+ **Owner**: Praxis Team
6
+
7
+ ## Executive Summary
8
+
9
+ This document outlines the plan to refactor `kno-eng` (knowledge engineering tool) into Praxis, preserving its IDE capture/UX value while avoiding duplication of sync functionality that already exists in Praxis via PluresDB.
10
+
11
+ ## Background
12
+
13
+ ### Current State
14
+ - **kno-eng**: External knowledge capture and engineering tool with IDE integration
15
+ - **Praxis**: Full-stack framework with local-first architecture, PluresDB integration, and visual tooling
16
+ - **Overlap**: Both systems have sync capabilities; kno-eng has its own sync while Praxis uses PluresDB + Unum
17
+
18
+ ### Goals
19
+ 1. **Preserve Value**: Keep the IDE capture and UX features that make kno-eng valuable
20
+ 2. **Eliminate Duplication**: Remove redundant sync implementation from kno-eng
21
+ 3. **Leverage Praxis**: Use Praxis's existing local-first + PluresDB architecture
22
+ 4. **Seamless Integration**: Create natural integration points within praxis-conversations
23
+
24
+ ## Analysis: What kno-eng Provides
25
+
26
+ ### Core Value Propositions (KEEP)
27
+
28
+ #### 1. IDE Capture/UX Layer
29
+ - **In-IDE knowledge capture**: Capture thoughts, decisions, and context without leaving the IDE
30
+ - **Contextual annotations**: Link knowledge to specific code locations
31
+ - **Quick capture workflows**: Minimal friction for developers to record insights
32
+ - **Search and retrieval**: Fast access to previously captured knowledge
33
+ - **Visual organization**: Graph-based or hierarchical knowledge organization
34
+
35
+ **Decision**: KEEP - This is unique value that Praxis doesn't currently provide
36
+
37
+ #### 2. Knowledge Engineering Features
38
+ - **Structured knowledge templates**: Templates for different knowledge types (decisions, patterns, bugs, etc.)
39
+ - **Tagging and categorization**: Flexible taxonomy for organizing knowledge
40
+ - **Relationship mapping**: Connect related pieces of knowledge
41
+ - **Export capabilities**: Extract knowledge in various formats
42
+
43
+ **Decision**: KEEP - Integrate into Praxis schema system
44
+
45
+ #### 3. Developer Experience
46
+ - **Minimal context switching**: Stay in the IDE for knowledge capture
47
+ - **Keyboard-driven workflows**: Fast, developer-friendly interactions
48
+ - **Smart defaults**: Intelligent suggestions based on context
49
+
50
+ **Decision**: KEEP - Core UX value
51
+
52
+ ### Redundant Features (CUT)
53
+
54
+ #### 1. Custom Sync Implementation
55
+ - **Local storage layer**: Redundant with PluresDB
56
+ - **Sync protocol**: Redundant with Praxis + Unum
57
+ - **Conflict resolution**: Already handled by PluresDB CRDTs
58
+ - **Offline queue**: PluresDB provides this
59
+
60
+ **Decision**: CUT - Use Praxis/PluresDB instead
61
+
62
+ #### 2. Data Persistence
63
+ - **Custom database**: Replace with PluresDB collections
64
+ - **Schema management**: Use Praxis schema system
65
+ - **Migrations**: Use PluresDB migration system
66
+
67
+ **Decision**: CUT - Use Praxis infrastructure
68
+
69
+ #### 3. Authentication/Authorization
70
+ - If kno-eng has its own auth system, replace with Praxis Cloud GitHub OAuth
71
+
72
+ **Decision**: CUT - Use Praxis Cloud auth
73
+
74
+ ### Features to Defer (DEFER)
75
+
76
+ #### 1. Advanced Analytics
77
+ - Knowledge graph analytics
78
+ - Usage patterns and insights
79
+ - AI-powered knowledge suggestions
80
+
81
+ **Decision**: DEFER - Can be added post-migration
82
+
83
+ #### 2. Collaboration Features
84
+ - Real-time collaborative editing
85
+ - Team knowledge spaces
86
+ - Permission systems
87
+
88
+ **Decision**: DEFER - Praxis has basic team support; advanced features can come later
89
+
90
+ #### 3. External Integrations
91
+ - Integrations with external knowledge bases
92
+ - API for third-party tools
93
+ - Plugin system
94
+
95
+ **Decision**: DEFER - Focus on core functionality first
96
+
97
+ ## Integration Architecture
98
+
99
+ ### Target: praxis-conversations
100
+
101
+ Create a new module/package within Praxis for conversation and knowledge management:
102
+
103
+ ```
104
+ /praxis
105
+ /src
106
+ /conversations # NEW: Knowledge capture and conversations
107
+ /capture # IDE capture layer from kno-eng
108
+ /vscode # VS Code extension
109
+ /jetbrains # JetBrains plugin (defer)
110
+ /core # Core capture logic
111
+ /schema # Knowledge schemas
112
+ /components # UI components for knowledge views
113
+ /rules # Logic rules for knowledge processing
114
+ ```
115
+
116
+ ### Data Model
117
+
118
+ #### Knowledge Schema (PluresDB Collections)
119
+
120
+ ```typescript
121
+ // Core knowledge model
122
+ {
123
+ name: 'KnowledgeEntry',
124
+ schema: {
125
+ id: { type: 'uuid', primary: true },
126
+ type: { type: 'string' }, // decision, pattern, note, bug, etc.
127
+ title: { type: 'string', required: true },
128
+ content: { type: 'string', required: true },
129
+ tags: { type: 'array', items: 'string' },
130
+
131
+ // Code context
132
+ filePath: { type: 'string' },
133
+ lineNumber: { type: 'number' },
134
+ commitSha: { type: 'string' },
135
+
136
+ // Metadata
137
+ createdBy: { type: 'string' },
138
+ createdAt: { type: 'datetime' },
139
+ updatedAt: { type: 'datetime' },
140
+
141
+ // Relationships
142
+ relatedTo: { type: 'array', items: 'string' }, // IDs of related entries
143
+ }
144
+ }
145
+
146
+ // Conversation threads
147
+ {
148
+ name: 'ConversationThread',
149
+ schema: {
150
+ id: { type: 'uuid', primary: true },
151
+ topic: { type: 'string', required: true },
152
+ participants: { type: 'array', items: 'string' },
153
+ entries: { type: 'array', items: 'string' }, // KnowledgeEntry IDs
154
+ status: { type: 'string' }, // active, archived, resolved
155
+ createdAt: { type: 'datetime' },
156
+ updatedAt: { type: 'datetime' },
157
+ }
158
+ }
159
+
160
+ // Knowledge relationships
161
+ {
162
+ name: 'KnowledgeLink',
163
+ schema: {
164
+ id: { type: 'uuid', primary: true },
165
+ fromId: { type: 'string', required: true },
166
+ toId: { type: 'string', required: true },
167
+ type: { type: 'string' }, // relates-to, depends-on, implements, etc.
168
+ strength: { type: 'number', default: 1.0 },
169
+ }
170
+ }
171
+ ```
172
+
173
+ ### Integration Points
174
+
175
+ #### 1. IDE Extension Layer (VS Code)
176
+
177
+ **Location**: `/src/conversations/capture/vscode/`
178
+
179
+ **Functionality**:
180
+ - Command palette integration for quick capture
181
+ - Code context extraction (file, line, git info)
182
+ - Inline annotations and code lenses
183
+ - Search and navigation
184
+ - Sync via Praxis PluresDB adapter
185
+
186
+ **Architecture**:
187
+ ```typescript
188
+ // VS Code Extension
189
+ import { createPraxisLocalFirst } from '@plures/praxis';
190
+ import { KnowledgeCaptureEngine } from '@plures/praxis/conversations';
191
+
192
+ export async function activate(context: vscode.ExtensionContext) {
193
+ // Initialize Praxis with PluresDB
194
+ const db = await createPraxisLocalFirst({
195
+ mode: 'auto',
196
+ dbName: 'praxis-knowledge'
197
+ });
198
+
199
+ // Initialize knowledge capture engine
200
+ const captureEngine = new KnowledgeCaptureEngine({
201
+ db,
202
+ workspace: vscode.workspace.rootPath,
203
+ });
204
+
205
+ // Register commands
206
+ context.subscriptions.push(
207
+ vscode.commands.registerCommand('praxis.captureKnowledge', async () => {
208
+ // Capture current context
209
+ const editor = vscode.window.activeTextEditor;
210
+ await captureEngine.capture({
211
+ content: await vscode.window.showInputBox(),
212
+ context: {
213
+ filePath: editor?.document.fileName,
214
+ lineNumber: editor?.selection.active.line,
215
+ // ... more context
216
+ }
217
+ });
218
+ })
219
+ );
220
+ }
221
+ ```
222
+
223
+ #### 2. Praxis Logic Engine Integration
224
+
225
+ **Location**: `/src/conversations/rules/`
226
+
227
+ **Functionality**:
228
+ - Auto-tagging based on content
229
+ - Smart linking of related knowledge
230
+ - Notification rules (e.g., unresolved decisions)
231
+ - Knowledge graph computations
232
+
233
+ **Example Rules**:
234
+ ```typescript
235
+ import { defineRule, defineFact } from '@plures/praxis';
236
+
237
+ const KnowledgeCaptured = defineFact<'KnowledgeCaptured', {
238
+ entry: KnowledgeEntry;
239
+ }>('KnowledgeCaptured');
240
+
241
+ const autoTagRule = defineRule({
242
+ id: 'knowledge.auto-tag',
243
+ description: 'Automatically tag knowledge entries',
244
+ impl: (state, events) => {
245
+ const captured = events.find(KnowledgeCaptured.is);
246
+ if (!captured) return [];
247
+
248
+ const entry = captured.payload.entry;
249
+ const tags = extractTags(entry.content);
250
+
251
+ return [
252
+ EntryTagged.create({
253
+ entryId: entry.id,
254
+ tags
255
+ })
256
+ ];
257
+ }
258
+ });
259
+ ```
260
+
261
+ #### 3. UI Components (Svelte)
262
+
263
+ **Location**: `/src/conversations/components/`
264
+
265
+ **Components**:
266
+ - `KnowledgeEntryEditor.svelte`: Create/edit knowledge entries
267
+ - `KnowledgeGraph.svelte`: Visual graph of knowledge relationships
268
+ - `ConversationThread.svelte`: Thread view for discussions
269
+ - `KnowledgeSearch.svelte`: Search interface
270
+ - `QuickCapture.svelte`: Minimal capture form
271
+
272
+ **Integration with Praxis Component System**:
273
+ ```typescript
274
+ // Use Praxis component generation
275
+ const knowledgeComponents = generateComponents({
276
+ schema: knowledgeSchema,
277
+ target: 'svelte5',
278
+ theme: 'praxis-default'
279
+ });
280
+ ```
281
+
282
+ #### 4. PluresDB Sync Integration
283
+
284
+ **Location**: `/src/conversations/sync/`
285
+
286
+ **Functionality**:
287
+ - Leverage existing PluresDB sync
288
+ - Team knowledge sharing
289
+ - Cloud backup via Praxis Cloud
290
+
291
+ **Configuration**:
292
+ ```typescript
293
+ import { createPluresDBAdapter } from '@plures/praxis';
294
+
295
+ const pluresAdapter = createPluresDBAdapter({
296
+ db,
297
+ collections: ['KnowledgeEntry', 'ConversationThread', 'KnowledgeLink'],
298
+ sync: {
299
+ enabled: true,
300
+ endpoint: process.env.PRAXIS_CLOUD_URL,
301
+ autoSync: true,
302
+ }
303
+ });
304
+ ```
305
+
306
+ #### 5. CLI Integration
307
+
308
+ **Location**: `/src/cli/commands/knowledge.ts`
309
+
310
+ **Commands**:
311
+ ```bash
312
+ # Capture knowledge from CLI
313
+ praxis knowledge capture "Important decision about architecture"
314
+
315
+ # Search knowledge
316
+ praxis knowledge search "authentication"
317
+
318
+ # Export knowledge
319
+ praxis knowledge export --format markdown --output ./docs/decisions/
320
+
321
+ # Start knowledge server (for IDE extensions)
322
+ praxis knowledge serve --port 3000
323
+ ```
324
+
325
+ ## Migration Strategy
326
+
327
+ ### Phase 1: Core Infrastructure (Week 1-2)
328
+ - [ ] Create `/src/conversations` module structure
329
+ - [ ] Define PluresDB schemas for knowledge data
330
+ - [ ] Implement core capture logic (without IDE integration)
331
+ - [ ] Create basic Praxis rules for knowledge processing
332
+ - [ ] Add CLI commands for knowledge management
333
+
334
+ ### Phase 2: IDE Integration (Week 3-4)
335
+ - [ ] Port VS Code extension from kno-eng
336
+ - [ ] Replace kno-eng sync with PluresDB calls
337
+ - [ ] Update extension to use Praxis schema
338
+ - [ ] Test local-first functionality
339
+ - [ ] Add code lens and inline annotations
340
+
341
+ ### Phase 3: UI Components (Week 5-6)
342
+ - [ ] Generate Svelte components from schema
343
+ - [ ] Create knowledge graph visualization
344
+ - [ ] Build conversation thread UI
345
+ - [ ] Implement search interface
346
+ - [ ] Add quick capture modal
347
+
348
+ ### Phase 4: Sync & Collaboration (Week 7-8)
349
+ - [ ] Integrate with Praxis Cloud
350
+ - [ ] Enable team knowledge sharing
351
+ - [ ] Test conflict resolution
352
+ - [ ] Add usage analytics
353
+ - [ ] Performance optimization
354
+
355
+ ### Phase 5: Polish & Documentation (Week 9-10)
356
+ - [ ] User documentation
357
+ - [ ] Migration guide for existing kno-eng users
358
+ - [ ] Example knowledge bases
359
+ - [ ] Performance benchmarks
360
+ - [ ] Security audit
361
+
362
+ ## Technical Decisions
363
+
364
+ ### Decision 1: Storage Layer
365
+ **Choice**: PluresDB
366
+ **Rationale**: Already integrated, local-first, CRDT-based, proven sync
367
+ **Tradeoff**: Slight learning curve for kno-eng users, but better long-term
368
+
369
+ ### Decision 2: UI Framework
370
+ **Choice**: Svelte 5
371
+ **Rationale**: Praxis standard, component generation support
372
+ **Tradeoff**: Need to port any existing UI
373
+
374
+ ### Decision 3: IDE Support Priority
375
+ **Choice**: VS Code first, JetBrains defer
376
+ **Rationale**: Broader user base, easier integration
377
+ **Tradeoff**: JetBrains users wait longer
378
+
379
+ ### Decision 4: Sync Protocol
380
+ **Choice**: PluresDB + Unum (not custom)
381
+ **Rationale**: Don't reinvent the wheel, proven architecture
382
+ **Tradeoff**: Less control over sync details
383
+
384
+ ### Decision 5: Module Structure
385
+ **Choice**: `/src/conversations` within praxis core
386
+ **Rationale**: First-class feature, not a separate package
387
+ **Tradeoff**: Increases praxis bundle size slightly
388
+
389
+ ## Success Metrics
390
+
391
+ ### Functional
392
+ - [ ] Can capture knowledge from VS Code
393
+ - [ ] Knowledge persists locally via PluresDB
394
+ - [ ] Knowledge syncs across devices
395
+ - [ ] Search returns relevant results < 100ms
396
+ - [ ] No data loss during offline->online transitions
397
+
398
+ ### Performance
399
+ - [ ] Capture latency < 50ms
400
+ - [ ] Search results < 100ms for 10k entries
401
+ - [ ] Sync < 1s for typical knowledge base
402
+ - [ ] VS Code extension bundle < 500KB
403
+
404
+ ### UX
405
+ - [ ] < 3 clicks to capture knowledge
406
+ - [ ] Zero config for local-first usage
407
+ - [ ] < 5 min setup for cloud sync
408
+ - [ ] Keyboard shortcuts for all common actions
409
+
410
+ ## Open Questions
411
+
412
+ 1. **Namespace**: Should it be `@plures/praxis/conversations` or `@plures/praxis-conversations`?
413
+ - **Recommendation**: `/conversations` subpath export for now, can extract later if needed
414
+
415
+ 2. **Knowledge Graph UI**: Use existing library (e.g., react-flow) or build custom?
416
+ - **Recommendation**: Start with existing library (adapt to Svelte), optimize later
417
+
418
+ 3. **Migration Tool**: How do existing kno-eng users migrate their data?
419
+ - **Recommendation**: Build a CLI migration tool: `praxis knowledge migrate --from kno-eng`
420
+
421
+ 4. **Pricing**: Should knowledge features be free or part of paid tiers?
422
+ - **Recommendation**: Free for local-only, cloud sync requires Praxis Cloud subscription
423
+
424
+ 5. **Conversation Features**: Full chat-like interface or simple threaded comments?
425
+ - **Recommendation**: Start simple (threaded comments), add chat features if needed
426
+
427
+ ## Resources Required
428
+
429
+ ### Development
430
+ - 1 full-stack developer (10 weeks)
431
+ - 1 VS Code extension developer (4 weeks)
432
+ - 1 UX designer (2 weeks, part-time)
433
+
434
+ ### Testing
435
+ - 10 beta users from kno-eng community
436
+ - 2 weeks testing period
437
+
438
+ ### Documentation
439
+ - User guide (20 pages)
440
+ - Migration guide (10 pages)
441
+ - API documentation (generated)
442
+ - Video tutorials (3x 5min videos)
443
+
444
+ ## Risks & Mitigation
445
+
446
+ ### Risk 1: Feature Parity
447
+ **Risk**: Missing features that kno-eng users depend on
448
+ **Mitigation**: Survey existing users, beta program, phased rollout
449
+
450
+ ### Risk 2: Performance
451
+ **Risk**: PluresDB overhead vs. custom solution
452
+ **Mitigation**: Benchmark early, optimize indexes, consider caching
453
+
454
+ ### Risk 3: Adoption
455
+ **Risk**: Existing kno-eng users resist migration
456
+ **Mitigation**: Migration tool, maintain kno-eng for 6 months, clear benefits communication
457
+
458
+ ### Risk 4: Scope Creep
459
+ **Risk**: Adding too many new features during migration
460
+ **Mitigation**: Strict phase gates, defer non-essential features
461
+
462
+ ## Next Steps
463
+
464
+ 1. **Approval**: Get stakeholder sign-off on this plan
465
+ 2. **Prototyping**: Build Phase 1 prototype (1 week)
466
+ 3. **Beta Recruitment**: Recruit 10 beta testers from kno-eng community
467
+ 4. **Kickoff**: Start Phase 1 development
468
+ 5. **Weekly Reviews**: Track progress against milestones
469
+
470
+ ## Appendix A: Praxis Integration Points Summary
471
+
472
+ | Feature | Integration Point | Status |
473
+ |---------|------------------|--------|
474
+ | Knowledge Storage | PluresDB collections | Plan complete |
475
+ | Sync | PluresDB + Unum | Plan complete |
476
+ | UI Components | Svelte 5 components | Plan complete |
477
+ | Logic Rules | Praxis logic engine | Plan complete |
478
+ | CLI | Praxis CLI commands | Plan complete |
479
+ | Auth | Praxis Cloud OAuth | Plan complete |
480
+ | IDE Extension | VS Code extension | Plan complete |
481
+ | Documentation | State-Docs | Planned |
482
+ | Visual Editing | CodeCanvas | Deferred |
483
+
484
+ ## Appendix B: File Structure
485
+
486
+ ```
487
+ /praxis
488
+ /src
489
+ /conversations/
490
+ /core/
491
+ index.ts # Main entry point
492
+ engine.ts # KnowledgeCaptureEngine
493
+ types.ts # TypeScript types
494
+ /capture/
495
+ /vscode/
496
+ extension.ts # VS Code extension entry
497
+ commands.ts # Command implementations
498
+ provider.ts # Code lens provider
499
+ /core/
500
+ capturer.ts # Core capture logic
501
+ context.ts # Context extraction
502
+ /schema/
503
+ knowledge.schema.ts # PluresDB schema definitions
504
+ contracts.ts # Decision ledger contracts
505
+ /components/
506
+ KnowledgeEntry.svelte
507
+ KnowledgeGraph.svelte
508
+ ConversationThread.svelte
509
+ QuickCapture.svelte
510
+ /rules/
511
+ auto-tag.ts # Auto-tagging rule
512
+ link-detection.ts # Smart linking rule
513
+ notifications.ts # Notification rules
514
+ /cli/
515
+ capture.ts # CLI capture command
516
+ search.ts # CLI search command
517
+ export.ts # CLI export command
518
+ /sync/
519
+ adapter.ts # PluresDB adapter config
520
+
521
+ /docs
522
+ /conversations/
523
+ README.md # Overview
524
+ GETTING_STARTED.md # Quick start
525
+ MIGRATION.md # Migration from kno-eng
526
+ ARCHITECTURE.md # Architecture details
527
+
528
+ /examples
529
+ /knowledge-capture/
530
+ README.md
531
+ src/
532
+ basic-example.ts
533
+ vscode-integration.ts
534
+ ```
535
+
536
+ ## Appendix C: Example API Usage
537
+
538
+ ```typescript
539
+ import {
540
+ KnowledgeCaptureEngine,
541
+ createKnowledgeDB
542
+ } from '@plures/praxis/conversations';
543
+
544
+ // Initialize
545
+ const db = await createKnowledgeDB({ mode: 'auto' });
546
+ const engine = new KnowledgeCaptureEngine({ db });
547
+
548
+ // Capture knowledge
549
+ const entry = await engine.capture({
550
+ type: 'decision',
551
+ title: 'Use PluresDB for storage',
552
+ content: 'We decided to use PluresDB because...',
553
+ tags: ['architecture', 'storage'],
554
+ context: {
555
+ filePath: '/src/db.ts',
556
+ lineNumber: 42,
557
+ }
558
+ });
559
+
560
+ // Search
561
+ const results = await engine.search('PluresDB');
562
+
563
+ // Create conversation thread
564
+ const thread = await engine.createThread({
565
+ topic: 'Storage architecture discussion',
566
+ entries: [entry.id],
567
+ });
568
+
569
+ // Link related knowledge
570
+ await engine.link(entry.id, relatedEntryId, 'implements');
571
+ ```
572
+
573
+ ---
574
+
575
+ **Document Version**: 1.0
576
+ **Last Updated**: 2026-02-01
577
+ **Next Review**: After Phase 1 completion