feat(observer): extend classifyTask with 7 new classes
Closes brain-retro 2026-05-20 #1 — analysis/memory-sync/regulatory-bump/ release/cleanup/monitoring/planning. Addresses '59% other' observation from initial retro factor matrix. Ordering: release before feature (merge feature-branch), planning before refactor (план рефакторинга), memory-sync/regulatory-bump at top as most specific. monitoring regex проверь состоян covers inflected forms. 9 new vitest tests, 241/241 GREEN in npm run test:tools. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -7,6 +7,7 @@ import {
|
||||
extractProcessEvents,
|
||||
parseRoutingTag,
|
||||
extractLastUserPromptText,
|
||||
classifyTask,
|
||||
} from './observer-transcript-parser.mjs';
|
||||
|
||||
// Build a JSONL transcript string from entry objects.
|
||||
@@ -877,3 +878,45 @@ describe('extractEnvironment — parallel_session narrowed to tool_result eviden
|
||||
expect(env.parallel_session).toBe(true);
|
||||
});
|
||||
});
|
||||
|
||||
describe('classifyTask — extended dictionary (Task 1)', () => {
|
||||
it('classifies analysis prompts', () => {
|
||||
expect(classifyTask('проанализируй данные наблюдателя')).toBe('analysis');
|
||||
expect(classifyTask('review the recent changes')).toBe('analysis');
|
||||
expect(classifyTask('посмотри что в логах')).toBe('analysis');
|
||||
});
|
||||
it('classifies memory-sync prompts', () => {
|
||||
expect(classifyTask('обнови эталон проекта')).toBe('memory-sync');
|
||||
expect(classifyTask('sync memory с последним push')).toBe('memory-sync');
|
||||
expect(classifyTask('обнови MEMORY.md')).toBe('memory-sync');
|
||||
});
|
||||
it('classifies regulatory-bump prompts', () => {
|
||||
expect(classifyTask('обнови CLAUDE.md после правки')).toBe('regulatory-bump');
|
||||
expect(classifyTask('правка Pravila §16')).toBe('regulatory-bump');
|
||||
expect(classifyTask('обнови PSR_v1 v3.18')).toBe('regulatory-bump');
|
||||
});
|
||||
it('classifies release prompts', () => {
|
||||
expect(classifyTask('push origin main')).toBe('release');
|
||||
expect(classifyTask('merge feature-branch')).toBe('release');
|
||||
expect(classifyTask('сделай release v2')).toBe('release');
|
||||
});
|
||||
it('classifies cleanup prompts', () => {
|
||||
expect(classifyTask('убери временные файлы')).toBe('cleanup');
|
||||
expect(classifyTask('cleanup тулчейн')).toBe('cleanup');
|
||||
});
|
||||
it('classifies monitoring prompts', () => {
|
||||
expect(classifyTask('проверь состояние портала')).toBe('monitoring');
|
||||
expect(classifyTask('status of CI')).toBe('monitoring');
|
||||
});
|
||||
it('classifies planning prompts', () => {
|
||||
expect(classifyTask('план рефакторинга биллинга')).toBe('planning');
|
||||
expect(classifyTask('design новую фичу')).toBe('planning');
|
||||
expect(classifyTask('обсудим архитектуру')).toBe('planning');
|
||||
});
|
||||
it('preserves existing classes — refactor stays refactor', () => {
|
||||
expect(classifyTask('рефактор биллинг-сервиса')).toBe('refactor');
|
||||
});
|
||||
it('preserves existing classes — bugfix stays bugfix', () => {
|
||||
expect(classifyTask('почини баг в logger')).toBe('bugfix');
|
||||
});
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user