-
-
Notifications
You must be signed in to change notification settings - Fork 1k
feat: add LLM-friendly documentation (llms.txt, sitemap.xml) #4706
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
Conversation
…syncapi#4408 Implements comprehensive LLM-optimized documentation following the llms.txt standard to help LLMs generate correct AsyncAPI v3 documents. Changes: - Added scripts/build-llms-txt.ts to generate llms.txt and llms-full.txt - Added scripts/build-sitemap.ts to generate sitemap.xml - Added scripts/test-llms-txt.ts for format validation - Updated package.json with new build scripts integrated into build process - Generates public/llms.txt with structured AsyncAPI documentation index - Generates public/llms-full.txt with expanded content and v3 guidance - Generates public/sitemap.xml for broader search engine consumption - Exports AsyncAPI v3 JSON schema to public/schemas/3.0.0.json - Added docs/LLM_DOCUMENTATION.md maintenance guide All files automatically generated during build process. Format validated and compliant with llms.txt specification. Addresses issue asyncapi#4408 - AI improvements for better LLM-generated AsyncAPI documents
✅ Deploy Preview for asyncapi-website ready!Built without sensitive environment variables
To edit notification comments on pull requests, go to your Netlify project configuration. |
WalkthroughThis PR introduces infrastructure for generating LLM-optimized documentation artifacts including llms.txt, llms-full.txt, and sitemap.xml, along with build scripts for generation and validation, plus comprehensive documentation describing the maintenance process. Changes
Estimated code review effort🎯 3 (Moderate) | ⏱️ ~20–25 minutes
Suggested labels
Suggested reviewers
Poem
Pre-merge checks and finishing touches✅ Passed checks (3 passed)
✨ Finishing touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
Codecov Report❌ Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## master #4706 +/- ##
============================================
- Coverage 100.00% 82.88% -17.12%
============================================
Files 22 25 +3
Lines 799 964 +165
Branches 146 166 +20
============================================
Hits 799 799
- Misses 0 165 +165 ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
|
⚡️ Lighthouse report for the changes in this PR:
Lighthouse ran on https://deploy-preview-4706--asyncapi-website.netlify.app/ |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 2
♻️ Duplicate comments (2)
public/llms.txt (1)
1-41: Generated file should not be committed (duplicate of sitemap.xml issue).Like
public/sitemap.xml, this file is generated byscripts/build-llms-txt.tsand should not be committed to the repository. See the review comment onpublic/sitemap.xmlfor the full rationale and solution.Include this file in the
.gitignoreentry mentioned in the sitemap.xml review.public/llms-full.txt (1)
1-58: Generated file should not be committed (duplicate of sitemap.xml issue).This file is generated by
scripts/build-llms-txt.tsand should not be committed. See the review comment onpublic/sitemap.xmlfor the complete rationale and solution.Include this file in the
.gitignoreentry mentioned in the sitemap.xml review.
🧹 Nitpick comments (3)
scripts/build-llms-txt.ts (2)
187-206: Ensure PUBLIC_DIR exists before writing files.The script writes to
PUBLIC_DIRwithout verifying it exists. While thecopySchemas()function correctly creates its subdirectory withrecursive: true, the main files lack this protection.Apply this diff to ensure the directory exists:
async function main() { try { console.log('Generating LLM-friendly documentation files...\n'); + // Ensure public directory exists + await fs.mkdir(PUBLIC_DIR, { recursive: true }); + const llmsTxt = generateLLMSTxt(); await fs.writeFile(path.join(PUBLIC_DIR, 'llms.txt'), llmsTxt, 'utf-8');
18-149: Consider future automation for documentation discovery.The hardcoded sections array works for the initial implementation but creates a maintenance burden. Each new documentation page requires manual updates to this script.
For future consideration, you could explore auto-discovery mechanisms such as:
- Parsing the site's navigation configuration
- Reading from a centralized documentation manifest
- Automatically scanning markdown files with frontmatter metadata
This would reduce manual maintenance and keep the LLM documentation automatically in sync with site structure.
scripts/build-sitemap.ts (1)
14-78: Consider the maintenance implications of hardcoded URLs.Similar to
build-llms-txt.ts, this script uses a hardcoded URL list that requires manual updates when documentation structure changes.For future iterations, consider:
- Generating the sitemap dynamically from the site's navigation structure or file system
- Using a centralized configuration file for both scripts
- Adding automated checks to detect new documentation pages that should be included
This would help keep the sitemap automatically in sync with actual site content.
📜 Review details
Configuration used: Path: .coderabbit.yaml
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (8)
docs/LLM_DOCUMENTATION.md(1 hunks)package.json(3 hunks)public/llms-full.txt(1 hunks)public/llms.txt(1 hunks)public/sitemap.xml(1 hunks)scripts/build-llms-txt.ts(1 hunks)scripts/build-sitemap.ts(1 hunks)scripts/test-llms-txt.ts(1 hunks)
🧰 Additional context used
🧠 Learnings (9)
📓 Common learnings
Learnt from: anshgoyalevil
Repo: asyncapi/website PR: 3950
File: scripts/utils/check-locales.ts:122-129
Timestamp: 2025-04-20T16:05:16.482Z
Learning: In the AsyncAPI website project, Next.js throws errors at runtime when locale files are missing, making additional validation for missing files unnecessary in the check-locales script.
Learnt from: sagarkori143
Repo: asyncapi/website PR: 0
File: :0-0
Timestamp: 2025-06-20T14:47:22.389Z
Learning: The AsyncAPI website modularization PR uses Promise.allSettled for parallel execution of build tasks, which provides better performance and fault isolation compared to sequential execution.
📚 Learning: 2025-01-18T08:44:43.614Z
Learnt from: akshatnema
Repo: asyncapi/website PR: 3423
File: tests/index.test.js:2-7
Timestamp: 2025-01-18T08:44:43.614Z
Learning: In the AsyncAPI website project, JavaScript test files must include the .ts extension when importing TypeScript files (e.g., `require('../scripts/build-rss.ts')`). This is a project-specific requirement enforced by the linting rules and build setup, even though it differs from typical Node.js behavior.
Applied to files:
scripts/build-llms-txt.tsscripts/test-llms-txt.tspackage.json
📚 Learning: 2025-01-18T08:44:43.614Z
Learnt from: akshatnema
Repo: asyncapi/website PR: 3423
File: tests/index.test.js:2-7
Timestamp: 2025-01-18T08:44:43.614Z
Learning: In the AsyncAPI website project, JavaScript test files must include the .ts extension when importing TypeScript files (e.g., `require('../scripts/build-rss.ts')`). This is enforced by the project's configuration which uses `moduleResolution: "bundler"` in tsconfig.json and TypeScript-aware ESLint plugins. The .ts extensions are required even though the files are imported using CommonJS require statements.
Applied to files:
scripts/build-llms-txt.tsscripts/test-llms-txt.tspackage.json
📚 Learning: 2025-07-19T20:58:34.040Z
Learnt from: bandantonio
Repo: asyncapi/website PR: 4264
File: markdown/docs/tutorials/getting-started/coming-from-openapi.md:24-25
Timestamp: 2025-07-19T20:58:34.040Z
Learning: In the AsyncAPI website documentation, anchor references to specification sections can use camelCase format (e.g., #serverObject, #parameterObject, #messageObject) even if the actual HTML IDs on the spec page use hyphenated lowercase format. This is acceptable and should not be changed.
Applied to files:
public/llms.txtpublic/llms-full.txt
📚 Learning: 2025-05-09T17:35:57.171Z
Learnt from: TRohit20
Repo: asyncapi/website PR: 4107
File: markdown/docs/tools/studio/architecture.md:23-23
Timestamp: 2025-05-09T17:35:57.171Z
Learning: In the AsyncAPI Studio architecture documentation, "Layer Breakdown" is intentionally structured as an H3 heading (subsection) because it provides additional detail about the layered architecture pattern introduced earlier, rather than being a standalone main section.
Applied to files:
public/llms.txtpublic/llms-full.txt
📚 Learning: 2024-12-30T11:00:42.064Z
Learnt from: JeelRajodiya
Repo: asyncapi/website PR: 3423
File: jest.config.cjs:6-7
Timestamp: 2024-12-30T11:00:42.064Z
Learning: The user only wants coverage for scripts, not for .tsx files, because the existing tests are focused on scripts.
Applied to files:
scripts/test-llms-txt.ts
📚 Learning: 2024-11-29T17:36:09.783Z
Learnt from: vishvamsinh28
Repo: asyncapi/website PR: 3378
File: tests/markdown/check-markdown.test.js:133-138
Timestamp: 2024-11-29T17:36:09.783Z
Learning: When testing the 'main' function in 'check-markdown.test.js', it's acceptable to simply ensure it doesn't throw any errors, as the functions it calls are already tested elsewhere.
Applied to files:
scripts/test-llms-txt.ts
📚 Learning: 2025-04-20T16:05:16.482Z
Learnt from: anshgoyalevil
Repo: asyncapi/website PR: 3950
File: scripts/utils/check-locales.ts:122-129
Timestamp: 2025-04-20T16:05:16.482Z
Learning: In the AsyncAPI website project, Next.js throws errors at runtime when locale files are missing, making additional validation for missing files unnecessary in the check-locales script.
Applied to files:
scripts/test-llms-txt.ts
📚 Learning: 2025-01-18T08:44:43.614Z
Learnt from: akshatnema
Repo: asyncapi/website PR: 3423
File: tests/index.test.js:2-7
Timestamp: 2025-01-18T08:44:43.614Z
Learning: In JavaScript test files within the AsyncAPI website project, TypeScript file imports must include the .ts extension to avoid lint errors, even though the files being imported are JavaScript files.
Applied to files:
package.json
🪛 LanguageTool
docs/LLM_DOCUMENTATION.md
[uncategorized] ~48-~48: Did you mean the formatting language “Markdown” (= proper noun)?
Context: ...- ✓ All required files exist - ✓ Proper markdown formatting - ✓ Correct link structure ...
(MARKDOWN_NNP)
[style] ~70-~70: This is not the usual sequence for adjectives that have no special emphasis.
Context: ... Adding New Documentation When you add new important documentation pages: 1. **Edit `script...
(EN_ADJ_ORDER)
[uncategorized] ~120-~120: Did you mean the formatting language “Markdown” (= proper noun)?
Context: ...with H2 sections (## Section) - ✓ Use markdown links: [title](url) - ✓ Add descripti...
(MARKDOWN_NNP)
🪛 markdownlint-cli2 (0.18.1)
docs/LLM_DOCUMENTATION.md
188-188: Bare URL used
(MD034, no-bare-urls)
189-189: Bare URL used
(MD034, no-bare-urls)
207-207: Bare URL used
(MD034, no-bare-urls)
209-209: Bare URL used
(MD034, no-bare-urls)
⏰ Context from checks skipped due to timeout of 180000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (2)
- GitHub Check: cypress-run
- GitHub Check: Lighthouse CI
🔇 Additional comments (8)
scripts/build-llms-txt.ts (1)
1-7: LGTM!The imports and constants are well-structured and appropriate for the file generation tasks.
package.json (1)
14-14: LGTM!The new npm scripts are well-integrated into the build pipeline. The chaining in
build-scriptsensures the LLM documentation files are generated as part of the standard build process, and the script commands follow the project's existing conventions usingtsx.Also applies to: 25-26
scripts/build-sitemap.ts (2)
80-87: LGTM!The XML entity escaping function correctly handles all standard XML special characters (
&,<,>,",').
17-55: Fix incorrect URL for specification v2 reference and consider dynamic sitemap generation.The sitemap contains hardcoded URLs that require manual updates when site structure changes. During verification, one URL was found to be incorrect:
- Line 29:
/docs/reference/specification/v2should be/docs/reference/specification/v2.x(the actual markdown file isv2.x.md)All other documentation URLs (15 of 16) correctly map to existing markdown files. To prevent future mismatches between the sitemap and actual pages, consider either:
- Dynamically generating sitemap entries from the built pages directory instead of maintaining a hardcoded list
- Adding automated tests to validate all sitemap URLs correspond to accessible pages during the build process
⛔ Skipped due to learnings
Learnt from: anshgoyalevil Repo: asyncapi/website PR: 3557 File: tests/fixtures/markdown/check-edit-links-data.js:3-11 Timestamp: 2025-01-19T04:51:41.255Z Learning: In the AsyncAPI website repository, the test data in `tests/fixtures/markdown/check-edit-links-data.js` intentionally includes inconsistent paths (with and without 'docs' prefix) to verify the script's ability to normalize and handle ambiguous path structures.docs/LLM_DOCUMENTATION.md (1)
1-209: Excellent documentation structure and content.The documentation is comprehensive, well-organized, and provides clear guidance for maintaining the LLM documentation system. The structure, examples, validation checklist, and troubleshooting sections will be very helpful for future maintainers.
scripts/test-llms-txt.ts (3)
20-109: LGTM - Comprehensive format validation.The
validateLLMSTxt()function thoroughly validates the llms.txt file against the specification requirements. The checks are well-structured with appropriate distinction between errors (spec violations) and warnings (recommendations).Key validations:
- Required H1 header
- Required blockquote description
- H2 section organization
- Absolute URL validation
- Optional section presence
- Proper list structure
114-140: LGTM - Appropriate file existence validation.The validation correctly checks for all generated artifacts:
llms.txtandllms-full.txt(documentation files)sitemap.xml(search engine sitemap)schemas/3.0.0.json(AsyncAPI v3 schema)This ensures the build process completed successfully and all required files are present.
145-189: LGTM - Clear validation orchestration and output.The main function effectively orchestrates both validation checks and provides clear, actionable output. The use of
process.exit(1)on failure is appropriate for CI/CD integration, and the success message includes helpful next steps for submission to LLM directories.
| 1. **llmstxt.site**: https://llmstxt.site/submit | ||
| 2. **directory.llmstxt.cloud**: https://directory.llmstxt.cloud/ |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Format bare URLs as markdown links.
The static analysis tools correctly identify bare URLs that should be formatted as markdown links for better readability and consistency.
Apply this diff to format the URLs:
After deploying to production, submit to LLM directories:
-1. **llmstxt.site**: https://llmstxt.site/submit
-2. **directory.llmstxt.cloud**: https://directory.llmstxt.cloud/
+1. **llmstxt.site**: <https://llmstxt.site/submit>
+2. **directory.llmstxt.cloud**: <https://directory.llmstxt.cloud/>
Provide:
- URL: `https://www.asyncapi.com/llms.txt` For questions or issues:
-- GitHub Issue: https://github.com/asyncapi/website/issues/4408
+- GitHub Issue: <https://github.com/asyncapi/website/issues/4408>
- AsyncAPI Slack: #11-website channel
-- Standard: https://llmstxt.org/
+- Standard: <https://llmstxt.org/>Note: Using angle brackets <URL> creates auto-links in markdown, which satisfies the linter while keeping the URLs clickable.
Also applies to: 207-209
🧰 Tools
🪛 markdownlint-cli2 (0.18.1)
188-188: Bare URL used
(MD034, no-bare-urls)
189-189: Bare URL used
(MD034, no-bare-urls)
🤖 Prompt for AI Agents
In docs/LLM_DOCUMENTATION.md around lines 188-189 (and also apply the same
change to lines 207-209), the two bare URLs should be formatted as markdown
links or auto-links; replace "https://llmstxt.site/submit" and
"https://directory.llmstxt.cloud/" with markdown-style links (e.g.,
[llmstxt.site](https://llmstxt.site/submit)) or wrap them in angle brackets
(<https://...>) so the linter recognizes them as links and the text remains
clickable and consistent.
public/sitemap.xml
Outdated
| <?xml version="1.0" encoding="UTF-8"?> | ||
| <urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"> | ||
| <url> | ||
| <loc>https://www.asyncapi.com/</loc> | ||
| <lastmod>2025-12-11</lastmod> | ||
| <changefreq>weekly</changefreq> | ||
| <priority>1.0</priority> | ||
| </url> | ||
| <url> | ||
| <loc>https://www.asyncapi.com/docs</loc> | ||
| <lastmod>2025-12-11</lastmod> | ||
| <changefreq>weekly</changefreq> | ||
| <priority>0.9</priority> | ||
| </url> | ||
| <url> | ||
| <loc>https://www.asyncapi.com/tools</loc> | ||
| <lastmod>2025-12-11</lastmod> | ||
| <changefreq>weekly</changefreq> | ||
| <priority>0.9</priority> | ||
| </url> | ||
| <url> | ||
| <loc>https://www.asyncapi.com/blog</loc> | ||
| <lastmod>2025-12-11</lastmod> | ||
| <changefreq>daily</changefreq> | ||
| <priority>0.8</priority> | ||
| </url> | ||
| <url> | ||
| <loc>https://www.asyncapi.com/community</loc> | ||
| <lastmod>2025-12-11</lastmod> | ||
| <changefreq>weekly</changefreq> | ||
| <priority>0.7</priority> | ||
| </url> | ||
| <url> | ||
| <loc>https://www.asyncapi.com/docs/reference/specification/v3.0.0</loc> | ||
| <lastmod>2025-12-11</lastmod> | ||
| <changefreq>monthly</changefreq> | ||
| <priority>1.0</priority> | ||
| </url> | ||
| <url> | ||
| <loc>https://www.asyncapi.com/docs/reference/specification/v2</loc> | ||
| <lastmod>2025-12-11</lastmod> | ||
| <changefreq>yearly</changefreq> | ||
| <priority>0.5</priority> | ||
| </url> | ||
| <url> | ||
| <loc>https://www.asyncapi.com/docs/migration/migrating-to-v3</loc> | ||
| <lastmod>2025-12-11</lastmod> | ||
| <changefreq>monthly</changefreq> | ||
| <priority>0.9</priority> | ||
| </url> | ||
| <url> | ||
| <loc>https://www.asyncapi.com/docs/concepts</loc> | ||
| <lastmod>2025-12-11</lastmod> | ||
| <changefreq>monthly</changefreq> | ||
| <priority>0.8</priority> | ||
| </url> | ||
| <url> | ||
| <loc>https://www.asyncapi.com/docs/concepts/application</loc> | ||
| <lastmod>2025-12-11</lastmod> | ||
| <changefreq>monthly</changefreq> | ||
| <priority>0.7</priority> | ||
| </url> | ||
| <url> | ||
| <loc>https://www.asyncapi.com/docs/concepts/channel</loc> | ||
| <lastmod>2025-12-11</lastmod> | ||
| <changefreq>monthly</changefreq> | ||
| <priority>0.7</priority> | ||
| </url> | ||
| <url> | ||
| <loc>https://www.asyncapi.com/docs/concepts/message</loc> | ||
| <lastmod>2025-12-11</lastmod> | ||
| <changefreq>monthly</changefreq> | ||
| <priority>0.7</priority> | ||
| </url> | ||
| <url> | ||
| <loc>https://www.asyncapi.com/docs/concepts/server</loc> | ||
| <lastmod>2025-12-11</lastmod> | ||
| <changefreq>monthly</changefreq> | ||
| <priority>0.7</priority> | ||
| </url> | ||
| <url> | ||
| <loc>https://www.asyncapi.com/docs/concepts/protocol</loc> | ||
| <lastmod>2025-12-11</lastmod> | ||
| <changefreq>monthly</changefreq> | ||
| <priority>0.7</priority> | ||
| </url> | ||
| <url> | ||
| <loc>https://www.asyncapi.com/docs/tutorials</loc> | ||
| <lastmod>2025-12-11</lastmod> | ||
| <changefreq>monthly</changefreq> | ||
| <priority>0.8</priority> | ||
| </url> | ||
| <url> | ||
| <loc>https://www.asyncapi.com/docs/tutorials/create-asyncapi-document</loc> | ||
| <lastmod>2025-12-11</lastmod> | ||
| <changefreq>monthly</changefreq> | ||
| <priority>0.8</priority> | ||
| </url> | ||
| <url> | ||
| <loc>https://www.asyncapi.com/docs/tutorials/streetlights-interactive</loc> | ||
| <lastmod>2025-12-11</lastmod> | ||
| <changefreq>monthly</changefreq> | ||
| <priority>0.7</priority> | ||
| </url> | ||
| <url> | ||
| <loc>https://www.asyncapi.com/docs/tutorials/message-validation</loc> | ||
| <lastmod>2025-12-11</lastmod> | ||
| <changefreq>monthly</changefreq> | ||
| <priority>0.7</priority> | ||
| </url> | ||
| <url> | ||
| <loc>https://www.asyncapi.com/docs/tutorials/generate-code</loc> | ||
| <lastmod>2025-12-11</lastmod> | ||
| <changefreq>monthly</changefreq> | ||
| <priority>0.7</priority> | ||
| </url> | ||
| <url> | ||
| <loc>https://www.asyncapi.com/docs/tools</loc> | ||
| <lastmod>2025-12-11</lastmod> | ||
| <changefreq>weekly</changefreq> | ||
| <priority>0.8</priority> | ||
| </url> | ||
| <url> | ||
| <loc>https://www.asyncapi.com/llms.txt</loc> | ||
| <lastmod>2025-12-11</lastmod> | ||
| <changefreq>monthly</changefreq> | ||
| <priority>0.6</priority> | ||
| </url> | ||
| <url> | ||
| <loc>https://www.asyncapi.com/llms-full.txt</loc> | ||
| <lastmod>2025-12-11</lastmod> | ||
| <changefreq>monthly</changefreq> | ||
| <priority>0.5</priority> | ||
| </url> | ||
| </urlset> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Generated files should not be committed to the repository.
This sitemap.xml file is generated by scripts/build-sitemap.ts and contains today's date. Committing generated files to version control creates several issues:
- Merge conflicts: Multiple PRs will conflict when updating the same generated file
- Stale content: The lastmod dates become outdated in the repository
- Git history bloat: Generated content pollutes the commit history
- Source of truth confusion: The script is the source of truth, not the committed file
Recommended approach:
- Add generated files to
.gitignore:
# Generated LLM documentation files
/public/llms.txt
/public/llms-full.txt
/public/sitemap.xml
/public/schemas/-
Ensure the build process generates these files:
- In local development:
npm run build-scripts(already configured) - In CI/CD: Ensure the build step runs before deployment
- Document that these files are generated and not manually edited
- In local development:
-
If you need to verify the output locally, generate the files and review them without committing:
npm run generate:llms && npm run generate:sitemapThis approach is standard practice for build artifacts and aligns with how the project handles other generated content.
🤖 Prompt for AI Agents
In public/sitemap.xml (lines 1-135): this file is generated by
scripts/build-sitemap.ts and should not be committed; remove the committed
generated file from the PR (or revert the commit), add the generated outputs to
.gitignore (include /public/sitemap.xml, /public/llms.txt, /public/llms-full.txt
and /public/schemas/), and ensure the repository/CI invocation runs the build
script to regenerate these artifacts during local dev and CI/CD (document the
npm run build-scripts / generate commands in the contributing or build docs so
developers know how to produce and verify these files without committing them).
Generated files (llms.txt, llms-full.txt, sitemap.xml, schemas/) should not be committed to version control. - Added all generated files to .gitignore - Removed committed generated files from git tracking - Updated documentation to clarify these are build artifacts - Files will be automatically generated during npm run build-scripts
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 0
♻️ Duplicate comments (1)
docs/LLM_DOCUMENTATION.md (1)
194-195: Format bare URLs as markdown links.Lines 194–195 and 213–215 contain bare URLs that violate the
no-bare-urlslinter rule. Wrap them in angle brackets to create auto-links that remain clickable and satisfy the linter.Apply this diff:
After deploying to production, submit to LLM directories: -1. **llmstxt.site**: https://llmstxt.site/submit -2. **directory.llmstxt.cloud**: https://directory.llmstxt.cloud/ +1. **llmstxt.site**: <https://llmstxt.site/submit> +2. **directory.llmstxt.cloud**: <https://directory.llmstxt.cloud/> Provide: - URL: `https://www.asyncapi.com/llms.txt` - Description: "AsyncAPI specification for event-driven APIs" ## Future Enhancements## Support For questions or issues: -- GitHub Issue: https://github.com/asyncapi/website/issues/4408 +- GitHub Issue: <https://github.com/asyncapi/website/issues/4408> - AsyncAPI Slack: #11-website channel -- Standard: https://llmstxt.org/ +- Standard: <https://llmstxt.org/>Also applies to: 213-215
🧹 Nitpick comments (1)
docs/LLM_DOCUMENTATION.md (1)
54-54: Capitalize "Markdown" as proper noun."Markdown" is the proper name of the markup language and should be capitalized in both locations.
Apply this diff:
- ✓ Proper markdown formatting + ✓ Proper Markdown formatting- ✓ Use markdown links: `[title](url)` + ✓ Use Markdown links: `[title](url)`Also applies to: 126-126
📜 Review details
Configuration used: Path: .coderabbit.yaml
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (2)
.gitignore(1 hunks)docs/LLM_DOCUMENTATION.md(1 hunks)
✅ Files skipped from review due to trivial changes (1)
- .gitignore
🧰 Additional context used
🧠 Learnings (3)
📓 Common learnings
Learnt from: asyncapi-bot
Repo: asyncapi/website PR: 0
File: :0-0
Timestamp: 2025-02-18T12:07:42.211Z
Learning: The following PR commands are supported in the asyncapi/website repository:
- `/please-take-a-look` or `/ptal`: Requests attention from reviewers who haven't reviewed the PR
- `/ready-to-merge` or `/rtm`: Triggers automerge when all conditions are met
- `/do-not-merge` or `/dnm`: Blocks automerge even if all conditions are met
- `/autoupdate` or `/au`: Adds autoupdate label to keep PR in sync with target branch
- `/update` or `/u`: One-time update of PR with latest changes from target branch
📚 Learning: 2024-11-13T20:34:18.998Z
Learnt from: bandantonio
Repo: asyncapi/website PR: 3393
File: markdown/blog/2024-Q1-docs-report.md:10-12
Timestamp: 2024-11-13T20:34:18.998Z
Learning: In the markdown files for the AsyncAPI website, avatar image paths should be referenced without the `public` prefix (e.g., use `/img/avatars/...` instead of `/public/img/avatars/...`).
Applied to files:
docs/LLM_DOCUMENTATION.md
📚 Learning: 2025-01-19T04:51:41.255Z
Learnt from: anshgoyalevil
Repo: asyncapi/website PR: 3557
File: tests/fixtures/markdown/check-edit-links-data.js:3-11
Timestamp: 2025-01-19T04:51:41.255Z
Learning: In the AsyncAPI website repository, the test data in `tests/fixtures/markdown/check-edit-links-data.js` intentionally includes inconsistent paths (with and without 'docs' prefix) to verify the script's ability to normalize and handle ambiguous path structures.
Applied to files:
docs/LLM_DOCUMENTATION.md
🪛 LanguageTool
docs/LLM_DOCUMENTATION.md
[uncategorized] ~54-~54: Did you mean the formatting language “Markdown” (= proper noun)?
Context: ...- ✓ All required files exist - ✓ Proper markdown formatting - ✓ Correct link structure ...
(MARKDOWN_NNP)
[style] ~76-~76: This is not the usual sequence for adjectives that have no special emphasis.
Context: ... Adding New Documentation When you add new important documentation pages: 1. **Edit `script...
(EN_ADJ_ORDER)
[uncategorized] ~126-~126: Did you mean the formatting language “Markdown” (= proper noun)?
Context: ...with H2 sections (## Section) - ✓ Use markdown links: [title](url) - ✓ Add descripti...
(MARKDOWN_NNP)
🪛 markdownlint-cli2 (0.18.1)
docs/LLM_DOCUMENTATION.md
194-194: Bare URL used
(MD034, no-bare-urls)
195-195: Bare URL used
(MD034, no-bare-urls)
213-213: Bare URL used
(MD034, no-bare-urls)
215-215: Bare URL used
(MD034, no-bare-urls)
⏰ Context from checks skipped due to timeout of 180000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (4)
- GitHub Check: Redirect rules - asyncapi-website
- GitHub Check: Header rules - asyncapi-website
- GitHub Check: Pages changed - asyncapi-website
- GitHub Check: cypress-run
🔇 Additional comments (1)
docs/LLM_DOCUMENTATION.md (1)
1-192: Well-structured maintenance guide.The document clearly explains the build process, validation steps, and maintenance workflow. Organization and technical content look solid.
|
@derberg have a look on this 😊 |
|
This repository is a production project, not a sandbox for testing AI-assisted development tools. We require contributors to fully understand the logic they are submitting so they can support it during review. We cannot allocate maintainer time to reviewing experimental or auto-generated code. |
Implements comprehensive LLM-optimized documentation following the llms.txt standard to help LLMs generate correct AsyncAPI v3 documents.
Changes:
All files automatically generated during build process.
Format validated and compliant with llms.txt specification.
Addresses issue #4408 - AI improvements for better LLM-generated AsyncAPI documents
Summary by CodeRabbit
New Features
Chores
✏️ Tip: You can customize this high-level summary in your review settings.