Administración

Configuración global de la plataforma: personas, roles conceptuales, ciclo de vida e integraciones.

Cargando…

  • Platform Admin

    Gobierno global de la plataforma, no pertenece a un proyecto concreto.

  • Project Manager

    Responsable de uno o varios proyectos.

  • Developer

    Acceso principalmente a los proyectos en los que participa.

  • Designer

    Acceso principalmente a los proyectos en los que participa.

  • Finance

    Acceso a información económica según permisos.

  • Member

    Usuario interno con acceso limitado.

  1. 01Oportunidad
  2. 02Briefing
  3. 03Estimación
  4. 04Presupuesto
  5. 05Presupuesto aprobado
  6. 06Alta del proyecto
  7. 07Planificación
  8. 08Diseño
  9. 09Prototipado
  10. 10Desarrollo
  11. 11Integraciones
  12. 12QA
  13. 13Producción
  14. 14Garantía
  15. 15Mantenimiento
  16. 16Cierre
  • HoldedClientes, presupuestos y facturación
    Pendiente
  • GitHubActividad técnica y desarrollo
    Pendiente
  • Claude / Claude CodeEventos técnicos estructurados
    Pendiente
  • FigmaDiseños y prototipos por proyecto
    Pendiente

Registra automáticamente las sesiones de desarrollo. Cada equipo usa un token personal revocable; el contenido se sanitiza antes de guardarse.

Sin tokens generados

Genera un token por equipo de developer para activar la captura de sesiones.

Instalación en el equipo del developer

  1. Genera un token y guárdalo como variable de entorno MYP_CC_TOKEN.
  2. Crea el script de hook y regístralo en la configuración de Claude Code.
  3. En el proyecto de MyP, registra la ruta local del repositorio para que las sesiones se asocien automáticamente.

Script de hook

// ~/.claude/hooks/myp-command-center.mjs
// Envía cada evento de Claude Code a MyP Command Center.
const ENDPOINT = "https://myp-compass.lovable.app/api/public/claude-code/events";
const TOKEN = process.env.MYP_CC_TOKEN;

let raw = "";
process.stdin.on("data", (chunk) => (raw += chunk));
process.stdin.on("end", async () => {
  const hook = JSON.parse(raw || "{}");
  const body = {
    event: hook.hook_event_name,
    session_id: hook.session_id,
    cwd: hook.cwd,
    transcript_path: hook.transcript_path,
    model: hook.model?.id ?? hook.model,
    occurred_at: new Date().toISOString(),
    device: process.env.HOSTNAME || process.env.COMPUTERNAME,
    prompt: hook.prompt,
    message: hook.message ?? hook.last_assistant_message,
    tool_name: hook.tool_name,
    command: hook.tool_input?.command,
    files: [hook.tool_input?.file_path].filter(Boolean),
    error: hook.tool_response?.error,
    reason: hook.reason,
  };
  await fetch(ENDPOINT, {
    method: "POST",
    headers: { "Content-Type": "application/json", Authorization: `Bearer ${TOKEN}` },
    body: JSON.stringify(body),
  }).catch(() => {});
  process.exit(0);
});

Configuración de hooks

// ~/.claude/settings.json
{
  "hooks": {
    "SessionStart":     [{ "hooks": [{ "type": "command", "command": "node ~/.claude/hooks/myp-command-center.mjs" }] }],
    "UserPromptSubmit": [{ "hooks": [{ "type": "command", "command": "node ~/.claude/hooks/myp-command-center.mjs" }] }],
    "PostToolUse":      [{ "hooks": [{ "type": "command", "command": "node ~/.claude/hooks/myp-command-center.mjs" }] }],
    "Stop":             [{ "hooks": [{ "type": "command", "command": "node ~/.claude/hooks/myp-command-center.mjs" }] }],
    "SessionEnd":       [{ "hooks": [{ "type": "command", "command": "node ~/.claude/hooks/myp-command-center.mjs" }] }]
  }
}

Administración avanzada: sin datos todavía

Esta área del proyecto está reservada en el routing y se implementará en una fase posterior.

  • Auditoría de acciones y eventos de sistema
  • Invitaciones por email con enlace de alta