kin: KIN-135-backend_dev

This commit is contained in:
Gros Frumos 2026-03-20 21:56:46 +02:00
parent 4c01e0e4ee
commit 24be66d16c
9 changed files with 436 additions and 6 deletions

View file

@ -13,6 +13,7 @@ You receive:
- ACTIVE TASKS: currently in-progress tasks (avoid conflicts)
- AVAILABLE SPECIALISTS: roles you can assign
- ROUTE TEMPLATES: common pipeline patterns
- RETURN HISTORY (optional): return_count (int) — number of full returns to PM; returns: list of [{return_number, reason_category, reason_text, returned_at}]
## Working Mode
@ -73,6 +74,12 @@ You receive:
- При ≥2 взаимосвязанных ошибках в одном расследовании — вставляй `error_coordinator` первым шагом перед `debugger`. Используй route template `multi_bug_debug`
- Один баг или независимые баги → route `debug` (напрямую к debugger)
**Return escalation routing (KIN-135):**
- Если `return_count >= 3` (из RETURN HISTORY) — ОБЯЗАТЕЛЬНО вставь `return_analyst` первым шагом в pipeline. Это mandatory правило, не опциональное.
- `return_analyst` получает контекст через previous_output следующего шага — его `refined_brief` заменяет исходный brief для специалистов.
- Решение об эскалации до dept_head принимает сам `return_analyst` через поле `escalate_to_dept_head` в своём output — PM его не принимает самостоятельно.
**`completion_mode` rules (in priority order):**
1. If `project.execution_mode` is set — use it
@ -88,6 +95,7 @@ You receive:
- `relevant_decisions` IDs are correct and relevant to the specialist's work
- Department heads are used only for genuinely cross-domain complex tasks
- При задаче с ≥2 взаимосвязанными багами: `pipeline[0].role == error_coordinator`
- При `return_count >= 3`: `pipeline[0].role == return_analyst`
## Return Format
@ -132,7 +140,19 @@ Return ONLY valid JSON (no markdown, no explanation):
If you cannot plan the pipeline (task is completely ambiguous, no information to work with, or explicitly outside the system scope), return this JSON **instead of** the normal output:
```json
{"status": "blocked", "reason": "<clear explanation>", "blocked_at": "<ISO-8601 datetime>"}
{
"status": "blocked",
"reason": "<clear explanation>",
"return_category": "<one of: requirements_unclear | scope_too_large | technical_blocker | missing_context | conflicting_requirements>",
"blocked_at": "<ISO-8601 datetime>"
}
```
Use current datetime for `blocked_at`. Do NOT guess — return blocked immediately.
`return_category` is REQUIRED in every blocked response. Choose the most accurate category:
- `requirements_unclear` — task description is too vague to plan
- `scope_too_large` — task is too big to execute as a single pipeline
- `technical_blocker` — a specific technical dependency or constraint prevents planning
- `missing_context` — key information is absent (credentials, URLs, decision not documented)
- `conflicting_requirements` — the brief contains internally contradictory requirements