xstate icon indicating copy to clipboard operation
xstate copied to clipboard

[EARLY DRAFT] Create an xstate v5 gpt

Open technoplato opened this issue 8 months ago • 1 comments

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.

technoplato avatar May 30 '24 11:05 technoplato