Skip to content
Merged
Changes from 2 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
56 changes: 45 additions & 11 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
<!--
Copyright 2021-Present The Serverless Workflow Specification Authors

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
Expand All @@ -25,6 +25,7 @@ This project is the official, vendor-neutral visual editor for the [Serverless W
## Prerequisites

To build and run the editor locally, you will need:

- **Node.js** (current LTS version; see https://nodejs.org/)
- **pnpm**

Expand All @@ -51,32 +52,64 @@ pnpm run build:prod

This project uses the following core technology stack:

* **Language**: [TypeScript](https://www.typescriptlang.org/) (for type safety and maintainability)
* **Library**: [React](https://react.dev/) (for building the user interface)
- **Language**: [TypeScript](https://www.typescriptlang.org/) (for type safety and maintainability)
- **Library**: [React](https://react.dev/) (for building the user interface)

The project aims for the editor to be **embeddable**, with the core logic decoupled from specific platform APIs (like VS Code or Chrome APIs) through an abstraction layer.

## Reporting an Issue

If you find a bug or have a question, please check the [existing issues](https://github.com/serverlessworkflow/editor/issues) first.

1. Open a new issue using the appropriate template.
2. Provide a clear description of the problem.
3. Include steps to reproduce the bug and provide a sample workflow file (`.sw.json` or `.sw.yaml`) if applicable.

## Suggesting a Change

For new features or architectural changes:

1. Open an **Issue** or a **GitHub Discussion** to propose your idea.
2. Ensure the proposal aligns with the goals of being **vendor-neutral** and **specification-first**.
3. Once the approach is agreed upon by maintainers, you may proceed with a Pull Request.

## Coding Standards

* **TypeScript**: Always use strict typing. Avoid `any`.
* **Linting & Formatting**: Follow the existing code style and formatting conventions used in the files you are editing. If the package you are changing defines linting or formatting scripts, run those before submitting code.
* **Testing**: Ensure that logic changes are covered by tests, and run the relevant test commands for the packages you modify (see their documentation or `package.json`).
* **Component Design**: Follow functional component patterns and ensure that UI state is managed predictably within the monorepo structure.
* **New package creation**: If a new package needs to be created, please follow the standards used by the existing packages, including the standard commands `build:dev`, `build:prod`, `test`, `e2e-test`, `lint`
- **TypeScript**: Always use strict typing. Avoid `any`.
- **Linting & Formatting**: Follow the existing code style and formatting conventions used in the files you are editing. If the package you are changing defines linting or formatting scripts, run those before submitting code.
- **Testing**: Ensure that logic changes are covered by tests, and run the relevant test commands for the packages you modify (see their documentation or `package.json`).
- **Component Design**: Follow functional component patterns and ensure that UI state is managed predictably within the monorepo structure.
- **New package creation**: If a new package needs to be created, please follow the standards used by the existing packages, including the standard commands `build:dev`, `build:prod`, `test`, `e2e-test`, `lint`.

## LLM Usage Policy
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@lornakelly I remember from a recent news that Gnome project had the issues of people sending AI generated gnome-extension with a lot of unnecessary code, resulting in time-consuming human reviews.
Maybe we can consider taking some inspiration from:

Wdyt?

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

+1

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks @fantonangeli for the suggestion. I updated the list with a combination of both. Let me know what you think


In this project, we welcome tools that help developers become more productive — including Large Language Models (LLMs) and Agents like ChatGPT, GitHub Copilot, and others.

To ensure a healthy and productive community, the following expectations apply:

### Acceptable Use of LLMs

- LLMs may be used to **assist your development** — e.g., drafting code, writing documentation, proposing fixes — as long as **you understand, validate**, and **take responsibility for the results.**
- You should only submit contributions (PRs, comments, discussions, issues) that reflect your **own understanding** and **intent**, not what an Agent/LLM "spit out."
- You may use Agents/LLMs to help you **write better**, but not to **post more**.

### Unacceptable Use

- Submitting code, tests, comments, or issues that appear to be **copied directly from an LLM with little or no human oversight** is **not acceptable**.
- Posting **large volumes of low-effort suggestions, vague issues, or links with no context** — even if technically accurate — is considered spam.
- Submitting **AI-generated tests that do not validate actual behavior** or meaningfully cover functionality is not helpful and will be rejected.
- Using bots, agents, or automated tools to open PRs, file issues, or post content **without human authorship and responsibility** is not allowed.

### Consequences

- We may close issues, PRs, or discussions that violate this policy without detailed explanation.
- Repeated violations may result in temporary or permanent restrictions from participating in the project.

### If in Doubt

If you're unsure whether your use of Agents/LLMs is acceptable — ask! We're happy to help contributors learn how to use AI tools effectively **without creating noise**.

> This isn't about banning AI — it's about keeping this project collaborative, human-driven, and focused on quality.

## Pull Request Process

Expand All @@ -90,4 +123,5 @@ For new features or architectural changes:
---

### Community and Communication
Join the conversation on the [CNCF Slack](https://slack.cncf.io/) in the `#serverless-workflow` channel.

Join the conversation on the [CNCF Slack](https://slack.cncf.io/) in the `#serverless-workflow` channel.