Skip to content

Commit d48830d

Browse files
authored
docs: publish AI tooling guide and migrate development docs (#2141)
1 parent 3651e21 commit d48830d

14 files changed

Lines changed: 570 additions & 480 deletions

.coderabbit.yaml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -53,10 +53,10 @@ knowledge_base:
5353
enabled: true
5454
filePatterns:
5555
# Add custom patterns here if you have other guideline files:
56-
- "AGENT.md"
56+
- "AGENTS.md"
5757
- ".github/pr-review-checklist.md"
58-
- "Development.md"
59-
- "CONTRIBUTING.md"
58+
- "apps/generator/docs/release-process.md"
59+
- "apps/generator/docs/contributing.md"
6060
learnings:
6161
scope: auto
6262
issues:

.github/pr-review-checklist.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
### What reviewer looks at during PR review
22
The following are ideal points maintainers look for during review. Reviewing these points yourself beforehand can help streamline the review process and reduce time to merge.
33

4-
1. **PR Title**: Use a concise title that follows our [Conventional Commits](https://github.com/asyncapi/generator/blob/master/CONTRIBUTING.md#conventional-commits) guidelines and clearly summarizes the change using [imperative mood](https://cbea.ms/git-commit/#imperative) (it means `spoken or written as if giving a command or instruction`, like "add new helper for listing operations")
4+
1. **PR Title**: Use a concise title that follows our [Conventional Commits](https://www.asyncapi.com/docs/tools/generator/contributing#conventional-commits) guidelines and clearly summarizes the changes using the [imperative mood](https://cbea.ms/git-commit/#imperative) (written as if giving a command or instruction such as "add new helper for listing operations")
55
> **Note** - In Generator, prepend `feat:` or `fix:` in PR title only when PATCH/MINOR release must be triggered.
66
77
1. **PR Description**: Clearly explain the issue being solved, summarize the changes made, and mention the related issue.

.gitignore

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,4 +20,7 @@ __pycache__
2020
**/target/
2121

2222
microcks-data
23-
packages/templates/clients/websocket/test/__fixtures__/bundled.yml
23+
packages/templates/clients/websocket/test/__fixtures__/bundled.yml
24+
25+
# Local planning/brainstorming artifacts (not part of published docs)
26+
docs/superpowers/

AGENTS.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,8 @@ The monorepo contains tightly coupled packages that together form the AsyncAPI c
1010

1111
The guidelines below cross-reference the following authoritative docs. If a path or URL changes, update it here **and** at each inline mention.
1212

13-
- [Conventional Commits](CONTRIBUTING.md#conventional-commits) — commit and PR title format rules
14-
- [Release process](Development.md#release-process) — changesets, release-triggering prefixes, full release flow
13+
- [Conventional Commits](apps/generator/docs/contributing.md#conventional-commits) — commit and PR title format rules
14+
- [Release process](apps/generator/docs/release-process.md) — changesets, release-triggering prefixes, full release flow
1515
- [Packages README](packages/README.md) — template architectural principles and assumptions
1616
- [Hooks guide](apps/generator/docs/hooks.md) — lifecycle hook order and signatures (`generate:before`, `generate:after`, `setFileTemplateName`)
1717
- [Keeper README](apps/keeper/README.md)`@asyncapi/keeper` public API surface
@@ -51,7 +51,7 @@ Orchestration is Turborepo (`turbo.json`). Every package-level script (`test`, `
5151
Every package inherits the root `.eslintrc` — that file is the source of truth for lint rules. Package `lint` scripts must invoke the root config and ignore file via relative `--config` / `--ignore-path` flags — the exact number of `../` segments depends on the package's depth in the tree (e.g. `apps/*` uses `../../.eslintrc`; `packages/templates/clients/<protocol>/test/integration-test/` uses `../../../../../../.eslintrc`). Do not add a package-local `.eslintrc` to avoid the relative path.
5252

5353
### 2.3 Commits and PR titles
54-
See the [Conventional Commits section in `CONTRIBUTING.md`](CONTRIBUTING.md#conventional-commits).
54+
See the [Conventional Commits section in the contributing guide](apps/generator/docs/contributing.md#conventional-commits).
5555

5656
### 2.4 Documentation and comments
5757

@@ -72,7 +72,7 @@ Required tags: `@param`, `@returns`, and `@throws` / `@async` where applicable.
7272
**Comments:** reserve comments for non-obvious *why*. In this codebase the comments that pay rent are **Parser-API quirks** and **AsyncAPI spec workarounds** — mark these with a `// Why:` prefix that cites the spec section or parser issue, so future cleanup passes can tell a load-bearing comment from a stale one.
7373

7474
### 2.5 Release hygiene
75-
Changesets, release-triggering prefixes, and the full release flow are documented in the [Release process section in `Development.md`](Development.md#release-process). Use that as the source of truth on review; flag PRs whose diffs suggest a release but ship no `.changeset/*.md`.
75+
Changesets, release-triggering prefixes, and the full release flow are documented in the [Release process documentation](apps/generator/docs/release-process.md). Use that as the source of truth on review; flag PRs whose diffs suggest a release but ship no `.changeset/*.md`.
7676

7777
A changeset must name the **published** package a change ships through — not the directory you edited. `packages/templates/*` are `private` and unpublished, so they are **never** valid changeset targets; baked-in template changes reach users via `@asyncapi/generator`. Map changed files to the changeset package as:
7878

AI-POLICY.md

Lines changed: 4 additions & 52 deletions
Original file line numberDiff line numberDiff line change
@@ -1,57 +1,9 @@
11
# AI Usage Policy
22

3-
This policy governs the use of generative AI and AI-assisted tooling (LLMs, coding agents, autocomplete assistants, and similar) when contributing to this repository.
3+
The full AI Usage Policy is now part of the official documentation, published at **[asyncapi.com/docs/tools/generator/ai-policy](https://www.asyncapi.com/docs/tools/generator/ai-policy)**. The source lives in [`apps/generator/docs/ai-policy.md`](apps/generator/docs/ai-policy.md). This file is a short index.
44

5-
> **AI tools are instruments; humans are the only authors.**
5+
> **AI tools are instruments humans are the only authors.**
66
7-
You may use AI tools to help you contribute. But the moment you open a pull request or an issue, **you** are the author of every line in it. The tool is not a co-maintainer, it is not accountable, and it cannot be cited as an excuse. This policy exists so that AI accelerates good contributions without lowering the bar for quality, security, or trust.
7+
The policy covers when it applies, your responsibilities as a contributor, the required `Generated-by:` disclosure, and the consequences of non-compliance. Read it in full before submitting AI-assisted work.
88

9-
This is a contributor-facing policy. It is **not** the same as [`AGENTS.md`](AGENTS.md): that file instructs coding agents on *how to write code that fits this repository*, whereas this policy defines *the rules and expectations for humans who use AI to contribute here*.
10-
11-
## When this applies
12-
13-
This policy applies to **any** contribution where a generative AI tool materially assisted in producing the content, including:
14-
15-
- source code, tests, and configuration,
16-
- documentation and template content,
17-
- issue descriptions, and
18-
- review comments.
19-
20-
If you only used AI for spell-checking, search, or to understand existing code, disclosure is not required. If AI generated or substantially shaped the content you are submitting, it is.
21-
22-
## Your responsibilities as a contributor
23-
24-
Before you submit AI-assisted work, you must:
25-
26-
1. **Review it thoroughly.** Read and understand every part of the contribution. If you do not understand it, do not submit it.
27-
2. **Verify quality.** Ensure it meets this project's standards — it builds, tests pass, and it follows the conventions in [`CONTRIBUTING.md`](CONTRIBUTING.md) and [`AGENTS.md`](AGENTS.md).
28-
3. **Remove extraneous changes.** Strip out unrelated edits, dead code, speculative abstractions, and noise the tool introduced. Keep the diff focused.
29-
4. **Be prepared to explain it.** You must be able to justify any part of the contribution if a maintainer asks. "The AI wrote it" is not an answer.
30-
5. **Accept responsibility.** You bear full accountability for the contribution, exactly as if you had written every line by hand.
31-
6. **Check licensing.** Confirm that generated material does not reproduce code under incompatible licenses and does not violate this project's [license](LICENSE).
32-
33-
> Blindly copy-pasting AI output introduces security and stability risks. Maintainers may close such pull requests without review.
34-
35-
## Required disclosure
36-
37-
If a contribution was materially AI-assisted, you **must** disclose it:
38-
39-
- **Pull requests:** include a `Generated-by:` line in the PR description naming the tool and its version, for example:
40-
41-
```text
42-
Generated-by: Claude Code 1.x
43-
Generated-by: GitHub Copilot
44-
```
45-
46-
The pull request template carries a dedicated AI-assistance section — fill in the `Generated-by:` line, or check the "no AI assistance" box if it does not apply. A CI check verifies that one of the two is present; it confirms a declaration exists, it does not and cannot verify its truthfulness.
47-
48-
- **Issues:** note in the issue body that AI assisted in drafting it.
49-
50-
Disclosure is a sign of good faith, not an admission of wrongdoing. We welcome AI-assisted contributions that follow this policy.
51-
52-
## Consequences
53-
54-
- Maintainers may **close non-compliant pull requests without review**, including undisclosed AI-generated PRs and PRs the contributor cannot explain.
55-
- **Repeated violations** are treated as a breach of our [Code of Conduct](CODE_OF_CONDUCT.md) and may result in the contributor being blocked.
56-
57-
If you are unsure whether something falls under this policy, ask a maintainer in the `#generator` channel on [AsyncAPI Slack](https://www.asyncapi.com/slack-invite) before submitting.
9+
See also the [AI tooling guide](https://www.asyncapi.com/docs/tools/generator/ai-tooling) for the AI tools the project runs on your PRs and issues.

0 commit comments

Comments
 (0)