Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[EARLY DRAFT] Create an xstate v5 gpt #4917

Draft
wants to merge 21 commits into
base: main
Choose a base branch
from

Conversation

technoplato
Copy link

https://chatgpt.com/gpts/editor/g-NrB3SjyV8

https://chatgpt.com/g/g-NrB3SjyV8-xstate-assistant

Draft Pull Request: Custom GPT for XState v5

Overview

This draft PR introduces the initial implementation of a custom GPT designed to assist users with XState v5. The primary goal of this draft is to explore creating a custom GPT for helping users use XState and create state charts, state machines, and actor systems, etc.

Changes Introduced

  1. Benchmark Documentation

    • Created funkycountbenchmark.md to describe the desired functionality and benchmarks.
  2. Tests for GPT Output

    • Added issues.test.ts containing the output of the GPT for validation purposes.
    • Created prompt.test.ts, which includes the prompt as a TypeScript comment followed by example code and associated tests.
  3. Documentation and Cheat Sheets

    • Added todo.md for tracking tasks and future improvements.
    • Introduced kitchen_sink.actors and kitchen_sink.guards, which serve as detailed cheat sheets attempting to consolidate functionality into a single machine. While these are not yet optimized, they represent an effort to provide comprehensive reference material.

Current Limitations

  • The GPT has a character limit of 8,000 characters, which restricts prompt length.
  • Tests are currently failing due to the GPT using cond instead of guard and not fully understanding XState v5 semantics.

Potential Workarounds

A potential workaround for the character limit involves storing prompts locally within the project and allowing the custom GPT to access these prompts via ngrok using custom actions. This method would enable the GPT to dynamically decide which files to pull in for a given task, potentially including longer prompts for XState.

Future Plans

  • Improve organization and structure of benchmarks.
  • Refine the custom GPT to better understand XState semantics and pass the tests.
  • Plan a meeting with David to discuss progress and next steps. Tentatively scheduled for next Friday.

Additional Links

  • Added links to the GPT editor (accessible only to the author) for convenience.

This is an initial draft aimed at kickstarting the integration of a custom GPT for XState v5. Feedback and suggestions are welcome as we continue to refine and improve this functionality.

To test this, you can copy the prompt into the custom GPT creation tool and run it yourself. Currently, access to editors is not open, but this approach should help in verifying the changes.

Copy link

changeset-bot bot commented May 30, 2024

⚠️ No Changeset found

Latest commit: f403926

Merging this PR will not cause a version bump for any packages. If these changes should not result in a new version, you're good to go. If these changes should result in a version bump, you need to add a changeset.

This PR includes no changesets

When changesets are added to this PR, you'll see the packages that this PR includes changesets for and the associated semver types

Click here to learn what changesets are, and how to add one.

Click here if you're a maintainer who wants to add a changeset to this PR

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant