@younndai/lyt-skills 0.10.0 → 0.11.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
@@ -24,41 +24,36 @@
24
24
 
25
25
  ## What is this?
26
26
 
27
- `@younndai/lyt-skills` is where [Lyt™](https://github.com/YounndAI/lyt)'s **AI-first** design becomes tangible: sixteen harness skills that let AI agents — Claude Code, Codex, and generic agent runtimes — drive your markdown vaults as **first-class operators**. Install once and your agent can capture notes, search your pod, record decisions, write plans, retros, and handoffs, explore meshes, and sync vaults — through the same governed operation set you use, under the same permission semantics. This is the "install once, every agent runtime knows Lyt" layer.
27
+ `@younndai/lyt-skills` is where [Lyt™](https://github.com/YounndAI/lyt)'s **AI-first** design becomes tangible: eleven harness skills that let AI agents — Claude Code, Codex, and generic agent runtimes — drive your markdown vaults as **first-class operators**. Install once and your agent can capture notes, search your pod, prime on context, adopt a vault, explore meshes, and sync vaults — through the same governed operation set you use, under the same permission semantics. This is the "install once, every agent runtime knows Lyt" layer.
28
28
 
29
- Most skills wrap a pattern verb from the `lyt pattern run` runtime, so structured knowledge work (plans, results, decisions, captures) shows up as first-class agent skills inside any vault; the read/orient + addressing skills (`/lyt-pod`, `/lyt-search`, `/lyt-primer-context`, `/lyt-mesh-explore`, `/lyt-sync`, `/lyt-alias`) wrap the corresponding CLI verbs directly. Pairs with [`@younndai/lyt-vault`](https://www.npmjs.com/package/@younndai/lyt-vault), which ships the four default patterns the skills resolve against.
29
+ The `/lyt-capture` skill wraps the `knowledge-capture` pattern verb from the `lyt pattern run` runtime, so structured note capture shows up as a first-class agent skill inside any vault; the read/orient + addressing + lifecycle skills (`/lyt-pod`, `/lyt-search`, `/lyt-recall`, `/lyt-primer-context`, `/lyt-mesh-explore`, `/lyt-sync`, `/lyt-alias`, `/lyt-adopt`, `/lyt-update`) wrap the corresponding CLI verbs directly. Pairs with [`@younndai/lyt-vault`](https://www.npmjs.com/package/@younndai/lyt-vault), which ships the bundled `knowledge-capture` pattern the capture/recall skills resolve against (workflow patterns are bring-your-own via `lyt pattern install`).
30
30
 
31
31
  ## Install
32
32
 
33
33
  ```bash
34
34
  npm install -g @younndai/lyt@alpha # the meta package bundles lyt-skills
35
- lyt skills install # links the 16 SKILL.md files into your harness(es)
35
+ lyt skills install # links the 11 SKILL.md files into your harness(es)
36
36
  ```
37
37
 
38
38
  Tri-runtime: the installer detects Claude Code, Codex, and generic agent runtimes, and installs per-runtime (symlink by default, `--copy` for regular directories).
39
39
 
40
- ## The 16 skills
40
+ ## The 11 skills
41
41
 
42
42
  | Skill | Wraps | Use it when |
43
43
  | --------------------- | -------------------------------------------------- | ------------------------------------------------------------ |
44
44
  | `/lyt-capture` | knowledge-capture + capture | Saving a Figment (markdown note) into a vault. |
45
- | `/lyt-recall` | knowledge-capture + recall | Keyword search across a single vault. |
45
+ | `/lyt-recall` | `lyt search --vault` (tiered cascade) | Ranked search across a single vault. |
46
46
  | `/lyt-search` | `lyt search` (tiered cascade) | Ranked search across the whole pod, a mesh, or a vault. |
47
47
  | `/lyt-pod` | `lyt mesh list` + `lyt vault list` | Enumerating every mesh + vault on the machine. |
48
48
  | `/lyt-mesh-explore` | `lyt mesh info` | Drilling into one mesh's members and metadata. |
49
49
  | `/lyt-alias` | `lyt alias` set/`--list`/`--remove` | Managing pod-local vault aliases (name → rid). |
50
50
  | `/lyt-primer-context` | `lyt primer` + `lyt vault info` | Priming an agent with vault/mesh/pod context. |
51
51
  | `/lyt-sync` | gated git pull/commit/push | Syncing a vault with its remote under the writable gate. |
52
- | `/lyt-plan` | work-management + plan | Drafting a multi-phase plan before implementation. |
53
- | `/lyt-progress` | work-management + progress | Mid-session progress update or blocker write-up. |
54
- | `/lyt-result` | work-management + result | Session-end result with per-clause acceptance. |
55
- | `/lyt-retro` | work-management + retro | Post-implementation retrospective. |
56
- | `/lyt-insight` | work-management + insight | Promoting a result into a durable insight. |
57
- | `/lyt-handoff` | work-management + handoff | Writing the next session's handoff brief. |
58
- | `/lyt-decision` | decision-log + decision | Recording a decision + rationale pair. |
52
+ | `/lyt-adopt` | `lyt vault adopt` | Bringing an existing Obsidian vault into the pod. |
53
+ | `/lyt-update` | `lyt outdated` + `lyt update` | Checking for and installing a newer Lyt release. |
59
54
  | `/lyt-pattern` | meta-skill over `lyt pattern *` | Listing, installing, linking patterns from an agent context. |
60
55
 
61
- Each skill autodetects the active vault + project via `lyt vault info --by-path`, the `LYT_ACTIVE_VAULT` env var, or an explicit `--vault` flag, then calls `lyt pattern run <pattern> <verb>` to write the file at the resolved path.
56
+ Each skill autodetects the active vault via `lyt vault info --by-path`, the `LYT_ACTIVE_VAULT` env var, or an explicit `--vault` flag, then calls the CLI verb (or `lyt pattern run <pattern> <verb>` for `/lyt-capture`) at the resolved path.
62
57
 
63
58
  ## The capture contract
64
59
 
@@ -81,7 +76,7 @@ On an interactive terminal, `/lyt-capture` also resolves **where** the note land
81
76
  - A **pattern** is data: a `pattern.yon` descriptor + a `templates/` folder of markdown templates with frontmatter. Patterns live at `~/lyt/patterns/`.
82
77
  - A **skill** is a thin SKILL.md adapter an agent harness loads; it calls the pattern runtime.
83
78
 
84
- Fork any default pattern (`lyt pattern fork work-management --as wm-custom`) without modifying the master. See `lyt help patterns` and `lyt help skills`.
79
+ Fork any installed pattern (`lyt pattern fork knowledge-capture --as kc-custom`) without modifying the master. See `lyt help patterns` and `lyt help skills`.
85
80
 
86
81
  ## The Lyt toolchain
87
82
 
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@younndai/lyt-skills",
3
- "version": "0.10.0",
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.",
3
+ "version": "0.11.0",
4
+ "description": "Lyt harness skills — 11 skills (/lyt-capture, /lyt-recall, /lyt-pattern, /lyt-pod, /lyt-mesh-explore, /lyt-primer-context, /lyt-search, /lyt-sync, /lyt-alias, /lyt-adopt, /lyt-update) 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": {
7
7
  "type": "git",
@@ -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.10.0",
52
+ "@younndai/lyt-vault": "^0.11.0",
53
53
  "commander": "^12.1.0"
54
54
  },
55
55
  "devDependencies": {
@@ -0,0 +1,91 @@
1
+ ---
2
+ name: lyt-adopt
3
+ description: >
4
+ Guided adopt of an existing Obsidian vault into a Lyt pod. Trigger when the user runs /lyt-adopt, or says "adopt this vault", "bring this vault into Lyt", "upgrade this Obsidian vault", "make this folder a Lyt vault", or similar phrasing on an existing local vault directory. Additive-only: it creates `.lyt/` and NEVER touches the user's `.md` files. Gathers {name, mesh (default `personal`), backfill (offer-only), remote (deferred)} then calls `lyt vault adopt <path> [--name <name>] [--mesh <mesh>]`. Homes the vault into `personal/<leaf>` by default instead of leaving it orphan. Companion to /lyt-sync (once a remote exists) and the inverse of `lyt vault abandon`.
5
+ visibility: public
6
+ lyt-version: 0.11.0
7
+ capabilities: [write]
8
+ runtimes: [claude, codex, agents]
9
+ requires_writable_vault: false
10
+ ---
11
+
12
+ # /lyt-adopt
13
+
14
+ Guided adopt of an existing Obsidian vault into the user's Lyt pod. Adopt is **additive-only**: it creates the `.lyt/` derived-state directory and registers the vault, but it **never touches the user's `.md` files**. It is the inverse of `lyt vault abandon` (the clean anti-lock-in leave, which removes only `.lyt/`).
15
+
16
+ Under the hood this wraps `lyt vault adopt <path> [--name <name>] [--mesh <mesh>]`. The verb registers the vault, homes it into a mesh, rebuilds per-machine pattern links under `.lyt/patterns/`, and rebuilds the content caches so `/lyt-search` and `/lyt-recall` hit immediately.
17
+
18
+ ## When to invoke
19
+
20
+ When the user runs `/lyt-adopt`, or says something like:
21
+
22
+ - "adopt this vault"
23
+ - "bring this Obsidian vault into Lyt"
24
+ - "upgrade this folder into a Lyt vault"
25
+ - "make this a Lyt vault"
26
+
27
+ ## When NOT to invoke
28
+
29
+ - The directory is **already a Lyt vault** (`.lyt/vault.yon` exists) — use `lyt vault join <path>` to register an already-Lyt-aware vault instead. Adopt refuses with a clear message in this case.
30
+ - The user wants to **create a brand-new** vault from scratch — use `lyt vault init <mesh>/<vault>` (create-if-missing).
31
+ - The user wants to **clone a remote** vault — use `lyt vault clone <url>`.
32
+
33
+ ## Phase 1 — Resolve the target path
34
+
35
+ The adopt argument is a **filesystem path** to the existing vault directory (not a vault name). Resolve it:
36
+
37
+ 1. If the user passed a path in the invocation, use it (resolve relative → absolute).
38
+ 2. Otherwise ask which directory to adopt. Do **not** guess from cwd.
39
+
40
+ If the resolved path does not exist or is not a directory, stop and tell the user. If it already contains `.lyt/vault.yon`, stop and point them at `lyt vault join`.
41
+
42
+ ## Phase 2 — Gather the adopt parameters
43
+
44
+ Gather these before calling adopt. Only **name** and **mesh** feed the command today; **backfill** and **remote** are DEFERRED and OFFER-ONLY (see Phase 4).
45
+
46
+ | Parameter | Default | How to resolve |
47
+ | ------------ | ------------------------------------------------------------------ | -------------------------------------------------------------------------------------------------------------------------------------- |
48
+ | **name** | owner/repo when the path is under `~/lyt/vaults`, else folder basename | Accept a user-supplied `{mesh}/{vault}` name or leaf. Pass via `--name`. Omit to accept the default. |
49
+ | **mesh** | `personal` | The home mesh. A bare adopt homes the vault into `personal/<leaf>` (find-or-create the `personal` mesh). Override with `--mesh <name>`. |
50
+ | **backfill** | OFFER-ONLY (deferred) | Do NOT run it. Only mention it as a possible future step (see Phase 4). |
51
+ | **remote** | OFFER-ONLY (deferred) | Do NOT wire a remote. Adopt never contacts a remote (see Phase 4). |
52
+
53
+ If the user does not signal a non-default mesh or name, use the defaults — do not over-prompt.
54
+
55
+ ## Phase 3 — Run adopt
56
+
57
+ ```
58
+ lyt vault adopt <path> [--name <name>] [--mesh <mesh>]
59
+ ```
60
+
61
+ - Omit `--name` to accept the default (owner/repo or basename).
62
+ - Omit `--mesh` to home the vault into `personal/<leaf>` (the guided default). Pass `--mesh <name>` to home it elsewhere; the mesh is find-or-created.
63
+
64
+ The command prints the adopted name, path, rid, registry status, and the resolved home mesh (or `orphan (unassigned)` if assignment was deferred). On success the vault is registered, homed, pattern-linked (under `.lyt/patterns/`, machine-local + gitignored), and indexed.
65
+
66
+ Confirm to the user in one line:
67
+
68
+ > Adopted `<name>` at `<path>`, homed into `<mesh>`.
69
+
70
+ ## Phase 4 — Offer the deferred follow-ups (do NOT run them)
71
+
72
+ Adopt already rebuilds the content caches on the way in, so search/recall work immediately. Two further steps are **deferred** — OFFER them as future options only; this skill does NOT implement them:
73
+
74
+ - **Backfill** — a deeper re-index of historical figments beyond the on-adopt index. Offer it as a possible future step; do not run any backfill command.
75
+ - **Remote** — wiring a GitHub remote and first push. Adopt never contacts a remote. Once a remote exists, point the user at `/lyt-sync` for pull/commit/push (gated on the writable verdict).
76
+
77
+ Frame both as "available later," never as something this adopt performed.
78
+
79
+ ## Rules
80
+
81
+ - **Additive-only.** Adopt creates `.lyt/` and registers the vault; it NEVER modifies, moves, or deletes the user's `.md` files.
82
+ - **Default mesh is `personal`.** A bare adopt homes the vault into `personal/<leaf>` rather than leaving it orphan. Only override on an explicit `--mesh`.
83
+ - **Backfill + remote are deferred.** Offer them as future steps; never claim this adopt ran them.
84
+ - **Pattern links live under `.lyt/patterns/`** — machine-local, gitignored, Lyt-owned. Adopt rebuilds them per-machine; the user never touches them.
85
+ - **Refuse an already-Lyt-aware directory** — point at `lyt vault join` instead of adopt.
86
+
87
+ ## Companion skills
88
+
89
+ - `/lyt-sync` — pull/commit/push once the vault has a remote.
90
+ - `/lyt-pod` — see the vault in the pod overview after adopt.
91
+ - `/lyt-primer-context` — prime an agent on the freshly-adopted vault.
@@ -6,7 +6,7 @@ visibility: public
6
6
  lyt-version: 0.2.0
7
7
  capabilities: [write]
8
8
  runtimes: [claude, codex, agents]
9
- requires_writable_vault: true
9
+ requires_writable_vault: false
10
10
  ---
11
11
 
12
12
  # /lyt-capture
@@ -27,15 +27,9 @@ When the user runs `/lyt-capture`, or says something like:
27
27
 
28
28
  If the user pastes content and only says "save it," interpret as `/lyt-capture` on the pasted content.
29
29
 
30
- ## When NOT to invoke
30
+ ## Scope — the single capture skill
31
31
 
32
- `/lyt-capture` writes a **plain Figment note** — not a work-management artifact. When the durable thing is a structured type, defer to the dedicated skill (each writes the same 8-field ceremony to its own home, with type-specific framing):
33
-
34
- - A distilled, durable **project lesson** ("this is an insight", "lesson learned about Lyt") → `/lyt-insight`.
35
- - A locked **decision** ("lock this decision", "record the decision") → `/lyt-decision`.
36
- - A **plan / progress / result / retro / handoff** → the matching `/lyt-plan` · `/lyt-progress` · `/lyt-result` · `/lyt-retro` · `/lyt-handoff`.
37
-
38
- Use `/lyt-capture` only for a free-form note that doesn't fit one of those work-management types. When in doubt between a plain note and a typed artifact, prefer the typed skill — it carries the right frontmatter and lands in the right folder.
32
+ `/lyt-capture` writes a **Figment note** into the vault under the 8-field frontmatter ceremony. It is the one capture skill: durable notes of every kind — a free-form thought, a distilled project lesson, a locked decision, a plan, a result — all land through `/lyt-capture`. Use the `topic:` field to categorize (e.g. `insight`, `decision`, `planning`, `result`) so the note stays legible and searchable; there are no separate per-type skills.
39
33
 
40
34
  ## Phase 1 — Resolve the target vault
41
35
 
@@ -24,13 +24,12 @@ Manage Lyt patterns: install, link/unlink, fork for customization, list availabl
24
24
 
25
25
  ## When NOT to invoke
26
26
 
27
- For the common write-a-Figment-of-type-X flow, use the dedicated skill:
27
+ For the common write-a-Figment flow, use the dedicated skill:
28
28
 
29
- - `/lyt-plan`, `/lyt-progress`, `/lyt-result`, `/lyt-retro`, `/lyt-insight`, `/lyt-handoff` (work-management)
30
- - `/lyt-capture`, `/lyt-recall` (knowledge-capture)
31
- - `/lyt-decision` (decision-log)
29
+ - `/lyt-capture` (knowledge-capture) — save any Figment note (use `topic:` to categorize)
30
+ - `/lyt-recall`, `/lyt-search` — read/search the vault or pod
32
31
 
33
- Use `/lyt-pattern` for pattern management itself OR for verbs that don't yet have a dedicated skill wrapper (e.g., `project-lifecycle/project-init`, `project-lifecycle/checkpoint`, `decision-log/rationale`).
32
+ Use `/lyt-pattern` for pattern management itself OR for verbs that have no dedicated skill wrapper — i.e. verbs from patterns you install yourself (`lyt pattern install --from <dir>`). Lyt bundles only `knowledge-capture` (wrapped by `/lyt-capture` + `/lyt-recall`); opinionated workflow patterns are not shipped. Invoke any installed pattern's verb via `/lyt-pattern run <pattern> <verb>` (e.g. `/lyt-pattern run <your-pattern> <verb>`).
34
33
 
35
34
  ## The verb surface
36
35
 
@@ -47,15 +46,15 @@ lyt pattern run <pattern> <verb> --vault <v> [--project <p>] [--slug <s>] [--var
47
46
 
48
47
  ## Symlink + fork mechanics
49
48
 
50
- Patterns live at `~/lyt/patterns/<name>/` (per-machine, per-user, like the registry). `pattern link` creates `<vault>/Patterns/<name>` as a junction symlink to the master. Symlinks are gitignored from vault repos — `lyt vault adopt` and `lyt vault join` auto-rebuild them per-machine.
49
+ Patterns live at `~/lyt/patterns/<name>/` (per-machine, per-user, like the registry). `pattern link` creates `<vault>/.lyt/patterns/<name>` as a junction symlink to the master. Symlinks are gitignored from vault repos (via the `.lyt/patterns/` rule) — `lyt vault adopt` and `lyt vault join` auto-rebuild them per-machine.
51
50
 
52
51
  To customize without touching the master, use `pattern fork`:
53
52
 
54
53
  ```bash
55
- lyt pattern fork work-management --as wm-custom
56
- # edit ~/lyt/patterns/wm-custom/
57
- lyt pattern unlink work-management --vault <v>
58
- lyt pattern link wm-custom --vault <v>
54
+ lyt pattern fork knowledge-capture --as kc-custom
55
+ # edit ~/lyt/patterns/kc-custom/
56
+ lyt pattern unlink knowledge-capture --vault <v>
57
+ lyt pattern link kc-custom --vault <v>
59
58
  ```
60
59
 
61
60
  ## Version migration (v1 caveat)
@@ -64,7 +63,7 @@ Newer pattern versions replace the master at `~/lyt/patterns/<name>/`. Files alr
64
63
 
65
64
  ## Verb-name conflicts
66
65
 
67
- If two installed patterns both declare a `plan` verb, address via explicit qualification: `lyt pattern run work-management plan` (not just `lyt pattern run plan`). Skills wrap by pattern convention: `/lyt-plan` ties to work-management; a second pattern with `plan` would generate as `/lyt-<pattern2-id>-plan`.
66
+ If two installed patterns both declare the same verb (e.g. a `note` verb), address via explicit qualification: `lyt pattern run <pattern-id> note` (not just `lyt pattern run note`). The pattern id is always the disambiguator — the qualified `lyt pattern run <pattern> <verb>` form never guesses.
68
67
 
69
68
  ## Companion skills
70
69
 
@@ -0,0 +1,68 @@
1
+ ---
2
+ name: lyt-update
3
+ description: >
4
+ Keep the installed Lyt current — check whether a newer version is published on the npm alpha channel and, if so, update it. Trigger when the user runs /lyt-update, or says "is my Lyt up to date", "check for lyt updates", "update lyt", "am I on the latest lyt", "upgrade lyt", or similar phrasing. Wraps the `lyt outdated` (read-only check) and `lyt update` (install, confirmation-gated) CLI verbs. Read-only by default; the install step changes the global npm install and always confirms first. Offline / unreachable-registry is reported, never an error. Pairs with /lyt-sync.
5
+ visibility: public
6
+ lyt-version: 0.11.0
7
+ capabilities: [read]
8
+ runtimes: [claude, codex, agents]
9
+ requires_writable_vault: false
10
+ ---
11
+
12
+ # /lyt-update
13
+
14
+ Keep the installed Lyt current. `lyt outdated` reports whether a newer version is published (read-only); `lyt update` installs it, after confirming — it changes the user's **global** npm install, so it is never silent. An unreachable registry (offline / rate-limited) is reported plainly, never treated as an error.
15
+
16
+ ## When to invoke
17
+
18
+ When the user runs `/lyt-update`, or says something like:
19
+
20
+ - "is my Lyt up to date" / "am I on the latest lyt"
21
+ - "check for lyt updates"
22
+ - "update lyt" / "upgrade lyt"
23
+
24
+ Also invoke **proactively** (offer, don't auto-run) when the handler hits behavior that smells version-related — a verb the docs describe but the CLI doesn't have, or a bug that a newer release may have fixed.
25
+
26
+ ## Phase 1 — Check currency (read-only)
27
+
28
+ Run the check verb:
29
+
30
+ ```
31
+ lyt outdated --json
32
+ ```
33
+
34
+ Parse the JSON result: `{ installed, latest, stale, offline, fromCache, checkedAt }`.
35
+
36
+ - `stale: true` → a newer version (`latest`) is available. Exit code is `1` (npm-`outdated` convention).
37
+ - `stale: false`, `offline: false` → up to date. Exit code `0`.
38
+ - `offline: true` → the npm registry could not be reached. **Not an error** — tell the handler the check couldn't run (offline / rate-limited) and stop; do not proceed to update.
39
+
40
+ The check forces a fresh probe (it does not rely on the throttled doctor/init cache).
41
+
42
+ ## Phase 2 — Offer the update (only when stale)
43
+
44
+ If `stale` is true, surface the finding and OFFER to update — never update without an explicit go:
45
+
46
+ > Your Lyt is `<installed>`; `<latest>` is published. Want me to update? (`lyt update` runs `npm i -g @younndai/lyt@alpha`.)
47
+
48
+ On the handler's yes, run:
49
+
50
+ ```
51
+ lyt update --yes
52
+ ```
53
+
54
+ `lyt update` re-checks currency itself, then installs. Without `--yes` it prompts interactively; with `--yes` it proceeds (still refuses to run when *not* stale). It streams npm's own output and sets a non-zero exit code on failure.
55
+
56
+ After a successful update, confirm with `lyt --version`.
57
+
58
+ ## Rules
59
+
60
+ - **MUST NOT run `lyt update` without the handler's explicit go.** It mutates the global install. `lyt outdated` (Phase 1) is always safe to run unprompted.
61
+ - **MUST treat `offline: true` as informational, not a failure.** Report that the check couldn't reach the registry and stop; never retry-loop.
62
+ - **MUST NOT claim an update happened without confirming** — re-read `lyt --version` (or `lyt outdated`) after `lyt update`, per verify-don't-trust.
63
+ - **SHOULD prefer the CLI verbs over a raw `npm i -g`** so the confirmation gate + currency logic stay in one place; only fall back to the raw command if the verbs are unavailable (a very old install).
64
+
65
+ ## Companion skills
66
+
67
+ - **/lyt-sync** — sync a vault's content. Unrelated to version currency, but the two are the common "keep everything current" pair.
68
+ - **/lyt-primer-context** — prime an agent; a good moment to also check currency on a fresh session.
@@ -1,52 +0,0 @@
1
- ---
2
- name: lyt-decision
3
- description: >
4
- Record a locked architectural or product decision as a Lyt Figment. Trigger when the user runs /lyt-decision, or says "lock this decision", "record the decision", "decide between options", "this is decided". Wraps `lyt pattern run decision-log decision`. Writes to <vault>/Projects/<project>/work/<date>-decision-<slug>.md.
5
- visibility: public
6
- lyt-version: 0.2.0
7
- capabilities: [write]
8
- runtimes: [claude, codex, agents]
9
- requires_writable_vault: true
10
- ---
11
-
12
- # /lyt-decision
13
-
14
- Record a locked decision — the choice, the alternatives, the reasoning. Use when a decision is durable enough that future-you (or a future agent) will need to read it cold.
15
-
16
- ## When to invoke
17
-
18
- - `/lyt-decision` slash trigger
19
- - "lock this decision"
20
- - "we decided X — record it"
21
- - after a structured assessment or review lands a locked verdict
22
- - before starting work whose direction depends on a non-obvious choice
23
-
24
- ## Phase 1 — Resolve target
25
-
26
- Same chain as `/lyt-plan`. Slug describes the decision (e.g., `transclusion-priming-files`, `gh-prefix-soft`).
27
-
28
- ## Phase 2 — Run the verb
29
-
30
- ```
31
- lyt pattern run decision-log decision --vault <vault> --project <project> --slug <slug>
32
- ```
33
-
34
- ## Phase 3 — Fill the body
35
-
36
- Sections to fill:
37
-
38
- - **The decision** — one sentence, imperative voice
39
- - **Context** — what forced this decision
40
- - **Alternatives considered** — A / B / C with one-line each
41
- - **Why this option won** — one paragraph; reference rationale if long-form
42
- - **Reversibility** — how hard to undo, what downstream work depends on this
43
- - **Cross-references** — wikilinks to rationale file (if separate), related decisions
44
-
45
- ## Long-form reasoning
46
-
47
- If the reasoning is too long for the decision file, write a separate `<date>-rationale-<slug>.md` via `lyt pattern run decision-log rationale --vault <v> --project <p> --slug <s>` and link from the decision file's `supports-decision:` (in the rationale) and `Cross-references` (in the decision).
48
-
49
- ## Companion skills
50
-
51
- - `/lyt-insight` — for distilled lessons LEARNED from acting on decisions
52
- - `/lyt-handoff` — handoffs often reference locked decisions
@@ -1,52 +0,0 @@
1
- ---
2
- name: lyt-handoff
3
- description: >
4
- Write an inter-session handoff brief — what a fresh agent or human needs to pick up the work. Trigger when the user runs /lyt-handoff, or says "write a handoff", "brief the next session", "hand this off", "what does the next agent need". Wraps `lyt pattern run work-management handoff`. Writes to <vault>/Handoffs/<project>/<date>-<slug>.md.
5
- visibility: public
6
- lyt-version: 0.2.0
7
- capabilities: [write]
8
- runtimes: [claude, codex, agents]
9
- requires_writable_vault: true
10
- ---
11
-
12
- # /lyt-handoff
13
-
14
- Write a handoff brief — a self-contained document a fresh agent (or person) can pick up cold to continue work. Distinct from `/lyt-result` (which is about THIS session); a handoff is forward-looking for the NEXT session.
15
-
16
- ## When to invoke
17
-
18
- - `/lyt-handoff` slash trigger
19
- - "write a handoff brief for the next agent"
20
- - "I need to leave a brief"
21
- - end of a multi-session arc when a fresh session needs to pick up
22
-
23
- ## Phase 1 — Resolve target
24
-
25
- Same chain as `/lyt-plan`. Slug describes the work being handed off (e.g., `phase-7-session-3-npm-precheck-readmes`).
26
-
27
- ## Phase 2 — Run the verb
28
-
29
- ```
30
- lyt pattern run work-management handoff --vault <vault> --project <project> --slug <slug>
31
- ```
32
-
33
- The verb writes to `<vault>/Handoffs/<project>/<date>-<slug>.md` (not under `work/` — handoffs live at vault root in their own folder per Work-Management convention).
34
-
35
- ## Phase 3 — Fill the body
36
-
37
- A good handoff has:
38
-
39
- - **Acceptance sentence** — one paragraph that captures what "done" looks like
40
- - **State snapshot (@CONTINUATION)** — current branch, last commit, modified files, in-flight artifacts, pushed/unpushed state, test count
41
- - **Sources (@SOURCES.required + .optional)** — every file the next agent MUST read before drafting any plan
42
- - **Resume command** — numbered steps the next agent should follow
43
- - **Sign-off** — canonical retro path; structured @SESSION_REPORT format if applicable
44
- - **Activation phrase** — the prompt to paste into the fresh session to resume the work
45
-
46
- The frontmatter `acceptance` field is load-bearing: the executing agent walks its clauses to verify the work matches the brief.
47
-
48
- ## Companion skills
49
-
50
- - a fresh agent session — consumes the brief written by this skill
51
- - `/lyt-result` — what the prior session shipped (context for the handoff)
52
- - `/lyt-retro` — usually written alongside or after the next-session retro
@@ -1,55 +0,0 @@
1
- ---
2
- name: lyt-insight
3
- description: >
4
- Capture a distilled project-specific learning as a Lyt Figment. Trigger when the user runs /lyt-insight, or says "this is a project insight", "promote this lesson", "make this durable", "extract the lesson". Wraps `lyt pattern run work-management insight`. Writes to <vault>/Projects/<project>/work/<date>-insight-<slug>.md. For project-agnostic lessons use Nuggets instead.
5
- visibility: public
6
- lyt-version: 0.2.0
7
- capabilities: [write]
8
- runtimes: [claude, codex, agents]
9
- requires_writable_vault: true
10
- ---
11
-
12
- # /lyt-insight
13
-
14
- Distilled learning specific to THIS project. Promotion target from a `result-` or `retro-` when the lesson earns durable value.
15
-
16
- ## When to invoke
17
-
18
- - `/lyt-insight` slash trigger
19
- - "this is a project insight"
20
- - "promote this"
21
- - "we keep learning this — write it down"
22
-
23
- If the lesson is project-AGNOSTIC (applies to any future project), use `/lyt-capture` with a `Nuggets/<subject>/` target instead.
24
-
25
- ## Phase 1 — Resolve target
26
-
27
- Same chain as `/lyt-plan`. If promoting from a result, prefer renaming the existing result file in place: `<date>-result-<slug>.md` → `<date>-insight-<slug>.md`, update `type:` in frontmatter, set `derived_from_session:`. No folder move; no wikilink rot.
28
-
29
- If writing a fresh insight that doesn't promote from a specific result, run the verb to create a new file.
30
-
31
- ## Phase 2 — Run the verb (when creating fresh)
32
-
33
- ```
34
- lyt pattern run work-management insight --vault <vault> --project <project> --slug <slug>
35
- ```
36
-
37
- ## Phase 3 — Fill the body
38
-
39
- Sections to fill:
40
-
41
- - **The insight** — state the lesson sharply, one paragraph
42
- - **Why it matters** — where this changes future decisions
43
- - **Evidence** — sessions, commits, decisions that support it
44
- - **Edge cases / qualifiers** — when this does NOT apply
45
- - **Related** — wikilinks to source results, decisions, plans
46
-
47
- ## Promotion to Nuggets
48
-
49
- If after writing the insight you realize the lesson is project-agnostic, ALSO write a `Nuggets/<subject>/<date>-nugget-<slug>.md` at vault root. (Or: rename in place to the Nuggets folder if it's exclusively agnostic.) Two files are fine when the lesson is project-specific in flavor but applies elsewhere too.
50
-
51
- ## Companion skills
52
-
53
- - `/lyt-result` — source of most insight promotions
54
- - `/lyt-retro` — source of retro-derived insights
55
- - `/lyt-decision` — for choices that warrant a separate decision artifact
@@ -1,60 +0,0 @@
1
- ---
2
- name: lyt-plan
3
- description: >
4
- Write a pre-action plan as a Lyt Figment. Trigger when the user runs /lyt-plan, or says "plan this", "write a plan", "design before coding", "let's plan first". Wraps `lyt pattern run work-management plan` under the hood. Writes to <vault>/Projects/<project>/work/<date>-plan-<slug>.md with frontmatter (date, slug, project, owner).
5
- visibility: public
6
- lyt-version: 0.2.0
7
- capabilities: [write]
8
- runtimes: [claude, codex, agents]
9
- requires_writable_vault: true
10
- ---
11
-
12
- # /lyt-plan
13
-
14
- Capture a pre-action plan as a structured Work-Management artifact in a Lyt vault. Plans answer: what are you about to do, why, how, and what does success look like.
15
-
16
- ## When to invoke
17
-
18
- When the user runs `/lyt-plan`, or says something like:
19
-
20
- - "let's plan this out"
21
- - "design before coding"
22
- - "what's the plan"
23
- - "write a plan for X"
24
-
25
- ## Phase 1 — Resolve vault + project + slug
26
-
27
- 1. **Vault resolution:** `--vault <name>` arg → `$LYT_ACTIVE_VAULT` env → cwd-based detection via `lyt vault info --by-path <cwd>` → default `<handle>/main`.
28
- 2. **Project:** `--project <name>` arg → infer from current directory name → ask the user.
29
- 3. **Slug:** ask the user, or generate from the plan's title (lowercase kebab-case, ≤7 words).
30
-
31
- ## Phase 2 — Run the verb
32
-
33
- Invoke the CLI:
34
-
35
- ```
36
- lyt pattern run work-management plan --vault <vault> --project <project> --slug <slug>
37
- ```
38
-
39
- The CLI fills frontmatter (`date`, `slug`, `project`, `owner`) and writes to the resolved path: `<vault>/Projects/<project>/work/<date>-plan-<slug>.md`.
40
-
41
- If the file already exists, the CLI returns `ALREADY-EXISTS` and the path; do not overwrite. Append a `-2` slug or pick a different slug.
42
-
43
- ## Phase 3 — Fill in the body
44
-
45
- After the file is created, edit it to fill in:
46
-
47
- - **Goal** — one-paragraph statement of intent
48
- - **Background** — context, references, prior decisions
49
- - **Approach** — steps, sequence, who/what does each
50
- - **Risks + open questions**
51
- - **Success criteria**
52
- - **Estimate**
53
-
54
- Use Obsidian-flavored markdown. Use `[[wikilinks]]` to cross-reference prior plans, results, or thoughts.
55
-
56
- ## Companion skills
57
-
58
- - `/lyt-progress` — mid-session status update on this plan
59
- - `/lyt-result` — post-action outcome closing this plan
60
- - `/lyt-retro` — deliberate retrospective after the plan executes
@@ -1,48 +0,0 @@
1
- ---
2
- name: lyt-progress
3
- description: >
4
- Write a mid-session progress update as a Lyt Figment. Trigger when the user runs /lyt-progress, or says "write a progress update", "log where we are", "status update", "I'm blocked". Wraps `lyt pattern run work-management progress`. Writes to <vault>/Projects/<project>/work/<date>-progress-<slug>.md.
5
- visibility: public
6
- lyt-version: 0.2.0
7
- capabilities: [write]
8
- runtimes: [claude, codex, agents]
9
- requires_writable_vault: true
10
- ---
11
-
12
- # /lyt-progress
13
-
14
- Capture mid-session status — where we are, what's done, what's in flight, blockers, next steps. Superseded by `/lyt-result` at session end.
15
-
16
- ## When to invoke
17
-
18
- - `/lyt-progress` slash trigger
19
- - "where are we"
20
- - "log progress" / "checkpoint" / "status update"
21
- - when a session has been running >2hr OR has hit a blocker
22
-
23
- ## Phase 1 — Resolve target
24
-
25
- Same chain as `/lyt-plan`: `--vault` arg → `$LYT_ACTIVE_VAULT` → cwd detect → `<handle>/main` default. Project + slug similarly resolved.
26
-
27
- ## Phase 2 — Run the verb
28
-
29
- ```
30
- lyt pattern run work-management progress --vault <vault> --project <project> --slug <slug>
31
- ```
32
-
33
- ## Phase 3 — Fill the body
34
-
35
- Sections to fill:
36
-
37
- - **Where we are** — one-paragraph state of play
38
- - **What's done** — bullets
39
- - **What's in flight** — bullets
40
- - **Blockers** — bullets
41
- - **Next steps** — bullets
42
-
43
- If this progress closes a plan, set `parent_plan:` frontmatter to the wikilink of the plan.
44
-
45
- ## Companion skills
46
-
47
- - `/lyt-plan` — pre-action design (parent)
48
- - `/lyt-result` — post-action outcome (closes this progress)
@@ -1,49 +0,0 @@
1
- ---
2
- name: lyt-result
3
- description: >
4
- Write a post-action result as a Lyt Figment — the default catch-all at session end. Trigger when the user runs /lyt-result, or says "write a result", "what shipped", "wrap up the session", "log the outcome". Wraps `lyt pattern run work-management result`. Writes to <vault>/Projects/<project>/work/<date>-result-<slug>.md.
5
- visibility: public
6
- lyt-version: 0.2.0
7
- capabilities: [write]
8
- runtimes: [claude, codex, agents]
9
- requires_writable_vault: true
10
- ---
11
-
12
- # /lyt-result
13
-
14
- Capture the post-action outcome — what was delivered, what changed, what didn't get done. The default catch-all artifact at the end of every meaningful session.
15
-
16
- ## When to invoke
17
-
18
- - `/lyt-result` slash trigger
19
- - session end: "wrap this up", "log the outcome"
20
- - after a commit / push / deploy
21
-
22
- ## Phase 1 — Resolve target
23
-
24
- Same chain as `/lyt-plan`. Slug usually matches the parent plan's slug (set `parent_plan` frontmatter wikilink).
25
-
26
- ## Phase 2 — Run the verb
27
-
28
- ```
29
- lyt pattern run work-management result --vault <vault> --project <project> --slug <slug>
30
- ```
31
-
32
- ## Phase 3 — Fill the body
33
-
34
- Sections to fill:
35
-
36
- - **Outcome** — what got delivered. Reference commits if applicable (set `commits:` frontmatter array).
37
- - **What changed** — files, behaviors, decisions
38
- - **What didn't get done** — deferred / blocked / cut
39
- - **Cross-references** — plan link, commits, follow-ups
40
-
41
- ## Promotion
42
-
43
- If the result teaches something durable about THIS project, **rename in place** to `<date>-insight-<slug>.md` and update `type: insight` in frontmatter — no folder move, no link rot. If the lesson is project-agnostic, write a `Nuggets/<subject>/<date>-nugget-<slug>.md` instead.
44
-
45
- ## Companion skills
46
-
47
- - `/lyt-plan` — pre-action design (parent of this result)
48
- - `/lyt-insight` — promoted result with durable project lesson
49
- - `/lyt-retro` — deliberate retrospective after a meaningful arc
@@ -1,54 +0,0 @@
1
- ---
2
- name: lyt-retro
3
- description: >
4
- Write a deliberate retrospective on a session, sprint, or completed plan. Trigger when the user runs /lyt-retro, or says "retro this", "what did we learn", "lessons from this sprint", "post-mortem". Wraps `lyt pattern run work-management retro`. Writes to <vault>/Projects/<project>/work/<date>-retro-<slug>.md.
5
- visibility: public
6
- lyt-version: 0.2.0
7
- capabilities: [write]
8
- runtimes: [claude, codex, agents]
9
- requires_writable_vault: true
10
- ---
11
-
12
- # /lyt-retro
13
-
14
- Capture a deliberate retrospective. What worked. What didn't. What we'd change next time. Distinct from `/lyt-result` (which records WHAT shipped); a retro records WHY it went the way it did.
15
-
16
- ## When to invoke
17
-
18
- - `/lyt-retro` slash trigger
19
- - "let's retro this"
20
- - end of a sprint, arc, project, or contentious decision
21
- - after a meaningful handoff (often required by the handoff-execute protocol)
22
-
23
- ## Phase 1 — Resolve target
24
-
25
- Same chain as `/lyt-plan`. Slug usually matches the artifact being retro'd (e.g., `phase-7-session-2-bulk-init-patterns-skills-retro`).
26
-
27
- If retro'ing a specific session/sprint/handoff, set `retro-of:` frontmatter to its wikilink.
28
-
29
- ## Phase 2 — Run the verb
30
-
31
- ```
32
- lyt pattern run work-management retro --vault <vault> --project <project> --slug <slug>
33
- ```
34
-
35
- ## Phase 3 — Fill the body
36
-
37
- Sections to fill:
38
-
39
- - **What worked** — bullets, specific
40
- - **What didn't** — bullets, specific (no euphemisms)
41
- - **What we'd change next time** — bullets, actionable
42
- - **Lessons (durable enough to keep)** — if any rise to insight-level, promote
43
-
44
- ## Promotion
45
-
46
- A retro's durable lessons promote either to:
47
-
48
- - `<date>-insight-<slug>.md` in the same `work/` folder (project-specific)
49
- - `Nuggets/<subject>/<date>-nugget-<slug>.md` at vault root (project-agnostic)
50
-
51
- ## Companion skills
52
-
53
- - `/lyt-result` — what shipped (this retro reflects on)
54
- - `/lyt-insight` — durable lessons promoted from this retro