Token导航 LogoToken导航TokenDH.com
前端设计权限需确认github未标认证来源可访问许可证需确认审计通过

powerapps-yamlpowerapps YAML 命令行

Agent Skill

powerapps-yaml 用于处理 GitHub 仓库、Issue、Pull Request 和代码协作信息,适合在 Codex、Claude、Cursor、Gemini CLI 中需要围绕仓库状态、代码变更或协作事项进行整理时使用。可结合来源仓库、安装命令和原始 README 继续核验具体用法。安装前建议确认权限范围、维护状态,以及是否会触发联网、命令执行或文件读写。

总安装

874

周安装

35

GitHub Stars

公开资料未说明

下载量

283
CodexClaudeCursorGemini CLI

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

GitHub

来源数

2

许可证

unknown

最后核验

2026-05-01

来源状态

来源可访问

安装方式

通过对话安装

复制提示词发给支持本地命令或 Skills 的 AI 助手,先确认命令和权限,再让它执行。

请帮我安装这个 Agent Skill:powerapps-yaml(powerapps YAML 命令行)
来源仓库:https://github.com/rohbunny01/powerapps-skills
仓库路径:skills/powerapps-yaml
安装命令:
npx skills add https://github.com/rohbunny01/powerapps-skills --skill powerapps-yaml
安装前请先检查当前环境是否支持对应 CLI,并向我确认将要执行的命令、安装目录、联网范围和文件读写权限;确认后再执行。

命令行安装

复制命令到本机终端执行。该命令会通过 npx skills 从第三方来源获取 Skill;本站只展示命令,不托管安装包,也不自动执行。

skills.shnpx skills
npx skills add https://github.com/rohbunny01/powerapps-skills --skill powerapps-yaml

简介

powerapps-yaml 用于处理 GitHub 仓库、Issue、Pull Request 等协作信息,适合在代码协作场景中整理变更与状态。

  • 适用于围绕仓库状态、代码变更或协作事项的信息组织与汇总。
  • 通过 npx skills add 命令从 GitHub 仓库安装并使用。
  • 安装前应确认权限范围、维护状态及是否执行命令或访问文件。
  • 具体功能需参考原始 README 进一步验证。

SKILL.md

Power Apps YAML — Guía Completa para Vibe Coding

Cuándo usar

  • Al generar código YAML para pegar en Power Apps Studio
  • Al crear o modificar pantallas de Power Apps
  • Al convertir diseños a controles Power Apps modernos
  • Al trabajar con SharePoint como backend

🔑 Estructura Base (pa.yaml Schema v3)

La estructura OBLIGATORIA para que Power Apps Studio acepte el YAML via "Paste code":

Screens:
    NombrePantalla:
        Properties:
            Fill: =SurfaceAlt
            OnVisible: |-
                =Set(varEjemplo, "hola")
        Children:
            - NombreControl:
                Control: TipoControl
                Variant: VarianteOpcional
                Properties:
                    X: =0
                    Y: =0
                    Width: =Parent.Width
                    Height: =100
                Children:
                    - ControlHijo:
                        Control: Text
                        Properties:
                            Text: ="Hola mundo"

Reglas de estructura

  1. Top-level: Siempre empieza con Screens:
  2. Screen name: Debe coincidir EXACTAMENTE con el nombre de la pantalla en Power Apps Studio
  3. No usar Control: Screen: Las pantallas se definen directamente bajo Screens:, SIN propiedad Control
  4. Children es un array: Cada hijo comienza con - NombreControl:
  5. Control y Variant: Se definen dentro de cada hijo, NO en la pantalla
  6. Valores con =: TODAS las propiedades llevan = al inicio: Text: ="Hola", X: =0

🚨 Propiedades de Controles Modernos (CRÍTICO)

Power Apps usa controles modernos que tienen nombres DIFERENTES a los clásicos. Usar los nombres incorrectos produce error PA2108: Unknown property.

Control Text (Label)

❌ Clásico (NO usar)✅ Moderno (USAR)
ColorFontColor
FontWeightWeight
- lblEjemplo:
    Control: Text
    Properties:
        X: =0
        Y: =0
        Width: =200
        Height: =40
        Text: ="Hola"
        FontColor: =RGBA(0, 0, 0, 1)
        Size: =14
        Weight: =FontWeight.Bold
        Align: =Align.Center
        VerticalAlign: =VerticalAlign.Middle

Control Button

❌ Clásico (NO usar)✅ Moderno (USAR)
FillBasePaletteColor
ColorFontColor
SizeFontSize
RadiusTopLeft/Right/etc*(no existe, usa Fluent theme)*
- btnEjemplo:
    Control: Button
    Properties:
        X: =0
        Y: =0
        Width: =200
        Height: =44
        Text: ="Click"
        BasePaletteColor: =BrandAccent
        FontColor: =TextOnAccent
        FontSize: =14
        FontWeight: =FontWeight.Semibold
        Appearance: ='ButtonCanvas.Appearance'.Primary
        OnSelect: =Notify("Clickeado")

Valores de Appearance:

  • 'ButtonCanvas.Appearance'.Primary — botón principal
  • 'ButtonCanvas.Appearance'.Secondary — botón secundario
  • 'ButtonCanvas.Appearance'.Transparent — transparente (ideal para overlays y back buttons)

Control TextInput

❌ Clásico (NO usar)✅ Moderno (USAR)
DefaultValue
HintText / PlaceholderText*(no existe en moderno)*
Format*(no existe en moderno)*
- txtEjemplo:
    Control: TextInput
    Properties:
        X: =0
        Y: =0
        Width: =200
        Height: =44
        Value: =""
        Mode: =TextMode.MultiLine  # Opcional

Control DatePicker

❌ Clásico (NO usar)✅ Moderno (USAR)
DefaultDateSelectedDate
- dpEjemplo:
    Control: DatePicker
    Properties:
        X: =0
        Y: =0
        Width: =200
        Height: =44
        SelectedDate: =Today()

Control Dropdown

- ddEjemplo:
    Control: Dropdown
    Properties:
        X: =0
        Y: =0
        Width: =200
        Height: =44
        Items: =["Opción 1", "Opción 2", "Opción 3"]
        DefaultSelectedItems: =["Opción 1"]
        OnChange: =Set(varSeleccion, Self.Selected.Value)

Para items numéricos:

Items: =Sequence(24, 0)              # 0 a 23
Items: =[0, 5, 10, 15, 20, 25, 30]   # Lista explícita

Control GroupContainer

❌ NO soportado✅ Alternativa
OnSelectUsar un Button overlay transparente dentro del container
RadiusTopLeft/Right/etc*(no existe en modernos)*
- containerEjemplo:
    Control: GroupContainer
    Variant: ManualLayout
    Properties:
        X: =0
        Y: =0
        Width: =200
        Height: =100
        Fill: =Surface
        DropShadow: =DropShadow.Light

Para hacer un container clickeable:

Children:
    - lblContenido:
        Control: Text
        Properties:
            Text: ="Mi contenido"
    - btnOverlay:
        Control: Button
        Properties:
            X: =0
            Y: =0
            Width: =Parent.Width
            Height: =Parent.Height
            Text: =""
            Appearance: ='ButtonCanvas.Appearance'.Transparent
            OnSelect: =Navigate(OtraPantalla, ScreenTransition.None)

📊 Gallery — Reglas Críticas

Regla #1: Variant es OBLIGATORIO

- galEjemplo:
    Control: Gallery
    Variant: BrowseLayout_Flexible_SocialFeed_ver5.0  # OBLIGATORIO

Error si falta: PA1011: The keyword 'Variant' is required but is missing or empty

Regla #2: Items de SharePoint directo → funciona bien

Items: =MiListaSP

Regla #3: Items de colección → usar ForAll con esquema explícito

⚠️ PROBLEMA: Cuando Items apunta a una colección creada con GroupBy + AddColumns, los controles dentro de la gallery muestran errores ❌ porque Power Apps no puede inferir el esquema.

SOLUCIÓN: Usar ForAll con registros de forma explícita {campo: valor}:

OnVisible: |-
    =ClearCollect(
        colRanking,
        ForAll(
            GroupBy(colRegistros, Title, Email, Registros),
            {
                Nombre: ThisRecord.Title,
                EmailUsuario: ThisRecord.Email,
                Puntos: Sum(Registros, Puntos),
                Sesiones: CountRows(Registros)
            }
        )
    )

Regla #4: GroupBy — NO usar comillas en columnas

# ❌ MAL — "Registros" se interpreta como texto
GroupBy(tabla, "Title", "Email", "Registros")

# ✅ BIEN — identificadores sin comillas
GroupBy(tabla, Title, Email, Registros)

Regla #5: No agrupar por columnas que cambian

Si un usuario puede cambiar de equipo, NO agrupar por Equipo porque aparecerá duplicado. Tomar el equipo del último registro:

EquipoUsuario: Last(Registros).Equipo

Regla #6: Acceder a tabla agrupada dentro de ForAll

# ❌ MAL — ThisRecord.Registros no resuelve
Sum(ThisRecord.Registros, Puntos)

# ✅ BIEN — acceso directo a la columna de grupo
Sum(Registros, Puntos)

Template completo para Gallery con colección:

- galRanking:
    Control: Gallery
    Variant: BrowseLayout_Flexible_SocialFeed_ver5.0
    Properties:
        X: =16
        Y: =188
        Width: =Parent.Width - 32
        Height: =Parent.Height - 204
        Items: =SortByColumns(colRanking, "Puntos", SortOrder.Descending)
        TemplatePadding: =6
        TemplateSize: =80
        Fill: =RGBA(0, 0, 0, 0)
    Children:
        - CardItem:
            Control: GroupContainer
            Variant: ManualLayout
            Properties:
                Width: =Parent.Width
                Height: =74
                Fill: =Surface
                DropShadow: =DropShadow.Light
            Children:
                - lblNombre:
                    Control: Text
                    Properties:
                        X: =16
                        Y: =12
                        Width: =Parent.Width - 140
                        Height: =24
                        Text: =ThisItem.Nombre

🚀 Patrón de Caché Local (Optimización)

Problema

Cada pantalla hace queries independientes a SharePoint → lento y redundante.

Solución: Centro de caché en Screen_Inicio

# Screen_Inicio.OnVisible — carga datos UNA VEZ
OnVisible: |-
    =Set(varUsuarioActual, User().FullName);
    Set(varEmailActual, User().Email);
    ClearCollect(
        colRegistrosMes,
        Filter(
            MiListaSP,
            Month(Fecha) = Month(Today()),
            Year(Fecha) = Year(Today())
        )
    );
    Set(varMisRegistros, Filter(colRegistrosMes, Email = varEmailActual));
    Set(varMiEquipo, LookUp(Miembros, Email = varEmailActual, Equipo))

Reutilizar en otras pantallas

# Screen_Ranking — usa colRegistrosMes, NO re-consulta SharePoint
OnVisible: |-
    =ClearCollect(
        colRanking,
        ForAll(
            GroupBy(colRegistrosMes, Title, Email, Registros),
            { Nombre: ThisRecord.Title, Puntos: Sum(Registros, Puntos) }
        )
    )

# Screen_Equipos — usa varMiEquipo ya cacheado
OnVisible: |-
    =Set(varVistaEquipos, "Lista")
    # varMiEquipo ya está cargado desde Screen_Inicio

Después de guardar un registro — actualizar caché local

# En btnGuardar.OnSelect, después del Patch:
Patch(MiListaSP, Defaults(MiListaSP), { ... });
Collect(colRegistrosMes, { ...mismo registro... });
Navigate(Screen_Inicio, ScreenTransition.None)

Resultado: ~7 queries SP → 2 queries (1 ClearCollect + 1 LookUp)


🎨 Colores del Tema (App.Formulas)

Definir paleta global en App > Formulas:

BrandPrimary = RGBA(30, 41, 59, 1);
BrandAccent = RGBA(255, 107, 53, 1);
BrandAccentLight = RGBA(255, 107, 53, 0.08);
Surface = RGBA(255, 255, 255, 1);
SurfaceAlt = RGBA(245, 247, 252, 1);
TextPrimary = RGBA(15, 23, 42, 1);
TextSecondary = RGBA(100, 116, 139, 1);
TextOnAccent = RGBA(255, 255, 255, 1);
StatusSuccess = RGBA(16, 185, 129, 1);
StatusWarning = RGBA(234, 179, 8, 1);
StatusError = RGBA(239, 68, 68, 1);

⏰ Patrón: Selector de Hora con Dropdowns

El DatePicker solo selecciona fecha. Para hora, usar pares de Dropdowns:

# Horas (0-23)
- ddHoraH:
    Control: Dropdown
    Properties:
        Items: =Sequence(24, 0)
        DefaultSelectedItems: =[8]

# Separador ":"
- lblSep:
    Control: Text
    Properties:
        Text: =":"
        Weight: =FontWeight.Bold

# Minutos (intervalos de 5)
- ddHoraM:
    Control: Dropdown
    Properties:
        Items: =[0, 5, 10, 15, 20, 25, 30, 35, 40, 45, 50, 55]
        DefaultSelectedItems: =[0]

Construir DateTime desde dropdowns:

DateAdd(
    DateAdd(Today(), Value(ddHoraH.Selected.Value), TimeUnit.Hours),
    Value(ddHoraM.Selected.Value),
    TimeUnit.Minutes
)

Calcular duración:

With(
    {
        mins: (Value(ddFinH.Selected.Value) * 60 + Value(ddFinM.Selected.Value)) -
              (Value(ddInicioH.Selected.Value) * 60 + Value(ddInicioM.Selected.Value))
    },
    If(mins > 0, Text(RoundDown(mins / 60, 0)) & "h " & Text(Mod(mins, 60)) & "min", "⚠️ Error")
)

📋 Proceso de Paste Code

  1. Crear la pantalla manualmente en Power Apps Studio
  2. Asegurar que el nombre coincide con el definido en el YAML
  3. Copiar TODO el contenido del archivo YAML (incluyendo Screens:)
  4. Seleccionar la pantalla en el Tree View
  5. Pegar con Ctrl+V o Click derecho → Paste code
  6. Si hay errores de design-time por colecciones en OnVisible, ejecutar (Play ▶️) para que se creen

⚠️ Tabla de errores comunes

ErrorCausaSolución
PA2108: Unknown property 'Color'Propiedad clásicaUsar FontColor
PA2108: Unknown property 'FontWeight' en TextPropiedad clásicaUsar Weight
PA2108: Unknown property 'Fill' en ButtonPropiedad clásicaUsar BasePaletteColor
PA2108: Unknown property 'Default' en TextInputPropiedad clásicaUsar Value
PA2108: Unknown property 'DefaultDate'Propiedad clásicaUsar SelectedDate
PA2108: Unknown property 'OnSelect' en GroupContainerNo soportadoButton overlay transparente
PA1011: 'Variant' is required en GalleryFalta VariantAgregar Variant: BrowseLayout_Flexible_SocialFeed_ver5.0
PA2109: Unknown variant 'X' en GalleryVariant inválidoUsar BrowseLayout_Flexible_SocialFeed_ver5.0
YamlInvalidSyntax: PaModuleEstructura incorrectaUsar Screens: como top-level
Gallery con ❌ en controlesColección sin esquema inferibleUsar ForAll + registros explícitos
Nombre duplicado en rankingGroupBy por columna variableNo agrupar por campos que cambian
"Registros" error: textComillas en GroupByQuitar comillas: GroupBy(t, Col, Grupo)

🧩 Mapeo rápido: Clásico → Moderno

ControlPropiedad ClásicaPropiedad Moderna
TextColorFontColor
TextFontWeightWeight
ButtonFillBasePaletteColor
ButtonColorFontColor
ButtonSizeFontSize
TextInputDefaultValue
TextInputHintText*(no existe)*
DatePickerDefaultDateSelectedDate
GroupContainerOnSelect*(no existe)*
TodosRadiusTopLeft etc.*(no existe)*

💡 Tips Power Fx

  • Separadores: Usar comas (,) como separadores — la config regional del entorno define si Power Apps espera , o ;
  • Strings multilínea: Usar |- en YAML seguido de la fórmula con = al inicio
  • SharePoint Choice columns: Al hacer Patch, usar {Value: "texto"} para columnas de tipo Choice
  • SharePoint list names: Verificar el nombre EXACTO de la lista (con números si hay duplicados, ej: MiLista1)
  • Colecciones tipadas: Siempre usar ForAll({campo: valor}) en vez de AddColumns para colecciones que alimentan Gallery
  • Variables globales: Cachear datos compartidos en Screen_Inicio.OnVisible y reutilizar en otras pantallas

适合场景

01

用户想查找某类 Agent Skill 时

02

需要根据任务场景推荐可安装能力包时

03

需要对比不同来源的安装命令和来源信息时

能力概览

能力 1

按任务关键词查找相关 Skills

能力 2

展示可复制的安装命令

能力 3

保留来源站点、仓库和原始说明,方便继续核验

能力 4

展示第三方安全扫描或审计结果

安装后应在对应宿主中按原始 README 的触发条件使用;具体调用方式请以来源页面和 README 为准。

平台分布

Codex

38.21%
按下载量换算108

Claude

31.08%
按下载量换算88

Cursor

18.3%
按下载量换算52

Gemini CLI

8.46%
按下载量换算24

安全审计

Gen Agent Trust Hub

通过

Socket

通过

Snyk

通过

权限和风险

权限需确认

当前来源未能明确判断权限范围,默认进入异常复核队列。

安装前确认

本站仅展示第三方公开信息,不托管安装包,不提供自动安装或运行环境。安装前应自行审查源码、依赖和命令行为。当前只有一个来源,正式发布前建议补源仓库或其他目录站核验。

来源信息

继续浏览同类 Skills