@younndai/lyt-skills 0.9.9 → 0.10.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/README.md CHANGED
@@ -74,6 +74,8 @@ Each skill autodetects the active vault + project via `lyt vault info --by-path`
74
74
 
75
75
  A `meta:` escape-hatch blob accepts free-form fields without schema churn. The result: every note an agent saves is structured, searchable, and legible to the next agent that reads it.
76
76
 
77
+ On an interactive terminal, `/lyt-capture` also resolves **where** the note lands — `--dir <vault-subdir>`, an opt-in `topics/<slug>/` folder, or the default `notes/` (fail-closed against escapes) — and offers your vault's existing topics (recommended first) so `topic:` stays consistent. `tags` fill with no model required; with a local embedding model present, a `topic:` is additionally suggested (recommended, never auto-selected) — computed on-device, never sent anywhere.
78
+
77
79
  ## Patterns vs skills
78
80
 
79
81
  - A **pattern** is data: a `pattern.yon` descriptor + a `templates/` folder of markdown templates with frontmatter. Patterns live at `~/lyt/patterns/`.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@younndai/lyt-skills",
3
- "version": "0.9.9",
3
+ "version": "0.10.0",
4
4
  "description": "Lyt harness skills — 16 skills (/lyt-plan, /lyt-progress, /lyt-result, /lyt-retro, /lyt-insight, /lyt-handoff, /lyt-decision, /lyt-pattern, /lyt-capture, /lyt-recall, /lyt-pod, /lyt-mesh-explore, /lyt-primer-context, /lyt-search, /lyt-sync, /lyt-alias) symlinked tri-runtime into ~/.claude/skills/, ~/.codex/skills/, ~/.agents/skills/. Composed into the `lyt skills install` and `lyt skills list` meta-CLI verbs.",
5
5
  "homepage": "https://linkyourthink.com",
6
6
  "repository": {
@@ -49,7 +49,7 @@
49
49
  "prepublishOnly": "node ../../scripts/check-no-vendored-deps.mjs --root ../.. && node ../../scripts/public-release/scan-tarball.mjs lyt-skills"
50
50
  },
51
51
  "dependencies": {
52
- "@younndai/lyt-vault": "^0.9.9",
52
+ "@younndai/lyt-vault": "^0.10.0",
53
53
  "commander": "^12.1.0"
54
54
  },
55
55
  "devDependencies": {
@@ -59,9 +59,9 @@ Per yai.lyt v1 frontmatter contract, every captured Figment carries 8 mandatory
59
59
 
60
60
  1. **Determine a title.** Use the user's explicit title if given. Otherwise infer a short noun-phrase (5–8 words) from the content. If unsure, ask.
61
61
  2. **Compute the slug** — lowercase, kebab-case the title, strip non-`[a-z0-9-]` characters, max 60 chars.
62
- 3. **Compute the filename** — `notes/YYYY-MM-DD-<slug>.md` using today's date.
62
+ 3. **Compute the filename** — `<dir>/YYYY-MM-DD-<slug>.md` using today's date. `<dir>` defaults to `notes/`; the user may relocate it with `lyt capture --dir <vault-relative>` (fail-closed: rejects empty / absolute / `..`-escape / vault-root / the reserved `.lyt`,`.obsidian`,`.git` trees), or opt into a topic-named folder with `--topic-folder` (routes into `topics/<topic-slug>/`; explicit `--dir` wins).
63
63
  4. **If a file already exists at that path**, append `-2`, `-3`, etc. to the slug until the path is free. Never overwrite.
64
- 5. **Fill the 8 mandatory frontmatter fields:**
64
+ 5. **Fill the 8 mandatory frontmatter fields** per the contract SoT — run `lyt contract --json` for the canonical order, sources, and defaults (source: `FRONTMATTER_CONTRACT` in `packages/lyt-vault/src/templates/contract.ts`). Do NOT hand-maintain a divergent field list. Summary (verify against `lyt contract --json`; not auto-generated):
65
65
 
66
66
  | Field | Source | Notes |
67
67
  | ----------------- | ------------------------------------- | ---------------------------------------------------------------------------------------- |
@@ -122,7 +122,7 @@ e.g. `lyt capture --index-only notes/2026-06-10-my-note.md --vault personal/main
122
122
  - **`mesh-visibility` default = `local`; `weight` default = `3`.** Override only when the user signals a non-default.
123
123
  - **User Figments are plain Obsidian-flavored markdown.** Wikilinks (`[[other-note]]`), tags (`#tag`), callouts, embeds — all fine. **Do NOT write YON inside user Figments.** YON is reserved for system files (`.lyt/vault.yon`, `.lyt/memscope.yon`, pattern.yon).
124
124
  - **Never overwrite an existing Figment.** Always pick a fresh slug suffix.
125
- - **Never touch files outside `<vault>/notes/`** unless the user explicitly says so.
125
+ - **Capture lands in `<vault>/notes/` by default;** `--dir <vault-relative>` and `--topic-folder` (opt-in → `topics/<slug>/`) may relocate it. Both are fail-closed (no `..`-escape, no absolute path, no reserved `.lyt`/`.obsidian`/`.git` tree). Do not write outside the resolved capture dir, and do not touch unrelated vault files unless the user explicitly says so.
126
126
  - **Never run `git add`/`git commit`** — sync is a separate step (`/lyt-sync` or `lyt sync --watch`).
127
127
  - If the user's content references other Figments by name, use `[[wikilinks]]` so Obsidian resolves them; don't expand them yourself.
128
128