c2f-gestor-functions
Skill5 starsChanged 2 months agoMITView on GitHub
LEIA ANTES de chamar funções do núcleo gestor.php (layouts, sessões, redirecionamentos, componentes). Se não ler: redirecionamentos emitem exit() no meio de rotinas, componentes quebram por escopo ou sessões expiram incorretamente.
We split this skill into the rules it gives an agent
1 rule. About 0 are common, 0 are distinctive, and 1 is very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈0
Distinctive · estimate
This author's own choices. Worth a look.
1
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 48
Use if(existe($var)) para validar se strings, arrays, números ou coleções estão definidos e não vazios.
≈ “Common” is an estimate: at least 1 in 5 of the 308,232 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Funções da Biblioteca de Gestor (gestor.php)
⚡ Gatilho Obrigatório
- TRIGGER: Invocar ou refatorar chamadas a funções centrais de
gestor/bibliotecas/gestor.php(gestor_componente,gestor_redirecionar,gestor_pagina_*,gestor_usuario). - SKIP APENAS SE: Código isolado em bibliotecas utilitárias puras sem acoplamento ao runtime do Gestor.
- CONSEQUÊNCIA DE IGNORAR: Quebras de fluxo de execução (ex:
gestor_redirecionar_raiz()abortando gravações), perda de estado de sessão ou falhas na montagem de páginas.
Consulte e aplique as seguintes convenções ao utilizar as funções centrais do Gestor no Conn2Flow (gestor/bibliotecas/gestor.php):
- Obtenção de Componentes Dinâmicos (
gestor_componente):- Componente do módulo atual:
gestor_componente(['id' => 'id-comp', 'modulo' => $_GESTOR['modulo-id']]). - Componente de outro módulo:
gestor_componente(['id' => 'formulario-login', 'modulo' => 'autenticacao']). - Retorno separado de HTML e CSS:
gestor_componente(['id' => 'comp-id', 'return_css' => true])(retorna array['html' => ..., 'css' => ...]).
- Componente do módulo atual:
- Gerenciamento de Variáveis do Sistema (
gestor_variaveis/gestor_variaveis_alterar):- Variável global:
gestor_variaveis(['id' => 'id-var']). - Variável de módulo:
gestor_variaveis(['modulo' => $_GESTOR['modulo-id'], 'id' => 'id-var']). - Conjunto completo de variáveis:
gestor_variaveis(['modulo' => 'meu-modulo', 'conjunto' => true]). - Filtrar por prefixo/regex:
gestor_variaveis(['modulo' => 'admin-env', 'conjunto' => true, 'padrao' => 'email-']). - Alterar variável:
gestor_variaveis_alterar(['modulo' => 'id-modulo', 'id' => 'id-var', 'tipo' => 'string', 'valor' => 'novo valor']).
- Variável global:
- Inclusão Segura de Bibliotecas (
gestor_incluir_biblioteca):- Garanta o carregamento idempotente de arquivos em
gestor/bibliotecas/{nome}.php:gestor_incluir_biblioteca('comunicacao'),gestor_incluir_biblioteca('pdf').
- Garanta o carregamento idempotente de arquivos em
- Redirecionamentos HTTP (
gestor_redirecionar):- Rota interna:
gestor_redirecionar('dashboard'). - Com query string:
gestor_redirecionar('produtos', 'categoria=eletronicos&pagina=1'). - URL externa:
gestor_redirecionar('https://www.google.com', '', true).
- Rota interna:
- Manipulação de Sessão (
gestor_sessao_variavel):- Definir:
gestor_sessao_variavel('usuario_id', 123). - Obter:
$id = gestor_sessao_variavel('usuario_id')(retornanullse inexistente). - Remover item:
gestor_sessao_variavel_del('chave'). - Limpar sessão:
gestor_sessao_del_all().
- Definir:
- Inclusão de Componentes na Página (
gestor_componentes_incluir):- Incluir simples ou múltiplo:
gestor_componentes_incluir(['id' => 'menu-principal'])ougestor_componentes_incluir(['id' => ['header', 'footer']]).
- Incluir simples ou múltiplo:
- Auxiliar de Validação (
existe):- Use
if(existe($var))para validar se strings, arrays, números ou coleções estão definidos e não vazios.
- Use
- Layouts de Página (
gestor_layout):- Retornar layout HTML completo:
gestor_layout(['id' => 'layout-administrativo'])ou com'return_css' => true.
- Retornar layout HTML completo:
9. Contrato de nome_especifico na Interface
- Quando a tabela de um módulo não possui a coluna
nome(ex: tabelas comtitulo,descricaoou apenas campos técnicos), o array de interface (interface.php) deve declarar'nome_especifico'apontando para o campo equivalente:
$_GESTOR_INTERFACE = [
'tabela' => 'minha_tabela',
'nome_especifico' => 'titulo', // ← Obrigatório se a tabela não tem coluna 'nome'
// ...
];- Consequência de Omissão: Sem
nome_especifico, o Gestor executaSELECT nome FROM tabelaque falha com erro SQL ou retorna valores vazios, causando desvios silenciosos na listagem e nos breadcrumbs.
10. gestor_redirecionar() com Caminhos Relativos
- A função
gestor_redirecionar()já prefixa automaticamente ourl-raizdo projeto e o idioma ativo. Portanto, sempre passe caminhos relativos:
// ✅ CORRETO — caminho relativo (a função adiciona url-raiz + idioma)
gestor_redirecionar('modulo/acao');
gestor_redirecionar('dashboard', 'mensagem=ok');
// ❌ ERRADO — caminho absoluto duplica o prefixo
gestor_redirecionar('/pt-br/modulo/acao');
gestor_redirecionar($_GESTOR['url-raiz'] . '/modulo/acao');- Exceção: Para URLs externas, passe o terceiro parâmetro como
true:gestor_redirecionar('https://externo.com', '', true);
11. Roteamento AJAX Público (<modulo>.ajax.public.php)
- Para endpoints AJAX que devem funcionar sem autenticação (ex: formulários públicos, webhooks de gateway, APIs anônimas), use o arquivo
<modulo>.ajax.public.phpem vez de<modulo>.ajax.php. - Razão: O arquivo
.ajax.phppadrão passa porinterface_ajax_iniciar(), que exige sessão autenticada. O.ajax.public.phpé roteado pelo Gestor com o flagwithout_permission, ignorando a verificação de sessão.
modulos/
meu-modulo/
meu-modulo.ajax.php ← AJAX autenticado (padrão)
meu-modulo.ajax.public.php ← AJAX público (without_permission)- Segurança Mandatória: Mesmo em endpoints públicos, sempre valide e sanitize os dados de entrada. O
without_permissionremove apenas a exigência de sessão, não a responsabilidade de validação:
// meu-modulo.ajax.public.php
$acao = isset($_REQUEST['acao']) ? banco_escape_field($_REQUEST['acao']) : '';
switch ($acao) {
case 'webhook-gateway':
// Validar assinatura do webhook, processar dados
break;
default:
echo json_encode(['erro' => 'Ação inválida']);
}12. Regra de Sessão em Páginas Públicas (without_permission: true)
- Em páginas marcadas com
without_permission: true, ogestor.phpnão executagestor_permissao(), fazendo com quegestor_usuario()retorne vazio mesmo para compradores autenticados. - Diretriz Normativa: Para identificar o usuário logado em páginas públicas, chame
gestor_permissao_token(), mas estritamente sob a condição de que o cookie de autenticação exista:
// ✅ CORRETO — verificação condicional do cookie antes de gestor_permissao_token()
function identificar_usuario_publico() {
global $_CONFIG;
if (isset($_COOKIE[$_CONFIG['cookie-authname']])) {
gestor_permissao_token();
return gestor_usuario();
}
return null; // Visitante anônimo — sem redirecionamento
}// ❌ ERRADO — chamada incondicional força redirecionamento de visitantes anônimos
function identificar_usuario_publico() {
gestor_permissao_token(); // Dispara gestor_cookie_verificacao() → redireciona para _gestor-cookie-verify
return gestor_usuario();
}[!CAUTION] Sem a checagem
isset($_COOKIE[...]), a funçãogestor_cookie_verificacao()pode disparar um redirecionamento forçado do visitante anônimo para_gestor-cookie-verify, quebrando a experiência de navegação pública (loja, landing pages, checkout).
In this repository102 other files it gives its agents.
- AGENTS.mdAGENTS.md
- CLAUDE.mdCLAUDE.md
- cli/CLAUDE.mdCLAUDE.md
- .github/copilot-instructions.mdCopilot instructions
- .cursor/rules/sdd.mdcCursor rule
- c2f-database-testingSkill
- c2f-gd-image-safetySkill
- c2f-json-resources-syncSkill
- c2f-mdd-indexing-and-handoffsSkill
- c2f-mysql-utf8-emoji-encodingSkill
- c2f-tailwind-css-architectureSkill
- c2f-tailwind-module-migrationSkill
- c2f-widget-developmentSkill
- c2f-agent-visual-inspectionSkill
- c2f-ai-featuresSkill
- c2f-architect-masterSkill
- c2f-database-operationsSkill
- c2f-database-testingSkill
- c2f-dev-scriptsSkill
- c2f-docker-environmentSkill
- c2f-documentation-governanceSkill
- c2f-documentationSkill
- c2f-environment-configurationSkill
- c2f-executor-agentSkill
- c2f-gd-image-safetySkill
- c2f-global-variablesSkill
- c2f-hooks-systemSkill
- c2f-html-css-pages-and-componentsSkill
- c2f-interface-v2-architectureSkill
- c2f-javascript-ajaxSkill
- c2f-json-resources-syncSkill
- c2f-mdd-indexing-and-handoffsSkill
- c2f-modelo-templatesSkill
- c2f-module-crud-scaffoldingSkill
- c2f-module-visual-assetsSkill
- c2f-multilingual-systemSkill
- c2f-mysql-utf8-emoji-encodingSkill
- c2f-payment-gatewaysSkill
- c2f-plugin-architectureSkill
- c2f-preview-modals-systemSkill
- c2f-project-pipeline-and-tasksSkill
- c2f-projects-systemSkill
- c2f-resources-systemSkill
- c2f-reviewer-agentSkill
- c2f-shell-and-windows-trapsSkill
- c2f-system-tasksSkill
- c2f-tailwind-css-architectureSkill
- c2f-tailwind-module-migrationSkill
- c2f-variables-systemSkill
- c2f-widget-developmentSkill
- continue-mdd-batchSkill
- mdd-memory-gardeningSkill
- mdd-workflowSkill
- project-validationSkill
- raise-spec-changeSkill
- review-current-batchSkill
- start-mdd-sliceSkill
- c2f-agent-visual-inspectionSkill
- c2f-ai-featuresSkill
- c2f-architect-masterSkill
- The first 60 shown.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
Reviews can't be read right now.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

