code-ai-installer 1.2.0 → 1.3.0
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/.agents/a11y_baseline/SKILL.md +260 -41
- package/.agents/a11y_baseline/agents/claude.json +2 -2
- package/.agents/a11y_baseline/agents/copilot.json +2 -2
- package/.agents/a11y_baseline/agents/gemini.json +2 -2
- package/.agents/a11y_baseline/agents/openai.yaml +1 -1
- package/.agents/a11y_baseline/agents/qwen.json +2 -2
- package/.agents/a11y_baseline/agents/skill.yaml +2 -2
- package/.agents/adr_log/SKILL.md +369 -69
- package/.agents/adr_log/agents/claude.json +2 -2
- package/.agents/adr_log/agents/copilot.json +2 -2
- package/.agents/adr_log/agents/gemini.json +2 -2
- package/.agents/adr_log/agents/openai.yaml +1 -1
- package/.agents/adr_log/agents/qwen.json +2 -2
- package/.agents/adr_log/agents/skill.yaml +2 -2
- package/.agents/api_contract_compliance_review/SKILL.md +224 -18
- package/.agents/api_contract_compliance_review/agents/claude.json +2 -2
- package/.agents/api_contract_compliance_review/agents/copilot.json +2 -2
- package/.agents/api_contract_compliance_review/agents/gemini.json +2 -2
- package/.agents/api_contract_compliance_review/agents/openai.yaml +1 -1
- package/.agents/api_contract_compliance_review/agents/qwen.json +2 -2
- package/.agents/api_contract_compliance_review/agents/skill.yaml +2 -2
- package/.agents/api_contracts/SKILL.md +329 -42
- package/.agents/api_contracts/agents/claude.json +2 -2
- package/.agents/api_contracts/agents/copilot.json +2 -2
- package/.agents/api_contracts/agents/gemini.json +2 -2
- package/.agents/api_contracts/agents/openai.yaml +1 -1
- package/.agents/api_contracts/agents/qwen.json +2 -2
- package/.agents/api_contracts/agents/skill.yaml +2 -2
- package/.agents/architecture_compliance_review/SKILL.md +213 -17
- package/.agents/architecture_compliance_review/agents/claude.json +2 -2
- package/.agents/architecture_compliance_review/agents/copilot.json +2 -2
- package/.agents/architecture_compliance_review/agents/gemini.json +2 -2
- package/.agents/architecture_compliance_review/agents/openai.yaml +1 -1
- package/.agents/architecture_compliance_review/agents/qwen.json +2 -2
- package/.agents/architecture_compliance_review/agents/skill.yaml +2 -2
- package/.agents/architecture_doc/SKILL.md +384 -92
- package/.agents/architecture_doc/agents/claude.json +2 -2
- package/.agents/architecture_doc/agents/copilot.json +2 -2
- package/.agents/architecture_doc/agents/gemini.json +2 -2
- package/.agents/architecture_doc/agents/openai.yaml +1 -1
- package/.agents/architecture_doc/agents/qwen.json +2 -2
- package/.agents/architecture_doc/agents/skill.yaml +2 -2
- package/.agents/board/SKILL.md +232 -43
- package/.agents/board/agents/claude.json +2 -2
- package/.agents/board/agents/copilot.json +2 -2
- package/.agents/board/agents/gemini.json +2 -2
- package/.agents/board/agents/openai.yaml +1 -1
- package/.agents/board/agents/qwen.json +2 -2
- package/.agents/board/agents/skill.yaml +2 -2
- package/.agents/cloud_infrastructure_security/SKILL.md +277 -68
- package/.agents/cloud_infrastructure_security/agents/claude.json +2 -2
- package/.agents/cloud_infrastructure_security/agents/copilot.json +2 -2
- package/.agents/cloud_infrastructure_security/agents/gemini.json +2 -2
- package/.agents/cloud_infrastructure_security/agents/openai.yaml +1 -1
- package/.agents/cloud_infrastructure_security/agents/qwen.json +2 -2
- package/.agents/cloud_infrastructure_security/agents/skill.yaml +2 -2
- package/.agents/code_review_checklist/SKILL.md +200 -47
- package/.agents/code_review_checklist/agents/claude.json +2 -2
- package/.agents/code_review_checklist/agents/copilot.json +2 -2
- package/.agents/code_review_checklist/agents/gemini.json +2 -2
- package/.agents/code_review_checklist/agents/openai.yaml +1 -1
- package/.agents/code_review_checklist/agents/qwen.json +2 -2
- package/.agents/code_review_checklist/agents/skill.yaml +2 -2
- package/.agents/current_state_analysis/SKILL.md +225 -44
- package/.agents/current_state_analysis/agents/claude.json +2 -2
- package/.agents/current_state_analysis/agents/copilot.json +2 -2
- package/.agents/current_state_analysis/agents/gemini.json +2 -2
- package/.agents/current_state_analysis/agents/openai.yaml +1 -1
- package/.agents/current_state_analysis/agents/qwen.json +2 -2
- package/.agents/current_state_analysis/agents/skill.yaml +2 -2
- package/.agents/data_model/SKILL.md +285 -40
- package/.agents/data_model/agents/claude.json +2 -2
- package/.agents/data_model/agents/copilot.json +2 -2
- package/.agents/data_model/agents/gemini.json +2 -2
- package/.agents/data_model/agents/openai.yaml +1 -1
- package/.agents/data_model/agents/qwen.json +2 -2
- package/.agents/data_model/agents/skill.yaml +2 -2
- package/.agents/dependency_supply_chain_review/SKILL.md +300 -20
- package/.agents/dependency_supply_chain_review/agents/claude.json +2 -2
- package/.agents/dependency_supply_chain_review/agents/copilot.json +2 -2
- package/.agents/dependency_supply_chain_review/agents/gemini.json +2 -2
- package/.agents/dependency_supply_chain_review/agents/openai.yaml +1 -1
- package/.agents/dependency_supply_chain_review/agents/qwen.json +2 -2
- package/.agents/dependency_supply_chain_review/agents/skill.yaml +2 -2
- package/.agents/deployment_ci_plan/SKILL.md +410 -51
- package/.agents/deployment_ci_plan/agents/claude.json +3 -2
- package/.agents/deployment_ci_plan/agents/copilot.json +3 -2
- package/.agents/deployment_ci_plan/agents/gemini.json +3 -2
- package/.agents/deployment_ci_plan/agents/openai.yaml +1 -1
- package/.agents/deployment_ci_plan/agents/qwen.json +3 -2
- package/.agents/deployment_ci_plan/agents/skill.yaml +2 -1
- package/.agents/design_intake/SKILL.md +225 -71
- package/.agents/design_intake/agents/claude.json +2 -2
- package/.agents/design_intake/agents/copilot.json +2 -2
- package/.agents/design_intake/agents/gemini.json +2 -2
- package/.agents/design_intake/agents/openai.yaml +1 -1
- package/.agents/design_intake/agents/qwen.json +2 -2
- package/.agents/design_intake/agents/skill.yaml +2 -2
- package/.agents/design_parity_review/SKILL.md +216 -73
- package/.agents/design_systems/SKILL.md +432 -15
- package/.agents/design_systems/agents/claude.json +2 -2
- package/.agents/design_systems/agents/copilot.json +2 -2
- package/.agents/design_systems/agents/gemini.json +2 -2
- package/.agents/design_systems/agents/openai.yaml +1 -1
- package/.agents/design_systems/agents/qwen.json +2 -2
- package/.agents/design_systems/agents/skill.yaml +2 -2
- package/.agents/dev_reference_snippets/SKILL.md +305 -117
- package/.agents/dev_reference_snippets/agents/claude.json +2 -2
- package/.agents/dev_reference_snippets/agents/copilot.json +2 -2
- package/.agents/dev_reference_snippets/agents/gemini.json +2 -2
- package/.agents/dev_reference_snippets/agents/openai.yaml +1 -1
- package/.agents/dev_reference_snippets/agents/qwen.json +2 -2
- package/.agents/dev_reference_snippets/agents/skill.yaml +2 -2
- package/.agents/docker_kubernetes_architecture/SKILL.md +480 -145
- package/.agents/docker_kubernetes_architecture/agents/claude.json +2 -2
- package/.agents/docker_kubernetes_architecture/agents/copilot.json +2 -2
- package/.agents/docker_kubernetes_architecture/agents/gemini.json +2 -2
- package/.agents/docker_kubernetes_architecture/agents/openai.yaml +1 -1
- package/.agents/docker_kubernetes_architecture/agents/qwen.json +2 -2
- package/.agents/docker_kubernetes_architecture/agents/skill.yaml +2 -2
- package/.agents/es2025_beast_practices/SKILL.md +433 -8
- package/.agents/es2025_beast_practices/agents/claude.json +2 -2
- package/.agents/es2025_beast_practices/agents/copilot.json +2 -2
- package/.agents/es2025_beast_practices/agents/gemini.json +2 -2
- package/.agents/es2025_beast_practices/agents/openai.yaml +1 -1
- package/.agents/es2025_beast_practices/agents/qwen.json +2 -2
- package/.agents/es2025_beast_practices/agents/skill.yaml +2 -2
- package/.agents/gates/SKILL.md +134 -35
- package/.agents/gates/agents/claude.json +2 -2
- package/.agents/gates/agents/copilot.json +2 -2
- package/.agents/gates/agents/gemini.json +2 -2
- package/.agents/gates/agents/openai.yaml +1 -1
- package/.agents/gates/agents/qwen.json +2 -2
- package/.agents/gates/agents/skill.yaml +2 -2
- package/.agents/go_beast_practices/SKILL.md +557 -23
- package/.agents/go_beast_practices/agents/claude.json +2 -2
- package/.agents/go_beast_practices/agents/copilot.json +2 -2
- package/.agents/go_beast_practices/agents/gemini.json +2 -2
- package/.agents/go_beast_practices/agents/openai.yaml +1 -1
- package/.agents/go_beast_practices/agents/qwen.json +2 -2
- package/.agents/go_beast_practices/agents/skill.yaml +2 -2
- package/.agents/google_stitch_skill/SKILL.md +1 -1
- package/.agents/google_stitch_skill/agents/claude.json +5 -6
- package/.agents/google_stitch_skill/agents/copilot.json +5 -6
- package/.agents/google_stitch_skill/agents/gemini.json +5 -6
- package/.agents/google_stitch_skill/agents/openai.yaml +1 -1
- package/.agents/google_stitch_skill/agents/qwen.json +5 -6
- package/.agents/google_stitch_skill/agents/skill.yaml +4 -5
- package/.agents/handoff/SKILL.md +212 -52
- package/.agents/handoff/agents/claude.json +2 -2
- package/.agents/handoff/agents/copilot.json +2 -2
- package/.agents/handoff/agents/gemini.json +2 -2
- package/.agents/handoff/agents/openai.yaml +1 -1
- package/.agents/handoff/agents/qwen.json +2 -2
- package/.agents/handoff/agents/skill.yaml +2 -2
- package/.agents/k8s_manifests_conventions/SKILL.md +548 -176
- package/.agents/k8s_manifests_conventions/agents/claude.json +2 -2
- package/.agents/k8s_manifests_conventions/agents/copilot.json +2 -2
- package/.agents/k8s_manifests_conventions/agents/gemini.json +2 -2
- package/.agents/k8s_manifests_conventions/agents/openai.yaml +1 -1
- package/.agents/k8s_manifests_conventions/agents/qwen.json +2 -2
- package/.agents/k8s_manifests_conventions/agents/skill.yaml +2 -2
- package/.agents/memory/SKILL.md +219 -29
- package/.agents/memory/agents/claude.json +2 -2
- package/.agents/memory/agents/copilot.json +2 -2
- package/.agents/memory/agents/gemini.json +2 -2
- package/.agents/memory/agents/openai.yaml +1 -1
- package/.agents/memory/agents/qwen.json +2 -2
- package/.agents/memory/agents/skill.yaml +2 -2
- package/.agents/mongodb_mongoose_best_practices/SKILL.md +724 -236
- package/.agents/mongodb_mongoose_best_practices/agents/claude.json +2 -2
- package/.agents/mongodb_mongoose_best_practices/agents/copilot.json +2 -2
- package/.agents/mongodb_mongoose_best_practices/agents/gemini.json +2 -2
- package/.agents/mongodb_mongoose_best_practices/agents/openai.yaml +1 -1
- package/.agents/mongodb_mongoose_best_practices/agents/qwen.json +2 -2
- package/.agents/mongodb_mongoose_best_practices/agents/skill.yaml +2 -2
- package/.agents/n8n_pinecone_qdrant_supabase/SKILL.md +671 -59
- package/.agents/n8n_pinecone_qdrant_supabase/agents/claude.json +2 -2
- package/.agents/n8n_pinecone_qdrant_supabase/agents/copilot.json +2 -2
- package/.agents/n8n_pinecone_qdrant_supabase/agents/gemini.json +2 -2
- package/.agents/n8n_pinecone_qdrant_supabase/agents/openai.yaml +1 -1
- package/.agents/n8n_pinecone_qdrant_supabase/agents/qwen.json +2 -2
- package/.agents/n8n_pinecone_qdrant_supabase/agents/skill.yaml +2 -2
- package/.agents/node_express_beast_practices/SKILL.md +729 -30
- package/.agents/node_express_beast_practices/agents/claude.json +1 -1
- package/.agents/node_express_beast_practices/agents/copilot.json +1 -1
- package/.agents/node_express_beast_practices/agents/gemini.json +1 -1
- package/.agents/node_express_beast_practices/agents/openai.yaml +1 -1
- package/.agents/node_express_beast_practices/agents/qwen.json +1 -1
- package/.agents/node_express_beast_practices/agents/skill.yaml +1 -1
- package/.agents/observability_logging/SKILL.md +499 -16
- package/.agents/observability_logging/agents/claude.json +2 -2
- package/.agents/observability_logging/agents/copilot.json +2 -2
- package/.agents/observability_logging/agents/gemini.json +2 -2
- package/.agents/observability_logging/agents/openai.yaml +1 -1
- package/.agents/observability_logging/agents/qwen.json +2 -2
- package/.agents/observability_logging/agents/skill.yaml +2 -2
- package/.agents/observability_plan/SKILL.md +279 -38
- package/.agents/observability_plan/agents/claude.json +3 -2
- package/.agents/observability_plan/agents/copilot.json +3 -2
- package/.agents/observability_plan/agents/gemini.json +3 -2
- package/.agents/observability_plan/agents/openai.yaml +1 -1
- package/.agents/observability_plan/agents/qwen.json +3 -2
- package/.agents/observability_plan/agents/skill.yaml +2 -1
- package/.agents/observability_review/SKILL.md +254 -20
- package/.agents/observability_review/agents/claude.json +2 -2
- package/.agents/observability_review/agents/copilot.json +2 -2
- package/.agents/observability_review/agents/gemini.json +2 -2
- package/.agents/observability_review/agents/openai.yaml +1 -1
- package/.agents/observability_review/agents/qwen.json +2 -2
- package/.agents/observability_review/agents/skill.yaml +2 -2
- package/.agents/performance_review_baseline/SKILL.md +239 -17
- package/.agents/performance_review_baseline/agents/claude.json +2 -2
- package/.agents/performance_review_baseline/agents/copilot.json +2 -2
- package/.agents/performance_review_baseline/agents/gemini.json +2 -2
- package/.agents/performance_review_baseline/agents/openai.yaml +1 -1
- package/.agents/performance_review_baseline/agents/qwen.json +2 -2
- package/.agents/performance_review_baseline/agents/skill.yaml +2 -2
- package/.agents/pm_backlog/SKILL.md +250 -32
- package/.agents/pm_backlog/agents/claude.json +2 -2
- package/.agents/pm_backlog/agents/copilot.json +2 -2
- package/.agents/pm_backlog/agents/gemini.json +2 -2
- package/.agents/pm_backlog/agents/openai.yaml +1 -1
- package/.agents/pm_backlog/agents/qwen.json +2 -2
- package/.agents/pm_backlog/agents/skill.yaml +2 -2
- package/.agents/pm_interview/SKILL.md +197 -56
- package/.agents/pm_interview/agents/claude.json +2 -2
- package/.agents/pm_interview/agents/copilot.json +2 -2
- package/.agents/pm_interview/agents/gemini.json +2 -2
- package/.agents/pm_interview/agents/openai.yaml +1 -1
- package/.agents/pm_interview/agents/qwen.json +2 -2
- package/.agents/pm_interview/agents/skill.yaml +2 -2
- package/.agents/pm_prd/SKILL.md +215 -56
- package/.agents/pm_prd/agents/claude.json +2 -2
- package/.agents/pm_prd/agents/copilot.json +2 -2
- package/.agents/pm_prd/agents/gemini.json +2 -2
- package/.agents/pm_prd/agents/openai.yaml +1 -1
- package/.agents/pm_prd/agents/qwen.json +2 -2
- package/.agents/pm_prd/agents/skill.yaml +2 -2
- package/.agents/qa_api_contract_tests/SKILL.md +207 -16
- package/.agents/qa_api_contract_tests/agents/claude.json +2 -2
- package/.agents/qa_api_contract_tests/agents/copilot.json +2 -2
- package/.agents/qa_api_contract_tests/agents/gemini.json +2 -2
- package/.agents/qa_api_contract_tests/agents/openai.yaml +1 -1
- package/.agents/qa_api_contract_tests/agents/qwen.json +2 -2
- package/.agents/qa_api_contract_tests/agents/skill.yaml +2 -2
- package/.agents/qa_manual_run/SKILL.md +209 -16
- package/.agents/qa_manual_run/agents/claude.json +2 -2
- package/.agents/qa_manual_run/agents/copilot.json +2 -2
- package/.agents/qa_manual_run/agents/gemini.json +2 -2
- package/.agents/qa_manual_run/agents/openai.yaml +1 -1
- package/.agents/qa_manual_run/agents/qwen.json +2 -2
- package/.agents/qa_manual_run/agents/skill.yaml +2 -2
- package/.agents/qa_regression_baseline/SKILL.md +217 -0
- package/.agents/qa_regression_baseline/agents/claude.json +19 -0
- package/.agents/qa_regression_baseline/agents/copilot.json +19 -0
- package/.agents/qa_regression_baseline/agents/gemini.json +19 -0
- package/.agents/qa_regression_baseline/agents/openai.yaml +8 -0
- package/.agents/qa_regression_baseline/agents/qwen.json +19 -0
- package/.agents/qa_regression_baseline/agents/skill.yaml +23 -0
- package/.agents/qa_security_smoke_tests/SKILL.md +188 -14
- package/.agents/qa_security_smoke_tests/agents/claude.json +2 -2
- package/.agents/qa_security_smoke_tests/agents/copilot.json +2 -2
- package/.agents/qa_security_smoke_tests/agents/gemini.json +2 -2
- package/.agents/qa_security_smoke_tests/agents/openai.yaml +1 -1
- package/.agents/qa_security_smoke_tests/agents/qwen.json +2 -2
- package/.agents/qa_security_smoke_tests/agents/skill.yaml +2 -2
- package/.agents/qa_test_plan/SKILL.md +203 -20
- package/.agents/qa_test_plan/agents/claude.json +2 -2
- package/.agents/qa_test_plan/agents/copilot.json +2 -2
- package/.agents/qa_test_plan/agents/gemini.json +2 -2
- package/.agents/qa_test_plan/agents/openai.yaml +1 -1
- package/.agents/qa_test_plan/agents/qwen.json +2 -2
- package/.agents/qa_test_plan/agents/skill.yaml +2 -2
- package/.agents/qa_ui_a11y_smoke/SKILL.md +230 -12
- package/.agents/qa_ui_a11y_smoke/agents/claude.json +2 -2
- package/.agents/qa_ui_a11y_smoke/agents/copilot.json +2 -2
- package/.agents/qa_ui_a11y_smoke/agents/gemini.json +2 -2
- package/.agents/qa_ui_a11y_smoke/agents/openai.yaml +1 -1
- package/.agents/qa_ui_a11y_smoke/agents/qwen.json +2 -2
- package/.agents/qa_ui_a11y_smoke/agents/skill.yaml +2 -2
- package/.agents/react_15_3_wix_iframe/SKILL.md +411 -12
- package/.agents/react_15_3_wix_iframe/agents/claude.json +2 -2
- package/.agents/react_15_3_wix_iframe/agents/copilot.json +2 -2
- package/.agents/react_15_3_wix_iframe/agents/gemini.json +2 -2
- package/.agents/react_15_3_wix_iframe/agents/openai.yaml +1 -1
- package/.agents/react_15_3_wix_iframe/agents/qwen.json +2 -2
- package/.agents/react_15_3_wix_iframe/agents/skill.yaml +2 -2
- package/.agents/react_beast_practices/SKILL.md +285 -18
- package/.agents/react_beast_practices/agents/claude.json +2 -2
- package/.agents/react_beast_practices/agents/copilot.json +2 -2
- package/.agents/react_beast_practices/agents/gemini.json +2 -2
- package/.agents/react_beast_practices/agents/openai.yaml +1 -1
- package/.agents/react_beast_practices/agents/qwen.json +2 -2
- package/.agents/react_beast_practices/agents/skill.yaml +2 -2
- package/.agents/release_gate/SKILL.md +213 -77
- package/.agents/release_gate/agents/claude.json +2 -2
- package/.agents/release_gate/agents/copilot.json +2 -2
- package/.agents/release_gate/agents/gemini.json +2 -2
- package/.agents/release_gate/agents/openai.yaml +1 -1
- package/.agents/release_gate/agents/qwen.json +2 -2
- package/.agents/release_gate/agents/skill.yaml +2 -2
- package/.agents/release_gate_checklist_template/SKILL.md +182 -68
- package/.agents/review_reference_snippets/SKILL.md +116 -0
- package/.agents/security_baseline_dev/SKILL.md +496 -16
- package/.agents/security_baseline_dev/agents/claude.json +2 -2
- package/.agents/security_baseline_dev/agents/copilot.json +2 -2
- package/.agents/security_baseline_dev/agents/gemini.json +2 -2
- package/.agents/security_baseline_dev/agents/openai.yaml +1 -1
- package/.agents/security_baseline_dev/agents/qwen.json +2 -2
- package/.agents/security_baseline_dev/agents/skill.yaml +2 -2
- package/.agents/security_review/SKILL.md +277 -55
- package/.agents/security_review_baseline/SKILL.md +119 -25
- package/.agents/security_review_baseline/agents/claude.json +2 -2
- package/.agents/security_review_baseline/agents/copilot.json +2 -2
- package/.agents/security_review_baseline/agents/gemini.json +2 -2
- package/.agents/security_review_baseline/agents/openai.yaml +1 -1
- package/.agents/security_review_baseline/agents/qwen.json +2 -2
- package/.agents/security_review_baseline/agents/skill.yaml +2 -2
- package/.agents/state_rtk_beast_practices/SKILL.md +735 -15
- package/.agents/state_rtk_beast_practices/agents/claude.json +2 -2
- package/.agents/state_rtk_beast_practices/agents/copilot.json +2 -2
- package/.agents/state_rtk_beast_practices/agents/gemini.json +2 -2
- package/.agents/state_rtk_beast_practices/agents/openai.yaml +1 -1
- package/.agents/state_rtk_beast_practices/agents/qwen.json +2 -2
- package/.agents/state_rtk_beast_practices/agents/skill.yaml +2 -2
- package/.agents/state_zustand_beast_practices/SKILL.md +808 -11
- package/.agents/state_zustand_beast_practices/agents/claude.json +2 -2
- package/.agents/state_zustand_beast_practices/agents/copilot.json +2 -2
- package/.agents/state_zustand_beast_practices/agents/gemini.json +2 -2
- package/.agents/state_zustand_beast_practices/agents/openai.yaml +1 -1
- package/.agents/state_zustand_beast_practices/agents/qwen.json +2 -2
- package/.agents/state_zustand_beast_practices/agents/skill.yaml +2 -2
- package/.agents/styling_css_stack/SKILL.md +558 -12
- package/.agents/styling_css_stack/agents/claude.json +2 -2
- package/.agents/styling_css_stack/agents/copilot.json +2 -2
- package/.agents/styling_css_stack/agents/gemini.json +2 -2
- package/.agents/styling_css_stack/agents/openai.yaml +1 -1
- package/.agents/styling_css_stack/agents/qwen.json +2 -2
- package/.agents/styling_css_stack/agents/skill.yaml +2 -2
- package/.agents/system_design_checklist/SKILL.md +207 -48
- package/.agents/system_design_checklist/agents/claude.json +3 -2
- package/.agents/system_design_checklist/agents/copilot.json +3 -2
- package/.agents/system_design_checklist/agents/gemini.json +3 -2
- package/.agents/system_design_checklist/agents/openai.yaml +1 -1
- package/.agents/system_design_checklist/agents/qwen.json +3 -2
- package/.agents/system_design_checklist/agents/skill.yaml +2 -1
- package/.agents/tailwind_beast_practices/SKILL.md +512 -0
- package/.agents/tailwind_beast_practices/agents/claude.json +18 -0
- package/.agents/tailwind_beast_practices/agents/copilot.json +18 -0
- package/.agents/tailwind_beast_practices/agents/gemini.json +18 -0
- package/.agents/tailwind_beast_practices/agents/openai.yaml +8 -0
- package/.agents/tailwind_beast_practices/agents/qwen.json +18 -0
- package/.agents/tailwind_beast_practices/agents/skill.yaml +22 -0
- package/.agents/tanstack_beast_practices/SKILL.md +465 -11
- package/.agents/tanstack_beast_practices/agents/claude.json +2 -2
- package/.agents/tanstack_beast_practices/agents/copilot.json +2 -2
- package/.agents/tanstack_beast_practices/agents/gemini.json +2 -2
- package/.agents/tanstack_beast_practices/agents/openai.yaml +1 -1
- package/.agents/tanstack_beast_practices/agents/qwen.json +2 -2
- package/.agents/tanstack_beast_practices/agents/skill.yaml +2 -2
- package/.agents/tdd_workflow/SKILL.md +441 -22
- package/.agents/tdd_workflow/agents/claude.json +2 -2
- package/.agents/tdd_workflow/agents/copilot.json +2 -2
- package/.agents/tdd_workflow/agents/gemini.json +2 -2
- package/.agents/tdd_workflow/agents/openai.yaml +1 -1
- package/.agents/tdd_workflow/agents/qwen.json +2 -2
- package/.agents/tdd_workflow/agents/skill.yaml +2 -2
- package/.agents/testing_strategy_js/SKILL.md +636 -30
- package/.agents/testing_strategy_js/agents/claude.json +2 -2
- package/.agents/testing_strategy_js/agents/copilot.json +2 -2
- package/.agents/testing_strategy_js/agents/gemini.json +2 -2
- package/.agents/testing_strategy_js/agents/openai.yaml +1 -1
- package/.agents/testing_strategy_js/agents/qwen.json +2 -2
- package/.agents/testing_strategy_js/agents/skill.yaml +2 -2
- package/.agents/tests_quality_review/SKILL.md +279 -18
- package/.agents/tests_quality_review/agents/claude.json +2 -2
- package/.agents/tests_quality_review/agents/copilot.json +2 -2
- package/.agents/tests_quality_review/agents/gemini.json +2 -2
- package/.agents/tests_quality_review/agents/openai.yaml +1 -1
- package/.agents/tests_quality_review/agents/qwen.json +2 -2
- package/.agents/tests_quality_review/agents/skill.yaml +2 -2
- package/.agents/threat_model_baseline/SKILL.md +210 -57
- package/.agents/threat_model_baseline/agents/claude.json +2 -2
- package/.agents/threat_model_baseline/agents/copilot.json +2 -2
- package/.agents/threat_model_baseline/agents/gemini.json +2 -2
- package/.agents/threat_model_baseline/agents/openai.yaml +1 -1
- package/.agents/threat_model_baseline/agents/qwen.json +2 -2
- package/.agents/threat_model_baseline/agents/skill.yaml +2 -2
- package/.agents/tooling_bun_biome/SKILL.md +539 -17
- package/.agents/tooling_bun_biome/agents/claude.json +2 -2
- package/.agents/tooling_bun_biome/agents/copilot.json +2 -2
- package/.agents/tooling_bun_biome/agents/gemini.json +2 -2
- package/.agents/tooling_bun_biome/agents/openai.yaml +1 -1
- package/.agents/tooling_bun_biome/agents/qwen.json +2 -2
- package/.agents/tooling_bun_biome/agents/skill.yaml +2 -2
- package/.agents/typescript_beast_practices/SKILL.md +427 -8
- package/.agents/typescript_beast_practices/agents/claude.json +2 -2
- package/.agents/typescript_beast_practices/agents/copilot.json +2 -2
- package/.agents/typescript_beast_practices/agents/gemini.json +2 -2
- package/.agents/typescript_beast_practices/agents/openai.yaml +1 -1
- package/.agents/typescript_beast_practices/agents/qwen.json +2 -2
- package/.agents/typescript_beast_practices/agents/skill.yaml +2 -2
- package/.agents/ui_a11y_smoke_review/SKILL.md +195 -15
- package/.agents/ui_a11y_smoke_review/agents/claude.json +2 -2
- package/.agents/ui_a11y_smoke_review/agents/copilot.json +2 -2
- package/.agents/ui_a11y_smoke_review/agents/gemini.json +2 -2
- package/.agents/ui_a11y_smoke_review/agents/openai.yaml +1 -1
- package/.agents/ui_a11y_smoke_review/agents/qwen.json +2 -2
- package/.agents/ui_a11y_smoke_review/agents/skill.yaml +2 -2
- package/.agents/ui_inventory/SKILL.md +277 -50
- package/.agents/ui_inventory/agents/claude.json +2 -2
- package/.agents/ui_inventory/agents/copilot.json +2 -2
- package/.agents/ui_inventory/agents/gemini.json +2 -2
- package/.agents/ui_inventory/agents/openai.yaml +1 -1
- package/.agents/ui_inventory/agents/qwen.json +2 -2
- package/.agents/ui_inventory/agents/skill.yaml +2 -2
- package/.agents/ux_discovery/SKILL.md +214 -48
- package/.agents/ux_discovery/agents/claude.json +2 -2
- package/.agents/ux_discovery/agents/copilot.json +2 -2
- package/.agents/ux_discovery/agents/gemini.json +2 -2
- package/.agents/ux_discovery/agents/openai.yaml +1 -1
- package/.agents/ux_discovery/agents/qwen.json +2 -2
- package/.agents/ux_discovery/agents/skill.yaml +2 -2
- package/.agents/ux_spec/SKILL.md +282 -56
- package/.agents/ux_spec/agents/claude.json +2 -2
- package/.agents/ux_spec/agents/copilot.json +2 -2
- package/.agents/ux_spec/agents/gemini.json +2 -2
- package/.agents/ux_spec/agents/openai.yaml +1 -1
- package/.agents/ux_spec/agents/qwen.json +2 -2
- package/.agents/ux_spec/agents/skill.yaml +2 -2
- package/.agents/wix_iframe_sdk/SKILL.md +277 -48
- package/.agents/wix_iframe_sdk/agents/claude.json +2 -2
- package/.agents/wix_iframe_sdk/agents/copilot.json +2 -2
- package/.agents/wix_iframe_sdk/agents/gemini.json +2 -2
- package/.agents/wix_iframe_sdk/agents/openai.yaml +1 -1
- package/.agents/wix_iframe_sdk/agents/qwen.json +2 -2
- package/.agents/wix_iframe_sdk/agents/skill.yaml +2 -2
- package/.agents/wix_self_hosted_embedded_script/SKILL.md +605 -82
- package/.agents/wix_self_hosted_embedded_script/agents/claude.json +2 -2
- package/.agents/wix_self_hosted_embedded_script/agents/copilot.json +2 -2
- package/.agents/wix_self_hosted_embedded_script/agents/gemini.json +2 -2
- package/.agents/wix_self_hosted_embedded_script/agents/openai.yaml +1 -1
- package/.agents/wix_self_hosted_embedded_script/agents/qwen.json +2 -2
- package/.agents/wix_self_hosted_embedded_script/agents/skill.yaml +2 -2
- package/AGENTS.yaml +2 -0
- package/agents/conductor.md +50 -0
- package/agents/devops.md +31 -1
- package/agents/orchestrator.claude.json +2 -0
- package/agents/orchestrator.copilot.json +2 -0
- package/agents/orchestrator.gemini.json +2 -0
- package/agents/orchestrator.openai.yaml +2 -0
- package/agents/orchestrator.qwen.json +2 -0
- package/agents/reviewer.md +0 -1
- package/agents/senior_full_stack.md +1 -0
- package/agents/tester.md +1 -1
- package/agents/ux_ui_designer.md +2 -2
- package/locales/en/.agents/a11y_baseline/SKILL.md +260 -41
- package/locales/en/.agents/a11y_baseline/agents/claude.json +3 -2
- package/locales/en/.agents/a11y_baseline/agents/copilot.json +3 -2
- package/locales/en/.agents/a11y_baseline/agents/gemini.json +3 -2
- package/locales/en/.agents/a11y_baseline/agents/openai.yaml +1 -1
- package/locales/en/.agents/a11y_baseline/agents/qwen.json +3 -2
- package/locales/en/.agents/a11y_baseline/agents/skill.yaml +2 -1
- package/locales/en/.agents/adr_log/SKILL.md +330 -30
- package/locales/en/.agents/adr_log/agents/claude.json +5 -5
- package/locales/en/.agents/adr_log/agents/copilot.json +5 -5
- package/locales/en/.agents/adr_log/agents/gemini.json +5 -5
- package/locales/en/.agents/adr_log/agents/openai.yaml +3 -3
- package/locales/en/.agents/adr_log/agents/qwen.json +5 -5
- package/locales/en/.agents/adr_log/agents/skill.yaml +5 -5
- package/locales/en/.agents/api_contract_compliance_review/SKILL.md +218 -12
- package/locales/en/.agents/api_contract_compliance_review/agents/claude.json +2 -2
- package/locales/en/.agents/api_contract_compliance_review/agents/copilot.json +2 -2
- package/locales/en/.agents/api_contract_compliance_review/agents/gemini.json +2 -2
- package/locales/en/.agents/api_contract_compliance_review/agents/openai.yaml +1 -1
- package/locales/en/.agents/api_contract_compliance_review/agents/qwen.json +2 -2
- package/locales/en/.agents/api_contract_compliance_review/agents/skill.yaml +2 -2
- package/locales/en/.agents/api_contracts/SKILL.md +323 -36
- package/locales/en/.agents/api_contracts/agents/claude.json +2 -2
- package/locales/en/.agents/api_contracts/agents/copilot.json +2 -2
- package/locales/en/.agents/api_contracts/agents/gemini.json +2 -2
- package/locales/en/.agents/api_contracts/agents/openai.yaml +1 -1
- package/locales/en/.agents/api_contracts/agents/qwen.json +2 -2
- package/locales/en/.agents/api_contracts/agents/skill.yaml +2 -2
- package/locales/en/.agents/architecture_compliance_review/SKILL.md +206 -10
- package/locales/en/.agents/architecture_compliance_review/agents/claude.json +5 -4
- package/locales/en/.agents/architecture_compliance_review/agents/copilot.json +5 -4
- package/locales/en/.agents/architecture_compliance_review/agents/gemini.json +5 -4
- package/locales/en/.agents/architecture_compliance_review/agents/openai.yaml +3 -3
- package/locales/en/.agents/architecture_compliance_review/agents/qwen.json +5 -4
- package/locales/en/.agents/architecture_compliance_review/agents/skill.yaml +5 -4
- package/locales/en/.agents/architecture_doc/SKILL.md +374 -82
- package/locales/en/.agents/architecture_doc/agents/claude.json +2 -2
- package/locales/en/.agents/architecture_doc/agents/copilot.json +2 -2
- package/locales/en/.agents/architecture_doc/agents/gemini.json +2 -2
- package/locales/en/.agents/architecture_doc/agents/openai.yaml +1 -1
- package/locales/en/.agents/architecture_doc/agents/qwen.json +2 -2
- package/locales/en/.agents/architecture_doc/agents/skill.yaml +2 -2
- package/locales/en/.agents/board/SKILL.md +232 -43
- package/locales/en/.agents/board/agents/claude.json +2 -2
- package/locales/en/.agents/board/agents/copilot.json +2 -2
- package/locales/en/.agents/board/agents/gemini.json +2 -2
- package/locales/en/.agents/board/agents/openai.yaml +1 -1
- package/locales/en/.agents/board/agents/qwen.json +2 -2
- package/locales/en/.agents/board/agents/skill.yaml +2 -2
- package/locales/en/.agents/cloud_infrastructure_security/SKILL.md +277 -68
- package/locales/en/.agents/cloud_infrastructure_security/agents/claude.json +5 -4
- package/locales/en/.agents/cloud_infrastructure_security/agents/copilot.json +5 -4
- package/locales/en/.agents/cloud_infrastructure_security/agents/gemini.json +5 -4
- package/locales/en/.agents/cloud_infrastructure_security/agents/openai.yaml +3 -3
- package/locales/en/.agents/cloud_infrastructure_security/agents/qwen.json +5 -4
- package/locales/en/.agents/cloud_infrastructure_security/agents/skill.yaml +5 -4
- package/locales/en/.agents/code_review_checklist/SKILL.md +194 -41
- package/locales/en/.agents/code_review_checklist/agents/claude.json +2 -2
- package/locales/en/.agents/code_review_checklist/agents/copilot.json +2 -2
- package/locales/en/.agents/code_review_checklist/agents/gemini.json +2 -2
- package/locales/en/.agents/code_review_checklist/agents/openai.yaml +1 -1
- package/locales/en/.agents/code_review_checklist/agents/qwen.json +2 -2
- package/locales/en/.agents/code_review_checklist/agents/skill.yaml +2 -2
- package/locales/en/.agents/current_state_analysis/SKILL.md +225 -44
- package/locales/en/.agents/current_state_analysis/agents/claude.json +5 -4
- package/locales/en/.agents/current_state_analysis/agents/copilot.json +5 -4
- package/locales/en/.agents/current_state_analysis/agents/gemini.json +5 -4
- package/locales/en/.agents/current_state_analysis/agents/openai.yaml +3 -3
- package/locales/en/.agents/current_state_analysis/agents/qwen.json +5 -4
- package/locales/en/.agents/current_state_analysis/agents/skill.yaml +5 -4
- package/locales/en/.agents/data_model/SKILL.md +277 -32
- package/locales/en/.agents/data_model/agents/claude.json +2 -2
- package/locales/en/.agents/data_model/agents/copilot.json +2 -2
- package/locales/en/.agents/data_model/agents/gemini.json +2 -2
- package/locales/en/.agents/data_model/agents/openai.yaml +1 -1
- package/locales/en/.agents/data_model/agents/qwen.json +2 -2
- package/locales/en/.agents/data_model/agents/skill.yaml +2 -2
- package/locales/en/.agents/dependency_supply_chain_review/SKILL.md +291 -11
- package/locales/en/.agents/dependency_supply_chain_review/agents/claude.json +5 -4
- package/locales/en/.agents/dependency_supply_chain_review/agents/copilot.json +5 -4
- package/locales/en/.agents/dependency_supply_chain_review/agents/gemini.json +5 -4
- package/locales/en/.agents/dependency_supply_chain_review/agents/openai.yaml +3 -3
- package/locales/en/.agents/dependency_supply_chain_review/agents/qwen.json +5 -4
- package/locales/en/.agents/dependency_supply_chain_review/agents/skill.yaml +5 -4
- package/locales/en/.agents/deployment_ci_plan/SKILL.md +404 -45
- package/locales/en/.agents/deployment_ci_plan/agents/claude.json +2 -2
- package/locales/en/.agents/deployment_ci_plan/agents/copilot.json +2 -2
- package/locales/en/.agents/deployment_ci_plan/agents/gemini.json +2 -2
- package/locales/en/.agents/deployment_ci_plan/agents/openai.yaml +1 -1
- package/locales/en/.agents/deployment_ci_plan/agents/qwen.json +2 -2
- package/locales/en/.agents/deployment_ci_plan/agents/skill.yaml +2 -2
- package/locales/en/.agents/design_intake/SKILL.md +221 -67
- package/locales/en/.agents/design_intake/agents/claude.json +4 -5
- package/locales/en/.agents/design_intake/agents/copilot.json +4 -5
- package/locales/en/.agents/design_intake/agents/gemini.json +4 -5
- package/locales/en/.agents/design_intake/agents/openai.yaml +3 -3
- package/locales/en/.agents/design_intake/agents/qwen.json +4 -5
- package/locales/en/.agents/design_intake/agents/skill.yaml +4 -5
- package/locales/en/.agents/design_parity_review/SKILL.md +216 -60
- package/locales/en/.agents/design_parity_review/agents/claude.json +2 -3
- package/locales/en/.agents/design_parity_review/agents/copilot.json +2 -3
- package/locales/en/.agents/design_parity_review/agents/gemini.json +2 -3
- package/locales/en/.agents/design_parity_review/agents/openai.yaml +2 -2
- package/locales/en/.agents/design_parity_review/agents/qwen.json +2 -3
- package/locales/en/.agents/design_parity_review/agents/skill.yaml +2 -3
- package/locales/en/.agents/design_systems/SKILL.md +432 -15
- package/locales/en/.agents/design_systems/agents/claude.json +2 -2
- package/locales/en/.agents/design_systems/agents/copilot.json +2 -2
- package/locales/en/.agents/design_systems/agents/gemini.json +2 -2
- package/locales/en/.agents/design_systems/agents/openai.yaml +1 -1
- package/locales/en/.agents/design_systems/agents/qwen.json +2 -2
- package/locales/en/.agents/design_systems/agents/skill.yaml +2 -2
- package/locales/en/.agents/dev_reference_snippets/SKILL.md +585 -397
- package/locales/en/.agents/dev_reference_snippets/agents/claude.json +2 -2
- package/locales/en/.agents/dev_reference_snippets/agents/copilot.json +2 -2
- package/locales/en/.agents/dev_reference_snippets/agents/gemini.json +2 -2
- package/locales/en/.agents/dev_reference_snippets/agents/openai.yaml +1 -1
- package/locales/en/.agents/dev_reference_snippets/agents/qwen.json +2 -2
- package/locales/en/.agents/dev_reference_snippets/agents/skill.yaml +2 -2
- package/locales/en/.agents/docker_kubernetes_architecture/SKILL.md +473 -137
- package/locales/en/.agents/docker_kubernetes_architecture/agents/claude.json +5 -4
- package/locales/en/.agents/docker_kubernetes_architecture/agents/copilot.json +5 -4
- package/locales/en/.agents/docker_kubernetes_architecture/agents/gemini.json +5 -4
- package/locales/en/.agents/docker_kubernetes_architecture/agents/openai.yaml +3 -3
- package/locales/en/.agents/docker_kubernetes_architecture/agents/qwen.json +5 -4
- package/locales/en/.agents/docker_kubernetes_architecture/agents/skill.yaml +5 -4
- package/locales/en/.agents/es2025_beast_practices/SKILL.md +440 -15
- package/locales/en/.agents/es2025_beast_practices/agents/claude.json +4 -4
- package/locales/en/.agents/es2025_beast_practices/agents/copilot.json +4 -4
- package/locales/en/.agents/es2025_beast_practices/agents/gemini.json +4 -4
- package/locales/en/.agents/es2025_beast_practices/agents/openai.yaml +3 -3
- package/locales/en/.agents/es2025_beast_practices/agents/qwen.json +4 -4
- package/locales/en/.agents/es2025_beast_practices/agents/skill.yaml +4 -4
- package/locales/en/.agents/gates/SKILL.md +128 -29
- package/locales/en/.agents/gates/agents/claude.json +2 -2
- package/locales/en/.agents/gates/agents/copilot.json +2 -2
- package/locales/en/.agents/gates/agents/gemini.json +2 -2
- package/locales/en/.agents/gates/agents/openai.yaml +1 -1
- package/locales/en/.agents/gates/agents/qwen.json +2 -2
- package/locales/en/.agents/gates/agents/skill.yaml +2 -2
- package/locales/en/.agents/go_beast_practices/SKILL.md +557 -23
- package/locales/en/.agents/go_beast_practices/agents/claude.json +5 -4
- package/locales/en/.agents/go_beast_practices/agents/copilot.json +5 -4
- package/locales/en/.agents/go_beast_practices/agents/gemini.json +5 -4
- package/locales/en/.agents/go_beast_practices/agents/openai.yaml +3 -3
- package/locales/en/.agents/go_beast_practices/agents/qwen.json +5 -4
- package/locales/en/.agents/go_beast_practices/agents/skill.yaml +5 -4
- package/locales/en/.agents/google_stitch_skill/SKILL.md +507 -71
- package/locales/en/.agents/google_stitch_skill/agents/claude.json +5 -6
- package/locales/en/.agents/google_stitch_skill/agents/copilot.json +5 -6
- package/locales/en/.agents/google_stitch_skill/agents/gemini.json +5 -6
- package/locales/en/.agents/google_stitch_skill/agents/openai.yaml +1 -1
- package/locales/en/.agents/google_stitch_skill/agents/qwen.json +5 -6
- package/locales/en/.agents/google_stitch_skill/agents/skill.yaml +4 -5
- package/locales/en/.agents/handoff/SKILL.md +206 -46
- package/locales/en/.agents/handoff/agents/claude.json +5 -5
- package/locales/en/.agents/handoff/agents/copilot.json +5 -5
- package/locales/en/.agents/handoff/agents/gemini.json +5 -5
- package/locales/en/.agents/handoff/agents/openai.yaml +3 -3
- package/locales/en/.agents/handoff/agents/qwen.json +5 -5
- package/locales/en/.agents/handoff/agents/skill.yaml +5 -5
- package/locales/en/.agents/k8s_manifests_conventions/SKILL.md +540 -167
- package/locales/en/.agents/k8s_manifests_conventions/agents/claude.json +2 -2
- package/locales/en/.agents/k8s_manifests_conventions/agents/copilot.json +2 -2
- package/locales/en/.agents/k8s_manifests_conventions/agents/gemini.json +2 -2
- package/locales/en/.agents/k8s_manifests_conventions/agents/openai.yaml +1 -1
- package/locales/en/.agents/k8s_manifests_conventions/agents/qwen.json +2 -2
- package/locales/en/.agents/k8s_manifests_conventions/agents/skill.yaml +2 -2
- package/locales/en/.agents/memory/SKILL.md +211 -21
- package/locales/en/.agents/memory/agents/claude.json +5 -4
- package/locales/en/.agents/memory/agents/copilot.json +5 -4
- package/locales/en/.agents/memory/agents/gemini.json +5 -4
- package/locales/en/.agents/memory/agents/openai.yaml +3 -3
- package/locales/en/.agents/memory/agents/qwen.json +5 -4
- package/locales/en/.agents/memory/agents/skill.yaml +5 -4
- package/locales/en/.agents/mongodb_mongoose_best_practices/SKILL.md +669 -178
- package/locales/en/.agents/mongodb_mongoose_best_practices/agents/claude.json +4 -5
- package/locales/en/.agents/mongodb_mongoose_best_practices/agents/copilot.json +4 -5
- package/locales/en/.agents/mongodb_mongoose_best_practices/agents/gemini.json +4 -5
- package/locales/en/.agents/mongodb_mongoose_best_practices/agents/openai.yaml +3 -3
- package/locales/en/.agents/mongodb_mongoose_best_practices/agents/qwen.json +4 -5
- package/locales/en/.agents/mongodb_mongoose_best_practices/agents/skill.yaml +4 -5
- package/locales/en/.agents/n8n_pinecone_qdrant_supabase/SKILL.md +669 -57
- package/locales/en/.agents/n8n_pinecone_qdrant_supabase/agents/claude.json +5 -5
- package/locales/en/.agents/n8n_pinecone_qdrant_supabase/agents/copilot.json +5 -5
- package/locales/en/.agents/n8n_pinecone_qdrant_supabase/agents/gemini.json +5 -5
- package/locales/en/.agents/n8n_pinecone_qdrant_supabase/agents/openai.yaml +3 -3
- package/locales/en/.agents/n8n_pinecone_qdrant_supabase/agents/qwen.json +5 -5
- package/locales/en/.agents/n8n_pinecone_qdrant_supabase/agents/skill.yaml +5 -5
- package/locales/en/.agents/node_express_beast_practices/SKILL.md +718 -19
- package/locales/en/.agents/node_express_beast_practices/agents/claude.json +1 -1
- package/locales/en/.agents/node_express_beast_practices/agents/copilot.json +1 -1
- package/locales/en/.agents/node_express_beast_practices/agents/gemini.json +1 -1
- package/locales/en/.agents/node_express_beast_practices/agents/openai.yaml +1 -1
- package/locales/en/.agents/node_express_beast_practices/agents/qwen.json +1 -1
- package/locales/en/.agents/node_express_beast_practices/agents/skill.yaml +1 -1
- package/locales/en/.agents/observability_logging/SKILL.md +499 -16
- package/locales/en/.agents/observability_logging/agents/claude.json +4 -4
- package/locales/en/.agents/observability_logging/agents/copilot.json +4 -4
- package/locales/en/.agents/observability_logging/agents/gemini.json +4 -4
- package/locales/en/.agents/observability_logging/agents/openai.yaml +3 -3
- package/locales/en/.agents/observability_logging/agents/qwen.json +4 -4
- package/locales/en/.agents/observability_logging/agents/skill.yaml +4 -4
- package/locales/en/.agents/observability_plan/SKILL.md +273 -32
- package/locales/en/.agents/observability_plan/agents/claude.json +6 -4
- package/locales/en/.agents/observability_plan/agents/copilot.json +6 -4
- package/locales/en/.agents/observability_plan/agents/gemini.json +6 -4
- package/locales/en/.agents/observability_plan/agents/openai.yaml +3 -3
- package/locales/en/.agents/observability_plan/agents/qwen.json +6 -4
- package/locales/en/.agents/observability_plan/agents/skill.yaml +5 -3
- package/locales/en/.agents/observability_review/SKILL.md +245 -11
- package/locales/en/.agents/observability_review/agents/claude.json +6 -4
- package/locales/en/.agents/observability_review/agents/copilot.json +6 -4
- package/locales/en/.agents/observability_review/agents/gemini.json +6 -4
- package/locales/en/.agents/observability_review/agents/openai.yaml +3 -3
- package/locales/en/.agents/observability_review/agents/qwen.json +6 -4
- package/locales/en/.agents/observability_review/agents/skill.yaml +5 -3
- package/locales/en/.agents/performance_review_baseline/SKILL.md +232 -10
- package/locales/en/.agents/performance_review_baseline/agents/claude.json +5 -4
- package/locales/en/.agents/performance_review_baseline/agents/copilot.json +5 -4
- package/locales/en/.agents/performance_review_baseline/agents/gemini.json +5 -4
- package/locales/en/.agents/performance_review_baseline/agents/openai.yaml +3 -3
- package/locales/en/.agents/performance_review_baseline/agents/qwen.json +5 -4
- package/locales/en/.agents/performance_review_baseline/agents/skill.yaml +5 -4
- package/locales/en/.agents/pm_backlog/SKILL.md +239 -21
- package/locales/en/.agents/pm_backlog/agents/claude.json +2 -2
- package/locales/en/.agents/pm_backlog/agents/copilot.json +2 -2
- package/locales/en/.agents/pm_backlog/agents/gemini.json +2 -2
- package/locales/en/.agents/pm_backlog/agents/openai.yaml +1 -1
- package/locales/en/.agents/pm_backlog/agents/qwen.json +2 -2
- package/locales/en/.agents/pm_backlog/agents/skill.yaml +2 -2
- package/locales/en/.agents/pm_interview/SKILL.md +178 -37
- package/locales/en/.agents/pm_interview/agents/claude.json +5 -4
- package/locales/en/.agents/pm_interview/agents/copilot.json +5 -4
- package/locales/en/.agents/pm_interview/agents/gemini.json +5 -4
- package/locales/en/.agents/pm_interview/agents/openai.yaml +3 -3
- package/locales/en/.agents/pm_interview/agents/qwen.json +5 -4
- package/locales/en/.agents/pm_interview/agents/skill.yaml +5 -4
- package/locales/en/.agents/pm_prd/SKILL.md +197 -38
- package/locales/en/.agents/pm_prd/agents/claude.json +2 -2
- package/locales/en/.agents/pm_prd/agents/copilot.json +2 -2
- package/locales/en/.agents/pm_prd/agents/gemini.json +2 -2
- package/locales/en/.agents/pm_prd/agents/openai.yaml +1 -1
- package/locales/en/.agents/pm_prd/agents/qwen.json +2 -2
- package/locales/en/.agents/pm_prd/agents/skill.yaml +2 -2
- package/locales/en/.agents/qa_api_contract_tests/SKILL.md +207 -16
- package/locales/en/.agents/qa_api_contract_tests/agents/claude.json +2 -2
- package/locales/en/.agents/qa_api_contract_tests/agents/copilot.json +2 -2
- package/locales/en/.agents/qa_api_contract_tests/agents/gemini.json +2 -2
- package/locales/en/.agents/qa_api_contract_tests/agents/openai.yaml +1 -1
- package/locales/en/.agents/qa_api_contract_tests/agents/qwen.json +2 -2
- package/locales/en/.agents/qa_api_contract_tests/agents/skill.yaml +2 -2
- package/locales/en/.agents/qa_browser_testing/SKILL.md +254 -86
- package/locales/en/.agents/qa_e2e_playwright/SKILL.md +313 -116
- package/locales/en/.agents/qa_manual_run/SKILL.md +202 -9
- package/locales/en/.agents/qa_manual_run/agents/claude.json +2 -2
- package/locales/en/.agents/qa_manual_run/agents/copilot.json +2 -2
- package/locales/en/.agents/qa_manual_run/agents/gemini.json +2 -2
- package/locales/en/.agents/qa_manual_run/agents/openai.yaml +1 -1
- package/locales/en/.agents/qa_manual_run/agents/qwen.json +2 -2
- package/locales/en/.agents/qa_manual_run/agents/skill.yaml +2 -2
- package/locales/en/.agents/qa_regression_baseline/SKILL.md +217 -0
- package/locales/en/.agents/qa_regression_baseline/agents/claude.json +19 -0
- package/locales/en/.agents/qa_regression_baseline/agents/copilot.json +19 -0
- package/locales/en/.agents/qa_regression_baseline/agents/gemini.json +19 -0
- package/locales/en/.agents/qa_regression_baseline/agents/openai.yaml +8 -0
- package/locales/en/.agents/qa_regression_baseline/agents/qwen.json +19 -0
- package/locales/en/.agents/qa_regression_baseline/agents/skill.yaml +23 -0
- package/locales/en/.agents/qa_security_smoke_tests/SKILL.md +182 -8
- package/locales/en/.agents/qa_security_smoke_tests/agents/claude.json +2 -2
- package/locales/en/.agents/qa_security_smoke_tests/agents/copilot.json +2 -2
- package/locales/en/.agents/qa_security_smoke_tests/agents/gemini.json +2 -2
- package/locales/en/.agents/qa_security_smoke_tests/agents/openai.yaml +1 -1
- package/locales/en/.agents/qa_security_smoke_tests/agents/qwen.json +2 -2
- package/locales/en/.agents/qa_security_smoke_tests/agents/skill.yaml +2 -2
- package/locales/en/.agents/qa_test_plan/SKILL.md +197 -14
- package/locales/en/.agents/qa_test_plan/agents/claude.json +2 -2
- package/locales/en/.agents/qa_test_plan/agents/copilot.json +2 -2
- package/locales/en/.agents/qa_test_plan/agents/gemini.json +2 -2
- package/locales/en/.agents/qa_test_plan/agents/openai.yaml +1 -1
- package/locales/en/.agents/qa_test_plan/agents/qwen.json +2 -2
- package/locales/en/.agents/qa_test_plan/agents/skill.yaml +2 -2
- package/locales/en/.agents/qa_ui_a11y_smoke/SKILL.md +224 -6
- package/locales/en/.agents/qa_ui_a11y_smoke/agents/claude.json +5 -4
- package/locales/en/.agents/qa_ui_a11y_smoke/agents/copilot.json +5 -4
- package/locales/en/.agents/qa_ui_a11y_smoke/agents/gemini.json +5 -4
- package/locales/en/.agents/qa_ui_a11y_smoke/agents/openai.yaml +3 -3
- package/locales/en/.agents/qa_ui_a11y_smoke/agents/qwen.json +5 -4
- package/locales/en/.agents/qa_ui_a11y_smoke/agents/skill.yaml +5 -4
- package/locales/en/.agents/react_15_3_wix_iframe/SKILL.md +419 -20
- package/locales/en/.agents/react_15_3_wix_iframe/agents/claude.json +2 -2
- package/locales/en/.agents/react_15_3_wix_iframe/agents/copilot.json +2 -2
- package/locales/en/.agents/react_15_3_wix_iframe/agents/gemini.json +2 -2
- package/locales/en/.agents/react_15_3_wix_iframe/agents/openai.yaml +1 -1
- package/locales/en/.agents/react_15_3_wix_iframe/agents/qwen.json +2 -2
- package/locales/en/.agents/react_15_3_wix_iframe/agents/skill.yaml +2 -2
- package/locales/en/.agents/react_beast_practices/SKILL.md +285 -18
- package/locales/en/.agents/react_beast_practices/agents/claude.json +4 -4
- package/locales/en/.agents/react_beast_practices/agents/copilot.json +4 -4
- package/locales/en/.agents/react_beast_practices/agents/gemini.json +4 -4
- package/locales/en/.agents/react_beast_practices/agents/openai.yaml +3 -3
- package/locales/en/.agents/react_beast_practices/agents/qwen.json +4 -4
- package/locales/en/.agents/react_beast_practices/agents/skill.yaml +4 -4
- package/locales/en/.agents/release_gate/SKILL.md +205 -69
- package/locales/en/.agents/release_gate/agents/claude.json +5 -4
- package/locales/en/.agents/release_gate/agents/copilot.json +5 -4
- package/locales/en/.agents/release_gate/agents/gemini.json +5 -4
- package/locales/en/.agents/release_gate/agents/openai.yaml +3 -3
- package/locales/en/.agents/release_gate/agents/qwen.json +5 -4
- package/locales/en/.agents/release_gate/agents/skill.yaml +5 -4
- package/locales/en/.agents/release_gate_checklist_template/SKILL.md +175 -61
- package/locales/en/.agents/review_reference_snippets/SKILL.md +163 -46
- package/locales/en/.agents/security_baseline_dev/SKILL.md +496 -16
- package/locales/en/.agents/security_baseline_dev/agents/claude.json +2 -2
- package/locales/en/.agents/security_baseline_dev/agents/copilot.json +2 -2
- package/locales/en/.agents/security_baseline_dev/agents/gemini.json +2 -2
- package/locales/en/.agents/security_baseline_dev/agents/openai.yaml +1 -1
- package/locales/en/.agents/security_baseline_dev/agents/qwen.json +2 -2
- package/locales/en/.agents/security_baseline_dev/agents/skill.yaml +2 -2
- package/locales/en/.agents/security_review/SKILL.md +277 -55
- package/locales/en/.agents/security_review_baseline/SKILL.md +111 -17
- package/locales/en/.agents/security_review_baseline/agents/claude.json +2 -2
- package/locales/en/.agents/security_review_baseline/agents/copilot.json +2 -2
- package/locales/en/.agents/security_review_baseline/agents/gemini.json +2 -2
- package/locales/en/.agents/security_review_baseline/agents/openai.yaml +1 -1
- package/locales/en/.agents/security_review_baseline/agents/qwen.json +2 -2
- package/locales/en/.agents/security_review_baseline/agents/skill.yaml +2 -2
- package/locales/en/.agents/state_rtk_beast_practices/SKILL.md +735 -15
- package/locales/en/.agents/state_rtk_beast_practices/agents/claude.json +2 -2
- package/locales/en/.agents/state_rtk_beast_practices/agents/copilot.json +2 -2
- package/locales/en/.agents/state_rtk_beast_practices/agents/gemini.json +2 -2
- package/locales/en/.agents/state_rtk_beast_practices/agents/openai.yaml +1 -1
- package/locales/en/.agents/state_rtk_beast_practices/agents/qwen.json +2 -2
- package/locales/en/.agents/state_rtk_beast_practices/agents/skill.yaml +2 -2
- package/locales/en/.agents/state_zustand_beast_practices/SKILL.md +808 -11
- package/locales/en/.agents/state_zustand_beast_practices/agents/claude.json +2 -2
- package/locales/en/.agents/state_zustand_beast_practices/agents/copilot.json +2 -2
- package/locales/en/.agents/state_zustand_beast_practices/agents/gemini.json +2 -2
- package/locales/en/.agents/state_zustand_beast_practices/agents/openai.yaml +1 -1
- package/locales/en/.agents/state_zustand_beast_practices/agents/qwen.json +2 -2
- package/locales/en/.agents/state_zustand_beast_practices/agents/skill.yaml +2 -2
- package/locales/en/.agents/styling_css_stack/SKILL.md +558 -12
- package/locales/en/.agents/styling_css_stack/agents/claude.json +5 -5
- package/locales/en/.agents/styling_css_stack/agents/copilot.json +5 -5
- package/locales/en/.agents/styling_css_stack/agents/gemini.json +5 -5
- package/locales/en/.agents/styling_css_stack/agents/openai.yaml +3 -3
- package/locales/en/.agents/styling_css_stack/agents/qwen.json +5 -5
- package/locales/en/.agents/styling_css_stack/agents/skill.yaml +5 -5
- package/locales/en/.agents/system_design_checklist/SKILL.md +199 -40
- package/locales/en/.agents/system_design_checklist/agents/claude.json +3 -2
- package/locales/en/.agents/system_design_checklist/agents/copilot.json +3 -2
- package/locales/en/.agents/system_design_checklist/agents/gemini.json +3 -2
- package/locales/en/.agents/system_design_checklist/agents/openai.yaml +1 -1
- package/locales/en/.agents/system_design_checklist/agents/qwen.json +3 -2
- package/locales/en/.agents/system_design_checklist/agents/skill.yaml +2 -1
- package/locales/en/.agents/tailwind_beast_practices/SKILL.md +512 -0
- package/locales/en/.agents/tailwind_beast_practices/agents/claude.json +18 -0
- package/locales/en/.agents/tailwind_beast_practices/agents/copilot.json +18 -0
- package/locales/en/.agents/tailwind_beast_practices/agents/gemini.json +18 -0
- package/locales/en/.agents/tailwind_beast_practices/agents/openai.yaml +8 -0
- package/locales/en/.agents/tailwind_beast_practices/agents/qwen.json +18 -0
- package/locales/en/.agents/tailwind_beast_practices/agents/skill.yaml +22 -0
- package/locales/en/.agents/tanstack_beast_practices/SKILL.md +473 -19
- package/locales/en/.agents/tanstack_beast_practices/agents/claude.json +2 -2
- package/locales/en/.agents/tanstack_beast_practices/agents/copilot.json +2 -2
- package/locales/en/.agents/tanstack_beast_practices/agents/gemini.json +2 -2
- package/locales/en/.agents/tanstack_beast_practices/agents/openai.yaml +1 -1
- package/locales/en/.agents/tanstack_beast_practices/agents/qwen.json +2 -2
- package/locales/en/.agents/tanstack_beast_practices/agents/skill.yaml +2 -2
- package/locales/en/.agents/tdd_workflow/SKILL.md +453 -34
- package/locales/en/.agents/tdd_workflow/agents/claude.json +2 -2
- package/locales/en/.agents/tdd_workflow/agents/copilot.json +2 -2
- package/locales/en/.agents/tdd_workflow/agents/gemini.json +2 -2
- package/locales/en/.agents/tdd_workflow/agents/openai.yaml +1 -1
- package/locales/en/.agents/tdd_workflow/agents/qwen.json +2 -2
- package/locales/en/.agents/tdd_workflow/agents/skill.yaml +2 -2
- package/locales/en/.agents/testing_strategy_js/SKILL.md +636 -30
- package/locales/en/.agents/testing_strategy_js/agents/claude.json +2 -2
- package/locales/en/.agents/testing_strategy_js/agents/copilot.json +2 -2
- package/locales/en/.agents/testing_strategy_js/agents/gemini.json +2 -2
- package/locales/en/.agents/testing_strategy_js/agents/openai.yaml +1 -1
- package/locales/en/.agents/testing_strategy_js/agents/qwen.json +2 -2
- package/locales/en/.agents/testing_strategy_js/agents/skill.yaml +2 -2
- package/locales/en/.agents/tests_quality_review/SKILL.md +279 -18
- package/locales/en/.agents/tests_quality_review/agents/claude.json +2 -2
- package/locales/en/.agents/tests_quality_review/agents/copilot.json +2 -2
- package/locales/en/.agents/tests_quality_review/agents/gemini.json +2 -2
- package/locales/en/.agents/tests_quality_review/agents/openai.yaml +1 -1
- package/locales/en/.agents/tests_quality_review/agents/qwen.json +2 -2
- package/locales/en/.agents/tests_quality_review/agents/skill.yaml +2 -2
- package/locales/en/.agents/threat_model_baseline/SKILL.md +202 -49
- package/locales/en/.agents/threat_model_baseline/agents/claude.json +2 -2
- package/locales/en/.agents/threat_model_baseline/agents/copilot.json +2 -2
- package/locales/en/.agents/threat_model_baseline/agents/gemini.json +2 -2
- package/locales/en/.agents/threat_model_baseline/agents/openai.yaml +1 -1
- package/locales/en/.agents/threat_model_baseline/agents/qwen.json +2 -2
- package/locales/en/.agents/threat_model_baseline/agents/skill.yaml +2 -2
- package/locales/en/.agents/tooling_bun_biome/SKILL.md +531 -9
- package/locales/en/.agents/tooling_bun_biome/agents/claude.json +5 -5
- package/locales/en/.agents/tooling_bun_biome/agents/copilot.json +5 -5
- package/locales/en/.agents/tooling_bun_biome/agents/gemini.json +5 -5
- package/locales/en/.agents/tooling_bun_biome/agents/openai.yaml +3 -3
- package/locales/en/.agents/tooling_bun_biome/agents/qwen.json +5 -5
- package/locales/en/.agents/tooling_bun_biome/agents/skill.yaml +5 -5
- package/locales/en/.agents/typescript_beast_practices/SKILL.md +434 -15
- package/locales/en/.agents/typescript_beast_practices/agents/claude.json +2 -2
- package/locales/en/.agents/typescript_beast_practices/agents/copilot.json +2 -2
- package/locales/en/.agents/typescript_beast_practices/agents/gemini.json +2 -2
- package/locales/en/.agents/typescript_beast_practices/agents/openai.yaml +1 -1
- package/locales/en/.agents/typescript_beast_practices/agents/qwen.json +2 -2
- package/locales/en/.agents/typescript_beast_practices/agents/skill.yaml +2 -2
- package/locales/en/.agents/ui_a11y_smoke_review/SKILL.md +189 -9
- package/locales/en/.agents/ui_a11y_smoke_review/agents/claude.json +5 -5
- package/locales/en/.agents/ui_a11y_smoke_review/agents/copilot.json +5 -5
- package/locales/en/.agents/ui_a11y_smoke_review/agents/gemini.json +5 -5
- package/locales/en/.agents/ui_a11y_smoke_review/agents/openai.yaml +3 -3
- package/locales/en/.agents/ui_a11y_smoke_review/agents/qwen.json +5 -5
- package/locales/en/.agents/ui_a11y_smoke_review/agents/skill.yaml +5 -5
- package/locales/en/.agents/ui_inventory/SKILL.md +271 -44
- package/locales/en/.agents/ui_inventory/agents/claude.json +2 -2
- package/locales/en/.agents/ui_inventory/agents/copilot.json +2 -2
- package/locales/en/.agents/ui_inventory/agents/gemini.json +2 -2
- package/locales/en/.agents/ui_inventory/agents/openai.yaml +1 -1
- package/locales/en/.agents/ui_inventory/agents/qwen.json +2 -2
- package/locales/en/.agents/ui_inventory/agents/skill.yaml +2 -2
- package/locales/en/.agents/ux_discovery/SKILL.md +199 -33
- package/locales/en/.agents/ux_discovery/agents/claude.json +2 -2
- package/locales/en/.agents/ux_discovery/agents/copilot.json +2 -2
- package/locales/en/.agents/ux_discovery/agents/gemini.json +2 -2
- package/locales/en/.agents/ux_discovery/agents/openai.yaml +1 -1
- package/locales/en/.agents/ux_discovery/agents/qwen.json +2 -2
- package/locales/en/.agents/ux_discovery/agents/skill.yaml +2 -2
- package/locales/en/.agents/ux_spec/SKILL.md +276 -50
- package/locales/en/.agents/ux_spec/agents/claude.json +2 -2
- package/locales/en/.agents/ux_spec/agents/copilot.json +2 -2
- package/locales/en/.agents/ux_spec/agents/gemini.json +2 -2
- package/locales/en/.agents/ux_spec/agents/openai.yaml +1 -1
- package/locales/en/.agents/ux_spec/agents/qwen.json +2 -2
- package/locales/en/.agents/ux_spec/agents/skill.yaml +2 -2
- package/locales/en/.agents/wix_iframe_sdk/SKILL.md +271 -42
- package/locales/en/.agents/wix_iframe_sdk/agents/claude.json +4 -5
- package/locales/en/.agents/wix_iframe_sdk/agents/copilot.json +4 -5
- package/locales/en/.agents/wix_iframe_sdk/agents/gemini.json +4 -5
- package/locales/en/.agents/wix_iframe_sdk/agents/openai.yaml +3 -3
- package/locales/en/.agents/wix_iframe_sdk/agents/qwen.json +4 -5
- package/locales/en/.agents/wix_iframe_sdk/agents/skill.yaml +4 -5
- package/locales/en/.agents/wix_self_hosted_embedded_script/SKILL.md +611 -88
- package/locales/en/.agents/wix_self_hosted_embedded_script/agents/claude.json +2 -2
- package/locales/en/.agents/wix_self_hosted_embedded_script/agents/copilot.json +2 -2
- package/locales/en/.agents/wix_self_hosted_embedded_script/agents/gemini.json +2 -2
- package/locales/en/.agents/wix_self_hosted_embedded_script/agents/openai.yaml +1 -1
- package/locales/en/.agents/wix_self_hosted_embedded_script/agents/qwen.json +2 -2
- package/locales/en/.agents/wix_self_hosted_embedded_script/agents/skill.yaml +2 -2
- package/locales/en/AGENTS.yaml +2 -0
- package/locales/en/agents/architect.md +1 -1
- package/locales/en/agents/conductor.md +50 -0
- package/locales/en/agents/devops.md +34 -0
- package/locales/en/agents/orchestrator.claude.json +2 -0
- package/locales/en/agents/orchestrator.copilot.json +2 -0
- package/locales/en/agents/orchestrator.gemini.json +2 -0
- package/locales/en/agents/orchestrator.openai.yaml +2 -0
- package/locales/en/agents/orchestrator.qwen.json +2 -0
- package/locales/en/agents/product_manager.md +1 -5
- package/locales/en/agents/reviewer.md +69 -64
- package/locales/en/agents/senior_full_stack.md +2 -2
- package/locales/en/agents/tester.md +50 -11
- package/locales/en/agents/ux_ui_designer.md +3 -5
- package/package.json +1 -1
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "node_express_beast_practices",
|
|
3
3
|
"display_name": "Практики Node и Express",
|
|
4
|
-
"description": "Node.js + Express
|
|
4
|
+
"description": "Node.js + Express — REST API, middleware pipeline, сервисный слой, репозитории, централизованная обработка ошибок, валидация (Zod), graceful shutdown, health checks, security headers. Активируй при написании API, рефакторинге Express-приложений, или при вопросах «как правильно организовать backend на Express».",
|
|
5
5
|
"default_prompt": "Используй $node_express_beast_practices, когда задача относится к навыку \"Практики Node и Express\".",
|
|
6
6
|
"triggers": [
|
|
7
7
|
"node_express_beast_practices",
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "node_express_beast_practices",
|
|
3
3
|
"display_name": "Практики Node и Express",
|
|
4
|
-
"description": "Node.js + Express
|
|
4
|
+
"description": "Node.js + Express — REST API, middleware pipeline, сервисный слой, репозитории, централизованная обработка ошибок, валидация (Zod), graceful shutdown, health checks, security headers. Активируй при написании API, рефакторинге Express-приложений, или при вопросах «как правильно организовать backend на Express».",
|
|
5
5
|
"default_prompt": "Используй $node_express_beast_practices, когда задача относится к навыку \"Практики Node и Express\".",
|
|
6
6
|
"triggers": [
|
|
7
7
|
"node_express_beast_practices",
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "node_express_beast_practices",
|
|
3
3
|
"display_name": "Практики Node и Express",
|
|
4
|
-
"description": "Node.js + Express
|
|
4
|
+
"description": "Node.js + Express — REST API, middleware pipeline, сервисный слой, репозитории, централизованная обработка ошибок, валидация (Zod), graceful shutdown, health checks, security headers. Активируй при написании API, рефакторинге Express-приложений, или при вопросах «как правильно организовать backend на Express».",
|
|
5
5
|
"default_prompt": "Используй $node_express_beast_practices, когда задача относится к навыку \"Практики Node и Express\".",
|
|
6
6
|
"triggers": [
|
|
7
7
|
"node_express_beast_practices",
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
interface:
|
|
2
2
|
display_name: "Практики Node и Express"
|
|
3
|
-
short_description: "Node.js + Express
|
|
3
|
+
short_description: "Node.js + Express — REST API, middleware pipeline, сервисный слой, репозитории, централизованна…"
|
|
4
4
|
default_prompt: "Используй $node_express_beast_practices, когда задача относится к навыку \"Практики Node и Express\"."
|
|
5
5
|
dependencies:
|
|
6
6
|
tools: []
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "node_express_beast_practices",
|
|
3
3
|
"display_name": "Практики Node и Express",
|
|
4
|
-
"description": "Node.js + Express
|
|
4
|
+
"description": "Node.js + Express — REST API, middleware pipeline, сервисный слой, репозитории, централизованная обработка ошибок, валидация (Zod), graceful shutdown, health checks, security headers. Активируй при написании API, рефакторинге Express-приложений, или при вопросах «как правильно организовать backend на Express».",
|
|
5
5
|
"default_prompt": "Используй $node_express_beast_practices, когда задача относится к навыку \"Практики Node и Express\".",
|
|
6
6
|
"triggers": [
|
|
7
7
|
"node_express_beast_practices",
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
version: 1
|
|
2
2
|
name: "node_express_beast_practices"
|
|
3
3
|
display_name: "Практики Node и Express"
|
|
4
|
-
description: "Node.js + Express
|
|
4
|
+
description: "Node.js + Express — REST API, middleware pipeline, сервисный слой, репозитории, централизованная обработка ошибок, валидация (Zod), graceful shutdown, health checks, security headers. Активируй при написании API, рефакторинге Express-приложений, или при вопросах «как правильно организовать backend на Express»."
|
|
5
5
|
default_prompt: "Используй $node_express_beast_practices, когда задача относится к навыку \"Практики Node и Express\"."
|
|
6
6
|
triggers:
|
|
7
7
|
- "node_express_beast_practices"
|
|
@@ -1,16 +1,499 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: observability_logging
|
|
3
|
-
description: Реализация наблюдаемости на уровне
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
# Skill: Observability (Implementation)
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
1
|
+
---
|
|
2
|
+
name: observability_logging
|
|
3
|
+
description: Реализация наблюдаемости на уровне кода — структурированные логи (pino), request_id/trace_id корреляция, уровни логов, запрет утечки PII/секретов, базовые метрики, health checks. DO/DON'T примеры. Активируй при настройке логирования, добавлении метрик, или при вопросах «как правильно логировать».
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Skill: Observability (Implementation)
|
|
7
|
+
|
|
8
|
+
Конкретные DO/DON'T паттерны для логирования, метрик и трейсинга на уровне кода.
|
|
9
|
+
|
|
10
|
+
**Разделы:**
|
|
11
|
+
1. [Logger Setup (pino)](#1-logger-setup)
|
|
12
|
+
2. [Уровни логов](#2-уровни-логов)
|
|
13
|
+
3. [Request Correlation](#3-request-correlation)
|
|
14
|
+
4. [Структурированные логи](#4-структурированные-логи)
|
|
15
|
+
5. [PII/Secrets Redaction](#5-redaction)
|
|
16
|
+
6. [Метрики](#6-метрики)
|
|
17
|
+
7. [Health Checks](#7-health-checks)
|
|
18
|
+
8. [Anti-patterns](#8-anti-patterns)
|
|
19
|
+
|
|
20
|
+
---
|
|
21
|
+
|
|
22
|
+
## 1. Logger Setup
|
|
23
|
+
|
|
24
|
+
### ✅ DO: pino — быстрый structured JSON logger
|
|
25
|
+
|
|
26
|
+
```js
|
|
27
|
+
// utils/logger.js
|
|
28
|
+
import pino from 'pino';
|
|
29
|
+
import { config } from '../config/env.js';
|
|
30
|
+
|
|
31
|
+
/**
|
|
32
|
+
* Создаёт структурированный JSON logger.
|
|
33
|
+
* Production: JSON output (для LogDNA/Datadog/ELK).
|
|
34
|
+
* Development: pretty-print для консоли.
|
|
35
|
+
*/
|
|
36
|
+
export const logger = pino({
|
|
37
|
+
level: config.LOG_LEVEL || 'info',
|
|
38
|
+
|
|
39
|
+
// ✅ Автоматическая фильтрация чувствительных данных
|
|
40
|
+
redact: {
|
|
41
|
+
paths: [
|
|
42
|
+
'req.headers.authorization',
|
|
43
|
+
'req.headers.cookie',
|
|
44
|
+
'*.password',
|
|
45
|
+
'*.token',
|
|
46
|
+
'*.secret',
|
|
47
|
+
'*.apiKey',
|
|
48
|
+
'*.creditCard',
|
|
49
|
+
],
|
|
50
|
+
censor: '[REDACTED]',
|
|
51
|
+
},
|
|
52
|
+
|
|
53
|
+
// ✅ Стандартные поля
|
|
54
|
+
base: {
|
|
55
|
+
service: config.SERVICE_NAME || 'smart-cart-rescue',
|
|
56
|
+
env: config.NODE_ENV,
|
|
57
|
+
},
|
|
58
|
+
|
|
59
|
+
// ✅ ISO timestamp вместо epoch
|
|
60
|
+
timestamp: pino.stdTimeFunctions.isoTime,
|
|
61
|
+
|
|
62
|
+
// Pretty print в dev (через transport, не в production)
|
|
63
|
+
...(config.NODE_ENV === 'development' && {
|
|
64
|
+
transport: {
|
|
65
|
+
target: 'pino-pretty',
|
|
66
|
+
options: {
|
|
67
|
+
colorize: true,
|
|
68
|
+
translateTime: 'HH:MM:ss.l',
|
|
69
|
+
ignore: 'pid,hostname',
|
|
70
|
+
},
|
|
71
|
+
},
|
|
72
|
+
}),
|
|
73
|
+
});
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
### Зачем pino, а не winston/console.log?
|
|
77
|
+
|
|
78
|
+
| Критерий | pino | winston | console.log |
|
|
79
|
+
|---------|------|---------|------------|
|
|
80
|
+
| **Скорость** | ~5x faster | Стандарт | N/A |
|
|
81
|
+
| **JSON output** | Нативный | Через transport | Нет |
|
|
82
|
+
| **Redaction** | Встроенный | Плагин | Нет |
|
|
83
|
+
| **Child loggers** | ✅ | ✅ | Нет |
|
|
84
|
+
| **Async** | ✅ (не блокирует event loop) | ⚠️ | Блокирует |
|
|
85
|
+
| **Production** | ✅ | ✅ | ❌ |
|
|
86
|
+
|
|
87
|
+
---
|
|
88
|
+
|
|
89
|
+
## 2. Уровни логов
|
|
90
|
+
|
|
91
|
+
### Когда какой уровень
|
|
92
|
+
|
|
93
|
+
| Уровень | Когда | Пример |
|
|
94
|
+
|---------|-------|--------|
|
|
95
|
+
| **fatal** | Приложение не может продолжить работу | DB connection failed, port occupied |
|
|
96
|
+
| **error** | Операция провалилась, нужна реакция | Payment failed, external API 500 |
|
|
97
|
+
| **warn** | Что-то неожиданное, но recoverable | Rate limit approaching, deprecated API used |
|
|
98
|
+
| **info** | Важные бизнес-события | User created, order completed, server started |
|
|
99
|
+
| **debug** | Детали для отладки | SQL query, cache hit/miss, request payload |
|
|
100
|
+
| **trace** | Максимальная детализация | Function entry/exit, intermediate values |
|
|
101
|
+
|
|
102
|
+
### ✅ DO: правильный выбор уровня
|
|
103
|
+
|
|
104
|
+
```js
|
|
105
|
+
// ✅ fatal — app cannot continue
|
|
106
|
+
logger.fatal({ err }, 'Database connection failed, shutting down');
|
|
107
|
+
process.exit(1);
|
|
108
|
+
|
|
109
|
+
// ✅ error — operation failed
|
|
110
|
+
logger.error({ err, orderId }, 'Payment processing failed');
|
|
111
|
+
|
|
112
|
+
// ✅ warn — unexpected but handled
|
|
113
|
+
logger.warn({ userId, attempts }, 'Login rate limit approaching');
|
|
114
|
+
|
|
115
|
+
// ✅ info — business event
|
|
116
|
+
logger.info({ couponId, code }, 'Coupon created');
|
|
117
|
+
logger.info({ port }, 'Server started');
|
|
118
|
+
|
|
119
|
+
// ✅ debug — developer detail
|
|
120
|
+
logger.debug({ query, params, durationMs }, 'DB query executed');
|
|
121
|
+
logger.debug({ cacheKey, hit: true }, 'Cache hit');
|
|
122
|
+
```
|
|
123
|
+
|
|
124
|
+
### ❌ DON'T: неправильные уровни
|
|
125
|
+
|
|
126
|
+
```js
|
|
127
|
+
// ❌ error для ожидаемых ситуаций
|
|
128
|
+
logger.error('User not found'); // это 404, не error — используй warn или info
|
|
129
|
+
|
|
130
|
+
// ❌ info для каждого debug
|
|
131
|
+
logger.info({ fullPayload: req.body }); // шум в production
|
|
132
|
+
|
|
133
|
+
// ❌ console.log в production
|
|
134
|
+
console.log('processing order...'); // не structured, блокирует, нет уровня
|
|
135
|
+
```
|
|
136
|
+
|
|
137
|
+
### Log levels по средам
|
|
138
|
+
|
|
139
|
+
| Среда | Уровень | Причина |
|
|
140
|
+
|-------|---------|---------|
|
|
141
|
+
| **Production** | `info` | Бизнес-события + ошибки |
|
|
142
|
+
| **Staging** | `debug` | Отладка без перегрузки |
|
|
143
|
+
| **Development** | `debug` или `trace` | Всё видно |
|
|
144
|
+
| **Test** | `silent` или `warn` | Не засорять test output |
|
|
145
|
+
|
|
146
|
+
---
|
|
147
|
+
|
|
148
|
+
## 3. Request Correlation
|
|
149
|
+
|
|
150
|
+
### ✅ DO: request ID middleware + child logger
|
|
151
|
+
|
|
152
|
+
```js
|
|
153
|
+
// middleware/requestId.js
|
|
154
|
+
import { randomUUID } from 'node:crypto';
|
|
155
|
+
|
|
156
|
+
/**
|
|
157
|
+
* Добавляет request ID и child logger к каждому запросу.
|
|
158
|
+
* @param {pino.Logger} logger - root logger.
|
|
159
|
+
*/
|
|
160
|
+
export function requestIdMiddleware(logger) {
|
|
161
|
+
return (req, _res, next) => {
|
|
162
|
+
req.id = req.headers['x-request-id'] || randomUUID();
|
|
163
|
+
|
|
164
|
+
// ✅ Child logger с request context — все логи автоматически включают requestId
|
|
165
|
+
req.log = logger.child({ requestId: req.id });
|
|
166
|
+
|
|
167
|
+
next();
|
|
168
|
+
};
|
|
169
|
+
}
|
|
170
|
+
|
|
171
|
+
// Использование в controller:
|
|
172
|
+
async function createCoupon(req, res) {
|
|
173
|
+
req.log.info({ code: req.body.code }, 'Creating coupon');
|
|
174
|
+
|
|
175
|
+
const coupon = await couponService.create(req.body);
|
|
176
|
+
|
|
177
|
+
req.log.info({ couponId: coupon.id }, 'Coupon created');
|
|
178
|
+
res.status(201).json(coupon);
|
|
179
|
+
}
|
|
180
|
+
|
|
181
|
+
// Output:
|
|
182
|
+
// {"level":"info","time":"...","requestId":"abc-123","code":"SAVE20","msg":"Creating coupon"}
|
|
183
|
+
// {"level":"info","time":"...","requestId":"abc-123","couponId":"c-1","msg":"Coupon created"}
|
|
184
|
+
// ← requestId автоматически во всех логах запроса!
|
|
185
|
+
```
|
|
186
|
+
|
|
187
|
+
### ✅ DO: correlation across services (distributed tracing)
|
|
188
|
+
|
|
189
|
+
```js
|
|
190
|
+
// ✅ Пробрасывать trace_id при вызове внешних сервисов
|
|
191
|
+
async function callPaymentService(orderId, requestId) {
|
|
192
|
+
return fetch('https://payments.example.com/charge', {
|
|
193
|
+
headers: {
|
|
194
|
+
'X-Request-ID': requestId, // ✅ тот же ID
|
|
195
|
+
'X-Trace-ID': requestId, // ✅ для distributed tracing
|
|
196
|
+
'Content-Type': 'application/json',
|
|
197
|
+
},
|
|
198
|
+
body: JSON.stringify({ orderId }),
|
|
199
|
+
});
|
|
200
|
+
}
|
|
201
|
+
```
|
|
202
|
+
|
|
203
|
+
---
|
|
204
|
+
|
|
205
|
+
## 4. Структурированные логи
|
|
206
|
+
|
|
207
|
+
### ✅ DO: JSON формат с контекстными полями
|
|
208
|
+
|
|
209
|
+
```js
|
|
210
|
+
// ✅ Structured — легко парсить, фильтровать, строить дашборды
|
|
211
|
+
logger.info({
|
|
212
|
+
event: 'coupon_applied',
|
|
213
|
+
couponId: 'c-123',
|
|
214
|
+
orderId: 'o-456',
|
|
215
|
+
discount: 20,
|
|
216
|
+
type: 'percent',
|
|
217
|
+
durationMs: 45,
|
|
218
|
+
}, 'Coupon applied to order');
|
|
219
|
+
|
|
220
|
+
// Output (JSON):
|
|
221
|
+
// {
|
|
222
|
+
// "level": "info",
|
|
223
|
+
// "time": "2026-03-13T03:00:00.000Z",
|
|
224
|
+
// "service": "smart-cart-rescue",
|
|
225
|
+
// "event": "coupon_applied",
|
|
226
|
+
// "couponId": "c-123",
|
|
227
|
+
// "orderId": "o-456",
|
|
228
|
+
// "discount": 20,
|
|
229
|
+
// "type": "percent",
|
|
230
|
+
// "durationMs": 45,
|
|
231
|
+
// "msg": "Coupon applied to order"
|
|
232
|
+
// }
|
|
233
|
+
```
|
|
234
|
+
|
|
235
|
+
### ❌ DON'T: строковые логи
|
|
236
|
+
|
|
237
|
+
```js
|
|
238
|
+
// ❌ Невозможно парсить, фильтровать, строить метрики
|
|
239
|
+
logger.info(`Coupon ${couponId} applied to order ${orderId} with ${discount}% discount`);
|
|
240
|
+
|
|
241
|
+
// ❌ Конкатенация — если couponId содержит спецсимволы → ломается
|
|
242
|
+
console.log('Processing order: ' + JSON.stringify(order)); // ❌
|
|
243
|
+
```
|
|
244
|
+
|
|
245
|
+
### ✅ DO: стандартные поля для логов
|
|
246
|
+
|
|
247
|
+
```js
|
|
248
|
+
// Рекомендуемые поля для единообразия:
|
|
249
|
+
{
|
|
250
|
+
// Автоматические (pino)
|
|
251
|
+
"level": "info",
|
|
252
|
+
"time": "...",
|
|
253
|
+
"service": "smart-cart-rescue",
|
|
254
|
+
"env": "production",
|
|
255
|
+
|
|
256
|
+
// Request context
|
|
257
|
+
"requestId": "abc-123",
|
|
258
|
+
"method": "POST",
|
|
259
|
+
"url": "/api/coupons",
|
|
260
|
+
"status": 201,
|
|
261
|
+
"durationMs": 45,
|
|
262
|
+
|
|
263
|
+
// Business context
|
|
264
|
+
"event": "coupon_created", // machine-readable event name
|
|
265
|
+
"userId": "u-789",
|
|
266
|
+
"couponId": "c-123",
|
|
267
|
+
|
|
268
|
+
// Error context (only for errors)
|
|
269
|
+
"err": {
|
|
270
|
+
"message": "...",
|
|
271
|
+
"stack": "...",
|
|
272
|
+
"type": "ValidationError"
|
|
273
|
+
},
|
|
274
|
+
|
|
275
|
+
// Message (human-readable)
|
|
276
|
+
"msg": "Coupon created successfully"
|
|
277
|
+
}
|
|
278
|
+
```
|
|
279
|
+
|
|
280
|
+
---
|
|
281
|
+
|
|
282
|
+
## 5. Redaction
|
|
283
|
+
|
|
284
|
+
### ✅ DO: автоматическая фильтрация PII/secrets
|
|
285
|
+
|
|
286
|
+
```js
|
|
287
|
+
// Через pino redact (настройка в section 1)
|
|
288
|
+
const logger = pino({
|
|
289
|
+
redact: {
|
|
290
|
+
paths: [
|
|
291
|
+
'req.headers.authorization',
|
|
292
|
+
'req.headers.cookie',
|
|
293
|
+
'*.password',
|
|
294
|
+
'*.token',
|
|
295
|
+
'*.secret',
|
|
296
|
+
'*.apiKey',
|
|
297
|
+
'*.ssn',
|
|
298
|
+
'*.creditCard',
|
|
299
|
+
'*.cardNumber',
|
|
300
|
+
'*.cvv',
|
|
301
|
+
],
|
|
302
|
+
censor: '[REDACTED]',
|
|
303
|
+
},
|
|
304
|
+
});
|
|
305
|
+
|
|
306
|
+
// Примеры:
|
|
307
|
+
logger.info({ user: { email: 'a@b.com', password: '123' } });
|
|
308
|
+
// Output: { user: { email: 'a@b.com', password: '[REDACTED]' } }
|
|
309
|
+
```
|
|
310
|
+
|
|
311
|
+
### ✅ DO: ручной sanitizer для сложных случаев
|
|
312
|
+
|
|
313
|
+
```js
|
|
314
|
+
/**
|
|
315
|
+
* Маскирует email для логов: a****@example.com
|
|
316
|
+
* @param {string} email
|
|
317
|
+
* @returns {string}
|
|
318
|
+
*/
|
|
319
|
+
function maskEmail(email) {
|
|
320
|
+
const [local, domain] = email.split('@');
|
|
321
|
+
return `${local[0]}${'*'.repeat(Math.min(local.length - 1, 4))}@${domain}`;
|
|
322
|
+
}
|
|
323
|
+
|
|
324
|
+
/**
|
|
325
|
+
* Маскирует номер карты: **** **** **** 1234
|
|
326
|
+
* @param {string} cardNumber
|
|
327
|
+
* @returns {string}
|
|
328
|
+
*/
|
|
329
|
+
function maskCard(cardNumber) {
|
|
330
|
+
return `**** **** **** ${cardNumber.slice(-4)}`;
|
|
331
|
+
}
|
|
332
|
+
|
|
333
|
+
// Использование:
|
|
334
|
+
logger.info({ email: maskEmail(user.email) }, 'User logged in');
|
|
335
|
+
```
|
|
336
|
+
|
|
337
|
+
---
|
|
338
|
+
|
|
339
|
+
## 6. Метрики
|
|
340
|
+
|
|
341
|
+
### ✅ DO: базовые метрики для API
|
|
342
|
+
|
|
343
|
+
```js
|
|
344
|
+
// middleware/metrics.js
|
|
345
|
+
|
|
346
|
+
/**
|
|
347
|
+
* Middleware для измерения latency и error rate.
|
|
348
|
+
* @param {pino.Logger} logger
|
|
349
|
+
*/
|
|
350
|
+
export function metricsMiddleware(logger) {
|
|
351
|
+
return (req, res, next) => {
|
|
352
|
+
const start = performance.now();
|
|
353
|
+
|
|
354
|
+
res.on('finish', () => {
|
|
355
|
+
const durationMs = Math.round(performance.now() - start);
|
|
356
|
+
|
|
357
|
+
// ✅ Structured log с метриками — можно строить дашборды
|
|
358
|
+
logger.info({
|
|
359
|
+
event: 'http_request',
|
|
360
|
+
method: req.method,
|
|
361
|
+
url: req.route?.path ?? req.originalUrl,
|
|
362
|
+
status: res.statusCode,
|
|
363
|
+
durationMs,
|
|
364
|
+
requestId: req.id,
|
|
365
|
+
});
|
|
366
|
+
|
|
367
|
+
// ✅ Warn для медленных запросов
|
|
368
|
+
if (durationMs > 2000) {
|
|
369
|
+
logger.warn({
|
|
370
|
+
event: 'slow_request',
|
|
371
|
+
method: req.method,
|
|
372
|
+
url: req.originalUrl,
|
|
373
|
+
durationMs,
|
|
374
|
+
}, 'Slow request detected');
|
|
375
|
+
}
|
|
376
|
+
});
|
|
377
|
+
|
|
378
|
+
next();
|
|
379
|
+
};
|
|
380
|
+
}
|
|
381
|
+
```
|
|
382
|
+
|
|
383
|
+
### ✅ DO: prom-client для Prometheus (если нужно)
|
|
384
|
+
|
|
385
|
+
```js
|
|
386
|
+
import { Registry, Counter, Histogram, collectDefaultMetrics } from 'prom-client';
|
|
387
|
+
|
|
388
|
+
const register = new Registry();
|
|
389
|
+
collectDefaultMetrics({ register });
|
|
390
|
+
|
|
391
|
+
// HTTP request counter
|
|
392
|
+
const httpRequestsTotal = new Counter({
|
|
393
|
+
name: 'http_requests_total',
|
|
394
|
+
help: 'Total HTTP requests',
|
|
395
|
+
labelNames: ['method', 'route', 'status'],
|
|
396
|
+
registers: [register],
|
|
397
|
+
});
|
|
398
|
+
|
|
399
|
+
// HTTP request duration
|
|
400
|
+
const httpRequestDuration = new Histogram({
|
|
401
|
+
name: 'http_request_duration_seconds',
|
|
402
|
+
help: 'HTTP request duration in seconds',
|
|
403
|
+
labelNames: ['method', 'route', 'status'],
|
|
404
|
+
buckets: [0.01, 0.05, 0.1, 0.5, 1, 2, 5],
|
|
405
|
+
registers: [register],
|
|
406
|
+
});
|
|
407
|
+
|
|
408
|
+
// Metrics endpoint
|
|
409
|
+
app.get('/metrics', async (_req, res) => {
|
|
410
|
+
res.set('Content-Type', register.contentType);
|
|
411
|
+
res.end(await register.metrics());
|
|
412
|
+
});
|
|
413
|
+
```
|
|
414
|
+
|
|
415
|
+
### Ключевые метрики
|
|
416
|
+
|
|
417
|
+
| Метрика | Тип | Зачем |
|
|
418
|
+
|---------|-----|-------|
|
|
419
|
+
| **Request rate** | Counter | Нагрузка |
|
|
420
|
+
| **Error rate** | Counter (status >= 400) | Здоровье |
|
|
421
|
+
| **Latency (p50, p95, p99)** | Histogram | Производительность |
|
|
422
|
+
| **Active connections** | Gauge | Капасити |
|
|
423
|
+
| **DB query duration** | Histogram | Bottlenecks |
|
|
424
|
+
| **Cache hit ratio** | Counter (hit/miss) | Эффективность кэша |
|
|
425
|
+
|
|
426
|
+
---
|
|
427
|
+
|
|
428
|
+
## 7. Health Checks
|
|
429
|
+
|
|
430
|
+
### ✅ DO: liveness + readiness endpoints
|
|
431
|
+
|
|
432
|
+
```js
|
|
433
|
+
// ✅ Liveness — приложение живо?
|
|
434
|
+
app.get('/health/live', (_req, res) => {
|
|
435
|
+
res.json({ status: 'ok' });
|
|
436
|
+
});
|
|
437
|
+
|
|
438
|
+
// ✅ Readiness — готово обрабатывать запросы? (DB connected, cache warm)
|
|
439
|
+
app.get('/health/ready', async (_req, res) => {
|
|
440
|
+
try {
|
|
441
|
+
// Проверяем все зависимости
|
|
442
|
+
await db.command({ ping: 1 });
|
|
443
|
+
|
|
444
|
+
res.json({
|
|
445
|
+
status: 'ok',
|
|
446
|
+
checks: {
|
|
447
|
+
database: 'connected',
|
|
448
|
+
uptime: process.uptime(),
|
|
449
|
+
},
|
|
450
|
+
});
|
|
451
|
+
} catch (err) {
|
|
452
|
+
logger.error({ err }, 'Readiness check failed');
|
|
453
|
+
res.status(503).json({
|
|
454
|
+
status: 'unhealthy',
|
|
455
|
+
checks: { database: 'disconnected' },
|
|
456
|
+
});
|
|
457
|
+
}
|
|
458
|
+
});
|
|
459
|
+
```
|
|
460
|
+
|
|
461
|
+
---
|
|
462
|
+
|
|
463
|
+
## 8. Anti-patterns
|
|
464
|
+
|
|
465
|
+
| ❌ Anti-pattern | ✅ Решение |
|
|
466
|
+
|----------------|-----------|
|
|
467
|
+
| `console.log` в production | pino structured logger |
|
|
468
|
+
| String interpolation в логах | JSON structured fields |
|
|
469
|
+
| PII/secrets в логах | pino `redact` + manual masking |
|
|
470
|
+
| `logger.error` для 404 | info/warn для ожидаемых событий |
|
|
471
|
+
| Нет request ID | requestId middleware + child logger |
|
|
472
|
+
| `logger.info(JSON.stringify(obj))` | `logger.info(obj, 'message')` |
|
|
473
|
+
| Log level `debug` в production | `info` в prod, `debug` в staging |
|
|
474
|
+
| Нет health check | `/health/live` + `/health/ready` |
|
|
475
|
+
| Метрики через логи-парсинг | Prometheus counters/histograms |
|
|
476
|
+
| Логирование всего payload | Логировать ID + event, не весь payload |
|
|
477
|
+
|
|
478
|
+
---
|
|
479
|
+
|
|
480
|
+
## Краткая шпаргалка
|
|
481
|
+
|
|
482
|
+
| Задача | Решение |
|
|
483
|
+
|--------|---------|
|
|
484
|
+
| Setup logger | `pino` + redact + pino-pretty (dev) |
|
|
485
|
+
| Request correlation | `req.id` + `logger.child({ requestId })` |
|
|
486
|
+
| Log format | JSON structured (fields + msg) |
|
|
487
|
+
| Redact PII | `pino.redact.paths` |
|
|
488
|
+
| Log levels | fatal > error > warn > info > debug > trace |
|
|
489
|
+
| Metrics | prom-client или structured logs |
|
|
490
|
+
| Health | `/health/live` + `/health/ready` |
|
|
491
|
+
| Slow requests | Warn if durationMs > threshold |
|
|
492
|
+
|
|
493
|
+
---
|
|
494
|
+
|
|
495
|
+
## См. также
|
|
496
|
+
- `$security_baseline_dev` — PII/secrets в логах
|
|
497
|
+
- `$node_express_beast_practices` — middleware pipeline, request logging
|
|
498
|
+
- `$observability_plan` — архитектурный план наблюдаемости
|
|
499
|
+
- `$observability_review` — ревью observability реализации
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "observability_logging",
|
|
3
3
|
"display_name": "Логирование и наблюдаемость",
|
|
4
|
-
"description": "Реализация наблюдаемости на уровне
|
|
4
|
+
"description": "Реализация наблюдаемости на уровне кода — структурированные логи (pino), request_id/trace_id корреляция, уровни логов, запрет утечки PII/секретов, базовые метрики, health checks. DO/DON'T примеры. Активируй при настройке логирования, добавлении метрик, или при вопросах «как правильно логировать».",
|
|
5
5
|
"default_prompt": "Используй $observability_logging, когда задача относится к навыку \"Логирование и наблюдаемость\".",
|
|
6
6
|
"triggers": [
|
|
7
7
|
"observability_logging",
|
|
8
8
|
"observability logging",
|
|
9
9
|
"Логирование и наблюдаемость",
|
|
10
|
-
"Реализация наблюдаемости на уровне кода"
|
|
10
|
+
"Реализация наблюдаемости на уровне кода — структурированные логи (pino), request_id/trace_id корреляция, уровни логов, запрет утечки PII/секретов, базовые метрики, health checks"
|
|
11
11
|
],
|
|
12
12
|
"capabilities": [
|
|
13
13
|
"observability",
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "observability_logging",
|
|
3
3
|
"display_name": "Логирование и наблюдаемость",
|
|
4
|
-
"description": "Реализация наблюдаемости на уровне
|
|
4
|
+
"description": "Реализация наблюдаемости на уровне кода — структурированные логи (pino), request_id/trace_id корреляция, уровни логов, запрет утечки PII/секретов, базовые метрики, health checks. DO/DON'T примеры. Активируй при настройке логирования, добавлении метрик, или при вопросах «как правильно логировать».",
|
|
5
5
|
"default_prompt": "Используй $observability_logging, когда задача относится к навыку \"Логирование и наблюдаемость\".",
|
|
6
6
|
"triggers": [
|
|
7
7
|
"observability_logging",
|
|
8
8
|
"observability logging",
|
|
9
9
|
"Логирование и наблюдаемость",
|
|
10
|
-
"Реализация наблюдаемости на уровне кода"
|
|
10
|
+
"Реализация наблюдаемости на уровне кода — структурированные логи (pino), request_id/trace_id корреляция, уровни логов, запрет утечки PII/секретов, базовые метрики, health checks"
|
|
11
11
|
],
|
|
12
12
|
"capabilities": [
|
|
13
13
|
"observability",
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "observability_logging",
|
|
3
3
|
"display_name": "Логирование и наблюдаемость",
|
|
4
|
-
"description": "Реализация наблюдаемости на уровне
|
|
4
|
+
"description": "Реализация наблюдаемости на уровне кода — структурированные логи (pino), request_id/trace_id корреляция, уровни логов, запрет утечки PII/секретов, базовые метрики, health checks. DO/DON'T примеры. Активируй при настройке логирования, добавлении метрик, или при вопросах «как правильно логировать».",
|
|
5
5
|
"default_prompt": "Используй $observability_logging, когда задача относится к навыку \"Логирование и наблюдаемость\".",
|
|
6
6
|
"triggers": [
|
|
7
7
|
"observability_logging",
|
|
8
8
|
"observability logging",
|
|
9
9
|
"Логирование и наблюдаемость",
|
|
10
|
-
"Реализация наблюдаемости на уровне кода"
|
|
10
|
+
"Реализация наблюдаемости на уровне кода — структурированные логи (pino), request_id/trace_id корреляция, уровни логов, запрет утечки PII/секретов, базовые метрики, health checks"
|
|
11
11
|
],
|
|
12
12
|
"capabilities": [
|
|
13
13
|
"observability",
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
interface:
|
|
2
2
|
display_name: "Логирование и наблюдаемость"
|
|
3
|
-
short_description: "Реализация наблюдаемости на уровне
|
|
3
|
+
short_description: "Реализация наблюдаемости на уровне кода — структурированные логи (pino), request_id/trace_id ко…"
|
|
4
4
|
default_prompt: "Используй $observability_logging, когда задача относится к навыку \"Логирование и наблюдаемость\"."
|
|
5
5
|
dependencies:
|
|
6
6
|
tools: []
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "observability_logging",
|
|
3
3
|
"display_name": "Логирование и наблюдаемость",
|
|
4
|
-
"description": "Реализация наблюдаемости на уровне
|
|
4
|
+
"description": "Реализация наблюдаемости на уровне кода — структурированные логи (pino), request_id/trace_id корреляция, уровни логов, запрет утечки PII/секретов, базовые метрики, health checks. DO/DON'T примеры. Активируй при настройке логирования, добавлении метрик, или при вопросах «как правильно логировать».",
|
|
5
5
|
"default_prompt": "Используй $observability_logging, когда задача относится к навыку \"Логирование и наблюдаемость\".",
|
|
6
6
|
"triggers": [
|
|
7
7
|
"observability_logging",
|
|
8
8
|
"observability logging",
|
|
9
9
|
"Логирование и наблюдаемость",
|
|
10
|
-
"Реализация наблюдаемости на уровне кода"
|
|
10
|
+
"Реализация наблюдаемости на уровне кода — структурированные логи (pino), request_id/trace_id корреляция, уровни логов, запрет утечки PII/секретов, базовые метрики, health checks"
|
|
11
11
|
],
|
|
12
12
|
"capabilities": [
|
|
13
13
|
"observability",
|