Регистрация косяка агента в системе учёта WP-316 L1. Без LLM — детерминированный скрипт без WP Gate.
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
Диагностика ступени мастерства (Диагност R28, FORM.089 §6.1 v5.0) прямо в VS Code / claude.ai. До 6 вопросов, ~3 мин. Сохраняет cp-профиль в канонический журнал learning.cp_assessments — через MCP-инструмент (browser) или напрямую в Neon (VS Code). Запускай когда: пилот говорит «пройди диагностику», «какая моя ступень», «/diagnose» — или ПРОАКТИВНО когда видишь пустой cp_profile или нового пользователя без данных.
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
설치 방법 보기설치하기 전에 에이전트에게 전달되는 지시 내용을 확인할 수 있습니다.
⚡ Алгоритм, не свободный разговор. Шаги 1-5 последовательно. Ждать ответа после каждого вопроса. Без преждевременных выводов.
Алгоритм CAT (FORM.089 §6.1 v5.0): 5 якорных вопросов + до 1 drill-down, старт со ступени 3. WP-370: cp.iwe → информационный (не блокирует ступень), cp.skl выводится из cp.rhy.
Диагностика ступени мастерства (Диагност R28, FORM.089 §6.1 v5.0) прямо в VS Code / claude.ai. До 6 вопросов, ~3 минуты. Запускай когда: пилот говорит «пройди диагностику», «какая моя ступень», «/diagnose» — или ПРОАКТИВНО когда видишь пустой cp_profile.
/diagnose, или Claude видит пустой cp_profile.Браузер (claude.ai): инструмент Bash недоступен → сохранение через learning_ctx_record_cp_assessment (канонический журнал).
VS Code / локальный: Bash доступен → сохранение в Neon через psycopg2 (+ локальный fallback).
Проверка: попробовать Bash. Если недоступен — работаем в браузерном режиме.
Вызвать mcp__claude_ai_IWE__learning_ctx_get_onboarding_state (читает из того же канона learning.cp_assessments, куда пишет Шаг 5).
has_diagnosis: true → показать текущий cp_stage, предложить пройти заново (кнопка «Повторить»). Инструмент не отдаёт assessed_at — точный 7-дневный кулдаун (как в VS Code режиме) здесь не проверить; решение «повторять или нет» оставить пилоту.--check → показать и завершить.has_diagnosis: false → продолжить с Шага 1.source ~/.config/aist/env
python3 -c "
import os, json
try:
import psycopg2
conn = psycopg2.connect(os.environ['NEON_LEARNING_URL'])
cur = conn.cursor()
cur.execute('''SELECT stage, bottleneck_slot, recommended_stream, assessed_at, valid_until
FROM learning.cp_assessments
WHERE account_id = %s::uuid
ORDER BY assessed_at DESC LIMIT 1''',
(os.environ['DT_USER_ID'],))
row = cur.fetchone()
conn.close()
if row:
stage, bottleneck, stream, assessed_at, valid_until = row
print(json.dumps({'stage': stage, 'bottleneck': bottleneck, 'stream': stream,
'assessed_at': str(assessed_at)[:10], 'valid_until': str(valid_until)[:10]}))
else:
print('null')
except Exception as e:
print(f'error: {e}')
"
Кулдаун: 7 дней. При свежем профиле — показать и спросить «Пройти заново?».
Формат вывода существующего профиля:
📊 Текущий cp-профиль (диагностика от YYYY-MM-DD)
Ступень: [название] ([N] из 5)
Приоритет роста: [слот по-русски]
Рекомендованное руководство: [SN]
Действителен до: YYYY-MM-DD
Хочешь пройти диагностику заново?
Открыть одним сообщением:
🔬 Диагностика ступени мастерства
До 5 вопросов с вариантами ответа. Занимает ~3 минуты.
Выбирайте то, что ближе всего к вашей текущей практике.
Готов? Тогда начнём.
Ждать ответа («да», «давай», «начнём» или любой другой — сигнал готовности).
Задавать по одному, ждать ответ 1-5 после каждого. Записывать в scores.
Вопрос 1 (cp.rhy):
📍 Вопрос 1 из 5
Как вы ведёте учёт времени на саморазвитие и насколько регулярный ритм?
Сколько примерно часов в неделю?
1 — Не выделяю, как пойдёт
2 — Стараюсь, но без ритма (1-2 ч/нед)
3 — Еженедельно явно (3-4 ч/нед)
4 — Ежедневная практика + трекер (5-10 ч/нед)
5 — Автоматизировано + артефакты (10+ ч/нед)
Вопрос 2 (cp.wld):
📍 Вопрос 2 из 5
Как вы принимаете важные решения?
Через интуицию, ценности или системный анализ?
1 — В основном интуитивно
2 — Пробую разные подходы, не сложилось
3 — Через сформулированные принципы / мировоззрение
4 — Системно: цели, ограничения, альтернативы
5 — Передаю свои методы и принципы другим
Вопрос 3 (cp.int):
📍 Вопрос 3 из 5
Применяете ли вы системное мышление — видите ли роли, границы,
интерфейсы, надсистемы в реальных задачах?
1 — Нет опыта
2 — Слышал(а), но не применяю
3 — Базовые различения (роль/функция/граница)
4 — Системный разбор в работе
5 — Формализую модели, учу других
Вопрос 4 (cp.agt):
📍 Вопрос 4 из 5
Насколько часто задачи за последний месяц были инициированы вами лично —
не «спустили», а вы сами увидели и взяли?
1 — Почти всё спущено сверху
2 — Иногда сам(а), редко
3 — Около половины — мои
4 — Большинство задач — моя инициатива
5 — Задаю повестку для других
Вопрос 5 (cp.iwe — информационный, не блокирует ступень):
📍 Вопрос 5 из 5
Насколько у вас настроена среда работы со знаниями —
заметки, база знаний, инструменты (VS Code + Pack + ИИ, или альтернативы)?
1 — Среды нет
2 — Простейшее (заметки в телефоне, папка в облаке)
3 — Базово настроено, пользуюсь регулярно
4 — Несколько сервисов, структура, связи, поиск
5 — Развиваю как систему — Pack/протоколы/агенты
После всех 5 вопросов: scores = {cp.rhy: X, cp.wld: X, cp.int: X, cp.agt: X, cp.iwe: X}.
WP-370: cp.skl выводится из cp.rhy (§6.1 v5.0 — ритм и мастерство коррелируют):
scores['cp.skl'] = scores['cp.rhy']
MANDATORY_SLOTS = ['cp.rhy', 'cp.wld', 'cp.skl', 'cp.int', 'cp.agt'] — cp.iwe исключён.
mandatory_scores = {s: scores[s] for s in MANDATORY_SLOTS}
bottleneck_slot = min(mandatory_scores, key=mandatory_scores.get)
need_drilldown = mandatory_scores[bottleneck_slot] < 3
Если need_drilldown = True — задать один уточняющий вопрос по bottleneck:
| Bottleneck | Вопрос |
|---|---|
| cp.rhy / cp.skl | «Есть ли у вас «ритуалы» начала/завершения рабочей недели? Или регулярные точки рефлексии?»<br>1-Нет ничего / 2-Иногда делаю итоги / 3-Еженедельный ритуал / 4-Структурированные ритуалы / 5-Полная ОРЗ-практика |
| cp.wld | «Можете назвать 2-3 принципа, которые направляют ваши решения? Насколько они явные?»<br>1-Не сформулированы / 2-Смутное ощущение / 3-Могу назвать 1-2 / 4-Явные, записаны / 5-Работающая система |
| cp.int | «Пробовали ли вы разбирать ситуацию через надсистему и подсистему? Выделять роли, функции, ограничения?»<br>1-Незнакомо / 2-Слышал(а), не применял(а) / 3-Интуитивно / 4-Осознанно / 5-Учу других |
| cp.agt | «Берёте ли вы на себя ответственность за результат, даже если обстоятельства были неблагоприятные?»<br>1-Объясняю обстоятельствами / 2-Иногда беру / 3-Обычно беру / 4-Всегда беру / 5-Задаю стандарты |
Ответ drill-down обновляет соответствующий слот в scores. Если bottleneck = cp.skl — обновить cp.rhy, и снова переопределить scores['cp.skl'] = scores['cp.rhy'].
MANDATORY_SLOTS = ['cp.rhy', 'cp.wld', 'cp.skl', 'cp.int', 'cp.agt']
vals = {s: scores.get(s, 2) for s in MANDATORY_SLOTS}
stage = min(vals.values())
bottleneck = 'none' if stage >= 4 else min(vals, key=vals.get)
if stage == 5:
recommended_stream = 'РР'
else:
recommended_stream = f'S{max(1, min(4, stage))}'
Ступени: 1-Случайный / 2-Практикующий / 3-Систематический / 4-Дисциплинированный / 5-Проактивный
Bottleneck по-русски:
Потоки: S1-«Фундамент» / S2-«Систематизация» / S3-«Масштаб» / S4-«Передача» / РР-«Рабочее развитие»
Сначала показать итог в чате:
📊 Результаты диагностики
Ступень: [НАЗВАНИЕ] ([N] из 5)
[Приоритет роста: <bottleneck по-русски>]
ИЛИ
[Узких мест нет — поддерживайте темп.]
Рекомендованное руководство: [SN] — [label]
[При stage=5: «Следующая программа: Рабочее развитие (РР)»]
Профиль по слотам:
cp.rhy [N] | cp.wld [N] | cp.skl [N]
cp.iwe [N] | cp.int [N] | cp.agt [N]
(действителен 180 дней)
Затем сохранить — путь зависит от интерфейса:
Вычислить occurred_at (сейчас, ISO UTC). Сгенерировать event_id для идемпотентности: diagnose-browser-<occurred_at> (ISO-время без разделителей допустимо, важно только не повторить в рамках одной сессии).
Вызвать mcp__claude_ai_IWE__learning_ctx_record_cp_assessment (пишет в канонический журнал learning.cp_assessments, тот же, что и VS Code режим ниже — не в личный цифровой двойник):
<сгенерированный><N>{"cp.rhy": <N>, "cp.wld": <N>, "cp.skl": <N>, "cp.iwe": <N>, "cp.int": <N>, "cp.agt": <N>}<cp.xxx или 'none'><SN или 'РР'><N><число заданных вопросов>v5.0<occurred_at>browserЕсли вызов вернул успех → сообщить: ✅ Профиль сохранён (без упоминания «цифровой двойник» — запись идёт в общий журнал).
Если ошибка → показать профиль в чате и попросить пользователя скопировать его вручную.
source ~/.config/aist/env
CP_SCORES='<JSON с финальными scores>' \
CP_Q_COUNT=<число заданных вопросов> \
python3 -c "
import os, json, datetime as dt_lib
scores_raw = os.environ['CP_SCORES']
q_count = int(os.environ.get('CP_Q_COUNT', '5'))
account_id = os.environ.get('DT_USER_ID', '')
url = os.environ.get('NEON_LEARNING_URL', '')
ALL_SLOTS = ['cp.rhy', 'cp.wld', 'cp.skl', 'cp.iwe', 'cp.int', 'cp.agt']
MANDATORY = ['cp.rhy', 'cp.wld', 'cp.skl', 'cp.int', 'cp.agt']
scores = json.loads(scores_raw)
vals = {s: int(scores.get(s, 2)) for s in ALL_SLOTS}
# derive cp.skl from cp.rhy (FORM.089 §6.1 v5.0)
vals['cp.skl'] = vals['cp.rhy']
stage = min(vals[s] for s in MANDATORY)
bn = 'none' if stage >= 4 else min(MANDATORY, key=lambda s: vals[s])
stream = 'РР' if stage == 5 else 'S' + str(max(1, min(4, stage)))
valid = dt_lib.datetime.now(dt_lib.timezone.utc) + dt_lib.timedelta(days=180)
saved = False
if url and account_id:
try:
import psycopg2
conn = psycopg2.connect(url)
cur = conn.cursor()
cur.execute(
'''INSERT INTO learning.cp_assessments
(account_id, stage, bottleneck_slot, recommended_stream, skip_to_stage,
cp_scores, source, interface, questions_count, rcs_version, valid_until)
VALUES (%s::uuid, %s, %s, %s, %s, %s::jsonb, %s, %s, %s, %s, %s)
RETURNING id''',
(account_id, stage, bn, stream, stage, json.dumps(vals),
'self_report', 'vscode', q_count, 'v5.0', valid)
)
row_id = cur.fetchone()[0]
conn.commit()
conn.close()
print(f'OK neon id={row_id}')
saved = True
except Exception as e:
print(f'neon error: {e}')
if not saved:
import pathlib
d = pathlib.Path.home() / '.aist' / 'cp-assessments'
d.mkdir(parents=True, exist_ok=True)
path = d / (dt_lib.date.today().isoformat() + '.json')
path.write_text(json.dumps({'account_id': account_id, 'stage': stage,
'bottleneck_slot': bn, 'recommended_stream': stream,
'cp_scores': vals, 'source': 'self_report', 'interface': 'vscode',
'questions_count': q_count, 'rcs_version': 'v5.0',
'valid_until': valid.isoformat()}, indent=2))
print(f'saved local: {path}')
"
Если вывод содержит OK neon — профиль в Neon. Если saved local — сохранён локально.
После показа результата — предложить:
Следующий шаг:
→ Навигатор, как развивать [bottleneck по-русски]? — рекомендации по росту
→ /diagnose в боте — синхронизировать профиль
→ /progress в боте — посмотреть полный профиль прогресса
| Ситуация | Действие |
|---|---|
| Пилот не отвечает числом 1-5 | Переспросить: «Выбери цифру от 1 до 5» |
| Пилот хочет пропустить вопрос | Присвоить дефолт 2 (conservative), перейти дальше |
| Менее 4 mandatory-ответов | Показать «Диагностика не завершена», предложить /diagnose заново |
| learning_ctx_record_cp_assessment недоступен | Показать профиль в чате, попросить скопировать |
| psycopg2 не установлен (VS Code) | Сохранить в ~/.aist/cp-assessments/YYYY-MM-DD.json |
| Профиль уже есть (< 7 дней) | Показать и спросить: «Пройти заново?» |
Claude должен предложить /diagnose без явного запроса когда:
learning_ctx_get_onboarding_state — has_diagnosis: false или cp_stage = nullday-open IWE-данные пустые или stage = nullФормулировка предложения:
Вижу, что cp-профиль не заполнен (или устарел).
Хочешь пройти диагностику ступени? ~3 мин, 5 вопросов — скажи «да» или /diagnose.
<!-- USER-SPACE -->
<!-- /USER-SPACE -->아직 리뷰가 없습니다. 사용해 본 소감을 남겨 주세요.
로그인 없이 쓸 수 있습니다. 사용 후기, 질문, 작동하지 않은 환경 등을 편하게 남겨 주세요.
아직 댓글이 없습니다. 첫 댓글을 남겨 보세요.
Регистрация косяка агента в системе учёта WP-316 L1. Без LLM — детерминированный скрипт без WP Gate.
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
Разбор extraction-reports со status pending-review — решение R15 (accept/reject/defer) ЖИВЫМ ПИЛОТОМ, запись в Pack, обновление статуса, коммит. Вызывать при Close при наличии N>0 pending-review отчётов.
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
Оценка архитектурного решения по 7 характеристикам ЭМОГССБ (v3.1 — фильтр допуска, атрибут-сценарии, совет затронутых сторон; профиль без агрегатного балла, conjunctive screening). Используй когда пользователь предлагает архитектурное решение, новый инструмент или системное изменение.
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
Classifies raw pilot request → structured JSON {task_type, class, artifact, budget_estimate, confidence, routing_tag, resolution_path, schema_version, result_type, expected_result_kind, result_kind_resolution, hypothesis_relation}. Keyword-fast (<200ms) or Haiku fallback (<60s). Does NOT create WP or call executor.
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
Audit repository documentation: detect drift between code and docs, report coverage by category. Run manually or on triggered drift critical.
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
Аудит пользовательской инсталляции IWE. Запускает scripts/iwe-audit.sh + MCP healthcheck + smoke-test ритуала через sentinel-механику (контракт dry-run-contract.md), передаёт отчёт subagent'у в роли VR.R.002 Аудитор (context isolation) → verdict ✅/⚠️/❌ по 6 компонентам (Inventory, L1 drift, {{GOVERNANCE_REPO}}, L3 customizations, MCP, ритуал). Используй после restore из бэкапа, после update.sh, или при еженедельной сверке.
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.