Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
76 commits
Select commit Hold shift + click to select a range
dea1652
feat(ui5-guidelines): Add consolidated testing and metrics system
d3xter666 May 11, 2026
75283bd
feat(ui5-guidelines): Phase 2.1 - improve triggering and extract Type…
d3xter666 May 11, 2026
e3c6feb
feat(ui5-guidelines): Phase 2.2 - extract Integration Cards references
d3xter666 May 11, 2026
2eec626
feat(ui5-guidelines): Phase 2.3 - refactor test framework to TypeScri…
d3xter666 May 11, 2026
d9a034b
feat(ui5-guidelines): Phase 2.4 - expand test coverage and add sample…
d3xter666 May 12, 2026
a392928
docs(ui5-guidelines): Update documentation for v2.1.0 release
d3xter666 May 12, 2026
065cff8
refactor(test): Phase 1 - High priority fixes from code review
d3xter666 May 12, 2026
f2cf11b
refactor(skills): Phase 2.1 - Extract ui5-best-practices references
d3xter666 May 12, 2026
a195b70
refactor(skills): Phase 2.2 - Extract ui5-typescript-expert references
d3xter666 May 12, 2026
e731b1a
refactor(skills): Phase 2.3 - Extract ui5-integration-cards references
d3xter666 May 12, 2026
dd442d3
test: Add 12 new test cases for improved coverage
d3xter666 May 12, 2026
ee51469
docs: Add comprehensive code review fixes summary
d3xter666 May 12, 2026
fd814da
docs: Consolidate documentation (72% reduction)
d3xter666 May 12, 2026
a93421f
docs: Add comprehensive user guide and documentation summary
d3xter666 May 12, 2026
a100516
feat: Consolidate docs, fix scripts, add coverage analysis
d3xter666 May 13, 2026
1764e77
feat: Consolidate docs, fix scripts, add coverage analysis
d3xter666 May 13, 2026
26805a5
feat: Clean plugin for distribution - remove test infrastructure
d3xter666 May 13, 2026
c2e1c50
fix: Remove ui5-guidelines test references from root
d3xter666 May 13, 2026
4d9569a
refactor: Remove ui5-integration-cards skill from ui5-guidelines plugin
d3xter666 May 15, 2026
a9851bf
refactor: Remove redundant skills and consolidate ui5-guidelines to s…
d3xter666 May 15, 2026
f801715
ci: Add dist directory to gitignore
d3xter666 May 15, 2026
58694ae
refactor: Adjust SKILL with the minimal required information and addr…
d3xter666 May 18, 2026
617d4f6
docs: Refactor i18n scenarios recommendation
d3xter666 May 18, 2026
cbb95fc
docs: Revise CSP policy
d3xter666 May 18, 2026
14af67e
fix: Prettier formatting & styling
d3xter666 May 18, 2026
48d80a7
refactor: Remove redundant information
d3xter666 May 18, 2026
ae63342
docs: Update README.md
d3xter666 May 18, 2026
c15de7e
refactor: Consolidate ui5-guidelines into plugins/ui5/
d3xter666 May 19, 2026
2e00c51
refactor: Cleanup
d3xter666 May 19, 2026
c816a53
refactor: Reduce test scope to single skill (ui5-best-practices)
d3xter666 May 18, 2026
56c1e5f
feat: Add complete test infrastructure with TypeScript and AVA
d3xter666 May 18, 2026
71513e2
docs: Update README with consolidated test instructions
d3xter666 May 18, 2026
3e76fe4
feat: Add Claude Code CLI integration tests
d3xter666 May 18, 2026
33e437f
docs: Add comprehensive integration test documentation
d3xter666 May 18, 2026
c879064
refactor: fix code review issues in integration tests
d3xter666 May 18, 2026
1a8dc31
chore: remove Anthropic API provider infrastructure
d3xter666 May 18, 2026
48fd597
docs: consolidate integration tests documentation into TESTING.md
d3xter666 May 18, 2026
c6562a4
feat: Add plugin verification and fix extended thinking for integrati…
d3xter666 May 18, 2026
75b2837
feat: Improve integration test detection and reliability (Phase 1)
d3xter666 May 18, 2026
568edbb
docs: Add comprehensive integration test summary and roadmap
d3xter666 May 18, 2026
9b51ecb
fix(test): Complete Phase 3.1 - resolve all 17 HIGH severity issues
d3xter666 May 18, 2026
94e8c7c
feat(test): Complete Phase 3.2 - reliability improvements
d3xter666 May 18, 2026
b57aec1
feat(test): Complete Phase 3.3 - observability features
d3xter666 May 18, 2026
7af8835
feat(framework): Implement Phase 4 core - agent-agnostic testing fram…
d3xter666 May 19, 2026
b0265c3
fix(test): Update all references from ui5-guidelines to ui5 after mig…
d3xter666 May 19, 2026
915db4c
fix(test): Add .gitignore and update tsconfig after migration
d3xter666 May 19, 2026
b530971
docs: Clean up documentation structure
d3xter666 May 19, 2026
83180ff
docs: Update TESTING.md with current test counts and paths
d3xter666 May 19, 2026
7490a93
fix: Remove non-existent metrics scripts and update package metadata
d3xter666 May 19, 2026
3276661
fix(test): Auto-install plugin and improve skip messaging
d3xter666 May 19, 2026
d285304
refactor(test): Improve integration test maintainability
d3xter666 May 19, 2026
7de8c8b
fix(test): Update triggering simulation keywords for 100% accuracy
d3xter666 May 19, 2026
c2cf5e6
refactor: replace AVA test framework with skill-lint CLI
d3xter666 May 20, 2026
ea23056
feat: make skill-lint skill and agent agnostic
d3xter666 May 20, 2026
57dc5a4
test: add comprehensive unit test suite with 66% coverage
d3xter666 May 20, 2026
356472e
refactor: fix critical code review issues
d3xter666 May 20, 2026
2b2f9ee
refactor: Extract shared test helpers to eliminate duplication
d3xter666 May 20, 2026
958d425
refactor: Standardize line counting with countLinesFromContent
d3xter666 May 20, 2026
8ee41af
docs: Add comprehensive JSDoc to all test files
d3xter666 May 20, 2026
8ab5c3b
docs: Add comprehensive critical review and update backlog
d3xter666 May 20, 2026
08e35e8
feat: implement critical architecture fixes and expand test coverage
d3xter666 May 20, 2026
4b3d8b9
feat: add GitHub Actions CI/CD workflow for skill-lint
d3xter666 May 20, 2026
b0ce972
docs: add Sprint 1 progress report
d3xter666 May 20, 2026
1f9550b
fix: resolve build errors and test failures
d3xter666 May 20, 2026
e699421
refactor: improve code quality with error handling, validation, and c…
d3xter666 May 20, 2026
5d57e03
docs: update backlog with Sprint 2 progress (CR-002, CR-004, CR-009 c…
d3xter666 May 20, 2026
c7d7b8b
feat(security): complete path validation with comprehensive sanitizat…
d3xter666 May 20, 2026
d55eac6
docs: update backlog - SEC-001 complete (4/5 Sprint 2 tasks done)
d3xter666 May 20, 2026
a170b11
feat: add exponential backoff retry logic for file operations (CR-005)
d3xter666 May 20, 2026
87b1e0c
feat: add streaming support for large files (CR-006)
d3xter666 May 20, 2026
5fc83d1
feat: Sprint 3 - Performance & Resilience (PERF-001, CR-007, CR-010, …
d3xter666 May 20, 2026
e7aca84
feat: Production enhancements - performance, security, and UX improve…
d3xter666 May 20, 2026
a85c33e
feat: Add skill caching and adapter health checks
d3xter666 May 20, 2026
9a96524
feat: Add async result streaming with progress callbacks
d3xter666 May 20, 2026
4aaa11f
feat: Decouple validators from file system with dependency injection
d3xter666 May 20, 2026
d6ba95b
feat: Add comprehensive CLI test coverage (TEST-002)
d3xter666 May 20, 2026
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
127 changes: 127 additions & 0 deletions .github/workflows/skill-lint.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,127 @@
name: Skill Lint

on:
push:
branches:
- main
paths:
- 'plugins/ui5/skill-lint/**'
- 'plugins/ui5/skills/**'
- '.github/workflows/skill-lint.yml'
pull_request:
branches:
- main
paths:
- 'plugins/ui5/skill-lint/**'
- 'plugins/ui5/skills/**'
- '.github/workflows/skill-lint.yml'

permissions:
contents: read
pull-requests: write # For commenting on PRs (future enhancement)

defaults:
run:
working-directory: plugins/ui5/skill-lint

jobs:
test:
name: Test & Coverage
runs-on: ubuntu-22.04

steps:
- uses: actions/checkout@v6

- name: Use Node.js 22
uses: actions/setup-node@v6
with:
node-version: 22
cache: 'npm'
cache-dependency-path: plugins/ui5/skill-lint/package-lock.json

- name: Install dependencies
run: npm ci

- name: Build
run: npm run build

- name: Run tests with coverage
run: npm run test -- --coverage

- name: Upload coverage reports
uses: codecov/codecov-action@v5
if: always()
with:
files: ./plugins/ui5/skill-lint/coverage/coverage-final.json
flags: skill-lint
name: skill-lint-coverage
fail_ci_if_error: false
env:
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}

- name: Check coverage threshold
run: |
echo "ℹ️ Coverage threshold check: 80%"
echo "Note: Coverage is currently at 75%, working towards 80% target"
echo "This check is informational only during Sprint 1"
continue-on-error: true

lint-skills:
name: Lint Skills
runs-on: ubuntu-22.04
needs: test
if: success()

steps:
- uses: actions/checkout@v6

- name: Use Node.js 22
uses: actions/setup-node@v6
with:
node-version: 22
cache: 'npm'
cache-dependency-path: plugins/ui5/skill-lint/package-lock.json

- name: Install dependencies
run: npm ci

- name: Build
run: npm run build

- name: Lint ui5-best-practices skill
run: node ./bin/skill-lint.js lint ../skills/ui5-best-practices/SKILL.md --format github-actions
continue-on-error: true

- name: Generate lint report
run: |
echo "## Skill Lint Report" >> $GITHUB_STEP_SUMMARY
echo "" >> $GITHUB_STEP_SUMMARY
node ./bin/skill-lint.js lint ../skills/ui5-best-practices/SKILL.md --format text >> $GITHUB_STEP_SUMMARY || true

- name: Save lint results as artifact
uses: actions/upload-artifact@v4
if: always()
with:
name: skill-lint-results
path: plugins/ui5/skill-lint/.lint-reports/
retention-days: 30

type-check:
name: TypeScript Type Check
runs-on: ubuntu-22.04

steps:
- uses: actions/checkout@v6

- name: Use Node.js 22
uses: actions/setup-node@v6
with:
node-version: 22
cache: 'npm'
cache-dependency-path: plugins/ui5/skill-lint/package-lock.json

- name: Install dependencies
run: npm ci

- name: TypeScript type check
run: npx tsc --noEmit
14 changes: 11 additions & 3 deletions plugins/ui5/.claude-plugin/plugin.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"name": "ui5",
"version": "0.1.0",
"description": "SAPUI5 / OpenUI5 plugin for Claude. Create and validate UI5 projects, access API documentation, run UI5 linter, get development guidelines and best practices for UI5 development.",
"description": "SAPUI5 / OpenUI5 plugin for Claude. Create and validate UI5 projects, access API documentation, run UI5 linter, get development guidelines and best practices for UI5 development. Covers async module loading, ComponentSupport initialization, data binding with OData types, i18n management, CSP compliance, TypeScript event handlers, MCP tooling integration, CAP integration patterns, and form creation rules.",
"author": {
"name": "SAP SE"
},
Expand All @@ -18,6 +18,14 @@
"linter",
"api documentation",
"development guidelines",
"best practices"
]
"best practices",
"coding standards",
"async loading",
"odata types",
"data binding",
"cap integration",
"typescript",
"csp"
],
"skills": ["skills/ui5-best-practices"]
}
20 changes: 20 additions & 0 deletions plugins/ui5/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
# Build output
dist/

# Dependencies
node_modules/

# Test output
.test-output/
.test-results/

# Environment
.env
.env.local

# IDE
.vscode/
.idea/

# OS
.DS_Store
82 changes: 76 additions & 6 deletions plugins/ui5/README.md
Original file line number Diff line number Diff line change
@@ -1,21 +1,91 @@
# UI5 plugin for Claude
# UI5 Plugin for Claude

Complete SAPUI5 / OpenUI5 plugin for Claude Code with MCP tools, API documentation access, linting capabilities, and development guidelines.

---

## Key Features

- Helps with the creation of new UI5 projects when working with Claude Code
- Supports the developer to detect and fix UI5-specific errors
- Provides additional UI5-specific information for Claude Code
### 🛠️ MCP Tools
- **Create and validate UI5 projects** - Project scaffolding and validation
- **Access API documentation** - Query UI5 control APIs and documentation
- **Run UI5 linter** - Code quality validation and best practices checks
- **UI5 tooling integration** - Version info and project management

### 📋 Skills: ui5-best-practices

Development guidelines and coding standards derived from official SAP UI5 guidelines:
- **Async module loading** - sap.ui.define patterns
- **Data binding with OData types** - Type-safe data binding
- **CSP compliance** - Content Security Policy best practices
- **TypeScript event handlers** - Modern event handling (UI5 >= 1.115.0)
- **CAP integration** - Integration with SAP Cloud Application Programming Model
- **Form creation rules** - Form and SimpleForm patterns
- **i18n management** - Internationalization workflows
- **Component initialization** - ComponentSupport patterns

**Note**: For TypeScript conversion specifically, use the separate [`ui5-typescript-conversion`](https://github.com/UI5/plugins-claude/tree/main/plugins/ui5-typescript-conversion) plugin.

---

## Installation

Via Claude CLI:
### Via Claude CLI (Recommended)
```bash
claude plugin install ui5@claude-plugins-official
```

In Claude Code:
### In Claude Code
```
/plugin install ui5@claude-plugins-official
```

### Manual Installation
```bash
# Clone the repository
git clone https://github.com/UI5/plugins-claude.git
cd plugins-claude/plugins/ui5

# Link to Claude plugins directory
ln -s $(pwd) ~/.claude/plugins/ui5
```

Enable in `~/.claude/settings.json`:
```json
{
"enabledPlugins": {
"ui5": true
}
}
```

Restart Claude to load the plugin.

---

## Usage

### MCP Tools
Use MCP tools explicitly when you need specific UI5 tooling functions:
```
"Use get_api_reference to look up sap.m.Button"
"Run ui5 linter on my project"
"Get UI5 version information"
```

### Skills (Auto-Triggered)
Skills trigger automatically when you ask UI5-related questions:
```
"How do I set up async module loading in UI5?"
"Show me how to use OData types in data binding"
"What's the correct way to create forms in UI5?"
"How to handle TypeScript events in UI5 >= 1.115.0?"
```

---

## Support

- **Plugin Issues**: [GitHub Issues](https://github.com/UI5/plugins-claude/issues)
- **SAP UI5 Documentation**: [ui5.sap.com](https://ui5.sap.com)
- **Claude Code Documentation**: [claude.ai/code](https://claude.ai/code)
Loading