Add Analista-Processual squad for process analysis#3
Conversation
Cria o squad multi-agente para análise de processos organizacionais com quatro papéis: coordenador, mapeador, avaliador e documentador. Usa o Claude Agent SDK (claude-opus-4-6) com adaptive thinking. https://claude.ai/code/session_011hYWQ6AMQtTzLXe9HAmcVU
Guia do RevisorAdiciona uma nova squad Analista-Processual que orquestra três subagentes especializados para análise de processos, expõe um ponto de entrada via CLI com modos de entrada flexíveis e documenta o uso e as dependências para executar a squad. Diagrama de sequência para análise de processos coordenada por múltiplos agentessequenceDiagram
actor Usuario
participant CLI as CLI_main
participant Squad as run_squad
participant SDK as claude_agent_sdk_query
participant Coord as SquadCoordinator
participant Mapeador as Subagent_Mapeador
participant Avaliador as Subagent_Avaliador
participant Documentador as Subagent_Documentador
Usuario->>CLI: Executa python squad.py (args/stdin/interativo)
CLI->>Squad: run_squad(processo)
Squad->>SDK: query(processo, ClaudeAgentOptions)
activate SDK
SDK->>Coord: Inicializa coordenador com SYSTEM_PROMPT
Coord->>Mapeador: Solicita mapeamento do processo
Mapeador-->>Coord: Retorna fluxo pseudo_BPMN
Coord->>Avaliador: Envia mapeamento para avaliação
Avaliador-->>Coord: Retorna gargalos, riscos, maturidade
Coord->>Documentador: Envia mapeamento + avaliação
Documentador-->>Coord: Retorna relatório Markdown consolidado
Coord-->>SDK: Finaliza conversa com relatório final
SDK-->>Squad: ResultMessage(result, stop_reason)
deactivate SDK
Squad->>Usuario: Imprime relatório final e stop_reason
Diagrama de classes para a estrutura da squad Analista-ProcessualclassDiagram
class run_squad {
+async(processo str) None
}
class main {
+main() None
}
class AgentDefinition {
+description str
+prompt str
+tools list
}
class ClaudeAgentOptions {
+model str
+system_prompt str
+allowed_tools list
+agents dict~str,AgentDefinition~
+max_turns int
+thinking dict
}
class ResultMessage {
+result str
+stop_reason str
}
class MAPEADOR {
}
class AVALIADOR {
}
class DOCUMENTADOR {
}
class SYSTEM_PROMPT {
+text str
}
class query {
+async_iterator(prompt str, options ClaudeAgentOptions)
}
main --> run_squad : calls
run_squad --> ClaudeAgentOptions : configures
run_squad --> query : passes processo and options
query --> ResultMessage : yields
MAPEADOR --> AgentDefinition : instance_of
AVALIADOR --> AgentDefinition : instance_of
DOCUMENTADOR --> AgentDefinition : instance_of
ClaudeAgentOptions --> MAPEADOR : uses as agent mapeador
ClaudeAgentOptions --> AVALIADOR : uses as agent avaliador
ClaudeAgentOptions --> DOCUMENTADOR : uses as agent documentador
SYSTEM_PROMPT --> ClaudeAgentOptions : assigned to system_prompt
Alterações por Arquivo
Dicas e comandosInteragindo com o Sourcery
Personalizando sua experiênciaAcesse seu dashboard para:
Obtendo ajuda
Original review guide in EnglishReviewer's GuideAdds a new Analista-Processual squad that orchestrates three specialized sub-agents for process analysis, exposes a CLI entrypoint with flexible input modes, and documents usage and dependencies for running the squad. Sequence diagram for coordinated multi-agent process analysissequenceDiagram
actor Usuario
participant CLI as CLI_main
participant Squad as run_squad
participant SDK as claude_agent_sdk_query
participant Coord as SquadCoordinator
participant Mapeador as Subagent_Mapeador
participant Avaliador as Subagent_Avaliador
participant Documentador as Subagent_Documentador
Usuario->>CLI: Executa python squad.py (args/stdin/interativo)
CLI->>Squad: run_squad(processo)
Squad->>SDK: query(processo, ClaudeAgentOptions)
activate SDK
SDK->>Coord: Inicializa coordenador com SYSTEM_PROMPT
Coord->>Mapeador: Solicita mapeamento do processo
Mapeador-->>Coord: Retorna fluxo pseudo_BPMN
Coord->>Avaliador: Envia mapeamento para avaliação
Avaliador-->>Coord: Retorna gargalos, riscos, maturidade
Coord->>Documentador: Envia mapeamento + avaliação
Documentador-->>Coord: Retorna relatório Markdown consolidado
Coord-->>SDK: Finaliza conversa com relatório final
SDK-->>Squad: ResultMessage(result, stop_reason)
deactivate SDK
Squad->>Usuario: Imprime relatório final e stop_reason
Class diagram for Analista-Processual squad structureclassDiagram
class run_squad {
+async(processo str) None
}
class main {
+main() None
}
class AgentDefinition {
+description str
+prompt str
+tools list
}
class ClaudeAgentOptions {
+model str
+system_prompt str
+allowed_tools list
+agents dict~str,AgentDefinition~
+max_turns int
+thinking dict
}
class ResultMessage {
+result str
+stop_reason str
}
class MAPEADOR {
}
class AVALIADOR {
}
class DOCUMENTADOR {
}
class SYSTEM_PROMPT {
+text str
}
class query {
+async_iterator(prompt str, options ClaudeAgentOptions)
}
main --> run_squad : calls
run_squad --> ClaudeAgentOptions : configures
run_squad --> query : passes processo and options
query --> ResultMessage : yields
MAPEADOR --> AgentDefinition : instance_of
AVALIADOR --> AgentDefinition : instance_of
DOCUMENTADOR --> AgentDefinition : instance_of
ClaudeAgentOptions --> MAPEADOR : uses as agent mapeador
ClaudeAgentOptions --> AVALIADOR : uses as agent avaliador
ClaudeAgentOptions --> DOCUMENTADOR : uses as agent documentador
SYSTEM_PROMPT --> ClaudeAgentOptions : assigned to system_prompt
File-Level Changes
Tips and commandsInteracting with Sourcery
Customizing Your ExperienceAccess your dashboard to:
Getting Help
|
Summary of ChangesHello, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed! Este pull request introduz um novo squad de agentes de IA, o "Analista-Processual", projetado para automatizar e aprimorar a análise de processos organizacionais. O sistema coordena agentes especializados para mapear etapas, avaliar riscos e gargalos, e gerar relatórios estruturados, oferecendo uma ferramenta robusta para otimização de processos de negócios. Highlights
🧠 New Feature in Public Preview: You can now enable Memory to help Gemini Code Assist learn from your team's feedback. This makes future code reviews more consistent and personalized to your project's style. Click here to enable Memory in your admin console. Using Gemini Code AssistThe full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips. Invoking Gemini You can request assistance from Gemini at any point by creating a comment using either
Customization To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a Limitations & Feedback Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for GitHub and other Google products, sign up here. Footnotes
|
There was a problem hiding this comment.
Ei – analisei suas alterações e elas parecem ótimas!
O Sourcery é gratuito para projetos open source – se você gosta das nossas revisões, considere compartilhá-las ✨
Original comment in English
Hey - I've reviewed your changes and they look great!
Help me be more useful! Please click 👍 or 👎 on each comment and I'll use the feedback to improve your reviews.
There was a problem hiding this comment.
Code Review
Este pull request introduz uma nova e bem estruturada squad 'Analista-Processual'. A implementação está clara e modular, com uma boa separação de responsabilidades entre os agentes. A adição de documentação e múltiplos métodos de entrada (CLI, stdin, interativo) é excelente.
Minhas sugestões focam em melhorar a robustez e a flexibilidade do script:
- Adicionar tratamento de erros para chamadas de API, para fornecer feedback mais claro ao usuário em caso de falha.
- Tornar configuráveis parâmetros como o nome do modelo e o número de turnos, facilitando a experimentação e o reuso.
- Usar constantes para os nomes dos agentes para melhorar a manutenibilidade do código.
| agents={ | ||
| "mapeador": MAPEADOR, | ||
| "avaliador": AVALIADOR, | ||
| "documentador": DOCUMENTADOR, | ||
| }, |
There was a problem hiding this comment.
Os nomes dos agentes ('mapeador', 'avaliador', 'documentador') são usados como strings literais aqui e no SYSTEM_PROMPT (linhas 93-95). Isso pode levar a erros de digitação e dificultar a manutenção se os nomes precisarem ser alterados. Para tornar o código mais robusto, recomendo definir esses nomes como constantes no escopo do módulo e usá-las em ambos os locais.
Exemplo:
# Definir no topo do arquivo
MAPEADOR_NAME = 'mapeador'
AVALIADOR_NAME = 'avaliador'
DOCUMENTADOR_NAME = 'documentador'
# Usar no dicionário de agentes
agents={
MAPEADOR_NAME: MAPEADOR,
AVALIADOR_NAME: AVALIADOR,
DOCUMENTADOR_NAME: DOCUMENTADOR,
}
# Usar no SYSTEM_PROMPT com f-string
SYSTEM_PROMPT = f'''
... Acione o agente **{MAPEADOR_NAME}** ...
'''There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 37c50f9ed9
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| options = ClaudeAgentOptions( | ||
| model="claude-opus-4-6", | ||
| system_prompt=SYSTEM_PROMPT, | ||
| allowed_tools=["Read", "Write", "Glob", "Agent"], |
There was a problem hiding this comment.
Restrict coordinator tools with
tools, not allowed_tools
ClaudeAgentOptions.allowed_tools only auto-approves listed tools and does not limit the model to that set, so leaving tools unset here lets the coordinator still invoke other default tools. In practice this can cause non-deterministic behavior (unexpected tool use or permission prompts/hangs in piped non-interactive usage) instead of the intended fixed mapping/evaluation/documentation flow; use tools=["Read", "Write", "Glob", "Agent"] (and optionally disallowed_tools) to enforce the tool boundary.
Useful? React with 👍 / 👎.
There was a problem hiding this comment.
Cursor Bugbot has reviewed your changes and found 1 potential issue.
Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.
| async for message in query(prompt=processo, options=options): | ||
| if isinstance(message, ResultMessage): | ||
| print("\n=== Relatório Final ===\n") | ||
| print(message.result) |
There was a problem hiding this comment.
Wrong attribute name on ResultMessage for text access
High Severity
message.result is accessed on ResultMessage, but official SDK examples and documentation indicate this attribute does not exist. The SDK's own streaming_mode.py example only calls print("Result ended") on ResultMessage, and text content is retrieved from AssistantMessage via message.content blocks. PR #563 adding fields to ResultMessage lists stop_reason, model_usage, permission_denials, and uuid — no result field. This will likely raise an AttributeError at runtime, preventing the final report from being displayed.


Summary
Introduces a new specialized squad for organizational process analysis, featuring a coordinated multi-agent system that maps, evaluates, and documents business processes.
Key Changes
New Squad Implementation (
squads/analista-processual/squad.py):Documentation (
squads/analista-processual/README.md):Dependencies (
squads/analista-processual/requirements.txt):Implementation Details
https://claude.ai/code/session_011hYWQ6AMQtTzLXe9HAmcVU
Summary by Sourcery
Introduz uma nova squad Analista-Processual que coordena múltiplos agentes especializados para analisar e documentar processos organizacionais a partir de um único ponto de entrada via CLI.
Novas funcionalidades:
Build:
Documentação:
Original summary in English
Summary by Sourcery
Introduce a new Analista-Processual squad that coordinates multiple specialized agents to analyze and document organizational processes from a single CLI entrypoint.
New Features:
Build:
Documentation:
Note
Medium Risk
Adds a new CLI-driven multi-agent workflow that invokes external LLM tooling (
claude-agent-sdk) and grants tool access (Read/Write/Glob), so behavior and output quality depend on model/tool execution rather than deterministic logic.Overview
Adds a new
squads/analista-processualsquad that orchestrates three sub-agents (mapeamento → avaliação → documentação) to turn a user-provided process description into a consolidated Markdown report.Introduces a runnable CLI script (
squad.py) that accepts input via argv/stdin/interactive mode, streams results fromclaude-agent-sdk(modelclaude-opus-4-6), and includes new per-squad dependencies inrequirements.txtplus aREADME.mdwith install/usage/output guidance.Written by Cursor Bugbot for commit 37c50f9. This will update automatically on new commits. Configure here.