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