Detalle del Skill

meta-diagram-triangulation

Generates both PlantUML and draw.io architecture views from a codebase.

CoincidenciaDirectaRevisado para diagrama de arquitectura
Fuenteopensquilla/opensquillaFuente externa
Instalaciones reportadas21Solo señal de popularidad

Revisar antes de usar

La revisión automática comprueba relevancia, no seguridad ni respaldo. Lee las instrucciones de la fuente antes de usar este Skill.

Vista previa guardada

SKILL.md

Este extracto es una copia guardada durante la revisión. La fuente externa contiene la versión completa y actual.

---
name: meta-diagram-triangulation
description: "Scan a target codebase path, classify the most informative diagram kind, then render it as BOTH a PlantUML source file AND a draw.io XML in parallel, and compose them into a single architecture doc. Use when writing an RFC or onboarding doc and you want a text-friendly (PlantUML) and an editable (drawio) view of the same architecture."
kind: meta
meta_priority: 55
always: false
triggers:
  - "diagram triangulation"
  - "triangulate diagrams"
  - "架构三视图"
  - "出双视图架构图"
provenance:
  origin: opensquilla-original
  license: Apache-2.0
composition:
  steps:
    - id: scan_repo
      kind: agent
      skill: history-explorer
      with:
        task: |
          Scan the target path identified in the user's invocation for
          architectural structure. Extract:
            * Top-level modules / packages under the target path
            * Inter-module import dependencies (who imports who)
            * Hotspot files (most-changed in the last 90 days)
            * Public surface: classes, functions, protocols exported via __init__.py

          User invocation (target path is somewhere in this string):
          {{ inputs.user_message | xml_escape | truncate(400) }}

          Reply with a structured summary, max 1500 chars:
            ## Target path
            <resolved absolute path>

            ## Modules (top-level)
            - <module/>: <one-line description>

            ## Dependencies
            <module> → <module>
            ...

            ## Hotspots
            - <file>: <commit count last 90d>

            ## Public surface
            - <ClassName>: <one-line role>
    - id: classify_kind
      kind: llm_classify
      depends_on: [scan_repo]
      output_choices:
        - class
        - sequence
        - component
        - deploy
        - flow
      with:
        task: |
          Based on this codebase scan, which diagram kind is most informative
          for an architecture doc? Pick ONE of:
            - class: data structures / OO hierarchy dominant
            - sequence: cross-module call flows dominant
            - component: module-level boxes + arrows dominant
            - deploy: infra / process layout dominant
            - flow: data pipeline / staged processing dominant

          Scan output:
          {{ outputs.scan_repo | truncate(1500) }}
    - id: render_plantuml
      kind: agent
      skill: sub-agent
      depends_on: [scan_repo, classify_kind]
      with:
        task: |
          Generate a PlantUML diagram source of kind `{{ outputs.classify_kind }}`
          from this codebase scan. Use idiomatic PlantUML syntax bracketed by
          `@startuml` ... `@enduml`. Aim for 10-20 boxes/arrows; do not over-render.

          Scan output:
          ---
          {{ outputs.scan_repo | truncate(2000) }}
          ---

          Write the source to: `{{ inputs.workspace_dir }}/diagrams/arch.puml`
          (create parent dir if missing; overwrite OK).

          Reply with the absolute output path on a single line, no preamble.
    - id: render_drawio
      kind: agent
      skill: sub-agent
      depends_on: [scan_repo, classify_kind]
      with:
        task: |
          Generate a draw.io XML diagram of kind `{{ outputs.classify_kind }}`
          from this codebase scan. Use valid draw.io XML:
            <mxfile><diagram><mxGraphModel><root>
              <mxCell id="0"/><mxCell id="1" parent="0"/>
              <mxCell id="N" value="..." style="..." vertex="1" parent="1">
                <mxGeometry .../>
              </mxCell>
              <mxCell ... edge="1" source="..." target="..." parent="1">
                <mxGeometry .../>
              </mxCell>
            </root></mxGraphModel></diagram></mxfile>

          Aim for 10-20 boxes/edges to mirror the PlantUML side; layout can be
          simple grid since the user is expected to re-arrange in draw.io.

          Scan output:
          ---
          {{ outputs.sca
Leer la fuente completa en GitHub (abre una página externa)
Contexto

Trabajo relacionado