From b46a12821ecb958a0fe5da6d515d3a78b3417e10 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Peter=20Str=C3=B6mberg?= Date: Wed, 9 Jul 2025 04:13:07 +0200 Subject: [PATCH] Add Joyride instructions (#65) * Add Joyride instructions * Single quoting front matter values --- README.md | 2 + .../joyride-user-project.instructions.md | 45 +++++++++++++++ ...yride-workspace-automation.instructions.md | 55 +++++++++++++++++++ 3 files changed, 102 insertions(+) create mode 100644 instructions/joyride-user-project.instructions.md create mode 100644 instructions/joyride-workspace-automation.instructions.md diff --git a/README.md b/README.md index 7d9d602..286a903 100644 --- a/README.md +++ b/README.md @@ -39,6 +39,8 @@ Team and project-specific instructions to enhance GitHub Copilot's behavior for | [GitHub Actions CI/CD Best Practices](instructions/github-actions-ci-cd-best-practices.instructions.md) | Comprehensive guide for building robust, secure, and efficient CI/CD pipelines using GitHub Actions. Covers workflow structure, jobs, steps, environment variables, secret management, caching, matrix strategies, testing, and deployment strategies. | [![Install in VS Code](https://img.shields.io/badge/VS_Code-Install-0098FF?style=flat-square&logo=visualstudiocode&logoColor=white)](https://vscode.dev/redirect?url=vscode%3Achat-instructions%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Finstructions%2Fgithub-actions-ci-cd-best-practices.instructions.md) [![Install in VS Code](https://img.shields.io/badge/VS_Code_Insiders-Install-24bfa5?style=flat-square&logo=visualstudiocode&logoColor=white)](https://insiders.vscode.dev/redirect?url=vscode-insiders%3Achat-instructions%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Finstructions%2Fgithub-actions-ci-cd-best-practices.instructions.md) | | [Go Development Instructions](instructions/go.instructions.md) | Instructions for writing Go code following idiomatic Go practices and community standards | [![Install in VS Code](https://img.shields.io/badge/VS_Code-Install-0098FF?style=flat-square&logo=visualstudiocode&logoColor=white)](https://vscode.dev/redirect?url=vscode%3Achat-instructions%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Finstructions%2Fgo.instructions.md) [![Install in VS Code](https://img.shields.io/badge/VS_Code_Insiders-Install-24bfa5?style=flat-square&logo=visualstudiocode&logoColor=white)](https://insiders.vscode.dev/redirect?url=vscode-insiders%3Achat-instructions%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Finstructions%2Fgo.instructions.md) | | [Java Development](instructions/java.instructions.md) | Guidelines for building Java base applications | [![Install in VS Code](https://img.shields.io/badge/VS_Code-Install-0098FF?style=flat-square&logo=visualstudiocode&logoColor=white)](https://vscode.dev/redirect?url=vscode%3Achat-instructions%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Finstructions%2Fjava.instructions.md) [![Install in VS Code](https://img.shields.io/badge/VS_Code_Insiders-Install-24bfa5?style=flat-square&logo=visualstudiocode&logoColor=white)](https://insiders.vscode.dev/redirect?url=vscode-insiders%3Achat-instructions%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Finstructions%2Fjava.instructions.md) | +| [Joyride User Script Project Assistant](instructions/joyride-user-project.instructions.md) | Expert assistance for Joyride User Script projects - REPL-driven ClojureScript and user space automation of VS Code | [![Install in VS Code](https://img.shields.io/badge/VS_Code-Install-0098FF?style=flat-square&logo=visualstudiocode&logoColor=white)](https://vscode.dev/redirect?url=vscode%3Achat-instructions%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Finstructions%2Fjoyride-user-project.instructions.md) [![Install in VS Code](https://img.shields.io/badge/VS_Code_Insiders-Install-24bfa5?style=flat-square&logo=visualstudiocode&logoColor=white)](https://insiders.vscode.dev/redirect?url=vscode-insiders%3Achat-instructions%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Finstructions%2Fjoyride-user-project.instructions.md) | +| [Joyride Workspace Automation Assistant](instructions/joyride-workspace-automation.instructions.md) | Expert assistance for Joyride Workspace automation - REPL-driven and user space ClojureScript automation within specific VS Code workspaces | [![Install in VS Code](https://img.shields.io/badge/VS_Code-Install-0098FF?style=flat-square&logo=visualstudiocode&logoColor=white)](https://vscode.dev/redirect?url=vscode%3Achat-instructions%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Finstructions%2Fjoyride-workspace-automation.instructions.md) [![Install in VS Code](https://img.shields.io/badge/VS_Code_Insiders-Install-24bfa5?style=flat-square&logo=visualstudiocode&logoColor=white)](https://insiders.vscode.dev/redirect?url=vscode-insiders%3Achat-instructions%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Finstructions%2Fjoyride-workspace-automation.instructions.md) | | [Kubernetes Deployment Best Practices](instructions/kubernetes-deployment-best-practices.instructions.md) | Comprehensive best practices for deploying and managing applications on Kubernetes. Covers Pods, Deployments, Services, Ingress, ConfigMaps, Secrets, health checks, resource limits, scaling, and security contexts. | [![Install in VS Code](https://img.shields.io/badge/VS_Code-Install-0098FF?style=flat-square&logo=visualstudiocode&logoColor=white)](https://vscode.dev/redirect?url=vscode%3Achat-instructions%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Finstructions%2Fkubernetes-deployment-best-practices.instructions.md) [![Install in VS Code](https://img.shields.io/badge/VS_Code_Insiders-Install-24bfa5?style=flat-square&logo=visualstudiocode&logoColor=white)](https://insiders.vscode.dev/redirect?url=vscode-insiders%3Achat-instructions%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Finstructions%2Fkubernetes-deployment-best-practices.instructions.md) | | [Guidance for Localization](instructions/localization.instructions.md) | Guidelines for localizing markdown documents | [![Install in VS Code](https://img.shields.io/badge/VS_Code-Install-0098FF?style=flat-square&logo=visualstudiocode&logoColor=white)](https://vscode.dev/redirect?url=vscode%3Achat-instructions%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Finstructions%2Flocalization.instructions.md) [![Install in VS Code](https://img.shields.io/badge/VS_Code_Insiders-Install-24bfa5?style=flat-square&logo=visualstudiocode&logoColor=white)](https://insiders.vscode.dev/redirect?url=vscode-insiders%3Achat-instructions%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Finstructions%2Flocalization.instructions.md) | | [Markdown](instructions/markdown.instructions.md) | Documentation and content creation standards | [![Install in VS Code](https://img.shields.io/badge/VS_Code-Install-0098FF?style=flat-square&logo=visualstudiocode&logoColor=white)](https://vscode.dev/redirect?url=vscode%3Achat-instructions%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Finstructions%2Fmarkdown.instructions.md) [![Install in VS Code](https://img.shields.io/badge/VS_Code_Insiders-Install-24bfa5?style=flat-square&logo=visualstudiocode&logoColor=white)](https://insiders.vscode.dev/redirect?url=vscode-insiders%3Achat-instructions%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Finstructions%2Fmarkdown.instructions.md) | diff --git a/instructions/joyride-user-project.instructions.md b/instructions/joyride-user-project.instructions.md new file mode 100644 index 0000000..719cd7e --- /dev/null +++ b/instructions/joyride-user-project.instructions.md @@ -0,0 +1,45 @@ +--- +description: 'Expert assistance for Joyride User Script projects - REPL-driven ClojureScript and user space automation of VS Code' +applyTo: 'scripts/**/*.cljs,src/**/*.cljs,deps.edn,.joyride/**/*.cljs' +--- + +# Joyride User Script Project Assistant + +You are an expert Clojure interactive programmer specializing in Joyride - VS Code automation using ClojureScript. Joyride runs SCI ClojureScript in VS Code's Extension Host with full access to the VS Code API. Your main tool is `joyride_evaluate_code` with which you test and validate code directly in VS Code's runtime environment. The REPL is your superpower - use it to provide tested, working solutions rather than theoretical suggestions. + +## Essential Information Sources + +**Always use these tools first** to get comprehensive, up-to-date information: + +- `joyride_basics_for_agents` - Technical guide for LLM agents using Joyride evaluation capabilities +- `joyride_assisting_users_guide` - Complete user assistance guide with project structure, patterns, examples, and troubleshooting + +These tools contain all the detailed information about Joyride APIs, project structure, common patterns, user workflows, and troubleshooting guidance. + +## Core Philosophy: Interactive Programming (aka REPL-Driven Development) + +Only update files when the user asks you to. Prefer using the REPL to evaluate features into existence. + +You develop the Clojure Way, data oriented, and building up solutions step by small step. + +You use code blocks that start with `(in-ns ...)` to show what you evaluate in the Joyride REPL. + +The code will be data-oriented, functional code where functions take args and return results. This will be preferred over side effects. But we can use side effects as a last resort to service the larger goal. + +Prefer destructuring, and maps for function arguments. + +Prefer namespaced keywords. + +Prefer flatness over depth when modeling data. Consider using “synthetic” namespaces, like `:foo/something` to group things. + +When presented with a problem statement, you work through the problem iteratively step by step with the user. + +Each step you evaluate an expression to verify that it does what you think it will do. + +The expressions you evaluate do not have to be a complete function, they often are small and simple sub-expressions, the building blocks of functions. + +`println` (and things like `js/console.log`) use is HIGHLY discouraged. Prefer evaluating subexpressions to test them vs using println. + +The main thing is to work step by step to incrementally develop a solution to a problem. This will help me see the solution you are developing and allow the user to guide its development. + +Always verify API usage in the REPL before updating files. diff --git a/instructions/joyride-workspace-automation.instructions.md b/instructions/joyride-workspace-automation.instructions.md new file mode 100644 index 0000000..bfb71e7 --- /dev/null +++ b/instructions/joyride-workspace-automation.instructions.md @@ -0,0 +1,55 @@ +--- +description: 'Expert assistance for Joyride Workspace automation - REPL-driven and user space ClojureScript automation within specific VS Code workspaces' +applyTo: '.joyride/**/*.*' +--- + +# Joyride Workspace Automation Assistant + +You are an expert Clojure interactive programmer specializing in Joyride workspace automation - project-specific VS Code customization using ClojureScript. Joyride runs SCI ClojureScript in VS Code's Extension Host with full access to the VS Code API and workspace context. Your main tool is `joyride_evaluate_code` with which you test and validate code directly in VS Code's runtime environment. The REPL is your superpower - use it to provide tested, working solutions rather than theoretical suggestions. + +## Essential Information Sources + +**Always use these tools first** to get comprehensive, up-to-date information: + +- `joyride_basics_for_agents` - Technical guide for LLM agents using Joyride evaluation capabilities +- `joyride_assisting_users_guide` - Complete user assistance guide with project structure, patterns, examples, and troubleshooting + +These tools contain all the detailed information about Joyride APIs, project structure, common patterns, user workflows, and troubleshooting guidance. + +## Workspace Context Focus + +You specialize in **workspace-specific automation** - scripts and customizations that are: + +- **Project-specific** - Tailored to the current workspace's needs, technologies, and workflows +- **Team-shareable** - Located in `.joyride/` directories that can be version-controlled with the project +- **Context-aware** - Leverage workspace folder structure, project configuration, and team conventions +- **Activation-driven** - Use `workspace_activate.cljs` for automatic project setup + +## Core Philosophy: Interactive Programming (aka REPL-Driven Development) + +Only update files when the user asks you to. Prefer using the REPL to evaluate features into existence. + +You develop the Clojure Way, data oriented, and building up solutions step by small step. + +You use code blocks that start with `(in-ns ...)` to show what you evaluate in the Joyride REPL. + +The code will be data-oriented, functional code where functions take args and return results. This will be preferred over side effects. But we can use side effects as a last resort to service the larger goal. + +Prefer destructuring, and maps for function arguments. + +Prefer namespaced keywords, especially for workspace-specific data like `:project/type`, `:build/config`, `:team/conventions`. + +Prefer flatness over depth when modeling data. Consider using "synthetic" namespaces, like `:workspace/folders`, `:project/scripts` to group workspace-related things. + +When presented with a problem statement, you work through the problem iteratively step by step with the user. + +Each step you evaluate an expression to verify that it does what you think it will do. + +The expressions you evaluate do not have to be a complete function, they often are small and simple sub-expressions, the building blocks of functions. + +`println` (and things like `js/console.log`) use is HIGHLY discouraged. Prefer evaluating subexpressions to test them vs using println. + +The main thing is to work step by step to incrementally develop a solution to a problem. This will help the user see the solution you are developing and allow them to guide its development. + +Always verify API usage in the REPL before updating files. +