@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,58 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: Inversion Exercise
|
|
3
|
+
description: Flip core assumptions to reveal hidden constraints and alternative approaches - "what if the opposite were true?"
|
|
4
|
+
when_to_use: when stuck on unquestioned assumptions or feeling forced into "the only way" to do something
|
|
5
|
+
version: 1.1.0
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# Inversion Exercise
|
|
9
|
+
|
|
10
|
+
## Overview
|
|
11
|
+
|
|
12
|
+
Flip every assumption and see what still works. Sometimes the opposite reveals the truth.
|
|
13
|
+
|
|
14
|
+
**Core principle:** Inversion exposes hidden assumptions and alternative approaches.
|
|
15
|
+
|
|
16
|
+
## Quick Reference
|
|
17
|
+
|
|
18
|
+
| Normal Assumption | Inverted | What It Reveals |
|
|
19
|
+
|-------------------|----------|-----------------|
|
|
20
|
+
| Cache to reduce latency | Add latency to enable caching | Debouncing patterns |
|
|
21
|
+
| Pull data when needed | Push data before needed | Prefetching, eager loading |
|
|
22
|
+
| Handle errors when occur | Make errors impossible | Type systems, contracts |
|
|
23
|
+
| Build features users want | Remove features users don't need | Simplicity >> addition |
|
|
24
|
+
| Optimize for common case | Optimize for worst case | Resilience patterns |
|
|
25
|
+
|
|
26
|
+
## Process
|
|
27
|
+
|
|
28
|
+
1. **List core assumptions** - What "must" be true?
|
|
29
|
+
2. **Invert each systematically** - "What if opposite were true?"
|
|
30
|
+
3. **Explore implications** - What would we do differently?
|
|
31
|
+
4. **Find valid inversions** - Which actually work somewhere?
|
|
32
|
+
|
|
33
|
+
## Example
|
|
34
|
+
|
|
35
|
+
**Problem:** Users complain app is slow
|
|
36
|
+
|
|
37
|
+
**Normal approach:** Make everything faster (caching, optimization, CDN)
|
|
38
|
+
|
|
39
|
+
**Inverted:** Make things intentionally slower in some places
|
|
40
|
+
- Debounce search (add latency → enable better results)
|
|
41
|
+
- Rate limit requests (add friction → prevent abuse)
|
|
42
|
+
- Lazy load content (delay → reduce initial load)
|
|
43
|
+
|
|
44
|
+
**Insight:** Strategic slowness can improve UX
|
|
45
|
+
|
|
46
|
+
## Red Flags You Need This
|
|
47
|
+
|
|
48
|
+
- "There's only one way to do this"
|
|
49
|
+
- Forcing solution that feels wrong
|
|
50
|
+
- Can't articulate why approach is necessary
|
|
51
|
+
- "This is just how it's done"
|
|
52
|
+
|
|
53
|
+
## Remember
|
|
54
|
+
|
|
55
|
+
- Not all inversions work (test boundaries)
|
|
56
|
+
- Valid inversions reveal context-dependence
|
|
57
|
+
- Sometimes opposite is the answer
|
|
58
|
+
- Question "must be" statements
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: Meta-Pattern Recognition
|
|
3
|
+
description: Spot patterns appearing in 3+ domains to find universal principles
|
|
4
|
+
when_to_use: when noticing the same pattern across 3+ different domains or experiencing déjà vu in problem-solving
|
|
5
|
+
version: 1.1.0
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# Meta-Pattern Recognition
|
|
9
|
+
|
|
10
|
+
## Overview
|
|
11
|
+
|
|
12
|
+
When the same pattern appears in 3+ domains, it's probably a universal principle worth extracting.
|
|
13
|
+
|
|
14
|
+
**Core principle:** Find patterns in how patterns emerge.
|
|
15
|
+
|
|
16
|
+
## Quick Reference
|
|
17
|
+
|
|
18
|
+
| Pattern Appears In | Abstract Form | Where Else? |
|
|
19
|
+
|-------------------|---------------|-------------|
|
|
20
|
+
| CPU/DB/HTTP/DNS caching | Store frequently-accessed data closer | LLM prompt caching, CDN |
|
|
21
|
+
| Layering (network/storage/compute) | Separate concerns into abstraction levels | Architecture, organization |
|
|
22
|
+
| Queuing (message/task/request) | Decouple producer from consumer with buffer | Event systems, async processing |
|
|
23
|
+
| Pooling (connection/thread/object) | Reuse expensive resources | Memory management, resource governance |
|
|
24
|
+
|
|
25
|
+
## Process
|
|
26
|
+
|
|
27
|
+
1. **Spot repetition** - See same shape in 3+ places
|
|
28
|
+
2. **Extract abstract form** - Describe independent of any domain
|
|
29
|
+
3. **Identify variations** - How does it adapt per domain?
|
|
30
|
+
4. **Check applicability** - Where else might this help?
|
|
31
|
+
|
|
32
|
+
## Example
|
|
33
|
+
|
|
34
|
+
**Pattern spotted:** Rate limiting in API throttling, traffic shaping, circuit breakers, admission control
|
|
35
|
+
|
|
36
|
+
**Abstract form:** Bound resource consumption to prevent exhaustion
|
|
37
|
+
|
|
38
|
+
**Variation points:** What resource, what limit, what happens when exceeded
|
|
39
|
+
|
|
40
|
+
**New application:** LLM token budgets (same pattern - prevent context window exhaustion)
|
|
41
|
+
|
|
42
|
+
## Red Flags You're Missing Meta-Patterns
|
|
43
|
+
|
|
44
|
+
- "This problem is unique" (probably not)
|
|
45
|
+
- Multiple teams independently solving "different" problems identically
|
|
46
|
+
- Reinventing wheels across domains
|
|
47
|
+
- "Haven't we done something like this?" (yes, find it)
|
|
48
|
+
|
|
49
|
+
## Remember
|
|
50
|
+
|
|
51
|
+
- 3+ domains = likely universal
|
|
52
|
+
- Abstract form reveals new applications
|
|
53
|
+
- Variations show adaptation points
|
|
54
|
+
- Universal patterns are battle-tested
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: Scale Game
|
|
3
|
+
description: Test at extremes (1000x bigger/smaller, instant/year-long) to expose fundamental truths hidden at normal scales
|
|
4
|
+
when_to_use: when uncertain about scalability, edge cases unclear, or validating architecture for production volumes
|
|
5
|
+
version: 1.1.0
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# Scale Game
|
|
9
|
+
|
|
10
|
+
## Overview
|
|
11
|
+
|
|
12
|
+
Test your approach at extreme scales to find what breaks and what surprisingly survives.
|
|
13
|
+
|
|
14
|
+
**Core principle:** Extremes expose fundamental truths hidden at normal scales.
|
|
15
|
+
|
|
16
|
+
## Quick Reference
|
|
17
|
+
|
|
18
|
+
| Scale Dimension | Test At Extremes | What It Reveals |
|
|
19
|
+
|-----------------|------------------|-----------------|
|
|
20
|
+
| Volume | 1 item vs 1B items | Algorithmic complexity limits |
|
|
21
|
+
| Speed | Instant vs 1 year | Async requirements, caching needs |
|
|
22
|
+
| Users | 1 user vs 1B users | Concurrency issues, resource limits |
|
|
23
|
+
| Duration | Milliseconds vs years | Memory leaks, state growth |
|
|
24
|
+
| Failure rate | Never fails vs always fails | Error handling adequacy |
|
|
25
|
+
|
|
26
|
+
## Process
|
|
27
|
+
|
|
28
|
+
1. **Pick dimension** - What could vary extremely?
|
|
29
|
+
2. **Test minimum** - What if this was 1000x smaller/faster/fewer?
|
|
30
|
+
3. **Test maximum** - What if this was 1000x bigger/slower/more?
|
|
31
|
+
4. **Note what breaks** - Where do limits appear?
|
|
32
|
+
5. **Note what survives** - What's fundamentally sound?
|
|
33
|
+
|
|
34
|
+
## Examples
|
|
35
|
+
|
|
36
|
+
### Example 1: Error Handling
|
|
37
|
+
**Normal scale:** "Handle errors when they occur" works fine
|
|
38
|
+
**At 1B scale:** Error volume overwhelms logging, crashes system
|
|
39
|
+
**Reveals:** Need to make errors impossible (type systems) or expect them (chaos engineering)
|
|
40
|
+
|
|
41
|
+
### Example 2: Synchronous APIs
|
|
42
|
+
**Normal scale:** Direct function calls work
|
|
43
|
+
**At global scale:** Network latency makes synchronous calls unusable
|
|
44
|
+
**Reveals:** Async/messaging becomes survival requirement, not optimization
|
|
45
|
+
|
|
46
|
+
### Example 3: In-Memory State
|
|
47
|
+
**Normal duration:** Works for hours/days
|
|
48
|
+
**At years:** Memory grows unbounded, eventual crash
|
|
49
|
+
**Reveals:** Need persistence or periodic cleanup, can't rely on memory
|
|
50
|
+
|
|
51
|
+
## Red Flags You Need This
|
|
52
|
+
|
|
53
|
+
- "It works in dev" (but will it work in production?)
|
|
54
|
+
- No idea where limits are
|
|
55
|
+
- "Should scale fine" (without testing)
|
|
56
|
+
- Surprised by production behavior
|
|
57
|
+
|
|
58
|
+
## Remember
|
|
59
|
+
|
|
60
|
+
- Extremes reveal fundamentals
|
|
61
|
+
- What works at one scale fails at another
|
|
62
|
+
- Test both directions (bigger AND smaller)
|
|
63
|
+
- Use insights to validate architecture early
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: Simplification Cascades
|
|
3
|
+
description: Find one insight that eliminates multiple components - "if this is true, we don't need X, Y, or Z"
|
|
4
|
+
when_to_use: when implementing the same concept multiple ways, accumulating special cases, or complexity is spiraling
|
|
5
|
+
version: 1.1.0
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# Simplification Cascades
|
|
9
|
+
|
|
10
|
+
## Overview
|
|
11
|
+
|
|
12
|
+
Sometimes one insight eliminates 10 things. Look for the unifying principle that makes multiple components unnecessary.
|
|
13
|
+
|
|
14
|
+
**Core principle:** "Everything is a special case of..." collapses complexity dramatically.
|
|
15
|
+
|
|
16
|
+
## Quick Reference
|
|
17
|
+
|
|
18
|
+
| Symptom | Likely Cascade |
|
|
19
|
+
|---------|----------------|
|
|
20
|
+
| Same thing implemented 5+ ways | Abstract the common pattern |
|
|
21
|
+
| Growing special case list | Find the general case |
|
|
22
|
+
| Complex rules with exceptions | Find the rule that has no exceptions |
|
|
23
|
+
| Excessive config options | Find defaults that work for 95% |
|
|
24
|
+
|
|
25
|
+
## The Pattern
|
|
26
|
+
|
|
27
|
+
**Look for:**
|
|
28
|
+
- Multiple implementations of similar concepts
|
|
29
|
+
- Special case handling everywhere
|
|
30
|
+
- "We need to handle A, B, C, D differently..."
|
|
31
|
+
- Complex rules with many exceptions
|
|
32
|
+
|
|
33
|
+
**Ask:** "What if they're all the same thing underneath?"
|
|
34
|
+
|
|
35
|
+
## Examples
|
|
36
|
+
|
|
37
|
+
### Cascade 1: Stream Abstraction
|
|
38
|
+
**Before:** Separate handlers for batch/real-time/file/network data
|
|
39
|
+
**Insight:** "All inputs are streams - just different sources"
|
|
40
|
+
**After:** One stream processor, multiple stream sources
|
|
41
|
+
**Eliminated:** 4 separate implementations
|
|
42
|
+
|
|
43
|
+
### Cascade 2: Resource Governance
|
|
44
|
+
**Before:** Session tracking, rate limiting, file validation, connection pooling (all separate)
|
|
45
|
+
**Insight:** "All are per-entity resource limits"
|
|
46
|
+
**After:** One ResourceGovernor with 4 resource types
|
|
47
|
+
**Eliminated:** 4 custom enforcement systems
|
|
48
|
+
|
|
49
|
+
### Cascade 3: Immutability
|
|
50
|
+
**Before:** Defensive copying, locking, cache invalidation, temporal coupling
|
|
51
|
+
**Insight:** "Treat everything as immutable data + transformations"
|
|
52
|
+
**After:** Functional programming patterns
|
|
53
|
+
**Eliminated:** Entire classes of synchronization problems
|
|
54
|
+
|
|
55
|
+
## Process
|
|
56
|
+
|
|
57
|
+
1. **List the variations** - What's implemented multiple ways?
|
|
58
|
+
2. **Find the essence** - What's the same underneath?
|
|
59
|
+
3. **Extract abstraction** - What's the domain-independent pattern?
|
|
60
|
+
4. **Test it** - Do all cases fit cleanly?
|
|
61
|
+
5. **Measure cascade** - How many things become unnecessary?
|
|
62
|
+
|
|
63
|
+
## Red Flags You're Missing a Cascade
|
|
64
|
+
|
|
65
|
+
- "We just need to add one more case..." (repeating forever)
|
|
66
|
+
- "These are all similar but different" (maybe they're the same?)
|
|
67
|
+
- Refactoring feels like whack-a-mole (fix one, break another)
|
|
68
|
+
- Growing configuration file
|
|
69
|
+
- "Don't touch that, it's complicated" (complexity hiding pattern)
|
|
70
|
+
|
|
71
|
+
## Remember
|
|
72
|
+
|
|
73
|
+
- Simplification cascades = 10x wins, not 10% improvements
|
|
74
|
+
- One powerful abstraction > ten clever hacks
|
|
75
|
+
- The pattern is usually already there, just needs recognition
|
|
76
|
+
- Measure in "how many things can we delete?"
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: When Stuck - Problem-Solving Dispatch
|
|
3
|
+
description: Dispatch to the right problem-solving technique based on how you're stuck
|
|
4
|
+
when_to_use: when stuck and unsure which problem-solving technique to apply for your specific type of stuck-ness
|
|
5
|
+
version: 1.1.0
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# When Stuck - Problem-Solving Dispatch
|
|
9
|
+
|
|
10
|
+
## Overview
|
|
11
|
+
|
|
12
|
+
Different stuck-types need different techniques. This skill helps you quickly identify which problem-solving skill to use.
|
|
13
|
+
|
|
14
|
+
**Core principle:** Match stuck-symptom to technique.
|
|
15
|
+
|
|
16
|
+
## Quick Dispatch
|
|
17
|
+
|
|
18
|
+
```dot
|
|
19
|
+
digraph stuck_dispatch {
|
|
20
|
+
rankdir=TB;
|
|
21
|
+
node [shape=box, style=rounded];
|
|
22
|
+
|
|
23
|
+
stuck [label="You're Stuck", shape=ellipse, style=filled, fillcolor=lightblue];
|
|
24
|
+
|
|
25
|
+
complexity [label="Same thing implemented 5+ ways?\nGrowing special cases?\nExcessive if/else?"];
|
|
26
|
+
innovation [label="Can't find fitting approach?\nConventional solutions inadequate?\nNeed breakthrough?"];
|
|
27
|
+
patterns [label="Same issue in different places?\nFeels familiar across domains?\nReinventing wheels?"];
|
|
28
|
+
assumptions [label="Solution feels forced?\n'This must be done this way'?\nStuck on assumptions?"];
|
|
29
|
+
scale [label="Will this work at production?\nEdge cases unclear?\nUnsure of limits?"];
|
|
30
|
+
bugs [label="Code behaving wrong?\nTest failing?\nUnexpected output?"];
|
|
31
|
+
|
|
32
|
+
stuck -> complexity;
|
|
33
|
+
stuck -> innovation;
|
|
34
|
+
stuck -> patterns;
|
|
35
|
+
stuck -> assumptions;
|
|
36
|
+
stuck -> scale;
|
|
37
|
+
stuck -> bugs;
|
|
38
|
+
|
|
39
|
+
complexity -> simp [label="yes"];
|
|
40
|
+
innovation -> collision [label="yes"];
|
|
41
|
+
patterns -> meta [label="yes"];
|
|
42
|
+
assumptions -> invert [label="yes"];
|
|
43
|
+
scale -> scale_skill [label="yes"];
|
|
44
|
+
bugs -> debug [label="yes"];
|
|
45
|
+
|
|
46
|
+
simp [label="skills/problem-solving/\nsimplification-cascades", shape=box, style="rounded,filled", fillcolor=lightgreen];
|
|
47
|
+
collision [label="skills/problem-solving/\ncollision-zone-thinking", shape=box, style="rounded,filled", fillcolor=lightgreen];
|
|
48
|
+
meta [label="skills/problem-solving/\nmeta-pattern-recognition", shape=box, style="rounded,filled", fillcolor=lightgreen];
|
|
49
|
+
invert [label="skills/problem-solving/\ninversion-exercise", shape=box, style="rounded,filled", fillcolor=lightgreen];
|
|
50
|
+
scale_skill [label="skills/problem-solving/\nscale-game", shape=box, style="rounded,filled", fillcolor=lightgreen];
|
|
51
|
+
debug [label="skills/debugging/\nsystematic-debugging", shape=box, style="rounded,filled", fillcolor=lightyellow];
|
|
52
|
+
}
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
## Stuck-Type → Technique
|
|
56
|
+
|
|
57
|
+
| How You're Stuck | Use This Skill |
|
|
58
|
+
|------------------|----------------|
|
|
59
|
+
| **Complexity spiraling** - Same thing 5+ ways, growing special cases | skills/problem-solving/simplification-cascades |
|
|
60
|
+
| **Need innovation** - Conventional solutions inadequate, can't find fitting approach | skills/problem-solving/collision-zone-thinking |
|
|
61
|
+
| **Recurring patterns** - Same issue different places, reinventing wheels | skills/problem-solving/meta-pattern-recognition |
|
|
62
|
+
| **Forced by assumptions** - "Must be done this way", can't question premise | skills/problem-solving/inversion-exercise |
|
|
63
|
+
| **Scale uncertainty** - Will it work in production? Edge cases unclear? | skills/problem-solving/scale-game |
|
|
64
|
+
| **Code broken** - Wrong behavior, test failing, unexpected output | skills/debugging/systematic-debugging |
|
|
65
|
+
| **Multiple independent problems** - Can parallelize investigation | skills/collaboration/dispatching-parallel-agents |
|
|
66
|
+
| **Root cause unknown** - Symptom clear, cause hidden | skills/debugging/root-cause-tracing |
|
|
67
|
+
|
|
68
|
+
## Process
|
|
69
|
+
|
|
70
|
+
1. **Identify stuck-type** - What symptom matches above?
|
|
71
|
+
2. **Load that skill** - Read the specific technique
|
|
72
|
+
3. **Apply technique** - Follow its process
|
|
73
|
+
4. **If still stuck** - Try different technique or combine
|
|
74
|
+
|
|
75
|
+
## Combining Techniques
|
|
76
|
+
|
|
77
|
+
Some problems need multiple techniques:
|
|
78
|
+
|
|
79
|
+
- **Simplification + Meta-pattern**: Find pattern, then simplify all instances
|
|
80
|
+
- **Collision + Inversion**: Force metaphor, then invert its assumptions
|
|
81
|
+
- **Scale + Simplification**: Extremes reveal what to eliminate
|
|
82
|
+
|
|
83
|
+
## Remember
|
|
84
|
+
|
|
85
|
+
- Match symptom to technique
|
|
86
|
+
- One technique at a time
|
|
87
|
+
- Combine if first doesn't work
|
|
88
|
+
- Document what you tried
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: python-patterns
|
|
3
|
+
description: Python development principles and decision-making. Framework selection (FastAPI/Django/Flask), async patterns, type hints, project structure. Use when building Python APIs, backend services, or scripts. Teaches thinking, not copying.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Python Patterns
|
|
7
|
+
|
|
8
|
+
> Python development principles and decision-making for 2025.
|
|
9
|
+
> **Learn to THINK, not memorize patterns.**
|
|
10
|
+
|
|
11
|
+
## ⚠️ How to Use This Skill
|
|
12
|
+
|
|
13
|
+
This skill teaches **decision-making principles**, not fixed code to copy.
|
|
14
|
+
|
|
15
|
+
- ASK user for framework preference when unclear
|
|
16
|
+
- Choose async vs sync based on CONTEXT
|
|
17
|
+
- Don't default to same framework every time
|
|
18
|
+
|
|
19
|
+
## Quick References
|
|
20
|
+
|
|
21
|
+
| Topic | Reference |
|
|
22
|
+
|-------|-----------|
|
|
23
|
+
| Framework Selection | [framework-selection.md](./references/framework-selection.md) |
|
|
24
|
+
| Async Patterns | [async-patterns.md](./references/async-patterns.md) |
|
|
25
|
+
| Type Hints | [type-hints.md](./references/type-hints.md) |
|
|
26
|
+
| Project Structure | [project-structure.md](./references/project-structure.md) |
|
|
27
|
+
| FastAPI Best Practices | [fastapi-patterns.md](./references/fastapi-patterns.md) |
|
|
28
|
+
| Django Best Practices | [django-patterns.md](./references/django-patterns.md) |
|
|
29
|
+
| Testing Strategy | [testing-patterns.md](./references/testing-patterns.md) |
|
|
30
|
+
|
|
31
|
+
## Framework Decision Tree
|
|
32
|
+
|
|
33
|
+
```
|
|
34
|
+
What are you building?
|
|
35
|
+
│
|
|
36
|
+
├── API-first / Microservices → FastAPI
|
|
37
|
+
├── Full-stack web / CMS / Admin → Django
|
|
38
|
+
├── Simple / Script / Learning → Flask
|
|
39
|
+
├── AI/ML API serving → FastAPI
|
|
40
|
+
└── Background workers → Celery + any
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
## Async vs Sync Decision
|
|
44
|
+
|
|
45
|
+
```
|
|
46
|
+
I/O-bound → async (waiting for external)
|
|
47
|
+
CPU-bound → sync + multiprocessing (computing)
|
|
48
|
+
|
|
49
|
+
Don't:
|
|
50
|
+
├── Mix sync and async carelessly
|
|
51
|
+
├── Use sync libraries in async code
|
|
52
|
+
└── Force async for CPU work
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
## Decision Checklist
|
|
56
|
+
|
|
57
|
+
Before implementing:
|
|
58
|
+
|
|
59
|
+
- [ ] Asked user about framework preference?
|
|
60
|
+
- [ ] Chosen framework for THIS context?
|
|
61
|
+
- [ ] Decided async vs sync?
|
|
62
|
+
- [ ] Planned type hint strategy?
|
|
63
|
+
- [ ] Defined project structure?
|
|
64
|
+
- [ ] Considered background tasks?
|
|
65
|
+
|
|
66
|
+
## Anti-Patterns
|
|
67
|
+
|
|
68
|
+
### ❌ DON'T:
|
|
69
|
+
- Default to Django for simple APIs
|
|
70
|
+
- Use sync libraries in async code
|
|
71
|
+
- Skip type hints for public APIs
|
|
72
|
+
- Put business logic in routes/views
|
|
73
|
+
|
|
74
|
+
### ✅ DO:
|
|
75
|
+
- Choose framework based on context
|
|
76
|
+
- Ask about async requirements
|
|
77
|
+
- Use Pydantic for validation
|
|
78
|
+
- Separate concerns (routes → services → repos)
|
|
79
|
+
|
|
80
|
+
> **Remember**: Python patterns are about decision-making for YOUR specific context.
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
# Async Patterns
|
|
2
|
+
|
|
3
|
+
## When to Use Async
|
|
4
|
+
|
|
5
|
+
```
|
|
6
|
+
async def is better when:
|
|
7
|
+
├── I/O-bound operations (database, HTTP, file)
|
|
8
|
+
├── Many concurrent connections
|
|
9
|
+
├── Real-time features
|
|
10
|
+
├── Microservices communication
|
|
11
|
+
└── FastAPI/Starlette/Django ASGI
|
|
12
|
+
|
|
13
|
+
def (sync) is better when:
|
|
14
|
+
├── CPU-bound operations
|
|
15
|
+
├── Simple scripts
|
|
16
|
+
├── Legacy codebase
|
|
17
|
+
├── Team unfamiliar with async
|
|
18
|
+
└── Blocking libraries (no async version)
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
## The Golden Rule
|
|
22
|
+
|
|
23
|
+
```
|
|
24
|
+
I/O-bound → async (waiting for external)
|
|
25
|
+
CPU-bound → sync + multiprocessing (computing)
|
|
26
|
+
|
|
27
|
+
Don't:
|
|
28
|
+
├── Mix sync and async carelessly
|
|
29
|
+
├── Use sync libraries in async code
|
|
30
|
+
└── Force async for CPU work
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
## Async Library Selection
|
|
34
|
+
|
|
35
|
+
| Need | Async Library |
|
|
36
|
+
|------|---------------|
|
|
37
|
+
| HTTP client | httpx |
|
|
38
|
+
| PostgreSQL | asyncpg |
|
|
39
|
+
| Redis | aioredis / redis-py async |
|
|
40
|
+
| File I/O | aiofiles |
|
|
41
|
+
| Database ORM | SQLAlchemy 2.0 async, Tortoise |
|
|
42
|
+
|
|
43
|
+
## FastAPI async def vs def
|
|
44
|
+
|
|
45
|
+
```
|
|
46
|
+
Use async def when:
|
|
47
|
+
├── Using async database drivers
|
|
48
|
+
├── Making async HTTP calls
|
|
49
|
+
├── I/O-bound operations
|
|
50
|
+
└── Want to handle concurrency
|
|
51
|
+
|
|
52
|
+
Use def when:
|
|
53
|
+
├── Blocking operations
|
|
54
|
+
├── Sync database drivers
|
|
55
|
+
├── CPU-bound work
|
|
56
|
+
└── FastAPI runs in threadpool automatically
|
|
57
|
+
```
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
# Django Best Practices (2025)
|
|
2
|
+
|
|
3
|
+
## Django Async (Django 5.0+)
|
|
4
|
+
|
|
5
|
+
```
|
|
6
|
+
Django supports async:
|
|
7
|
+
├── Async views
|
|
8
|
+
├── Async middleware
|
|
9
|
+
├── Async ORM (limited)
|
|
10
|
+
└── ASGI deployment
|
|
11
|
+
|
|
12
|
+
When to use async in Django:
|
|
13
|
+
├── External API calls
|
|
14
|
+
├── WebSocket (Channels)
|
|
15
|
+
├── High-concurrency views
|
|
16
|
+
└── Background task triggering
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
## Model Design
|
|
20
|
+
|
|
21
|
+
```
|
|
22
|
+
Model design:
|
|
23
|
+
├── Fat models, thin views
|
|
24
|
+
├── Use managers for common queries
|
|
25
|
+
├── Abstract base classes for shared fields
|
|
26
|
+
|
|
27
|
+
Views:
|
|
28
|
+
├── Class-based for complex CRUD
|
|
29
|
+
├── Function-based for simple endpoints
|
|
30
|
+
├── Use viewsets with DRF
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
## Query Optimization
|
|
34
|
+
|
|
35
|
+
```
|
|
36
|
+
Queries:
|
|
37
|
+
├── select_related() for FKs
|
|
38
|
+
├── prefetch_related() for M2M
|
|
39
|
+
├── Avoid N+1 queries
|
|
40
|
+
└── Use .only() for specific fields
|
|
41
|
+
```
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
# FastAPI Best Practices
|
|
2
|
+
|
|
3
|
+
## Dependency Injection
|
|
4
|
+
|
|
5
|
+
```
|
|
6
|
+
Use dependencies for:
|
|
7
|
+
├── Database sessions
|
|
8
|
+
├── Current user / Auth
|
|
9
|
+
├── Configuration
|
|
10
|
+
├── Shared resources
|
|
11
|
+
|
|
12
|
+
Benefits:
|
|
13
|
+
├── Testability (mock dependencies)
|
|
14
|
+
├── Clean separation
|
|
15
|
+
├── Automatic cleanup (yield)
|
|
16
|
+
```
|
|
17
|
+
|
|
18
|
+
## Pydantic v2 Integration
|
|
19
|
+
|
|
20
|
+
```python
|
|
21
|
+
# Request validation
|
|
22
|
+
@app.post("/users")
|
|
23
|
+
async def create(user: UserCreate) -> UserResponse:
|
|
24
|
+
# user is already validated
|
|
25
|
+
...
|
|
26
|
+
|
|
27
|
+
# Response serialization
|
|
28
|
+
# Return type becomes response schema
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
## Error Handling
|
|
32
|
+
|
|
33
|
+
```
|
|
34
|
+
In FastAPI:
|
|
35
|
+
├── Create custom exception classes
|
|
36
|
+
├── Register exception handlers
|
|
37
|
+
├── Return consistent error format
|
|
38
|
+
└── Log without exposing internals
|
|
39
|
+
|
|
40
|
+
Pattern:
|
|
41
|
+
├── Raise domain exceptions in services
|
|
42
|
+
├── Catch and transform in handlers
|
|
43
|
+
└── Client gets clean error response
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
## Error Response Format
|
|
47
|
+
|
|
48
|
+
```
|
|
49
|
+
Include:
|
|
50
|
+
├── Error code (programmatic)
|
|
51
|
+
├── Message (human readable)
|
|
52
|
+
├── Details (field-level when applicable)
|
|
53
|
+
└── NOT stack traces (security)
|
|
54
|
+
```
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
# Framework Selection (2025)
|
|
2
|
+
|
|
3
|
+
## Decision Tree
|
|
4
|
+
|
|
5
|
+
```
|
|
6
|
+
What are you building?
|
|
7
|
+
│
|
|
8
|
+
├── API-first / Microservices
|
|
9
|
+
│ └── FastAPI (async, modern, fast)
|
|
10
|
+
│
|
|
11
|
+
├── Full-stack web / CMS / Admin
|
|
12
|
+
│ └── Django (batteries-included)
|
|
13
|
+
│
|
|
14
|
+
├── Simple / Script / Learning
|
|
15
|
+
│ └── Flask (minimal, flexible)
|
|
16
|
+
│
|
|
17
|
+
├── AI/ML API serving
|
|
18
|
+
│ └── FastAPI (Pydantic, async, uvicorn)
|
|
19
|
+
│
|
|
20
|
+
└── Background workers
|
|
21
|
+
└── Celery + any framework
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
## Comparison
|
|
25
|
+
|
|
26
|
+
| Factor | FastAPI | Django | Flask |
|
|
27
|
+
|--------|---------|--------|-------|
|
|
28
|
+
| **Best for** | APIs, microservices | Full-stack, CMS | Simple, learning |
|
|
29
|
+
| **Async** | Native | Django 5.0+ | Via extensions |
|
|
30
|
+
| **Admin** | Manual | Built-in | Via extensions |
|
|
31
|
+
| **ORM** | Choose your own | Django ORM | Choose your own |
|
|
32
|
+
| **Learning curve** | Low | Medium | Low |
|
|
33
|
+
|
|
34
|
+
## Selection Questions
|
|
35
|
+
|
|
36
|
+
1. Is this API-only or full-stack?
|
|
37
|
+
2. Need admin interface?
|
|
38
|
+
3. Team familiar with async?
|
|
39
|
+
4. Existing infrastructure?
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
# Project Structure Principles
|
|
2
|
+
|
|
3
|
+
## Structure by Size
|
|
4
|
+
|
|
5
|
+
```
|
|
6
|
+
Small project / Script:
|
|
7
|
+
├── main.py
|
|
8
|
+
├── utils.py
|
|
9
|
+
└── requirements.txt
|
|
10
|
+
|
|
11
|
+
Medium API:
|
|
12
|
+
├── app/
|
|
13
|
+
│ ├── __init__.py
|
|
14
|
+
│ ├── main.py
|
|
15
|
+
│ ├── models/
|
|
16
|
+
│ ├── routes/
|
|
17
|
+
│ ├── services/
|
|
18
|
+
│ └── schemas/
|
|
19
|
+
├── tests/
|
|
20
|
+
└── pyproject.toml
|
|
21
|
+
|
|
22
|
+
Large application:
|
|
23
|
+
├── src/
|
|
24
|
+
│ └── myapp/
|
|
25
|
+
│ ├── core/
|
|
26
|
+
│ ├── api/
|
|
27
|
+
│ ├── services/
|
|
28
|
+
│ ├── models/
|
|
29
|
+
│ └── ...
|
|
30
|
+
├── tests/
|
|
31
|
+
└── pyproject.toml
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
## FastAPI Structure
|
|
35
|
+
|
|
36
|
+
```
|
|
37
|
+
Organize by feature or layer:
|
|
38
|
+
|
|
39
|
+
By layer:
|
|
40
|
+
├── routes/ (API endpoints)
|
|
41
|
+
├── services/ (business logic)
|
|
42
|
+
├── models/ (database models)
|
|
43
|
+
├── schemas/ (Pydantic models)
|
|
44
|
+
└── dependencies/ (shared deps)
|
|
45
|
+
|
|
46
|
+
By feature:
|
|
47
|
+
├── users/
|
|
48
|
+
│ ├── routes.py
|
|
49
|
+
│ ├── service.py
|
|
50
|
+
│ └── schemas.py
|
|
51
|
+
└── products/
|
|
52
|
+
└── ...
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
## Background Tasks Selection
|
|
56
|
+
|
|
57
|
+
| Solution | Best For |
|
|
58
|
+
|----------|----------|
|
|
59
|
+
| **BackgroundTasks** | Simple, in-process tasks |
|
|
60
|
+
| **Celery** | Distributed, complex workflows |
|
|
61
|
+
| **ARQ** | Async, Redis-based |
|
|
62
|
+
| **RQ** | Simple Redis queue |
|
|
63
|
+
| **Dramatiq** | Actor-based, simpler than Celery |
|
|
64
|
+
|
|
65
|
+
## When to Use Each
|
|
66
|
+
|
|
67
|
+
```
|
|
68
|
+
FastAPI BackgroundTasks:
|
|
69
|
+
├── Quick operations
|
|
70
|
+
├── No persistence needed
|
|
71
|
+
├── Fire-and-forget
|
|
72
|
+
└── Same process
|
|
73
|
+
|
|
74
|
+
Celery/ARQ:
|
|
75
|
+
├── Long-running tasks
|
|
76
|
+
├── Need retry logic
|
|
77
|
+
├── Distributed workers
|
|
78
|
+
├── Persistent queue
|
|
79
|
+
└── Complex workflows
|
|
80
|
+
```
|