@openparachute/vault 0.7.2-rc.7 → 0.7.2

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.
@@ -382,6 +382,16 @@ file one document, or bring in one small batch — then stop and show them what
382
382
  happened. Structure grows from real notes (that's Part 2's design vocabulary).
383
383
  Setup is a relationship over many sessions, not an install step.
384
384
 
385
+ **Capture first, ask second.** If the person's very first message already names
386
+ something real — a live project, a decision they're weighing, a deadline —
387
+ **capture THAT as the first note from what they've told you, before asking for
388
+ more detail.** Don't interview them into an empty vault: the note you can
389
+ already write is worth more than the three you're still asking about, and your
390
+ questions land better as the follow-up to a captured thing ("got the commission
391
+ down — when's it due, and who's the client?") than as the opener. A good first
392
+ conversation that leaves the vault empty is a miss, not a success — something
393
+ they said should have stuck.
394
+
385
395
  Five short guides ship in this vault for the person to read (tagged \`#guide\`):
386
396
  [[Welcome to your vault 🪂]], [[Capture anything]], [[Tags and the graph]],
387
397
  [[Connect your AI]], and [[Yours to keep]]. Point them there for anything you'd
@@ -484,7 +494,12 @@ These three axes are the heart of vault design. Use the right one for the job:
484
494
  marked \`indexed: true\` to make it **queryable with operators** (\`query-notes
485
495
  { tag: "meeting", metadata: { held_on: { gte: "2026-01-01" } } }\`); indexing
486
496
  is opt-in per field, not automatic. Add a schema (and index a field) when you
487
- find yourself wanting to filter or sort on a value, not before.
497
+ find yourself wanting to filter or sort on a value, not before. **Field names
498
+ are global across the vault, not scoped per tag** — two tags that declare the
499
+ same field name must agree on its type. So prefer a tag-specific name
500
+ (\`price_tier\` on \`#restaurant\`, \`book_rating\` on \`#book\`) over a generic
501
+ shared one (a \`rating\` that means 1–10 on one tag and \`$\`–\`$$$$\` on another
502
+ collides); when in doubt, name the field for the tag it belongs to.
488
503
 
489
504
  Rule of thumb: **type with tags, file with paths, make-it-queryable with
490
505
  schemas.** Start minimal — invent tags as real notes need them, declare a
@@ -502,7 +517,7 @@ update-tag {
502
517
  fields: {
503
518
  held_on: { type: "string", indexed: true }, // queryable with operators
504
519
  status: { type: "string", enum: ["scheduled", "done"], default: "scheduled" }, // explicit default — declare one to auto-fill
505
- rating: { type: "integer" } // no default — stays unset until written
520
+ meeting_rating: { type: "integer" } // no default — stays unset until written; tag-specific name, not a bare rating
506
521
  }
507
522
  }
508
523
  \`\`\`
@@ -556,8 +571,8 @@ A few behaviors worth knowing before you write at scale:
556
571
  - **A schema field only back-fills when you declare an explicit \`default\`.**
557
572
  When a note gets a tag whose schema declares a field with a \`default\`, an
558
573
  unset field is filled with THAT value. A field with no \`default\` stays
559
- genuinely absent — \`query-notes { metadata: { rating: { exists: false } } }\`
560
- reliably finds notes that never set \`rating\`. Declare \`default\` on a field
574
+ genuinely absent — \`query-notes { metadata: { meeting_rating: { exists: false } } }\`
575
+ reliably finds notes that never set \`meeting_rating\`. Declare \`default\` on a field
561
576
  only when "unset" and "explicitly set to X" should read the same; leave it
562
577
  off when you need to tell them apart.
563
578
  - **Validation is advisory, never blocking — EXCEPT an \`indexed: true\`
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@openparachute/vault",
3
- "version": "0.7.2-rc.7",
3
+ "version": "0.7.2",
4
4
  "description": "Agent-native knowledge graph. Notes, tags, links over MCP.",
5
5
  "module": "src/cli.ts",
6
6
  "type": "module",