@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,190 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: coinpika-frontend-gesture-review-checklist
|
|
3
|
+
version: 1.0.0
|
|
4
|
+
status: LOCKED
|
|
5
|
+
authority: ENFORCEMENT
|
|
6
|
+
parent: coinpika-frontend-mobile-doctrine
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# 🧾 CoinPika Frontend Gesture Review Checklist
|
|
10
|
+
**(Hard Merge Gate · Mobile UX Enforcement)**
|
|
11
|
+
|
|
12
|
+
This checklist is a **MANDATORY enforcement gate** for any change involving:
|
|
13
|
+
|
|
14
|
+
- Mobile layout
|
|
15
|
+
- Scroll behavior
|
|
16
|
+
- Swipe gestures
|
|
17
|
+
- Tab navigation
|
|
18
|
+
- Touch interaction
|
|
19
|
+
- iOS / Android gesture handling
|
|
20
|
+
|
|
21
|
+
If **ANY** item fails,
|
|
22
|
+
the change **MUST NOT BE MERGED**.
|
|
23
|
+
|
|
24
|
+
This checklist enforces:
|
|
25
|
+
- CoinPika Frontend Mobile Doctrine
|
|
26
|
+
- CoinPika Swipe Tabs Doctrine
|
|
27
|
+
- CoinPika Performance Doctrine
|
|
28
|
+
- CoinPika Architecture Doctrine
|
|
29
|
+
|
|
30
|
+
---
|
|
31
|
+
|
|
32
|
+
## 1. Scope Declaration (MANDATORY)
|
|
33
|
+
|
|
34
|
+
- [ ] This change explicitly declares whether it affects gestures or scroll
|
|
35
|
+
- [ ] No gesture or scroll behavior is introduced implicitly
|
|
36
|
+
- [ ] Scope is fully understood by the reviewer
|
|
37
|
+
|
|
38
|
+
Unclear scope = **AUTOMATIC REJECTION**.
|
|
39
|
+
|
|
40
|
+
---
|
|
41
|
+
|
|
42
|
+
## 2. Scroll Ownership Verification
|
|
43
|
+
|
|
44
|
+
Confirm ALL of the following:
|
|
45
|
+
|
|
46
|
+
- [ ] Page root does **NOT** scroll
|
|
47
|
+
- [ ] Swipe container does **NOT** scroll
|
|
48
|
+
- [ ] Exactly **ONE** vertical scroll container exists
|
|
49
|
+
- [ ] The scroll container is `ScrollContent`
|
|
50
|
+
|
|
51
|
+
Multiple scroll containers = **CRITICAL UX VIOLATION**.
|
|
52
|
+
|
|
53
|
+
---
|
|
54
|
+
|
|
55
|
+
## 3. Swipe Architecture Compliance
|
|
56
|
+
|
|
57
|
+
- [ ] The universal swipe implementation is used
|
|
58
|
+
- [ ] No page-specific swipe overrides exist
|
|
59
|
+
- [ ] Swipe logic is not duplicated
|
|
60
|
+
- [ ] Swipe thresholds are global and unchanged
|
|
61
|
+
|
|
62
|
+
If swipe behavior differs between pages → **REJECT**.
|
|
63
|
+
|
|
64
|
+
---
|
|
65
|
+
|
|
66
|
+
## 4. Gesture Arbitration Correctness
|
|
67
|
+
|
|
68
|
+
- [ ] Horizontal intent triggers swipe
|
|
69
|
+
- [ ] Vertical intent triggers scroll
|
|
70
|
+
- [ ] Swipe cancels when vertical movement dominates
|
|
71
|
+
- [ ] Gesture resolution is deterministic (no heuristics)
|
|
72
|
+
|
|
73
|
+
Ambiguous gesture behavior = **INVALID IMPLEMENTATION**.
|
|
74
|
+
|
|
75
|
+
---
|
|
76
|
+
|
|
77
|
+
## 5. Structural Hierarchy Check
|
|
78
|
+
|
|
79
|
+
Verify the layout order:
|
|
80
|
+
|
|
81
|
+
```txt
|
|
82
|
+
Header (non-scrolling)
|
|
83
|
+
↓
|
|
84
|
+
TabBar (non-scrolling)
|
|
85
|
+
↓
|
|
86
|
+
Swipe Container (horizontal only)
|
|
87
|
+
↓
|
|
88
|
+
Tab Panel
|
|
89
|
+
↓
|
|
90
|
+
ScrollContent (vertical only)
|
|
91
|
+
````
|
|
92
|
+
|
|
93
|
+
* [ ] Header is outside the swipe layer
|
|
94
|
+
* [ ] TabBar is outside the swipe layer
|
|
95
|
+
* [ ] Only ScrollContent scrolls
|
|
96
|
+
|
|
97
|
+
Hierarchy violations break sticky and gestures.
|
|
98
|
+
|
|
99
|
+
---
|
|
100
|
+
|
|
101
|
+
## 6. iOS Stability Verification (MANDATORY)
|
|
102
|
+
|
|
103
|
+
* [ ] Tested on real iOS device or simulator
|
|
104
|
+
* [ ] No scroll bounce amplification
|
|
105
|
+
* [ ] No gesture lock-ups or stuck states
|
|
106
|
+
* [ ] Swipe + scroll interaction feels identical to other pages
|
|
107
|
+
|
|
108
|
+
Not tested on iOS = **REJECT**.
|
|
109
|
+
|
|
110
|
+
---
|
|
111
|
+
|
|
112
|
+
## 7. Forbidden Pattern Scan (ZERO TOLERANCE)
|
|
113
|
+
|
|
114
|
+
Confirm NONE of the following exist:
|
|
115
|
+
|
|
116
|
+
* [ ] Swipe logic attached to scroll containers
|
|
117
|
+
* [ ] Conditional gesture behavior per page
|
|
118
|
+
* [ ] Gesture logic based on content height
|
|
119
|
+
* [ ] JavaScript hacks to “fix” gestures
|
|
120
|
+
* [ ] Mixing transform-based swipe with native scroll
|
|
121
|
+
* [ ] Using `100vh` without subtracting system UI heights
|
|
122
|
+
|
|
123
|
+
Presence of ANY item above = **AUTOMATIC REJECTION**.
|
|
124
|
+
|
|
125
|
+
---
|
|
126
|
+
|
|
127
|
+
## 8. Performance & Stability Check
|
|
128
|
+
|
|
129
|
+
* [ ] No new layout shift introduced
|
|
130
|
+
* [ ] No flicker during gesture
|
|
131
|
+
* [ ] Cached content is not cleared
|
|
132
|
+
* [ ] Gesture does not trigger unnecessary re-renders
|
|
133
|
+
|
|
134
|
+
If the UI feels less stable → **REJECT**.
|
|
135
|
+
|
|
136
|
+
---
|
|
137
|
+
|
|
138
|
+
## 9. Cross-Page Consistency Check
|
|
139
|
+
|
|
140
|
+
* [ ] Gesture feels identical across all pages
|
|
141
|
+
* [ ] Scroll behavior is consistent
|
|
142
|
+
* [ ] No page feels “special” or different
|
|
143
|
+
|
|
144
|
+
If one page feels different,
|
|
145
|
+
the **system has drifted**.
|
|
146
|
+
|
|
147
|
+
---
|
|
148
|
+
|
|
149
|
+
## 10. Reviewer Assertion (MANDATORY)
|
|
150
|
+
|
|
151
|
+
The reviewer MUST be able to state:
|
|
152
|
+
|
|
153
|
+
* [ ] Which doctrine this change complies with
|
|
154
|
+
* [ ] Why no new invariant is introduced
|
|
155
|
+
* [ ] Why future engineers need no special context
|
|
156
|
+
* [ ] Why this change will not surprise users
|
|
157
|
+
|
|
158
|
+
If the reviewer cannot explain this confidently → **REJECT**.
|
|
159
|
+
|
|
160
|
+
---
|
|
161
|
+
|
|
162
|
+
## Final Enforcement Gate
|
|
163
|
+
|
|
164
|
+
* [ ] ALL checklist items pass
|
|
165
|
+
* [ ] No doctrine is violated
|
|
166
|
+
* [ ] No local patch is used to fix a systemic issue
|
|
167
|
+
|
|
168
|
+
If **ANY** checkbox is unchecked,
|
|
169
|
+
**DO NOT MERGE**.
|
|
170
|
+
|
|
171
|
+
---
|
|
172
|
+
|
|
173
|
+
## Enforcement Statement
|
|
174
|
+
|
|
175
|
+
Gesture consistency is a **SYSTEM INVARIANT**, not a UI detail.
|
|
176
|
+
|
|
177
|
+
Broken gestures:
|
|
178
|
+
|
|
179
|
+
* Break navigation
|
|
180
|
+
* Break trust
|
|
181
|
+
* Break mobile UX irreversibly
|
|
182
|
+
|
|
183
|
+
When in doubt — **REJECT THE CHANGE**.
|
|
184
|
+
|
|
185
|
+
---
|
|
186
|
+
|
|
187
|
+
**Status:** LOCKED
|
|
188
|
+
**Version:** 1.0.0
|
|
189
|
+
**Parent:** CoinPika Frontend Mobile Doctrine
|
|
190
|
+
**Override Permission:** NONE
|
|
@@ -0,0 +1,232 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: doctrine-violation-playbook
|
|
3
|
+
version: 1.0.0
|
|
4
|
+
status: LOCKED
|
|
5
|
+
authority: ENFORCEMENT
|
|
6
|
+
parent: coinpika-master-constitution
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# 🚨 CoinPika Doctrine Violation Playbook
|
|
10
|
+
**(Incident Response · Governance Enforcement · System Integrity)**
|
|
11
|
+
|
|
12
|
+
This playbook defines **how CoinPika responds** when any doctrine,
|
|
13
|
+
law, or constitutional rule is violated.
|
|
14
|
+
|
|
15
|
+
Doctrine violations are **NOT personal failures**.
|
|
16
|
+
They are **system protection events**.
|
|
17
|
+
|
|
18
|
+
Ignoring a violation causes:
|
|
19
|
+
- Architectural drift
|
|
20
|
+
- Hidden fragility
|
|
21
|
+
- Loss of trust
|
|
22
|
+
|
|
23
|
+
---
|
|
24
|
+
|
|
25
|
+
## 1. What Is a Doctrine Violation?
|
|
26
|
+
|
|
27
|
+
A doctrine violation occurs when **ANY** of the following happens:
|
|
28
|
+
|
|
29
|
+
- A Prime Directive is broken
|
|
30
|
+
- A system invariant is bypassed
|
|
31
|
+
- Data truth ownership is violated
|
|
32
|
+
- Historical or chart integrity is compromised
|
|
33
|
+
- Mobile UX or gesture invariants are broken
|
|
34
|
+
- Performance laws are violated
|
|
35
|
+
- An AI agent exceeds its authority
|
|
36
|
+
- A “temporary” exception is introduced
|
|
37
|
+
|
|
38
|
+
If the system works **by luck or memory**,
|
|
39
|
+
it is already in violation.
|
|
40
|
+
|
|
41
|
+
---
|
|
42
|
+
|
|
43
|
+
## 2. Violation Severity Levels
|
|
44
|
+
|
|
45
|
+
### 🔴 SEV-1 — Constitutional Violation
|
|
46
|
+
|
|
47
|
+
Examples:
|
|
48
|
+
|
|
49
|
+
- Frontend mutates financial meaning
|
|
50
|
+
- Realtime data contaminates historical charts
|
|
51
|
+
- Backend truth is bypassed
|
|
52
|
+
- Irreversible breaking change deployed
|
|
53
|
+
- AI agent overrides doctrine or enforcement
|
|
54
|
+
|
|
55
|
+
**Required Response:**
|
|
56
|
+
|
|
57
|
+
- Immediate rollback or shutdown
|
|
58
|
+
- Incident declared
|
|
59
|
+
- Full audit required
|
|
60
|
+
|
|
61
|
+
---
|
|
62
|
+
|
|
63
|
+
### 🟠 SEV-2 — System Doctrine Violation
|
|
64
|
+
|
|
65
|
+
Examples:
|
|
66
|
+
|
|
67
|
+
- Page-specific gesture logic
|
|
68
|
+
- Multiple scroll containers introduced
|
|
69
|
+
- Performance regression masked as optimization
|
|
70
|
+
- Backend treated as thin proxy
|
|
71
|
+
|
|
72
|
+
**Required Response:**
|
|
73
|
+
|
|
74
|
+
- Block merge or revert
|
|
75
|
+
- Root cause analysis
|
|
76
|
+
- Doctrine reinforcement
|
|
77
|
+
|
|
78
|
+
---
|
|
79
|
+
|
|
80
|
+
### 🟡 SEV-3 — Process / Enforcement Violation
|
|
81
|
+
|
|
82
|
+
Examples:
|
|
83
|
+
|
|
84
|
+
- Missing checklist
|
|
85
|
+
- Doctrine not cited in PR
|
|
86
|
+
- Agent output merged without review
|
|
87
|
+
- Enforcement skipped “for speed”
|
|
88
|
+
|
|
89
|
+
**Required Response:**
|
|
90
|
+
|
|
91
|
+
- Fix process
|
|
92
|
+
- Retrain reviewers / agents
|
|
93
|
+
- Strengthen enforcement gates
|
|
94
|
+
|
|
95
|
+
---
|
|
96
|
+
|
|
97
|
+
## 3. Immediate Response Protocol
|
|
98
|
+
|
|
99
|
+
When a violation is detected:
|
|
100
|
+
|
|
101
|
+
1. **STOP** further rollout or merges
|
|
102
|
+
2. **ISOLATE** the violating change
|
|
103
|
+
3. **CLASSIFY** severity (SEV-1 / SEV-2 / SEV-3)
|
|
104
|
+
4. **REVERT or CONTAIN** the impact
|
|
105
|
+
|
|
106
|
+
Speed of containment
|
|
107
|
+
is more important than explanation.
|
|
108
|
+
|
|
109
|
+
---
|
|
110
|
+
|
|
111
|
+
## 4. Root Cause Analysis (MANDATORY)
|
|
112
|
+
|
|
113
|
+
Every violation MUST answer:
|
|
114
|
+
|
|
115
|
+
- Which doctrine or law was violated?
|
|
116
|
+
- Why was the violation possible?
|
|
117
|
+
- Why was it not caught earlier?
|
|
118
|
+
- Was enforcement missing or bypassed?
|
|
119
|
+
- Was an AI agent involved?
|
|
120
|
+
|
|
121
|
+
Blame is **FORBIDDEN**.
|
|
122
|
+
System learning is **REQUIRED**.
|
|
123
|
+
|
|
124
|
+
---
|
|
125
|
+
|
|
126
|
+
## 5. Remediation Paths
|
|
127
|
+
|
|
128
|
+
Exactly **ONE** remediation path must be chosen.
|
|
129
|
+
|
|
130
|
+
### A. Simple Restoration
|
|
131
|
+
|
|
132
|
+
Use when:
|
|
133
|
+
- Violation is clear
|
|
134
|
+
- Fix is obvious
|
|
135
|
+
- No doctrine change needed
|
|
136
|
+
|
|
137
|
+
Actions:
|
|
138
|
+
- Revert change
|
|
139
|
+
- Restore invariant
|
|
140
|
+
- Add test or checklist coverage
|
|
141
|
+
|
|
142
|
+
---
|
|
143
|
+
|
|
144
|
+
### B. Doctrine Clarification
|
|
145
|
+
|
|
146
|
+
Use when:
|
|
147
|
+
- Doctrine wording was ambiguous
|
|
148
|
+
- Behavior was unclear
|
|
149
|
+
|
|
150
|
+
Actions:
|
|
151
|
+
- Clarify doctrine text
|
|
152
|
+
- NO behavior change
|
|
153
|
+
- Release as **v1.0.x**
|
|
154
|
+
|
|
155
|
+
---
|
|
156
|
+
|
|
157
|
+
### C. Legitimate Limitation
|
|
158
|
+
|
|
159
|
+
Use when:
|
|
160
|
+
- Real-world constraint is discovered
|
|
161
|
+
- Current doctrine is insufficient
|
|
162
|
+
|
|
163
|
+
Actions:
|
|
164
|
+
- Submit **v1.1 Change Proposal**
|
|
165
|
+
- Doctrine remains authoritative until approved
|
|
166
|
+
- No workaround allowed
|
|
167
|
+
|
|
168
|
+
---
|
|
169
|
+
|
|
170
|
+
## 6. AI-Specific Violations
|
|
171
|
+
|
|
172
|
+
If an AI agent caused or contributed:
|
|
173
|
+
|
|
174
|
+
- Invalidate the agent output
|
|
175
|
+
- Restrict or disable the agent
|
|
176
|
+
- Audit past outputs
|
|
177
|
+
- Update prompts or enforcement rules
|
|
178
|
+
|
|
179
|
+
Repeated AI violations
|
|
180
|
+
require **agent suspension**.
|
|
181
|
+
|
|
182
|
+
---
|
|
183
|
+
|
|
184
|
+
## 7. Communication Rules
|
|
185
|
+
|
|
186
|
+
All violations MUST be:
|
|
187
|
+
|
|
188
|
+
- Documented
|
|
189
|
+
- Visible to the team
|
|
190
|
+
- Free of retroactive justification
|
|
191
|
+
|
|
192
|
+
Forbidden behaviors:
|
|
193
|
+
|
|
194
|
+
- Silent fixes
|
|
195
|
+
- Normalizing exceptions
|
|
196
|
+
- “We’ll clean it up later”
|
|
197
|
+
- Blaming individuals
|
|
198
|
+
|
|
199
|
+
Transparency preserves trust.
|
|
200
|
+
|
|
201
|
+
---
|
|
202
|
+
|
|
203
|
+
## 8. Post-Incident Safeguards
|
|
204
|
+
|
|
205
|
+
After resolution, at least **ONE** must occur:
|
|
206
|
+
|
|
207
|
+
- New checklist item
|
|
208
|
+
- New automated test
|
|
209
|
+
- Stronger agent restriction
|
|
210
|
+
- Clearer doctrine wording
|
|
211
|
+
|
|
212
|
+
If nothing changes,
|
|
213
|
+
the violation **WILL recur**.
|
|
214
|
+
|
|
215
|
+
---
|
|
216
|
+
|
|
217
|
+
## Final Principle
|
|
218
|
+
|
|
219
|
+
Doctrine violations are **signals**, not annoyances.
|
|
220
|
+
|
|
221
|
+
CoinPika chooses:
|
|
222
|
+
|
|
223
|
+
**Correction over comfort**
|
|
224
|
+
**Integrity over speed**
|
|
225
|
+
**Trust over convenience**
|
|
226
|
+
|
|
227
|
+
---
|
|
228
|
+
|
|
229
|
+
**Status:** LOCKED
|
|
230
|
+
**Version:** 1.0.0
|
|
231
|
+
**Parent:** CoinPika Master Constitution
|
|
232
|
+
**Override Permission:** NONE
|
|
@@ -0,0 +1,218 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
/**
|
|
3
|
+
* CoinPika PR Audit Tool
|
|
4
|
+
*
|
|
5
|
+
* Audits a Git branch or PR for doctrine compliance
|
|
6
|
+
*
|
|
7
|
+
* Usage:
|
|
8
|
+
* node scripts/audit_pr.js <branch-name>
|
|
9
|
+
* node scripts/audit_pr.js --current (audit current branch vs main)
|
|
10
|
+
*
|
|
11
|
+
* Exit codes:
|
|
12
|
+
* 0 = All checks passed
|
|
13
|
+
* 1 = Violations found
|
|
14
|
+
*/
|
|
15
|
+
|
|
16
|
+
import { execSync } from 'child_process';
|
|
17
|
+
import fs from 'fs';
|
|
18
|
+
import path from 'path';
|
|
19
|
+
import { fileURLToPath } from 'url';
|
|
20
|
+
|
|
21
|
+
const __filename = fileURLToPath(import.meta.url);
|
|
22
|
+
const __dirname = path.dirname(__filename);
|
|
23
|
+
|
|
24
|
+
const colors = {
|
|
25
|
+
reset: '\x1b[0m',
|
|
26
|
+
red: '\x1b[31m',
|
|
27
|
+
green: '\x1b[32m',
|
|
28
|
+
yellow: '\x1b[33m',
|
|
29
|
+
cyan: '\x1b[36m',
|
|
30
|
+
magenta: '\x1b[35m',
|
|
31
|
+
dim: '\x1b[2m',
|
|
32
|
+
bold: '\x1b[1m',
|
|
33
|
+
};
|
|
34
|
+
|
|
35
|
+
class PRAuditor {
|
|
36
|
+
constructor(targetBranch, baseBranch = 'main') {
|
|
37
|
+
this.targetBranch = targetBranch;
|
|
38
|
+
this.baseBranch = baseBranch;
|
|
39
|
+
this.changedFiles = [];
|
|
40
|
+
this.violations = [];
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
getChangedFiles() {
|
|
44
|
+
try {
|
|
45
|
+
const diff = execSync(
|
|
46
|
+
`git diff --name-only ${this.baseBranch}...${this.targetBranch}`,
|
|
47
|
+
{ encoding: 'utf-8' }
|
|
48
|
+
);
|
|
49
|
+
|
|
50
|
+
this.changedFiles = diff
|
|
51
|
+
.split('\n')
|
|
52
|
+
.filter(f => f.trim())
|
|
53
|
+
.filter(f => f.match(/\.(ts|tsx|js|jsx)$/))
|
|
54
|
+
.filter(f => !f.includes('node_modules'))
|
|
55
|
+
.filter(f => !f.includes('.test.'))
|
|
56
|
+
.filter(f => !f.includes('.spec.'));
|
|
57
|
+
|
|
58
|
+
return this.changedFiles;
|
|
59
|
+
} catch (error) {
|
|
60
|
+
console.error(colors.red + 'Error getting changed files:' + colors.reset, error.message);
|
|
61
|
+
process.exit(1);
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
categorizePR() {
|
|
66
|
+
const categories = {
|
|
67
|
+
backend: false,
|
|
68
|
+
frontend: false,
|
|
69
|
+
api: false,
|
|
70
|
+
chart: false,
|
|
71
|
+
mobile: false,
|
|
72
|
+
data: false,
|
|
73
|
+
};
|
|
74
|
+
|
|
75
|
+
for (const file of this.changedFiles) {
|
|
76
|
+
if (file.match(/api\//)) categories.api = true;
|
|
77
|
+
if (file.match(/lib\/|server\/|db\//)) categories.backend = true;
|
|
78
|
+
if (file.match(/components\/|app\/|pages\//)) categories.frontend = true;
|
|
79
|
+
if (file.match(/chart|graph|ohlc|candle/i)) categories.chart = true;
|
|
80
|
+
if (file.match(/mobile|gesture|swipe|scroll/i)) categories.mobile = true;
|
|
81
|
+
if (file.match(/data|price|market|coin/i)) categories.data = true;
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
return categories;
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
getApplicableDoctrines(categories) {
|
|
88
|
+
const doctrines = [
|
|
89
|
+
'constitution/coinpika-master-constitution.md',
|
|
90
|
+
];
|
|
91
|
+
|
|
92
|
+
if (categories.backend || categories.api) {
|
|
93
|
+
doctrines.push('doctrines/architecture/coinpika-architecture-doctrine.md');
|
|
94
|
+
doctrines.push('doctrines/backend/coinpika-backend-data-engine-doctrine.md');
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
if (categories.chart || categories.data) {
|
|
98
|
+
doctrines.push('doctrines/data/coinpika-chart-data-doctrine.md');
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
if (categories.frontend || categories.mobile) {
|
|
102
|
+
doctrines.push('doctrines/frontend/coinpika-frontend-mobile-doctrine.md');
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
if (categories.mobile) {
|
|
106
|
+
doctrines.push('doctrines/frontend/coinpika-swipe-tabs-doctrine.md');
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
doctrines.push('doctrines/performance/coinpika-performance-doctrine.md');
|
|
110
|
+
doctrines.push('doctrines/commercial/coinpika-commercial-guardrails-doctrine.md');
|
|
111
|
+
|
|
112
|
+
return doctrines;
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
async auditFiles() {
|
|
116
|
+
const validatorPath = path.join(__dirname, 'validate_doctrine.js');
|
|
117
|
+
|
|
118
|
+
for (const file of this.changedFiles) {
|
|
119
|
+
if (!fs.existsSync(file)) {
|
|
120
|
+
console.log(colors.yellow + `⚠️ File deleted: ${file}` + colors.reset);
|
|
121
|
+
continue;
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
console.log(colors.dim + `\nValidating: ${file}` + colors.reset);
|
|
125
|
+
|
|
126
|
+
try {
|
|
127
|
+
execSync(`node "${validatorPath}" "${file}"`, {
|
|
128
|
+
stdio: 'inherit',
|
|
129
|
+
});
|
|
130
|
+
} catch (error) {
|
|
131
|
+
this.violations.push(file);
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
printSummary() {
|
|
137
|
+
const categories = this.categorizePR();
|
|
138
|
+
const doctrines = this.getApplicableDoctrines(categories);
|
|
139
|
+
|
|
140
|
+
console.log('\n' + colors.magenta + '═'.repeat(70) + colors.reset);
|
|
141
|
+
console.log(colors.magenta + colors.bold + `CoinPika PR Audit Report` + colors.reset);
|
|
142
|
+
console.log(colors.magenta + '═'.repeat(70) + colors.reset + '\n');
|
|
143
|
+
|
|
144
|
+
console.log(colors.cyan + `Branch: ${this.targetBranch}` + colors.reset);
|
|
145
|
+
console.log(colors.dim + `Base: ${this.baseBranch}` + colors.reset);
|
|
146
|
+
console.log(colors.dim + `Files changed: ${this.changedFiles.length}` + colors.reset);
|
|
147
|
+
console.log();
|
|
148
|
+
|
|
149
|
+
console.log(colors.bold + 'PR Categories:' + colors.reset);
|
|
150
|
+
Object.entries(categories).forEach(([cat, val]) => {
|
|
151
|
+
if (val) {
|
|
152
|
+
console.log(` ✓ ${cat}`);
|
|
153
|
+
}
|
|
154
|
+
});
|
|
155
|
+
console.log();
|
|
156
|
+
|
|
157
|
+
console.log(colors.bold + 'Applicable Doctrines:' + colors.reset);
|
|
158
|
+
doctrines.forEach(d => {
|
|
159
|
+
console.log(colors.dim + ` • ${d}` + colors.reset);
|
|
160
|
+
});
|
|
161
|
+
console.log();
|
|
162
|
+
|
|
163
|
+
if (this.violations.length === 0) {
|
|
164
|
+
console.log(colors.green + '✅ All files passed doctrine validation!' + colors.reset);
|
|
165
|
+
} else {
|
|
166
|
+
console.log(colors.red + `❌ ${this.violations.length} file(s) with violations:` + colors.reset);
|
|
167
|
+
this.violations.forEach(file => {
|
|
168
|
+
console.log(colors.red + ` • ${file}` + colors.reset);
|
|
169
|
+
});
|
|
170
|
+
}
|
|
171
|
+
|
|
172
|
+
console.log('\n' + colors.magenta + '═'.repeat(70) + colors.reset + '\n');
|
|
173
|
+
}
|
|
174
|
+
|
|
175
|
+
async run() {
|
|
176
|
+
console.log(colors.cyan + '\n🔍 Starting CoinPika PR Audit...\n' + colors.reset);
|
|
177
|
+
|
|
178
|
+
this.getChangedFiles();
|
|
179
|
+
|
|
180
|
+
if (this.changedFiles.length === 0) {
|
|
181
|
+
console.log(colors.yellow + 'No relevant files changed.' + colors.reset);
|
|
182
|
+
return 0;
|
|
183
|
+
}
|
|
184
|
+
|
|
185
|
+
console.log(colors.dim + `Found ${this.changedFiles.length} file(s) to audit\n` + colors.reset);
|
|
186
|
+
|
|
187
|
+
await this.auditFiles();
|
|
188
|
+
this.printSummary();
|
|
189
|
+
|
|
190
|
+
return this.violations.length > 0 ? 1 : 0;
|
|
191
|
+
}
|
|
192
|
+
}
|
|
193
|
+
|
|
194
|
+
// Main execution
|
|
195
|
+
const arg = process.argv[2];
|
|
196
|
+
|
|
197
|
+
if (!arg) {
|
|
198
|
+
console.error('Usage: node audit_pr.js <branch-name>');
|
|
199
|
+
console.error(' node audit_pr.js --current');
|
|
200
|
+
process.exit(1);
|
|
201
|
+
}
|
|
202
|
+
|
|
203
|
+
let targetBranch;
|
|
204
|
+
if (arg === '--current') {
|
|
205
|
+
try {
|
|
206
|
+
targetBranch = execSync('git branch --show-current', { encoding: 'utf-8' }).trim();
|
|
207
|
+
} catch (error) {
|
|
208
|
+
console.error(colors.red + 'Error getting current branch' + colors.reset);
|
|
209
|
+
process.exit(1);
|
|
210
|
+
}
|
|
211
|
+
} else {
|
|
212
|
+
targetBranch = arg;
|
|
213
|
+
}
|
|
214
|
+
|
|
215
|
+
const auditor = new PRAuditor(targetBranch);
|
|
216
|
+
auditor.run().then(exitCode => {
|
|
217
|
+
process.exit(exitCode);
|
|
218
|
+
});
|