Refs #2 Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01MzkPQWjfA7RpqYWkjnqJwt
23 lines
1.7 KiB
Bash
23 lines
1.7 KiB
Bash
# role-hint.sh: подсказка роли по session_title, никогда не блокирует.
|
||
H="$ROOT/hooks/role-hint.sh"
|
||
assert_file "role-hint.sh существует" "$H"
|
||
run(){ printf '%s' "$1" | bash "$H" 2>/dev/null; echo "rc=$?"; }
|
||
assert_eq "admin: … → подсказка" "$(run '{"session_title":"admin: спринт 3","source":"startup"}')" \
|
||
"[claude-harness] Роль сессии: admin. Вызови /role admin до первого ответа.
|
||
rc=0"
|
||
assert_eq "qa без двоеточия → подсказка" "$(run '{"session_title":"qa прогон Q1"}')" \
|
||
"[claude-harness] Роль сессии: qa. Вызови /role qa до первого ответа.
|
||
rc=0"
|
||
assert_eq "регистр и пробелы в начале" "$(run '{"session_title":" Admin — Jira"}')" \
|
||
"[claude-harness] Роль сессии: admin. Вызови /role admin до первого ответа.
|
||
rc=0"
|
||
assert_eq "префикс алиаса cc-" "$(run '{"session_title":"cc-analyst ТЗ v4"}')" \
|
||
"[claude-harness] Роль сессии: analyst. Вызови /role analyst до первого ответа.
|
||
rc=0"
|
||
assert_eq "чужое слово → тишина" "$(run '{"session_title":"harness: роли"}')" "rc=0"
|
||
assert_eq "слово с продолжением (devops) → тишина" "$(run '{"session_title":"devops"}')" "rc=0"
|
||
assert_eq "без заголовка → тишина" "$(run '{"cwd":"/tmp","source":"resume"}')" "rc=0"
|
||
assert_eq "пустой stdin → тишина, exit 0" "$(run '')" "rc=0"
|
||
assert_eq "не JSON → тишина, exit 0" "$(run 'not json at all')" "rc=0"
|
||
assert_grep "settings.hooks.json регистрирует role-hint" 'role-hint\.sh' "$ROOT/hooks/settings.hooks.json"
|