@nockdev/awf 6.2.0 → 6.2.1
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/.agent/build.yaml +3 -3
- package/.agent/config.yaml +21 -146
- package/.agent/core/AGENT_BEHAVIOR.md +86 -0
- package/.agent/core/AUDIT_POLICY.md +1 -1
- package/.agent/core/CACHE.md +1 -1
- package/.agent/core/COMMANDS.md +16 -7
- package/.agent/core/CUSTOMIZE.md +61 -3
- package/.agent/core/DATA_SAFETY.md +1 -1
- package/.agent/core/MEMORY_PATHS.yaml +2 -2
- package/.agent/core/PERMISSIONS.md +1 -1
- package/.agent/core/README.md +1 -1
- package/.agent/core/VERSION.yaml +18 -8
- package/.agent/core/{ACTIVE_MEMORY.yaml → archive/ACTIVE_MEMORY.yaml} +2 -2
- package/.agent/core/{CHECKPOINT.yaml → archive/CHECKPOINT.yaml} +2 -2
- package/.agent/core/{CLEANUP_ENGINE.yaml → archive/CLEANUP_ENGINE.yaml} +2 -2
- package/.agent/core/{CONTEXT_INJECTOR.yaml → archive/CONTEXT_INJECTOR.yaml} +2 -2
- package/.agent/core/{CONTEXT_LOADER.yaml → archive/CONTEXT_LOADER.yaml} +1 -1
- package/.agent/core/{CONTEXT_OPTIMIZATION.yaml → archive/CONTEXT_OPTIMIZATION.yaml} +1 -1
- package/.agent/core/{CONTEXT_PRIORITY.yaml → archive/CONTEXT_PRIORITY.yaml} +2 -2
- package/.agent/core/{FLOW_ENGINE.yaml → archive/FLOW_ENGINE.yaml} +1 -1
- package/.agent/core/{GRAPH_MEMORY.yaml → archive/GRAPH_MEMORY.yaml} +1 -1
- package/.agent/core/{HYBRID_ROUTER.yaml → archive/HYBRID_ROUTER.yaml} +1 -1
- package/.agent/core/{INTENT_DETECTION.yaml → archive/INTENT_DETECTION.yaml} +1 -1
- package/.agent/core/{MEMORY_CONSOLIDATION.yaml → archive/MEMORY_CONSOLIDATION.yaml} +3 -3
- package/.agent/core/{MEMORY_ENGINE.yaml → archive/MEMORY_ENGINE.yaml} +2 -2
- package/.agent/core/{MEMORY_UTILS.yaml → archive/MEMORY_UTILS.yaml} +1 -1
- package/.agent/core/{REFLECTION_ENGINE.yaml → archive/REFLECTION_ENGINE.yaml} +1 -1
- package/.agent/core/{ROUTER.yaml → archive/ROUTER.yaml} +5 -5
- package/.agent/core/{SCORING_FORMULA.yaml → archive/SCORING_FORMULA.yaml} +2 -2
- package/.agent/core/{SEMANTIC_ENGINE.yaml → archive/SEMANTIC_ENGINE.yaml} +1 -1
- package/.agent/core/{SKILLS_FLOW.yaml → archive/SKILLS_FLOW.yaml} +2 -2
- package/.agent/core/{STATE_MACHINE.yaml → archive/STATE_MACHINE.yaml} +1 -1
- package/.agent/core/{SUMMARIZATION_ENGINE.yaml → archive/SUMMARIZATION_ENGINE.yaml} +2 -2
- package/.agent/core/{TOKEN_BUDGETS.yaml → archive/TOKEN_BUDGETS.yaml} +2 -2
- package/.agent/core/{TOKEN_LOADING.yaml → archive/TOKEN_LOADING.yaml} +2 -2
- package/.agent/core/{TOKEN_SUMMARY.yaml → archive/TOKEN_SUMMARY.yaml} +2 -2
- package/.agent/core/{CODING_STYLES.yaml → reference/CODING_STYLES.yaml} +1 -1
- package/.agent/core/{LIBRARY_REGISTRY.yaml → reference/LIBRARY_REGISTRY.yaml} +1 -1
- package/.agent/core/{MCP_TOOLS.yaml → reference/MCP_TOOLS.yaml} +2 -2
- package/.agent/core/{PATTERNS.yaml → reference/PATTERNS.yaml} +1 -1
- package/.agent/core/{SKILL_SCHEMA.yaml → reference/SKILL_SCHEMA.yaml} +2 -2
- package/.agent/i18n/en.yaml +6 -6
- package/.agent/i18n/vi.yaml +6 -6
- package/.agent/ide/README.md +1 -1
- package/.agent/ide/amazonq.json +3 -3
- package/.agent/ide/amp.json +4 -3
- package/.agent/ide/antigravity.json +4 -3
- package/.agent/ide/augment.json +4 -4
- package/.agent/ide/claude.json +4 -3
- package/.agent/ide/cline.json +4 -3
- package/.agent/ide/codex.json +6 -1
- package/.agent/ide/cody.json +4 -3
- package/.agent/ide/continue.json +4 -3
- package/.agent/ide/cursor.json +4 -3
- package/.agent/ide/gemini.json +4 -3
- package/.agent/ide/jetbrains.json +4 -3
- package/.agent/ide/kiro.json +4 -3
- package/.agent/ide/opencode.json +4 -3
- package/.agent/ide/roo.json +4 -3
- package/.agent/ide/tabnine.json +4 -3
- package/.agent/ide/trae.json +4 -3
- package/.agent/ide/vscode.json +4 -3
- package/.agent/ide/windsurf.json +4 -3
- package/.agent/ide/zed.json +4 -3
- package/.agent/manifest.yaml +142 -34
- package/.agent/memory/core_memory/persona.json +2 -2
- package/.agent/memory/core_memory/project.json +1 -1
- package/.agent/memory/core_memory/rules.json +1 -1
- package/.agent/memory/core_memory/user.json +1 -1
- package/.agent/memory/graph/knowledge_graph.json +1 -1
- package/.agent/memory/patterns/errors.json +1 -1
- package/.agent/memory/patterns/successes.json +1 -1
- package/.agent/memory/state.json +3 -3
- package/.agent/personas/README.md +1 -1
- package/.agent/personas/architect.md +1 -1
- package/.agent/personas/auditor.md +1 -1
- package/.agent/personas/debugger.md +1 -1
- package/.agent/personas/developer.md +1 -1
- package/.agent/personas/devops.md +1 -1
- package/.agent/personas/documenter.md +1 -1
- package/.agent/personas/orchestrator.md +1 -1
- package/.agent/personas/persona.schema.yaml +1 -1
- package/.agent/personas/planner.md +1 -1
- package/.agent/personas/researcher.md +1 -1
- package/.agent/personas/security.md +1 -1
- package/.agent/personas/tester.md +1 -1
- package/.agent/private/README.md +74 -0
- package/.agent/private/_index.yaml +23 -0
- package/.agent/private/_template/META.yaml +38 -0
- package/.agent/private/_template/SKILL.md +43 -0
- package/.agent/private/_template/data/.gitkeep +0 -0
- package/.agent/private/autodomyh-api/META.yaml +48 -0
- package/.agent/private/autodomyh-api/SKILL.md +141 -0
- package/.agent/private/autodomyh-api/data/conventions.yaml +107 -0
- package/.agent/rules/README.md +24 -18
- package/.agent/rules/SACRED_RULES.xml +42 -36
- package/.agent/rules/{constitutional → archive/constitutional}/tier-0-core.yaml +5 -5
- package/.agent/rules/{constitutional → archive/constitutional}/tier-1-safety.yaml +5 -5
- package/.agent/rules/{constitutional → archive/constitutional}/tier-2-execution.yaml +6 -6
- package/.agent/rules/{modules → archive}/context-management.yaml +1 -1
- package/.agent/rules/{duplication-prevention.md → archive/duplication-prevention.md} +1 -1
- package/.agent/rules/{modules → archive}/evidence.yaml +1 -1
- package/.agent/rules/{project-detection.md → archive/project-detection.md} +1 -1
- package/.agent/rules/{modules → archive}/reflection.yaml +1 -1
- package/.agent/rules/{modules → archive}/versioning.yaml +3 -3
- package/.agent/rules/data/build-systems.yaml +2 -2
- package/.agent/rules/modules/agent-delegation.yaml +136 -0
- package/.agent/rules/modules/edit-verification.yaml +1 -1
- package/.agent/rules/modules/git-workflow.yaml +1 -1
- package/.agent/rules/modules/language.yaml +1 -1
- package/.agent/rules/modules/online-research.yaml +1 -1
- package/.agent/rules/modules/performance-optimization.yaml +141 -0
- package/.agent/rules/modules/quality.yaml +1 -1
- package/.agent/rules/modules/stop-conditions.yaml +1 -1
- package/.agent/rules/modules/terminal-safety.yaml +1 -1
- package/.agent/rules/modules/yagni.yaml +1 -1
- package/.agent/rules/validation-framework.md +1 -1
- package/.agent/skills/DEVELOPMENT.yaml +5 -5
- package/.agent/skills/README.md +19 -16
- package/.agent/skills/_categories.yaml +60 -8
- package/.agent/skills/_router.yaml +61 -19
- package/.agent/skills/ai-ml/ai-agents/META.yaml +127 -0
- package/.agent/skills/ai-ml/ai-agents/SKILL.md +139 -0
- package/.agent/skills/ai-ml/ai-agents/data/agent-rules.yaml +120 -0
- package/.agent/skills/ai-ml/ai-agents/data/llm-integration.yaml +129 -0
- package/.agent/skills/ai-ml/ai-agents/data/memory-patterns.yaml +123 -0
- package/.agent/skills/ai-ml/ai-agents/data/orchestration-patterns.yaml +101 -0
- package/.agent/skills/ai-ml/gemini-live/META.yaml +55 -0
- package/.agent/skills/ai-ml/gemini-live/SKILL.md +155 -0
- package/.agent/skills/ai-ml/gemini-live/data/code-execution.yaml +131 -0
- package/.agent/skills/ai-ml/gemini-live/data/context-caching.yaml +96 -0
- package/.agent/skills/ai-ml/gemini-live/data/grounding.yaml +97 -0
- package/.agent/skills/ai-ml/gemini-live/data/live-api.yaml +103 -0
- package/.agent/skills/ai-ml/gemini-media-gen/META.yaml +56 -0
- package/.agent/skills/ai-ml/gemini-media-gen/SKILL.md +128 -0
- package/.agent/skills/ai-ml/gemini-media-gen/data/files-api.yaml +96 -0
- package/.agent/skills/ai-ml/gemini-media-gen/data/image-models.yaml +112 -0
- package/.agent/skills/ai-ml/gemini-media-gen/data/image-prompts.yaml +131 -0
- package/.agent/skills/ai-ml/gemini-media-gen/data/video-generation.yaml +131 -0
- package/.agent/skills/ai-ml/gemini-tts/META.yaml +49 -0
- package/.agent/skills/ai-ml/gemini-tts/SKILL.md +124 -0
- package/.agent/skills/ai-ml/gemini-tts/data/markup-tags.yaml +95 -0
- package/.agent/skills/ai-ml/gemini-tts/data/models.yaml +124 -0
- package/.agent/skills/ai-ml/gemini-tts/data/prompting-patterns.yaml +81 -0
- package/.agent/skills/ai-ml/prompt-engineering/META.yaml +77 -0
- package/.agent/skills/ai-ml/prompt-engineering/SKILL.md +217 -0
- package/.agent/skills/ai-ml/prompt-engineering/data/gemini3-patterns.yaml +170 -0
- package/.agent/skills/ai-ml/prompt-engineering/data/output-patterns.yaml +73 -0
- package/.agent/skills/ai-ml/prompt-engineering/data/provider-patterns.yaml +82 -0
- package/.agent/skills/ai-ml/prompt-engineering/data/reasoning-patterns.yaml +86 -0
- package/.agent/skills/ai-ml/prompt-engineering/data/safety-patterns.yaml +71 -0
- package/.agent/skills/ai-ml/prompt-engineering/data/tool-patterns.yaml +173 -0
- package/.agent/skills/ai-ml/rag-patterns/META.yaml +57 -0
- package/.agent/skills/ai-ml/rag-patterns/SKILL.md +92 -0
- package/.agent/skills/ai-ml/rag-patterns/data/chunking-strategies.yaml +71 -0
- package/.agent/skills/ai-ml/rag-patterns/data/embedding-models.yaml +76 -0
- package/.agent/skills/ai-ml/rag-patterns/data/evaluation.yaml +92 -0
- package/.agent/skills/ai-ml/rag-patterns/data/retrieval-patterns.yaml +101 -0
- package/.agent/skills/ai-ml/rag-patterns/data/vector-databases.yaml +103 -0
- package/.agent/skills/ai-ml/vector-search/META.yaml +63 -0
- package/.agent/skills/ai-ml/vector-search/SKILL.md +110 -0
- package/.agent/skills/ai-ml/vector-search/data/embedding-models.yaml +117 -0
- package/.agent/skills/ai-ml/vector-search/data/search-patterns.yaml +118 -0
- package/.agent/skills/ai-ml/vector-search/data/vector-dbs.yaml +155 -0
- package/.agent/skills/core/api-design/META.yaml +1 -5
- package/.agent/skills/core/api-design/SKILL.md +20 -26
- package/.agent/skills/core/api-design/data/api-versioning.yaml +211 -211
- package/.agent/skills/core/api-design/data/error-responses.yaml +129 -129
- package/.agent/skills/core/api-design/data/graphql-patterns.yaml +159 -159
- package/.agent/skills/core/api-design/data/grpc-patterns.yaml +159 -159
- package/.agent/skills/core/api-design/data/http-status-codes.yaml +170 -170
- package/.agent/skills/core/api-design/data/modern-api-patterns.yaml +160 -0
- package/.agent/skills/core/api-design/data/pagination.yaml +115 -115
- package/.agent/skills/core/api-design/data/rate-limiting.yaml +129 -129
- package/.agent/skills/core/api-design/data/rest-patterns.yaml +189 -189
- package/.agent/skills/core/api-design/data/test-apis.yaml +211 -211
- package/.agent/skills/core/authentication/META.yaml +1 -5
- package/.agent/skills/core/authentication/SKILL.md +36 -43
- package/.agent/skills/core/authentication/data/anti-patterns.yaml +129 -129
- package/.agent/skills/core/authentication/data/core-patterns.yaml +250 -250
- package/.agent/skills/core/authentication/data/jwt-patterns.yaml +249 -249
- package/.agent/skills/core/authentication/data/language-csharp.yaml +209 -209
- package/.agent/skills/core/authentication/data/language-go.yaml +209 -209
- package/.agent/skills/core/authentication/data/language-java.yaml +209 -209
- package/.agent/skills/core/authentication/data/language-mobile.yaml +209 -209
- package/.agent/skills/core/authentication/data/language-python.yaml +209 -209
- package/.agent/skills/core/authentication/data/language-rust.yaml +209 -209
- package/.agent/skills/core/authentication/data/language-typescript.yaml +209 -209
- package/.agent/skills/core/authentication/data/mfa-patterns.yaml +169 -169
- package/.agent/skills/core/authentication/data/oauth-patterns.yaml +249 -249
- package/.agent/skills/core/authentication/data/oauth.yaml +243 -243
- package/.agent/skills/core/authentication/data/passkey-patterns.yaml +149 -0
- package/.agent/skills/core/authentication/data/passkeys-webauthn.yaml +209 -209
- package/.agent/skills/core/authentication/data/passkeys.yaml +203 -203
- package/.agent/skills/core/authentication/data/password-patterns.yaml +169 -169
- package/.agent/skills/core/authentication/data/password.yaml +163 -163
- package/.agent/skills/core/authentication/data/session-patterns.yaml +209 -209
- package/.agent/skills/core/error-handling/META.yaml +1 -5
- package/.agent/skills/core/error-handling/SKILL.md +21 -25
- package/.agent/skills/core/error-handling/data/anti-patterns.yaml +99 -99
- package/.agent/skills/core/error-handling/data/api-error-patterns.yaml +2 -2
- package/.agent/skills/core/error-handling/data/core-patterns.yaml +2 -2
- package/.agent/skills/core/error-handling/data/error-codes.yaml +159 -159
- package/.agent/skills/core/error-handling/data/error-messages.yaml +2 -2
- package/.agent/skills/core/error-handling/data/language-c-cpp.yaml +220 -220
- package/.agent/skills/core/error-handling/data/language-go-rust.yaml +2 -2
- package/.agent/skills/core/error-handling/data/language-python-java.yaml +220 -220
- package/.agent/skills/core/error-handling/data/language-swift-kotlin.yaml +220 -220
- package/.agent/skills/core/error-handling/data/language-typescript-php-ruby.yaml +220 -220
- package/.agent/skills/core/error-handling/data/resilience-patterns.yaml +2 -2
- package/.agent/skills/core/error-handling/data/ui-error-patterns.yaml +129 -129
- package/.agent/skills/core/logging/META.yaml +1 -5
- package/.agent/skills/core/logging/SKILL.md +28 -42
- package/.agent/skills/core/logging/data/aggregation-patterns.yaml +185 -185
- package/.agent/skills/core/logging/data/anti-patterns.yaml +115 -115
- package/.agent/skills/core/logging/data/core-patterns.yaml +220 -220
- package/.agent/skills/core/logging/data/language-csharp.yaml +185 -185
- package/.agent/skills/core/logging/data/language-go.yaml +185 -185
- package/.agent/skills/core/logging/data/language-java.yaml +185 -185
- package/.agent/skills/core/logging/data/language-kotlin.yaml +150 -150
- package/.agent/skills/core/logging/data/language-others.yaml +178 -178
- package/.agent/skills/core/logging/data/language-python.yaml +185 -185
- package/.agent/skills/core/logging/data/language-rust.yaml +185 -185
- package/.agent/skills/core/logging/data/language-swift.yaml +150 -150
- package/.agent/skills/core/logging/data/language-typescript.yaml +185 -185
- package/.agent/skills/core/logging/data/otel-logging.yaml +150 -150
- package/.agent/skills/core/observability/META.yaml +1 -5
- package/.agent/skills/core/observability/SKILL.md +29 -38
- package/.agent/skills/core/observability/data/alerting-patterns.yaml +159 -159
- package/.agent/skills/core/observability/data/anti-patterns.yaml +99 -99
- package/.agent/skills/core/observability/data/core-patterns.yaml +189 -189
- package/.agent/skills/core/observability/data/language-cpp.yaml +159 -159
- package/.agent/skills/core/observability/data/language-csharp.yaml +159 -159
- package/.agent/skills/core/observability/data/language-go.yaml +159 -159
- package/.agent/skills/core/observability/data/language-java.yaml +159 -159
- package/.agent/skills/core/observability/data/language-others.yaml +249 -249
- package/.agent/skills/core/observability/data/language-python.yaml +159 -159
- package/.agent/skills/core/observability/data/language-rust.yaml +159 -159
- package/.agent/skills/core/observability/data/language-typescript.yaml +159 -159
- package/.agent/skills/core/observability/data/metrics-patterns.yaml +129 -129
- package/.agent/skills/core/observability/data/metrics-prometheus.yaml +159 -159
- package/.agent/skills/core/observability/data/otel-core.yaml +189 -189
- package/.agent/skills/core/observability/data/profiling-patterns.yaml +129 -129
- package/.agent/skills/core/observability/data/tracing-patterns.yaml +159 -159
- package/.agent/skills/core/observability/data/tracing-tools.yaml +129 -129
- package/.agent/skills/core/security/META.yaml +1 -5
- package/.agent/skills/core/security/SKILL.md +25 -25
- package/.agent/skills/core/security/data/ai-ml-security.yaml +255 -255
- package/.agent/skills/core/security/data/api-security.yaml +224 -224
- package/.agent/skills/core/security/data/auth-patterns.yaml +189 -189
- package/.agent/skills/core/security/data/binary-exploitation.yaml +333 -333
- package/.agent/skills/core/security/data/cloud-security.yaml +263 -263
- package/.agent/skills/core/security/data/cwe-top25.yaml +409 -409
- package/.agent/skills/core/security/data/language-specific/c-security.yaml +289 -289
- package/.agent/skills/core/security/data/language-specific/cpp-security.yaml +289 -289
- package/.agent/skills/core/security/data/language-specific/csharp-security.yaml +213 -213
- package/.agent/skills/core/security/data/language-specific/go-security.yaml +213 -213
- package/.agent/skills/core/security/data/language-specific/java-security.yaml +289 -289
- package/.agent/skills/core/security/data/language-specific/kotlin-security.yaml +192 -192
- package/.agent/skills/core/security/data/language-specific/php-security.yaml +213 -213
- package/.agent/skills/core/security/data/language-specific/python-security.yaml +289 -289
- package/.agent/skills/core/security/data/language-specific/ruby-security.yaml +192 -192
- package/.agent/skills/core/security/data/language-specific/rust-security.yaml +234 -234
- package/.agent/skills/core/security/data/language-specific/solidity-security.yaml +363 -363
- package/.agent/skills/core/security/data/language-specific/swift-security.yaml +192 -192
- package/.agent/skills/core/security/data/language-specific/typescript-security.yaml +289 -289
- package/.agent/skills/core/security/data/mobile-security.yaml +363 -363
- package/.agent/skills/core/security/data/network-security.yaml +291 -291
- package/.agent/skills/core/security/data/owasp-llm-top10.yaml +122 -0
- package/.agent/skills/core/security/data/owasp-top10.yaml +165 -165
- package/.agent/skills/core/security/data/reverse-engineering.yaml +491 -491
- package/.agent/skills/core/security/data/supply-chain.yaml +213 -213
- package/.agent/skills/cross-cutting/_index.yaml +4 -2
- package/.agent/skills/cross-cutting/accessibility/META.yaml +45 -0
- package/.agent/skills/cross-cutting/accessibility/SKILL.md +121 -0
- package/.agent/skills/cross-cutting/accessibility/data/aria-patterns.yaml +88 -0
- package/.agent/skills/cross-cutting/accessibility/data/testing-tools.yaml +60 -0
- package/.agent/skills/cross-cutting/accessibility/data/wcag-guidelines.yaml +98 -0
- package/.agent/skills/cross-cutting/audit-pro/META.yaml +2 -6
- package/.agent/skills/cross-cutting/bun/META.yaml +2 -8
- package/.agent/skills/cross-cutting/bun/SKILL.md +8 -12
- package/.agent/skills/cross-cutting/coding-rules/META.yaml +4 -11
- package/.agent/skills/cross-cutting/coding-rules/SKILL.md +38 -46
- package/.agent/skills/cross-cutting/coding-rules/data/adr-patterns.yaml +102 -0
- package/.agent/skills/cross-cutting/coding-rules/data/architecture-patterns.yaml +289 -90
- package/.agent/skills/cross-cutting/coding-rules/data/build-systems.yaml +340 -340
- package/.agent/skills/cross-cutting/coding-rules/data/coding-rules.yaml +641 -641
- package/.agent/skills/cross-cutting/coding-rules/data/concurrency-patterns.yaml +102 -102
- package/.agent/skills/cross-cutting/coding-rules/data/design-patterns.yaml +254 -254
- package/.agent/skills/cross-cutting/coding-rules/data/framework-directories.yaml +446 -0
- package/.agent/skills/cross-cutting/coding-rules/data/framework-signatures.yaml +338 -338
- package/.agent/skills/cross-cutting/coding-rules/data/memory-management.yaml +102 -102
- package/.agent/skills/cross-cutting/coding-rules/data/naming-conventions.yaml +314 -314
- package/.agent/skills/cross-cutting/coding-rules/data/performance-benchmarks.yaml +158 -158
- package/.agent/skills/cross-cutting/coding-rules/data/solid-principles.yaml +74 -74
- package/.agent/skills/cross-cutting/coding-rules/data/test-frameworks.yaml +177 -177
- package/.agent/skills/cross-cutting/database/META.yaml +2 -2
- package/.agent/skills/cross-cutting/database/SKILL.md +10 -19
- package/.agent/skills/cross-cutting/deno/META.yaml +2 -8
- package/.agent/skills/cross-cutting/deno/SKILL.md +8 -12
- package/.agent/skills/cross-cutting/domyh-design/ADVANCED.md +247 -0
- package/.agent/skills/cross-cutting/{ui-ux-pro-max → domyh-design}/META.yaml +44 -13
- package/.agent/skills/cross-cutting/domyh-design/SKILL.md +171 -0
- package/.agent/skills/cross-cutting/domyh-design/data/animation-ui-kits.yaml +198 -0
- package/.agent/skills/cross-cutting/domyh-design/data/charts.yaml +331 -0
- package/.agent/skills/cross-cutting/domyh-design/data/colors.yaml +1226 -0
- package/.agent/skills/cross-cutting/domyh-design/data/component-decision.yaml +287 -0
- package/.agent/skills/cross-cutting/domyh-design/data/component-effects.yaml +673 -0
- package/.agent/skills/cross-cutting/domyh-design/data/component-mapping.yaml +318 -0
- package/.agent/skills/cross-cutting/domyh-design/data/design-system-prompts.yaml +174 -0
- package/.agent/skills/cross-cutting/domyh-design/data/design-tokens.yaml +525 -0
- package/.agent/skills/cross-cutting/domyh-design/data/desktop-animation.yaml +680 -0
- package/.agent/skills/cross-cutting/domyh-design/data/desktop-architecture.yaml +140 -0
- package/.agent/skills/cross-cutting/{ui-ux-pro-max → domyh-design}/data/desktop-colors.yaml +4 -4
- package/.agent/skills/cross-cutting/domyh-design/data/directory-structure.yaml +80 -0
- package/.agent/skills/cross-cutting/domyh-design/data/icons.yaml +918 -0
- package/.agent/skills/cross-cutting/domyh-design/data/image-gen-prompts.yaml +678 -0
- package/.agent/skills/cross-cutting/domyh-design/data/image-gen-workflows.yaml +202 -0
- package/.agent/skills/cross-cutting/domyh-design/data/implementation-strategy.yaml +107 -0
- package/.agent/skills/cross-cutting/domyh-design/data/landing.yaml +373 -0
- package/.agent/skills/cross-cutting/domyh-design/data/micro-interactions.yaml +528 -0
- package/.agent/skills/cross-cutting/domyh-design/data/platform-frameworks.yaml +195 -0
- package/.agent/skills/cross-cutting/domyh-design/data/platform-guidelines.yaml +177 -0
- package/.agent/skills/cross-cutting/domyh-design/data/products.yaml +1339 -0
- package/.agent/skills/cross-cutting/domyh-design/data/prompts.yaml +207 -0
- package/.agent/skills/cross-cutting/domyh-design/data/react-performance.yaml +504 -0
- package/.agent/skills/cross-cutting/domyh-design/data/scroll-animation-patterns.yaml +398 -0
- package/.agent/skills/cross-cutting/domyh-design/data/stacks/desktop.yaml +228 -0
- package/.agent/skills/cross-cutting/domyh-design/data/stacks/flutter.yaml +508 -0
- package/.agent/skills/cross-cutting/domyh-design/data/stacks/html-tailwind.yaml +543 -0
- package/.agent/skills/cross-cutting/domyh-design/data/stacks/nextjs.yaml +515 -0
- package/.agent/skills/cross-cutting/domyh-design/data/stacks/nuxt-ui.yaml +519 -0
- package/.agent/skills/cross-cutting/domyh-design/data/stacks/nuxtjs.yaml +599 -0
- package/.agent/skills/cross-cutting/domyh-design/data/stacks/react-native.yaml +496 -0
- package/.agent/skills/cross-cutting/domyh-design/data/stacks/react.yaml +526 -0
- package/.agent/skills/cross-cutting/domyh-design/data/stacks/shadcn.yaml +616 -0
- package/.agent/skills/cross-cutting/domyh-design/data/stacks/svelte.yaml +520 -0
- package/.agent/skills/cross-cutting/domyh-design/data/stacks/swiftui.yaml +486 -0
- package/.agent/skills/cross-cutting/domyh-design/data/stacks/vue.yaml +485 -0
- package/.agent/skills/cross-cutting/domyh-design/data/styles.yaml +1473 -0
- package/.agent/skills/cross-cutting/domyh-design/data/tailwind-animation-plugins.yaml +462 -0
- package/.agent/skills/cross-cutting/domyh-design/data/typography.yaml +647 -0
- package/.agent/skills/cross-cutting/domyh-design/data/ui-reasoning.yaml +1019 -0
- package/.agent/skills/cross-cutting/domyh-design/data/ux-guidelines.yaml +1009 -0
- package/.agent/skills/cross-cutting/domyh-design/data/web-animation-libraries.yaml +541 -0
- package/.agent/skills/cross-cutting/domyh-design/data/web-interface.yaml +347 -0
- package/.agent/skills/cross-cutting/domyh-design/data/webview-animation-optimization.yaml +685 -0
- package/.agent/skills/cross-cutting/electron/SKILL.md +10 -14
- package/.agent/skills/cross-cutting/event-driven/META.yaml +108 -0
- package/.agent/skills/cross-cutting/event-driven/SKILL.md +123 -0
- package/.agent/skills/cross-cutting/event-driven/data/broker-comparison.yaml +123 -0
- package/.agent/skills/cross-cutting/event-driven/data/eda-patterns.yaml +120 -0
- package/.agent/skills/cross-cutting/event-driven/data/production-patterns.yaml +120 -0
- package/.agent/skills/cross-cutting/microservices/META.yaml +90 -0
- package/.agent/skills/cross-cutting/microservices/SKILL.md +120 -0
- package/.agent/skills/cross-cutting/microservices/data/communication.yaml +163 -0
- package/.agent/skills/cross-cutting/microservices/data/cqrs-patterns.yaml +199 -0
- package/.agent/skills/cross-cutting/microservices/data/deployment.yaml +153 -0
- package/.agent/skills/cross-cutting/microservices/data/event-sourcing.yaml +231 -0
- package/.agent/skills/cross-cutting/microservices/data/observability.yaml +152 -0
- package/.agent/skills/cross-cutting/microservices/data/resilience.yaml +189 -0
- package/.agent/skills/cross-cutting/microservices/data/saga-patterns.yaml +161 -0
- package/.agent/skills/cross-cutting/microservices/data/service-mesh.yaml +179 -0
- package/.agent/skills/cross-cutting/monorepo/META.yaml +54 -0
- package/.agent/skills/cross-cutting/monorepo/SKILL.md +108 -0
- package/.agent/skills/cross-cutting/monorepo/data/ci-cd-strategies.yaml +74 -0
- package/.agent/skills/cross-cutting/monorepo/data/nx-patterns.yaml +74 -0
- package/.agent/skills/cross-cutting/monorepo/data/turborepo-patterns.yaml +84 -0
- package/.agent/skills/cross-cutting/monorepo/data/versioning.yaml +83 -0
- package/.agent/skills/cross-cutting/monorepo/data/workspace-patterns.yaml +85 -0
- package/.agent/skills/cross-cutting/playwright/ADVANCED.md +289 -0
- package/.agent/skills/cross-cutting/playwright/META.yaml +90 -0
- package/.agent/skills/cross-cutting/playwright/SKILL.md +210 -0
- package/.agent/skills/cross-cutting/playwright/data/ai-agents.yaml +137 -0
- package/.agent/skills/cross-cutting/playwright/data/config-templates.yaml +141 -0
- package/.agent/skills/cross-cutting/playwright/data/interaction-checklist.yaml +398 -0
- package/.agent/skills/cross-cutting/playwright/data/locator-patterns.yaml +96 -0
- package/.agent/skills/cross-cutting/playwright/data/mcp-tools.yaml +153 -0
- package/.agent/skills/cross-cutting/playwright/data/open-source-tools.yaml +95 -0
- package/.agent/skills/cross-cutting/real-time/META.yaml +72 -0
- package/.agent/skills/cross-cutting/real-time/SKILL.md +128 -0
- package/.agent/skills/cross-cutting/real-time/data/socketio-patterns.yaml +165 -0
- package/.agent/skills/cross-cutting/real-time/data/sse-patterns.yaml +181 -0
- package/.agent/skills/cross-cutting/real-time/data/websocket-patterns.yaml +176 -0
- package/.agent/skills/cross-cutting/seo/META.yaml +47 -0
- package/.agent/skills/cross-cutting/seo/SKILL.md +114 -0
- package/.agent/skills/cross-cutting/seo/data/core-web-vitals.yaml +93 -0
- package/.agent/skills/cross-cutting/seo/data/structured-data.yaml +82 -0
- package/.agent/skills/cross-cutting/seo/data/technical-seo.yaml +75 -0
- package/.agent/skills/cross-cutting/sql/META.yaml +2 -8
- package/.agent/skills/cross-cutting/sql/SKILL.md +8 -12
- package/.agent/skills/cross-cutting/tailwind/META.yaml +3 -20
- package/.agent/skills/cross-cutting/tailwind/SKILL.md +13 -11
- package/.agent/skills/cross-cutting/tauri/META.yaml +75 -0
- package/.agent/skills/cross-cutting/tauri/SKILL.md +127 -0
- package/.agent/skills/cross-cutting/tauri/data/build.yaml +141 -0
- package/.agent/skills/cross-cutting/tauri/data/plugins.yaml +157 -0
- package/.agent/skills/cross-cutting/tauri/data/security.yaml +134 -0
- package/.agent/skills/cross-cutting/tdd-workflow/META.yaml +58 -0
- package/.agent/skills/cross-cutting/tdd-workflow/SKILL.md +128 -0
- package/.agent/skills/cross-cutting/tdd-workflow/data/anti-patterns.yaml +70 -0
- package/.agent/skills/cross-cutting/tdd-workflow/data/bdd-atdd-patterns.yaml +77 -0
- package/.agent/skills/cross-cutting/tdd-workflow/data/core-tdd-cycle.yaml +104 -0
- package/.agent/skills/cross-cutting/tdd-workflow/data/coverage-strategies.yaml +105 -0
- package/.agent/skills/cross-cutting/tdd-workflow/data/language-patterns.yaml +115 -0
- package/.agent/skills/cross-cutting/tdd-workflow/data/test-doubles.yaml +93 -0
- package/.agent/skills/cross-cutting/testing/META.yaml +1 -5
- package/.agent/skills/cross-cutting/testing/SKILL.md +13 -26
- package/.agent/skills/cross-cutting/testing/data/e2e-patterns.yaml +136 -0
- package/.agent/skills/cross-cutting/testing/data/frameworks.yaml +3 -3
- package/.agent/skills/cross-cutting/testing/data/patterns.yaml +149 -147
- package/.agent/skills/cross-cutting/wasm/META.yaml +47 -0
- package/.agent/skills/cross-cutting/wasm/SKILL.md +88 -0
- package/.agent/skills/cross-cutting/wasm/data/browser-patterns.yaml +106 -0
- package/.agent/skills/cross-cutting/wasm/data/component-model.yaml +85 -0
- package/.agent/skills/cross-cutting/wasm/data/server-patterns.yaml +89 -0
- package/.agent/skills/cross-cutting/web-perf/META.yaml +3 -9
- package/.agent/skills/cross-cutting/web-perf/SKILL.md +9 -18
- package/.agent/skills/devops/aws/META.yaml +48 -63
- package/.agent/skills/devops/azure/META.yaml +44 -0
- package/.agent/skills/devops/azure/SKILL.md +43 -0
- package/.agent/skills/devops/azure/data/cli.yaml +69 -0
- package/.agent/skills/devops/azure/data/compute.yaml +83 -0
- package/.agent/skills/devops/azure/data/data-services.yaml +126 -0
- package/.agent/skills/devops/ci-cd/META.yaml +47 -14
- package/.agent/skills/devops/docker/META.yaml +53 -14
- package/.agent/skills/devops/gcp/META.yaml +43 -0
- package/.agent/skills/devops/gcp/SKILL.md +43 -0
- package/.agent/skills/devops/gcp/data/cli.yaml +39 -0
- package/.agent/skills/devops/gcp/data/compute.yaml +92 -0
- package/.agent/skills/devops/gcp/data/data-services.yaml +97 -0
- package/.agent/skills/devops/kubernetes/META.yaml +56 -7
- package/.agent/skills/devops/terraform/META.yaml +47 -0
- package/.agent/skills/devops/terraform/SKILL.md +73 -0
- package/.agent/skills/devops/terraform/data/ci-cd.yaml +89 -0
- package/.agent/skills/devops/terraform/data/hcl-patterns.yaml +131 -0
- package/.agent/skills/devops/terraform/data/providers.yaml +96 -0
- package/.agent/skills/frameworks/angular/META.yaml +20 -6
- package/.agent/skills/frameworks/angular/SKILL.md +1 -1
- package/.agent/skills/frameworks/flutter/META.yaml +20 -6
- package/.agent/skills/frameworks/flutter/SKILL.md +1 -1
- package/.agent/skills/frameworks/nextjs/ADVANCED.md +2 -2
- package/.agent/skills/frameworks/nextjs/META.yaml +22 -8
- package/.agent/skills/frameworks/nextjs/SKILL.md +4 -4
- package/.agent/skills/frameworks/nextjs/data/server.yaml +4 -4
- package/.agent/skills/frameworks/nuxt/META.yaml +21 -7
- package/.agent/skills/frameworks/nuxt/SKILL.md +2 -2
- package/.agent/skills/frameworks/nuxt/data/core.yaml +14 -2
- package/.agent/skills/frameworks/nuxt/data/server.yaml +14 -2
- package/.agent/skills/frameworks/react/META.yaml +20 -7
- package/.agent/skills/frameworks/react/SKILL.md +7 -11
- package/.agent/skills/frameworks/react/data/core.yaml +14 -2
- package/.agent/skills/frameworks/react/data/server.yaml +16 -4
- package/.agent/skills/frameworks/react-native/META.yaml +19 -6
- package/.agent/skills/frameworks/react-native/SKILL.md +1 -1
- package/.agent/skills/frameworks/svelte/META.yaml +19 -6
- package/.agent/skills/frameworks/svelte/SKILL.md +1 -1
- package/.agent/skills/frameworks/vue/META.yaml +20 -8
- package/.agent/skills/frameworks/vue/SKILL.md +7 -7
- package/.agent/skills/frameworks/vue/data/advanced.yaml +19 -7
- package/.agent/skills/frameworks/vue/data/core.yaml +13 -1
- package/.agent/skills/index.json +67 -14
- package/.agent/skills/languages/asm/META.yaml +2 -8
- package/.agent/skills/languages/asm/SKILL.md +1 -1
- package/.agent/skills/languages/c/META.yaml +2 -8
- package/.agent/skills/languages/c/SKILL.md +1 -1
- package/.agent/skills/languages/clojure/META.yaml +2 -2
- package/.agent/skills/languages/clojure/SKILL.md +1 -1
- package/.agent/skills/languages/cpp/META.yaml +2 -8
- package/.agent/skills/languages/cpp/SKILL.md +1 -1
- package/.agent/skills/languages/crystal/META.yaml +2 -8
- package/.agent/skills/languages/crystal/SKILL.md +1 -1
- package/.agent/skills/languages/csharp/META.yaml +2 -2
- package/.agent/skills/languages/csharp/SKILL.md +1 -1
- package/.agent/skills/languages/elixir/META.yaml +2 -2
- package/.agent/skills/languages/elixir/SKILL.md +1 -1
- package/.agent/skills/languages/fsharp/META.yaml +2 -2
- package/.agent/skills/languages/fsharp/SKILL.md +1 -1
- package/.agent/skills/languages/go/META.yaml +2 -8
- package/.agent/skills/languages/go/SKILL.md +1 -1
- package/.agent/skills/languages/haskell/META.yaml +2 -2
- package/.agent/skills/languages/haskell/SKILL.md +1 -1
- package/.agent/skills/languages/java/META.yaml +2 -8
- package/.agent/skills/languages/java/SKILL.md +1 -1
- package/.agent/skills/languages/javascript/META.yaml +2 -8
- package/.agent/skills/languages/javascript/SKILL.md +1 -1
- package/.agent/skills/languages/julia/META.yaml +2 -2
- package/.agent/skills/languages/julia/SKILL.md +1 -1
- package/.agent/skills/languages/kotlin/META.yaml +2 -2
- package/.agent/skills/languages/kotlin/SKILL.md +1 -1
- package/.agent/skills/languages/lua/META.yaml +2 -8
- package/.agent/skills/languages/lua/SKILL.md +3 -3
- package/.agent/skills/languages/nim/META.yaml +2 -8
- package/.agent/skills/languages/nim/SKILL.md +1 -1
- package/.agent/skills/languages/ocaml/META.yaml +2 -2
- package/.agent/skills/languages/ocaml/SKILL.md +1 -1
- package/.agent/skills/languages/perl/META.yaml +2 -2
- package/.agent/skills/languages/perl/SKILL.md +1 -1
- package/.agent/skills/languages/php/META.yaml +2 -2
- package/.agent/skills/languages/php/SKILL.md +1 -1
- package/.agent/skills/languages/python/META.yaml +2 -8
- package/.agent/skills/languages/python/SKILL.md +1 -1
- package/.agent/skills/languages/r/META.yaml +2 -2
- package/.agent/skills/languages/r/SKILL.md +1 -1
- package/.agent/skills/languages/ruby/META.yaml +2 -2
- package/.agent/skills/languages/ruby/SKILL.md +1 -1
- package/.agent/skills/languages/rust/META.yaml +2 -8
- package/.agent/skills/languages/rust/SKILL.md +1 -1
- package/.agent/skills/languages/scala/META.yaml +2 -2
- package/.agent/skills/languages/scala/SKILL.md +1 -1
- package/.agent/skills/languages/solidity/META.yaml +2 -2
- package/.agent/skills/languages/solidity/SKILL.md +1 -1
- package/.agent/skills/languages/swift/META.yaml +2 -2
- package/.agent/skills/languages/swift/SKILL.md +1 -1
- package/.agent/skills/languages/typescript/META.yaml +2 -8
- package/.agent/skills/languages/typescript/SKILL.md +1 -1
- package/.agent/skills/languages/zig/META.yaml +5 -7
- package/.agent/skills/languages/zig/SKILL.md +1 -1
- package/.agent/skills/tooling/api-protocols/META.yaml +102 -0
- package/.agent/skills/tooling/api-protocols/SKILL.md +145 -0
- package/.agent/skills/tooling/api-protocols/data/graphql-patterns.yaml +115 -0
- package/.agent/skills/tooling/api-protocols/data/grpc-patterns.yaml +101 -0
- package/.agent/skills/tooling/api-protocols/data/trpc-patterns.yaml +97 -0
- package/.agent/skills/tooling/browser-agent/ADVANCED.md +242 -0
- package/.agent/skills/tooling/browser-agent/META.yaml +78 -0
- package/.agent/skills/tooling/browser-agent/SKILL.md +164 -0
- package/.agent/skills/tooling/browser-agent/data/element-discovery.yaml +208 -0
- package/.agent/skills/tooling/browser-agent/data/recording-patterns.yaml +74 -0
- package/.agent/skills/tooling/browser-agent/data/reporting-patterns.yaml +97 -0
- package/.agent/skills/tooling/browser-agent/data/subagent-patterns.yaml +158 -0
- package/.agent/skills/tooling/browser-agent/data/verification-flow.yaml +209 -0
- package/.agent/skills/tooling/cli-dev/META.yaml +55 -0
- package/.agent/skills/tooling/cli-dev/SKILL.md +83 -0
- package/.agent/skills/tooling/cli-dev/data/frameworks.yaml +128 -0
- package/.agent/skills/tooling/cli-dev/data/output-formats.yaml +58 -0
- package/.agent/skills/tooling/cli-dev/data/ux-patterns.yaml +97 -0
- package/.agent/skills/tooling/ide-extension/META.yaml +72 -0
- package/.agent/skills/tooling/ide-extension/SKILL.md +108 -0
- package/.agent/skills/tooling/ide-extension/data/jetbrains-patterns.yaml +118 -0
- package/.agent/skills/tooling/ide-extension/data/lsp-patterns.yaml +126 -0
- package/.agent/skills/tooling/ide-extension/data/vscode-patterns.yaml +172 -0
- package/.agent/skills/tooling/mcp/META.yaml +80 -0
- package/.agent/skills/tooling/mcp/SKILL.md +114 -0
- package/.agent/skills/tooling/mcp/data/security.yaml +116 -0
- package/.agent/skills/tooling/mcp/data/tool-design.yaml +124 -0
- package/.agent/skills/tooling/mcp/data/transport-patterns.yaml +95 -0
- package/.agent/templates/README.md +2 -2
- package/.agent/templates/debug-report.md +1 -1
- package/.agent/templates/deploy-plan.md +1 -1
- package/.agent/templates/doc-template.md +1 -1
- package/.agent/templates/index.yaml +2 -2
- package/.agent/templates/migrate-plan.md +1 -1
- package/.agent/templates/phase-template.md +1 -1
- package/.agent/templates/tasks/audit.yaml +1 -1
- package/.agent/templates/tasks/bug_fix.yaml +1 -1
- package/.agent/templates/tasks/code_implementation.yaml +1 -1
- package/.agent/templates/tasks/refactor.yaml +1 -1
- package/.agent/templates/test-report.md +1 -1
- package/.agent/workflows/code.md +22 -1
- package/.agent/workflows/deploy.md +5 -1
- package/.agent/workflows/e2e.md +112 -0
- package/.agent/workflows/fix.md +1 -1
- package/.agent/workflows/prompt.md +325 -0
- package/.agent/workflows/scaffold.md +1 -1
- package/.agent/workflows/tdd.md +108 -0
- package/.agent/workflows/verify.md +116 -0
- package/.agent/workflows/visualize.md +50 -18
- package/dist/commands/add.d.ts.map +1 -1
- package/dist/commands/add.js +9 -1
- package/dist/commands/add.js.map +1 -1
- package/dist/commands/config.d.ts.map +1 -1
- package/dist/commands/config.js +24 -8
- package/dist/commands/config.js.map +1 -1
- package/dist/commands/hsa.d.ts.map +1 -1
- package/dist/commands/hsa.js +106 -20
- package/dist/commands/hsa.js.map +1 -1
- package/dist/commands/init.d.ts.map +1 -1
- package/dist/commands/init.js +65 -61
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/install-core.d.ts +2 -1
- package/dist/commands/install-core.d.ts.map +1 -1
- package/dist/commands/install-core.js +43 -16
- package/dist/commands/install-core.js.map +1 -1
- package/dist/commands/install-helpers.d.ts.map +1 -1
- package/dist/commands/install-helpers.js +23 -2
- package/dist/commands/install-helpers.js.map +1 -1
- package/dist/commands/install-hsa.d.ts +2 -5
- package/dist/commands/install-hsa.d.ts.map +1 -1
- package/dist/commands/install-hsa.js +2 -5
- package/dist/commands/install-hsa.js.map +1 -1
- package/dist/commands/install.d.ts +27 -0
- package/dist/commands/install.d.ts.map +1 -1
- package/dist/commands/install.js +68 -20
- package/dist/commands/install.js.map +1 -1
- package/dist/commands/list.d.ts.map +1 -1
- package/dist/commands/list.js +2 -1
- package/dist/commands/list.js.map +1 -1
- package/dist/commands/mcp-registry.d.ts +24 -9
- package/dist/commands/mcp-registry.d.ts.map +1 -1
- package/dist/commands/mcp-registry.js +39 -57
- package/dist/commands/mcp-registry.js.map +1 -1
- package/dist/commands/mcp-writers.d.ts.map +1 -1
- package/dist/commands/mcp-writers.js +6 -5
- package/dist/commands/mcp-writers.js.map +1 -1
- package/dist/commands/mcp.d.ts +1 -1
- package/dist/commands/mcp.d.ts.map +1 -1
- package/dist/commands/mcp.js +37 -9
- package/dist/commands/mcp.js.map +1 -1
- package/dist/commands/update.d.ts.map +1 -1
- package/dist/commands/update.js +16 -6
- package/dist/commands/update.js.map +1 -1
- package/dist/constants/cursor-globs.d.ts.map +1 -1
- package/dist/constants/cursor-globs.js +0 -6
- package/dist/constants/cursor-globs.js.map +1 -1
- package/dist/constants/ide-install-specs.js +2 -2
- package/dist/constants.d.ts +3 -3
- package/dist/constants.d.ts.map +1 -1
- package/dist/constants.js +3 -3
- package/dist/constants.js.map +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -9
- package/dist/index.js.map +1 -1
- package/dist/types/ide-install.js +1 -1
- package/dist/utils/copy-helpers.d.ts +7 -2
- package/dist/utils/copy-helpers.d.ts.map +1 -1
- package/dist/utils/copy-helpers.js +56 -42
- package/dist/utils/copy-helpers.js.map +1 -1
- package/dist/utils/install-manifest.d.ts +12 -0
- package/dist/utils/install-manifest.d.ts.map +1 -0
- package/dist/utils/install-manifest.js +26 -0
- package/dist/utils/install-manifest.js.map +1 -0
- package/dist/utils/validation.d.ts.map +1 -1
- package/dist/utils/validation.js +31 -1
- package/dist/utils/validation.js.map +1 -1
- package/package.json +1 -1
- package/.agent/core/embeddings.json +0 -2004
- package/.agent/core/session_cache.json +0 -50
- package/.agent/skills/cross-cutting/aws/META.yaml +0 -75
- package/.agent/skills/cross-cutting/ci-cd/META.yaml +0 -60
- package/.agent/skills/cross-cutting/docker/META.yaml +0 -65
- package/.agent/skills/cross-cutting/kubernetes/META.yaml +0 -70
- package/.agent/skills/cross-cutting/ui-ux-pro-max/SKILL.md +0 -565
- package/.agent/skills/cross-cutting/ui-ux-pro-max/data/charts.yaml +0 -331
- package/.agent/skills/cross-cutting/ui-ux-pro-max/data/colors.yaml +0 -1226
- package/.agent/skills/cross-cutting/ui-ux-pro-max/data/component-decision.yaml +0 -287
- package/.agent/skills/cross-cutting/ui-ux-pro-max/data/component-mapping.yaml +0 -318
- package/.agent/skills/cross-cutting/ui-ux-pro-max/data/design-tokens.yaml +0 -525
- package/.agent/skills/cross-cutting/ui-ux-pro-max/data/desktop-animation.yaml +0 -232
- package/.agent/skills/cross-cutting/ui-ux-pro-max/data/desktop-architecture.yaml +0 -140
- package/.agent/skills/cross-cutting/ui-ux-pro-max/data/directory-structure.yaml +0 -75
- package/.agent/skills/cross-cutting/ui-ux-pro-max/data/icons.yaml +0 -918
- package/.agent/skills/cross-cutting/ui-ux-pro-max/data/implementation-strategy.yaml +0 -107
- package/.agent/skills/cross-cutting/ui-ux-pro-max/data/landing.yaml +0 -372
- package/.agent/skills/cross-cutting/ui-ux-pro-max/data/platform-frameworks.yaml +0 -195
- package/.agent/skills/cross-cutting/ui-ux-pro-max/data/platform-guidelines.yaml +0 -177
- package/.agent/skills/cross-cutting/ui-ux-pro-max/data/products.yaml +0 -1339
- package/.agent/skills/cross-cutting/ui-ux-pro-max/data/prompts.yaml +0 -180
- package/.agent/skills/cross-cutting/ui-ux-pro-max/data/react-performance.yaml +0 -504
- package/.agent/skills/cross-cutting/ui-ux-pro-max/data/stacks/desktop.yaml +0 -228
- package/.agent/skills/cross-cutting/ui-ux-pro-max/data/stacks/flutter.yaml +0 -508
- package/.agent/skills/cross-cutting/ui-ux-pro-max/data/stacks/html-tailwind.yaml +0 -543
- package/.agent/skills/cross-cutting/ui-ux-pro-max/data/stacks/nextjs.yaml +0 -515
- package/.agent/skills/cross-cutting/ui-ux-pro-max/data/stacks/nuxt-ui.yaml +0 -519
- package/.agent/skills/cross-cutting/ui-ux-pro-max/data/stacks/nuxtjs.yaml +0 -599
- package/.agent/skills/cross-cutting/ui-ux-pro-max/data/stacks/react-native.yaml +0 -496
- package/.agent/skills/cross-cutting/ui-ux-pro-max/data/stacks/react.yaml +0 -526
- package/.agent/skills/cross-cutting/ui-ux-pro-max/data/stacks/shadcn.yaml +0 -616
- package/.agent/skills/cross-cutting/ui-ux-pro-max/data/stacks/svelte.yaml +0 -520
- package/.agent/skills/cross-cutting/ui-ux-pro-max/data/stacks/swiftui.yaml +0 -486
- package/.agent/skills/cross-cutting/ui-ux-pro-max/data/stacks/vue.yaml +0 -485
- package/.agent/skills/cross-cutting/ui-ux-pro-max/data/styles.yaml +0 -1473
- package/.agent/skills/cross-cutting/ui-ux-pro-max/data/typography.yaml +0 -647
- package/.agent/skills/cross-cutting/ui-ux-pro-max/data/ui-reasoning.yaml +0 -1019
- package/.agent/skills/cross-cutting/ui-ux-pro-max/data/ux-guidelines.yaml +0 -1009
- package/.agent/skills/cross-cutting/ui-ux-pro-max/data/web-interface.yaml +0 -347
- package/.agent/skills/cross-cutting/ui-ux-pro-max/scripts/__pycache__/core.cpython-310.pyc +0 -0
- package/.agent/skills/cross-cutting/ui-ux-pro-max/scripts/__pycache__/core.cpython-314.pyc +0 -0
- package/.agent/skills/cross-cutting/ui-ux-pro-max/scripts/__pycache__/design_system.cpython-314.pyc +0 -0
- package/.agent/skills/cross-cutting/ui-ux-pro-max/scripts/core.py +0 -393
- package/.agent/skills/cross-cutting/ui-ux-pro-max/scripts/core_legacy.py +0 -303
- package/.agent/skills/cross-cutting/ui-ux-pro-max/scripts/design_system.py +0 -496
- package/.agent/skills/cross-cutting/ui-ux-pro-max/scripts/search.py +0 -76
- package/.agent/skills/devops/aws/ADVANCED.md +0 -547
- package/.agent/skills/devops/aws/SKILL.md +0 -711
- package/.agent/skills/devops/ci-cd/ADVANCED.md +0 -529
- package/.agent/skills/devops/ci-cd/SKILL.md +0 -821
- package/.agent/skills/devops/docker/ADVANCED.md +0 -495
- package/.agent/skills/devops/docker/SKILL.md +0 -653
- package/.agent/skills/devops/kubernetes/ADVANCED.md +0 -252
- package/.agent/skills/devops/kubernetes/SKILL.md +0 -621
- /package/.agent/core/{ARCH_REGISTRY.yaml → reference/ARCH_REGISTRY.yaml} +0 -0
- /package/.agent/core/{BRANDING.yaml → reference/BRANDING.yaml} +0 -0
- /package/.agent/core/{HSA.yaml → reference/HSA.yaml} +0 -0
- /package/.agent/core/{TEMPLATES.yaml → reference/TEMPLATES.yaml} +0 -0
- /package/.agent/rules/{incremental-changes.md → archive/incremental-changes.md} +0 -0
- /package/.agent/rules/{shell-commands.md → archive/shell-commands.md} +0 -0
- /package/.agent/skills/{cross-cutting → devops}/aws/data/ai_ml.yaml +0 -0
- /package/.agent/skills/{cross-cutting → devops}/aws/data/compute.yaml +0 -0
- /package/.agent/skills/{cross-cutting → devops}/aws/data/kubernetes.yaml +0 -0
- /package/.agent/skills/{cross-cutting → devops}/aws/data/storage.yaml +0 -0
- /package/.agent/skills/{cross-cutting → devops}/ci-cd/data/github_actions.yaml +0 -0
- /package/.agent/skills/{cross-cutting → devops}/ci-cd/data/security.yaml +0 -0
- /package/.agent/skills/{cross-cutting → devops}/docker/data/build.yaml +0 -0
- /package/.agent/skills/{cross-cutting → devops}/docker/data/compose.yaml +0 -0
- /package/.agent/skills/{cross-cutting → devops}/docker/data/security.yaml +0 -0
- /package/.agent/skills/{cross-cutting → devops}/kubernetes/data/networking.yaml +0 -0
- /package/.agent/skills/{cross-cutting → devops}/kubernetes/data/scheduling.yaml +0 -0
- /package/.agent/skills/{cross-cutting → devops}/kubernetes/data/security.yaml +0 -0
- /package/.agent/skills/{cross-cutting → devops}/kubernetes/data/workloads.yaml +0 -0
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
name: playwright
|
|
2
|
+
version: "1.0.0"
|
|
3
|
+
display: Playwright
|
|
4
|
+
category: cross-cutting
|
|
5
|
+
tier: 1
|
|
6
|
+
priority: 2
|
|
7
|
+
|
|
8
|
+
desc: "Playwright browser automation: MCP tools (19), E2E testing, AI agents (Planner/Generator/Healer), comprehensive UI interaction checklist (58 checkpoints), accessibility snapshots, Page Object Model."
|
|
9
|
+
|
|
10
|
+
### Data Files (6 domains, ~80 patterns)
|
|
11
|
+
- mcp-tools.yaml: 19 MCP tool definitions — navigation, interaction, observation (19)
|
|
12
|
+
- interaction-checklist.yaml: 58 mandatory checkpoints — dropdown, modal, button, hover (58)
|
|
13
|
+
- locator-patterns.yaml: Priority-ordered locator strategies (5)
|
|
14
|
+
- config-templates.yaml: CI/local/mobile/visual regression configs (4)
|
|
15
|
+
- ai-agents.yaml: Planner/Generator/Healer workflow patterns (3)
|
|
16
|
+
- open-source-tools.yaml: Browser automation ecosystem reference (8)
|
|
17
|
+
|
|
18
|
+
triggers:
|
|
19
|
+
file_patterns:
|
|
20
|
+
- "playwright.config.*"
|
|
21
|
+
- "tests/e2e/**"
|
|
22
|
+
- "*.e2e.*"
|
|
23
|
+
- "*.pw.*"
|
|
24
|
+
- "**/__e2e__/**"
|
|
25
|
+
keywords:
|
|
26
|
+
# Core
|
|
27
|
+
- playwright
|
|
28
|
+
- browser testing
|
|
29
|
+
- e2e testing
|
|
30
|
+
- end to end
|
|
31
|
+
- browser automation
|
|
32
|
+
# MCP
|
|
33
|
+
- playwright mcp
|
|
34
|
+
- browser_snapshot
|
|
35
|
+
- browser_click
|
|
36
|
+
- accessibility snapshot
|
|
37
|
+
# Patterns
|
|
38
|
+
- cross-browser
|
|
39
|
+
- visual regression
|
|
40
|
+
- page object model
|
|
41
|
+
# Interactive elements
|
|
42
|
+
- test dropdown
|
|
43
|
+
- test modal
|
|
44
|
+
- verify button
|
|
45
|
+
- check hover
|
|
46
|
+
intents:
|
|
47
|
+
- test frontend
|
|
48
|
+
- verify UI
|
|
49
|
+
- browser test
|
|
50
|
+
- check dropdown
|
|
51
|
+
- test modal
|
|
52
|
+
- verify button action
|
|
53
|
+
- comprehensive UI test
|
|
54
|
+
|
|
55
|
+
caps:
|
|
56
|
+
- Playwright MCP 19 tools reference (navigate, click, type, snapshot, etc.)
|
|
57
|
+
- 58-checkpoint comprehensive interaction testing checklist
|
|
58
|
+
- Dropdown testing (18 checkpoints: open/close/select/keyboard/validation)
|
|
59
|
+
- Modal testing (16 checkpoints: trigger/close/focus trap/Escape/form)
|
|
60
|
+
- Button testing (14 checkpoints: click action/disabled/loading/rage-click)
|
|
61
|
+
- Hover testing (10 checkpoints: tooltip/menu/keyboard equivalent)
|
|
62
|
+
- AI Test Agents — Planner/Generator/Healer patterns
|
|
63
|
+
- Accessibility snapshot vs screenshot strategy
|
|
64
|
+
- Page Object Model templates
|
|
65
|
+
- Locator priority: getByRole > getByLabel > getByTestId > locator
|
|
66
|
+
- Visual regression with toHaveScreenshot()
|
|
67
|
+
- Cross-browser & mobile device testing
|
|
68
|
+
- CI/CD pipeline integration configs
|
|
69
|
+
- Open-source tools ecosystem (Stagehand, Browser-Use, Midscene.js)
|
|
70
|
+
|
|
71
|
+
data_files:
|
|
72
|
+
- data/mcp-tools.yaml
|
|
73
|
+
- data/interaction-checklist.yaml
|
|
74
|
+
- data/locator-patterns.yaml
|
|
75
|
+
- data/config-templates.yaml
|
|
76
|
+
- data/ai-agents.yaml
|
|
77
|
+
- data/open-source-tools.yaml
|
|
78
|
+
|
|
79
|
+
related_skills:
|
|
80
|
+
- testing
|
|
81
|
+
- accessibility
|
|
82
|
+
- browser-agent
|
|
83
|
+
- mcp
|
|
84
|
+
|
|
85
|
+
hsa_adapter:
|
|
86
|
+
enabled: true
|
|
87
|
+
data_dir: "skills/cross-cutting/playwright/data"
|
|
88
|
+
preload_data: true
|
|
89
|
+
|
|
90
|
+
# _DOMYH Awesome Code • Playwright Skill META v1.0.0_
|
|
@@ -0,0 +1,210 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: playwright
|
|
3
|
+
detect: ["playwright.config.*", "*.e2e.*", "tests/e2e/**"]
|
|
4
|
+
version: "1.0.0"
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Playwright Browser Automation (2026)
|
|
8
|
+
|
|
9
|
+
> Comprehensive browser testing skill with 58-checkpoint interaction checklist. Check `data/` for lookup tables.
|
|
10
|
+
|
|
11
|
+
## 📦 Data Files
|
|
12
|
+
|
|
13
|
+
| File | Content | Records |
|
|
14
|
+
| ---------------------------- | --------------------------------------- | ------- |
|
|
15
|
+
| `mcp-tools.yaml` | 19 Playwright MCP tool definitions | 19 |
|
|
16
|
+
| `interaction-checklist.yaml` | 58 mandatory UI interaction checkpoints | 58 |
|
|
17
|
+
| `locator-patterns.yaml` | Priority-ordered locator strategies | 5 |
|
|
18
|
+
| `config-templates.yaml` | CI/local/mobile/visual configs | 4 |
|
|
19
|
+
| `ai-agents.yaml` | Planner/Generator/Healer patterns | 3 |
|
|
20
|
+
| `open-source-tools.yaml` | Browser automation ecosystem | 8 |
|
|
21
|
+
|
|
22
|
+
## 🎯 Core Problem & Solution
|
|
23
|
+
|
|
24
|
+
```
|
|
25
|
+
❌ Agent chỉ kiểm tra: page load, layout, text visible
|
|
26
|
+
✅ Agent PHẢI kiểm tra: dropdown, modal, button, hover, form, keyboard nav
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
**Solution**: 58-checkpoint interaction checklist — buộc test TỪNG interactive element.
|
|
30
|
+
|
|
31
|
+
## 🛠️ MCP Tools Quick Reference
|
|
32
|
+
|
|
33
|
+
### Navigation (5 tools)
|
|
34
|
+
|
|
35
|
+
| Tool | Purpose |
|
|
36
|
+
| ----------------------- | ----------------- |
|
|
37
|
+
| `browser_navigate` | Mở URL |
|
|
38
|
+
| `browser_navigate_back` | Quay lại |
|
|
39
|
+
| `browser_close` | Đóng browser |
|
|
40
|
+
| `browser_resize` | Thay đổi viewport |
|
|
41
|
+
| `browser_tabs` | Quản lý tabs |
|
|
42
|
+
|
|
43
|
+
### Interaction (9 tools) — **CRITICAL cho comprehensive testing**
|
|
44
|
+
|
|
45
|
+
| Tool | Use Case |
|
|
46
|
+
| ----------------------- | ----------------------------------- |
|
|
47
|
+
| `browser_click` | Button, link, tab, accordion |
|
|
48
|
+
| `browser_type` | Form input, search |
|
|
49
|
+
| `browser_press_key` | Escape đóng modal, Enter submit |
|
|
50
|
+
| `browser_hover` | Tooltip, dropdown menu, hover state |
|
|
51
|
+
| `browser_select_option` | Native `<select>` dropdown |
|
|
52
|
+
| `browser_drag` | Drag-and-drop, reorder |
|
|
53
|
+
| `browser_file_upload` | File input |
|
|
54
|
+
| `browser_handle_dialog` | Alert/confirm/prompt |
|
|
55
|
+
| `browser_fill_form` | Nhiều fields cùng lúc |
|
|
56
|
+
|
|
57
|
+
### Observation (5 tools)
|
|
58
|
+
|
|
59
|
+
| Tool | Use Case |
|
|
60
|
+
| -------------------------- | --------------------------------- |
|
|
61
|
+
| `browser_snapshot` | **CORE: LLM hiểu page structure** |
|
|
62
|
+
| `browser_take_screenshot` | Visual verification |
|
|
63
|
+
| `browser_evaluate` | Run JS, check DOM/CSS |
|
|
64
|
+
| `browser_console_messages` | Error detection |
|
|
65
|
+
| `browser_network_requests` | API verification |
|
|
66
|
+
|
|
67
|
+
## 🎯 Locator Priority
|
|
68
|
+
|
|
69
|
+
```
|
|
70
|
+
1. getByRole('button', { name: 'Submit' }) ← BEST (semantic)
|
|
71
|
+
2. getByLabel('Email') ← Form fields
|
|
72
|
+
3. getByTestId('submit-btn') ← Explicit markers
|
|
73
|
+
4. getByText('Sign in') ← Visible content
|
|
74
|
+
5. locator('.btn-primary') ← LAST RESORT
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
## 📋 58-Checkpoint Summary
|
|
78
|
+
|
|
79
|
+
### Dropdown (18 checks)
|
|
80
|
+
|
|
81
|
+
- **Functional**: open list, select updates value, default value, dependent, multi-select, search
|
|
82
|
+
- **Keyboard**: Tab focus, Enter/Space open, arrows navigate, typing jumps, Escape close
|
|
83
|
+
- **Visual**: no truncation, scroll, no layout shift
|
|
84
|
+
- **Validation**: required error, invalid input blocked, clear message
|
|
85
|
+
|
|
86
|
+
### Modal (16 checks)
|
|
87
|
+
|
|
88
|
+
- **Trigger**: button triggers, centered overlay, background blocked, content visible
|
|
89
|
+
- **Close**: X button, overlay click, Escape key, focus returns
|
|
90
|
+
- **Keyboard**: Tab trap inside, Shift+Tab backward, no focus escape, screen reader
|
|
91
|
+
- **Form**: submit works, validation, success/error states
|
|
92
|
+
|
|
93
|
+
### Button (14 checks)
|
|
94
|
+
|
|
95
|
+
- **Functional**: click performs action, state changes, rage-click safe, disabled, navigation, toggle
|
|
96
|
+
- **Visual**: consistent design, hitbox accurate, text meaningful, responsive
|
|
97
|
+
- **Accessibility**: Tab order, Enter activates, focus visible, screen reader name
|
|
98
|
+
|
|
99
|
+
### Hover (10 checks)
|
|
100
|
+
|
|
101
|
+
- **Trigger**: hover triggers state, content persists, keyboard equivalent
|
|
102
|
+
- **Content**: readable, no layout shift, no obstruction
|
|
103
|
+
- **Dismiss**: Escape dismisses, no interference
|
|
104
|
+
- **Technical**: CSS states correct, JS handlers work
|
|
105
|
+
|
|
106
|
+
## 🤖 AI Test Agents
|
|
107
|
+
|
|
108
|
+
| Agent | Role | I/O |
|
|
109
|
+
| ------------- | -------------------------------- | -------------------------- |
|
|
110
|
+
| **Planner** | Explore app → generate test plan | App URL → Markdown plan |
|
|
111
|
+
| **Generator** | Plan → executable tests | Markdown → Playwright code |
|
|
112
|
+
| **Healer** | Detect UI changes → repair tests | Failed test → Fixed code |
|
|
113
|
+
|
|
114
|
+
## 🔍 Decision Tree
|
|
115
|
+
|
|
116
|
+
```
|
|
117
|
+
Need to interact with page?
|
|
118
|
+
├─ Understand page structure → browser_snapshot (accessibility tree)
|
|
119
|
+
├─ Visual verification → browser_take_screenshot
|
|
120
|
+
├─ Click/type/select → browser_click / browser_type / browser_select_option
|
|
121
|
+
├─ Open modal → browser_click trigger → browser_snapshot modal content
|
|
122
|
+
├─ Close modal → browser_press_key "Escape"
|
|
123
|
+
├─ Test dropdown → browser_click → browser_select_option → browser_snapshot
|
|
124
|
+
└─ Check errors → browser_console_messages + browser_network_requests
|
|
125
|
+
```
|
|
126
|
+
|
|
127
|
+
## ⚠️ Common Pitfalls
|
|
128
|
+
|
|
129
|
+
| ❌ Don't | ✅ Do |
|
|
130
|
+
| ------------------------------------ | ------------------------------------------- |
|
|
131
|
+
| Use screenshot for LLM understanding | Use `browser_snapshot` (accessibility tree) |
|
|
132
|
+
| Test only page load | Test ALL interactive elements |
|
|
133
|
+
| Use CSS selectors | Use `getByRole()` / `getByLabel()` |
|
|
134
|
+
| Skip keyboard testing | Test Tab, Enter, Escape |
|
|
135
|
+
| Ignore console errors | Always check `browser_console_messages` |
|
|
136
|
+
| Single browser | Cross-browser: Chromium + Firefox + WebKit |
|
|
137
|
+
|
|
138
|
+
## Playwright Config (Quick Start)
|
|
139
|
+
|
|
140
|
+
```typescript
|
|
141
|
+
import { defineConfig, devices } from "@playwright/test";
|
|
142
|
+
export default defineConfig({
|
|
143
|
+
testDir: "./tests/e2e",
|
|
144
|
+
fullyParallel: true,
|
|
145
|
+
forbidOnly: !!process.env.CI,
|
|
146
|
+
retries: process.env.CI ? 2 : 0,
|
|
147
|
+
reporter: "html",
|
|
148
|
+
use: {
|
|
149
|
+
baseURL: "http://localhost:3000",
|
|
150
|
+
trace: "on-first-retry",
|
|
151
|
+
screenshot: "only-on-failure",
|
|
152
|
+
},
|
|
153
|
+
projects: [
|
|
154
|
+
{ name: "chromium", use: { ...devices["Desktop Chrome"] } },
|
|
155
|
+
{ name: "firefox", use: { ...devices["Desktop Firefox"] } },
|
|
156
|
+
{ name: "mobile", use: { ...devices["iPhone 14"] } },
|
|
157
|
+
],
|
|
158
|
+
});
|
|
159
|
+
```
|
|
160
|
+
|
|
161
|
+
## Page Object Model
|
|
162
|
+
|
|
163
|
+
```typescript
|
|
164
|
+
import { Page, Locator, expect } from "@playwright/test";
|
|
165
|
+
|
|
166
|
+
export class LoginPage {
|
|
167
|
+
readonly page: Page;
|
|
168
|
+
readonly email: Locator;
|
|
169
|
+
readonly password: Locator;
|
|
170
|
+
readonly submit: Locator;
|
|
171
|
+
readonly errorMsg: Locator;
|
|
172
|
+
|
|
173
|
+
constructor(page: Page) {
|
|
174
|
+
this.page = page;
|
|
175
|
+
this.email = page.getByLabel("Email");
|
|
176
|
+
this.password = page.getByLabel("Password");
|
|
177
|
+
this.submit = page.getByRole("button", { name: "Sign in" });
|
|
178
|
+
this.errorMsg = page.getByRole("alert");
|
|
179
|
+
}
|
|
180
|
+
|
|
181
|
+
async login(email: string, password: string) {
|
|
182
|
+
await this.email.fill(email);
|
|
183
|
+
await this.password.fill(password);
|
|
184
|
+
await this.submit.click();
|
|
185
|
+
}
|
|
186
|
+
|
|
187
|
+
async expectError(message: string) {
|
|
188
|
+
await expect(this.errorMsg).toContainText(message);
|
|
189
|
+
}
|
|
190
|
+
}
|
|
191
|
+
```
|
|
192
|
+
|
|
193
|
+
## 🔌 HSA Integration
|
|
194
|
+
|
|
195
|
+
Data powered by HSA BM25 search engine:
|
|
196
|
+
|
|
197
|
+
| Domain | Query Examples |
|
|
198
|
+
| --------- | ------------------------------------- |
|
|
199
|
+
| MCP Tools | "browser_click browser_snapshot" |
|
|
200
|
+
| Checklist | "dropdown testing modal verification" |
|
|
201
|
+
| Locators | "getByRole getByLabel priority" |
|
|
202
|
+
| Config | "CI pipeline mobile testing" |
|
|
203
|
+
| AI Agents | "planner generator healer" |
|
|
204
|
+
| Tools | "stagehand browser-use midscene" |
|
|
205
|
+
|
|
206
|
+
**Data domains**: `mcp-tools`, `interaction-checklist`, `locator-patterns`, `config-templates`, `ai-agents`, `open-source-tools`
|
|
207
|
+
|
|
208
|
+
---
|
|
209
|
+
|
|
210
|
+
_DOMYH Awesome Code — Playwright Browser Automation (Data-Driven + HSA)_
|
|
@@ -0,0 +1,137 @@
|
|
|
1
|
+
# =============================================================================
|
|
2
|
+
# ai-agents.yaml — Playwright AI Test Agent Patterns
|
|
3
|
+
# =============================================================================
|
|
4
|
+
|
|
5
|
+
version: "1.0.0"
|
|
6
|
+
|
|
7
|
+
agents:
|
|
8
|
+
planner:
|
|
9
|
+
name: "Planner Agent"
|
|
10
|
+
role: "Explore application and generate structured test plan"
|
|
11
|
+
input: "Application URL + description"
|
|
12
|
+
output: "Markdown test plan with scenarios, steps, assertions"
|
|
13
|
+
workflow:
|
|
14
|
+
- "Navigate to application root"
|
|
15
|
+
- "Use browser_snapshot to map all pages and routes"
|
|
16
|
+
- "Identify interactive elements per page"
|
|
17
|
+
- "Generate test scenarios with expected behaviors"
|
|
18
|
+
- "Output: structured Markdown test plan"
|
|
19
|
+
template: |
|
|
20
|
+
## Test Plan: [Application Name]
|
|
21
|
+
|
|
22
|
+
### Page: /login
|
|
23
|
+
**Interactive Elements**: email input, password input, submit button, forgot password link
|
|
24
|
+
|
|
25
|
+
#### Scenario 1: Successful Login
|
|
26
|
+
1. Navigate to /login
|
|
27
|
+
2. Fill email: test@example.com
|
|
28
|
+
3. Fill password: password123
|
|
29
|
+
4. Click "Sign in" button
|
|
30
|
+
5. **Assert**: Redirected to /dashboard
|
|
31
|
+
6. **Assert**: Welcome message visible
|
|
32
|
+
|
|
33
|
+
#### Scenario 2: Invalid Credentials
|
|
34
|
+
1. Navigate to /login
|
|
35
|
+
2. Fill email: wrong@example.com
|
|
36
|
+
3. Fill password: wrongpass
|
|
37
|
+
4. Click "Sign in" button
|
|
38
|
+
5. **Assert**: Error message "Invalid credentials"
|
|
39
|
+
6. **Assert**: Still on /login page
|
|
40
|
+
|
|
41
|
+
#### Scenario 3: Empty Form Submission
|
|
42
|
+
1. Navigate to /login
|
|
43
|
+
2. Click "Sign in" without filling fields
|
|
44
|
+
3. **Assert**: Validation errors for email and password
|
|
45
|
+
|
|
46
|
+
generator:
|
|
47
|
+
name: "Generator Agent"
|
|
48
|
+
role: "Convert test plan to executable Playwright tests"
|
|
49
|
+
input: "Markdown test plan"
|
|
50
|
+
output: "Playwright test files (.spec.ts)"
|
|
51
|
+
workflow:
|
|
52
|
+
- "Parse Markdown test plan"
|
|
53
|
+
- "Map scenarios to test blocks"
|
|
54
|
+
- "Use getByRole/getByLabel for locators"
|
|
55
|
+
- "Add assertions with expect()"
|
|
56
|
+
- "Validate against live browser"
|
|
57
|
+
template: |
|
|
58
|
+
import { test, expect } from '@playwright/test';
|
|
59
|
+
|
|
60
|
+
test.describe('Login Page', () => {
|
|
61
|
+
test.beforeEach(async ({ page }) => {
|
|
62
|
+
await page.goto('/login');
|
|
63
|
+
});
|
|
64
|
+
|
|
65
|
+
test('successful login', async ({ page }) => {
|
|
66
|
+
await page.getByLabel('Email').fill('test@example.com');
|
|
67
|
+
await page.getByLabel('Password').fill('password123');
|
|
68
|
+
await page.getByRole('button', { name: 'Sign in' }).click();
|
|
69
|
+
|
|
70
|
+
await expect(page).toHaveURL('/dashboard');
|
|
71
|
+
await expect(page.getByText('Welcome')).toBeVisible();
|
|
72
|
+
});
|
|
73
|
+
|
|
74
|
+
test('invalid credentials shows error', async ({ page }) => {
|
|
75
|
+
await page.getByLabel('Email').fill('wrong@example.com');
|
|
76
|
+
await page.getByLabel('Password').fill('wrongpass');
|
|
77
|
+
await page.getByRole('button', { name: 'Sign in' }).click();
|
|
78
|
+
|
|
79
|
+
await expect(page.getByRole('alert')).toContainText('Invalid credentials');
|
|
80
|
+
await expect(page).toHaveURL('/login');
|
|
81
|
+
});
|
|
82
|
+
|
|
83
|
+
test('empty form shows validation errors', async ({ page }) => {
|
|
84
|
+
await page.getByRole('button', { name: 'Sign in' }).click();
|
|
85
|
+
|
|
86
|
+
await expect(page.getByText('Email is required')).toBeVisible();
|
|
87
|
+
await expect(page.getByText('Password is required')).toBeVisible();
|
|
88
|
+
});
|
|
89
|
+
});
|
|
90
|
+
|
|
91
|
+
healer:
|
|
92
|
+
name: "Healer Agent"
|
|
93
|
+
role: "Detect and repair failing tests due to UI changes"
|
|
94
|
+
input: "Failed test + error message + current page state"
|
|
95
|
+
output: "Updated test with fixed locators/assertions"
|
|
96
|
+
workflow:
|
|
97
|
+
- "Run failing test, capture error"
|
|
98
|
+
- "Take browser_snapshot of current page state"
|
|
99
|
+
- "Compare expected vs actual element references"
|
|
100
|
+
- "Identify what changed (selector, text, structure)"
|
|
101
|
+
- "Update locator or assertion to match new UI"
|
|
102
|
+
- "Re-run test to verify fix"
|
|
103
|
+
detection_patterns:
|
|
104
|
+
- pattern: "Element not found"
|
|
105
|
+
cause: "Selector changed (class, ID, text)"
|
|
106
|
+
fix: "Use browser_snapshot to find new ref, update locator"
|
|
107
|
+
- pattern: "Expected text mismatch"
|
|
108
|
+
cause: "Content text changed"
|
|
109
|
+
fix: "Update expected text in assertion"
|
|
110
|
+
- pattern: "Timeout waiting"
|
|
111
|
+
cause: "Element removed or hidden"
|
|
112
|
+
fix: "Check if element still exists, update test flow"
|
|
113
|
+
- pattern: "Navigation mismatch"
|
|
114
|
+
cause: "URL structure changed"
|
|
115
|
+
fix: "Update expected URL pattern"
|
|
116
|
+
template: |
|
|
117
|
+
// Before (failing):
|
|
118
|
+
// await page.locator('#submit-btn').click();
|
|
119
|
+
// Error: Element not found: #submit-btn
|
|
120
|
+
|
|
121
|
+
// After browser_snapshot, found new ref:
|
|
122
|
+
await page.getByRole('button', { name: 'Submit' }).click();
|
|
123
|
+
// ✅ Healed: switched from ID to semantic role locator
|
|
124
|
+
|
|
125
|
+
# Integration with AI IDEs
|
|
126
|
+
ide_integration:
|
|
127
|
+
antigravity:
|
|
128
|
+
tool: "browser_subagent"
|
|
129
|
+
usage: "Delegate test plan generation to Planner via browser_subagent task"
|
|
130
|
+
cursor:
|
|
131
|
+
tool: "Playwright MCP"
|
|
132
|
+
usage: "Use MCP tools directly for interaction"
|
|
133
|
+
vscode:
|
|
134
|
+
tool: "Playwright Test extension"
|
|
135
|
+
usage: "Built-in test runner with UI mode"
|
|
136
|
+
|
|
137
|
+
# _DOMYH Awesome Code • AI Test Agent Patterns v1.0.0_
|
|
@@ -0,0 +1,141 @@
|
|
|
1
|
+
# =============================================================================
|
|
2
|
+
# config-templates.yaml — Playwright Configuration Templates
|
|
3
|
+
# =============================================================================
|
|
4
|
+
|
|
5
|
+
version: "1.0.0"
|
|
6
|
+
|
|
7
|
+
templates:
|
|
8
|
+
local_development:
|
|
9
|
+
name: "Local Development"
|
|
10
|
+
when: "Day-to-day development testing"
|
|
11
|
+
config: |
|
|
12
|
+
import { defineConfig, devices } from '@playwright/test';
|
|
13
|
+
export default defineConfig({
|
|
14
|
+
testDir: './tests/e2e',
|
|
15
|
+
fullyParallel: true,
|
|
16
|
+
retries: 0,
|
|
17
|
+
workers: undefined, // Use all CPU cores
|
|
18
|
+
reporter: [['html', { open: 'never' }]],
|
|
19
|
+
use: {
|
|
20
|
+
baseURL: 'http://localhost:3000',
|
|
21
|
+
trace: 'on', // Always trace for debugging
|
|
22
|
+
screenshot: 'on', // Always capture
|
|
23
|
+
video: 'on', // Record all tests
|
|
24
|
+
headless: false, // See browser
|
|
25
|
+
},
|
|
26
|
+
projects: [
|
|
27
|
+
{ name: 'chromium', use: { ...devices['Desktop Chrome'] } },
|
|
28
|
+
],
|
|
29
|
+
webServer: {
|
|
30
|
+
command: 'npm run dev',
|
|
31
|
+
url: 'http://localhost:3000',
|
|
32
|
+
reuseExistingServer: true,
|
|
33
|
+
},
|
|
34
|
+
});
|
|
35
|
+
|
|
36
|
+
ci_pipeline:
|
|
37
|
+
name: "CI Pipeline"
|
|
38
|
+
when: "GitHub Actions, GitLab CI, Jenkins"
|
|
39
|
+
config: |
|
|
40
|
+
import { defineConfig, devices } from '@playwright/test';
|
|
41
|
+
export default defineConfig({
|
|
42
|
+
testDir: './tests/e2e',
|
|
43
|
+
fullyParallel: true,
|
|
44
|
+
forbidOnly: true, // Fail on test.only
|
|
45
|
+
retries: 2, // Retry flaky tests
|
|
46
|
+
workers: 1, // Sequential for stability
|
|
47
|
+
reporter: [
|
|
48
|
+
['html', { outputFolder: 'test-results/html' }],
|
|
49
|
+
['json', { outputFile: 'test-results/results.json' }],
|
|
50
|
+
['github'], // GitHub Actions annotations
|
|
51
|
+
],
|
|
52
|
+
use: {
|
|
53
|
+
baseURL: 'http://localhost:3000',
|
|
54
|
+
trace: 'on-first-retry', // Trace only on failure
|
|
55
|
+
screenshot: 'only-on-failure',
|
|
56
|
+
video: 'retain-on-failure',
|
|
57
|
+
headless: true,
|
|
58
|
+
},
|
|
59
|
+
projects: [
|
|
60
|
+
{ name: 'chromium', use: { ...devices['Desktop Chrome'] } },
|
|
61
|
+
{ name: 'firefox', use: { ...devices['Desktop Firefox'] } },
|
|
62
|
+
{ name: 'webkit', use: { ...devices['Desktop Safari'] } },
|
|
63
|
+
],
|
|
64
|
+
webServer: {
|
|
65
|
+
command: 'npm run start',
|
|
66
|
+
url: 'http://localhost:3000',
|
|
67
|
+
reuseExistingServer: false,
|
|
68
|
+
timeout: 120_000,
|
|
69
|
+
},
|
|
70
|
+
});
|
|
71
|
+
|
|
72
|
+
mobile_testing:
|
|
73
|
+
name: "Mobile Device Testing"
|
|
74
|
+
when: "Responsive design, touch interactions"
|
|
75
|
+
config: |
|
|
76
|
+
import { defineConfig, devices } from '@playwright/test';
|
|
77
|
+
export default defineConfig({
|
|
78
|
+
testDir: './tests/e2e/mobile',
|
|
79
|
+
use: {
|
|
80
|
+
baseURL: 'http://localhost:3000',
|
|
81
|
+
trace: 'on-first-retry',
|
|
82
|
+
},
|
|
83
|
+
projects: [
|
|
84
|
+
// iPhone
|
|
85
|
+
{ name: 'iphone-14', use: { ...devices['iPhone 14'] } },
|
|
86
|
+
{ name: 'iphone-14-landscape', use: { ...devices['iPhone 14 landscape'] } },
|
|
87
|
+
// Android
|
|
88
|
+
{ name: 'pixel-7', use: { ...devices['Pixel 7'] } },
|
|
89
|
+
// iPad
|
|
90
|
+
{ name: 'ipad', use: { ...devices['iPad (gen 7)'] } },
|
|
91
|
+
{ name: 'ipad-landscape', use: { ...devices['iPad (gen 7) landscape'] } },
|
|
92
|
+
],
|
|
93
|
+
});
|
|
94
|
+
|
|
95
|
+
visual_regression:
|
|
96
|
+
name: "Visual Regression"
|
|
97
|
+
when: "Screenshot comparison testing"
|
|
98
|
+
config: |
|
|
99
|
+
import { defineConfig, devices } from '@playwright/test';
|
|
100
|
+
export default defineConfig({
|
|
101
|
+
testDir: './tests/visual',
|
|
102
|
+
snapshotDir: './tests/visual/__snapshots__',
|
|
103
|
+
updateSnapshots: process.env.UPDATE_SNAPSHOTS ? 'all' : 'missing',
|
|
104
|
+
expect: {
|
|
105
|
+
toHaveScreenshot: {
|
|
106
|
+
maxDiffPixelRatio: 0.01, // 1% tolerance
|
|
107
|
+
threshold: 0.2, // Color threshold
|
|
108
|
+
animations: 'disabled', // Freeze animations
|
|
109
|
+
},
|
|
110
|
+
toMatchSnapshot: {
|
|
111
|
+
maxDiffPixelRatio: 0.01,
|
|
112
|
+
},
|
|
113
|
+
},
|
|
114
|
+
use: {
|
|
115
|
+
baseURL: 'http://localhost:3000',
|
|
116
|
+
screenshot: 'on',
|
|
117
|
+
// Consistent rendering
|
|
118
|
+
colorScheme: 'dark',
|
|
119
|
+
locale: 'en-US',
|
|
120
|
+
timezoneId: 'America/New_York',
|
|
121
|
+
},
|
|
122
|
+
projects: [
|
|
123
|
+
{ name: 'chromium', use: { ...devices['Desktop Chrome'] } },
|
|
124
|
+
],
|
|
125
|
+
});
|
|
126
|
+
test_example: |
|
|
127
|
+
import { test, expect } from '@playwright/test';
|
|
128
|
+
|
|
129
|
+
test('homepage visual', async ({ page }) => {
|
|
130
|
+
await page.goto('/');
|
|
131
|
+
await page.waitForLoadState('networkidle');
|
|
132
|
+
await expect(page).toHaveScreenshot('homepage.png');
|
|
133
|
+
});
|
|
134
|
+
|
|
135
|
+
test('dark mode toggle', async ({ page }) => {
|
|
136
|
+
await page.goto('/');
|
|
137
|
+
await page.getByRole('button', { name: 'Toggle theme' }).click();
|
|
138
|
+
await expect(page).toHaveScreenshot('homepage-dark.png');
|
|
139
|
+
});
|
|
140
|
+
|
|
141
|
+
# _DOMYH Awesome Code • Playwright Config Templates v1.0.0_
|