From cfb12ce46c1868eda4bfd3dd1a95d7552529d82d Mon Sep 17 00:00:00 2001 From: Brendan Walsh Date: Wed, 6 May 2026 16:16:46 +0000 Subject: [PATCH] chore: migrate SynapseML skills to Copilot path ## Summary Move the remaining SynapseML repo skill from `.agents/skills/` to `.github/skills/` so Copilot CLI can discover all repo-versioned skills from the documented project-skill path. Add README pointers under `.agents/` for tools or agents that inspect the older convention. ## Prompting Intent The engineer asked to migrate everything to the correct Copilot CLI path and suggested keeping a generic agents pointer. The goal was to make existing skills discoverable by Copilot while avoiding future confusion about `.agents/skills`. ## Linked Sources - User request in current session: migrate everything to the correct path for Copilot CLI and keep a generic agents pointer. - Skill location reference: /home/brwals/.copilot/installed-plugins/copilot-toolkit-marketplace/common/skills/create-skill/references/REFERENCE.md - Prior merged skill PR: https://github.com/microsoft/SynapseML/pull/2558 ## Rationale `.github/skills//` is the documented Copilot CLI project-skill location. Keeping only README pointers under `.agents/` preserves a breadcrumb for other agent conventions without leaving duplicate or stale `SKILL.md` files in a path Copilot CLI may not load. --- .agents/README.md | 7 +++++++ .agents/skills/README.md | 10 ++++++++++ {.agents => .github}/skills/code-review/SKILL.md | 10 +++++----- 3 files changed, 22 insertions(+), 5 deletions(-) create mode 100644 .agents/README.md create mode 100644 .agents/skills/README.md rename {.agents => .github}/skills/code-review/SKILL.md (85%) diff --git a/.agents/README.md b/.agents/README.md new file mode 100644 index 0000000000..ce277d7b7f --- /dev/null +++ b/.agents/README.md @@ -0,0 +1,7 @@ +# Agent configuration + +Copilot CLI discovers project skills from `.github/skills//`. + +Do not add `SKILL.md` files under `.agents/skills/`. Keep repo-versioned skills in `.github/skills/` so Copilot CLI can load them consistently. + +This directory remains only as a compatibility pointer for agents or tools that inspect `.agents`. diff --git a/.agents/skills/README.md b/.agents/skills/README.md new file mode 100644 index 0000000000..b8e9c59105 --- /dev/null +++ b/.agents/skills/README.md @@ -0,0 +1,10 @@ +# Skills moved + +Repo-versioned skills for Copilot CLI live in `.github/skills/`. + +Use these paths instead: + +- `.github/skills/code-review/` +- `.github/skills/synapseml-local-setup/` + +Do not add `SKILL.md` files in this directory. diff --git a/.agents/skills/code-review/SKILL.md b/.github/skills/code-review/SKILL.md similarity index 85% rename from .agents/skills/code-review/SKILL.md rename to .github/skills/code-review/SKILL.md index 62138000fe..84ca87b6aa 100644 --- a/.agents/skills/code-review/SKILL.md +++ b/.github/skills/code-review/SKILL.md @@ -1,6 +1,6 @@ --- name: code-review -description: Quick review checklist for python and scala code changes before callings it done. +description: Review SynapseML Python and Scala code changes. Use before finalizing PR reviews or implementation changes to check security, compatibility, style, generated code, and targeted tests. --- # Code Review @@ -21,8 +21,8 @@ Use this skill when reviewing SynapseML changes. Apply when changes touch serialization, I/O, network, or authentication code. ### Deserialization (CWE-502) -- [ ] No raw `ObjectInputStream.readObject()` — use `SafeObjectInputStream` with an allowlist -- [ ] `resolveClass` allowlist validates array component types — never allowlist the `[` prefix +- [ ] No raw `ObjectInputStream.readObject()`: use `SafeObjectInputStream` with an allowlist +- [ ] `resolveClass` allowlist validates array component types. Never allowlist the `[` prefix directly; array handling must extract and validate the component class name - [ ] `resolveProxyClass` is overridden to block or validate dynamic proxy interfaces - [ ] Allowlist uses package-prefix matching, not blocklisting @@ -46,7 +46,7 @@ Apply when changes modify public classes, traits, or companion objects. ### Binary Compatibility (JVM) - [ ] No method signature changes on existing public methods (default parameters - generate synthetic bridges — use explicit overloads instead) + generate synthetic bridges; use explicit overloads instead) - [ ] No removed or renamed public classes, traits, or objects - [ ] Companion object `extends DefaultParamsReadable[T]` preserved if it existed @@ -61,7 +61,7 @@ Apply when changes modify public classes, traits, or companion objects. - [ ] `Wrappable` trait mixed in if the class needs a Python wrapper - [ ] `SynapseMLLogging` trait mixed in; `logClass()` called in constructor - [ ] No wildcard imports where explicit imports suffice (`java.io._` → named imports) -- [ ] No RDD API usage — DataFrame/Dataset only +- [ ] No RDD API usage. Use DataFrame/Dataset only - [ ] Lines ≤ 120 chars, files ≤ 800 lines ## Python Checklist