{"id":25055,"plugin_id":"plugin_asdk_app_69c28d6aedac81919502a88c2179e20c","kind":"skill","collection_source":null,"comparison_source":null,"observed_at":"2026-09-30T23:19:08.407Z","digest":"5348a82e023b95d70d5d77e360e8226efd3274207bad61ab6e4011cd6e9667a3","against":5525,"payload":{"name":"export-chess-game","description":"Export the current Chess app game as copy-ready PGN movetext with conservative metadata. Use when the user asks to export, copy, save, share, or convert the current game to PGN. Build from the model-visible SAN history and result, preserve unfinished games with an asterisk, and never treat the current final FEN as a starting-position FEN.","included_files":[{"relative_path":"agents/openai.yaml","size_in_bytes":207}],"skill_md_contents":"---\nname: export-chess-game\ndescription: Export the current Chess app game as copy-ready PGN movetext with conservative metadata. Use when the user asks to export, copy, save, share, or convert the current game to PGN. Build from the model-visible SAN history and result, preserve unfinished games with an asterisk, and never treat the current final FEN as a starting-position FEN.\n---\n\n# Export Chess Game\n\n## Inputs\n\nUse the current widget's model-visible `moves`, `phase`, and `outcome`. Use each move's stored SAN exactly. Accept optional header values such as event, site, date, round, or White's name from the user.\n\nIf no widget state is available, ask for the move list. An empty but valid game exports as `*`.\n\n## Workflow\n\n1. Set the result token to `outcome.result` only when the game is finished and an outcome exists. Otherwise use `*`.\n2. Build PGN movetext by pairing SAN entries in order:\n   - Prefix White's move with `1.`, `2.`, and so on.\n   - Place Black's following move after White's move.\n   - Preserve the stored SAN notation for captures, checks, mates, castling, and promotions.\n3. Append the result token exactly once at the end of the movetext.\n4. Include only known or user-supplied tag values. It is safe to identify Black as `Stockfish 18`; use `?` for an unknown White name rather than inventing one.\n5. When the user requests the strict PGN Seven Tag Roster, include unknown values as `?` and an unknown date as `????.??.??`.\n6. Return the PGN in a fenced `pgn` code block. Keep commentary outside the block minimal.\n\n## Boundaries\n\n- Do not invent dates, player names, ratings, event names, move comments, or variations.\n- Do not add `SetUp` or `FEN` tags. Games start from the standard position, while the widget's `fen` is the current or final position.\n- Do not recalculate or normalize SAN when the authoritative move history already supplies it.\n- Do not call `start-game` or write the export to an external service.\n"},"changes":[{"path":"/included_files","type":"changed","before":[],"after":[{"relative_path":"agents/openai.yaml","size_in_bytes":207}]}],"summary":"Fields changed: 1. /included_files.","summary_kind":"deterministic","summary_metadata":{}}