Explorar o código

fix(skills): Address SKILL-RESOURCE-PROTOCOL audit findings

Protocol audit (read-only, 2 reviewers) found all 10 v3.0 skills compliant;
three minor fixes:
- cypress-ops: add the version-context note its 3 sibling -ops skills carry
  (the only one missing it) — proportionate §7 move; no clean live-check
  exists for Cypress API facts, so a note not a verifier
- payloadcms-ops: drop '+ upload' from the collection-template citation
  (the template has no upload field) — §1 citation accuracy
- playwright-ops/triage-flakes.py: add -q/--quiet for parity with the other
  verifier scripts (protocol §10 recommended flag); gates the stderr summary,
  errors still print

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
0xDarkMatter hai 2 semanas
pai
achega
b3ef557d12

+ 4 - 0
skills/cypress-ops/SKILL.md

@@ -10,6 +10,10 @@ metadata:
 
 # Cypress Operations
 
+**Version context (verified against docs.cypress.io, 2026-06):** Cypress 14.x, Test
+Replay (v13+), `cy.session` with `cacheAcrossSpecs`. APIs move — confirm against the live
+docs when a detail is load-bearing.
+
 End-to-end and component testing with Cypress (`cypress`, TS/JS). The runner executes
 tests *inside* a real browser via the **Cypress App** (`cypress open`) or headlessly
 (`cypress run`). The defining mental model: **`cy.*` commands are not promises** — they

+ 1 - 1
skills/payloadcms-ops/SKILL.md

@@ -223,7 +223,7 @@ const { docs } = await payload.find({
 
 | File | Use |
 |------|-----|
-| `assets/collection.config.template.ts` | Heavily commented Payload 3 CollectionConfig starter (access + hooks + fields + upload), with adapt-points marked |
+| `assets/collection.config.template.ts` | Heavily commented Payload 3 CollectionConfig starter (access + hooks + fields), with adapt-points marked |
 
 ---
 

+ 5 - 2
skills/playwright-ops/scripts/triage-flakes.py

@@ -119,6 +119,8 @@ def main(argv=None):
         help="path to Playwright JSON report (default: ./results.json)",
     )
     p.add_argument("--json", action="store_true", help="emit a JSON envelope instead of TSV")
+    p.add_argument("-q", "--quiet", action="store_true",
+                   help="suppress the stderr summary header (errors still print)")
     p.add_argument(
         "-n",
         "--limit",
@@ -195,8 +197,9 @@ def main(argv=None):
     total = len(finds)
     flaky_n = sum(1 for f in finds if f["outcome"] == "flaky")
     unexp_n = sum(1 for f in finds if f["outcome"] == "unexpected")
-    err(f"=== Flake triage: {path.name} ===")
-    err(f"  {total} tests | {flaky_n} flaky | {unexp_n} unexpected | showing {len(capped)} of {len(shown)}")
+    if not args.quiet:
+        err(f"=== Flake triage: {path.name} ===")
+        err(f"  {total} tests | {flaky_n} flaky | {unexp_n} unexpected | showing {len(capped)} of {len(shown)}")
 
     if args.json:
         envelope = {