oh-my-customcode 0.1.2 → 0.1.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +45 -32
- package/dist/cli/index.js +12 -20
- package/dist/index.js +3 -3
- package/package.json +2 -2
- package/templates/.claude/rules/MUST-orchestrator-coordination.md +68 -0
- package/templates/.claude/rules/MUST-parallel-execution.md +66 -9
- package/templates/.claude/rules/MUST-tool-identification.md +79 -17
- package/templates/.claude/rules/SHOULD-hud-statusline.md +8 -1
- package/templates/agents/index.yaml +6 -0
- package/templates/agents/infra-engineer/aws-expert/refs/aws/common-patterns.md +169 -0
- package/templates/agents/infra-engineer/aws-expert/refs/aws/index.yaml +26 -0
- package/templates/agents/infra-engineer/aws-expert/refs/aws/well-architected.md +143 -0
- package/templates/agents/infra-engineer/aws-expert/refs/aws-best-practices/SKILL.md +279 -0
- package/templates/agents/infra-engineer/aws-expert/refs/aws-best-practices/index.yaml +27 -0
- package/templates/agents/infra-engineer/docker-expert/refs/docker/compose-best-practices.md +284 -0
- package/templates/agents/infra-engineer/docker-expert/refs/docker/dockerfile-best-practices.md +262 -0
- package/templates/agents/infra-engineer/docker-expert/refs/docker/index.yaml +26 -0
- package/templates/agents/infra-engineer/docker-expert/refs/docker-best-practices/SKILL.md +274 -0
- package/templates/agents/infra-engineer/docker-expert/refs/docker-best-practices/index.yaml +26 -0
- package/templates/agents/manager/creator/refs/rules/MAY-optimization.md +93 -0
- package/templates/agents/manager/creator/refs/rules/MUST-agent-design.md +107 -0
- package/templates/agents/manager/creator/refs/rules/MUST-agent-identification.md +108 -0
- package/templates/agents/manager/creator/refs/rules/MUST-continuous-improvement.md +132 -0
- package/templates/agents/manager/creator/refs/rules/MUST-intent-transparency.md +199 -0
- package/templates/agents/manager/creator/refs/rules/MUST-language-policy.md +62 -0
- package/templates/agents/manager/creator/refs/rules/MUST-orchestrator-coordination.md +334 -0
- package/templates/agents/manager/creator/refs/rules/MUST-parallel-execution.md +398 -0
- package/templates/agents/manager/creator/refs/rules/MUST-permissions.md +84 -0
- package/templates/agents/manager/creator/refs/rules/MUST-safety.md +69 -0
- package/templates/agents/manager/creator/refs/rules/MUST-sync-verification.md +219 -0
- package/templates/agents/manager/creator/refs/rules/MUST-tool-identification.md +174 -0
- package/templates/agents/manager/creator/refs/rules/SHOULD-ecomode.md +145 -0
- package/templates/agents/manager/creator/refs/rules/SHOULD-error-handling.md +102 -0
- package/templates/agents/manager/creator/refs/rules/SHOULD-hud-statusline.md +96 -0
- package/templates/agents/manager/creator/refs/rules/SHOULD-interaction.md +103 -0
- package/templates/agents/manager/creator/refs/rules/SHOULD-memory-integration.md +114 -0
- package/templates/agents/manager/creator/refs/rules/SHOULD-pipeline-mode.md +165 -0
- package/templates/agents/manager/creator/refs/rules/index.yaml +125 -0
- package/templates/agents/manager/supplier/refs/guides/aws/common-patterns.md +169 -0
- package/templates/agents/manager/supplier/refs/guides/aws/index.yaml +26 -0
- package/templates/agents/manager/supplier/refs/guides/aws/well-architected.md +143 -0
- package/templates/agents/manager/supplier/refs/guides/claude-code/01-overview.md +42 -0
- package/templates/agents/manager/supplier/refs/guides/claude-code/03-tools.md +107 -0
- package/templates/agents/manager/supplier/refs/guides/claude-code/04-agent-skills.md +90 -0
- package/templates/agents/manager/supplier/refs/guides/claude-code/05-agent-sdk.md +129 -0
- package/templates/agents/manager/supplier/refs/guides/claude-code/06-mcp.md +165 -0
- package/templates/agents/manager/supplier/refs/guides/claude-code/07-prompt-engineering.md +100 -0
- package/templates/agents/manager/supplier/refs/guides/claude-code/08-testing.md +58 -0
- package/templates/agents/manager/supplier/refs/guides/claude-code/09-guardrails.md +80 -0
- package/templates/agents/manager/supplier/refs/guides/claude-code/10-monitoring.md +89 -0
- package/templates/agents/manager/supplier/refs/guides/claude-code/11-sub-agents.md +159 -0
- package/templates/agents/manager/supplier/refs/guides/claude-code/index.yaml +51 -0
- package/templates/agents/manager/supplier/refs/guides/docker/compose-best-practices.md +284 -0
- package/templates/agents/manager/supplier/refs/guides/docker/dockerfile-best-practices.md +262 -0
- package/templates/agents/manager/supplier/refs/guides/docker/index.yaml +26 -0
- package/templates/agents/manager/supplier/refs/guides/fastapi/best-practices.md +232 -0
- package/templates/agents/manager/supplier/refs/guides/fastapi/index.yaml +21 -0
- package/templates/agents/manager/supplier/refs/guides/go-backend/index.yaml +26 -0
- package/templates/agents/manager/supplier/refs/guides/go-backend/project-layout.md +243 -0
- package/templates/agents/manager/supplier/refs/guides/go-backend/uber-style.md +212 -0
- package/templates/agents/manager/supplier/refs/guides/golang/concurrency.md +282 -0
- package/templates/agents/manager/supplier/refs/guides/golang/effective-go.md +309 -0
- package/templates/agents/manager/supplier/refs/guides/golang/error-handling.md +250 -0
- package/templates/agents/manager/supplier/refs/guides/golang/index.yaml +27 -0
- package/templates/agents/manager/supplier/refs/guides/index.yaml +101 -0
- package/templates/agents/manager/supplier/refs/guides/kotlin/coding-conventions.md +247 -0
- package/templates/agents/manager/supplier/refs/guides/kotlin/idioms.md +234 -0
- package/templates/agents/manager/supplier/refs/guides/kotlin/index.yaml +26 -0
- package/templates/agents/manager/supplier/refs/guides/python/index.yaml +26 -0
- package/templates/agents/manager/supplier/refs/guides/python/pep8-style-guide.md +202 -0
- package/templates/agents/manager/supplier/refs/guides/python/zen-of-python.md +79 -0
- package/templates/agents/manager/supplier/refs/guides/rust/error-handling.md +262 -0
- package/templates/agents/manager/supplier/refs/guides/rust/index.yaml +26 -0
- package/templates/agents/manager/supplier/refs/guides/rust/ownership.md +180 -0
- package/templates/agents/manager/supplier/refs/guides/springboot/best-practices.md +361 -0
- package/templates/agents/manager/supplier/refs/guides/springboot/index.yaml +22 -0
- package/templates/agents/manager/supplier/refs/guides/typescript/advanced-types.md +225 -0
- package/templates/agents/manager/supplier/refs/guides/typescript/index.yaml +26 -0
- package/templates/agents/manager/supplier/refs/guides/typescript/type-system.md +219 -0
- package/templates/agents/manager/supplier/refs/guides/web-design/accessibility.md +66 -0
- package/templates/agents/manager/supplier/refs/guides/web-design/index.yaml +20 -0
- package/templates/agents/manager/supplier/refs/guides/web-design/performance.md +102 -0
- package/templates/agents/manager/supplier/refs/rules/MAY-optimization.md +93 -0
- package/templates/agents/manager/supplier/refs/rules/MUST-agent-design.md +107 -0
- package/templates/agents/manager/supplier/refs/rules/MUST-agent-identification.md +108 -0
- package/templates/agents/manager/supplier/refs/rules/MUST-continuous-improvement.md +132 -0
- package/templates/agents/manager/supplier/refs/rules/MUST-intent-transparency.md +199 -0
- package/templates/agents/manager/supplier/refs/rules/MUST-language-policy.md +62 -0
- package/templates/agents/manager/supplier/refs/rules/MUST-orchestrator-coordination.md +334 -0
- package/templates/agents/manager/supplier/refs/rules/MUST-parallel-execution.md +398 -0
- package/templates/agents/manager/supplier/refs/rules/MUST-permissions.md +84 -0
- package/templates/agents/manager/supplier/refs/rules/MUST-safety.md +69 -0
- package/templates/agents/manager/supplier/refs/rules/MUST-sync-verification.md +219 -0
- package/templates/agents/manager/supplier/refs/rules/MUST-tool-identification.md +174 -0
- package/templates/agents/manager/supplier/refs/rules/SHOULD-ecomode.md +145 -0
- package/templates/agents/manager/supplier/refs/rules/SHOULD-error-handling.md +102 -0
- package/templates/agents/manager/supplier/refs/rules/SHOULD-hud-statusline.md +96 -0
- package/templates/agents/manager/supplier/refs/rules/SHOULD-interaction.md +103 -0
- package/templates/agents/manager/supplier/refs/rules/SHOULD-memory-integration.md +114 -0
- package/templates/agents/manager/supplier/refs/rules/SHOULD-pipeline-mode.md +165 -0
- package/templates/agents/manager/supplier/refs/rules/index.yaml +125 -0
- package/templates/agents/manager/supplier/refs/skills/backend/fastapi-best-practices/SKILL.md +269 -0
- package/templates/agents/manager/supplier/refs/skills/backend/fastapi-best-practices/index.yaml +25 -0
- package/templates/agents/manager/supplier/refs/skills/backend/go-backend-best-practices/SKILL.md +337 -0
- package/templates/agents/manager/supplier/refs/skills/backend/go-backend-best-practices/index.yaml +26 -0
- package/templates/agents/manager/supplier/refs/skills/backend/springboot-best-practices/SKILL.md +356 -0
- package/templates/agents/manager/supplier/refs/skills/backend/springboot-best-practices/index.yaml +27 -0
- package/templates/agents/manager/supplier/refs/skills/development/go-best-practices/SKILL.md +202 -0
- package/templates/agents/manager/supplier/refs/skills/development/go-best-practices/index.yaml +25 -0
- package/templates/agents/manager/supplier/refs/skills/development/kotlin-best-practices/SKILL.md +255 -0
- package/templates/agents/manager/supplier/refs/skills/development/kotlin-best-practices/index.yaml +27 -0
- package/templates/agents/manager/supplier/refs/skills/development/python-best-practices/SKILL.md +221 -0
- package/templates/agents/manager/supplier/refs/skills/development/python-best-practices/index.yaml +25 -0
- package/templates/agents/manager/supplier/refs/skills/development/react-best-practices/SKILL.md +100 -0
- package/templates/agents/manager/supplier/refs/skills/development/react-best-practices/index.yaml +39 -0
- package/templates/agents/manager/supplier/refs/skills/development/rust-best-practices/SKILL.md +266 -0
- package/templates/agents/manager/supplier/refs/skills/development/rust-best-practices/index.yaml +26 -0
- package/templates/agents/manager/supplier/refs/skills/development/typescript-best-practices/SKILL.md +320 -0
- package/templates/agents/manager/supplier/refs/skills/development/typescript-best-practices/index.yaml +28 -0
- package/templates/agents/manager/supplier/refs/skills/development/vercel-deploy/SKILL.md +73 -0
- package/templates/agents/manager/supplier/refs/skills/development/vercel-deploy/index.yaml +30 -0
- package/templates/agents/manager/supplier/refs/skills/development/web-design-guidelines/SKILL.md +117 -0
- package/templates/agents/manager/supplier/refs/skills/development/web-design-guidelines/index.yaml +34 -0
- package/templates/agents/manager/supplier/refs/skills/index.yaml +129 -0
- package/templates/agents/manager/supplier/refs/skills/infrastructure/aws-best-practices/SKILL.md +279 -0
- package/templates/agents/manager/supplier/refs/skills/infrastructure/aws-best-practices/index.yaml +27 -0
- package/templates/agents/manager/supplier/refs/skills/infrastructure/docker-best-practices/SKILL.md +274 -0
- package/templates/agents/manager/supplier/refs/skills/infrastructure/docker-best-practices/index.yaml +26 -0
- package/templates/agents/manager/supplier/refs/skills/orchestration/intent-detection/SKILL.md +214 -0
- package/templates/agents/manager/supplier/refs/skills/orchestration/intent-detection/index.yaml +30 -0
- package/templates/agents/manager/supplier/refs/skills/orchestration/intent-detection/patterns/agent-triggers.yaml +342 -0
- package/templates/agents/manager/supplier/refs/skills/orchestration/pipeline-execution/SKILL.md +188 -0
- package/templates/agents/manager/supplier/refs/skills/orchestration/pipeline-execution/index.yaml +27 -0
- package/templates/agents/manager/supplier/refs/skills/system/memory-management/SKILL.md +194 -0
- package/templates/agents/manager/supplier/refs/skills/system/memory-management/index.yaml +30 -0
- package/templates/agents/manager/supplier/refs/skills/system/result-aggregation/SKILL.md +163 -0
- package/templates/agents/manager/supplier/refs/skills/system/result-aggregation/index.yaml +36 -0
- package/templates/agents/manager/updater/refs/rules/MAY-optimization.md +93 -0
- package/templates/agents/manager/updater/refs/rules/MUST-agent-design.md +107 -0
- package/templates/agents/manager/updater/refs/rules/MUST-agent-identification.md +108 -0
- package/templates/agents/manager/updater/refs/rules/MUST-continuous-improvement.md +132 -0
- package/templates/agents/manager/updater/refs/rules/MUST-intent-transparency.md +199 -0
- package/templates/agents/manager/updater/refs/rules/MUST-language-policy.md +62 -0
- package/templates/agents/manager/updater/refs/rules/MUST-orchestrator-coordination.md +334 -0
- package/templates/agents/manager/updater/refs/rules/MUST-parallel-execution.md +398 -0
- package/templates/agents/manager/updater/refs/rules/MUST-permissions.md +84 -0
- package/templates/agents/manager/updater/refs/rules/MUST-safety.md +69 -0
- package/templates/agents/manager/updater/refs/rules/MUST-sync-verification.md +219 -0
- package/templates/agents/manager/updater/refs/rules/MUST-tool-identification.md +174 -0
- package/templates/agents/manager/updater/refs/rules/SHOULD-ecomode.md +145 -0
- package/templates/agents/manager/updater/refs/rules/SHOULD-error-handling.md +102 -0
- package/templates/agents/manager/updater/refs/rules/SHOULD-hud-statusline.md +96 -0
- package/templates/agents/manager/updater/refs/rules/SHOULD-interaction.md +103 -0
- package/templates/agents/manager/updater/refs/rules/SHOULD-memory-integration.md +114 -0
- package/templates/agents/manager/updater/refs/rules/SHOULD-pipeline-mode.md +165 -0
- package/templates/agents/manager/updater/refs/rules/index.yaml +125 -0
- package/templates/agents/orchestrator/dev-lead/AGENT.md +47 -0
- package/templates/agents/orchestrator/secretary/AGENT.md +49 -0
- package/templates/agents/orchestrator/secretary/refs/rules/MAY-optimization.md +93 -0
- package/templates/agents/orchestrator/secretary/refs/rules/MUST-agent-design.md +107 -0
- package/templates/agents/orchestrator/secretary/refs/rules/MUST-agent-identification.md +108 -0
- package/templates/agents/orchestrator/secretary/refs/rules/MUST-continuous-improvement.md +132 -0
- package/templates/agents/orchestrator/secretary/refs/rules/MUST-intent-transparency.md +199 -0
- package/templates/agents/orchestrator/secretary/refs/rules/MUST-language-policy.md +62 -0
- package/templates/agents/orchestrator/secretary/refs/rules/MUST-orchestrator-coordination.md +334 -0
- package/templates/agents/orchestrator/secretary/refs/rules/MUST-parallel-execution.md +398 -0
- package/templates/agents/orchestrator/secretary/refs/rules/MUST-permissions.md +84 -0
- package/templates/agents/orchestrator/secretary/refs/rules/MUST-safety.md +69 -0
- package/templates/agents/orchestrator/secretary/refs/rules/MUST-sync-verification.md +219 -0
- package/templates/agents/orchestrator/secretary/refs/rules/MUST-tool-identification.md +174 -0
- package/templates/agents/orchestrator/secretary/refs/rules/SHOULD-ecomode.md +145 -0
- package/templates/agents/orchestrator/secretary/refs/rules/SHOULD-error-handling.md +102 -0
- package/templates/agents/orchestrator/secretary/refs/rules/SHOULD-hud-statusline.md +96 -0
- package/templates/agents/orchestrator/secretary/refs/rules/SHOULD-interaction.md +103 -0
- package/templates/agents/orchestrator/secretary/refs/rules/SHOULD-memory-integration.md +114 -0
- package/templates/agents/orchestrator/secretary/refs/rules/SHOULD-pipeline-mode.md +165 -0
- package/templates/agents/orchestrator/secretary/refs/rules/index.yaml +125 -0
- package/templates/agents/sw-engineer/backend/fastapi-expert/refs/fastapi/best-practices.md +232 -0
- package/templates/agents/sw-engineer/backend/fastapi-expert/refs/fastapi/index.yaml +21 -0
- package/templates/agents/sw-engineer/backend/fastapi-expert/refs/fastapi-best-practices/SKILL.md +269 -0
- package/templates/agents/sw-engineer/backend/fastapi-expert/refs/fastapi-best-practices/index.yaml +25 -0
- package/templates/agents/sw-engineer/backend/go-backend-expert/refs/go-backend/index.yaml +26 -0
- package/templates/agents/sw-engineer/backend/go-backend-expert/refs/go-backend/project-layout.md +243 -0
- package/templates/agents/sw-engineer/backend/go-backend-expert/refs/go-backend/uber-style.md +212 -0
- package/templates/agents/sw-engineer/backend/go-backend-expert/refs/go-backend-best-practices/SKILL.md +337 -0
- package/templates/agents/sw-engineer/backend/go-backend-expert/refs/go-backend-best-practices/index.yaml +26 -0
- package/templates/agents/sw-engineer/backend/springboot-expert/refs/springboot/best-practices.md +361 -0
- package/templates/agents/sw-engineer/backend/springboot-expert/refs/springboot/index.yaml +22 -0
- package/templates/agents/sw-engineer/backend/springboot-expert/refs/springboot-best-practices/SKILL.md +356 -0
- package/templates/agents/sw-engineer/backend/springboot-expert/refs/springboot-best-practices/index.yaml +27 -0
- package/templates/agents/sw-engineer/frontend/vercel-agent/refs/react-best-practices/SKILL.md +100 -0
- package/templates/agents/sw-engineer/frontend/vercel-agent/refs/react-best-practices/index.yaml +39 -0
- package/templates/agents/sw-engineer/frontend/vercel-agent/refs/vercel-deploy/SKILL.md +73 -0
- package/templates/agents/sw-engineer/frontend/vercel-agent/refs/vercel-deploy/index.yaml +30 -0
- package/templates/agents/sw-engineer/frontend/vercel-agent/refs/web-design/accessibility.md +66 -0
- package/templates/agents/sw-engineer/frontend/vercel-agent/refs/web-design/index.yaml +20 -0
- package/templates/agents/sw-engineer/frontend/vercel-agent/refs/web-design/performance.md +102 -0
- package/templates/agents/sw-engineer/frontend/vercel-agent/refs/web-design-guidelines/SKILL.md +117 -0
- package/templates/agents/sw-engineer/frontend/vercel-agent/refs/web-design-guidelines/index.yaml +34 -0
- package/templates/agents/sw-engineer/language/golang-expert/refs/go-best-practices/SKILL.md +202 -0
- package/templates/agents/sw-engineer/language/golang-expert/refs/go-best-practices/index.yaml +25 -0
- package/templates/agents/sw-engineer/language/golang-expert/refs/golang/concurrency.md +282 -0
- package/templates/agents/sw-engineer/language/golang-expert/refs/golang/effective-go.md +309 -0
- package/templates/agents/sw-engineer/language/golang-expert/refs/golang/error-handling.md +250 -0
- package/templates/agents/sw-engineer/language/golang-expert/refs/golang/index.yaml +27 -0
- package/templates/agents/sw-engineer/language/kotlin-expert/refs/kotlin/coding-conventions.md +247 -0
- package/templates/agents/sw-engineer/language/kotlin-expert/refs/kotlin/idioms.md +234 -0
- package/templates/agents/sw-engineer/language/kotlin-expert/refs/kotlin/index.yaml +26 -0
- package/templates/agents/sw-engineer/language/kotlin-expert/refs/kotlin-best-practices/SKILL.md +255 -0
- package/templates/agents/sw-engineer/language/kotlin-expert/refs/kotlin-best-practices/index.yaml +27 -0
- package/templates/agents/sw-engineer/language/python-expert/refs/python/index.yaml +26 -0
- package/templates/agents/sw-engineer/language/python-expert/refs/python/pep8-style-guide.md +202 -0
- package/templates/agents/sw-engineer/language/python-expert/refs/python/zen-of-python.md +79 -0
- package/templates/agents/sw-engineer/language/python-expert/refs/python-best-practices/SKILL.md +221 -0
- package/templates/agents/sw-engineer/language/python-expert/refs/python-best-practices/index.yaml +25 -0
- package/templates/agents/sw-engineer/language/rust-expert/refs/rust/error-handling.md +262 -0
- package/templates/agents/sw-engineer/language/rust-expert/refs/rust/index.yaml +26 -0
- package/templates/agents/sw-engineer/language/rust-expert/refs/rust/ownership.md +180 -0
- package/templates/agents/sw-engineer/language/rust-expert/refs/rust-best-practices/SKILL.md +266 -0
- package/templates/agents/sw-engineer/language/rust-expert/refs/rust-best-practices/index.yaml +26 -0
- package/templates/agents/sw-engineer/language/typescript-expert/refs/typescript/advanced-types.md +225 -0
- package/templates/agents/sw-engineer/language/typescript-expert/refs/typescript/index.yaml +26 -0
- package/templates/agents/sw-engineer/language/typescript-expert/refs/typescript/type-system.md +219 -0
- package/templates/agents/sw-engineer/language/typescript-expert/refs/typescript-best-practices/SKILL.md +320 -0
- package/templates/agents/sw-engineer/language/typescript-expert/refs/typescript-best-practices/index.yaml +28 -0
- package/templates/agents/tutor/go-tutor/AGENT.md +130 -0
- package/templates/agents/tutor/go-tutor/index.yaml +48 -0
- package/templates/examples/code-review.yaml +66 -0
- package/templates/guides/claude-code/11-sub-agents.md +159 -0
- package/templates/index.yaml +18 -0
- package/templates/manifest.json +55 -0
- package/templates/skills/orchestration/intent-detection/patterns/agent-triggers.yaml +9 -0
- package/templates/templates/pipeline-template.yaml +50 -0
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
# Spring Boot Guide
|
|
2
|
+
|
|
3
|
+
metadata:
|
|
4
|
+
name: springboot
|
|
5
|
+
description: Spring Boot framework reference documentation
|
|
6
|
+
|
|
7
|
+
source:
|
|
8
|
+
type: external
|
|
9
|
+
origin: spring.io
|
|
10
|
+
urls:
|
|
11
|
+
- https://docs.spring.io/spring-boot/docs/current/reference/html/
|
|
12
|
+
- https://spring.io/guides
|
|
13
|
+
- https://www.baeldung.com/spring-boot
|
|
14
|
+
last_fetched: "2026-01-22"
|
|
15
|
+
|
|
16
|
+
documents:
|
|
17
|
+
- name: best-practices
|
|
18
|
+
path: ./best-practices.md
|
|
19
|
+
description: Spring Boot best practices and patterns
|
|
20
|
+
|
|
21
|
+
used_by:
|
|
22
|
+
- springboot-expert
|
|
@@ -0,0 +1,356 @@
|
|
|
1
|
+
# Spring Boot Best Practices Skill
|
|
2
|
+
|
|
3
|
+
> **Category**: Backend
|
|
4
|
+
> **Source**: Internal (based on Spring documentation and Baeldung)
|
|
5
|
+
|
|
6
|
+
## Purpose
|
|
7
|
+
|
|
8
|
+
Apply Spring Boot patterns for building enterprise-grade applications.
|
|
9
|
+
|
|
10
|
+
## Rules
|
|
11
|
+
|
|
12
|
+
### 1. Project Structure
|
|
13
|
+
|
|
14
|
+
```yaml
|
|
15
|
+
structure:
|
|
16
|
+
layout: layered architecture
|
|
17
|
+
packages:
|
|
18
|
+
- controller: REST endpoints
|
|
19
|
+
- service: Business logic
|
|
20
|
+
- repository: Data access
|
|
21
|
+
- model/entity: Domain objects
|
|
22
|
+
- dto: Data transfer objects
|
|
23
|
+
- config: Configuration classes
|
|
24
|
+
- exception: Custom exceptions
|
|
25
|
+
|
|
26
|
+
example: |
|
|
27
|
+
com.example.app/
|
|
28
|
+
├── controller/
|
|
29
|
+
│ └── UserController.java
|
|
30
|
+
├── service/
|
|
31
|
+
│ ├── UserService.java
|
|
32
|
+
│ └── impl/UserServiceImpl.java
|
|
33
|
+
├── repository/
|
|
34
|
+
│ └── UserRepository.java
|
|
35
|
+
├── model/
|
|
36
|
+
│ └── User.java
|
|
37
|
+
├── dto/
|
|
38
|
+
│ ├── UserRequest.java
|
|
39
|
+
│ └── UserResponse.java
|
|
40
|
+
├── config/
|
|
41
|
+
│ └── SecurityConfig.java
|
|
42
|
+
└── exception/
|
|
43
|
+
└── UserNotFoundException.java
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
### 2. Dependency Injection
|
|
47
|
+
|
|
48
|
+
```yaml
|
|
49
|
+
prefer:
|
|
50
|
+
- Constructor injection over field injection
|
|
51
|
+
- Interface-based dependencies
|
|
52
|
+
- @RequiredArgsConstructor with final fields
|
|
53
|
+
|
|
54
|
+
patterns: |
|
|
55
|
+
// GOOD: Constructor injection
|
|
56
|
+
@Service
|
|
57
|
+
@RequiredArgsConstructor
|
|
58
|
+
public class UserService {
|
|
59
|
+
private final UserRepository userRepository;
|
|
60
|
+
private final EmailService emailService;
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
// AVOID: Field injection
|
|
64
|
+
@Service
|
|
65
|
+
public class UserService {
|
|
66
|
+
@Autowired
|
|
67
|
+
private UserRepository userRepository; // Not recommended
|
|
68
|
+
}
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
### 3. REST API Design
|
|
72
|
+
|
|
73
|
+
```yaml
|
|
74
|
+
controller:
|
|
75
|
+
annotations:
|
|
76
|
+
- "@RestController"
|
|
77
|
+
- "@RequestMapping with base path"
|
|
78
|
+
- "@Validated for input validation"
|
|
79
|
+
|
|
80
|
+
patterns: |
|
|
81
|
+
@RestController
|
|
82
|
+
@RequestMapping("/api/v1/users")
|
|
83
|
+
@RequiredArgsConstructor
|
|
84
|
+
public class UserController {
|
|
85
|
+
|
|
86
|
+
private final UserService userService;
|
|
87
|
+
|
|
88
|
+
@GetMapping("/{id}")
|
|
89
|
+
public ResponseEntity<UserResponse> getUser(@PathVariable Long id) {
|
|
90
|
+
return ResponseEntity.ok(userService.findById(id));
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
@PostMapping
|
|
94
|
+
@ResponseStatus(HttpStatus.CREATED)
|
|
95
|
+
public UserResponse createUser(@Valid @RequestBody UserRequest request) {
|
|
96
|
+
return userService.create(request);
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
@PutMapping("/{id}")
|
|
100
|
+
public UserResponse updateUser(
|
|
101
|
+
@PathVariable Long id,
|
|
102
|
+
@Valid @RequestBody UserRequest request
|
|
103
|
+
) {
|
|
104
|
+
return userService.update(id, request);
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
@DeleteMapping("/{id}")
|
|
108
|
+
@ResponseStatus(HttpStatus.NO_CONTENT)
|
|
109
|
+
public void deleteUser(@PathVariable Long id) {
|
|
110
|
+
userService.delete(id);
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
```
|
|
114
|
+
|
|
115
|
+
### 4. Service Layer
|
|
116
|
+
|
|
117
|
+
```yaml
|
|
118
|
+
principles:
|
|
119
|
+
- Business logic in service layer
|
|
120
|
+
- Transaction boundaries at service level
|
|
121
|
+
- Interface + implementation pattern
|
|
122
|
+
|
|
123
|
+
patterns: |
|
|
124
|
+
public interface UserService {
|
|
125
|
+
UserResponse findById(Long id);
|
|
126
|
+
UserResponse create(UserRequest request);
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
@Service
|
|
130
|
+
@Transactional(readOnly = true)
|
|
131
|
+
@RequiredArgsConstructor
|
|
132
|
+
public class UserServiceImpl implements UserService {
|
|
133
|
+
|
|
134
|
+
private final UserRepository userRepository;
|
|
135
|
+
private final UserMapper userMapper;
|
|
136
|
+
|
|
137
|
+
@Override
|
|
138
|
+
public UserResponse findById(Long id) {
|
|
139
|
+
User user = userRepository.findById(id)
|
|
140
|
+
.orElseThrow(() -> new UserNotFoundException(id));
|
|
141
|
+
return userMapper.toResponse(user);
|
|
142
|
+
}
|
|
143
|
+
|
|
144
|
+
@Override
|
|
145
|
+
@Transactional
|
|
146
|
+
public UserResponse create(UserRequest request) {
|
|
147
|
+
User user = userMapper.toEntity(request);
|
|
148
|
+
return userMapper.toResponse(userRepository.save(user));
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
```
|
|
152
|
+
|
|
153
|
+
### 5. Data Access
|
|
154
|
+
|
|
155
|
+
```yaml
|
|
156
|
+
repository:
|
|
157
|
+
use: Spring Data JPA
|
|
158
|
+
custom_queries: "@Query annotation or method naming"
|
|
159
|
+
|
|
160
|
+
patterns: |
|
|
161
|
+
public interface UserRepository extends JpaRepository<User, Long> {
|
|
162
|
+
|
|
163
|
+
Optional<User> findByEmail(String email);
|
|
164
|
+
|
|
165
|
+
@Query("SELECT u FROM User u WHERE u.status = :status")
|
|
166
|
+
List<User> findByStatus(@Param("status") UserStatus status);
|
|
167
|
+
|
|
168
|
+
@Query(value = "SELECT * FROM users WHERE created_at > :date",
|
|
169
|
+
nativeQuery = true)
|
|
170
|
+
List<User> findRecentUsers(@Param("date") LocalDateTime date);
|
|
171
|
+
}
|
|
172
|
+
|
|
173
|
+
entity: |
|
|
174
|
+
@Entity
|
|
175
|
+
@Table(name = "users")
|
|
176
|
+
@Getter
|
|
177
|
+
@NoArgsConstructor(access = AccessLevel.PROTECTED)
|
|
178
|
+
public class User {
|
|
179
|
+
|
|
180
|
+
@Id
|
|
181
|
+
@GeneratedValue(strategy = GenerationType.IDENTITY)
|
|
182
|
+
private Long id;
|
|
183
|
+
|
|
184
|
+
@Column(nullable = false, unique = true)
|
|
185
|
+
private String email;
|
|
186
|
+
|
|
187
|
+
@Enumerated(EnumType.STRING)
|
|
188
|
+
private UserStatus status;
|
|
189
|
+
|
|
190
|
+
@CreatedDate
|
|
191
|
+
private LocalDateTime createdAt;
|
|
192
|
+
}
|
|
193
|
+
```
|
|
194
|
+
|
|
195
|
+
### 6. Exception Handling
|
|
196
|
+
|
|
197
|
+
```yaml
|
|
198
|
+
global_handler:
|
|
199
|
+
use: "@ControllerAdvice"
|
|
200
|
+
custom_exceptions: domain-specific
|
|
201
|
+
|
|
202
|
+
patterns: |
|
|
203
|
+
@RestControllerAdvice
|
|
204
|
+
public class GlobalExceptionHandler {
|
|
205
|
+
|
|
206
|
+
@ExceptionHandler(UserNotFoundException.class)
|
|
207
|
+
@ResponseStatus(HttpStatus.NOT_FOUND)
|
|
208
|
+
public ErrorResponse handleUserNotFound(UserNotFoundException ex) {
|
|
209
|
+
return new ErrorResponse("USER_NOT_FOUND", ex.getMessage());
|
|
210
|
+
}
|
|
211
|
+
|
|
212
|
+
@ExceptionHandler(MethodArgumentNotValidException.class)
|
|
213
|
+
@ResponseStatus(HttpStatus.BAD_REQUEST)
|
|
214
|
+
public ErrorResponse handleValidation(MethodArgumentNotValidException ex) {
|
|
215
|
+
List<String> errors = ex.getBindingResult()
|
|
216
|
+
.getFieldErrors()
|
|
217
|
+
.stream()
|
|
218
|
+
.map(e -> e.getField() + ": " + e.getDefaultMessage())
|
|
219
|
+
.toList();
|
|
220
|
+
return new ErrorResponse("VALIDATION_ERROR", errors);
|
|
221
|
+
}
|
|
222
|
+
}
|
|
223
|
+
```
|
|
224
|
+
|
|
225
|
+
### 7. Configuration
|
|
226
|
+
|
|
227
|
+
```yaml
|
|
228
|
+
profiles:
|
|
229
|
+
use: application-{profile}.yml
|
|
230
|
+
externalize: sensitive values
|
|
231
|
+
|
|
232
|
+
patterns: |
|
|
233
|
+
# application.yml
|
|
234
|
+
spring:
|
|
235
|
+
profiles:
|
|
236
|
+
active: ${SPRING_PROFILES_ACTIVE:local}
|
|
237
|
+
datasource:
|
|
238
|
+
url: ${DATABASE_URL}
|
|
239
|
+
username: ${DATABASE_USERNAME}
|
|
240
|
+
password: ${DATABASE_PASSWORD}
|
|
241
|
+
|
|
242
|
+
# application-local.yml
|
|
243
|
+
spring:
|
|
244
|
+
datasource:
|
|
245
|
+
url: jdbc:h2:mem:testdb
|
|
246
|
+
driver-class-name: org.h2.Driver
|
|
247
|
+
|
|
248
|
+
configuration_class: |
|
|
249
|
+
@Configuration
|
|
250
|
+
@ConfigurationProperties(prefix = "app")
|
|
251
|
+
@Validated
|
|
252
|
+
public class AppProperties {
|
|
253
|
+
|
|
254
|
+
@NotBlank
|
|
255
|
+
private String name;
|
|
256
|
+
|
|
257
|
+
@Min(1)
|
|
258
|
+
private int maxConnections;
|
|
259
|
+
|
|
260
|
+
// getters, setters
|
|
261
|
+
}
|
|
262
|
+
```
|
|
263
|
+
|
|
264
|
+
### 8. Security
|
|
265
|
+
|
|
266
|
+
```yaml
|
|
267
|
+
principles:
|
|
268
|
+
- Use Spring Security
|
|
269
|
+
- Externalize secrets
|
|
270
|
+
- Implement proper authentication
|
|
271
|
+
|
|
272
|
+
patterns: |
|
|
273
|
+
@Configuration
|
|
274
|
+
@EnableWebSecurity
|
|
275
|
+
@RequiredArgsConstructor
|
|
276
|
+
public class SecurityConfig {
|
|
277
|
+
|
|
278
|
+
private final JwtTokenProvider tokenProvider;
|
|
279
|
+
|
|
280
|
+
@Bean
|
|
281
|
+
public SecurityFilterChain filterChain(HttpSecurity http) throws Exception {
|
|
282
|
+
return http
|
|
283
|
+
.csrf(csrf -> csrf.disable())
|
|
284
|
+
.sessionManagement(session ->
|
|
285
|
+
session.sessionCreationPolicy(SessionCreationPolicy.STATELESS))
|
|
286
|
+
.authorizeHttpRequests(auth -> auth
|
|
287
|
+
.requestMatchers("/api/v1/auth/**").permitAll()
|
|
288
|
+
.requestMatchers("/api/v1/admin/**").hasRole("ADMIN")
|
|
289
|
+
.anyRequest().authenticated())
|
|
290
|
+
.addFilterBefore(jwtFilter(), UsernamePasswordAuthenticationFilter.class)
|
|
291
|
+
.build();
|
|
292
|
+
}
|
|
293
|
+
}
|
|
294
|
+
```
|
|
295
|
+
|
|
296
|
+
### 9. Testing
|
|
297
|
+
|
|
298
|
+
```yaml
|
|
299
|
+
layers:
|
|
300
|
+
unit: "@MockBean, Mockito"
|
|
301
|
+
integration: "@SpringBootTest"
|
|
302
|
+
slice: "@WebMvcTest, @DataJpaTest"
|
|
303
|
+
|
|
304
|
+
patterns: |
|
|
305
|
+
// Controller test
|
|
306
|
+
@WebMvcTest(UserController.class)
|
|
307
|
+
class UserControllerTest {
|
|
308
|
+
|
|
309
|
+
@Autowired
|
|
310
|
+
private MockMvc mockMvc;
|
|
311
|
+
|
|
312
|
+
@MockBean
|
|
313
|
+
private UserService userService;
|
|
314
|
+
|
|
315
|
+
@Test
|
|
316
|
+
void getUser_shouldReturnUser() throws Exception {
|
|
317
|
+
given(userService.findById(1L))
|
|
318
|
+
.willReturn(new UserResponse(1L, "test@example.com"));
|
|
319
|
+
|
|
320
|
+
mockMvc.perform(get("/api/v1/users/1"))
|
|
321
|
+
.andExpect(status().isOk())
|
|
322
|
+
.andExpect(jsonPath("$.email").value("test@example.com"));
|
|
323
|
+
}
|
|
324
|
+
}
|
|
325
|
+
|
|
326
|
+
// Repository test
|
|
327
|
+
@DataJpaTest
|
|
328
|
+
class UserRepositoryTest {
|
|
329
|
+
|
|
330
|
+
@Autowired
|
|
331
|
+
private UserRepository userRepository;
|
|
332
|
+
|
|
333
|
+
@Test
|
|
334
|
+
void findByEmail_shouldReturnUser() {
|
|
335
|
+
User user = userRepository.save(new User("test@example.com"));
|
|
336
|
+
|
|
337
|
+
Optional<User> found = userRepository.findByEmail("test@example.com");
|
|
338
|
+
|
|
339
|
+
assertThat(found).isPresent();
|
|
340
|
+
assertThat(found.get().getEmail()).isEqualTo("test@example.com");
|
|
341
|
+
}
|
|
342
|
+
}
|
|
343
|
+
```
|
|
344
|
+
|
|
345
|
+
## Application
|
|
346
|
+
|
|
347
|
+
When writing Spring Boot code:
|
|
348
|
+
|
|
349
|
+
1. **Always** use constructor injection
|
|
350
|
+
2. **Always** use layered architecture
|
|
351
|
+
3. **Prefer** interface-based services
|
|
352
|
+
4. **Use** DTOs for API contracts
|
|
353
|
+
5. **Handle** exceptions globally
|
|
354
|
+
6. **Externalize** configuration
|
|
355
|
+
7. **Secure** endpoints properly
|
|
356
|
+
8. **Test** each layer appropriately
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
# Spring Boot Best Practices Skill
|
|
2
|
+
|
|
3
|
+
metadata:
|
|
4
|
+
name: springboot-best-practices
|
|
5
|
+
category: backend
|
|
6
|
+
description: Spring Boot patterns for enterprise Java applications
|
|
7
|
+
|
|
8
|
+
source:
|
|
9
|
+
type: internal
|
|
10
|
+
reference:
|
|
11
|
+
- https://docs.spring.io/spring-boot/docs/current/reference/html/
|
|
12
|
+
- https://spring.io/guides
|
|
13
|
+
- https://www.baeldung.com/spring-boot
|
|
14
|
+
|
|
15
|
+
provides:
|
|
16
|
+
- Project structure patterns
|
|
17
|
+
- Dependency injection best practices
|
|
18
|
+
- REST API design guidelines
|
|
19
|
+
- Service layer patterns
|
|
20
|
+
- Data access patterns
|
|
21
|
+
- Exception handling
|
|
22
|
+
- Configuration management
|
|
23
|
+
- Security implementation
|
|
24
|
+
- Testing strategies
|
|
25
|
+
|
|
26
|
+
used_by:
|
|
27
|
+
- springboot-expert
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
# React Best Practices
|
|
2
|
+
|
|
3
|
+
> **Source**: vercel-labs/agent-skills
|
|
4
|
+
> **Rules**: 40+ rules in 8 categories
|
|
5
|
+
|
|
6
|
+
## When to Use
|
|
7
|
+
|
|
8
|
+
- Writing React/Next.js components
|
|
9
|
+
- Data fetching implementation
|
|
10
|
+
- Performance review
|
|
11
|
+
- Bundle size optimization
|
|
12
|
+
|
|
13
|
+
## Categories by Priority
|
|
14
|
+
|
|
15
|
+
### Critical Priority
|
|
16
|
+
|
|
17
|
+
#### Waterfall Elimination
|
|
18
|
+
```
|
|
19
|
+
- Avoid sequential data fetching
|
|
20
|
+
- Use parallel data fetching
|
|
21
|
+
- Implement proper loading states
|
|
22
|
+
- Prefetch critical data
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
#### Bundle Optimization
|
|
26
|
+
```
|
|
27
|
+
- Minimize client-side JavaScript
|
|
28
|
+
- Use dynamic imports
|
|
29
|
+
- Tree-shake unused code
|
|
30
|
+
- Analyze bundle with tools
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
### High Priority
|
|
34
|
+
|
|
35
|
+
#### Server-Side Performance
|
|
36
|
+
```
|
|
37
|
+
- Use Server Components by default
|
|
38
|
+
- Minimize 'use client' directives
|
|
39
|
+
- Implement streaming where possible
|
|
40
|
+
- Cache server responses
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
### Medium-High Priority
|
|
44
|
+
|
|
45
|
+
#### Client-Side Fetching
|
|
46
|
+
```
|
|
47
|
+
- Use SWR or React Query
|
|
48
|
+
- Implement optimistic updates
|
|
49
|
+
- Handle loading/error states
|
|
50
|
+
- Cache API responses
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
### Medium Priority
|
|
54
|
+
|
|
55
|
+
#### Rendering
|
|
56
|
+
```
|
|
57
|
+
- Avoid unnecessary re-renders
|
|
58
|
+
- Use React.memo strategically
|
|
59
|
+
- Implement useMemo/useCallback properly
|
|
60
|
+
- Virtualize long lists
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
#### Caching
|
|
64
|
+
```
|
|
65
|
+
- Implement proper cache headers
|
|
66
|
+
- Use ISR for dynamic content
|
|
67
|
+
- Cache database queries
|
|
68
|
+
- CDN caching strategies
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
#### Code Splitting
|
|
72
|
+
```
|
|
73
|
+
- Split by route
|
|
74
|
+
- Lazy load below-fold content
|
|
75
|
+
- Dynamic import heavy libraries
|
|
76
|
+
- Preload critical chunks
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
### Low-Medium Priority
|
|
80
|
+
|
|
81
|
+
#### Image Optimization
|
|
82
|
+
```
|
|
83
|
+
- Use next/image
|
|
84
|
+
- Implement proper sizing
|
|
85
|
+
- Use modern formats (WebP, AVIF)
|
|
86
|
+
- Lazy load off-screen images
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
## Execution Flow
|
|
90
|
+
|
|
91
|
+
```
|
|
92
|
+
1. Identify optimization area
|
|
93
|
+
2. Check relevant category rules
|
|
94
|
+
3. Apply recommendations
|
|
95
|
+
4. Verify improvements
|
|
96
|
+
```
|
|
97
|
+
|
|
98
|
+
## Scripts
|
|
99
|
+
|
|
100
|
+
See `scripts/` directory for automation helpers.
|
package/templates/agents/sw-engineer/frontend/vercel-agent/refs/react-best-practices/index.yaml
ADDED
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
# React Best Practices Skill
|
|
2
|
+
|
|
3
|
+
metadata:
|
|
4
|
+
name: react-best-practices
|
|
5
|
+
category: development
|
|
6
|
+
description: React/Next.js performance optimization with 40+ rules in 8 categories
|
|
7
|
+
|
|
8
|
+
source:
|
|
9
|
+
type: external
|
|
10
|
+
origin: github
|
|
11
|
+
url: https://github.com/vercel-labs/agent-skills
|
|
12
|
+
path: skills/react-best-practices
|
|
13
|
+
version: "1.0.0"
|
|
14
|
+
last_updated: "2025-01-22"
|
|
15
|
+
|
|
16
|
+
triggers:
|
|
17
|
+
- "optimize React"
|
|
18
|
+
- "performance review"
|
|
19
|
+
- "bundle size"
|
|
20
|
+
- "data fetching"
|
|
21
|
+
- "Next.js optimization"
|
|
22
|
+
|
|
23
|
+
categories:
|
|
24
|
+
- name: waterfall-elimination
|
|
25
|
+
priority: critical
|
|
26
|
+
- name: bundle-optimization
|
|
27
|
+
priority: critical
|
|
28
|
+
- name: server-performance
|
|
29
|
+
priority: high
|
|
30
|
+
- name: client-fetching
|
|
31
|
+
priority: medium-high
|
|
32
|
+
- name: rendering
|
|
33
|
+
priority: medium
|
|
34
|
+
- name: caching
|
|
35
|
+
priority: medium
|
|
36
|
+
- name: code-splitting
|
|
37
|
+
priority: medium
|
|
38
|
+
- name: image-optimization
|
|
39
|
+
priority: low-medium
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
# Vercel Deploy
|
|
2
|
+
|
|
3
|
+
> **Source**: vercel-labs/agent-skills
|
|
4
|
+
> **Capability**: Instant deployment to Vercel
|
|
5
|
+
|
|
6
|
+
## When to Use
|
|
7
|
+
|
|
8
|
+
- Deploy application to Vercel
|
|
9
|
+
- Create preview deployments
|
|
10
|
+
- Generate shareable URLs
|
|
11
|
+
|
|
12
|
+
## Features
|
|
13
|
+
|
|
14
|
+
### Framework Detection
|
|
15
|
+
```
|
|
16
|
+
Auto-detects 40+ frameworks from package.json:
|
|
17
|
+
- Next.js
|
|
18
|
+
- React
|
|
19
|
+
- Vue
|
|
20
|
+
- Nuxt
|
|
21
|
+
- Svelte
|
|
22
|
+
- Astro
|
|
23
|
+
- and more...
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
### Auto Exclusions
|
|
27
|
+
```
|
|
28
|
+
Automatically excludes:
|
|
29
|
+
- node_modules/
|
|
30
|
+
- .git/
|
|
31
|
+
- .env files
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
### Output
|
|
35
|
+
```
|
|
36
|
+
On successful deployment:
|
|
37
|
+
1. Preview URL (view deployment)
|
|
38
|
+
2. Claim URL (transfer ownership)
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
## Execution Flow
|
|
42
|
+
|
|
43
|
+
```
|
|
44
|
+
1. Detect project framework
|
|
45
|
+
2. Prepare deployment bundle
|
|
46
|
+
3. Upload to Vercel
|
|
47
|
+
4. Return URLs
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
## Output Format
|
|
51
|
+
|
|
52
|
+
```
|
|
53
|
+
[Deploy Success]
|
|
54
|
+
Preview: https://project-xxx.vercel.app
|
|
55
|
+
Claim: https://vercel.com/claim/xxx
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
## Scripts
|
|
59
|
+
|
|
60
|
+
See `scripts/deploy.sh` for deployment automation.
|
|
61
|
+
|
|
62
|
+
## Requirements
|
|
63
|
+
|
|
64
|
+
- Valid project structure
|
|
65
|
+
- package.json present
|
|
66
|
+
- Vercel CLI or API token (for authenticated deploys)
|
|
67
|
+
|
|
68
|
+
## Limitations
|
|
69
|
+
|
|
70
|
+
- Claimable deploys are anonymous
|
|
71
|
+
- Preview URLs are temporary
|
|
72
|
+
- Full features require Vercel account
|
|
73
|
+
```
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
# Vercel Deploy Skill
|
|
2
|
+
|
|
3
|
+
metadata:
|
|
4
|
+
name: vercel-deploy
|
|
5
|
+
category: development
|
|
6
|
+
description: Deploy applications to Vercel with auto-detection and preview URLs
|
|
7
|
+
|
|
8
|
+
source:
|
|
9
|
+
type: external
|
|
10
|
+
origin: github
|
|
11
|
+
url: https://github.com/vercel-labs/agent-skills
|
|
12
|
+
path: skills/vercel-deploy-claimable
|
|
13
|
+
version: "1.0.0"
|
|
14
|
+
last_updated: "2025-01-22"
|
|
15
|
+
|
|
16
|
+
triggers:
|
|
17
|
+
- "deploy to Vercel"
|
|
18
|
+
- "create preview"
|
|
19
|
+
- "publish site"
|
|
20
|
+
- "Vercel deployment"
|
|
21
|
+
|
|
22
|
+
capabilities:
|
|
23
|
+
- Auto-detect 40+ frameworks
|
|
24
|
+
- Generate preview URLs
|
|
25
|
+
- Ownership transfer links
|
|
26
|
+
- Exclude node_modules, .git automatically
|
|
27
|
+
|
|
28
|
+
requirements:
|
|
29
|
+
- Vercel CLI or API access
|
|
30
|
+
- Project with package.json
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
# Accessibility Best Practices
|
|
2
|
+
|
|
3
|
+
> Reference guide for web-design-guidelines skill
|
|
4
|
+
|
|
5
|
+
## Core Principles
|
|
6
|
+
|
|
7
|
+
### WCAG 2.1 Compliance
|
|
8
|
+
```
|
|
9
|
+
Level A: Minimum accessibility
|
|
10
|
+
Level AA: Standard compliance (recommended)
|
|
11
|
+
Level AAA: Enhanced accessibility
|
|
12
|
+
```
|
|
13
|
+
|
|
14
|
+
### POUR Principles
|
|
15
|
+
```
|
|
16
|
+
Perceivable: Content available to senses
|
|
17
|
+
Operable: Interface navigable
|
|
18
|
+
Understandable: Clear and predictable
|
|
19
|
+
Robust: Works across technologies
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
## Quick Reference
|
|
23
|
+
|
|
24
|
+
### Color Contrast
|
|
25
|
+
```
|
|
26
|
+
Normal text: 4.5:1 minimum
|
|
27
|
+
Large text: 3:1 minimum
|
|
28
|
+
UI components: 3:1 minimum
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
### Keyboard Navigation
|
|
32
|
+
```
|
|
33
|
+
Tab: Move forward
|
|
34
|
+
Shift+Tab: Move backward
|
|
35
|
+
Enter/Space: Activate
|
|
36
|
+
Escape: Close/Cancel
|
|
37
|
+
Arrow keys: Navigate within component
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
### ARIA Landmarks
|
|
41
|
+
```html
|
|
42
|
+
<header role="banner">
|
|
43
|
+
<nav role="navigation">
|
|
44
|
+
<main role="main">
|
|
45
|
+
<aside role="complementary">
|
|
46
|
+
<footer role="contentinfo">
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
### Common ARIA Attributes
|
|
50
|
+
```html
|
|
51
|
+
aria-label="Description"
|
|
52
|
+
aria-labelledby="element-id"
|
|
53
|
+
aria-describedby="description-id"
|
|
54
|
+
aria-hidden="true|false"
|
|
55
|
+
aria-expanded="true|false"
|
|
56
|
+
aria-selected="true|false"
|
|
57
|
+
aria-live="polite|assertive"
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
## Testing Tools
|
|
61
|
+
|
|
62
|
+
- axe DevTools
|
|
63
|
+
- WAVE
|
|
64
|
+
- Lighthouse
|
|
65
|
+
- VoiceOver (macOS)
|
|
66
|
+
- NVDA (Windows)
|