feat: add Raycast extension development skill#25
Conversation
Create comprehensive Raycast skill for extension development using skill-seekers with custom config. Extracted 99 pages from official documentation covering: - Getting started and extension development basics - API reference (31 pages) - environment, clipboard, storage, etc. - UI components (17 pages) - List, ActionPanel, Form, Detail, Grid - Utilities (8 pages) - AI, feedback, keyboard shortcuts - Teams and examples - Best practices Generated SKILL.md (118 lines) with 5 code examples and 12 reference files organized by category. Quality score: 23/25 (92%). Config file: configs/raycast.json - base_url: https://developers.raycast.com/ - 13 start_urls covering main documentation sections - 8 categories for logical organization - 400 max_pages for comprehensive coverage - 0.5s rate limiting Output location: INTEGRATION/incoming/raycast/ 🤖 Generated with [Nori](https://nori.ai) Co-Authored-By: Nori <contact@tilework.tech>
🔍 PR Validation ReportStatus: ✅ All Checks Passed Changes Summary
This is an automated validation. Issues are advisory and do not block merging. |
Summary of ChangesHello @enuno, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed! This pull request introduces a new, automatically generated skill designed to assist developers with Raycast extension development. It consolidates a vast amount of official documentation into an easily accessible format, complete with code examples and structured references. The primary goal is to streamline the development process for Raycast extensions by providing a centralized and comprehensive knowledge base. Highlights
🧠 New Feature in Public Preview: You can now enable Memory to help Gemini Code Assist learn from your team's feedback. This makes future code reviews more consistent and personalized to your project's style. Click here to enable Memory in your admin console. Using Gemini Code AssistThe full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips. Invoking Gemini You can request assistance from Gemini at any point by creating a comment using either
Customization To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a Limitations & Feedback Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for Github and other Google products, sign up here. You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension. Footnotes
|
PR Compliance Guide 🔍Below is a summary of compliance checks for this PR:
|
||||
PR Code Suggestions ✨Explore these optional code suggestions:
|
|||||||||||||||||
There was a problem hiding this comment.
Code Review
This pull request introduces a new Raycast skill, complete with extensive documentation extracted from the official Raycast developer docs. The overall structure is good, but I've found several issues in the generated Markdown files that need attention. My review includes feedback on invalid code examples, malformed Markdown syntax (especially with tabs), grammatical errors, and inconsistencies in document structure. One high-severity issue is a missing command in the extension publishing guide, which could block users. Addressing these points will significantly improve the quality and usability of the new skill's documentation.
| If someone contributes to your extension, or you make edits directly on GitHub, running `npm run publish` will fail until you run | ||
|
|
||
| in your git repository. This will merge the contributions with your code, asking you to fix the conflicts if any. | ||
| {% endhint %} |
There was a problem hiding this comment.
This part of the documentation is missing a command. It states that npm run publish will fail until a certain command is run, but the command itself is missing from the text. Based on other parts of the documentation (e.g., line 381), the missing command is likely npx @raycast/api@latest pull-contributions. Please add the command to make the instructions clear.
| "default": { | ||
| "macOS": "foo", | ||
| "Windows": "bar" | ||
| } |
There was a problem hiding this comment.
| {% tabs %} | ||
| {% tab title="View Command" %} | ||
|
|
||
| {% tab title="No-View Command" %} | ||
|
|
||
| {% endtab %} | ||
| {% endtabs %} |
There was a problem hiding this comment.
| See the [API Reference](https://developers.raycast.com/api-reference/menu-bar-commands) for more information about customization. | ||
| {% endhint %} | ||
|
|
||
| A example of a no-view command which shows a simple [HUD](https://developers.raycast.com/api-reference/feedback/hud). |
There was a problem hiding this comment.
There is a grammatical error here. "A example" should be "An example".
| A example of a no-view command which shows a simple [HUD](https://developers.raycast.com/api-reference/feedback/hud). | |
| An example of a no-view command which shows a simple [HUD](https://developers.raycast.com/api-reference/feedback/hud). |
| | title<mark style="color:red;">\*</mark> | The display name of the command, shown to the user in the Store, Preferences, and in Raycast's root search. | | ||
| | subtitle | The optional subtitle of the command in the root search. Usually, this is the service or domain that your command is associated with. You can dynamically update this property using [`updateCommandMetadata`](https://developers.raycast.com/api-reference/command#updatecommandmetadata). | | ||
| | description<mark style="color:red;">\*</mark> | It helps users understand what the command does. It will be displayed in the Store and in Preferences. | | ||
| | icon | <p>An optional reference to an icon file in the assets folder. Use png format with a size of at least 512 x 512 pixels. To support light and dark theme, add two icons, one with <code>@dark</code> as suffix, e.g. <code>icon.png</code> and <code><icon@dark.png></code>.</p><p>If no icon is specified, the extension icon will be used.</p> | |
There was a problem hiding this comment.
The use of angle brackets within the <code> tag (<icon@dark.png>) is incorrect and will likely cause rendering issues, as they can be interpreted as HTML tags. The angle brackets should be removed.
| | icon | <p>An optional reference to an icon file in the assets folder. Use png format with a size of at least 512 x 512 pixels. To support light and dark theme, add two icons, one with <code>@dark</code> as suffix, e.g. <code>icon.png</code> and <code><icon@dark.png></code>.</p><p>If no icon is specified, the extension icon will be used.</p> | | |
| | icon | <p>An optional reference to an icon file in the assets folder. Use png format with a size of at least 512 x 512 pixels. To support light and dark theme, add two icons, one with <code>@dark</code> as suffix, e.g. <code>icon.png</code> and <code>icon@dark.png</code>.</p><p>If no icon is specified, the extension icon will be used.</p> | |
|
|
||
| * Fixed an issue where setting `timeout` to `0` in `runAppleScript` would not work. | ||
|
|
||
| * Add a new [\`executeSQL](https://developers.raycast.com/utilities/functions/executesql) function. |
There was a problem hiding this comment.
There's a Markdown syntax error here. The backtick in [\executeSQL]` is escaped, which will prevent the link from rendering correctly. The backslash should be removed.
| * Add a new [\`executeSQL](https://developers.raycast.com/utilities/functions/executesql) function. | |
| * Add a new [`executeSQL`](https://developers.raycast.com/utilities/functions/executesql) function. |
|
|
||
| ## Categories | ||
|
|
||
| ### Api |
| **File:** `teams.md` | ||
| **Pages:** 1 | ||
|
|
||
| ### Ui Components |
| {% tabs %} | ||
| {% tab title="Find Application" %} | ||
|
|
||
| {% tab title="List Installed Applications" %} | ||
|
|
||
| {% endtab %} | ||
| {% endtabs %} |
| onWillExecute?: (args: Parameters<T>) => void; | ||
| failureToastOptions?: Partial<Pick<Toast.Options, "title" | "primaryAction" | "message">>; | ||
| } | ||
| ): AsyncState<String> & { |
User description
Summary
🤖 Generated with Nori
configs/raycast.jsonwith 8 categories and 400 max pagesDocumentation Coverage
API Reference (31 pages):
UI Components (17 pages):
Additional Sections:
Test Plan
jq empty configs/raycast.json)Output Location
INTEGRATION/incoming/raycast/Share Nori with your team: https://www.npmjs.com/package/nori-ai
PR Type
Enhancement
Description
Add comprehensive Raycast extension development skill with 99 pages
Extract documentation covering API reference, UI components, utilities
Generate configuration file with 8 categories and 400 max pages
Create SKILL.md with 5 code examples and 12 reference files
Diagram Walkthrough
File Walkthrough
13 files
Extension development manifest and publishing guideAI, system utilities, and React hooks documentationFirst extension creation and utils installation guideLifecycle, security, and extension best practicesCommand templates and extension boilerplate examplesRaycast skill overview with quick reference patternsDocumentation index with category and page countsTeam collaboration and private extension guideLLM-formatted documentation file referenceComplete API reference documentation fileFull LLM-formatted documentation archiveAdditional documentation sections and guidesUI components API reference and examples1 files
Raycast documentation scraper configuration file