mirror of
https://github.com/bmad-code-org/BMAD-METHOD.git
synced 2026-01-30 04:32:02 +00:00
* feat(docs): add Diataxis folder structure and update sidebar styling - Create tutorials, how-to, explanation, reference directories with subdirectories - Add index.md files for each main Diataxis section - Update homepage with Diataxis card navigation layout - Implement clean React Native-inspired sidebar styling - Convert sidebar to autogenerated for both Diataxis and legacy sections - Update docusaurus config with dark mode default and navbar changes 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> * feat(docs): migrate Phase 1 files to Diataxis structure Move 21 files to new locations: - Tutorials: quick-start guides, agent creation guide - How-To: installation, customization, workflows - Explanation: core concepts, features, game-dev, builder - Reference: merged glossary from BMM and BMGD Also: - Copy images to new locations - Update internal links via migration script (73 links updated) - Build verified successfully 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> * fix(docs): add category labels for sidebar folders Add _category_.json files to control display labels and position for autogenerated sidebar categories. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> * style(docs): improve welcome page and visual styling - Rewrite index.md with React Native-inspired welcoming layout - Add Diataxis section cards with descriptions - Remove sidebar separator, add spacing instead - Increase navbar padding with responsive breakpoints - Add rounded admonitions without left border bar - Use system font stack for better readability - Add lighter chevron styling in sidebar - Constrain max-width to 1600px for wide viewports 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> * fix: use baseUrl in meta tag paths for correct deployment URLs * feat(docs): complete Phase 2 - split files and fix broken links Phase 2 of Diataxis migration: - Split 16 large legacy files into 42+ focused documents - Created FAQ section with 7 topic-specific files - Created brownfield how-to guides (3 files) - Created workflow how-to guides (15+ files) - Created architecture explanation files (3 files) - Created TEA/testing explanation files - Moved remaining legacy module files to proper Diataxis locations Link fixes: - Fixed ~50 broken internal links across documentation - Updated relative paths for new file locations - Created missing index files for installation, advanced tutorials - Simplified TOC anchors to fix Docusaurus warnings Cleanup: - Removed legacy sidebar entries for deleted folders - Deleted duplicate and empty placeholder files - Moved workflow diagram assets to tutorials/images 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> * fix(build): use file glob instead of sidebar parsing for llms-full.txt Replace brittle sidebar.js regex parsing with recursive file glob. The old approach captured non-file strings like 'autogenerated' and category labels, resulting in only 5 files being processed. Now correctly processes all 86+ markdown files (~95k tokens). 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> * fix(seo): use absolute URLs in AI meta tags for agent discoverability AI web-browsing agents couldn't follow relative paths in meta tags due to URL security restrictions. Changed llms-full.txt and llms.txt meta tag URLs from relative (baseUrl) to absolute (urlParts.origin + baseUrl). 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> * refactor(docs): recategorize misplaced files per Diataxis analysis Phase 2.5 categorization fixes based on post-migration analysis: Moved to correct Diataxis categories: - tutorials/installation.md → deleted (duplicate of how-to/install-bmad.md) - tutorials/brownfield-onboarding.md → how-to/brownfield/index.md - reference/faq/* (8 files) → explanation/faq/ - reference/agents/barry-quick-flow.md → explanation/agents/ - reference/agents/bmgd-agents.md → explanation/game-dev/agents.md Created: - explanation/agents/index.md Fixed all broken internal links (14 total) 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> * feat(docs): add Getting Started tutorial and simplify build script - Add comprehensive Getting Started tutorial with installation as Step 1 - Simplify build-docs.js to read directly from docs/ (no consolidation) - Remove backup/restore dance that could corrupt docs folder on build failure - Remove ~150 lines of unused consolidation code 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> * fix(css): use fixed width layout to prevent content shifting Apply React Native docs approach: set both width and max-width at largest breakpoint (1400px) so content area maintains consistent size regardless of content length. Switches to fluid 100% below 1416px breakpoint. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> * refactor(docs): restructure tutorials with renamed entry point - Rename index.md to bmad-tutorial.md for clearer navigation - Remove redundant tutorials/index.md - Update sidebar and config references 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> * feat(docs): add tutorial style guide and AI agent announcement bar - Add docs/_contributing/ with tutorial style guide - Reformat quick-start-bmm.md and bmad-tutorial.md per style guide - Remove horizontal separators, add strategic admonitions - Add persistent announcement bar for AI agents directing to llms-full.txt - Fix footer broken link to tutorials 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> * feat(docs): add markdown demo page and UI refinements - Add comprehensive markdown-demo.md for style testing - Remove doc category links from navbar (use sidebar instead) - Remove card buttons from welcome page - Add dark mode styling for announcement bar - Clean up index.md card layout 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> * feat(docs): apply unified tutorial style and update references - Reformat create-custom-agent.md to follow tutorial style guide - Update tutorial-style.md with complete unified structure - Update all internal references to renamed tutorial files - Remove obsolete advanced/index.md 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> * refactor(docs): migrate from Docusaurus to Astro+Starlight Replace Docusaurus with Astro and the Starlight documentation theme for improved performance, better customization, and modern tooling. Build pipeline changes: - New build-docs.js orchestrates link checking, artifact generation, and Astro build in sequence - Add check-doc-links.js for validating internal links and anchors - Generate llms.txt and llms-full.txt for LLM-friendly documentation - Create downloadable source bundles (bmad-sources.zip, bmad-prompts.zip) - Suppress MODULE_TYPELESS_PACKAGE_JSON warning in Astro build - Output directly to build/site for cleaner deployment Website architecture: - Add rehype-markdown-links.js plugin to transform .md links to routes - Add site-url.js helper for GitHub Pages URL resolution with strict validation (throws on invalid GITHUB_REPOSITORY format) - Custom Astro components: Banner, Header, MobileMenuFooter - Symlink docs/ into website/src/content/docs for Starlight Documentation cleanup: - Remove Docusaurus _category_.json files (Starlight uses frontmatter) - Convert all docs to use YAML frontmatter with title field - Move downloads.md from website/src/pages to docs/ - Consolidate style guide and workflow diagram docs - Add 404.md and tutorials/index.md --------- Co-authored-by: forcetrainer <bryan@inagaki.us> Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
153 lines
4.3 KiB
JavaScript
153 lines
4.3 KiB
JavaScript
import js from '@eslint/js';
|
|
import eslintConfigPrettier from 'eslint-config-prettier/flat';
|
|
import nodePlugin from 'eslint-plugin-n';
|
|
import unicorn from 'eslint-plugin-unicorn';
|
|
import yml from 'eslint-plugin-yml';
|
|
|
|
export default [
|
|
// Global ignores for files/folders that should not be linted
|
|
{
|
|
ignores: [
|
|
'dist/**',
|
|
'coverage/**',
|
|
'**/*.min.js',
|
|
'test/template-test-generator/**',
|
|
'test/template-test-generator/**/*.js',
|
|
'test/template-test-generator/**/*.md',
|
|
'test/fixtures/**',
|
|
'test/fixtures/**/*.yaml',
|
|
'_bmad/**',
|
|
'_bmad*/**',
|
|
// Build output
|
|
'build/**',
|
|
// Website uses ESM/Astro - separate linting ecosystem
|
|
'website/**',
|
|
// Gitignored patterns
|
|
'z*/**', // z-samples, z1, z2, etc.
|
|
'.claude/**',
|
|
'.codex/**',
|
|
'.github/chatmodes/**',
|
|
'.agent/**',
|
|
'.agentvibes/**',
|
|
'.kiro/**',
|
|
'.roo/**',
|
|
'test-project-install/**',
|
|
'sample-project/**',
|
|
'tools/template-test-generator/test-scenarios/**',
|
|
'src/modules/*/sub-modules/**',
|
|
'.bundler-temp/**',
|
|
],
|
|
},
|
|
|
|
// Base JavaScript recommended rules
|
|
js.configs.recommended,
|
|
|
|
// Node.js rules
|
|
...nodePlugin.configs['flat/mixed-esm-and-cjs'],
|
|
|
|
// Unicorn rules (modern best practices)
|
|
unicorn.configs.recommended,
|
|
|
|
// YAML linting
|
|
...yml.configs['flat/recommended'],
|
|
|
|
// Place Prettier last to disable conflicting stylistic rules
|
|
eslintConfigPrettier,
|
|
|
|
// Project-specific tweaks
|
|
{
|
|
rules: {
|
|
// Allow console for CLI tools in this repo
|
|
'no-console': 'off',
|
|
// Enforce .yaml file extension for consistency
|
|
'yml/file-extension': [
|
|
'error',
|
|
{
|
|
extension: 'yaml',
|
|
caseSensitive: true,
|
|
},
|
|
],
|
|
// Prefer double quotes in YAML wherever quoting is used, but allow the other to avoid escapes
|
|
'yml/quotes': [
|
|
'error',
|
|
{
|
|
prefer: 'double',
|
|
avoidEscape: true,
|
|
},
|
|
],
|
|
// Relax some Unicorn rules that are too opinionated for this codebase
|
|
'unicorn/prevent-abbreviations': 'off',
|
|
'unicorn/no-null': 'off',
|
|
},
|
|
},
|
|
|
|
// CLI scripts under tools/** and test/**
|
|
{
|
|
files: ['tools/**/*.js', 'tools/**/*.mjs', 'test/**/*.js'],
|
|
rules: {
|
|
// Allow CommonJS patterns for Node CLI scripts
|
|
'unicorn/prefer-module': 'off',
|
|
'unicorn/import-style': 'off',
|
|
'unicorn/no-process-exit': 'off',
|
|
'n/no-process-exit': 'off',
|
|
'unicorn/no-await-expression-member': 'off',
|
|
'unicorn/prefer-top-level-await': 'off',
|
|
// Avoid failing CI on incidental unused vars in internal scripts
|
|
'no-unused-vars': 'off',
|
|
// Reduce style-only churn in internal tools
|
|
'unicorn/prefer-ternary': 'off',
|
|
'unicorn/filename-case': 'off',
|
|
'unicorn/no-array-reduce': 'off',
|
|
'unicorn/no-array-callback-reference': 'off',
|
|
'unicorn/consistent-function-scoping': 'off',
|
|
'n/no-extraneous-require': 'off',
|
|
'n/no-extraneous-import': 'off',
|
|
'n/no-unpublished-require': 'off',
|
|
'n/no-unpublished-import': 'off',
|
|
// Some scripts intentionally use globals provided at runtime
|
|
'no-undef': 'off',
|
|
// Additional relaxed rules for legacy/internal scripts
|
|
'no-useless-catch': 'off',
|
|
'unicorn/prefer-number-properties': 'off',
|
|
'no-unreachable': 'off',
|
|
'unicorn/text-encoding-identifier-case': 'off',
|
|
},
|
|
},
|
|
|
|
// Module installer scripts use CommonJS for compatibility
|
|
{
|
|
files: ['**/_module-installer/**/*.js'],
|
|
rules: {
|
|
// Allow CommonJS patterns for installer scripts
|
|
'unicorn/prefer-module': 'off',
|
|
'n/no-missing-require': 'off',
|
|
'n/no-unpublished-require': 'off',
|
|
},
|
|
},
|
|
|
|
// ESLint config file should not be checked for publish-related Node rules
|
|
{
|
|
files: ['eslint.config.mjs'],
|
|
rules: {
|
|
'n/no-unpublished-import': 'off',
|
|
},
|
|
},
|
|
|
|
// GitHub workflow files in this repo may use empty mapping values
|
|
{
|
|
files: ['.github/workflows/**/*.yaml'],
|
|
rules: {
|
|
'yml/no-empty-mapping-value': 'off',
|
|
},
|
|
},
|
|
|
|
// Other GitHub YAML files may intentionally use empty values and reserved filenames
|
|
{
|
|
files: ['.github/**/*.yaml'],
|
|
rules: {
|
|
'yml/no-empty-mapping-value': 'off',
|
|
'unicorn/filename-case': 'off',
|
|
},
|
|
},
|
|
];
|