@agentskillkit/agent-skills 1.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.agent/.shared/ui-ux-pro-max/data/charts.csv +26 -0
- package/.agent/.shared/ui-ux-pro-max/data/colors.csv +97 -0
- package/.agent/.shared/ui-ux-pro-max/data/icons.csv +101 -0
- package/.agent/.shared/ui-ux-pro-max/data/landing.csv +31 -0
- package/.agent/.shared/ui-ux-pro-max/data/products.csv +97 -0
- package/.agent/.shared/ui-ux-pro-max/data/prompts.csv +24 -0
- package/.agent/.shared/ui-ux-pro-max/data/react-performance.csv +45 -0
- package/.agent/.shared/ui-ux-pro-max/data/stacks/flutter.csv +53 -0
- package/.agent/.shared/ui-ux-pro-max/data/stacks/html-tailwind.csv +56 -0
- package/.agent/.shared/ui-ux-pro-max/data/stacks/jetpack-compose.csv +53 -0
- package/.agent/.shared/ui-ux-pro-max/data/stacks/nextjs.csv +53 -0
- package/.agent/.shared/ui-ux-pro-max/data/stacks/nuxt-ui.csv +51 -0
- package/.agent/.shared/ui-ux-pro-max/data/stacks/nuxtjs.csv +59 -0
- package/.agent/.shared/ui-ux-pro-max/data/stacks/react-native.csv +52 -0
- package/.agent/.shared/ui-ux-pro-max/data/stacks/react.csv +54 -0
- package/.agent/.shared/ui-ux-pro-max/data/stacks/shadcn.csv +61 -0
- package/.agent/.shared/ui-ux-pro-max/data/stacks/svelte.csv +54 -0
- package/.agent/.shared/ui-ux-pro-max/data/stacks/swiftui.csv +51 -0
- package/.agent/.shared/ui-ux-pro-max/data/stacks/vue.csv +50 -0
- package/.agent/.shared/ui-ux-pro-max/data/styles.csv +59 -0
- package/.agent/.shared/ui-ux-pro-max/data/typography.csv +58 -0
- package/.agent/.shared/ui-ux-pro-max/data/ui-reasoning.csv +101 -0
- package/.agent/.shared/ui-ux-pro-max/data/ux-guidelines.csv +100 -0
- package/.agent/.shared/ui-ux-pro-max/data/web-interface.csv +31 -0
- package/.agent/.shared/ui-ux-pro-max/scripts/__pycache__/core.cpython-313.pyc +0 -0
- package/.agent/.shared/ui-ux-pro-max/scripts/__pycache__/design_system.cpython-313.pyc +0 -0
- package/.agent/.shared/ui-ux-pro-max/scripts/core.py +258 -0
- package/.agent/.shared/ui-ux-pro-max/scripts/design_system.py +1067 -0
- package/.agent/.shared/ui-ux-pro-max/scripts/search.py +106 -0
- package/.agent/ARCHITECTURE.md +292 -0
- package/.agent/GEMINI.md +374 -0
- package/.agent/agents/backend-specialist.md +263 -0
- package/.agent/agents/code-archaeologist.md +106 -0
- package/.agent/agents/database-architect.md +226 -0
- package/.agent/agents/debugger.md +225 -0
- package/.agent/agents/devops-engineer.md +242 -0
- package/.agent/agents/documentation-writer.md +104 -0
- package/.agent/agents/explorer-agent.md +73 -0
- package/.agent/agents/frontend-specialist.md +556 -0
- package/.agent/agents/game-developer.md +162 -0
- package/.agent/agents/mobile-developer.md +377 -0
- package/.agent/agents/orchestrator.md +416 -0
- package/.agent/agents/penetration-tester.md +188 -0
- package/.agent/agents/performance-optimizer.md +187 -0
- package/.agent/agents/product-manager.md +112 -0
- package/.agent/agents/product-owner.md +95 -0
- package/.agent/agents/project-planner.md +406 -0
- package/.agent/agents/qa-automation-engineer.md +103 -0
- package/.agent/agents/security-auditor.md +170 -0
- package/.agent/agents/seo-specialist.md +111 -0
- package/.agent/agents/test-engineer.md +158 -0
- package/.agent/knowledge/lessons-learned.yaml +17 -0
- package/.agent/rules/GEMINI.md +253 -0
- package/.agent/scripts/auto_preview.py +148 -0
- package/.agent/scripts/checklist.py +217 -0
- package/.agent/scripts/session_manager.py +120 -0
- package/.agent/scripts/verify_all.py +327 -0
- package/.agent/skills/aesthetic/SKILL.md +121 -0
- package/.agent/skills/aesthetic/assets/design-guideline-template.md +163 -0
- package/.agent/skills/aesthetic/assets/design-story-template.md +135 -0
- package/.agent/skills/aesthetic/references/design-principles.md +62 -0
- package/.agent/skills/aesthetic/references/design-resources.md +75 -0
- package/.agent/skills/aesthetic/references/micro-interactions.md +53 -0
- package/.agent/skills/aesthetic/references/storytelling-design.md +50 -0
- package/.agent/skills/api-patterns/SKILL.md +81 -0
- package/.agent/skills/api-patterns/rules/api-style.md +42 -0
- package/.agent/skills/api-patterns/rules/auth.md +24 -0
- package/.agent/skills/api-patterns/rules/documentation.md +26 -0
- package/.agent/skills/api-patterns/rules/graphql.md +41 -0
- package/.agent/skills/api-patterns/rules/rate-limiting.md +31 -0
- package/.agent/skills/api-patterns/rules/response.md +37 -0
- package/.agent/skills/api-patterns/rules/rest.md +40 -0
- package/.agent/skills/api-patterns/rules/security-testing.md +122 -0
- package/.agent/skills/api-patterns/rules/trpc.md +41 -0
- package/.agent/skills/api-patterns/rules/versioning.md +22 -0
- package/.agent/skills/api-patterns/scripts/api_validator.py +211 -0
- package/.agent/skills/app-builder/SKILL.md +75 -0
- package/.agent/skills/app-builder/agent-coordination.md +71 -0
- package/.agent/skills/app-builder/feature-building.md +53 -0
- package/.agent/skills/app-builder/project-detection.md +34 -0
- package/.agent/skills/app-builder/scaffolding.md +118 -0
- package/.agent/skills/app-builder/tech-stack.md +40 -0
- package/.agent/skills/app-builder/templates/SKILL.md +39 -0
- package/.agent/skills/app-builder/templates/astro-static/TEMPLATE.md +76 -0
- package/.agent/skills/app-builder/templates/chrome-extension/TEMPLATE.md +92 -0
- package/.agent/skills/app-builder/templates/cli-tool/TEMPLATE.md +88 -0
- package/.agent/skills/app-builder/templates/electron-desktop/TEMPLATE.md +88 -0
- package/.agent/skills/app-builder/templates/express-api/TEMPLATE.md +83 -0
- package/.agent/skills/app-builder/templates/flutter-app/TEMPLATE.md +90 -0
- package/.agent/skills/app-builder/templates/monorepo-turborepo/TEMPLATE.md +90 -0
- package/.agent/skills/app-builder/templates/nextjs-fullstack/TEMPLATE.md +82 -0
- package/.agent/skills/app-builder/templates/nextjs-saas/TEMPLATE.md +100 -0
- package/.agent/skills/app-builder/templates/nextjs-static/TEMPLATE.md +106 -0
- package/.agent/skills/app-builder/templates/nuxt-app/TEMPLATE.md +101 -0
- package/.agent/skills/app-builder/templates/python-fastapi/TEMPLATE.md +83 -0
- package/.agent/skills/app-builder/templates/react-native-app/TEMPLATE.md +93 -0
- package/.agent/skills/architecture/SKILL.md +55 -0
- package/.agent/skills/architecture/context-discovery.md +43 -0
- package/.agent/skills/architecture/examples.md +94 -0
- package/.agent/skills/architecture/pattern-selection.md +68 -0
- package/.agent/skills/architecture/patterns-reference.md +50 -0
- package/.agent/skills/architecture/trade-off-analysis.md +77 -0
- package/.agent/skills/bash-linux/SKILL.md +199 -0
- package/.agent/skills/behavioral-modes/SKILL.md +242 -0
- package/.agent/skills/brainstorming/SKILL.md +163 -0
- package/.agent/skills/brainstorming/dynamic-questioning.md +350 -0
- package/.agent/skills/clean-code/SKILL.md +201 -0
- package/.agent/skills/code-review-checklist/SKILL.md +109 -0
- package/.agent/skills/code-reviewer/.skill-source.json +8 -0
- package/.agent/skills/code-reviewer/SKILL.md +32 -0
- package/.agent/skills/code-reviewer/enforcement/checklists/backend-api-review-checklist.md +5 -0
- package/.agent/skills/code-reviewer/examples/approved-pr/review-output.md +76 -0
- package/.agent/skills/code-reviewer/examples/rejected-pr/review-output.md +99 -0
- package/.agent/skills/code-reviewer/examples/scenarios.md +3 -0
- package/.agent/skills/code-reviewer/metadata/doctrine-mapping.yaml +167 -0
- package/.agent/skills/code-reviewer/metadata/intent-triggers.yaml +41 -0
- package/.agent/skills/code-reviewer/resources/links.md +59 -0
- package/.agent/skills/code-reviewer/scripts/audit_pr.js +8 -0
- package/.agent/skills/code-reviewer/scripts/audit_pr.v2.js +417 -0
- package/.agent/skills/code-reviewer/scripts/validate_doctrine.js +307 -0
- package/.agent/skills/context-engineering/SKILL.md +86 -0
- package/.agent/skills/context-engineering/references/context-compression.md +84 -0
- package/.agent/skills/context-engineering/references/context-degradation.md +93 -0
- package/.agent/skills/context-engineering/references/context-fundamentals.md +75 -0
- package/.agent/skills/context-engineering/references/context-optimization.md +82 -0
- package/.agent/skills/context-engineering/references/evaluation.md +89 -0
- package/.agent/skills/context-engineering/references/memory-systems.md +88 -0
- package/.agent/skills/context-engineering/references/multi-agent-patterns.md +90 -0
- package/.agent/skills/context-engineering/references/project-development.md +97 -0
- package/.agent/skills/context-engineering/references/tool-design.md +86 -0
- package/.agent/skills/context-engineering/scripts/compression_evaluator.py +329 -0
- package/.agent/skills/context-engineering/scripts/context_analyzer.py +294 -0
- package/.agent/skills/database-design/SKILL.md +52 -0
- package/.agent/skills/database-design/database-selection.md +43 -0
- package/.agent/skills/database-design/indexing.md +39 -0
- package/.agent/skills/database-design/migrations.md +48 -0
- package/.agent/skills/database-design/optimization.md +36 -0
- package/.agent/skills/database-design/orm-selection.md +30 -0
- package/.agent/skills/database-design/schema-design.md +56 -0
- package/.agent/skills/database-design/scripts/schema_validator.py +172 -0
- package/.agent/skills/debugging/SKILL.md +42 -0
- package/.agent/skills/debugging/defense-in-depth/SKILL.md +130 -0
- package/.agent/skills/debugging/root-cause-tracing/SKILL.md +177 -0
- package/.agent/skills/debugging/root-cause-tracing/find-polluter.sh +63 -0
- package/.agent/skills/debugging/verification-before-completion/SKILL.md +142 -0
- package/.agent/skills/deployment-procedures/SKILL.md +241 -0
- package/.agent/skills/doc.md +177 -0
- package/.agent/skills/document-skills/SKILL.md +49 -0
- package/.agent/skills/document-skills/docx/LICENSE.txt +30 -0
- package/.agent/skills/document-skills/docx/SKILL.md +197 -0
- package/.agent/skills/document-skills/docx/docx-js.md +350 -0
- package/.agent/skills/document-skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-chart.xsd +1499 -0
- package/.agent/skills/document-skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-chartDrawing.xsd +146 -0
- package/.agent/skills/document-skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-diagram.xsd +1085 -0
- package/.agent/skills/document-skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-lockedCanvas.xsd +11 -0
- package/.agent/skills/document-skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-main.xsd +3081 -0
- package/.agent/skills/document-skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-picture.xsd +23 -0
- package/.agent/skills/document-skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-spreadsheetDrawing.xsd +185 -0
- package/.agent/skills/document-skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-wordprocessingDrawing.xsd +287 -0
- package/.agent/skills/document-skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/pml.xsd +1676 -0
- package/.agent/skills/document-skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-additionalCharacteristics.xsd +28 -0
- package/.agent/skills/document-skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-bibliography.xsd +144 -0
- package/.agent/skills/document-skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-commonSimpleTypes.xsd +174 -0
- package/.agent/skills/document-skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-customXmlDataProperties.xsd +25 -0
- package/.agent/skills/document-skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-customXmlSchemaProperties.xsd +18 -0
- package/.agent/skills/document-skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesCustom.xsd +59 -0
- package/.agent/skills/document-skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesExtended.xsd +56 -0
- package/.agent/skills/document-skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesVariantTypes.xsd +195 -0
- package/.agent/skills/document-skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-math.xsd +582 -0
- package/.agent/skills/document-skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-relationshipReference.xsd +25 -0
- package/.agent/skills/document-skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/sml.xsd +4439 -0
- package/.agent/skills/document-skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/vml-main.xsd +570 -0
- package/.agent/skills/document-skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/vml-officeDrawing.xsd +509 -0
- package/.agent/skills/document-skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/vml-presentationDrawing.xsd +12 -0
- package/.agent/skills/document-skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/vml-spreadsheetDrawing.xsd +108 -0
- package/.agent/skills/document-skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/vml-wordprocessingDrawing.xsd +96 -0
- package/.agent/skills/document-skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/wml.xsd +3646 -0
- package/.agent/skills/document-skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/xml.xsd +116 -0
- package/.agent/skills/document-skills/docx/ooxml/schemas/ecma/fouth-edition/opc-contentTypes.xsd +42 -0
- package/.agent/skills/document-skills/docx/ooxml/schemas/ecma/fouth-edition/opc-coreProperties.xsd +50 -0
- package/.agent/skills/document-skills/docx/ooxml/schemas/ecma/fouth-edition/opc-digSig.xsd +49 -0
- package/.agent/skills/document-skills/docx/ooxml/schemas/ecma/fouth-edition/opc-relationships.xsd +33 -0
- package/.agent/skills/document-skills/docx/ooxml/schemas/mce/mc.xsd +75 -0
- package/.agent/skills/document-skills/docx/ooxml/schemas/microsoft/wml-2010.xsd +560 -0
- package/.agent/skills/document-skills/docx/ooxml/schemas/microsoft/wml-2012.xsd +67 -0
- package/.agent/skills/document-skills/docx/ooxml/schemas/microsoft/wml-2018.xsd +14 -0
- package/.agent/skills/document-skills/docx/ooxml/schemas/microsoft/wml-cex-2018.xsd +20 -0
- package/.agent/skills/document-skills/docx/ooxml/schemas/microsoft/wml-cid-2016.xsd +13 -0
- package/.agent/skills/document-skills/docx/ooxml/schemas/microsoft/wml-sdtdatahash-2020.xsd +4 -0
- package/.agent/skills/document-skills/docx/ooxml/schemas/microsoft/wml-symex-2015.xsd +8 -0
- package/.agent/skills/document-skills/docx/ooxml/scripts/pack.py +159 -0
- package/.agent/skills/document-skills/docx/ooxml/scripts/unpack.py +29 -0
- package/.agent/skills/document-skills/docx/ooxml/scripts/validate.py +69 -0
- package/.agent/skills/document-skills/docx/ooxml/scripts/validation/__init__.py +15 -0
- package/.agent/skills/document-skills/docx/ooxml/scripts/validation/base.py +951 -0
- package/.agent/skills/document-skills/docx/ooxml/scripts/validation/docx.py +274 -0
- package/.agent/skills/document-skills/docx/ooxml/scripts/validation/pptx.py +315 -0
- package/.agent/skills/document-skills/docx/ooxml/scripts/validation/redlining.py +279 -0
- package/.agent/skills/document-skills/docx/ooxml.md +610 -0
- package/.agent/skills/document-skills/docx/scripts/__init__.py +1 -0
- package/.agent/skills/document-skills/docx/scripts/document.py +1276 -0
- package/.agent/skills/document-skills/docx/scripts/templates/comments.xml +3 -0
- package/.agent/skills/document-skills/docx/scripts/templates/commentsExtended.xml +3 -0
- package/.agent/skills/document-skills/docx/scripts/templates/commentsExtensible.xml +3 -0
- package/.agent/skills/document-skills/docx/scripts/templates/commentsIds.xml +3 -0
- package/.agent/skills/document-skills/docx/scripts/templates/people.xml +3 -0
- package/.agent/skills/document-skills/docx/scripts/utilities.py +374 -0
- package/.agent/skills/document-skills/pdf/LICENSE.txt +30 -0
- package/.agent/skills/document-skills/pdf/SKILL.md +294 -0
- package/.agent/skills/document-skills/pdf/forms.md +205 -0
- package/.agent/skills/document-skills/pdf/reference.md +612 -0
- package/.agent/skills/document-skills/pdf/scripts/check_bounding_boxes.py +70 -0
- package/.agent/skills/document-skills/pdf/scripts/check_bounding_boxes_test.py +226 -0
- package/.agent/skills/document-skills/pdf/scripts/check_fillable_fields.py +12 -0
- package/.agent/skills/document-skills/pdf/scripts/convert_pdf_to_images.py +35 -0
- package/.agent/skills/document-skills/pdf/scripts/create_validation_image.py +41 -0
- package/.agent/skills/document-skills/pdf/scripts/extract_form_field_info.py +152 -0
- package/.agent/skills/document-skills/pdf/scripts/fill_fillable_fields.py +114 -0
- package/.agent/skills/document-skills/pdf/scripts/fill_pdf_form_with_annotations.py +108 -0
- package/.agent/skills/document-skills/pptx/LICENSE.txt +30 -0
- package/.agent/skills/document-skills/pptx/SKILL.md +484 -0
- package/.agent/skills/document-skills/pptx/html2pptx.md +625 -0
- package/.agent/skills/document-skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-chart.xsd +1499 -0
- package/.agent/skills/document-skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-chartDrawing.xsd +146 -0
- package/.agent/skills/document-skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-diagram.xsd +1085 -0
- package/.agent/skills/document-skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-lockedCanvas.xsd +11 -0
- package/.agent/skills/document-skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-main.xsd +3081 -0
- package/.agent/skills/document-skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-picture.xsd +23 -0
- package/.agent/skills/document-skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-spreadsheetDrawing.xsd +185 -0
- package/.agent/skills/document-skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-wordprocessingDrawing.xsd +287 -0
- package/.agent/skills/document-skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/pml.xsd +1676 -0
- package/.agent/skills/document-skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-additionalCharacteristics.xsd +28 -0
- package/.agent/skills/document-skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-bibliography.xsd +144 -0
- package/.agent/skills/document-skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-commonSimpleTypes.xsd +174 -0
- package/.agent/skills/document-skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-customXmlDataProperties.xsd +25 -0
- package/.agent/skills/document-skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-customXmlSchemaProperties.xsd +18 -0
- package/.agent/skills/document-skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesCustom.xsd +59 -0
- package/.agent/skills/document-skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesExtended.xsd +56 -0
- package/.agent/skills/document-skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesVariantTypes.xsd +195 -0
- package/.agent/skills/document-skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-math.xsd +582 -0
- package/.agent/skills/document-skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-relationshipReference.xsd +25 -0
- package/.agent/skills/document-skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/sml.xsd +4439 -0
- package/.agent/skills/document-skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/vml-main.xsd +570 -0
- package/.agent/skills/document-skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/vml-officeDrawing.xsd +509 -0
- package/.agent/skills/document-skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/vml-presentationDrawing.xsd +12 -0
- package/.agent/skills/document-skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/vml-spreadsheetDrawing.xsd +108 -0
- package/.agent/skills/document-skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/vml-wordprocessingDrawing.xsd +96 -0
- package/.agent/skills/document-skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/wml.xsd +3646 -0
- package/.agent/skills/document-skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/xml.xsd +116 -0
- package/.agent/skills/document-skills/pptx/ooxml/schemas/ecma/fouth-edition/opc-contentTypes.xsd +42 -0
- package/.agent/skills/document-skills/pptx/ooxml/schemas/ecma/fouth-edition/opc-coreProperties.xsd +50 -0
- package/.agent/skills/document-skills/pptx/ooxml/schemas/ecma/fouth-edition/opc-digSig.xsd +49 -0
- package/.agent/skills/document-skills/pptx/ooxml/schemas/ecma/fouth-edition/opc-relationships.xsd +33 -0
- package/.agent/skills/document-skills/pptx/ooxml/schemas/mce/mc.xsd +75 -0
- package/.agent/skills/document-skills/pptx/ooxml/schemas/microsoft/wml-2010.xsd +560 -0
- package/.agent/skills/document-skills/pptx/ooxml/schemas/microsoft/wml-2012.xsd +67 -0
- package/.agent/skills/document-skills/pptx/ooxml/schemas/microsoft/wml-2018.xsd +14 -0
- package/.agent/skills/document-skills/pptx/ooxml/schemas/microsoft/wml-cex-2018.xsd +20 -0
- package/.agent/skills/document-skills/pptx/ooxml/schemas/microsoft/wml-cid-2016.xsd +13 -0
- package/.agent/skills/document-skills/pptx/ooxml/schemas/microsoft/wml-sdtdatahash-2020.xsd +4 -0
- package/.agent/skills/document-skills/pptx/ooxml/schemas/microsoft/wml-symex-2015.xsd +8 -0
- package/.agent/skills/document-skills/pptx/ooxml/scripts/pack.py +159 -0
- package/.agent/skills/document-skills/pptx/ooxml/scripts/unpack.py +29 -0
- package/.agent/skills/document-skills/pptx/ooxml/scripts/validate.py +69 -0
- package/.agent/skills/document-skills/pptx/ooxml/scripts/validation/__init__.py +15 -0
- package/.agent/skills/document-skills/pptx/ooxml/scripts/validation/base.py +951 -0
- package/.agent/skills/document-skills/pptx/ooxml/scripts/validation/docx.py +274 -0
- package/.agent/skills/document-skills/pptx/ooxml/scripts/validation/pptx.py +315 -0
- package/.agent/skills/document-skills/pptx/ooxml/scripts/validation/redlining.py +279 -0
- package/.agent/skills/document-skills/pptx/ooxml.md +427 -0
- package/.agent/skills/document-skills/pptx/scripts/html2pptx.js +979 -0
- package/.agent/skills/document-skills/pptx/scripts/inventory.py +1020 -0
- package/.agent/skills/document-skills/pptx/scripts/rearrange.py +231 -0
- package/.agent/skills/document-skills/pptx/scripts/replace.py +385 -0
- package/.agent/skills/document-skills/pptx/scripts/thumbnail.py +450 -0
- package/.agent/skills/document-skills/xlsx/LICENSE.txt +30 -0
- package/.agent/skills/document-skills/xlsx/SKILL.md +289 -0
- package/.agent/skills/document-skills/xlsx/recalc.py +178 -0
- package/.agent/skills/documentation-templates/SKILL.md +194 -0
- package/.agent/skills/frontend/SKILL.md +38 -0
- package/.agent/skills/frontend/rules/_sections.md +46 -0
- package/.agent/skills/frontend/rules/_template.md +28 -0
- package/.agent/skills/frontend/rules/advanced-event-handler-refs.md +55 -0
- package/.agent/skills/frontend/rules/advanced-init-once.md +42 -0
- package/.agent/skills/frontend/rules/advanced-use-latest.md +39 -0
- package/.agent/skills/frontend/rules/async-api-routes.md +38 -0
- package/.agent/skills/frontend/rules/async-defer-await.md +80 -0
- package/.agent/skills/frontend/rules/async-dependencies.md +51 -0
- package/.agent/skills/frontend/rules/async-parallel.md +28 -0
- package/.agent/skills/frontend/rules/async-suspense-boundaries.md +99 -0
- package/.agent/skills/frontend/rules/bundle-barrel-imports.md +59 -0
- package/.agent/skills/frontend/rules/bundle-conditional.md +31 -0
- package/.agent/skills/frontend/rules/bundle-defer-third-party.md +49 -0
- package/.agent/skills/frontend/rules/bundle-dynamic-imports.md +35 -0
- package/.agent/skills/frontend/rules/bundle-preload.md +50 -0
- package/.agent/skills/frontend/rules/client-event-listeners.md +74 -0
- package/.agent/skills/frontend/rules/client-localstorage-schema.md +71 -0
- package/.agent/skills/frontend/rules/client-passive-event-listeners.md +48 -0
- package/.agent/skills/frontend/rules/client-swr-dedup.md +56 -0
- package/.agent/skills/frontend/rules/js-batch-dom-css.md +107 -0
- package/.agent/skills/frontend/rules/js-cache-function-results.md +80 -0
- package/.agent/skills/frontend/rules/js-cache-property-access.md +28 -0
- package/.agent/skills/frontend/rules/js-cache-storage.md +70 -0
- package/.agent/skills/frontend/rules/js-combine-iterations.md +32 -0
- package/.agent/skills/frontend/rules/js-early-exit.md +50 -0
- package/.agent/skills/frontend/rules/js-hoist-regexp.md +45 -0
- package/.agent/skills/frontend/rules/js-index-maps.md +37 -0
- package/.agent/skills/frontend/rules/js-length-check-first.md +49 -0
- package/.agent/skills/frontend/rules/js-min-max-loop.md +82 -0
- package/.agent/skills/frontend/rules/js-set-map-lookups.md +24 -0
- package/.agent/skills/frontend/rules/js-tosorted-immutable.md +57 -0
- package/.agent/skills/frontend/rules/rendering-activity.md +26 -0
- package/.agent/skills/frontend/rules/rendering-animate-svg-wrapper.md +47 -0
- package/.agent/skills/frontend/rules/rendering-conditional-render.md +40 -0
- package/.agent/skills/frontend/rules/rendering-content-visibility.md +38 -0
- package/.agent/skills/frontend/rules/rendering-hoist-jsx.md +46 -0
- package/.agent/skills/frontend/rules/rendering-hydration-no-flicker.md +82 -0
- package/.agent/skills/frontend/rules/rendering-hydration-suppress-warning.md +30 -0
- package/.agent/skills/frontend/rules/rendering-svg-precision.md +28 -0
- package/.agent/skills/frontend/rules/rendering-usetransition-loading.md +75 -0
- package/.agent/skills/frontend/rules/rerender-defer-reads.md +39 -0
- package/.agent/skills/frontend/rules/rerender-dependencies.md +45 -0
- package/.agent/skills/frontend/rules/rerender-derived-state-no-effect.md +40 -0
- package/.agent/skills/frontend/rules/rerender-derived-state.md +29 -0
- package/.agent/skills/frontend/rules/rerender-functional-setstate.md +74 -0
- package/.agent/skills/frontend/rules/rerender-lazy-state-init.md +58 -0
- package/.agent/skills/frontend/rules/rerender-memo-with-default-value.md +38 -0
- package/.agent/skills/frontend/rules/rerender-memo.md +44 -0
- package/.agent/skills/frontend/rules/rerender-move-effect-to-event.md +45 -0
- package/.agent/skills/frontend/rules/rerender-simple-expression-in-memo.md +35 -0
- package/.agent/skills/frontend/rules/rerender-transitions.md +40 -0
- package/.agent/skills/frontend/rules/rerender-use-ref-transient-values.md +73 -0
- package/.agent/skills/frontend/rules/schema.json +34 -0
- package/.agent/skills/frontend/rules/server-after-nonblocking.md +73 -0
- package/.agent/skills/frontend/rules/server-auth-actions.md +96 -0
- package/.agent/skills/frontend/rules/server-cache-lru.md +41 -0
- package/.agent/skills/frontend/rules/server-cache-react.md +76 -0
- package/.agent/skills/frontend/rules/server-dedup-props.md +65 -0
- package/.agent/skills/frontend/rules/server-parallel-fetching.md +83 -0
- package/.agent/skills/frontend/rules/server-serialization.md +38 -0
- package/.agent/skills/frontend-design/SKILL.md +33 -0
- package/.agent/skills/frontend-design/rules/animation-guide.md +331 -0
- package/.agent/skills/frontend-design/rules/color-system.md +311 -0
- package/.agent/skills/frontend-design/rules/decision-trees.md +418 -0
- package/.agent/skills/frontend-design/rules/motion-graphics.md +306 -0
- package/.agent/skills/frontend-design/rules/typography-system.md +345 -0
- package/.agent/skills/frontend-design/rules/ux-psychology.md +541 -0
- package/.agent/skills/frontend-design/rules/visual-effects.md +383 -0
- package/.agent/skills/frontend-design/scripts/accessibility_checker.py +183 -0
- package/.agent/skills/frontend-design/scripts/ux_audit.py +722 -0
- package/.agent/skills/game-development/2d-games/SKILL.md +119 -0
- package/.agent/skills/game-development/3d-games/SKILL.md +135 -0
- package/.agent/skills/game-development/SKILL.md +167 -0
- package/.agent/skills/game-development/game-art/SKILL.md +185 -0
- package/.agent/skills/game-development/game-audio/SKILL.md +190 -0
- package/.agent/skills/game-development/game-design/SKILL.md +129 -0
- package/.agent/skills/game-development/mobile-games/SKILL.md +108 -0
- package/.agent/skills/game-development/multiplayer/SKILL.md +132 -0
- package/.agent/skills/game-development/pc-games/SKILL.md +144 -0
- package/.agent/skills/game-development/vr-ar/SKILL.md +123 -0
- package/.agent/skills/game-development/web-games/SKILL.md +150 -0
- package/.agent/skills/geo-fundamentals/SKILL.md +156 -0
- package/.agent/skills/geo-fundamentals/scripts/geo_checker.py +289 -0
- package/.agent/skills/git-conventions/.skill-source.json +8 -0
- package/.agent/skills/git-conventions/SKILL.md +28 -0
- package/.agent/skills/git-conventions/enforcement/commit-validation-rules.md +55 -0
- package/.agent/skills/git-conventions/examples/bad-commits.md +201 -0
- package/.agent/skills/git-conventions/examples/good-commits.md +135 -0
- package/.agent/skills/git-conventions/metadata/commit-config.yaml +79 -0
- package/.agent/skills/git-conventions/metadata/intent-triggers.yaml +25 -0
- package/.agent/skills/git-conventions/metadata/scope-mapping.yaml +83 -0
- package/.agent/skills/git-conventions/resources/BEST_PRACTICES.md +121 -0
- package/.agent/skills/git-conventions/resources/references.md +53 -0
- package/.agent/skills/git-conventions/scripts/format-commit.js +393 -0
- package/.agent/skills/git-conventions/scripts/validate-commit-msg.sh +27 -0
- package/.agent/skills/governance/.skill-source.json +8 -0
- package/.agent/skills/governance/CHANGELOG.md +222 -0
- package/.agent/skills/governance/README.md +250 -0
- package/.agent/skills/governance/SKILL.md +199 -0
- package/.agent/skills/governance/VERSION +4 -0
- package/.agent/skills/governance/examples/violation-backend-mutation/after.tsx +59 -0
- package/.agent/skills/governance/examples/violation-backend-mutation/before.tsx +42 -0
- package/.agent/skills/governance/examples/violation-backend-mutation/explanation.md +87 -0
- package/.agent/skills/governance/examples/violation-chart-injection/after.tsx +99 -0
- package/.agent/skills/governance/examples/violation-chart-injection/before.tsx +57 -0
- package/.agent/skills/governance/examples/violation-chart-injection/explanation.md +116 -0
- package/.agent/skills/governance/knowledge/lessons-learned.yaml +3 -0
- package/.agent/skills/governance/metadata/precedence.yaml +117 -0
- package/.agent/skills/governance/metadata/scope-map.yaml +156 -0
- package/.agent/skills/governance/proposals/v1.1-change-proposal-template.md +197 -0
- package/.agent/skills/governance/resources/AUTHORITY_MODEL.md +111 -0
- package/.agent/skills/governance/resources/ENFORCEMENT_GUIDE.md +242 -0
- package/.agent/skills/governance/resources/LOAD_ORDER.md +82 -0
- package/.agent/skills/governance/rules/constitution/coinpika-master-constitution.md +206 -0
- package/.agent/skills/governance/rules/doctrines/architecture/coinpika-architecture-doctrine.md +184 -0
- package/.agent/skills/governance/rules/doctrines/backend/coinpika-backend-data-engine-doctrine.md +214 -0
- package/.agent/skills/governance/rules/doctrines/commercial/coinpika-commercial-guardrails-doctrine.md +192 -0
- package/.agent/skills/governance/rules/doctrines/data/coinpika-chart-data-doctrine.md +198 -0
- package/.agent/skills/governance/rules/doctrines/frontend/coinpika-frontend-mobile-doctrine.md +165 -0
- package/.agent/skills/governance/rules/doctrines/frontend/coinpika-swipe-tabs-doctrine.md +172 -0
- package/.agent/skills/governance/rules/doctrines/learning/coinpika-learning-engine-doctrine.md +188 -0
- package/.agent/skills/governance/rules/doctrines/performance/coinpika-performance-doctrine.md +176 -0
- package/.agent/skills/governance/rules/doctrines/review/coinpika-code-review-doctrine.md +170 -0
- package/.agent/skills/governance/rules/enforcement/agents/coinpika-agent-enforcement-protocol.md +214 -0
- package/.agent/skills/governance/rules/enforcement/agents/coinpika-agent-system-prompt.md +192 -0
- package/.agent/skills/governance/rules/enforcement/checklists/backend-api-review-checklist.md +127 -0
- package/.agent/skills/governance/rules/enforcement/checklists/chart-component-review-checklist.md +143 -0
- package/.agent/skills/governance/rules/enforcement/checklists/coinpika-frontend-gesture-review-checklist.md +190 -0
- package/.agent/skills/governance/rules/enforcement/playbooks/doctrine-violation-playbook.md +232 -0
- package/.agent/skills/governance/scripts/audit_pr.js +218 -0
- package/.agent/skills/governance/scripts/learn.js +161 -0
- package/.agent/skills/governance/scripts/validate_doctrine.js +286 -0
- package/.agent/skills/i18n-localization/SKILL.md +154 -0
- package/.agent/skills/i18n-localization/scripts/i18n_checker.py +241 -0
- package/.agent/skills/intelligent-routing/SKILL.md +335 -0
- package/.agent/skills/lint-and-validate/SKILL.md +45 -0
- package/.agent/skills/lint-and-validate/scripts/lint_runner.py +172 -0
- package/.agent/skills/lint-and-validate/scripts/type_coverage.py +173 -0
- package/.agent/skills/mcp-builder/SKILL.md +176 -0
- package/.agent/skills/mermaidjs-v11/SKILL.md +115 -0
- package/.agent/skills/mermaidjs-v11/references/cli-usage.md +228 -0
- package/.agent/skills/mermaidjs-v11/references/configuration.md +232 -0
- package/.agent/skills/mermaidjs-v11/references/diagram-types.md +315 -0
- package/.agent/skills/mermaidjs-v11/references/examples.md +344 -0
- package/.agent/skills/mermaidjs-v11/references/integration.md +310 -0
- package/.agent/skills/mobile-design/SKILL.md +76 -0
- package/.agent/skills/mobile-design/references/anti-patterns.md +46 -0
- package/.agent/skills/mobile-design/references/decision-trees.md +516 -0
- package/.agent/skills/mobile-design/references/mobile-backend.md +491 -0
- package/.agent/skills/mobile-design/references/mobile-color-system.md +420 -0
- package/.agent/skills/mobile-design/references/mobile-debugging.md +122 -0
- package/.agent/skills/mobile-design/references/mobile-design-thinking.md +357 -0
- package/.agent/skills/mobile-design/references/mobile-navigation.md +458 -0
- package/.agent/skills/mobile-design/references/mobile-performance.md +767 -0
- package/.agent/skills/mobile-design/references/mobile-testing.md +356 -0
- package/.agent/skills/mobile-design/references/mobile-typography.md +433 -0
- package/.agent/skills/mobile-design/references/platform-android.md +666 -0
- package/.agent/skills/mobile-design/references/platform-ios.md +561 -0
- package/.agent/skills/mobile-design/references/touch-psychology.md +537 -0
- package/.agent/skills/mobile-design/scripts/mobile_audit.py +670 -0
- package/.agent/skills/nextjs-best-practices/SKILL.md +203 -0
- package/.agent/skills/nodejs-best-practices/SKILL.md +76 -0
- package/.agent/skills/nodejs-best-practices/references/architecture-patterns.md +34 -0
- package/.agent/skills/nodejs-best-practices/references/async-patterns.md +32 -0
- package/.agent/skills/nodejs-best-practices/references/error-handling.md +39 -0
- package/.agent/skills/nodejs-best-practices/references/framework-selection.md +39 -0
- package/.agent/skills/nodejs-best-practices/references/runtime-modules.md +33 -0
- package/.agent/skills/nodejs-best-practices/references/testing-strategy.md +25 -0
- package/.agent/skills/nodejs-best-practices/references/validation-security.md +45 -0
- package/.agent/skills/parallel-agents/SKILL.md +175 -0
- package/.agent/skills/performance-profiling/SKILL.md +143 -0
- package/.agent/skills/performance-profiling/scripts/lighthouse_audit.py +76 -0
- package/.agent/skills/plan-writing/SKILL.md +152 -0
- package/.agent/skills/powershell-windows/SKILL.md +167 -0
- package/.agent/skills/problem-solving/ABOUT.md +40 -0
- package/.agent/skills/problem-solving/SKILL.md +69 -0
- package/.agent/skills/problem-solving/collision-zone-thinking/SKILL.md +62 -0
- package/.agent/skills/problem-solving/inversion-exercise/SKILL.md +58 -0
- package/.agent/skills/problem-solving/meta-pattern-recognition/SKILL.md +54 -0
- package/.agent/skills/problem-solving/scale-game/SKILL.md +63 -0
- package/.agent/skills/problem-solving/simplification-cascades/SKILL.md +76 -0
- package/.agent/skills/problem-solving/when-stuck/SKILL.md +88 -0
- package/.agent/skills/python-patterns/SKILL.md +80 -0
- package/.agent/skills/python-patterns/references/async-patterns.md +57 -0
- package/.agent/skills/python-patterns/references/django-patterns.md +41 -0
- package/.agent/skills/python-patterns/references/fastapi-patterns.md +54 -0
- package/.agent/skills/python-patterns/references/framework-selection.md +39 -0
- package/.agent/skills/python-patterns/references/project-structure.md +80 -0
- package/.agent/skills/python-patterns/references/testing-patterns.md +34 -0
- package/.agent/skills/python-patterns/references/type-hints.md +51 -0
- package/.agent/skills/react-patterns/SKILL.md +198 -0
- package/.agent/skills/red-team-tactics/SKILL.md +199 -0
- package/.agent/skills/registry.json +367 -0
- package/.agent/skills/seo-fundamentals/SKILL.md +129 -0
- package/.agent/skills/seo-fundamentals/scripts/seo_checker.py +219 -0
- package/.agent/skills/sequential-thinking/README.md +118 -0
- package/.agent/skills/sequential-thinking/SKILL.md +93 -0
- package/.agent/skills/sequential-thinking/references/advanced.md +122 -0
- package/.agent/skills/sequential-thinking/references/examples.md +274 -0
- package/.agent/skills/server-management/SKILL.md +161 -0
- package/.agent/skills/skill-creator/LICENSE.txt +202 -0
- package/.agent/skills/skill-creator/SKILL.md +237 -0
- package/.agent/skills/skill-creator/scripts/init_skill.py +303 -0
- package/.agent/skills/skill-creator/scripts/package_skill.py +110 -0
- package/.agent/skills/skill-creator/scripts/quick_validate.py +65 -0
- package/.agent/skills/systematic-debugging/SKILL.md +109 -0
- package/.agent/skills/tailwind-patterns/SKILL.md +269 -0
- package/.agent/skills/tdd-workflow/SKILL.md +149 -0
- package/.agent/skills/testing-patterns/SKILL.md +178 -0
- package/.agent/skills/testing-patterns/scripts/test_runner.py +219 -0
- package/.agent/skills/vulnerability-scanner/SKILL.md +276 -0
- package/.agent/skills/vulnerability-scanner/checklists.md +121 -0
- package/.agent/skills/vulnerability-scanner/scripts/security_scan.py +458 -0
- package/.agent/skills/webapp-testing/SKILL.md +187 -0
- package/.agent/skills/webapp-testing/scripts/playwright_runner.py +173 -0
- package/.agent/workflows/architect.md +200 -0
- package/.agent/workflows/autopilot.md +254 -0
- package/.agent/workflows/boost.md +163 -0
- package/.agent/workflows/build.md +192 -0
- package/.agent/workflows/chronicle.md +172 -0
- package/.agent/workflows/diagnose.md +207 -0
- package/.agent/workflows/forge.md +123 -0
- package/.agent/workflows/inspect.md +187 -0
- package/.agent/workflows/launch.md +208 -0
- package/.agent/workflows/pulse.md +115 -0
- package/.agent/workflows/stage.md +117 -0
- package/.agent/workflows/studio.md +319 -0
- package/.agent/workflows/think.md +173 -0
- package/.agent/workflows/validate.md +226 -0
- package/.editorconfig +21 -0
- package/.github/workflows/release.yml +39 -0
- package/CHANGELOG.md +38 -0
- package/LICENSE +16 -0
- package/README.md +294 -0
- package/VERSIONING.md +45 -0
- package/docs/PATTERNS_REFERENCE.md +93 -0
- package/docs/PLAN-consolidation-final.md +14 -0
- package/docs/PLAN-integration.md +28 -0
- package/docs/PLAN-rebrand-agent-skills-kit.md +104 -0
- package/docs/PLAN-refactor.md +48 -0
- package/docs/PYTHON_SCRIPTS.md +55 -0
- package/docs/awf-user-guide.md +436 -0
- package/docs/context-engineering-guide.md +99 -0
- package/package.json +38 -0
- package/packages/cli/.agent/knowledge/lessons-learned.yaml +32 -0
- package/packages/cli/bin/ag-smart.js +155 -0
- package/packages/cli/bin/ag-smart.v1.js +78 -0
- package/packages/cli/lib/audit.js +69 -0
- package/packages/cli/lib/audit.v2.js +151 -0
- package/packages/cli/lib/auto-learn.js +319 -0
- package/packages/cli/lib/auto_preview.py +148 -0
- package/packages/cli/lib/checklist.py +222 -0
- package/packages/cli/lib/config.js +29 -0
- package/packages/cli/lib/eslint-fix.js +238 -0
- package/packages/cli/lib/fix.js +278 -0
- package/packages/cli/lib/generate-registry.js +42 -0
- package/packages/cli/lib/hooks/install-hooks.js +176 -0
- package/packages/cli/lib/hooks/lint-learn.js +172 -0
- package/packages/cli/lib/learn.js +173 -0
- package/packages/cli/lib/learn.test.js +70 -0
- package/packages/cli/lib/learn.v2.js +255 -0
- package/packages/cli/lib/recall.js +75 -0
- package/packages/cli/lib/recall.v2.js +252 -0
- package/packages/cli/lib/session_manager.py +120 -0
- package/packages/cli/lib/skill-learn.js +296 -0
- package/packages/cli/lib/stats.js +143 -0
- package/packages/cli/lib/types.js +33 -0
- package/packages/cli/lib/verify_all.py +327 -0
- package/packages/cli/lib/watcher.js +181 -0
- package/packages/cli/package-lock.json +1837 -0
- package/packages/cli/package.json +23 -0
- package/packages/cli/vitest.config.js +9 -0
|
@@ -0,0 +1,177 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: Root Cause Tracing
|
|
3
|
+
description: Systematically trace bugs backward through call stack to find original trigger
|
|
4
|
+
when_to_use: when errors occur deep in execution and you need to trace back to find the original trigger
|
|
5
|
+
version: 1.1.0
|
|
6
|
+
languages: all
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# Root Cause Tracing
|
|
10
|
+
|
|
11
|
+
## Overview
|
|
12
|
+
|
|
13
|
+
Bugs often manifest deep in the call stack (git init in wrong directory, file created in wrong location, database opened with wrong path). Your instinct is to fix where the error appears, but that's treating a symptom.
|
|
14
|
+
|
|
15
|
+
**Core principle:** Trace backward through the call chain until you find the original trigger, then fix at the source.
|
|
16
|
+
|
|
17
|
+
## When to Use
|
|
18
|
+
|
|
19
|
+
```dot
|
|
20
|
+
digraph when_to_use {
|
|
21
|
+
"Bug appears deep in stack?" [shape=diamond];
|
|
22
|
+
"Can trace backwards?" [shape=diamond];
|
|
23
|
+
"Fix at symptom point" [shape=box];
|
|
24
|
+
"Trace to original trigger" [shape=box];
|
|
25
|
+
"BETTER: Also add defense-in-depth" [shape=box];
|
|
26
|
+
|
|
27
|
+
"Bug appears deep in stack?" -> "Can trace backwards?" [label="yes"];
|
|
28
|
+
"Can trace backwards?" -> "Trace to original trigger" [label="yes"];
|
|
29
|
+
"Can trace backwards?" -> "Fix at symptom point" [label="no - dead end"];
|
|
30
|
+
"Trace to original trigger" -> "BETTER: Also add defense-in-depth";
|
|
31
|
+
}
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
**Use when:**
|
|
35
|
+
- Error happens deep in execution (not at entry point)
|
|
36
|
+
- Stack trace shows long call chain
|
|
37
|
+
- Unclear where invalid data originated
|
|
38
|
+
- Need to find which test/code triggers the problem
|
|
39
|
+
|
|
40
|
+
## The Tracing Process
|
|
41
|
+
|
|
42
|
+
### 1. Observe the Symptom
|
|
43
|
+
```
|
|
44
|
+
Error: git init failed in /Users/jesse/project/packages/core
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
### 2. Find Immediate Cause
|
|
48
|
+
**What code directly causes this?**
|
|
49
|
+
```typescript
|
|
50
|
+
await execFileAsync('git', ['init'], { cwd: projectDir });
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
### 3. Ask: What Called This?
|
|
54
|
+
```typescript
|
|
55
|
+
WorktreeManager.createSessionWorktree(projectDir, sessionId)
|
|
56
|
+
→ called by Session.initializeWorkspace()
|
|
57
|
+
→ called by Session.create()
|
|
58
|
+
→ called by test at Project.create()
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
### 4. Keep Tracing Up
|
|
62
|
+
**What value was passed?**
|
|
63
|
+
- `projectDir = ''` (empty string!)
|
|
64
|
+
- Empty string as `cwd` resolves to `process.cwd()`
|
|
65
|
+
- That's the source code directory!
|
|
66
|
+
|
|
67
|
+
### 5. Find Original Trigger
|
|
68
|
+
**Where did empty string come from?**
|
|
69
|
+
```typescript
|
|
70
|
+
const context = setupCoreTest(); // Returns { tempDir: '' }
|
|
71
|
+
Project.create('name', context.tempDir); // Accessed before beforeEach!
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
## Adding Stack Traces
|
|
75
|
+
|
|
76
|
+
When you can't trace manually, add instrumentation:
|
|
77
|
+
|
|
78
|
+
```typescript
|
|
79
|
+
// Before the problematic operation
|
|
80
|
+
async function gitInit(directory: string) {
|
|
81
|
+
const stack = new Error().stack;
|
|
82
|
+
console.error('DEBUG git init:', {
|
|
83
|
+
directory,
|
|
84
|
+
cwd: process.cwd(),
|
|
85
|
+
nodeEnv: process.env.NODE_ENV,
|
|
86
|
+
stack,
|
|
87
|
+
});
|
|
88
|
+
|
|
89
|
+
await execFileAsync('git', ['init'], { cwd: directory });
|
|
90
|
+
}
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
**Critical:** Use `console.error()` in tests (not logger - may not show)
|
|
94
|
+
|
|
95
|
+
**Run and capture:**
|
|
96
|
+
```bash
|
|
97
|
+
npm test 2>&1 | grep 'DEBUG git init'
|
|
98
|
+
```
|
|
99
|
+
|
|
100
|
+
**Analyze stack traces:**
|
|
101
|
+
- Look for test file names
|
|
102
|
+
- Find the line number triggering the call
|
|
103
|
+
- Identify the pattern (same test? same parameter?)
|
|
104
|
+
|
|
105
|
+
## Finding Which Test Causes Pollution
|
|
106
|
+
|
|
107
|
+
If something appears during tests but you don't know which test:
|
|
108
|
+
|
|
109
|
+
Use the bisection script: @find-polluter.sh
|
|
110
|
+
|
|
111
|
+
```bash
|
|
112
|
+
./find-polluter.sh '.git' 'src/**/*.test.ts'
|
|
113
|
+
```
|
|
114
|
+
|
|
115
|
+
Runs tests one-by-one, stops at first polluter. See script for usage.
|
|
116
|
+
|
|
117
|
+
## Real Example: Empty projectDir
|
|
118
|
+
|
|
119
|
+
**Symptom:** `.git` created in `packages/core/` (source code)
|
|
120
|
+
|
|
121
|
+
**Trace chain:**
|
|
122
|
+
1. `git init` runs in `process.cwd()` ← empty cwd parameter
|
|
123
|
+
2. WorktreeManager called with empty projectDir
|
|
124
|
+
3. Session.create() passed empty string
|
|
125
|
+
4. Test accessed `context.tempDir` before beforeEach
|
|
126
|
+
5. setupCoreTest() returns `{ tempDir: '' }` initially
|
|
127
|
+
|
|
128
|
+
**Root cause:** Top-level variable initialization accessing empty value
|
|
129
|
+
|
|
130
|
+
**Fix:** Made tempDir a getter that throws if accessed before beforeEach
|
|
131
|
+
|
|
132
|
+
**Also added defense-in-depth:**
|
|
133
|
+
- Layer 1: Project.create() validates directory
|
|
134
|
+
- Layer 2: WorkspaceManager validates not empty
|
|
135
|
+
- Layer 3: NODE_ENV guard refuses git init outside tmpdir
|
|
136
|
+
- Layer 4: Stack trace logging before git init
|
|
137
|
+
|
|
138
|
+
## Key Principle
|
|
139
|
+
|
|
140
|
+
```dot
|
|
141
|
+
digraph principle {
|
|
142
|
+
"Found immediate cause" [shape=ellipse];
|
|
143
|
+
"Can trace one level up?" [shape=diamond];
|
|
144
|
+
"Trace backwards" [shape=box];
|
|
145
|
+
"Is this the source?" [shape=diamond];
|
|
146
|
+
"Fix at source" [shape=box];
|
|
147
|
+
"Add validation at each layer" [shape=box];
|
|
148
|
+
"Bug impossible" [shape=doublecircle];
|
|
149
|
+
"NEVER fix just the symptom" [shape=octagon, style=filled, fillcolor=red, fontcolor=white];
|
|
150
|
+
|
|
151
|
+
"Found immediate cause" -> "Can trace one level up?";
|
|
152
|
+
"Can trace one level up?" -> "Trace backwards" [label="yes"];
|
|
153
|
+
"Can trace one level up?" -> "NEVER fix just the symptom" [label="no"];
|
|
154
|
+
"Trace backwards" -> "Is this the source?";
|
|
155
|
+
"Is this the source?" -> "Trace backwards" [label="no - keeps going"];
|
|
156
|
+
"Is this the source?" -> "Fix at source" [label="yes"];
|
|
157
|
+
"Fix at source" -> "Add validation at each layer";
|
|
158
|
+
"Add validation at each layer" -> "Bug impossible";
|
|
159
|
+
}
|
|
160
|
+
```
|
|
161
|
+
|
|
162
|
+
**NEVER fix just where the error appears.** Trace back to find the original trigger.
|
|
163
|
+
|
|
164
|
+
## Stack Trace Tips
|
|
165
|
+
|
|
166
|
+
**In tests:** Use `console.error()` not logger - logger may be suppressed
|
|
167
|
+
**Before operation:** Log before the dangerous operation, not after it fails
|
|
168
|
+
**Include context:** Directory, cwd, environment variables, timestamps
|
|
169
|
+
**Capture stack:** `new Error().stack` shows complete call chain
|
|
170
|
+
|
|
171
|
+
## Real-World Impact
|
|
172
|
+
|
|
173
|
+
From debugging session (2025-10-03):
|
|
174
|
+
- Found root cause through 5-level trace
|
|
175
|
+
- Fixed at source (getter validation)
|
|
176
|
+
- Added 4 layers of defense
|
|
177
|
+
- 1847 tests passed, zero pollution
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
#!/bin/bash
|
|
2
|
+
# Bisection script to find which test creates unwanted files/state
|
|
3
|
+
# Usage: ./find-polluter.sh <file_or_dir_to_check> <test_pattern>
|
|
4
|
+
# Example: ./find-polluter.sh '.git' 'src/**/*.test.ts'
|
|
5
|
+
|
|
6
|
+
set -e
|
|
7
|
+
|
|
8
|
+
if [ $# -ne 2 ]; then
|
|
9
|
+
echo "Usage: $0 <file_to_check> <test_pattern>"
|
|
10
|
+
echo "Example: $0 '.git' 'src/**/*.test.ts'"
|
|
11
|
+
exit 1
|
|
12
|
+
fi
|
|
13
|
+
|
|
14
|
+
POLLUTION_CHECK="$1"
|
|
15
|
+
TEST_PATTERN="$2"
|
|
16
|
+
|
|
17
|
+
echo "🔍 Searching for test that creates: $POLLUTION_CHECK"
|
|
18
|
+
echo "Test pattern: $TEST_PATTERN"
|
|
19
|
+
echo ""
|
|
20
|
+
|
|
21
|
+
# Get list of test files
|
|
22
|
+
TEST_FILES=$(find . -path "$TEST_PATTERN" | sort)
|
|
23
|
+
TOTAL=$(echo "$TEST_FILES" | wc -l | tr -d ' ')
|
|
24
|
+
|
|
25
|
+
echo "Found $TOTAL test files"
|
|
26
|
+
echo ""
|
|
27
|
+
|
|
28
|
+
COUNT=0
|
|
29
|
+
for TEST_FILE in $TEST_FILES; do
|
|
30
|
+
COUNT=$((COUNT + 1))
|
|
31
|
+
|
|
32
|
+
# Skip if pollution already exists
|
|
33
|
+
if [ -e "$POLLUTION_CHECK" ]; then
|
|
34
|
+
echo "⚠️ Pollution already exists before test $COUNT/$TOTAL"
|
|
35
|
+
echo " Skipping: $TEST_FILE"
|
|
36
|
+
continue
|
|
37
|
+
fi
|
|
38
|
+
|
|
39
|
+
echo "[$COUNT/$TOTAL] Testing: $TEST_FILE"
|
|
40
|
+
|
|
41
|
+
# Run the test
|
|
42
|
+
npm test "$TEST_FILE" > /dev/null 2>&1 || true
|
|
43
|
+
|
|
44
|
+
# Check if pollution appeared
|
|
45
|
+
if [ -e "$POLLUTION_CHECK" ]; then
|
|
46
|
+
echo ""
|
|
47
|
+
echo "🎯 FOUND POLLUTER!"
|
|
48
|
+
echo " Test: $TEST_FILE"
|
|
49
|
+
echo " Created: $POLLUTION_CHECK"
|
|
50
|
+
echo ""
|
|
51
|
+
echo "Pollution details:"
|
|
52
|
+
ls -la "$POLLUTION_CHECK"
|
|
53
|
+
echo ""
|
|
54
|
+
echo "To investigate:"
|
|
55
|
+
echo " npm test $TEST_FILE # Run just this test"
|
|
56
|
+
echo " cat $TEST_FILE # Review test code"
|
|
57
|
+
exit 1
|
|
58
|
+
fi
|
|
59
|
+
done
|
|
60
|
+
|
|
61
|
+
echo ""
|
|
62
|
+
echo "✅ No polluter found - all tests clean!"
|
|
63
|
+
exit 0
|
|
@@ -0,0 +1,142 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: Verification Before Completion
|
|
3
|
+
description: Run verification commands and confirm output before claiming success
|
|
4
|
+
when_to_use: when about to claim work is complete, fixed, or passing, before committing or creating PRs
|
|
5
|
+
version: 1.1.0
|
|
6
|
+
languages: all
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# Verification Before Completion
|
|
10
|
+
|
|
11
|
+
## Overview
|
|
12
|
+
|
|
13
|
+
Claiming work is complete without verification is dishonesty, not efficiency.
|
|
14
|
+
|
|
15
|
+
**Core principle:** Evidence before claims, always.
|
|
16
|
+
|
|
17
|
+
**Violating the letter of this rule is violating the spirit of this rule.**
|
|
18
|
+
|
|
19
|
+
## The Iron Law
|
|
20
|
+
|
|
21
|
+
```
|
|
22
|
+
NO COMPLETION CLAIMS WITHOUT FRESH VERIFICATION EVIDENCE
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
If you haven't run the verification command in this message, you cannot claim it passes.
|
|
26
|
+
|
|
27
|
+
## The Gate Function
|
|
28
|
+
|
|
29
|
+
```
|
|
30
|
+
BEFORE claiming any status or expressing satisfaction:
|
|
31
|
+
|
|
32
|
+
1. IDENTIFY: What command proves this claim?
|
|
33
|
+
2. RUN: Execute the FULL command (fresh, complete)
|
|
34
|
+
3. READ: Full output, check exit code, count failures
|
|
35
|
+
4. VERIFY: Does output confirm the claim?
|
|
36
|
+
- If NO: State actual status with evidence
|
|
37
|
+
- If YES: State claim WITH evidence
|
|
38
|
+
5. ONLY THEN: Make the claim
|
|
39
|
+
|
|
40
|
+
Skip any step = lying, not verifying
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
## Common Failures
|
|
44
|
+
|
|
45
|
+
| Claim | Requires | Not Sufficient |
|
|
46
|
+
|-------|----------|----------------|
|
|
47
|
+
| Tests pass | Test command output: 0 failures | Previous run, "should pass" |
|
|
48
|
+
| Linter clean | Linter output: 0 errors | Partial check, extrapolation |
|
|
49
|
+
| Build succeeds | Build command: exit 0 | Linter passing, logs look good |
|
|
50
|
+
| Bug fixed | Test original symptom: passes | Code changed, assumed fixed |
|
|
51
|
+
| Regression test works | Red-green cycle verified | Test passes once |
|
|
52
|
+
| Agent completed | VCS diff shows changes | Agent reports "success" |
|
|
53
|
+
| Requirements met | Line-by-line checklist | Tests passing |
|
|
54
|
+
|
|
55
|
+
## Red Flags - STOP
|
|
56
|
+
|
|
57
|
+
- Using "should", "probably", "seems to"
|
|
58
|
+
- Expressing satisfaction before verification ("Great!", "Perfect!", "Done!", etc.)
|
|
59
|
+
- About to commit/push/PR without verification
|
|
60
|
+
- Trusting agent success reports
|
|
61
|
+
- Relying on partial verification
|
|
62
|
+
- Thinking "just this once"
|
|
63
|
+
- Tired and wanting work over
|
|
64
|
+
- **ANY wording implying success without having run verification**
|
|
65
|
+
|
|
66
|
+
## Rationalization Prevention
|
|
67
|
+
|
|
68
|
+
| Excuse | Reality |
|
|
69
|
+
|--------|---------|
|
|
70
|
+
| "Should work now" | RUN the verification |
|
|
71
|
+
| "I'm confident" | Confidence ≠ evidence |
|
|
72
|
+
| "Just this once" | No exceptions |
|
|
73
|
+
| "Linter passed" | Linter ≠ compiler |
|
|
74
|
+
| "Agent said success" | Verify independently |
|
|
75
|
+
| "I'm tired" | Exhaustion ≠ excuse |
|
|
76
|
+
| "Partial check is enough" | Partial proves nothing |
|
|
77
|
+
| "Different words so rule doesn't apply" | Spirit over letter |
|
|
78
|
+
|
|
79
|
+
## Key Patterns
|
|
80
|
+
|
|
81
|
+
**Tests:**
|
|
82
|
+
```
|
|
83
|
+
✅ [Run test command] [See: 34/34 pass] "All tests pass"
|
|
84
|
+
❌ "Should pass now" / "Looks correct"
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
**Regression tests (TDD Red-Green):**
|
|
88
|
+
```
|
|
89
|
+
✅ Write → Run (pass) → Revert fix → Run (MUST FAIL) → Restore → Run (pass)
|
|
90
|
+
❌ "I've written a regression test" (without red-green verification)
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
**Build:**
|
|
94
|
+
```
|
|
95
|
+
✅ [Run build] [See: exit 0] "Build passes"
|
|
96
|
+
❌ "Linter passed" (linter doesn't check compilation)
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
**Requirements:**
|
|
100
|
+
```
|
|
101
|
+
✅ Re-read plan → Create checklist → Verify each → Report gaps or completion
|
|
102
|
+
❌ "Tests pass, phase complete"
|
|
103
|
+
```
|
|
104
|
+
|
|
105
|
+
**Agent delegation:**
|
|
106
|
+
```
|
|
107
|
+
✅ Agent reports success → Check VCS diff → Verify changes → Report actual state
|
|
108
|
+
❌ Trust agent report
|
|
109
|
+
```
|
|
110
|
+
|
|
111
|
+
## Why This Matters
|
|
112
|
+
|
|
113
|
+
From 24 failure memories:
|
|
114
|
+
- your human partner said "I don't believe you" - trust broken
|
|
115
|
+
- Undefined functions shipped - would crash
|
|
116
|
+
- Missing requirements shipped - incomplete features
|
|
117
|
+
- Time wasted on false completion → redirect → rework
|
|
118
|
+
- Violates: "Honesty is a core value. If you lie, you'll be replaced."
|
|
119
|
+
|
|
120
|
+
## When To Apply
|
|
121
|
+
|
|
122
|
+
**ALWAYS before:**
|
|
123
|
+
- ANY variation of success/completion claims
|
|
124
|
+
- ANY expression of satisfaction
|
|
125
|
+
- ANY positive statement about work state
|
|
126
|
+
- Committing, PR creation, task completion
|
|
127
|
+
- Moving to next task
|
|
128
|
+
- Delegating to agents
|
|
129
|
+
|
|
130
|
+
**Rule applies to:**
|
|
131
|
+
- Exact phrases
|
|
132
|
+
- Paraphrases and synonyms
|
|
133
|
+
- Implications of success
|
|
134
|
+
- ANY communication suggesting completion/correctness
|
|
135
|
+
|
|
136
|
+
## The Bottom Line
|
|
137
|
+
|
|
138
|
+
**No shortcuts for verification.**
|
|
139
|
+
|
|
140
|
+
Run the command. Read the output. THEN claim the result.
|
|
141
|
+
|
|
142
|
+
This is non-negotiable.
|
|
@@ -0,0 +1,241 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: deployment-procedures
|
|
3
|
+
description: Production deployment principles and decision-making. Safe deployment workflows, rollback strategies, and verification. Teaches thinking, not scripts.
|
|
4
|
+
allowed-tools: Read, Glob, Grep, Bash
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Deployment Procedures
|
|
8
|
+
|
|
9
|
+
> Deployment principles and decision-making for safe production releases.
|
|
10
|
+
> **Learn to THINK, not memorize scripts.**
|
|
11
|
+
|
|
12
|
+
---
|
|
13
|
+
|
|
14
|
+
## ⚠️ How to Use This Skill
|
|
15
|
+
|
|
16
|
+
This skill teaches **deployment principles**, not bash scripts to copy.
|
|
17
|
+
|
|
18
|
+
- Every deployment is unique
|
|
19
|
+
- Understand the WHY behind each step
|
|
20
|
+
- Adapt procedures to your platform
|
|
21
|
+
|
|
22
|
+
---
|
|
23
|
+
|
|
24
|
+
## 1. Platform Selection
|
|
25
|
+
|
|
26
|
+
### Decision Tree
|
|
27
|
+
|
|
28
|
+
```
|
|
29
|
+
What are you deploying?
|
|
30
|
+
│
|
|
31
|
+
├── Static site / JAMstack
|
|
32
|
+
│ └── Vercel, Netlify, Cloudflare Pages
|
|
33
|
+
│
|
|
34
|
+
├── Simple web app
|
|
35
|
+
│ ├── Managed → Railway, Render, Fly.io
|
|
36
|
+
│ └── Control → VPS + PM2/Docker
|
|
37
|
+
│
|
|
38
|
+
├── Microservices
|
|
39
|
+
│ └── Container orchestration
|
|
40
|
+
│
|
|
41
|
+
└── Serverless
|
|
42
|
+
└── Edge functions, Lambda
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
### Each Platform Has Different Procedures
|
|
46
|
+
|
|
47
|
+
| Platform | Deployment Method |
|
|
48
|
+
|----------|------------------|
|
|
49
|
+
| **Vercel/Netlify** | Git push, auto-deploy |
|
|
50
|
+
| **Railway/Render** | Git push or CLI |
|
|
51
|
+
| **VPS + PM2** | SSH + manual steps |
|
|
52
|
+
| **Docker** | Image push + orchestration |
|
|
53
|
+
| **Kubernetes** | kubectl apply |
|
|
54
|
+
|
|
55
|
+
---
|
|
56
|
+
|
|
57
|
+
## 2. Pre-Deployment Principles
|
|
58
|
+
|
|
59
|
+
### The 4 Verification Categories
|
|
60
|
+
|
|
61
|
+
| Category | What to Check |
|
|
62
|
+
|----------|--------------|
|
|
63
|
+
| **Code Quality** | Tests passing, linting clean, reviewed |
|
|
64
|
+
| **Build** | Production build works, no warnings |
|
|
65
|
+
| **Environment** | Env vars set, secrets current |
|
|
66
|
+
| **Safety** | Backup done, rollback plan ready |
|
|
67
|
+
|
|
68
|
+
### Pre-Deployment Checklist
|
|
69
|
+
|
|
70
|
+
- [ ] All tests passing
|
|
71
|
+
- [ ] Code reviewed and approved
|
|
72
|
+
- [ ] Production build successful
|
|
73
|
+
- [ ] Environment variables verified
|
|
74
|
+
- [ ] Database migrations ready (if any)
|
|
75
|
+
- [ ] Rollback plan documented
|
|
76
|
+
- [ ] Team notified
|
|
77
|
+
- [ ] Monitoring ready
|
|
78
|
+
|
|
79
|
+
---
|
|
80
|
+
|
|
81
|
+
## 3. Deployment Workflow Principles
|
|
82
|
+
|
|
83
|
+
### The 5-Phase Process
|
|
84
|
+
|
|
85
|
+
```
|
|
86
|
+
1. PREPARE
|
|
87
|
+
└── Verify code, build, env vars
|
|
88
|
+
|
|
89
|
+
2. BACKUP
|
|
90
|
+
└── Save current state before changing
|
|
91
|
+
|
|
92
|
+
3. DEPLOY
|
|
93
|
+
└── Execute with monitoring open
|
|
94
|
+
|
|
95
|
+
4. VERIFY
|
|
96
|
+
└── Health check, logs, key flows
|
|
97
|
+
|
|
98
|
+
5. CONFIRM or ROLLBACK
|
|
99
|
+
└── All good? Confirm. Issues? Rollback.
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
### Phase Principles
|
|
103
|
+
|
|
104
|
+
| Phase | Principle |
|
|
105
|
+
|-------|-----------|
|
|
106
|
+
| **Prepare** | Never deploy untested code |
|
|
107
|
+
| **Backup** | Can't rollback without backup |
|
|
108
|
+
| **Deploy** | Watch it happen, don't walk away |
|
|
109
|
+
| **Verify** | Trust but verify |
|
|
110
|
+
| **Confirm** | Have rollback trigger ready |
|
|
111
|
+
|
|
112
|
+
---
|
|
113
|
+
|
|
114
|
+
## 4. Post-Deployment Verification
|
|
115
|
+
|
|
116
|
+
### What to Verify
|
|
117
|
+
|
|
118
|
+
| Check | Why |
|
|
119
|
+
|-------|-----|
|
|
120
|
+
| **Health endpoint** | Service is running |
|
|
121
|
+
| **Error logs** | No new errors |
|
|
122
|
+
| **Key user flows** | Critical features work |
|
|
123
|
+
| **Performance** | Response times acceptable |
|
|
124
|
+
|
|
125
|
+
### Verification Window
|
|
126
|
+
|
|
127
|
+
- **First 5 minutes**: Active monitoring
|
|
128
|
+
- **15 minutes**: Confirm stable
|
|
129
|
+
- **1 hour**: Final verification
|
|
130
|
+
- **Next day**: Review metrics
|
|
131
|
+
|
|
132
|
+
---
|
|
133
|
+
|
|
134
|
+
## 5. Rollback Principles
|
|
135
|
+
|
|
136
|
+
### When to Rollback
|
|
137
|
+
|
|
138
|
+
| Symptom | Action |
|
|
139
|
+
|---------|--------|
|
|
140
|
+
| Service down | Rollback immediately |
|
|
141
|
+
| Critical errors | Rollback |
|
|
142
|
+
| Performance >50% degraded | Consider rollback |
|
|
143
|
+
| Minor issues | Fix forward if quick |
|
|
144
|
+
|
|
145
|
+
### Rollback Strategy by Platform
|
|
146
|
+
|
|
147
|
+
| Platform | Rollback Method |
|
|
148
|
+
|----------|----------------|
|
|
149
|
+
| **Vercel/Netlify** | Redeploy previous commit |
|
|
150
|
+
| **Railway/Render** | Rollback in dashboard |
|
|
151
|
+
| **VPS + PM2** | Restore backup, restart |
|
|
152
|
+
| **Docker** | Previous image tag |
|
|
153
|
+
| **K8s** | kubectl rollout undo |
|
|
154
|
+
|
|
155
|
+
### Rollback Principles
|
|
156
|
+
|
|
157
|
+
1. **Speed over perfection**: Rollback first, debug later
|
|
158
|
+
2. **Don't compound errors**: One rollback, not multiple changes
|
|
159
|
+
3. **Communicate**: Tell team what happened
|
|
160
|
+
4. **Post-mortem**: Understand why after stable
|
|
161
|
+
|
|
162
|
+
---
|
|
163
|
+
|
|
164
|
+
## 6. Zero-Downtime Deployment
|
|
165
|
+
|
|
166
|
+
### Strategies
|
|
167
|
+
|
|
168
|
+
| Strategy | How It Works |
|
|
169
|
+
|----------|--------------|
|
|
170
|
+
| **Rolling** | Replace instances one by one |
|
|
171
|
+
| **Blue-Green** | Switch traffic between environments |
|
|
172
|
+
| **Canary** | Gradual traffic shift |
|
|
173
|
+
|
|
174
|
+
### Selection Principles
|
|
175
|
+
|
|
176
|
+
| Scenario | Strategy |
|
|
177
|
+
|----------|----------|
|
|
178
|
+
| Standard release | Rolling |
|
|
179
|
+
| High-risk change | Blue-green (easy rollback) |
|
|
180
|
+
| Need validation | Canary (test with real traffic) |
|
|
181
|
+
|
|
182
|
+
---
|
|
183
|
+
|
|
184
|
+
## 7. Emergency Procedures
|
|
185
|
+
|
|
186
|
+
### Service Down Priority
|
|
187
|
+
|
|
188
|
+
1. **Assess**: What's the symptom?
|
|
189
|
+
2. **Quick fix**: Restart if unclear
|
|
190
|
+
3. **Rollback**: If restart doesn't help
|
|
191
|
+
4. **Investigate**: After stable
|
|
192
|
+
|
|
193
|
+
### Investigation Order
|
|
194
|
+
|
|
195
|
+
| Check | Common Issues |
|
|
196
|
+
|-------|--------------|
|
|
197
|
+
| **Logs** | Errors, exceptions |
|
|
198
|
+
| **Resources** | Disk full, memory |
|
|
199
|
+
| **Network** | DNS, firewall |
|
|
200
|
+
| **Dependencies** | Database, APIs |
|
|
201
|
+
|
|
202
|
+
---
|
|
203
|
+
|
|
204
|
+
## 8. Anti-Patterns
|
|
205
|
+
|
|
206
|
+
| ❌ Don't | ✅ Do |
|
|
207
|
+
|----------|-------|
|
|
208
|
+
| Deploy on Friday | Deploy early in week |
|
|
209
|
+
| Rush deployment | Follow the process |
|
|
210
|
+
| Skip staging | Always test first |
|
|
211
|
+
| Deploy without backup | Backup before deploy |
|
|
212
|
+
| Walk away after deploy | Monitor for 15+ min |
|
|
213
|
+
| Multiple changes at once | One change at a time |
|
|
214
|
+
|
|
215
|
+
---
|
|
216
|
+
|
|
217
|
+
## 9. Decision Checklist
|
|
218
|
+
|
|
219
|
+
Before deploying:
|
|
220
|
+
|
|
221
|
+
- [ ] **Platform-appropriate procedure?**
|
|
222
|
+
- [ ] **Backup strategy ready?**
|
|
223
|
+
- [ ] **Rollback plan documented?**
|
|
224
|
+
- [ ] **Monitoring configured?**
|
|
225
|
+
- [ ] **Team notified?**
|
|
226
|
+
- [ ] **Time to monitor after?**
|
|
227
|
+
|
|
228
|
+
---
|
|
229
|
+
|
|
230
|
+
## 10. Best Practices
|
|
231
|
+
|
|
232
|
+
1. **Small, frequent deploys** over big releases
|
|
233
|
+
2. **Feature flags** for risky changes
|
|
234
|
+
3. **Automate** repetitive steps
|
|
235
|
+
4. **Document** every deployment
|
|
236
|
+
5. **Review** what went wrong after issues
|
|
237
|
+
6. **Test rollback** before you need it
|
|
238
|
+
|
|
239
|
+
---
|
|
240
|
+
|
|
241
|
+
> **Remember:** Every deployment is a risk. Minimize risk through preparation, not speed.
|