skills: catalog of skills and protocols with a settings tab
One registry for reusable methodologies: markdown with YAML front matter,
stored in PostgreSQL alongside a full edit history. A row is either a
`skill` (advice, adapt as needed) or a `protocol` (a committed order of
actions), and a protocol is refused on save unless it declares its steps,
post-checks and the three escape hatches — on_deviation, on_blocked,
on_already_done — because an honest run needs a way out when reality
differs from the plan.

- `SkillStore`: lazy DDL, uniqueness on (owner_id, kind, name), version
  bump with an appended `skill_versions` row, `content_hash` as the only
  hive-sync hook. Personal rows carry an owner; shared rows have an empty
  one and are writable by an admin.
- REST `/skills` (list/get/create/update/delete/versions) and the agent
  tool `skills` (search/load) that renders a compact document — numbered
  steps and escape hatches for a protocol, the instructions for a skill.
- Settings → Скилы и протоколы: catalog with search and kind/area
  filters, a document editor that shows the server's validation error
  verbatim, create from a template, delete, edit history, and the
  personal/shared switch for an admin.

Manuals stay where they are: tool knowledge, separate from this catalog.
1 parent 6f1740c commit 8fd2a23c41a6e66f68109fc16f79184c4c6e3671
@Eugene Sukhodolskiy Eugene Sukhodolskiy authored 1 day ago
Showing 33 changed files
View
docs/index.md
View
docs/skills.md 0 → 100644
View
manuals/skills.md 0 → 100644
View
navi/api/deps.py
View
navi/api/routes/skills.py 0 → 100644
View
navi/core/container.py
View
navi/core/registry.py
View
navi/main.py
View
navi/profiles/assistant/config.json
View
navi/profiles/developer/config.json
View
navi/profiles/discuss/config.json
View
navi/profiles/server_admin/config.json
View
navi/skills/__init__.py 0 → 100644
View
navi/skills/models.py 0 → 100644
View
navi/skills/store.py 0 → 100644
View
navi/tools/skills.py 0 → 100644
View
tests/unit/skills/test_models.py 0 → 100644
View
tests/unit/skills/test_skill_store.py 0 → 100644
View
tests/unit/tools/test_skills.py 0 → 100644
View
webclient/dist/assets/index-Blo-O92P.css 0 → 100644
View
webclient/dist/assets/index-CWgaqwH4.js 100644 → 0
Not supported
View
webclient/dist/assets/index-Ch7d_Xst.css 100644 → 0
View
webclient/dist/assets/index-Yyi3-5xJ.js 0 → 100644
Not supported
View
webclient/dist/index.html
View
webclient/dist/sw.js
View
webclient/src/api/index.js
View
webclient/src/components/settings/SettingsView.vue
View
webclient/src/components/settings/SkillsPanel.vue 0 → 100644
View
webclient/src/i18n/messages/en.js
View
webclient/src/i18n/messages/ru.js
View
webclient/src/i18n/messages/uk.js
View
webclient/tests/unit/components/settings/settingsView.test.js
View
webclient/tests/unit/components/settings/skillsPanel.test.js 0 → 100644