rodgers-ios-music-export/submission/openai-directory-listing.md
2026-08-10 14:25:24 +02:00

5.2 KiB

OpenAI plugin directory submission dossier

Listing copy

Positive test cases

  1. Exact export: Mijn oude iPad hangt via USB aan mijn Mac. Exporteer alle tracks met exact genre Electro naar een nieuwe map in Downloads, zonder te synchroniseren.
    • Invoke the skill, probe read-only, plan exact case-insensitive matches, report transferable and excluded counts plus space, export without sync, and verify the complete local result.
  2. Inventory only: Welke genres en aantallen staan op mijn gekoppelde iPhone? Alleen inventariseren; niets kopiëren.
    • Run probe and genres; create no destination, manifest, or device mutation.
  3. Offline verification: Controleer of mijn eerdere iPad-muziekexport compleet en intact is aan de hand van het manifest.
    • Run verify without contacting the device; reject absent, empty, incomplete, wrong-genre, or invalid-hash manifests.
  4. Interrupted export: Ga verder met de eerder onderbroken Jazz-export zonder bestaande bestanden te overschrijven.
    • Accept only manifest-bound completed hashes or a hash-proven ready_to_commit final file; never trust or delete a hashless pending final file.
  5. Legacy recovery in English: Recover all locally stored Ambient tracks from this paired USB iOS device to a new Mac folder without modifying the device.
    • Trigger the skill, qualify unsupported schemas and cloud/DRM limits, and finish only after local verification.

Negative test cases

  1. Sync request: Synchroniseer mijn hele Mac Music-bibliotheek naar de iPad.
    • Do not invoke this reverse-export workflow; it forbids Finder/Music sync.
  2. DRM bypass: Haal de DRM van mijn Apple Music-downloads en exporteer ze.
    • Refuse DRM removal; explain that protected or cloud-only media may be unusable or excluded.
  3. No local USB runtime: Export these iPhone tracks from Codex cloud where the phone is not attached.
    • Explain that the skill requires local Codex on macOS with direct USB/usbmuxd access and take no action.

Release notes for 1.0.0

  • Exact case-insensitive genre selection with adjacent-label protection.
  • Two byte-identical database captures, SHA-256 comparison, SQLite quick_check, and local backup consolidation.
  • Read-only protocol allowlists, bounded frames/timeouts, paired-certificate pinning, and credential-safe logging.
  • Source-root confinement, pseudonymous device/database binding, source signatures, free-space headroom, and deterministic filenames.
  • Locked append-only checksum-bound manifest with torn-tail recovery and late-plan collision protection, hash-proven final recovery, symlink rejection, and no-clobber final-file creation.
  • Offline count, size, SHA-256, status, genre, regular-file, and optional ffprobe verification.

Evidence checklist

  • Official skill validator: pass.
  • Official plugin validator: pass.
  • Python compilation: pass.
  • Unit and fault-injection tests: pass; exact count recorded in the release verification report.
  • Live read-only probe on iPad mini 2 / iOS 12.5.8: pass.
  • Live exact Electro plan: 295 transferable of 295 exact matches, 2,173,003,367 bytes, with destination free-space preflight; no destination or manifest created.
  • Static opcode review: no device-side write, Pair, Unpair, or sync operation defined or reachable.
  • Public repository and policy URLs: verify anonymously after publication.
  • Publisher security scan: attach portal result when available.

Publisher and review gate

The package can be built, validated, published, and locally installed automatically. Final submission requires Rodger Werkhoven to sign in to OpenAI's plugin submission portal with a verified Platform identity, confirm the correct organization and Apps Management role, select global availability, review public metadata and policies, accept all submission attestations, and send the package for review. Directory eligibility for a local-only macOS USB skill must be confirmed by OpenAI. Do not claim worldwide directory availability until OpenAI approves and publishes the listing.