Skip to content
Draft
Show file tree
Hide file tree
Changes from 76 commits
Commits
Show all changes
83 commits
Select commit Hold shift + click to select a range
5b75673
feat(ui5-guidelines): Add consolidated testing and metrics system
d3xter666 May 11, 2026
3732b9a
feat(ui5-guidelines): Phase 2.1 - improve triggering and extract Type…
d3xter666 May 11, 2026
5fecbb1
feat(ui5-guidelines): Phase 2.2 - extract Integration Cards references
d3xter666 May 11, 2026
7de71ac
feat(ui5-guidelines): Phase 2.3 - refactor test framework to TypeScri…
d3xter666 May 11, 2026
dd7684a
feat(ui5-guidelines): Phase 2.4 - expand test coverage and add sample…
d3xter666 May 12, 2026
a6bb331
docs(ui5-guidelines): Update documentation for v2.1.0 release
d3xter666 May 12, 2026
c006b1a
refactor(test): Phase 1 - High priority fixes from code review
d3xter666 May 12, 2026
40ae633
refactor(skills): Phase 2.1 - Extract ui5-best-practices references
d3xter666 May 12, 2026
6a900be
refactor(skills): Phase 2.2 - Extract ui5-typescript-expert references
d3xter666 May 12, 2026
7f03592
refactor(skills): Phase 2.3 - Extract ui5-integration-cards references
d3xter666 May 12, 2026
837b621
test: Add 12 new test cases for improved coverage
d3xter666 May 12, 2026
91361ca
docs: Add comprehensive code review fixes summary
d3xter666 May 12, 2026
c7349ae
docs: Consolidate documentation (72% reduction)
d3xter666 May 12, 2026
7f021d8
docs: Add comprehensive user guide and documentation summary
d3xter666 May 12, 2026
d0cbd48
feat: Consolidate docs, fix scripts, add coverage analysis
d3xter666 May 13, 2026
6669307
feat: Consolidate docs, fix scripts, add coverage analysis
d3xter666 May 13, 2026
d3c1a1a
feat: Clean plugin for distribution - remove test infrastructure
d3xter666 May 13, 2026
f105559
fix: Remove ui5-guidelines test references from root
d3xter666 May 13, 2026
9407fdb
refactor: Remove ui5-integration-cards skill from ui5-guidelines plugin
d3xter666 May 15, 2026
e19adf2
refactor: Remove redundant skills and consolidate ui5-guidelines to s…
d3xter666 May 15, 2026
5691b48
ci: Add dist directory to gitignore
d3xter666 May 15, 2026
23aae8f
refactor: Adjust SKILL with the minimal required information and addr…
d3xter666 May 18, 2026
1bccb18
docs: Refactor i18n scenarios recommendation
d3xter666 May 18, 2026
e73eb05
docs: Revise CSP policy
d3xter666 May 18, 2026
4f96a17
fix: Prettier formatting & styling
d3xter666 May 18, 2026
bf12702
refactor: Remove redundant information
d3xter666 May 18, 2026
593a896
docs: Update README.md
d3xter666 May 18, 2026
93512a2
refactor: Consolidate ui5-guidelines into plugins/ui5/
d3xter666 May 19, 2026
62a5487
refactor: Cleanup
d3xter666 May 19, 2026
ab1f679
refactor: Reduce test scope to single skill (ui5-best-practices)
d3xter666 May 18, 2026
486f527
feat: Add complete test infrastructure with TypeScript and AVA
d3xter666 May 18, 2026
0e14120
docs: Update README with consolidated test instructions
d3xter666 May 18, 2026
6184bbb
feat: Add Claude Code CLI integration tests
d3xter666 May 18, 2026
a2dadf5
docs: Add comprehensive integration test documentation
d3xter666 May 18, 2026
c90385e
refactor: fix code review issues in integration tests
d3xter666 May 18, 2026
5878a17
chore: remove Anthropic API provider infrastructure
d3xter666 May 18, 2026
0a7b73b
docs: consolidate integration tests documentation into TESTING.md
d3xter666 May 18, 2026
7c8dda1
feat: Add plugin verification and fix extended thinking for integrati…
d3xter666 May 18, 2026
bfc7b07
feat: Improve integration test detection and reliability (Phase 1)
d3xter666 May 18, 2026
6bcd9ec
docs: Add comprehensive integration test summary and roadmap
d3xter666 May 18, 2026
984d18e
fix(test): Complete Phase 3.1 - resolve all 17 HIGH severity issues
d3xter666 May 18, 2026
5069a35
feat(test): Complete Phase 3.2 - reliability improvements
d3xter666 May 18, 2026
50cfae6
feat(test): Complete Phase 3.3 - observability features
d3xter666 May 18, 2026
d55b89f
feat(framework): Implement Phase 4 core - agent-agnostic testing fram…
d3xter666 May 19, 2026
c1616a7
fix(test): Update all references from ui5-guidelines to ui5 after mig…
d3xter666 May 19, 2026
4616986
fix(test): Add .gitignore and update tsconfig after migration
d3xter666 May 19, 2026
d2c1d9a
docs: Clean up documentation structure
d3xter666 May 19, 2026
526a4e1
docs: Update TESTING.md with current test counts and paths
d3xter666 May 19, 2026
b8371f5
fix: Remove non-existent metrics scripts and update package metadata
d3xter666 May 19, 2026
983ea79
fix(test): Auto-install plugin and improve skip messaging
d3xter666 May 19, 2026
873bf3a
refactor(test): Improve integration test maintainability
d3xter666 May 19, 2026
0db2242
fix(test): Update triggering simulation keywords for 100% accuracy
d3xter666 May 19, 2026
d38c4d4
refactor: replace AVA test framework with skill-lint CLI
d3xter666 May 20, 2026
f643b67
feat: make skill-lint skill and agent agnostic
d3xter666 May 20, 2026
0fb13ca
test: add comprehensive unit test suite with 66% coverage
d3xter666 May 20, 2026
d2cbb24
refactor: fix critical code review issues
d3xter666 May 20, 2026
1d75763
refactor: Extract shared test helpers to eliminate duplication
d3xter666 May 20, 2026
a14f064
refactor: Standardize line counting with countLinesFromContent
d3xter666 May 20, 2026
3c74faf
docs: Add comprehensive JSDoc to all test files
d3xter666 May 20, 2026
e814e26
docs: Add comprehensive critical review and update backlog
d3xter666 May 20, 2026
dc5a9e8
feat: implement critical architecture fixes and expand test coverage
d3xter666 May 20, 2026
32cb14e
feat: add GitHub Actions CI/CD workflow for skill-lint
d3xter666 May 20, 2026
74c5cf1
docs: add Sprint 1 progress report
d3xter666 May 20, 2026
205a4f6
fix: resolve build errors and test failures
d3xter666 May 20, 2026
32912b7
refactor: improve code quality with error handling, validation, and c…
d3xter666 May 20, 2026
c8d23bd
docs: update backlog with Sprint 2 progress (CR-002, CR-004, CR-009 c…
d3xter666 May 20, 2026
003d882
feat(security): complete path validation with comprehensive sanitizat…
d3xter666 May 20, 2026
f22b568
docs: update backlog - SEC-001 complete (4/5 Sprint 2 tasks done)
d3xter666 May 20, 2026
27da2a8
feat: add exponential backoff retry logic for file operations (CR-005)
d3xter666 May 20, 2026
626881e
feat: add streaming support for large files (CR-006)
d3xter666 May 20, 2026
59137fa
feat: Sprint 3 - Performance & Resilience (PERF-001, CR-007, CR-010, …
d3xter666 May 20, 2026
6f90feb
feat: Production enhancements - performance, security, and UX improve…
d3xter666 May 20, 2026
ea356eb
feat: Add skill caching and adapter health checks
d3xter666 May 20, 2026
b13f111
feat: Add async result streaming with progress callbacks
d3xter666 May 20, 2026
d2c393e
feat: Decouple validators from file system with dependency injection
d3xter666 May 20, 2026
7d3a309
feat: Add comprehensive CLI test coverage (TEST-002)
d3xter666 May 20, 2026
044dd1a
refactor: Restructure skill-lint to 6 generic validators with multi-s…
d3xter666 May 27, 2026
67b1a6c
refactor: Remove old validator files after 6-validator refactor
d3xter666 May 27, 2026
6dc6c3a
test: Add unit tests for core modules and concurrency utility
d3xter666 May 27, 2026
5c473d5
fix: Add missing keywords threshold in linter test
d3xter666 May 27, 2026
e79daac
fix: Resolve relative paths from cwd instead of git root
d3xter666 May 27, 2026
daff353
feat: add automatic keyword extraction and test-free harness mode
d3xter666 May 27, 2026
24ff25b
fix: address all 15 code review findings (security, DRY, KISS)
d3xter666 May 27, 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
12 changes: 10 additions & 2 deletions plugins/ui5/.claude-plugin/plugin.json
Original file line number Diff line number Diff line change
Expand Up @@ -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
20 changes: 2 additions & 18 deletions plugins/ui5/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,9 +12,7 @@ Complete SAPUI5 / OpenUI5 plugin for Claude Code with MCP tools, API documentati
- **Run UI5 linter** - Code quality validation and best practices checks
- **UI5 tooling integration** - Version info and project management

### 📋 Skills

#### ui5-best-practices
### 📋 Skills: ui5-best-practices

Development guidelines and coding standards derived from official SAP UI5 guidelines:
- **Async module loading** - sap.ui.define patterns
Expand All @@ -28,25 +26,11 @@ Development guidelines and coding standards derived from official SAP UI5 guidel

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

#### ui5-best-practices-integration-cards

Development guidelines for UI Integration Cards (also known as UI5 Integration Cards):
- **Declarative card types** - List, Table, Calendar, Timeline, Object, Analytical
- **Building a card** - Structure of the declarative `manifest.json` format for a UI Integration Card
- **Parameter and destination binding** - `{parameters>/key/value}` and `{{destinations.name}}` syntax
- **Data rules** - Where the data block goes (`sap.card/data`/`content/data`/`header/data`), wrapping URLs in destinations, and requiring JSON responses
- **Manifest validation** - JSON, schema, and deprecated-property checks before declaring done
- **Local preview workflow** - Reusing existing entry points or serving via a `<ui-integration-card>` HTML page
- **Configuration Editor patterns** - `dt/Configuration.js` paired with `manifest.json`, mirroring fields and `manifestpath` targets
- **Analytical cards** - 44 chart types with required UIDs, feeds, and per-type examples
- **i18n** - Bind all user-facing strings to the i18n model; never hardcode
- **Actions** - Use the `actions` property for links and interactions; never inline `<a>` tags or hand-roll URL handlers

---

## Installation

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