mirror of
https://github.com/bmad-code-org/BMAD-METHOD.git
synced 2026-01-30 04:32:02 +00:00
feat: add documentation website with Docusaurus build pipeline (#1177)
* feat: add documentation website with Docusaurus build pipeline
* feat(docs): add AI discovery meta tags for llms.txt files
- Add global headTags with ai-terms, llms, llms-full meta tags
- Update landing page link to clarify AI context purpose
* fix(docs): restore accidentally deleted faq.md and glossary.md
Files were removed in 12dd97fe during path restructuring.
* fix(docs): update broken project-readme links to GitHub URL
* feat(schema): add compound trigger format validation
This commit is contained in:
24
test/fixtures/agent-schema/invalid/menu-triggers/camel-case.agent.yaml
vendored
Normal file
24
test/fixtures/agent-schema/invalid/menu-triggers/camel-case.agent.yaml
vendored
Normal file
@@ -0,0 +1,24 @@
|
||||
# Test: CamelCase trigger
|
||||
# Expected: FAIL
|
||||
# Error code: custom
|
||||
# Error path: agent.menu[0].trigger
|
||||
# Error message: agent.menu[].trigger must be kebab-case (lowercase words separated by hyphen)
|
||||
|
||||
agent:
|
||||
metadata:
|
||||
id: camel-case-trigger
|
||||
name: CamelCase Trigger
|
||||
title: CamelCase
|
||||
icon: ❌
|
||||
|
||||
persona:
|
||||
role: Test agent
|
||||
identity: Test identity
|
||||
communication_style: Test style
|
||||
principles:
|
||||
- Test principle
|
||||
|
||||
menu:
|
||||
- trigger: listTasks
|
||||
description: Invalid CamelCase trigger
|
||||
action: list_tasks
|
||||
24
test/fixtures/agent-schema/invalid/menu-triggers/compound-invalid-format.agent.yaml
vendored
Normal file
24
test/fixtures/agent-schema/invalid/menu-triggers/compound-invalid-format.agent.yaml
vendored
Normal file
@@ -0,0 +1,24 @@
|
||||
# Test: Compound trigger with invalid format
|
||||
# Expected: FAIL
|
||||
# Error code: custom
|
||||
# Error path: agent.menu[0].trigger
|
||||
# Error message: agent.menu[].trigger compound format error: invalid compound trigger format
|
||||
|
||||
agent:
|
||||
metadata:
|
||||
id: compound-invalid-format
|
||||
name: Invalid Format
|
||||
title: Invalid Format Test
|
||||
icon: 🧪
|
||||
|
||||
persona:
|
||||
role: Test agent
|
||||
identity: Test identity
|
||||
communication_style: Test style
|
||||
principles:
|
||||
- Test principle
|
||||
|
||||
menu:
|
||||
- trigger: TS or tech-spec
|
||||
description: Missing fuzzy match clause
|
||||
action: test
|
||||
24
test/fixtures/agent-schema/invalid/menu-triggers/compound-mismatched-kebab.agent.yaml
vendored
Normal file
24
test/fixtures/agent-schema/invalid/menu-triggers/compound-mismatched-kebab.agent.yaml
vendored
Normal file
@@ -0,0 +1,24 @@
|
||||
# Test: Compound trigger with mismatched kebab portions
|
||||
# Expected: FAIL
|
||||
# Error code: custom
|
||||
# Error path: agent.menu[0].trigger
|
||||
# Error message: agent.menu[].trigger compound format error: kebab-case trigger mismatch: "tech-spec" vs "other-thing"
|
||||
|
||||
agent:
|
||||
metadata:
|
||||
id: compound-mismatched-kebab
|
||||
name: Mismatched Kebab
|
||||
title: Mismatched Kebab Test
|
||||
icon: 🧪
|
||||
|
||||
persona:
|
||||
role: Test agent
|
||||
identity: Test identity
|
||||
communication_style: Test style
|
||||
principles:
|
||||
- Test principle
|
||||
|
||||
menu:
|
||||
- trigger: TS or tech-spec or fuzzy match on other-thing
|
||||
description: Kebab portions do not match
|
||||
action: test
|
||||
24
test/fixtures/agent-schema/invalid/menu-triggers/compound-wrong-shortcut.agent.yaml
vendored
Normal file
24
test/fixtures/agent-schema/invalid/menu-triggers/compound-wrong-shortcut.agent.yaml
vendored
Normal file
@@ -0,0 +1,24 @@
|
||||
# Test: Compound trigger with wrong shortcut
|
||||
# Expected: FAIL
|
||||
# Error code: custom
|
||||
# Error path: agent.menu[0].trigger
|
||||
# Error message: agent.menu[].trigger compound format error: shortcut "XX" does not match expected "TS" for "tech-spec"
|
||||
|
||||
agent:
|
||||
metadata:
|
||||
id: compound-wrong-shortcut
|
||||
name: Wrong Shortcut
|
||||
title: Wrong Shortcut Test
|
||||
icon: 🧪
|
||||
|
||||
persona:
|
||||
role: Test agent
|
||||
identity: Test identity
|
||||
communication_style: Test style
|
||||
principles:
|
||||
- Test principle
|
||||
|
||||
menu:
|
||||
- trigger: XX or tech-spec or fuzzy match on tech-spec
|
||||
description: Shortcut does not match kebab trigger
|
||||
action: test
|
||||
24
test/fixtures/agent-schema/invalid/menu-triggers/leading-asterisk.agent.yaml
vendored
Normal file
24
test/fixtures/agent-schema/invalid/menu-triggers/leading-asterisk.agent.yaml
vendored
Normal file
@@ -0,0 +1,24 @@
|
||||
# Test: Trigger with leading asterisk
|
||||
# Expected: FAIL
|
||||
# Error code: custom
|
||||
# Error path: agent.menu[0].trigger
|
||||
# Error message: agent.menu[].trigger must be kebab-case (lowercase words separated by hyphen)
|
||||
|
||||
agent:
|
||||
metadata:
|
||||
id: asterisk-trigger
|
||||
name: Asterisk Trigger
|
||||
title: Asterisk
|
||||
icon: ❌
|
||||
|
||||
persona:
|
||||
role: Test agent
|
||||
identity: Test identity
|
||||
communication_style: Test style
|
||||
principles:
|
||||
- Test principle
|
||||
|
||||
menu:
|
||||
- trigger: "*help"
|
||||
description: Invalid trigger with asterisk
|
||||
action: display_help
|
||||
24
test/fixtures/agent-schema/invalid/menu-triggers/snake-case.agent.yaml
vendored
Normal file
24
test/fixtures/agent-schema/invalid/menu-triggers/snake-case.agent.yaml
vendored
Normal file
@@ -0,0 +1,24 @@
|
||||
# Test: Snake_case trigger
|
||||
# Expected: FAIL
|
||||
# Error code: custom
|
||||
# Error path: agent.menu[0].trigger
|
||||
# Error message: agent.menu[].trigger must be kebab-case (lowercase words separated by hyphen)
|
||||
|
||||
agent:
|
||||
metadata:
|
||||
id: snake-case-trigger
|
||||
name: Snake Case Trigger
|
||||
title: Snake Case
|
||||
icon: ❌
|
||||
|
||||
persona:
|
||||
role: Test agent
|
||||
identity: Test identity
|
||||
communication_style: Test style
|
||||
principles:
|
||||
- Test principle
|
||||
|
||||
menu:
|
||||
- trigger: list_tasks
|
||||
description: Invalid snake_case trigger
|
||||
action: list_tasks
|
||||
24
test/fixtures/agent-schema/invalid/menu-triggers/trigger-with-spaces.agent.yaml
vendored
Normal file
24
test/fixtures/agent-schema/invalid/menu-triggers/trigger-with-spaces.agent.yaml
vendored
Normal file
@@ -0,0 +1,24 @@
|
||||
# Test: Trigger with spaces
|
||||
# Expected: FAIL
|
||||
# Error code: custom
|
||||
# Error path: agent.menu[0].trigger
|
||||
# Error message: agent.menu[].trigger must be kebab-case (lowercase words separated by hyphen)
|
||||
|
||||
agent:
|
||||
metadata:
|
||||
id: spaces-trigger
|
||||
name: Spaces Trigger
|
||||
title: Spaces
|
||||
icon: ❌
|
||||
|
||||
persona:
|
||||
role: Test agent
|
||||
identity: Test identity
|
||||
communication_style: Test style
|
||||
principles:
|
||||
- Test principle
|
||||
|
||||
menu:
|
||||
- trigger: list tasks
|
||||
description: Invalid trigger with spaces
|
||||
action: list_tasks
|
||||
30
test/fixtures/agent-schema/valid/menu-triggers/compound-triggers.agent.yaml
vendored
Normal file
30
test/fixtures/agent-schema/valid/menu-triggers/compound-triggers.agent.yaml
vendored
Normal file
@@ -0,0 +1,30 @@
|
||||
# Test: Valid compound triggers
|
||||
# Expected: PASS
|
||||
|
||||
agent:
|
||||
metadata:
|
||||
id: compound-triggers
|
||||
name: Compound Triggers
|
||||
title: Compound Triggers Test
|
||||
icon: 🧪
|
||||
|
||||
persona:
|
||||
role: Test agent with compound triggers
|
||||
identity: I test compound trigger validation.
|
||||
communication_style: Clear
|
||||
principles:
|
||||
- Test compound format
|
||||
|
||||
menu:
|
||||
- trigger: TS or tech-spec or fuzzy match on tech-spec
|
||||
description: Two-word compound trigger
|
||||
action: tech_spec
|
||||
- trigger: DS or dev-story or fuzzy match on dev-story
|
||||
description: Another two-word compound trigger
|
||||
action: dev_story
|
||||
- trigger: WI or workflow-init-process or fuzzy match on workflow-init-process
|
||||
description: Three-word compound trigger (uses first 2 words for shortcut)
|
||||
action: workflow_init
|
||||
- trigger: H or help or fuzzy match on help
|
||||
description: Single-word compound trigger (1-letter shortcut)
|
||||
action: help
|
||||
@@ -13,7 +13,7 @@
|
||||
|
||||
const path = require('node:path');
|
||||
const fs = require('fs-extra');
|
||||
const { YamlXmlBuilder } = require('../tools/cli/lib/agent/yaml-xml-builder');
|
||||
const { YamlXmlBuilder } = require('../tools/cli/lib/yaml-xml-builder');
|
||||
const { ManifestGenerator } = require('../tools/cli/installers/lib/core/manifest-generator');
|
||||
|
||||
// ANSI colors
|
||||
@@ -175,7 +175,7 @@ async function runTests() {
|
||||
|
||||
assert(compiled.includes('testarch/knowledge'), 'TEA agent compilation includes knowledge base path');
|
||||
|
||||
assert(compiled.includes('test-design'), 'TEA agent menu includes test-design workflow');
|
||||
assert(compiled.includes('*test-design'), 'TEA agent menu includes test-design workflow');
|
||||
|
||||
// Cleanup
|
||||
await fs.remove(tempOutput);
|
||||
|
||||
Reference in New Issue
Block a user