tactic-rules

SKILL.md

TACTIC Rules

...

TACTIC Backend - SKILL.md

🔧 Análisis Técnico Detallado del Backend

Este documento proporciona un análisis exhaustivo del backend TACTIC, detallando cada componente, tecnologías y arquitectura para facilitar el desarrollo, mantenimiento y extensión del sistema.

🏛️ Arquitectura del Core Framework

1. pyasm/ - Framework de Bajo Nivel (Foundation Layer)

pyasm/search/ - Motor de Búsqueda y ORM

Propósito: Proporcionar una capa de abstracción de base de datos y ORM potente.

Clases Principales:

# Clases fundamentales del ORM
- SObject          # Clase base para todos los objetos de datos
- Search           # Motor de consultas con filtros avanzados  
- SearchType       # Definición de tipos de búsqueda y esquemas
- DatabaseImpl     # Abstracción de base de datos multi-vendor
- Transaction      # Sistema de transacciones ACID
- SearchKey        # Identificador único de objetos
- ColumnFilter     # Sistema de filtros de columnas

Funcionalidades Clave:

  • ORM Completo: Mapeo objeto-relacional con relaciones complejas
  • Multi-Database: PostgreSQL, MySQL, SQLite, SQL Server
  • Query Builder: Construcción dinámica de consultas SQL
  • Transaction Management: ACID transactions con rollback
  • Caching: Query cache y object cache
  • Schema Migration: Migraciones automáticas de esquemas
  • Audit Trail: Logging automático de cambios

Patrones Implementados:

  • Active Record Pattern
  • Unit of Work Pattern
  • Data Mapper Pattern

pyasm/web/ - Framework Web y Widget System

Propósito: Proporcionar infraestructura web y sistema de componentes UI.

Clases Principales:

# Core Web Framework
- WebContainer     # Gestor de contexto web y estado global
- WebState         # Estado de la aplicación web
- AppServer        # Servidor de aplicaciones base
- WebEnvironment   # Gestión de entorno web
- WebInit          # Inicialización del framework

# Widget System
- Widget           # Clase base de todos los widgets
- HtmlWdg          # Generador de HTML
- BaseRefreshWdg   # Widget base con capacidad de refresh
- WebApp           # Aplicación web principal

Funcionalidades Clave:

  • Widget Hierarchy: Sistema de widgets jerárquico anidable
  • State Management: Gestión de estado entre peticiones
  • Session Management: Manejo de sesiones de usuario
  • Request Routing: Sistema de ruteo flexible
  • Template Engine: Integración con Mako templates
  • AJAX Support: Comunicación asíncrona integrada

Patrones Implementados:

  • Composite Pattern (para widgets)
  • Observer Pattern (para eventos)
  • Template Method Pattern

pyasm/biz/ - Lógica de Negocio Core

Propósito: Implementar la lógica de negocio fundamental del sistema.

Clases Principales:

# Core Business Objects
- Project          # Gestión de proyectos y configuración
- Task             # Gestión de tareas y asignaciones
- Pipeline         # Definición de flujos de trabajo
- Snapshot         # Versionado de archivos y metadatos
- File             # Gestión de archivos físicos
- Note             # Sistema de notas y comentarios
- Search           # Búsquedas guardadas y filtros

Funcionalidades Clave:

  • Project Management: Creación y gestión de proyectos
  • Workflow Engine: Ejecución de pipelines y procesos
  • File Versioning: Sistema de versionado de archivos
  • Metadata Management: Gestión de metadatos extensibles
  • Task Automation: Automatización de tareas recurrentes

pyasm/security/ - Sistema de Seguridad

Propósito: Proporcionar autenticación, autorización y gestión de accesos.

Clases Principales:

- Security         # Gestor de seguridad central
- Authenticate     # Sistema de autenticación
- AccessManager    # Control de accesos por roles
- Login            # Gestión de usuarios
- Group            # Gestión de grupos
- Batch            # Procesamiento por lotes seguro

Funcionalidades Clave:

  • Multi-factor Authentication: Soporte para múltiples métodos
  • Role-based Access Control (RBAC): Control granular de accesos
  • Ticket-based Authentication: Sistema de tickets con expiración
  • Access Rules: Reglas de acceso configurables
  • Audit Logging: Registro de actividades de seguridad

pyasm/command/ - Sistema de Comandos

Propósito: Implementar el patrón Command para operaciones ejecutables.

Clases Principales:

- Command          # Clase base de comandos
- CommandDelegator # Ejecutor de comandos
- Trigger          # Sistema de triggers y eventos

Funcionalidades Clave:

  • Undo/Redo Support: Soporte para deshacer/rehacer
  • Command Chaining: Encadenamiento de comandos
  • Async Execution: Ejecución asíncrona de comandos
  • Error Handling: Manejo robusto de errores

2. tactic/ - Framework de Alto Nivel

tactic/ui/ - Componentes UI Avanzados

Propósito: Proporcionar widgets especializados y componentes de UI empresariales.

Módulos Principales:

# Advanced UI Components
- table/           # Tablas de datos con sorting, filtering, pagination
- panel/           # Paneles y layouts complejos
- widget/          # Widgets especializados (forms, calendars, etc.)
- filter/          # Filtros de búsqueda avanzados
- tool/            # Herramientas administrativas
- app/             # Aplicaciones completas

Widgets Clave:

  • TableWdg: Tablas con capacidades empresariales
  • FilterWdg: Filtros dinámicos y guardables
  • EditWdg: Formularios de edición complejos
  • CalendarWdg: Calendarios interactivos
  • ChartWdg: Gráficos y visualizaciones

tactic/protocol/ - APIs y Protocolos

Propósito: Exponer funcionalidad del sistema através de diversas APIs.

Handlers Principales:

- APIRestHandler   # API REST principal
- SObjectRestHandler # Handler específico para objetos
- GraphQLHandler   # Soporte GraphQL
- PythonRestHandler # API con scripts Python
- XMLRPCHandler    # Handler XML-RPC tradicional

Funcionalidades:

  • RESTful API: API completa con métodos CRUD
  • GraphQL: Queries flexibles y eficientes
  • Authentication: Integración con sistema de seguridad
  • Rate Limiting: Control de rate limiting y throttling
  • Documentation: Auto-documentación de endpoints

tactic/startup/ - Inicialización del Sistema

Propósito: Gestionar el startup y shutdown del sistema.

Componentes:

  • TacticInit: Inicialización principal del framework
  • PluginLoader: Carga de plugins y módulos
  • DatabaseUpgrade: Migraciones automáticas de base de datos

🗄️ Sistema de Base de Datos Detallado

Esquema Principal (sthpw/)

Tablas del Sistema

-- Core System Tables
CREATE TABLE project (
    code VARCHAR(256) PRIMARY KEY,
    title VARCHAR(256),
    description TEXT,
    project_type VARCHAR(256),
    status VARCHAR(256),
    -- Configuration y metadata
);

CREATE TABLE "login" (
    code VARCHAR(256) PRIMARY KEY,
    login VARCHAR(256) UNIQUE,
    password VARCHAR(256),
    first_name VARCHAR(256),
    last_name VARCHAR(256),
    email VARCHAR(256),
    -- Security y preferences
);

CREATE TABLE task (
    code VARCHAR(256) PRIMARY KEY,
    search_type VARCHAR(256),
    search_id INTEGER,
    process VARCHAR(256),
    status VARCHAR(256),
    assigned VARCHAR(256),
    -- Timestamps y metadata
);

CREATE TABLE snapshot (
    code VARCHAR(256) PRIMARY KEY,
    search_type VARCHAR(256),
    search_id INTEGER,
    context VARCHAR(256),
    version INTEGER,
    description TEXT,
    -- File references
);

Relaciones y Claves Foráneas

  • Project -> Task: Un proyecto tiene múltiples tareas
  • Task -> Snapshot: Las tareas tienen múltiples snapshots
  • Login -> Task: Los usuarios están asignados a tareas
  • SearchType -> SObject: Tipos de búsqueda definen esquemas dinámicos

Sistema de Configuración XML

Definición de SObject

<!-- src/config/sthpw/sobject/project.xml -->
<search_type name="project">
    <column name="code" type="string" key="true"/>
    <column name="title" type="string"/>
    <column name="description" type="text"/>
    <column name="project_type" type="string"/>
    <column name="status" type="string"/>
    <column name="metadata" type="text"/>
    
    <!-- Relationships -->
    <relationship type="has_many" to="task" on="project_code"/>
    <relationship type="has_many" to="snapshot" on="project_code"/>
</search_type>

🔌 Sistema de Plugins

Arquitectura de Plugins

plugins/
├── tactic_enterprise/          # Plugin empresarial
├── tactic_vfx/               # Plugin VFX especializado
├── custom_widgets/           # Widgets personalizados
└── third_party/              # Integraciones de terceros

Plugin Manager

  • PluginLoader: Carga dinámica de plugins
  • DependencyManager: Gestión de dependencias entre plugins
  • PluginRegistry: Registro central de plugins activos

🚀 Sistema de Ejecución y Despliegue

Startup Sequence

# 1. Inicialización del entorno
TacticInit.set_environment()

# 2. Carga de configuración
Config.load_config()

# 3. Inicialización de base de datos
DatabaseInit.initialize()

# 4. Carga de plugins
PluginLoader.load_plugins()

# 5. Inicialización de web framework
WebContainer.start()

Process Management

  • Multiprocessing: Soporte para múltiples procesos workers
  • Thread Pool: Pool de threads para handling concurrente
  • Load Balancing: Configuración de balanceo de carga

🔧 Configuración Avanzada

Database Pool Configuration

<database>
    <vendor>PostgreSQL</vendor>
    <server>localhost</server>
    <port>5432</port>
    <user>postgres</user>
    <password>encrypted_password</password>
    <pool_max_connections>20</pool_max_connections>
    <pool_min_connections>5</pool_min_connections>
    <connection_timeout>30</connection_timeout>
</database>

Security Configuration

<security>
    <version>2</version>
    <ticket_expiry>10 hour</ticket_expiry>
    <max_failed_attempts>5</max_failed_attempts>
    <lockout_duration>30 minutes</lockout_duration>
    <password_policy>strong</password_policy>
    <session_timeout>8 hours</session_timeout>
</security>

📊 Performance Optimizations

Query Optimization

  • Index Strategy: Índices automáticos basados en patrones de consulta
  • Query Cache: Caching de consultas frecuentes
  • Connection Pooling: Pool de conexiones optimizado
  • Lazy Loading: Carga diferida de relaciones

Memory Management

  • Object Pooling: Reutilización de objetos frecuentes
  • Garbage Collection: Tuning de GC para Python
  • Memory Profiling: Herramientas de profiling integradas

🔄 Patrones de Diseño Avanzados

Event-Driven Architecture

# Sistema de eventos central
class EventManager:
    @staticmethod
    def register_handler(event_type, handler):
        # Registro de event handlers
        
    @staticmethod
    def trigger_event(event_type, data):
        # Disparo de eventos

Plugin Architecture

  • Strategy Pattern: Plugins implementan diferentes estrategias
  • Observer Pattern: Plugins observan eventos del sistema
  • Factory Pattern: Creación dinámica de componentes de plugins

🔍 Monitoring y Debugging

Logging System

# Logging jerárquico por componente
import logging

# Business logic logging
business_logger = logging.getLogger('pyasm.biz')

# Security logging
security_logger = logging.getLogger('pyasm.security')

# Performance logging
perf_logger = logging.getLogger('pyasm.performance')

Performance Metrics

  • Response Times: Métricas de tiempo de respuesta
  • Database Queries: Estadísticas de consultas
  • Memory Usage: Monitoreo de consumo de memoria
  • Error Rates: Tasas de error por componente

🧪 Testing Framework

Unit Tests

# Estructura de tests
class TestSObject(unittest.TestCase):
    def setUp(self):
        # Setup test database
        
    def test_create_sobject(self):
        # Test de creación de objetos
        
    def test_query_with_filter(self):
        # Test de consultas con filtros

Integration Tests

  • API Tests: Testing de endpoints REST
  • Database Tests: Testing de operaciones CRUD
  • Workflow Tests: Testing de pipelines complejos

🔒 Security Considerations

Authentication Flow

# Flujo de autenticación
1. User provides credentials
2. Authenticate.validate_credentials()
3. Security.create_ticket(login_name)
4. Return login ticket
5. Subsequent requests validate ticket

Authorization Matrix

  • Resource-based: Control por recurso específico
  • Role-based: Control por roles de usuario
  • Attribute-based: Control por atributos dinámicos

🚀 Escalabilidad Considerations

Horizontal Scaling

  • Load Balancer: Configuración de balanceo de carga
  • Database Replication: Replicación de base de datos
  • Cache Layer: Capa de caché distribuida

Vertical Scaling

  • Memory Optimization: Optimización de uso de memoria
  • CPU Optimization: Optimización de CPU-bound operations
  • I/O Optimization: Optimización de operaciones de I/O

Este documento técnico detalla completamente el backend TACTIC, proporcionando el contexto necesario para desarrollo, mantenimiento y extensión del sistema.

Weekly Installs
3
First Seen
Jan 26, 2026
Installed on
opencode3
gemini-cli3
antigravity3
claude-code3
github-copilot3
codex3