Collaborate, Innovate, Automate

SharePoint Skills y Archivos SharePoint.md

14 septiembre 2026 SharePoint Governance

El punto de partida

SHAREPOINT.md dicen, SKILLS.md dicen. Lo primero que noté en mi sitio de prueba con Copilot en SharePoint fue que no hay ninguna biblioteca Agent Assets esperando ahí. Ninguna carpeta Skills, nada donde subir archivos. Asumí que tendría que crearla manualmente.

No fue así. Le pedí a Copilot, en el panel de chat, que la configurara. Al principio creó la carpeta AgentAssets, pero luego se quejó de que la opción 'Make "New Folder" command available?' no estaba activada. Sí lo estaba. Tras un breve retraso, siguió adelante y creó la estructura.

Una vez que esa biblioteca existía, instalar una skill es exactamente tan simple como suena. Cogí un permission-report, parte del repositorio sharepoint-skills de la comunidad PnP, descargué el SKILL.md, y lo coloqué en Agent Assets/Skills/permission-report/. Sin paso de registro, sin activación. Copilot la encuentra por el campo name la siguiente vez que algo coincide.

Haciendo la pregunta

Este es el trabajo completo de la skill: una revisión de acceso y uso compartido de solo lectura, escrita como un informe HTML autocontenido, señalando enlaces "Cualquiera", usuarios externos, grupos amplios, y cualquiera que tenga Control total. Antes, para conseguir este tipo de extracción, significaba PnP PowerShell, recorriendo cada lista y elemento, comprobando HasUniqueRoleAssignments. Le pedí a Copilot un informe de permisos del sitio, y lo produjo, a la primera. Alcance correcto, recuentos de resumen sensatos, guardado en una carpeta Access Reports con la convención de nombres que la skill especifica. Genial, y super rápido.

Ampliando la pregunta

El informe no daba nombres, la pertenencia a grupos no estaba desglosada, solo "SiteName Owners: Full Control." Razonable, ya que las propias instrucciones de la skill solo piden capturar "usuarios, grupos, principales de uso compartido y enlaces," no investigar qué contiene cada grupo.

Así que hice una pregunta de seguimiento: quién está realmente en ese grupo. Y aquí es donde salió mal. Copilot respondió, pero no volvió a ejecutar la skill para hacerlo. Me dijo que el grupo tenía cero miembros. Soy miembro de ese grupo. También me dio un enlace al grupo que no resolvía correctamente.

"No tengo esa información," habría sido mejor. La alternativa manual, un script de PnP PowerShell contra el grupo directamente, al menos habría devuelto la lista real de miembros en lugar de inventarla.

Haciendo la misma pregunta dos veces

Entonces ejecuté exactamente la misma solicitud, mismas palabras, sin cambios, dos veces, con unos siete minutos de diferencia.

Misma skill. Mismas palabras. Aproximadamente el triple de contenido revisado la segunda vez, y una estructura de informe distinta, una ejecución añadió una sección narrativa "Findings" que la otra no tenía en absoluto. Nada de la solicitud cambió entre las dos ejecuciones. La interpretación de "todo el sitio" aparentemente sí.

Eso es un problema real en el que una Skill debería ser defendible y repetible. Haces la misma pregunta dos veces y obtienes respuestas materialmente distintas, y no lo es.

Arreglando la skill

Cada arreglo nombraba exactamente lo que se había dejado abierto antes: esta lista exacta de bibliotecas, este orden exacto de secciones, esta comprobación exacta de carpeta que había que omitir. Ese resultó ser el patrón, allí donde la redacción de la propia skill dejaba algo por resolver de cero en cada ejecución, cambiaba con frecuencia, en el momento en que sustituí la formulación abierta por una respuesta fija y nombrada, dejó de hacerlo. Incluí una instrucción para producir la misma estructura de secciones, así como nombres de columna concretos que esperaba como resultado.

SHAREPOINT.md

Vale la pena explicarlo bien, ya que es nuevo y fácil de confundir con las skills. SHAREPOINT.md es un archivo Markdown separado en la misma biblioteca que Copilot lee como contexto permanente antes de cada prompt, no solo cuando se activa una skill. Piensa en él como el README propio del sitio, no las instrucciones de una tarea: para qué es este sitio, su estructura, sus convenciones, quién lo posee.

Después de añadir mis arreglos, la lista de bibliotecas como un hecho declarado en SKILL.md, la instrucción de uso determinista en SKILL.md, ejecuté la prueba de solicitud idéntica una tercera y cuarta vez. El informe volvió casi idéntico, palabra por palabra, ambas veces: Documents, AgentAssets, Site Assets. La sección "Findings" apareció de forma constante en ambas.

Una adición más al archivo SHAREPOINT.md fueron los colores corporativos, que se aplicarán a cada Skill del sitio.

## Conventions
- Use these brand colours for headers, page chrome, and any decorative
  styling in generated reports: slate blue-grey (#5C6B73) and a darker
  navy blue (#1B2A41).
- Do not apply brand colours to risk-coded or status-coded elements —
  leave semantic colour coding (e.g. red/amber/green risk flags) as
  each skill's own instructions define it.

La segunda línea es importante porque las propias instrucciones de Permission Report ya usan el color con significado asociado, rojo para riesgo alto, verde para bajo. Una regla genérica de "usar siempre nuestros colores de marca" podría repintar silenciosamente una señal de riesgo de Control total en un azul corporativo tranquilo en lugar de rojo.

Lo que esto realmente significa

Las skills son un cambio real en quién puede hacer gobernanza de SharePoint. Cada auditoría para la que he escrito PowerShell, alertas, tipos de contenido, term store, permisos, requería a alguien que supiera programar en nombre de la organización. Un propietario de sitio siempre fue el sujeto de esa gobernanza, nunca quien la ejecutaba. Una skill como esta pone una capacidad real directamente en manos de esa persona.

Escribir una skill más como código, con ramas explícitas y condiciones explícitas de rechazo, ayuda. Permission Report ya hace esto bien, "si no hay un alcance más concreto claro, decirlo explícitamente y no adivinar" está tan cerca de una condicional codificada como puede estar una instrucción en lenguaje natural. Pero lo que sí está claro es que varios factores contribuyen a la especificidad del resultado: el lenguaje utilizado, la propia SKILL, y el archivo SHAREPOINT.md.

Así que la conclusión no es "todavía no está lista para auditoría." Es más concreta que eso: la fiabilidad de una skill es una función directa de cuánto te has molestado en fijarla. Cada arreglo en este artículo fue pequeño, específico, y dirigido a una brecha nombrada cada vez. Parece que eso es lo que requiere construir una Skill que puedas presentar en un comité de Gobernanza, mes tras mes.


Cameron Griffiths is a Microsoft 365 consultant based in Valencia, Spain, specialising in SharePoint Online, Power Automate and Microsoft 365 for business. camerongriffiths.com