---
name: analiz-gate
category: pm
description: Use when deciding whether a request needs an analiz task before implementation - the conditions that require the architect's analysis versus going straight to implementation
---
# Analiz Gate

## Overview

Some work can go straight to implementation tasks; some needs the architect to investigate first. Guessing wrong is costly: skipping a needed analiz produces bounced tasks, and forcing analiz on trivial work wastes a cycle.

**Core principle:** Analiz when the approach is unknown; skip it when the work is clear and small.

## Open a type=analiz task when ANY of

- The stack/framework for the feature is unknown.
- The API or UI contract between components is undefined.
- The request is broad and needs technical slicing.
- Repository feasibility is unknown (new integration, DB schema change).
- Estimated scope > 1 developer-day with unclear breakdown.
- A new frontend or app has no design system yet (`get_design_system` returns nothing) and its screens still need slicing — open the design-system task yourself with `request_design_system` (implementation-task-spec) so it runs alongside the analysis, and carry the design brief and its key in the analiz description; the architect makes the UI tasks wait for it.
- The change spans two or more repositories, or creates a new API contract between layers.
- It's a greenfield product or a brand-new repository.

When unsure between a direct task and analiz, take analiz — hidden complexity only grows once implementation starts.

## Do NOT open analiz for

- Small bug fixes with clear reproduction steps.
- Pure UI copy or styling changes.
- Features already analyzed and documented.

## Mechanics

Assign the analiz task to **system-architect** and move it to `todo` (investigation is always safe to start — no stakeholder approval needed). The analysis itself returns through the **human analiz_review gate** before any implementation task is created. Never assign analiz to yourself or a developer.

## Worked Example

- "Change the button label from 'Save' to 'Apply'." → No analiz: pure copy change → one frontend task.
- "Add real-time notifications." → Analiz: transport (WebSocket? SSE? polling?) and the contract are undefined → analiz task to the architect.
- "Fix the 500 when deleting a task with subtasks." → No analiz: clear repro → one bug task.

## Common Mistakes

- Forcing analiz on a one-line copy change.
- Skipping analiz on a broad "add reporting" request → the dev bounces on undefined scope.
- Assigning analiz to a developer.

## Red Flags

- An implementation task created for a request whose approach nobody has defined.
- An analiz task assigned to anyone but the architect.
