@nockdev/awf 6.2.0 → 6.2.2
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} +2 -2
- 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/core/{TEMPLATES.yaml → reference/TEMPLATES.yaml} +1 -1
- 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 +6 -6
- package/.agent/rules/{constitutional → archive/constitutional}/tier-1-safety.yaml +6 -6
- package/.agent/rules/{constitutional → archive/constitutional}/tier-2-execution.yaml +7 -7
- 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 +2 -2
- 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 +45 -1
- package/.agent/rules/modules/yagni.yaml +1 -1
- package/.agent/rules/validation-framework.md +1 -1
- package/.agent/skills/DEVELOPMENT.yaml +17 -6
- 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/audit-pro/SKILL.md +61 -0
- 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/aws/SKILL.md +39 -697
- 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/ci-cd/SKILL.md +37 -807
- package/.agent/skills/devops/docker/META.yaml +53 -14
- package/.agent/skills/devops/docker/SKILL.md +35 -639
- 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/kubernetes/SKILL.md +38 -607
- 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/README.md +16 -13
- package/configs/aider/root.CONVENTIONS.md +51 -0
- package/configs/amazonq/root.amazonq.md +51 -0
- package/configs/amp/root.AGENTS.md +51 -0
- package/configs/antigravity/root.GEMINI.md +51 -0
- package/configs/augment/root.guidelines.md +51 -0
- package/configs/claude/root.CLAUDE.md +51 -0
- package/configs/cline/root.clinerules.md +51 -0
- package/configs/coderabbit/root.coderabbit.yaml +52 -0
- package/configs/codex/root.AGENTS.md +51 -0
- package/configs/cody/root.commands.json +76 -0
- package/configs/continue/root.continue.md +51 -0
- package/configs/copilot/root.copilot-instructions.md +51 -0
- package/configs/cursor/root.cursorrules +51 -0
- package/configs/gemini/root.GEMINI.md +51 -0
- package/configs/jetbrains/root.guidelines.md +51 -0
- package/configs/opencode/root.opencode.json +24 -0
- package/configs/roo/root.roorules.md +51 -0
- package/configs/tabnine/root.guidelines.md +51 -0
- package/configs/vscode/root.copilot-instructions.md +51 -0
- package/configs/windsurf/root.windsurfrules +51 -0
- package/configs/zed/root.settings.json +15 -0
- 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 +62 -69
- 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 +25 -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 +9 -9
- package/dist/constants/ide-install-specs.js.map +1 -1
- 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 +77 -51
- 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 +27 -0
- package/dist/utils/install-manifest.js.map +1 -0
- package/dist/utils/validation.d.ts.map +1 -1
- package/dist/utils/validation.js +34 -7
- package/dist/utils/validation.js.map +1 -1
- package/package.json +5 -4
- 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/ci-cd/ADVANCED.md +0 -529
- package/.agent/skills/devops/docker/ADVANCED.md +0 -495
- package/.agent/skills/devops/kubernetes/ADVANCED.md +0 -252
- /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/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
|
@@ -842,20 +842,16 @@ my-electron-app/
|
|
|
842
842
|
|
|
843
843
|
## 🔌 HSA Integration
|
|
844
844
|
|
|
845
|
-
|
|
846
|
-
|
|
847
|
-
|
|
848
|
-
|
|
849
|
-
|
|
850
|
-
|
|
851
|
-
|
|
852
|
-
|
|
853
|
-
|
|
854
|
-
|
|
855
|
-
# Get API info
|
|
856
|
-
api = get_electron_api("contextBridge")
|
|
857
|
-
# Returns: {'name': 'contextBridge', 'category': 'security', ...}
|
|
858
|
-
```
|
|
845
|
+
Data powered by HSA BM25 search engine. Query YAML data via skill search:
|
|
846
|
+
|
|
847
|
+
| Domain | Query Examples |
|
|
848
|
+
| -------- | ------------------------------------------- |
|
|
849
|
+
| Security | "context isolation sandbox preload" |
|
|
850
|
+
| IPC | "invoke handle ipcMain ipcRenderer" |
|
|
851
|
+
| Updates | "auto update electron-updater signing" |
|
|
852
|
+
| Storage | "better-sqlite3 electron-store safeStorage" |
|
|
853
|
+
| Native | "tray notification shortcut deep link" |
|
|
854
|
+
| Testing | "Playwright E2E Vitest unit test" |
|
|
859
855
|
|
|
860
856
|
---
|
|
861
857
|
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
name: event-driven
|
|
2
|
+
version: "1.0.0"
|
|
3
|
+
display: Event-Driven Architecture
|
|
4
|
+
category: cross-cutting
|
|
5
|
+
tier: 1
|
|
6
|
+
priority: 7
|
|
7
|
+
|
|
8
|
+
desc: "Event-driven architecture patterns: message queues (Kafka, RabbitMQ, NATS), pub/sub, event sourcing, CQRS, saga pattern. Covers production patterns like DLQ, idempotency, and schema evolution."
|
|
9
|
+
|
|
10
|
+
### Data Files (3 domains, ~24 patterns)
|
|
11
|
+
- eda-patterns.yaml: pub/sub, event sourcing, CQRS, saga (8)
|
|
12
|
+
- broker-comparison.yaml: Kafka vs RabbitMQ vs NATS feature matrix (8)
|
|
13
|
+
- production-patterns.yaml: DLQ, idempotency, schema evolution (8)
|
|
14
|
+
|
|
15
|
+
triggers:
|
|
16
|
+
file_patterns:
|
|
17
|
+
# Kafka
|
|
18
|
+
- "kafka.config.*"
|
|
19
|
+
- "**/kafka/**"
|
|
20
|
+
# RabbitMQ
|
|
21
|
+
- "rabbitmq.conf"
|
|
22
|
+
- "**/amqp/**"
|
|
23
|
+
# NATS
|
|
24
|
+
- "nats.conf"
|
|
25
|
+
- "**/nats/**"
|
|
26
|
+
# General
|
|
27
|
+
- "**/events/**"
|
|
28
|
+
- "**/consumers/**"
|
|
29
|
+
- "**/producers/**"
|
|
30
|
+
keywords:
|
|
31
|
+
# Core concepts
|
|
32
|
+
- event driven
|
|
33
|
+
- event-driven architecture
|
|
34
|
+
- EDA
|
|
35
|
+
- message queue
|
|
36
|
+
- message broker
|
|
37
|
+
- pub/sub
|
|
38
|
+
- publish subscribe
|
|
39
|
+
# Brokers
|
|
40
|
+
- kafka
|
|
41
|
+
- Apache Kafka
|
|
42
|
+
- rabbitmq
|
|
43
|
+
- RabbitMQ
|
|
44
|
+
- NATS
|
|
45
|
+
- nats jetstream
|
|
46
|
+
- AMQP
|
|
47
|
+
# Patterns
|
|
48
|
+
- event sourcing
|
|
49
|
+
- CQRS
|
|
50
|
+
- command query responsibility segregation
|
|
51
|
+
- saga pattern
|
|
52
|
+
- choreography
|
|
53
|
+
- orchestration saga
|
|
54
|
+
- event-carried state transfer
|
|
55
|
+
# Production
|
|
56
|
+
- dead letter queue
|
|
57
|
+
- DLQ
|
|
58
|
+
- competing consumers
|
|
59
|
+
- consumer group
|
|
60
|
+
- idempotent consumer
|
|
61
|
+
- exactly-once semantics
|
|
62
|
+
- at-least-once
|
|
63
|
+
# Schema
|
|
64
|
+
- event schema
|
|
65
|
+
- schema registry
|
|
66
|
+
- avro
|
|
67
|
+
- schema evolution
|
|
68
|
+
|
|
69
|
+
caps:
|
|
70
|
+
# Patterns
|
|
71
|
+
- Publish/Subscribe (topic-based, queue-based)
|
|
72
|
+
- Event Sourcing (immutable event log, replay)
|
|
73
|
+
- CQRS (separate read/write models)
|
|
74
|
+
- Saga Pattern (orchestration vs choreography)
|
|
75
|
+
- Event-Carried State Transfer
|
|
76
|
+
- Competing Consumers for horizontal scaling
|
|
77
|
+
# Kafka
|
|
78
|
+
- Kafka: partitioning, consumer groups, offsets
|
|
79
|
+
- Kafka: exactly-once semantics (idempotent producers + transactions)
|
|
80
|
+
- Kafka Connect & Kafka Streams
|
|
81
|
+
- Kafka: topic design & retention policies
|
|
82
|
+
# RabbitMQ
|
|
83
|
+
- RabbitMQ: exchanges (direct, topic, fanout, headers)
|
|
84
|
+
- RabbitMQ: quorum queues (RAFT-based HA)
|
|
85
|
+
- RabbitMQ: routing keys & bindings
|
|
86
|
+
- RabbitMQ: publisher confirms & consumer ACKs
|
|
87
|
+
# NATS
|
|
88
|
+
- NATS: core NATS (fire-and-forget, sub-ms latency)
|
|
89
|
+
- NATS: JetStream (persistence, exactly-once)
|
|
90
|
+
- NATS: request-reply pattern
|
|
91
|
+
# Production
|
|
92
|
+
- Dead Letter Queue (DLQ) management & recovery
|
|
93
|
+
- Idempotent consumers (deduplication)
|
|
94
|
+
- Schema evolution (backward/forward compatibility)
|
|
95
|
+
- Event versioning strategies
|
|
96
|
+
- Monitoring & alerting (consumer lag, throughput)
|
|
97
|
+
|
|
98
|
+
related_skills:
|
|
99
|
+
- microservices
|
|
100
|
+
- api-design
|
|
101
|
+
- database
|
|
102
|
+
- docker
|
|
103
|
+
- kubernetes
|
|
104
|
+
|
|
105
|
+
hsa_adapter:
|
|
106
|
+
enabled: true
|
|
107
|
+
data_dir: "skills/cross-cutting/event-driven/data"
|
|
108
|
+
preload_data: true
|
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
# Event-Driven Architecture — Kafka • RabbitMQ • NATS
|
|
2
|
+
|
|
3
|
+
> Pub/Sub • Event Sourcing • CQRS • Saga Pattern
|
|
4
|
+
> Dead Letter Queues • Idempotent Consumers • Schema Evolution
|
|
5
|
+
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
## Khi Nào Dùng
|
|
9
|
+
|
|
10
|
+
- Thiết kế async messaging giữa microservices
|
|
11
|
+
- Chọn message broker (Kafka vs RabbitMQ vs NATS)
|
|
12
|
+
- Implement event sourcing, CQRS, hoặc saga pattern
|
|
13
|
+
- Xử lý DLQ, idempotency, schema evolution
|
|
14
|
+
|
|
15
|
+
## Broker Selection Guide
|
|
16
|
+
|
|
17
|
+
| Feature | Kafka | RabbitMQ | NATS |
|
|
18
|
+
| --------------- | ------------------------------------- | --------------------------- | -------------------------------- |
|
|
19
|
+
| **Throughput** | 1M+ msg/s | 50K-100K msg/s | 200K-400K msg/s |
|
|
20
|
+
| **Latency** | 10-50ms | 5-20ms | <1ms (core) |
|
|
21
|
+
| **Persistence** | Always | Configurable | JetStream |
|
|
22
|
+
| **Delivery** | At-least-once (exactly-once possible) | At-least-once | At-most-once / Exactly-once (JS) |
|
|
23
|
+
| **Best For** | Data streaming, event log | Business workflows, routing | Real-time, IoT, cloud-native |
|
|
24
|
+
| **Complexity** | ⭐⭐⭐ High | ⭐⭐ Medium | ⭐ Low |
|
|
25
|
+
|
|
26
|
+
## Core Patterns
|
|
27
|
+
|
|
28
|
+
### Pub/Sub
|
|
29
|
+
|
|
30
|
+
```
|
|
31
|
+
Producer ──▶ Topic/Exchange ──▶ Consumer A
|
|
32
|
+
──▶ Consumer B
|
|
33
|
+
──▶ Consumer C
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
### Event Sourcing + CQRS
|
|
37
|
+
|
|
38
|
+
```
|
|
39
|
+
Command ──▶ Event Store ──▶ [OrderCreated, ItemAdded, OrderPaid]
|
|
40
|
+
│
|
|
41
|
+
┌───────────────────┤
|
|
42
|
+
▼ ▼
|
|
43
|
+
Read Model A Read Model B
|
|
44
|
+
(Order Summary) (Analytics)
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
### Saga Pattern
|
|
48
|
+
|
|
49
|
+
```
|
|
50
|
+
Orchestrator Saga:
|
|
51
|
+
Orchestrator ──▶ Service A (Book Order)
|
|
52
|
+
├── Success ──▶ Service B (Process Payment)
|
|
53
|
+
│ ├── Success ──▶ Service C (Ship)
|
|
54
|
+
│ └── Failure ──▶ Compensate A
|
|
55
|
+
└── Failure ──▶ Done
|
|
56
|
+
|
|
57
|
+
Choreography Saga:
|
|
58
|
+
Service A ──event──▶ Service B ──event──▶ Service C
|
|
59
|
+
◀──compensate── ◀──compensate──
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
## Production Patterns
|
|
63
|
+
|
|
64
|
+
### Dead Letter Queue (DLQ)
|
|
65
|
+
|
|
66
|
+
```typescript
|
|
67
|
+
// Consumer with DLQ fallback
|
|
68
|
+
async function consume(message: Message) {
|
|
69
|
+
try {
|
|
70
|
+
await process(message);
|
|
71
|
+
await message.ack();
|
|
72
|
+
} catch (err) {
|
|
73
|
+
if (message.retryCount >= MAX_RETRIES) {
|
|
74
|
+
await dlq.publish(message); // Send to DLQ
|
|
75
|
+
await message.ack(); // Remove from main queue
|
|
76
|
+
} else {
|
|
77
|
+
await message.nack({ requeue: true, delay: backoff(message.retryCount) });
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
### Idempotent Consumer
|
|
84
|
+
|
|
85
|
+
```typescript
|
|
86
|
+
// Deduplication by event ID
|
|
87
|
+
async function handleEvent(event: Event) {
|
|
88
|
+
const processed = await redis.setnx(`event:${event.id}`, "1", "EX", 86400);
|
|
89
|
+
if (!processed) return; // Already handled
|
|
90
|
+
await processEvent(event);
|
|
91
|
+
}
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
### Schema Evolution
|
|
95
|
+
|
|
96
|
+
| Strategy | Compatibility | Example |
|
|
97
|
+
| ------------------- | ------------------- | ------------------------- |
|
|
98
|
+
| **Add field** | Backward compatible | New optional field |
|
|
99
|
+
| **Deprecate field** | Forward compatible | Mark as deprecated |
|
|
100
|
+
| **Rename field** | Breaking! | Add alias, deprecate old |
|
|
101
|
+
| **Remove field** | Breaking! | Schema registry + version |
|
|
102
|
+
|
|
103
|
+
## Common Traps
|
|
104
|
+
|
|
105
|
+
| Trap | Fix |
|
|
106
|
+
| ----------------------- | ----------------------------------------------- |
|
|
107
|
+
| Message ordering | Kafka: partition key; RabbitMQ: single consumer |
|
|
108
|
+
| Duplicate processing | Idempotent consumers + dedup by event ID |
|
|
109
|
+
| Consumer lag | Monitor lag, auto-scale consumers |
|
|
110
|
+
| Poison messages | DLQ + max retry count |
|
|
111
|
+
| Schema breaking changes | Schema registry, versioned events |
|
|
112
|
+
| Back-pressure | Consumer rate limiting, buffering |
|
|
113
|
+
|
|
114
|
+
## Monitoring Essentials
|
|
115
|
+
|
|
116
|
+
- Consumer lag (Kafka: `kafka-consumer-groups`, RabbitMQ: management UI)
|
|
117
|
+
- Message throughput (in/out per second)
|
|
118
|
+
- Error rate & DLQ depth
|
|
119
|
+
- End-to-end latency (publish → consume)
|
|
120
|
+
|
|
121
|
+
---
|
|
122
|
+
|
|
123
|
+
_DOMYH Awesome Code • Event-Driven Architecture Skill v1.0.0_
|
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
# Message Broker Comparison - HSA Event-Driven Skill
|
|
2
|
+
# Updated: 2026-02-12
|
|
3
|
+
|
|
4
|
+
metadata:
|
|
5
|
+
skill: event-driven
|
|
6
|
+
domain: broker-comparison
|
|
7
|
+
version: "1.0.0"
|
|
8
|
+
updated: "2026-02-12"
|
|
9
|
+
patterns_count: 8
|
|
10
|
+
|
|
11
|
+
patterns:
|
|
12
|
+
- id: bkr001
|
|
13
|
+
name: kafka_overview
|
|
14
|
+
category: broker
|
|
15
|
+
description: Apache Kafka - distributed streaming platform
|
|
16
|
+
text: kafka streaming platform distributed log partitions consumer group
|
|
17
|
+
features:
|
|
18
|
+
throughput: "1M+ msg/s per broker"
|
|
19
|
+
latency: "10-50ms (batching)"
|
|
20
|
+
persistence: "Always (configurable retention)"
|
|
21
|
+
delivery: "At-least-once (exactly-once with transactions)"
|
|
22
|
+
ordering: "Per partition"
|
|
23
|
+
best_for: "Event streaming, data pipelines, event sourcing"
|
|
24
|
+
example: |
|
|
25
|
+
const kafka = new Kafka({ brokers: ["localhost:9092"] });
|
|
26
|
+
const producer = kafka.producer();
|
|
27
|
+
await producer.send({ topic: "events", messages: [{ key: orderId, value: data }] });
|
|
28
|
+
|
|
29
|
+
- id: bkr002
|
|
30
|
+
name: rabbitmq_overview
|
|
31
|
+
category: broker
|
|
32
|
+
description: RabbitMQ - mature message broker with flexible routing
|
|
33
|
+
text: rabbitmq AMQP exchange queue routing binding acknowledge
|
|
34
|
+
features:
|
|
35
|
+
throughput: "50K-100K msg/s"
|
|
36
|
+
latency: "5-20ms"
|
|
37
|
+
persistence: "Configurable per queue"
|
|
38
|
+
delivery: "At-least-once (publisher confirms + consumer ACK)"
|
|
39
|
+
ordering: "Per queue"
|
|
40
|
+
best_for: "Business workflows, complex routing, task queues"
|
|
41
|
+
example: |
|
|
42
|
+
const channel = await connection.createChannel();
|
|
43
|
+
await channel.assertQueue("tasks", { durable: true });
|
|
44
|
+
channel.sendToQueue("tasks", Buffer.from(JSON.stringify(task)));
|
|
45
|
+
|
|
46
|
+
- id: bkr003
|
|
47
|
+
name: nats_overview
|
|
48
|
+
category: broker
|
|
49
|
+
description: NATS - ultra-low latency cloud-native messaging
|
|
50
|
+
text: NATS jetstream core lightweight cloud-native IoT microservices
|
|
51
|
+
features:
|
|
52
|
+
throughput: "200K-400K msg/s (JetStream)"
|
|
53
|
+
latency: "<1ms (core), 1-5ms (JetStream)"
|
|
54
|
+
persistence: "JetStream only"
|
|
55
|
+
delivery: "At-most-once (core), exactly-once (JetStream)"
|
|
56
|
+
ordering: "Per subject"
|
|
57
|
+
best_for: "Real-time, IoT, cloud-native, low latency"
|
|
58
|
+
example: |
|
|
59
|
+
const nc = await connect({ servers: "localhost:4222" });
|
|
60
|
+
nc.publish("orders.created", encode(order));
|
|
61
|
+
const sub = nc.subscribe("orders.*");
|
|
62
|
+
|
|
63
|
+
- id: bkr004
|
|
64
|
+
name: selection_guide
|
|
65
|
+
category: reference
|
|
66
|
+
description: Decision matrix for choosing a message broker
|
|
67
|
+
text: selection guide choose broker decision matrix when to use
|
|
68
|
+
decision_matrix:
|
|
69
|
+
high_throughput_streaming: "Kafka"
|
|
70
|
+
complex_routing_workflows: "RabbitMQ"
|
|
71
|
+
ultra_low_latency: "NATS"
|
|
72
|
+
event_sourcing: "Kafka"
|
|
73
|
+
task_queue: "RabbitMQ"
|
|
74
|
+
iot_edge: "NATS"
|
|
75
|
+
cloud_native_simple: "NATS"
|
|
76
|
+
enterprise_integration: "RabbitMQ"
|
|
77
|
+
|
|
78
|
+
- id: bkr005
|
|
79
|
+
name: kafka_partitioning
|
|
80
|
+
category: broker
|
|
81
|
+
description: Kafka partition strategy for ordering and scaling
|
|
82
|
+
text: kafka partition key ordering consumer group scalability
|
|
83
|
+
example: |
|
|
84
|
+
// Partition by order ID → all events for same order in same partition
|
|
85
|
+
await producer.send({
|
|
86
|
+
topic: "orders",
|
|
87
|
+
messages: [{ key: order.id, value: JSON.stringify(event) }]
|
|
88
|
+
});
|
|
89
|
+
|
|
90
|
+
- id: bkr006
|
|
91
|
+
name: rabbitmq_exchanges
|
|
92
|
+
category: broker
|
|
93
|
+
description: RabbitMQ exchange types and routing patterns
|
|
94
|
+
text: rabbitmq exchange direct topic fanout headers routing
|
|
95
|
+
types:
|
|
96
|
+
direct: "Route by exact routing key match"
|
|
97
|
+
topic: "Route by pattern (order.* or order.#)"
|
|
98
|
+
fanout: "Broadcast to all bound queues"
|
|
99
|
+
headers: "Route by message headers"
|
|
100
|
+
|
|
101
|
+
- id: bkr007
|
|
102
|
+
name: nats_jetstream
|
|
103
|
+
category: broker
|
|
104
|
+
description: NATS JetStream for persistent streaming
|
|
105
|
+
text: nats jetstream persistence stream consumer durable exactly-once
|
|
106
|
+
example: |
|
|
107
|
+
const jsm = await nc.jetstreamManager();
|
|
108
|
+
await jsm.streams.add({ name: "ORDERS", subjects: ["orders.>"] });
|
|
109
|
+
const js = nc.jetstream();
|
|
110
|
+
await js.publish("orders.created", encode(order));
|
|
111
|
+
|
|
112
|
+
- id: bkr008
|
|
113
|
+
name: migration_guide
|
|
114
|
+
category: reference
|
|
115
|
+
description: Migration considerations when switching brokers
|
|
116
|
+
text: migration broker switch considerations compatibility
|
|
117
|
+
considerations:
|
|
118
|
+
- "Message format compatibility (serialize/deserialize)"
|
|
119
|
+
- "Delivery guarantee differences"
|
|
120
|
+
- "Ordering guarantee differences"
|
|
121
|
+
- "Consumer group / queue semantics"
|
|
122
|
+
- "Monitoring & operations tooling"
|
|
123
|
+
- "Dual-write period for zero-downtime migration"
|
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
# EDA Core Patterns - HSA Event-Driven Skill
|
|
2
|
+
# Updated: 2026-02-12
|
|
3
|
+
|
|
4
|
+
metadata:
|
|
5
|
+
skill: event-driven
|
|
6
|
+
domain: eda-patterns
|
|
7
|
+
version: "1.0.0"
|
|
8
|
+
updated: "2026-02-12"
|
|
9
|
+
patterns_count: 8
|
|
10
|
+
|
|
11
|
+
patterns:
|
|
12
|
+
- id: eda001
|
|
13
|
+
name: pub_sub
|
|
14
|
+
category: pattern
|
|
15
|
+
description: Publish-Subscribe pattern for event distribution
|
|
16
|
+
text: pub sub publish subscribe topic fan-out broadcast
|
|
17
|
+
example: |
|
|
18
|
+
// Publisher
|
|
19
|
+
await producer.send({ topic: "order.created", messages: [{ value: JSON.stringify(order) }] });
|
|
20
|
+
// Subscriber
|
|
21
|
+
await consumer.subscribe({ topic: "order.created" });
|
|
22
|
+
await consumer.run({ eachMessage: async ({ message }) => { ... } });
|
|
23
|
+
|
|
24
|
+
- id: eda002
|
|
25
|
+
name: event_sourcing
|
|
26
|
+
category: pattern
|
|
27
|
+
description: Store state changes as immutable events
|
|
28
|
+
text: event sourcing immutable event log append only replay aggregate
|
|
29
|
+
example: |
|
|
30
|
+
// Append events (never update/delete)
|
|
31
|
+
await eventStore.append("order-123", [
|
|
32
|
+
{ type: "OrderCreated", data: { items, total } },
|
|
33
|
+
{ type: "PaymentReceived", data: { amount, method } },
|
|
34
|
+
{ type: "OrderShipped", data: { trackingId } }
|
|
35
|
+
]);
|
|
36
|
+
// Rebuild state by replaying events
|
|
37
|
+
const order = events.reduce(applyEvent, initialState);
|
|
38
|
+
|
|
39
|
+
- id: eda003
|
|
40
|
+
name: cqrs
|
|
41
|
+
category: pattern
|
|
42
|
+
description: Separate read and write models for optimization
|
|
43
|
+
text: CQRS command query responsibility segregation read write separate
|
|
44
|
+
example: |
|
|
45
|
+
// Write side: commands → events
|
|
46
|
+
async function placeOrder(cmd) {
|
|
47
|
+
validate(cmd);
|
|
48
|
+
const event = { type: "OrderPlaced", data: cmd };
|
|
49
|
+
await eventStore.append(cmd.orderId, [event]);
|
|
50
|
+
await eventBus.publish(event);
|
|
51
|
+
}
|
|
52
|
+
// Read side: projections
|
|
53
|
+
eventBus.on("OrderPlaced", async (event) => {
|
|
54
|
+
await readDb.upsert("orders", buildProjection(event));
|
|
55
|
+
});
|
|
56
|
+
|
|
57
|
+
- id: eda004
|
|
58
|
+
name: saga_orchestration
|
|
59
|
+
category: pattern
|
|
60
|
+
description: Centralized saga orchestrator for distributed transactions
|
|
61
|
+
text: saga orchestration distributed transaction compensate coordinator
|
|
62
|
+
example: |
|
|
63
|
+
class OrderSaga {
|
|
64
|
+
async execute(order) {
|
|
65
|
+
try {
|
|
66
|
+
await paymentService.charge(order);
|
|
67
|
+
await inventoryService.reserve(order);
|
|
68
|
+
await shippingService.create(order);
|
|
69
|
+
} catch (err) {
|
|
70
|
+
await this.compensate(order, err.failedStep);
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
async compensate(order, failedStep) {
|
|
74
|
+
if (failedStep >= 2) await inventoryService.release(order);
|
|
75
|
+
if (failedStep >= 1) await paymentService.refund(order);
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
- id: eda005
|
|
80
|
+
name: saga_choreography
|
|
81
|
+
category: pattern
|
|
82
|
+
description: Decentralized saga via event chain (no coordinator)
|
|
83
|
+
text: saga choreography decentralized event chain no coordinator
|
|
84
|
+
flow: "OrderCreated → PaymentCharged → InventoryReserved → OrderFulfilled"
|
|
85
|
+
compensate: "PaymentFailed → OrderCancelled (each service listens and compensates)"
|
|
86
|
+
|
|
87
|
+
- id: eda006
|
|
88
|
+
name: outbox_pattern
|
|
89
|
+
category: pattern
|
|
90
|
+
description: Transactional outbox for reliable event publishing
|
|
91
|
+
text: outbox pattern transactional publish reliable atomicity
|
|
92
|
+
example: |
|
|
93
|
+
// Within database transaction
|
|
94
|
+
await db.transaction(async (tx) => {
|
|
95
|
+
await tx.insert("orders", order);
|
|
96
|
+
await tx.insert("outbox", { topic: "order.created", payload: order });
|
|
97
|
+
});
|
|
98
|
+
// Separate process polls outbox → publishes to broker
|
|
99
|
+
|
|
100
|
+
- id: eda007
|
|
101
|
+
name: event_carried_state
|
|
102
|
+
category: pattern
|
|
103
|
+
description: Events carry all needed data (no callback queries)
|
|
104
|
+
text: event carried state transfer self-contained no callback query
|
|
105
|
+
example: |
|
|
106
|
+
// ✅ Self-contained event
|
|
107
|
+
{ type: "OrderCreated", data: { orderId, userId, userName, items, total } }
|
|
108
|
+
// ❌ Event requiring callback
|
|
109
|
+
{ type: "OrderCreated", data: { orderId } } // Consumer must query for details
|
|
110
|
+
|
|
111
|
+
- id: eda008
|
|
112
|
+
name: event_versioning
|
|
113
|
+
category: evolution
|
|
114
|
+
description: Event schema versioning strategies
|
|
115
|
+
text: event version schema evolution backward forward compatible
|
|
116
|
+
strategies:
|
|
117
|
+
- "v1 → v2: Add optional fields (backward compatible)"
|
|
118
|
+
- "Upcasting: Transform old events to new format on read"
|
|
119
|
+
- "Event version field: { version: 2, type: 'OrderCreated', ... }"
|
|
120
|
+
- "Schema registry: Central store for event schemas"
|
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
# Production Patterns - HSA Event-Driven Skill
|
|
2
|
+
# Updated: 2026-02-12
|
|
3
|
+
|
|
4
|
+
metadata:
|
|
5
|
+
skill: event-driven
|
|
6
|
+
domain: production
|
|
7
|
+
version: "1.0.0"
|
|
8
|
+
updated: "2026-02-12"
|
|
9
|
+
patterns_count: 8
|
|
10
|
+
|
|
11
|
+
patterns:
|
|
12
|
+
- id: prod001
|
|
13
|
+
name: dead_letter_queue
|
|
14
|
+
category: production
|
|
15
|
+
description: DLQ for failed messages after max retries
|
|
16
|
+
text: dead letter queue DLQ failed message poison retry max
|
|
17
|
+
example: |
|
|
18
|
+
async function consume(msg) {
|
|
19
|
+
try {
|
|
20
|
+
await process(msg);
|
|
21
|
+
await msg.ack();
|
|
22
|
+
} catch (err) {
|
|
23
|
+
if (msg.retryCount >= MAX_RETRIES) {
|
|
24
|
+
await dlq.publish(msg); // Move to DLQ
|
|
25
|
+
await msg.ack(); // Remove from main queue
|
|
26
|
+
logger.error("Message moved to DLQ", { msgId: msg.id, error: err });
|
|
27
|
+
} else {
|
|
28
|
+
await msg.nack({ requeue: true, delay: backoff(msg.retryCount) });
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
- id: prod002
|
|
34
|
+
name: idempotent_consumer
|
|
35
|
+
category: production
|
|
36
|
+
description: Prevent duplicate message processing
|
|
37
|
+
text: idempotent consumer deduplication event id unique processing
|
|
38
|
+
example: |
|
|
39
|
+
async function handleEvent(event) {
|
|
40
|
+
// Check if already processed (atomic operation)
|
|
41
|
+
const isNew = await redis.set(`event:${event.id}`, "1", "NX", "EX", 86400);
|
|
42
|
+
if (!isNew) return; // Already processed, skip
|
|
43
|
+
await processEvent(event);
|
|
44
|
+
}
|
|
45
|
+
severity: CRITICAL
|
|
46
|
+
|
|
47
|
+
- id: prod003
|
|
48
|
+
name: schema_evolution
|
|
49
|
+
category: production
|
|
50
|
+
description: Backward-compatible schema changes
|
|
51
|
+
text: schema evolution backward compatible forward add field version
|
|
52
|
+
rules:
|
|
53
|
+
safe: ["Add optional fields", "Add new event types", "Deprecate fields"]
|
|
54
|
+
unsafe: ["Remove fields", "Rename fields", "Change field types"]
|
|
55
|
+
example: |
|
|
56
|
+
// Schema registry (Confluent)
|
|
57
|
+
const registry = new SchemaRegistry({ host: "http://localhost:8081" });
|
|
58
|
+
const schema = await registry.getLatestSchema("order-value");
|
|
59
|
+
|
|
60
|
+
- id: prod004
|
|
61
|
+
name: consumer_lag_monitoring
|
|
62
|
+
category: monitoring
|
|
63
|
+
description: Monitor consumer lag to detect processing delays
|
|
64
|
+
text: consumer lag monitoring delay backlog alert threshold
|
|
65
|
+
metrics:
|
|
66
|
+
- "consumer_lag: messages behind (Kafka: per partition)"
|
|
67
|
+
- "processing_rate: messages/second"
|
|
68
|
+
- "error_rate: failed messages/second"
|
|
69
|
+
- "dlq_depth: messages in DLQ"
|
|
70
|
+
alert_thresholds:
|
|
71
|
+
warning: "lag > 1000 messages"
|
|
72
|
+
critical: "lag > 10000 messages or growing"
|
|
73
|
+
|
|
74
|
+
- id: prod005
|
|
75
|
+
name: backpressure
|
|
76
|
+
category: production
|
|
77
|
+
description: Handle backpressure when consumers can't keep up
|
|
78
|
+
text: backpressure slow consumer rate limiting buffer overflow
|
|
79
|
+
strategies:
|
|
80
|
+
- "Consumer-side rate limiting (prefetch count)"
|
|
81
|
+
- "Buffer with bounded queue"
|
|
82
|
+
- "Auto-scale consumers based on lag"
|
|
83
|
+
- "Circuit breaker for downstream services"
|
|
84
|
+
|
|
85
|
+
- id: prod006
|
|
86
|
+
name: ordered_processing
|
|
87
|
+
category: production
|
|
88
|
+
description: Maintain message ordering guarantees
|
|
89
|
+
text: ordered processing sequence partition key FIFO guarantee
|
|
90
|
+
strategies:
|
|
91
|
+
kafka: "Same partition key → same partition → ordered"
|
|
92
|
+
rabbitmq: "Single consumer per queue → ordered"
|
|
93
|
+
nats: "Deliver policy: all, subject-based ordering"
|
|
94
|
+
|
|
95
|
+
- id: prod007
|
|
96
|
+
name: retry_strategy
|
|
97
|
+
category: production
|
|
98
|
+
description: Exponential backoff retry with jitter
|
|
99
|
+
text: retry strategy exponential backoff jitter delay
|
|
100
|
+
example: |
|
|
101
|
+
function backoff(attempt) {
|
|
102
|
+
const base = 1000; // 1 second
|
|
103
|
+
const max = 60000; // 60 seconds
|
|
104
|
+
const delay = Math.min(base * Math.pow(2, attempt), max);
|
|
105
|
+
const jitter = delay * Math.random() * 0.3; // 30% jitter
|
|
106
|
+
return delay + jitter;
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
- id: prod008
|
|
110
|
+
name: graceful_shutdown
|
|
111
|
+
category: production
|
|
112
|
+
description: Graceful consumer shutdown without message loss
|
|
113
|
+
text: graceful shutdown drain stop process signal SIGTERM
|
|
114
|
+
example: |
|
|
115
|
+
process.on("SIGTERM", async () => {
|
|
116
|
+
logger.info("Shutting down consumer...");
|
|
117
|
+
await consumer.stop(); // Stop fetching new messages
|
|
118
|
+
await consumer.disconnect(); // Wait for in-flight to complete
|
|
119
|
+
process.exit(0);
|
|
120
|
+
});
|