@rsconcept/rstool 1.7.1 → 2.0.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 +7 -7
- package/dist/index.js +1 -1
- package/dist/mappers/model-adapter.d.ts +6 -2
- package/dist/mappers/model-adapter.js +28 -3
- package/dist/mappers/model-adapter.js.map +1 -1
- package/dist/mappers/schema-adapter.d.ts +1 -2
- package/dist/mappers/schema-adapter.js +1 -1
- package/dist/mappers/types.d.ts +4 -5
- package/dist/models/index.js +1 -1
- package/dist/models/rstool-agent.js +1 -2
- package/dist/{models-DG2uTaV_.js → models-D06g8LId.js} +6 -5
- package/dist/{models-DG2uTaV_.js.map → models-D06g8LId.js.map} +1 -1
- package/dist/{rsform-builder-DKwZfJvN.js → rsform-builder-BlXEe5Ow.js} +2 -2
- package/dist/{rsform-builder-DKwZfJvN.js.map → rsform-builder-BlXEe5Ow.js.map} +1 -1
- package/dist/session/session-store.d.ts +3 -3
- package/dist/session/session-store.js +1 -2
- package/dist/wrapper/client.d.ts +15 -9
- package/dist/wrapper/client.js +79 -12
- package/dist/wrapper/client.js.map +1 -1
- package/dist/wrapper/stdio-wrapper.d.ts +1 -1
- package/dist/wrapper/stdio-wrapper.js +18 -10
- package/dist/wrapper/stdio-wrapper.js.map +1 -1
- package/docs/BRIEF.md +93 -0
- package/docs/CONCEPTUAL-SCHEMA.md +17 -2
- package/docs/CONSTRUCTIONS.md +384 -0
- package/docs/DIAGNOSTICS.md +9 -8
- package/docs/DOMAIN.md +12 -0
- package/docs/METHOD.md +208 -0
- package/docs/MODEL-TESTING.md +48 -0
- package/docs/PORTAL-API.md +38 -285
- package/docs/PORTAL-MODELS.md +24 -0
- package/docs/PORTAL-OSS.md +56 -0
- package/docs/PORTAL-PUBLISH.md +39 -0
- package/docs/PORTAL-READ.md +301 -0
- package/docs/README.md +8 -4
- package/docs/REQUIREMENTS.md +61 -0
- package/docs/SYNTAX.md +5 -4
- package/docs/TYPIFICATION.md +12 -3
- package/docs/brief.schema.json +173 -0
- package/examples/README.md +16 -2
- package/examples/access-control/NOTES.md +23 -0
- package/examples/access-control/anti/collapsed.json +439 -0
- package/examples/access-control/anti/weakened.json +439 -0
- package/examples/access-control/brief-v1.json +231 -0
- package/examples/access-control/brief.json +310 -0
- package/examples/access-control/build-rsform.ts +151 -0
- package/examples/access-control/requirements-v1.md +9 -0
- package/examples/access-control/requirements-v2.md +4 -0
- package/examples/access-control/rsform-session-v1.json +439 -0
- package/examples/access-control/rsform-session.json +523 -0
- package/examples/audit-diagnostics.ts +9 -1
- package/examples/briefs.test.ts +126 -0
- package/examples/clinic-booking/NOTES.md +24 -0
- package/examples/clinic-booking/anti/collapsed.json +615 -0
- package/examples/clinic-booking/anti/species-as-genus.json +568 -0
- package/examples/clinic-booking/brief-v1.json +332 -0
- package/examples/clinic-booking/brief.json +405 -0
- package/examples/clinic-booking/build-rsform.ts +174 -0
- package/examples/clinic-booking/requirements-v1.md +9 -0
- package/examples/clinic-booking/requirements-v2.md +4 -0
- package/examples/clinic-booking/rsform-session-v1.json +615 -0
- package/examples/clinic-booking/rsform-session.json +700 -0
- package/examples/diagnostics-utils.ts +26 -0
- package/examples/kinship/brief.json +337 -0
- package/examples/kinship/build-rsform.ts +7 -4
- package/examples/kinship/rsform-session.json +20 -63
- package/examples/kinship/rsmodel-session.json +14 -14
- package/examples/kinship-subordination/NOTES.md +49 -0
- package/examples/kinship-subordination/brief.json +161 -0
- package/examples/kinship-subordination/build-rsform.ts +100 -0
- package/examples/kinship-subordination/rsform-session.json +795 -0
- package/examples/library-loans/NOTES.md +46 -0
- package/examples/library-loans/anti/collapsed.json +481 -0
- package/examples/library-loans/anti/species-as-genus.json +334 -0
- package/examples/library-loans/anti/uncovered.json +406 -0
- package/examples/library-loans/anti/weakened.json +464 -0
- package/examples/library-loans/brief-v1.json +340 -0
- package/examples/library-loans/brief.json +502 -0
- package/examples/library-loans/build-rsform.ts +239 -0
- package/examples/library-loans/requirements-v1.md +11 -0
- package/examples/library-loans/requirements-v2.md +5 -0
- package/examples/library-loans/rsform-session-v1.json +481 -0
- package/examples/library-loans/rsform-session.json +652 -0
- package/examples/library-loans/source-markup.md +18 -0
- package/examples/movd/brief.json +220 -0
- package/examples/movd/build-rsform.ts +5 -2
- package/examples/movd/rsform-session.json +14 -46
- package/examples/subordination/NOTES.md +59 -0
- package/examples/subordination/anti/collapsed.json +556 -0
- package/examples/subordination/anti/single-relation.json +125 -0
- package/examples/subordination/anti/transitive.json +573 -0
- package/examples/subordination/anti/weakened.json +539 -0
- package/examples/subordination/brief.json +386 -0
- package/examples/subordination/build-rsform.ts +63 -0
- package/examples/subordination/constants.ts +115 -0
- package/examples/subordination/rsform-session.json +556 -0
- package/examples/subordination/source-markup.md +19 -0
- package/examples/subordination/source.md +40 -0
- package/package.json +29 -20
- package/skills/INSTALL.md +28 -29
- package/skills/README.md +25 -10
- package/skills/rs-core/SKILL.md +56 -0
- package/skills/rs-explain/SKILL.md +28 -0
- package/skills/rs-explicate/SKILL.md +71 -0
- package/skills/rs-interpret/SKILL.md +67 -0
- package/skills/rs-portal/SKILL.md +51 -0
- package/skills/rs-review/SKILL.md +79 -0
- package/skills/rs-scope/SKILL.md +67 -0
- package/skills/rs-synthesis/SKILL.md +52 -0
- package/skills/rstool/SKILL.md +70 -0
- package/skills/rstool-helper/GUIDE.md +18 -272
- package/skills/rstool-helper/SKILL.md +8 -55
- package/skills/{rstool-helper → rstool-runtime}/EXAMPLES.md +40 -12
- package/skills/{rstool-helper → rstool-runtime}/REFERENCE.md +28 -7
- package/skills/rstool-runtime/SKILL.md +96 -0
- package/skills/scripts/brief-check.test.ts +165 -0
- package/skills/scripts/brief-check.ts +826 -0
- package/skills/scripts/check-brief.ts +94 -0
- package/skills/scripts/rstool-skills.mjs +119 -0
- package/skills/scripts/skill-stubs.test.ts +48 -0
- package/src/mappers/model-adapter.ts +34 -1
- package/src/models/rstool-agent.test.ts +95 -0
- package/src/wrapper/client.test.ts +43 -4
- package/src/wrapper/client.ts +95 -16
- package/src/wrapper/stdio-handler.test.ts +43 -0
- package/src/wrapper/stdio-handler.ts +19 -5
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: rs-scope
|
|
3
|
+
description: >-
|
|
4
|
+
Этап 1 концептуализации: постановка. Выделить предметную область через задачу
|
|
5
|
+
и ограничения, расчистить источник, сформулировать требования к выразительным
|
|
6
|
+
средствам, различения и инварианты, задать вопросы раунда 1 и получить
|
|
7
|
+
подтверждённый бриф до формализации. Также — восстановить бриф существующей схемы.
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
# Этап 1 · Постановка
|
|
11
|
+
|
|
12
|
+
Пути — от `<rstool>` (см. скилл `rstool`). Метод — `docs/METHOD.md` §«Этап 1»; формат брифа — `docs/BRIEF.md`.
|
|
13
|
+
|
|
14
|
+
## Вход
|
|
15
|
+
|
|
16
|
+
Запрос пользователя и источник (ТЗ, текст, описание объекта). Для развития или ревью — существующая схема (сессия, файл, Portal) и её бриф, если он есть.
|
|
17
|
+
|
|
18
|
+
## Шаги
|
|
19
|
+
|
|
20
|
+
1. **Назначение.** Определи `approach`: `research` (экспликация текста), `education` (обучение), `project` (основа для ПО / ОСС). Не ясно — это вопрос раунда 1.
|
|
21
|
+
2. **Расчистка источника** — до любых `X#`. Пройди текст и разметь каждый фрагмент по статусу: определение · правило · пример · термин без определения · оценочное / нерелевантное. Сгруппируй по смысловым блокам. Разметку сохрани файлом `source-markup.md` в папке задачи. Оценочное и нерелевантное («удобный интерфейс») в схему не идёт.
|
|
22
|
+
3. **Ограничения** (`restrictions`). Что сознательно исключаем: время и сроки, история, процедуры и действия, оплата, уведомления, интерфейс… Для каждого — перечень понятий, которые из-за этого станут **невыразимыми** («просроченная рецензия», «бывшие выдачи»). Исключённое из запроса — тоже ограничение, а не молчаливый пропуск.
|
|
23
|
+
4. **Требования к выразительным средствам** (`expressiveness`) — понятия, ради которых просят схему, со ссылкой `ref` на источник. Формулируй их как понятия («доклады, ожидающие рецензий»), а не как действия системы («председатель видит список»).
|
|
24
|
+
5. **Различения** (`distinctions`). Где в источнике одно слово может значить два понятия, или два понятия легко склеить: назначение ≠ рецензия, считает другом ≠ взаимная дружба, лекция потоку ≠ практика.
|
|
25
|
+
6. **Инварианты** (`invariants`) — правила, которые должны стать аксиомами. Классификация (статусы, виды) — пара аксиом разбиения, не коды в `C#`.
|
|
26
|
+
7. **Сценарии** — для главного понятия и каждого инварианта по примеру и контрпримеру, подписями элементов (`docs/BRIEF.md` §«Сценарии»). Ожидания на конституенты оставь на этап 3, но значения и смысл запиши сейчас в `title` и `note`.
|
|
27
|
+
8. **Раунд 1 вопросов** — 3–5 вопросов **до формализации**, каждый с твоим предложенным ответом и следствием. Всегда (кроме лёгкого брифа):
|
|
28
|
+
- **назначение:** для чего схема (экспликация, обучение, ПО / синтез)?
|
|
29
|
+
- **исключения:** что исключаем? (назови, что станет невыразимым)
|
|
30
|
+
- **различения:** что обязательно различать? Предложи 1–2 пары из разметки — те, что легче всего склеить.
|
|
31
|
+
|
|
32
|
+
По пробелам разметки, пока не наберётся 5:
|
|
33
|
+
- пример и контрпример для главного понятия (для `project` и `education` — обязателен, если источник его не даёт);
|
|
34
|
+
- свойства, которые станут аксиомами, а источник их прямо не утверждает: «может ли человек быть другом самому себе?», «бывает ли у врача несколько специальностей?»;
|
|
35
|
+
- какие правила схема должна выражать;
|
|
36
|
+
- для развития схемы: что меняется и что должно остаться неизменным?
|
|
37
|
+
|
|
38
|
+
Задай вопросы и **закончи ход** — не строй схему, пока не получил ответы. Ответы запиши в `questions[].answer`. Пользователь подтвердил бриф → `status: confirmed`. Спросить нельзя (фоновый запуск) → ответы в `assumptions`, `status: assumed`.
|
|
39
|
+
|
|
40
|
+
### Восстановление брифа (развитие и ревью)
|
|
41
|
+
|
|
42
|
+
Для ревью без названной задачи: до разбора формул одним вопросом уточни назначение схемы и что она должна уметь (с предложенным ответом из запроса). Если брифа нет: восстанови его по схеме — термины и текстовые определения производных понятий дают кандидатов в требования, аксиомы — инварианты, конвенции — ограничения. Поставь `constituent` для каждого восстановленного требования и запиши восстановленный бриф с `status: draft`; задачу и что должно сохраниться уточни вопросом. Для развития старые понятия и аксиомы — требования, которые нельзя ломать; сохрани исходную сессию как базу (`--base` у `check-brief`).
|
|
43
|
+
|
|
44
|
+
## Выход
|
|
45
|
+
|
|
46
|
+
`brief.json` (статус `confirmed` или `assumed`) и `source-markup.md` в папке задачи. Бриф пиши напрямую (Write / Edit JSON), не генерируй скриптом; не дублируй в нём разметку. Ориентир объёма — до 15–20 КБ для схемы на 30–50 конституент.
|
|
47
|
+
|
|
48
|
+
## Гейт
|
|
49
|
+
|
|
50
|
+
- Задача, ограничения и невыразимое записаны.
|
|
51
|
+
- Каждое требование и инвариант проверяемы: есть пример или контрпример.
|
|
52
|
+
- Раунд 1 пройден, остальное — в допущениях.
|
|
53
|
+
|
|
54
|
+
Дальше — `rs-core`.
|
|
55
|
+
|
|
56
|
+
## Не делай
|
|
57
|
+
|
|
58
|
+
- Не начинай с `X#` / `S#` и не пиши формулы на этом этапе.
|
|
59
|
+
- Не переноси в схему всё, что есть в тексте: пересказ источника — не концептуализация.
|
|
60
|
+
- Не задавай вопросы после того, как схема уже собрана, вместо раунда 1.
|
|
61
|
+
- Не задавай больше 5 вопросов и вопросов без предложенного ответа.
|
|
62
|
+
- Не пропускай вопрос о различениях: потерянное различение не найдёт ни анализатор, ни `check-brief`.
|
|
63
|
+
- Не исключай молча: каждое исключение — `restriction` с `inexpressible`.
|
|
64
|
+
|
|
65
|
+
## Читать по потребности
|
|
66
|
+
|
|
67
|
+
`docs/METHOD.md` §«Этап 1», `docs/BRIEF.md`; для ТЗ и запросов на изменение — `docs/REQUIREMENTS.md`; разбор этапа на учебном примере — `examples/subordination/NOTES.md`, на требованиях к ПО — `examples/library-loans/NOTES.md`.
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: rs-synthesis
|
|
3
|
+
description: >-
|
|
4
|
+
Операция синтеза микротеорий: когда делить схему на части, как выбирать
|
|
5
|
+
таблицу отождествлений (исходное / производное), синтетические аксиомы и бриф
|
|
6
|
+
результата; встраивание в rstool и операции ОСС на Portal.
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# Синтез микротеорий
|
|
10
|
+
|
|
11
|
+
Пути — от `<rstool>`. Метод — `docs/METHOD.md` §«Синтез микротеорий»; термины — `docs/DOMAIN.md` §«Синтез», §«ОСС»; ОСС на Portal — `docs/PORTAL-OSS.md`.
|
|
12
|
+
|
|
13
|
+
## Когда
|
|
14
|
+
|
|
15
|
+
- Требований больше, чем помещается в микротеорию (3–6 отношений, 2–4 уровня конкретизации) — решение на этапе `rs-core`.
|
|
16
|
+
- Развитие схемы **новым независимым аспектом**, а не уточнением имеющегося.
|
|
17
|
+
- Правило, которое связывает понятия разных аспектов (синтетическая аксиома).
|
|
18
|
+
- Работа с ОСС на Portal.
|
|
19
|
+
|
|
20
|
+
## Шаги
|
|
21
|
+
|
|
22
|
+
1. **Деление.** Каждая микротеория — отдельная схема со своим брифом: требования, инварианты, сценарии своего аспекта. Каждая проходит этапы 1–4 отдельно.
|
|
23
|
+
2. **Порядок конкретизации** — под задачу: сначала общий аспект, затем те, что его уточняют.
|
|
24
|
+
3. **Таблица отождествлений.** Для каждой пары кандидатов — вид и решение в журнал:
|
|
25
|
+
- исходное с исходным — можно (люди родства = сотрудники);
|
|
26
|
+
- исходное одной схемы с производным другой — можно, понятие становится конкретнее;
|
|
27
|
+
- производное с производным — только при полном совпадении структуры.
|
|
28
|
+
4. **Встраивание в rstool:** `synthesize({ sourceSessionId, substitutions: [{ original, substitution }] })` — `original` из источника, `substitution` из приёмника. Имена источника получают следующие свободные номера по типу (`X2`, `S3`, …), соответствие — в `aliasMapping` ответа. На Portal синтез в ОСС после отождествлений ещё упорядочивает конституенты и перенумеровывает все имена подряд — итоговые имена смотри в `/details` результата.
|
|
29
|
+
- Перенумеровываются формулы, типизация и ссылки в термине и текстовом определении. **Конвенции не перенумеровываются**: не пиши в них имена конституент и номера решений брифа (`DC#`) — только предметный смысл словами.
|
|
30
|
+
5. **Синтетические аксиомы и понятия** — то, что не выражалось ни в одной части; рядом с аксиомой полезно понятие нарушения («какие пары конфликтуют»).
|
|
31
|
+
6. **Бриф результата — новый.** Брифы аргументов не переносятся: у каждой схемы ОСС свой бриф. Он пишется после синтеза, по итоговым именам, и описывает только то, что даёт синтез:
|
|
32
|
+
- таблицу отождествлений и новые отношения — решения журнала;
|
|
33
|
+
- новые выводимые понятия, которых не было ни в одном аргументе, — требования к выразительным средствам;
|
|
34
|
+
- синтетические аксиомы — инварианты с позитивом и негативом.
|
|
35
|
+
|
|
36
|
+
Синтез без новых отношений или отождествлений и без новых выводимых понятий ничего не добавляет — пересмотри, зачем он нужен. Аксиомы аргументов проверяются и так: в допустимых сценариях `check-brief` требует истинности всех аксиом схемы.
|
|
37
|
+
|
|
38
|
+
7. **Проверка:** `check-brief` на результате; унаследованные конституенты в списке «сирот» — норма, их требования живут в брифах аргументов. Дальше — `rs-review`.
|
|
39
|
+
|
|
40
|
+
## На Portal (ОСС)
|
|
41
|
+
|
|
42
|
+
Загрузки (`create-schema`, `import-schema`), синтез (`create-synthesis` с отождествлениями по **id** конституент из `/details` аргументов), `execute-operation` — `docs/PORTAL-OSS.md`. Сначала собери и проверь синтез в rstool, затем повтори на Portal.
|
|
43
|
+
|
|
44
|
+
## Не делай
|
|
45
|
+
|
|
46
|
+
- Не отождествляй производные понятия с разной структурой.
|
|
47
|
+
- Не расширяй одну микротеорию чужими понятиями вместо синтеза, если аспекты независимы.
|
|
48
|
+
- Не копируй бриф аргумента в бриф результата и не ссылайся из конвенций на его решения.
|
|
49
|
+
|
|
50
|
+
## Пример
|
|
51
|
+
|
|
52
|
+
`examples/kinship-subordination/` — родство и подчинение, отождествление людей и правило конфликта интересов (`NOTES.md`).
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: rstool
|
|
3
|
+
description: >-
|
|
4
|
+
Концептуальные схемы (КС), ЯРЭ, rstool и Portal: построить КС по тексту или
|
|
5
|
+
требованиям, развить или отревьюить схему (в том числе по ссылке Portal),
|
|
6
|
+
починить формулу, объяснить конструкцию, проверить смысл на концептуальной
|
|
7
|
+
модели. Маршрутизатор: определяет сценарий и этап и называет скилл этапа.
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
# rstool — маршрутизатор
|
|
11
|
+
|
|
12
|
+
Цель работы — КС, которая **отвечает запросу пользователя**. Чистые диагностики — необходимое, но не достаточное условие. Метод — `<rstool>/docs/METHOD.md`.
|
|
13
|
+
|
|
14
|
+
`<rstool>` — корень пакета: `rsconcept/rstool/` в workspace Portal, `node_modules/@rsconcept/rstool/` в npm-проекте. Все пути ниже — от него. Скиллы этапов читай по пути, когда маршрут до них дошёл; заранее не открывай.
|
|
15
|
+
|
|
16
|
+
## 1. Выбери сценарий
|
|
17
|
+
|
|
18
|
+
| Запрос | Маршрут (скиллы по порядку) |
|
|
19
|
+
| :---------------------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
|
|
20
|
+
| Новая КС по тексту, ТЗ, описанию объекта | `rs-scope` → `rs-core` → `rs-explicate` ⇄ `rs-interpret` → `rs-review` (самопроверка) → экспорт / `rs-portal` |
|
|
21
|
+
| Развить существующую КС (файл, сессия, Portal) | (`rs-portal`: чтение) → `rs-scope` (восстановить бриф + новые требования) → `rs-core`: новый аспект или уточнение? → `rs-explicate` → `rs-interpret` (старые сценарии — регрессия) → `rs-review` → публикация |
|
|
22
|
+
| Оценить / отревьюить КС | загрузка → `rs-scope` (восстановить задачу и бриф) → `rs-review`; `rs-interpret` — для подтверждения находок |
|
|
23
|
+
| Починить формулу, разобрать диагностики | `rs-explicate` с лёгким брифом: смысл фиксируется до правки. Если смысл приходится менять — `rs-core` и запись решения |
|
|
24
|
+
| Объяснить формулу или конструкцию человеку | `rs-explain` (без брифа) |
|
|
25
|
+
| Требований больше, чем на одну микротеорию; ОСС | `rs-scope` → `rs-core` (деление) → `rs-synthesis` |
|
|
26
|
+
| Вопрос по синтаксису ЯРЭ | `docs/SYNTAX.md` (без брифа) |
|
|
27
|
+
| Как вызвать rstool (библиотека, stdio, MCP) | `rstool-runtime` |
|
|
28
|
+
|
|
29
|
+
Скилл этапа: `<rstool>/skills/<имя>/SKILL.md`. Запуск rstool и скриптов — `<rstool>/skills/rstool-runtime/SKILL.md`; ссылки и REST Portal — `<rstool>/skills/rs-portal/SKILL.md`.
|
|
30
|
+
|
|
31
|
+
## 2. Держи бриф
|
|
32
|
+
|
|
33
|
+
Бриф — `brief.json` в папке задачи рядом с сессией: постановка, требования к выразительным средствам, различения, инварианты, журнал решений, сценарии. Формат — `docs/BRIEF.md`. Для точечной правки достаточно лёгкого брифа (одно требование, один сценарий).
|
|
34
|
+
|
|
35
|
+
После любого шага проверь готовность:
|
|
36
|
+
|
|
37
|
+
```bash
|
|
38
|
+
npx tsx <rstool>/skills/scripts/check-brief.ts --session <abs>/session.json --brief <abs>/brief.json
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
(в workspace Portal: `pnpm --filter @rsconcept/rstool exec tsx skills/scripts/check-brief.ts …`). Вывод называет **этап**, блокеры и **следующий шаг** — иди туда. Этапы: `scope` → `rs-scope`, `core` → `rs-core`, `explicate` → `rs-explicate`, `interpret` → `rs-interpret`, `review` → `rs-review`.
|
|
42
|
+
|
|
43
|
+
## 3. Общие правила
|
|
44
|
+
|
|
45
|
+
**Пользователь — предметник, ты — методник.** До формализации задай вопросы раунда 1 (`rs-scope`), после гипотезы ядра — раунда 2 (`rs-core`). У каждого вопроса — твой предложенный ответ. «Продолжайте» или «на ваше усмотрение» закрывает только уже заданные вопросы, а не следующий раунд. Если спросить нельзя — запиши допущения, статус брифа `assumed`, и скажи об этом в отчёте.
|
|
46
|
+
|
|
47
|
+
**Смысл важнее «зелёного».** Ради чистых диагностик нельзя:
|
|
48
|
+
|
|
49
|
+
- удалять или ослаблять аксиому, связанную с инвариантом брифа, без нового решения в журнале;
|
|
50
|
+
- превращать производное понятие (`D#`/`F#`/`P#`) в `S#`, `X#` или `C#`;
|
|
51
|
+
- заменять формулу тривиальной (`∅`, `D5 := X1`, тавтология);
|
|
52
|
+
- удалять конституенту, на которую ссылается бриф, или оставлять непустой `failed` после `best_effort`;
|
|
53
|
+
- оставлять пустую конвенцию у неопределяемого понятия.
|
|
54
|
+
|
|
55
|
+
Не получается выразить смысл — вернись к ядру или запиши `openQuestions` и честно скажи «готово частично».
|
|
56
|
+
|
|
57
|
+
**Границы правок.** Задача по КС не означает правку `<rstool>`. Скрипты, сессии, бриф и экспорт — в папке задачи (каталог пользователя, `.tmp/`), не в пакете. Пакет правь только по явной просьбе.
|
|
58
|
+
|
|
59
|
+
**Язык ответа.** Пиши терминами предметной области, а не именами API: «формальное определение», «конституента», «диагностики», «правка схемы», а не `definitionFormal`, `applySchemaPatch`. Имена конституент (`X1`, `D3`) и формулы ЯРЭ приводи как есть, лучше с термином: «терм `D3` (просроченные выдачи)». Словарь API → текст — `skills/rstool-runtime/SKILL.md`.
|
|
60
|
+
|
|
61
|
+
**Термины КС** — только из `docs/DOMAIN.md`, раздел «Термины: не путать». Никогда «базис» / «базисы»: для `X#` — **базисное множество**, для слоя `X#`/`C#`/`S#` — **неопределяемые понятия**. `T#` — высказывание, не «теорема». `R#` — радикал, не конституента. Буквы из учебника (`D` для родовой структуры, `T` для терма) не используй.
|
|
62
|
+
|
|
63
|
+
## 4. Отчёт пользователю
|
|
64
|
+
|
|
65
|
+
Шаблон — в `rs-review`. Минимум для любой сборки или правки:
|
|
66
|
+
|
|
67
|
+
1. Как схема отвечает на запрос: таблица «требование → конституента → сценарий».
|
|
68
|
+
2. Что сознательно не выражено (ограничения и невыразимое), допущения, открытые вопросы.
|
|
69
|
+
3. Решения по ядру, которые пользователь должен знать.
|
|
70
|
+
4. Диагностики и результат проверки брифа; файлы (сессия, бриф, экспорт).
|
|
@@ -1,272 +1,18 @@
|
|
|
1
|
-
# ЯРЭ и rstool
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
- Состояние: `getSessionState()` (summary) или `getSessionState('full')`.
|
|
20
|
-
- Импорт/экспорт Portal: `importData`, `exportPortal({ kind })`.
|
|
21
|
-
- Модель: `setModelValues`, `evaluate`, `recalculateModel`.
|
|
22
|
-
- Перед сохранением сомнительной формулы — `analyzeExpression`.
|
|
23
|
-
|
|
24
|
-
## Задача → чтение
|
|
25
|
-
|
|
26
|
-
Не открывай все `docs/` сразу. Выбери строку по запросу пользователя, прочитай **минимум**, остальное — только если упрёшься в пробел.
|
|
27
|
-
|
|
28
|
-
| Задача пользователя | Читать (минимум) | Не читать сразу |
|
|
29
|
-
| :------------------------------------------------------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :--------------------------------------- |
|
|
30
|
-
| Собрать / существенно развить КС из текста | этот GUIDE → [концептуализация](#концептуализация-кс-из-содержания-источника); [CONCEPTUAL-SCHEMA.md](../../docs/CONCEPTUAL-SCHEMA.md); [BASE-SELECTION.md](../../docs/BASE-SELECTION.md); при сомнении — [EXAMPLES.md](EXAMPLES.md) | PORTAL-API целиком; TYPIFICATION целиком |
|
|
31
|
-
| Оценить / отревьюить готовую КС (без запроса «перепиши») | этот GUIDE → [ревью / оценка](#ревью--оценка-готовой-кс); [чеклист ревью](#ревью-концептуальной-схемы); [CONCEPTUAL-SCHEMA.md](../../docs/CONCEPTUAL-SCHEMA.md); при импорте — [PORTAL-API.md](../../docs/PORTAL-API.md) | EXAMPLES с batch patch; полный SYNTAX |
|
|
32
|
-
| Точечные правки существующей схемы | этот GUIDE → [редактирование](#редактирование-и-проверка-схемы); [REFERENCE.md](REFERENCE.md) при вызовах | CONCEPTUAL-SCHEMA целиком |
|
|
33
|
-
| Починить формулу / диагностики | этот GUIDE → [цикл диагностик](#цикл-диагностик); [DIAGNOSTICS.md](../../docs/DIAGNOSTICS.md); [EXAMPLES.md](EXAMPLES.md) «типичные диагностики» | CONCEPTUAL-SCHEMA; PORTAL-API |
|
|
34
|
-
| Импорт / правка по ссылке Portal | этот GUIDE → [Portal](#оценка-или-правка-кс-из-portal); [PORTAL-API.md](../../docs/PORTAL-API.md) | SYNTAX; BASE-SELECTION |
|
|
35
|
-
| Проверить смысл на данных / КМ | этот GUIDE → [КМ](#проверка-на-маленькой-км); [MODEL-TESTING.md](../../docs/MODEL-TESTING.md) | DOMAIN/ОСС; CONCEPTUAL-SCHEMA |
|
|
36
|
-
| Объяснить синтаксис / генераторы / `F#`/`P#` | [SYNTAX.md](../../docs/SYNTAX.md); при необходимости [EXAMPLES.md](EXAMPLES.md) | воркфлоу сессий |
|
|
37
|
-
| Разобрать типизацию / ступени | [TYPIFICATION.md](../../docs/TYPIFICATION.md) | PORTAL-API |
|
|
38
|
-
| Вызовы API / stdio / MCP | [REFERENCE.md](REFERENCE.md) | docs языка |
|
|
39
|
-
| Термины КС, ядро/тело, не путать ярлыки | [DOMAIN.md](../../docs/DOMAIN.md) | — |
|
|
40
|
-
|
|
41
|
-
Полный индекс справочников — [ниже](#что-читать) и в [docs/README.md](../../docs/README.md).
|
|
42
|
-
|
|
43
|
-
## Границы правок: не трогай пакет rstool без запроса
|
|
44
|
-
|
|
45
|
-
Задача по КС, Portal или источнику пользователя **не означает** правку дерева `rsconcept/rstool/`.
|
|
46
|
-
Пакет — библиотека и справочник; каталог `examples/` — **штатные** демо пакета, а не место для разовых скриптов агента.
|
|
47
|
-
|
|
48
|
-
Правки в rstool уместны только если пользователь **явно** просит, например:
|
|
49
|
-
|
|
50
|
-
- доработать API, stdio, контракт, тесты rstool;
|
|
51
|
-
- добавить **общий** пример в пакет;
|
|
52
|
-
- обновить skill/docs rstool (в т.ч. это руководство).
|
|
53
|
-
|
|
54
|
-
### Как запускать rstool, не кладя скрипт в пакет
|
|
55
|
-
|
|
56
|
-
Из корня workspace Portal (после `pnpm install` и сборки `@rsconcept/domain`):
|
|
57
|
-
|
|
58
|
-
```bash
|
|
59
|
-
pnpm --filter @rsconcept/rstool exec tsx path/to/your/build-schema.ts
|
|
60
|
-
```
|
|
61
|
-
|
|
62
|
-
В скрипте импортируй API пакета (`@rsconcept/rstool` или относительный путь к `rsconcept/rstool/src` только если скрипт лежит вне пакета и это осознанный выбор). Либо используй stdio/MCP без отдельного файла.
|
|
63
|
-
|
|
64
|
-
## Что читать
|
|
65
|
-
|
|
66
|
-
Пути — относительно этого файла.
|
|
67
|
-
|
|
68
|
-
- API, методы, stdio, MCP: [REFERENCE.md](REFERENCE.md).
|
|
69
|
-
- Примеры и антипаттерны: [EXAMPLES.md](EXAMPLES.md).
|
|
70
|
-
- Термины предметной области: [../../docs/DOMAIN.md](../../docs/DOMAIN.md).
|
|
71
|
-
- **`X#` / `C#` / `Z`:** [../../docs/BASE-SELECTION.md](../../docs/BASE-SELECTION.md).
|
|
72
|
-
- Концептуализация, создание схемы: [../../docs/CONCEPTUAL-SCHEMA.md](../../docs/CONCEPTUAL-SCHEMA.md).
|
|
73
|
-
- Конституенты и валидация: [../../docs/CONSTITUENTA.md](../../docs/CONSTITUENTA.md).
|
|
74
|
-
- Синтаксис ЯРЭ: [../../docs/SYNTAX.md](../../docs/SYNTAX.md).
|
|
75
|
-
- Типизация: [../../docs/TYPIFICATION.md](../../docs/TYPIFICATION.md).
|
|
76
|
-
- Проверка определений на КМ: [../../docs/MODEL-TESTING.md](../../docs/MODEL-TESTING.md).
|
|
77
|
-
- Диагностики: [../../docs/DIAGNOSTICS.md](../../docs/DIAGNOSTICS.md).
|
|
78
|
-
- REST Portal: [../../docs/PORTAL-API.md](../../docs/PORTAL-API.md).
|
|
79
|
-
- Репозиторий Portal: [ConceptPortal на GitHub](https://github.com/IRBorisov/ConceptPortal).
|
|
80
|
-
|
|
81
|
-
## Воркфлоу
|
|
82
|
-
|
|
83
|
-
Все пошаговые сценарии собраны здесь. Справочные документы дают правила и детали.
|
|
84
|
-
|
|
85
|
-
### Редактирование и проверка схемы
|
|
86
|
-
|
|
87
|
-
Когда схема уже есть и нужны точечные правки, новые конституенты или проверка формул.
|
|
88
|
-
|
|
89
|
-
1. Продолжи текущую сессию или вызови `ensureSession`; большинство методов создают сессию лениво.
|
|
90
|
-
2. Развивай схему через `applySchemaPatch`: можно опускать `id` и `cstType` — они выводятся из префикса `alias` (`X/C/S/D/F/P/A/T/N`).
|
|
91
|
-
3. Для пачки конституент передавай все элементы вместе — `applySchemaPatch` упорядочит поставщиков раньше потребителей.
|
|
92
|
-
4. Перед patch в `applySchemaPatch` при сомнении вызывай `analyzeExpression`.
|
|
93
|
-
5. Исправляй диагностики по диапазону `from` / `to` в `definitionFormal` ([DIAGNOSTICS.md](../../docs/DIAGNOSTICS.md)).
|
|
94
|
-
6. При сомнении в семантике собери маленькую КМ и проверь тестовые данные ([цикл КМ](#проверка-на-маленькой-км)).
|
|
95
|
-
7. Задай значения модели: `setModelValues`; вычисли: `evaluate`, `recalculateModel`.
|
|
96
|
-
8. `commitStep` или `commitMessage` в `applySchemaPatch`, когда состояние согласовано.
|
|
97
|
-
9. Сохрани: `exportSession` / `importData`.
|
|
98
|
-
10. Для загрузки в Portal: `exportPortal({ kind: 'schema' })` или `{ kind: 'model' }`.
|
|
99
|
-
|
|
100
|
-
### Оценка или правка КС из Portal
|
|
101
|
-
|
|
102
|
-
Когда пользователь даёт UI-ссылку вида `https://portal.acconcept.ru/rsforms/:id`,
|
|
103
|
-
не открывай SPA и не парси HTML: преобразуй ссылку в REST-запрос по правилам
|
|
104
|
-
[PORTAL-API.md](../../docs/PORTAL-API.md) — там пути, контекстный поиск, правила доступа и curl.
|
|
105
|
-
|
|
106
|
-
Portal JSON из `/details` не является форматом `exportSession`. Используй `importData(payload)` —
|
|
107
|
-
kind `auto` (default) определит `portal-details` или `portal-schema`. Явный kind: `'portal-details'`, `'portal-schema'`, `'session'`.
|
|
108
|
-
|
|
109
|
-
Если задача — **оценка** схемы из Portal, а не правка: после импорта иди в [ревью / оценка](#ревью--оценка-готовой-кс), не начинай массовый refactor.
|
|
110
|
-
|
|
111
|
-
### Концептуализация (КС из содержания источника)
|
|
112
|
-
|
|
113
|
-
Когда нужно построить или существенно развить КС по тексту ПО, требованиям или предметному описанию. Правила редукции, слоёв и паттернов — [CONCEPTUAL-SCHEMA.md](../../docs/CONCEPTUAL-SCHEMA.md).
|
|
114
|
-
|
|
115
|
-
1. Собери словарь: неопределяемые понятия, ключевые отношения, сценарий синтеза.
|
|
116
|
-
2. Добавь независимые неопределяемые понятия `X#`, `C#`, `S#` с конвенциями из источника (не копируй дословно). Для выбора `X#` vs `C#` vs `Z` — [BASE-SELECTION.md](../../docs/BASE-SELECTION.md).
|
|
117
|
-
3. Всё, что выводится из уже введённых понятий, оформляй как `D#` / `F#` / `P#`, а не как новое `X#` / `C#` / `S#`.
|
|
118
|
-
4. Вводи промежуточные `D#`, `F#`, `P#` для проекций, функциональных связей и повторяющихся фрагментов формул. Если зависимость имеет вид «для `ξ` вычислить значение», оформляй её как `F#`, а не как множество пар `I{(ξ,σ)|…}` ([CONCEPTUAL-SCHEMA.md](../../docs/CONCEPTUAL-SCHEMA.md), «Терм-функция вместо множества пар»).
|
|
119
|
-
5. Добавь `A#` и `T#` после терминов, на которые они опираются.
|
|
120
|
-
6. Перед каждым patch — `analyzeExpression`; при ошибках — [цикл диагностик](#цикл-диагностик).
|
|
121
|
-
7. Сомнительную семантику проверь на маленькой КМ ([цикл КМ](#проверка-на-маленькой-км), [MODEL-TESTING.md](../../docs/MODEL-TESTING.md)).
|
|
122
|
-
8. Перед показом результата пройди [чеклист ревью КС](#ревью-концептуальной-схемы).
|
|
123
|
-
|
|
124
|
-
Дальше — обычное [редактирование и проверка](#редактирование-и-проверка-схемы): commit, export.
|
|
125
|
-
|
|
126
|
-
### Ревью / оценка готовой КС
|
|
127
|
-
|
|
128
|
-
Когда пользователь просит **оценить**, **проревьюить**, **найти проблемы** в уже существующей схеме (сессия, JSON, ссылка Portal) — и **не** просит сразу переписать её.
|
|
129
|
-
|
|
130
|
-
**Правило:** без явного запроса на правку не делай массовый рефакторинг и не заменяй схему «улучшенной версией». Сначала отчёт; правки — только по согласованию или если пользователь сразу сказал «исправь».
|
|
131
|
-
|
|
132
|
-
1. Загрузи схему: текущая сессия, `importData`, или Portal → [PORTAL-API.md](../../docs/PORTAL-API.md).
|
|
133
|
-
2. `listDiagnostics()` — раздели `expression` / `schema` / `model`; зафиксируй ошибки и предупреждения.
|
|
134
|
-
3. `getSessionState('summary')` — обзор состава; при необходимости `full` для формул.
|
|
135
|
-
4. Структурный проход по [чеклисту ревью](#ревью-концептуальной-схемы) и [CONCEPTUAL-SCHEMA.md](../../docs/CONCEPTUAL-SCHEMA.md):
|
|
136
|
-
- неопределяемые vs производные (`S#` там, где должно быть `D#`/`F#`/`P#`);
|
|
137
|
-
- `X#` / `C#` / `Z` ([BASE-SELECTION.md](../../docs/BASE-SELECTION.md));
|
|
138
|
-
- терм-функции vs множества пар;
|
|
139
|
-
- радикалы `R#` не объявлены конституентами;
|
|
140
|
-
- покрытие задачи vs избыточность.
|
|
141
|
-
5. Severity в отчёте:
|
|
142
|
-
- **блокер** — диагностики `error`, схема не анализируется / ломает вычисление;
|
|
143
|
-
- **важно** — нарушение правил проектирования (лишнее `S#`, график вместо `F#`, смешение экспликаций);
|
|
144
|
-
- **замечание** — стиль, именование, возможные упрощения, пробелы покрытия.
|
|
145
|
-
6. Ответ — по [шаблону ревью](#шаблон-ответа-ревью). Предлагай конкретные правки списком; применяй их только по запросу.
|
|
146
|
-
|
|
147
|
-
### Цикл диагностик
|
|
148
|
-
|
|
149
|
-
Когда `analysis.success === false` или `listDiagnostics` не пуст. Коды и типичные ошибки — [DIAGNOSTICS.md](../../docs/DIAGNOSTICS.md); короткие «было → стало» — [EXAMPLES.md](EXAMPLES.md).
|
|
150
|
-
|
|
151
|
-
1. Вызови `listDiagnostics()` — смотри `kind`: `expression` (формула), `schema` (омонимы, дубликаты, термин/конвенция), `model` (интерпретация).
|
|
152
|
-
2. Для черновика формулы — `analyzeExpression` (без сохранения).
|
|
153
|
-
3. Прочитай `name`, `severity`, `alias`, `from`, `to`, `params`, при вычислении — ещё `stack` (цепочка `F#`/`P#`, см. [DIAGNOSTICS.md](../../docs/DIAGNOSTICS.md)), в `analysis.diagnostics` или через `listDiagnostics({ kind })`.
|
|
154
|
-
4. Сопоставь `name` (или `code`) с исправлением в [DIAGNOSTICS.md](../../docs/DIAGNOSTICS.md). Для runtime-ошибок внутри вызова смотри `stack[0]` — там реальный locus, а не только call site в корневом выражении.
|
|
155
|
-
5. Исправь именно диапазон в `definitionFormal` (expression) или метаданные/данные модели (schema/model).
|
|
156
|
-
6. Не повторяй вызов без изменения ввода.
|
|
157
|
-
7. После успеха — ещё один `applySchemaPatch` / `setModelValues` с исправлением.
|
|
158
|
-
|
|
159
|
-
### Проверка на маленькой КМ
|
|
160
|
-
|
|
161
|
-
Когда синтаксис верен, но смысл формулы неочевиден. Подробности и форма данных — [MODEL-TESTING.md](../../docs/MODEL-TESTING.md).
|
|
162
|
-
|
|
163
|
-
1. Отдельная `createSession` или изолированная копия текущей сессии.
|
|
164
|
-
2. Только нужные поставщики: `X#`, `C#`, `S#` и проверяемые `D#` / `F#` / `P#` / `A#`.
|
|
165
|
-
3. `analyzeExpression` и `applySchemaPatch`.
|
|
166
|
-
4. Значения: `setModelValues`.
|
|
167
|
-
5. `evaluate`; сравни с ожидаемым `value`.
|
|
168
|
-
6. При нескольких зависимых определениях — `recalculateModel`.
|
|
169
|
-
|
|
170
|
-
Для регрессий вынеси проверку в скрипт или colocated `*.test.ts` (см. [MODEL-TESTING.md](../../docs/MODEL-TESTING.md)).
|
|
171
|
-
|
|
172
|
-
### Порядок объявления конституент
|
|
173
|
-
|
|
174
|
-
В начале схемы — `basic` и `constant`, затем независимые `structure`, затем производные (`term`, `function`, `predicate`, `axiom`, `statement`) в топологическом порядке. Производные при родовой структуре держи рядом с ней, если это не ломает зависимости.
|
|
175
|
-
|
|
176
|
-
Правила валидации по типам — [CONSTITUENTA.md](../../docs/CONSTITUENTA.md); разворачивание понятий при проектировании — [CONCEPTUAL-SCHEMA.md](../../docs/CONCEPTUAL-SCHEMA.md).
|
|
177
|
-
|
|
178
|
-
## Формат ответа агента
|
|
179
|
-
|
|
180
|
-
Выбери шаблон по типу задачи. Не вставляй большой JSON в чат без запроса пользователя.
|
|
181
|
-
|
|
182
|
-
### Сборка / правка схемы
|
|
183
|
-
|
|
184
|
-
В конце работы сообщи:
|
|
185
|
-
|
|
186
|
-
- что изменено в схеме или модели;
|
|
187
|
-
- есть ли активные диагностики;
|
|
188
|
-
- какой экспорт получен: сессия / схема для Portal / модель для Portal;
|
|
189
|
-
- какие проверки выполнены: анализ выражений / вычисление / пересчёт модели / тесты.
|
|
190
|
-
|
|
191
|
-
### Шаблон ответа: ревью
|
|
192
|
-
|
|
193
|
-
1. **Краткий вердикт** (1–2 предложения): пригодна ли схема к задаче, главный риск.
|
|
194
|
-
2. **Диагностики:** число ошибок / предупреждений по `expression` / `schema` / `model` (без полного JSON).
|
|
195
|
-
3. **Находки** списком: блокер → важно → замечание; у каждой — имя конституенты и суть.
|
|
196
|
-
4. **Покрытие:** что из задачи отражено; чего не хватает.
|
|
197
|
-
5. **Рекомендации:** конкретные правки; не применяй их без запроса.
|
|
198
|
-
6. **Проверки:** что уже сделано (import, listDiagnostics, выборочный анализ).
|
|
199
|
-
|
|
200
|
-
### Шаблон ответа: диагностики
|
|
201
|
-
|
|
202
|
-
- какие конституенты / формулы затронуты;
|
|
203
|
-
- `name` диагностики и смысл простым языком;
|
|
204
|
-
- что изменено в формальном определении (или почему правка не нужна);
|
|
205
|
-
- повторная проверка: чисто / осталось.
|
|
206
|
-
|
|
207
|
-
### Шаблон ответа: объяснение формулы
|
|
208
|
-
|
|
209
|
-
- роль конституенты и термин;
|
|
210
|
-
- формула как есть;
|
|
211
|
-
- по шагам: что вычисляется / утверждается;
|
|
212
|
-
- на какие понятия опирается; типизация.
|
|
213
|
-
|
|
214
|
-
### Язык ответа
|
|
215
|
-
|
|
216
|
-
С пользователем говори на языке предметной области, а не контракта API. Английские идентификаторы (`definitionFormal`, `applySchemaPatch`, `cstType`...) уместны только в коде, patch-ах, JSON и при обсуждении самого API. В обычном тексте заменяй их терминами (полный словарь — [DOMAIN.md](../../docs/DOMAIN.md)):
|
|
217
|
-
|
|
218
|
-
| В API | В тексте ответа |
|
|
219
|
-
| :-------------------------------- | :---------------------------------- |
|
|
220
|
-
| `alias` | имя конституенты |
|
|
221
|
-
| `cstType` | тип конституенты |
|
|
222
|
-
| `definitionFormal` | формальное определение (формула) |
|
|
223
|
-
| `term` | термин |
|
|
224
|
-
| `definitionText` | текстовое определение |
|
|
225
|
-
| `convention` | конвенция |
|
|
226
|
-
| `comment` | комментарий |
|
|
227
|
-
| `applySchemaPatch` | правка схемы |
|
|
228
|
-
| `synthesize` | встраивание / синтез схем |
|
|
229
|
-
| `analyzeExpression` | проверка / анализ выражения |
|
|
230
|
-
| `listDiagnostics`, `diagnostics` | диагностики |
|
|
231
|
-
| `setModelValues`, `getModelState` | интерпретация, значения модели |
|
|
232
|
-
| `evaluate`, `recalculateModel` | вычисление, пересчёт модели |
|
|
233
|
-
| `commitStep`, `commitMessage` | фиксация шага (ревизия) |
|
|
234
|
-
| `exportSession` / `exportPortal` | экспорт сессии / экспорт для Portal |
|
|
235
|
-
| `importData` | импорт данных |
|
|
236
|
-
| session, `sessionId` | сессия |
|
|
237
|
-
|
|
238
|
-
Имена конституент (`X1`, `S2`, `D3`) и формулы ЯРЭ — часть схемы, их приводи как есть; лучше вместе с термином: «терм `D3` (родитель)». Названия методов упоминай, только если пользователь спрашивает про rstool как инструмент.
|
|
239
|
-
|
|
240
|
-
Словарь выше — про поля rstool. Для **понятий схемы** каноничный источник — [DOMAIN.md](../../docs/DOMAIN.md).
|
|
241
|
-
|
|
242
|
-
## Чеклисты
|
|
243
|
-
|
|
244
|
-
### Сессия и rstool
|
|
245
|
-
|
|
246
|
-
- [ ] Используется текущая сессия (`getSessionState`) или явный `sessionId`, если сессий несколько.
|
|
247
|
-
- [ ] Для стандартных `X/C/S/D/F/P/A/T/N` можно не указывать `cstType` в `applySchemaPatch`.
|
|
248
|
-
- [ ] Для пачки конституент предпочитай один `applySchemaPatch` с массивом `items`.
|
|
249
|
-
|
|
250
|
-
### Перед показом, commit и export
|
|
251
|
-
|
|
252
|
-
- [ ] Схема проверена; ошибки исправлены.
|
|
253
|
-
- [ ] Диагностики обработаны до фиксации шага и экспорта.
|
|
254
|
-
- [ ] В тексте ответа нет английских имён полей и методов API — использованы термины из раздела [Язык ответа](#язык-ответа).
|
|
255
|
-
- [ ] Нет неофициальных ярлыков («базис», «базисы», «базисный слой», «базовые понятия») — термины КС из [DOMAIN.md](../../docs/DOMAIN.md), раздел **«Термины: не путать»**. Для `X#` говори **базисное множество**, не «базис».
|
|
256
|
-
|
|
257
|
-
### Ревью концептуальной схемы
|
|
258
|
-
|
|
259
|
-
Перед завершением концептуализации, крупного изменения или как проход в [воркфлоу ревью](#ревью--оценка-готовой-кс). Правила — [CONCEPTUAL-SCHEMA.md](../../docs/CONCEPTUAL-SCHEMA.md).
|
|
260
|
-
|
|
261
|
-
- [ ] Атрибутивная и родоструктурная экспликации не смешаны без явного запроса.
|
|
262
|
-
- [ ] Нет избыточной проверки принадлежности к собственной типизации (`x∈X1`, если `x` уже в `X1`).
|
|
263
|
-
- [ ] Неопределяемые понятия независимы; производные отношения вынесены в `D#` / `F#` / `P#`, а не объявлены новыми структурами.
|
|
264
|
-
- [ ] `X#` — только предметные сущности; `C#` — только если нужны порядок/арифметика над именованным конечным набором в КМ; чистая целочисленная математика — `Z` без лишней конституенты ([BASE-SELECTION.md](../../docs/BASE-SELECTION.md)).
|
|
265
|
-
- [ ] Покрыты главные сущности, роли, отношения, утверждения.
|
|
266
|
-
- [ ] В текстовых определениях используются только понятия из схемы.
|
|
267
|
-
- [ ] Повторяющиеся части формальных определений вынесены в производные понятия `D#` и `F#`.
|
|
268
|
-
- [ ] Вычисляемые зависимости «аргумент → значение» оформлены как `F#` с вызовами, а не как пары / тройки + `Pr`/`Fi` (см. [CONCEPTUAL-SCHEMA.md](../../docs/CONCEPTUAL-SCHEMA.md), «Терм-функция вместо множества пар»).
|
|
269
|
-
- [ ] Пары / `I{(ξ,σ)|…}` оставлены только для истинных отношений, графиков как объектов или многозначных связей.
|
|
270
|
-
- [ ] `R#` в `[…]` у `F#` / `P#` не считается пропущенной конституентой; радикалы не добавляют в схему как `X#` / `S#` / `D#`.
|
|
271
|
-
- [ ] Сомнительная семантика проверена на маленькой КМ при наличии тестовых данных.
|
|
272
|
-
- [ ] При чистом ревью: отчёт по [шаблону](#шаблон-ответа-ревью) выдан **до** любых массовых правок.
|
|
1
|
+
# ЯРЭ и rstool (указатель)
|
|
2
|
+
|
|
3
|
+
Монолитный гайд разделён на маршрутизатор и скиллы этапов. Начни с [`../rstool/SKILL.md`](../rstool/SKILL.md).
|
|
4
|
+
|
|
5
|
+
| Было в GUIDE | Теперь |
|
|
6
|
+
| :-------------------------------------------------- | :----------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
7
|
+
| «Задача → чтение», границы правок, язык ответа | [`rstool`](../rstool/SKILL.md) — маршрутизатор |
|
|
8
|
+
| Концептуализация (постановка) | [`rs-scope`](../rs-scope/SKILL.md), [`rs-core`](../rs-core/SKILL.md) |
|
|
9
|
+
| Редактирование, цикл диагностик, порядок объявления | [`rs-explicate`](../rs-explicate/SKILL.md) |
|
|
10
|
+
| Проверка на маленькой КМ | [`rs-interpret`](../rs-interpret/SKILL.md), [`docs/BRIEF.md`](../../docs/BRIEF.md) |
|
|
11
|
+
| Ревью, чеклист ревью, шаблоны ответа | [`rs-review`](../rs-review/SKILL.md) |
|
|
12
|
+
| Шаблон объяснения формулы | [`rs-explain`](../rs-explain/SKILL.md) |
|
|
13
|
+
| Синтез | [`rs-synthesis`](../rs-synthesis/SKILL.md) |
|
|
14
|
+
| Portal | [`rs-portal`](../rs-portal/SKILL.md), [`docs/PORTAL-API.md`](../../docs/PORTAL-API.md) |
|
|
15
|
+
| Быстрый контракт, запуск скриптов, словарь API | [`rstool-runtime`](../rstool-runtime/SKILL.md), [`REFERENCE.md`](../rstool-runtime/REFERENCE.md), [`EXAMPLES.md`](../rstool-runtime/EXAMPLES.md) |
|
|
16
|
+
| Метод | [`docs/METHOD.md`](../../docs/METHOD.md) |
|
|
17
|
+
|
|
18
|
+
Файл будет удалён вместе с `rstool-helper`.
|
|
@@ -1,64 +1,17 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: rstool-helper
|
|
3
3
|
description: >-
|
|
4
|
-
ЯРЭ и концептуальные схемы через
|
|
5
|
-
|
|
6
|
-
импорт/экспорт Portal (/rsforms, /details). Читай GUIDE и docs из node_modules.
|
|
4
|
+
Устаревший вход: используй скилл rstool. ЯРЭ и концептуальные схемы через
|
|
5
|
+
rstool, ревью КС, диагностики, Portal.
|
|
7
6
|
---
|
|
8
7
|
|
|
9
|
-
# rstool-helper
|
|
8
|
+
# rstool-helper (устарел)
|
|
10
9
|
|
|
11
|
-
|
|
10
|
+
Скилл заменён маршрутизатором **`rstool`** и скиллами этапов. Прочитай `skills/rstool/SKILL.md` пакета и следуй ему:
|
|
12
11
|
|
|
13
|
-
|
|
12
|
+
- в workspace Portal — `rsconcept/rstool/skills/rstool/SKILL.md`;
|
|
13
|
+
- в npm-проекте — `node_modules/@rsconcept/rstool/skills/rstool/SKILL.md`.
|
|
14
14
|
|
|
15
|
-
|
|
15
|
+
Чтобы заменить эту заглушку в проекте, выполни `node_modules/@rsconcept/rstool/skills/INSTALL.md`, затем удали папку `rstool-helper/` из каталога скиллов проекта.
|
|
16
16
|
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
Затем продолжай с каноническими файлами ниже.
|
|
20
|
-
|
|
21
|
-
## Канонические файлы
|
|
22
|
-
|
|
23
|
-
Префикс путей: `node_modules/@rsconcept/rstool/`.
|
|
24
|
-
|
|
25
|
-
| Что | Путь |
|
|
26
|
-
| :-------------------------------------------------- | :---------------------------------- |
|
|
27
|
-
| **Начни здесь** — матрица задач, воркфлоу, чеклисты | `skills/rstool-helper/GUIDE.md` |
|
|
28
|
-
| API, stdio, MCP, контракт | `skills/rstool-helper/REFERENCE.md` |
|
|
29
|
-
| Примеры, антипаттерны | `skills/rstool-helper/EXAMPLES.md` |
|
|
30
|
-
| Язык и предметная область | `docs/*.md` |
|
|
31
|
-
| Установка skill | `skills/INSTALL.md` |
|
|
32
|
-
|
|
33
|
-
## Задача → что читать
|
|
34
|
-
|
|
35
|
-
Не читай все `docs/` подряд. Открой **GUIDE.md** (раздел «Задача → чтение»), затем только нужные файлы:
|
|
36
|
-
|
|
37
|
-
| Задача | Минимум |
|
|
38
|
-
| :-------------------------------- | :----------------------------------------------------------------------------- |
|
|
39
|
-
| Собрать / развить КС из текста | GUIDE: концептуализация; `docs/CONCEPTUAL-SCHEMA.md`; `docs/BASE-SELECTION.md` |
|
|
40
|
-
| Оценить / отревьюить готовую КС | GUIDE: ревью; чеклист ревью; `docs/CONCEPTUAL-SCHEMA.md` |
|
|
41
|
-
| Починить формулу / диагностики | GUIDE: цикл диагностик; `docs/DIAGNOSTICS.md` |
|
|
42
|
-
| Импорт / правка по ссылке Portal | GUIDE: Portal; `docs/PORTAL-API.md` |
|
|
43
|
-
| Проверить смысл на данных | GUIDE: КМ; `docs/MODEL-TESTING.md` |
|
|
44
|
-
| Синтаксис / типизация / вызов API | `docs/SYNTAX.md` / `TYPIFICATION.md` / `REFERENCE.md` |
|
|
45
|
-
|
|
46
|
-
Перед работой всегда открой **GUIDE.md**; остальное — по строке таблицы.
|
|
47
|
-
|
|
48
|
-
## Не правь пакет rstool без запроса
|
|
49
|
-
|
|
50
|
-
Разовые скрипты и JSON для Portal — вне дерева пакета (каталог задачи, `.tmp/`, путь пользователя). См. **«Границы правок»** в GUIDE.md.
|
|
51
|
-
|
|
52
|
-
## Язык ответа пользователю
|
|
53
|
-
|
|
54
|
-
В тексте для пользователя используй термины предметной области («формальное определение», «конституента», «диагностики»), а не английские имена полей и методов API (`definitionFormal`, `applySchemaPatch`). Идентификаторы API — только в коде, patch-ах и JSON. Словарь API → текст: раздел «Язык ответа» в GUIDE.md. Термины КС (**неопределяемые понятия**, **базисное множество**, ядро) — только из `docs/DOMAIN.md`, раздел **«Термины: не путать»**. Не сокращай «базисное множество» до «базис» / «базисы».
|
|
55
|
-
|
|
56
|
-
## Portal (приложение)
|
|
57
|
-
|
|
58
|
-
REST API и curl — `node_modules/@rsconcept/rstool/docs/PORTAL-API.md`.
|
|
59
|
-
|
|
60
|
-
## Кратко
|
|
61
|
-
|
|
62
|
-
- Пакет: `@rsconcept/rstool`; обёртка: `npx rstool-wrapper`
|
|
63
|
-
- MCP: `@rsconcept/rstool-mcp` (имена tools — `snake_case`, см. REFERENCE)
|
|
64
|
-
- `@rsconcept/domain` устанавливается как зависимость (анализатор и коды ошибок)
|
|
17
|
+
Заглушка будет удалена в следующем минорном релизе.
|