[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M7CS9XZ1YWRY3VACD2CVXPWT":3,"skill-same:01M7CS9XZ1YWRY3VACD2CVXPWT":56},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":16,"categories":17,"keywords":18,"publishedAt":19,"linkOnly":20,"markdownContent":21,"markdownBody":22,"frontMatter":23,"refName":28,"commitSha":29,"skillDirectory":30,"forksCount":31,"repositoryHtmlUrl":32,"repositoryHomepageUrl":6,"ownerHtmlUrl":33,"ownerBlogUrl":6,"ownerDescription":34,"updatedAt":35,"install":36,"resources":49},"01M7CS9XZ1YWRY3VACD2CVXPWT","spectrum",null,"Build messaging agents and apps with Spectrum — Photon's unified messaging SDK. Write your handler logic once and ship it across iMessage, WhatsApp Business, the terminal, or a custom platform. Spectrum is multi-platform by design and is becoming multi-language; the current SDK is `spectrum-ts` (TypeScript), with additional language SDKs planned. Use this skill for any Spectrum question — quickstart, multi-platform setup, receiving messages, content builders, spaces and users, reactions and replies, platform narrowing, the built-in providers (iMessage cloud\u002Flocal\u002Fdedicated with message effects, Terminal TUI test harness, WhatsApp Business 1:1), custom event streams, graceful shutdown, building your own provider with `definePlatform`, and the production architecture patterns Photon uses internally to ship agents that live natively inside IM apps (five-stage inbound pipeline with debounce → batch flush → mark as read → generate → send, in-flight cancellation with abort signals, drain-in-handler, carry-forward, idempotent retries via stable client GUIDs and a startIndex resume cursor, per-resource memory scope `resourceId` vs `threadId`, durable job-failure audit log). This is the entry point for the skill; consult the topic files in this directory for full reference. Keywords: spectrum, spectrum-ts, photon, unified messaging, multi-platform, multi-language, im agent, messaging agent, imessage, whatsapp, whatsapp business, terminal, tuichat, definePlatform, custom platform, platform provider, platform narrowing, app.messages, Spectrum(), space, send, reply, react, tapback, typing indicator, responding, startTyping, stopTyping, content builder, text, attachment, voice, contact, richlink, poll, group, custom content, message effects, bubble effect, screen effect, line model, dedicated line, shared pool, custom events, app.stop, lifecycle, SIGINT, graceful shutdown, message queue, debounce, batch, in-flight, cancellation, abort controller, carry forward, idempotent retry, client guid, dedup, deduplication, startIndex, resume cursor, working memory, resourceId, threadId, per-resource memory, job failure, audit log, race condition, worker crash, retry, pg-boss, queue worker, conversational agent, chat agent, native messaging, agent architecture, production agent, spectrum patterns, best practices.","om-scogo\u002Fskillsh-scraper","om-scogo","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F160466840?v=4","01M79AWB6DFVCQ7RK70CS34B96","Om Achrekar","01M79AWB6ZM9SKR8KDH1WSSM22",0,"MIT","https:\u002F\u002Fgithub.com\u002Fom-scogo\u002Fskillsh-scraper\u002Fblob\u002Fmain\u002Fdata\u002Fskills\u002Fphoton-hq-skills\u002Fspectrum\u002FSkill.md",[],[],"2026-11-15 14:19:17",false,"---\nname: spectrum\ndescription: >\n  Build messaging agents and apps with Spectrum — Photon's unified messaging SDK. Write your handler logic\n  once and ship it across iMessage, WhatsApp Business, the terminal, or a custom platform. Spectrum is\n  multi-platform by design and is becoming multi-language; the current SDK is `spectrum-ts` (TypeScript), with\n  additional language SDKs planned. Use this skill for any Spectrum question — quickstart, multi-platform setup,\n  receiving messages, content builders, spaces and users, reactions and replies, platform narrowing, the\n  built-in providers (iMessage cloud\u002Flocal\u002Fdedicated with message effects, Terminal TUI test harness, WhatsApp\n  Business 1:1), custom event streams, graceful shutdown, building your own provider with `definePlatform`, and\n  the production architecture patterns Photon uses internally to ship agents that live natively inside IM apps\n  (five-stage inbound pipeline with debounce → batch flush → mark as read → generate → send, in-flight\n  cancellation with abort signals, drain-in-handler, carry-forward, idempotent retries via stable client GUIDs\n  and a startIndex resume cursor, per-resource memory scope `resourceId` vs `threadId`, durable job-failure\n  audit log).\n  This is the entry point for the skill; consult the topic files in this directory for full reference.\n  Keywords: spectrum, spectrum-ts, photon, unified messaging, multi-platform, multi-language, im agent,\n  messaging agent, imessage, whatsapp, whatsapp business, terminal, tuichat, definePlatform, custom platform,\n  platform provider, platform narrowing, app.messages, Spectrum(), space, send, reply, react, tapback, typing\n  indicator, responding, startTyping, stopTyping, content builder, text, attachment, voice, contact, richlink,\n  poll, group, custom content, message effects, bubble effect, screen effect, line model, dedicated line,\n  shared pool, custom events, app.stop, lifecycle, SIGINT, graceful shutdown, message queue, debounce, batch,\n  in-flight, cancellation, abort controller, carry forward, idempotent retry, client guid, dedup, deduplication,\n  startIndex, resume cursor, working memory, resourceId, threadId, per-resource memory, job failure, audit log,\n  race condition, worker crash, retry, pg-boss, queue worker, conversational agent, chat agent, native\n  messaging, agent architecture, production agent, spectrum patterns, best practices.\nlicense: MIT\nmetadata:\n  author: photon-hq\n  version: '2.0.0'\n---\n\n# Spectrum\n\nSpectrum is Photon's unified messaging SDK. Write your handler logic once against a single `app.messages` stream and deliver it across every platform — iMessage, WhatsApp Business, your terminal, or a custom platform you build yourself.\n\nThe current SDK is **[`spectrum-ts`](https:\u002F\u002Fgithub.com\u002Fphoton-hq\u002Fspectrum-ts)** (TypeScript). Spectrum is multi-platform by design and **multi-language is on the roadmap** — additional language SDKs (e.g. Python, Go, Swift) will join the family. The architecture, primitives, and patterns described in this skill are intended to be language-neutral; code samples in the topic files are currently TypeScript and are flagged where the API surface is language-specific (imports, syntax, runtime types).\n\n## How this skill is organized\n\nEach topic lives in its own file in this directory. Read the file relevant to the user's question.\n\n| File | When to consult |\n|---|---|\n| [`getting-started.md`](.\u002Fgetting-started.md) | Installation, the `Spectrum()` app instance, multi-platform setup, the four core primitives. |\n| [`messages.md`](.\u002Fmessages.md) | Receiving messages, the `Message` shape, narrowing on `content.type`, filtering own messages. |\n| [`content.md`](.\u002Fcontent.md) | Content builders for outgoing messages: `text`, `attachment`, `voice`, `contact`, `richlink`, `poll`, `group`, `custom`. |\n| [`spaces-and-users.md`](.\u002Fspaces-and-users.md) | The `Space` interface, typing indicators, `responding`, creating DMs and groups. |\n| [`reactions-and-replies.md`](.\u002Freactions-and-replies.md) | `message.react(...)`, threaded `message.reply(...)`, when to use which. |\n| [`platform-narrowing.md`](.\u002Fplatform-narrowing.md) | Recovering platform-specific types from generic Spectrum primitives. |\n| [`providers\u002Fimessage.md`](.\u002Fproviders\u002Fimessage.md) | iMessage provider — cloud, local, dedicated modes, line model, per-phone routing, message effects, tapbacks. |\n| [`providers\u002Fterminal.md`](.\u002Fproviders\u002Fterminal.md) | Terminal TUI provider — chat sidebar, reactions, replies, attachments, slash commands. |\n| [`providers\u002Fwhatsapp-business.md`](.\u002Fproviders\u002Fwhatsapp-business.md) | WhatsApp Business Cloud API. **1:1 only**. |\n| [`custom-events-and-lifecycle.md`](.\u002Fcustom-events-and-lifecycle.md) | Per-provider event streams (`app.typing`, etc.), `app.stop()`, signal handling. |\n| [`custom-platforms.md`](.\u002Fcustom-platforms.md) | Authoring your own provider with `definePlatform` — full field reference. |\n| [`best-practices.md`](.\u002Fbest-practices.md) | Production architecture patterns Photon uses internally — debounce pipeline, in-flight cancellation, carry-forward, idempotent retries, per-resource memory, job-failure audit log. |\n\n## See also\n\n- [Spectrum docs](https:\u002F\u002Fdocs.photon.codes\u002Fspectrum-ts\u002Fgetting-started)\n- [`spectrum-ts` on GitHub](https:\u002F\u002Fgithub.com\u002Fphoton-hq\u002Fspectrum-ts)\n","# Spectrum\n\nSpectrum is Photon's unified messaging SDK. Write your handler logic once against a single `app.messages` stream and deliver it across every platform — iMessage, WhatsApp Business, your terminal, or a custom platform you build yourself.\n\nThe current SDK is **[`spectrum-ts`](https:\u002F\u002Fgithub.com\u002Fphoton-hq\u002Fspectrum-ts)** (TypeScript). Spectrum is multi-platform by design and **multi-language is on the roadmap** — additional language SDKs (e.g. Python, Go, Swift) will join the family. The architecture, primitives, and patterns described in this skill are intended to be language-neutral; code samples in the topic files are currently TypeScript and are flagged where the API surface is language-specific (imports, syntax, runtime types).\n\n## How this skill is organized\n\nEach topic lives in its own file in this directory. Read the file relevant to the user's question.\n\n| File | When to consult |\n|---|---|\n| [`getting-started.md`](.\u002Fgetting-started.md) | Installation, the `Spectrum()` app instance, multi-platform setup, the four core primitives. |\n| [`messages.md`](.\u002Fmessages.md) | Receiving messages, the `Message` shape, narrowing on `content.type`, filtering own messages. |\n| [`content.md`](.\u002Fcontent.md) | Content builders for outgoing messages: `text`, `attachment`, `voice`, `contact`, `richlink`, `poll`, `group`, `custom`. |\n| [`spaces-and-users.md`](.\u002Fspaces-and-users.md) | The `Space` interface, typing indicators, `responding`, creating DMs and groups. |\n| [`reactions-and-replies.md`](.\u002Freactions-and-replies.md) | `message.react(...)`, threaded `message.reply(...)`, when to use which. |\n| [`platform-narrowing.md`](.\u002Fplatform-narrowing.md) | Recovering platform-specific types from generic Spectrum primitives. |\n| [`providers\u002Fimessage.md`](.\u002Fproviders\u002Fimessage.md) | iMessage provider — cloud, local, dedicated modes, line model, per-phone routing, message effects, tapbacks. |\n| [`providers\u002Fterminal.md`](.\u002Fproviders\u002Fterminal.md) | Terminal TUI provider — chat sidebar, reactions, replies, attachments, slash commands. |\n| [`providers\u002Fwhatsapp-business.md`](.\u002Fproviders\u002Fwhatsapp-business.md) | WhatsApp Business Cloud API. **1:1 only**. |\n| [`custom-events-and-lifecycle.md`](.\u002Fcustom-events-and-lifecycle.md) | Per-provider event streams (`app.typing`, etc.), `app.stop()`, signal handling. |\n| [`custom-platforms.md`](.\u002Fcustom-platforms.md) | Authoring your own provider with `definePlatform` — full field reference. |\n| [`best-practices.md`](.\u002Fbest-practices.md) | Production architecture patterns Photon uses internally — debounce pipeline, in-flight cancellation, carry-forward, idempotent retries, per-resource memory, job-failure audit log. |\n\n## See also\n\n- [Spectrum docs](https:\u002F\u002Fdocs.photon.codes\u002Fspectrum-ts\u002Fgetting-started)\n- [`spectrum-ts` on GitHub](https:\u002F\u002Fgithub.com\u002Fphoton-hq\u002Fspectrum-ts)\n",{"name":5,"license":15,"metadata":24,"description":27},{"author":25,"version":26},"photon-hq","2.0.0","Build messaging agents and apps with Spectrum — Photon's unified messaging SDK. Write your handler logic once and ship it across iMessage, WhatsApp Business, the terminal, or a custom platform. Spectrum is multi-platform by design and is becoming multi-language; the current SDK is `spectrum-ts` (TypeScript), with additional language SDKs planned. Use this skill for any Spectrum question — quickstart, multi-platform setup, receiving messages, content builders, spaces and users, reactions and replies, platform narrowing, the built-in providers (iMessage cloud\u002Flocal\u002Fdedicated with message effects, Terminal TUI test harness, WhatsApp Business 1:1), custom event streams, graceful shutdown, building your own provider with `definePlatform`, and the production architecture patterns Photon uses internally to ship agents that live natively inside IM apps (five-stage inbound pipeline with debounce → batch flush → mark as read → generate → send, in-flight cancellation with abort signals, drain-in-handler, carry-forward, idempotent retries via stable client GUIDs and a startIndex resume cursor, per-resource memory scope `resourceId` vs `threadId`, durable job-failure audit log). This is the entry point for the skill; consult the topic files in this directory for full reference. Keywords: spectrum, spectrum-ts, photon, unified messaging, multi-platform, multi-language, im agent, messaging agent, imessage, whatsapp, whatsapp business, terminal, tuichat, definePlatform, custom platform, platform provider, platform narrowing, app.messages, Spectrum(), space, send, reply, react, tapback, typing indicator, responding, startTyping, stopTyping, content builder, text, attachment, voice, contact, richlink, poll, group, custom content, message effects, bubble effect, screen effect, line model, dedicated line, shared pool, custom events, app.stop, lifecycle, SIGINT, graceful shutdown, message queue, debounce, batch, in-flight, cancellation, abort controller, carry forward, idempotent retry, client guid, dedup, deduplication, startIndex, resume cursor, working memory, resourceId, threadId, per-resource memory, job failure, audit log, race condition, worker crash, retry, pg-boss, queue worker, conversational agent, chat agent, native messaging, agent architecture, production agent, spectrum patterns, best practices.\n","main","8859218955d9504cd18b59e7892100718039d3b4","data\u002Fskills\u002Fphoton-hq-skills\u002Fspectrum",1,"https:\u002F\u002Fgithub.com\u002Fom-scogo\u002Fskillsh-scraper","https:\u002F\u002Fgithub.com\u002Fom-scogo","SDE-1 @ Scogo ","2026-07-18 12:22:46",{"source":8,"skillName":5,"commands":37,"prompt":47,"zipAvailable":48},[38,41,44],{"tool":39,"command":40},"npx","npx skills add om-scogo\u002Fskillsh-scraper --skill spectrum",{"tool":42,"command":43},"bunx","bunx skills add om-scogo\u002Fskillsh-scraper --skill spectrum",{"tool":45,"command":46},"pnpm","pnpm dlx skills add om-scogo\u002Fskillsh-scraper --skill spectrum","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fom-scogo\u002Fskillsh-scraper\u002Fblob\u002Fmain\u002Fdata\u002Fskills\u002Fphoton-hq-skills\u002Fspectrum\u002FSkill.md",true,[50],{"path":51,"resourceType":52,"resourceTypeDesc":53,"sizeBytes":54,"sourceHtmlUrl":55},"metadata.json","REFERENCE","参考文档",397,"https:\u002F\u002Fgithub.com\u002Fom-scogo\u002Fskillsh-scraper\u002Fblob\u002Fmain\u002Fdata\u002Fskills\u002Fphoton-hq-skills\u002Fspectrum\u002Fmetadata.json",[57,64,69,76,81,88],{"skillNo":58,"name":59,"nameZh":6,"description":60,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":61,"categories":62,"keywords":63,"publishedAt":19},"01M7D6MC9FAAEV4CMNYX8W7JTG","arxiv-search","Search arXiv physics, math, and computer science preprints using natural language queries. Powered by Valyu semantic search.","https:\u002F\u002Fgithub.com\u002Fom-scogo\u002Fskillsh-scraper\u002Fblob\u002Fmain\u002Fdata\u002Fskills\u002Fyorkeccak-scientific-skills\u002Farxiv-search\u002Fskills\u002Farxiv-search\u002FSKILL.md",[],[],{"skillNo":65,"name":59,"nameZh":6,"description":60,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":66,"categories":67,"keywords":68,"publishedAt":19},"01M7D6M85CKKN87TA98VCQV4H7","https:\u002F\u002Fgithub.com\u002Fom-scogo\u002Fskillsh-scraper\u002Fblob\u002Fmain\u002Fdata\u002Fskills\u002Fyorkeccak-scientific-skills\u002Farxiv-search\u002FSkill.md",[],[],{"skillNo":70,"name":71,"nameZh":6,"description":72,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":73,"categories":74,"keywords":75,"publishedAt":19},"01M7D4ZTCS4DR3CE4JY06X84T2","working-with-legacy-code","Safely change and test untested codebases using Feathers' \"Working Effectively with Legacy Code\". Use when the user mentions \"legacy code\", \"no tests\", \"untested codebase\", \"how do I test this\", \"seams\", \"characterization tests\", \"golden master\", \"sprout method\", \"afraid to change this code\", \"monster method\", \"dependency breaking\", or \"inherited a messy codebase\". Also trigger when changing code without tests safely, getting a class under test when constructors, statics, or singletons block it, adding features to tangled modules, or planning incremental test coverage for an old codebase. Covers the legacy-code change algorithm, seams, characterization tests, sprout\u002Fwrap, and dependency-breaking techniques. For refactoring code that already has tests, see refactoring-patterns. For day-to-day code quality, see clean-code.","https:\u002F\u002Fgithub.com\u002Fom-scogo\u002Fskillsh-scraper\u002Fblob\u002Fmain\u002Fdata\u002Fskills\u002Fwondelai-skills\u002Fworking-with-legacy-code\u002Fworking-with-legacy-code\u002FSKILL.md",[],[],{"skillNo":77,"name":71,"nameZh":6,"description":72,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":78,"categories":79,"keywords":80,"publishedAt":19},"01M7D4ZHZKJD2RSNGAF63V14P4","https:\u002F\u002Fgithub.com\u002Fom-scogo\u002Fskillsh-scraper\u002Fblob\u002Fmain\u002Fdata\u002Fskills\u002Fwondelai-skills\u002Fworking-with-legacy-code\u002FSkill.md",[],[],{"skillNo":82,"name":83,"nameZh":6,"description":84,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":85,"categories":86,"keywords":87,"publishedAt":19},"01M7D4ZB4CJBFW5JE67CPH2QRV","web-typography","Select, pair, and implement typefaces for web projects. Use when the user mentions \"font pairing\", \"which typeface\", \"line height\", \"responsive typography\", \"web font loading\", \"type hierarchy\", \"variable fonts\", \"FOUT\u002FFOIT\", \"typographic scale\", or \"the text is hard to read\". Also trigger when choosing between system fonts and web fonts, optimizing font-loading performance, or designing readable long-form content. Covers readability evaluation, CSS implementation, and performance optimization. For overall UI design systems, see refactoring-ui. For dramatic typographic experiences, see top-design.","https:\u002F\u002Fgithub.com\u002Fom-scogo\u002Fskillsh-scraper\u002Fblob\u002Fmain\u002Fdata\u002Fskills\u002Fwondelai-skills\u002Fweb-typography\u002Fweb-typography\u002FSKILL.md",[],[],{"skillNo":89,"name":83,"nameZh":6,"description":84,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":90,"categories":91,"keywords":92,"publishedAt":19},"01M7D4Z4MVYVY3NMJ18BNV6WNA","https:\u002F\u002Fgithub.com\u002Fom-scogo\u002Fskillsh-scraper\u002Fblob\u002Fmain\u002Fdata\u002Fskills\u002Fwondelai-skills\u002Fweb-typography\u002FSkill.md",[],[]]