rowboat/apps/x/packages/shared/src
tusharmagar 9a308cb7a9 feat(skills): single-source skill system with markdown SKILL.md + include directive
Skills move out of packages/core/src/application/assistant/skills/*/skill.ts
(TS string constants) into apps/skills/<id>/SKILL.md (Agent Skills spec format
— YAML frontmatter + markdown body). One directory, one loader, one place to
look at every skill the agent can load.

Key change vs the old dev system: a `{{include:<skill-id>}}` directive lets one
skill transclude another. This removes the parallel TS constant for the
knowledge-note style guide — it now lives at apps/skills/knowledge-note-style/
(hidden from catalog) and is pulled into doc-collab + the live-note and
background-task agents via the resolver instead of via a TS import.

Infrastructure:
- packages/core/src/skills/ — types, skill-md-parser, FS-backed official repo,
  SkillResolver with recursive {{include:<id>}} expansion + cycle detection
- packages/shared/src/skill.ts — SkillFrontmatter, SkillCatalogEntry,
  ResolvedSkill schemas
- DI: officialSkillsRepo + skillResolver registered; registerSkillsDir helper
  wires the path before any consumer resolves
- IPC: skills:list / skills:get (read-only) for the Settings UI
- Main: resolveSkillsDir picks Resources/skills (packaged) or repo apps/skills
  (dev). forge.config.cjs ships apps/skills/ as extraResource.

Consumer refactor:
- buildCopilotInstructions: catalog markdown built from resolver.getCatalog()
- builtin-tools: loadSkill uses resolver, new listSkills tool
- background-tasks/agent + live-note/agent: now async builders that load
  the knowledge-note-style skill content via resolver
- runtime.loadAgent: awaits the now-async builders
- Deleted: assistant/skills/ directory, knowledge-note-style.ts

UI:
- New SkillsSettings component (read-only list + detail view) wired into
  Settings dialog as the "Skills" tab.
2026-05-13 12:31:06 +05:30
..
agent-schedule-state.ts feat: add background agents with scheduling support 2026-02-05 16:43:09 +05:30
agent-schedule.ts feat: add background agents with scheduling support 2026-02-05 16:43:09 +05:30
agent.ts bootstrap new electron app 2026-01-16 12:05:33 +05:30
background-task.ts feat: background tasks 2026-05-12 17:43:25 +05:30
bases.ts app navigation 2026-03-13 10:39:05 +05:30
blocks.ts embed tweets 2026-05-09 12:06:54 +05:30
browser-control.ts pull browser-harness skills (#519) 2026-05-06 12:25:10 +05:30
composio.ts Feature/composio tools library (#461) 2026-04-06 13:30:46 +05:30
events.ts feat: background tasks 2026-05-12 17:43:25 +05:30
example.ts bootstrap new electron app 2026-01-16 12:05:33 +05:30
frontmatter.ts app navigation 2026-03-13 10:39:05 +05:30
index.ts feat(skills): single-source skill system with markdown SKILL.md + include directive 2026-05-13 12:31:06 +05:30
inline-task.ts Livenote2 (#440) 2026-03-19 01:34:10 +05:30
ipc.ts feat(skills): single-source skill system with markdown SKILL.md + include directive 2026-05-13 12:31:06 +05:30
live-note.ts feat: background tasks 2026-05-12 17:43:25 +05:30
llm-step-events.ts feat(ui): surface LLM stream errors in chat 2026-02-16 08:34:51 +05:30
mcp.ts bootstrap new electron app 2026-01-16 12:05:33 +05:30
message.ts add cmd+k palette with chat mode that captures editor cursor context 2026-04-13 17:00:37 +05:30
models.ts feat: live notes — single objective per note replaces multi-track model 2026-05-09 00:30:43 +05:30
prefix-logger.ts bootstrap new electron app 2026-01-16 12:05:33 +05:30
prompt-block.ts add prompt block 2026-04-20 14:42:13 +05:30
rowboat-account.ts use deepgram ws proxy, simplify env vars 2026-03-24 11:50:22 +05:30
runs.ts feat: background tasks 2026-05-12 17:43:25 +05:30
service-events.ts Memory2 (#444) 2026-03-23 22:30:02 +05:30
skill.ts feat(skills): single-source skill system with markdown SKILL.md + include directive 2026-05-13 12:31:06 +05:30
workspace.ts bootstrap new electron app 2026-01-16 12:05:33 +05:30