@aslomon/effectum 0.3.3 → 0.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bin/install.js +68 -4
- package/bin/lib/cli-tools.js +288 -0
- package/bin/lib/specializations.js +11 -1
- package/bin/lib/template.js +14 -0
- package/bin/lib/ui.js +109 -0
- package/package.json +1 -1
- package/system/agents/data-engineer.md +268 -0
- package/system/agents/mobile-developer.md +257 -0
- package/system/hooks/observe.sh +164 -0
- package/system/hooks/quick-diff.sh +87 -0
- package/system/hooks/save-results.sh +56 -0
- package/system/hooks/scan.sh +170 -0
- package/system/skills/README.md +86 -0
- package/system/skills/SKILL.md +117 -0
- package/system/skills/agents/observer.md +137 -0
- package/system/skills/agents/start-observer.sh +143 -0
- package/system/skills/algorithmic-art/LICENSE.txt +202 -0
- package/system/skills/algorithmic-art/SKILL.md +405 -0
- package/system/skills/algorithmic-art/templates/generator_template.js +223 -0
- package/system/skills/algorithmic-art/templates/viewer.html +599 -0
- package/system/skills/api-endpoint/SKILL.md +106 -0
- package/system/skills/canvas-design/LICENSE.txt +202 -0
- package/system/skills/canvas-design/SKILL.md +130 -0
- package/system/skills/canvas-design/canvas-fonts/ArsenalSC-OFL.txt +93 -0
- package/system/skills/canvas-design/canvas-fonts/ArsenalSC-Regular.ttf +0 -0
- package/system/skills/canvas-design/canvas-fonts/BigShoulders-Bold.ttf +0 -0
- package/system/skills/canvas-design/canvas-fonts/BigShoulders-OFL.txt +93 -0
- package/system/skills/canvas-design/canvas-fonts/BigShoulders-Regular.ttf +0 -0
- package/system/skills/canvas-design/canvas-fonts/Boldonse-OFL.txt +93 -0
- package/system/skills/canvas-design/canvas-fonts/Boldonse-Regular.ttf +0 -0
- package/system/skills/canvas-design/canvas-fonts/BricolageGrotesque-Bold.ttf +0 -0
- package/system/skills/canvas-design/canvas-fonts/BricolageGrotesque-OFL.txt +93 -0
- package/system/skills/canvas-design/canvas-fonts/BricolageGrotesque-Regular.ttf +0 -0
- package/system/skills/canvas-design/canvas-fonts/CrimsonPro-Bold.ttf +0 -0
- package/system/skills/canvas-design/canvas-fonts/CrimsonPro-Italic.ttf +0 -0
- package/system/skills/canvas-design/canvas-fonts/CrimsonPro-OFL.txt +93 -0
- package/system/skills/canvas-design/canvas-fonts/CrimsonPro-Regular.ttf +0 -0
- package/system/skills/canvas-design/canvas-fonts/DMMono-OFL.txt +93 -0
- package/system/skills/canvas-design/canvas-fonts/DMMono-Regular.ttf +0 -0
- package/system/skills/canvas-design/canvas-fonts/EricaOne-OFL.txt +94 -0
- package/system/skills/canvas-design/canvas-fonts/EricaOne-Regular.ttf +0 -0
- package/system/skills/canvas-design/canvas-fonts/GeistMono-Bold.ttf +0 -0
- package/system/skills/canvas-design/canvas-fonts/GeistMono-OFL.txt +93 -0
- package/system/skills/canvas-design/canvas-fonts/GeistMono-Regular.ttf +0 -0
- package/system/skills/canvas-design/canvas-fonts/Gloock-OFL.txt +93 -0
- package/system/skills/canvas-design/canvas-fonts/Gloock-Regular.ttf +0 -0
- package/system/skills/canvas-design/canvas-fonts/IBMPlexMono-Bold.ttf +0 -0
- package/system/skills/canvas-design/canvas-fonts/IBMPlexMono-OFL.txt +93 -0
- package/system/skills/canvas-design/canvas-fonts/IBMPlexMono-Regular.ttf +0 -0
- package/system/skills/canvas-design/canvas-fonts/IBMPlexSerif-Bold.ttf +0 -0
- package/system/skills/canvas-design/canvas-fonts/IBMPlexSerif-BoldItalic.ttf +0 -0
- package/system/skills/canvas-design/canvas-fonts/IBMPlexSerif-Italic.ttf +0 -0
- package/system/skills/canvas-design/canvas-fonts/IBMPlexSerif-Regular.ttf +0 -0
- package/system/skills/canvas-design/canvas-fonts/InstrumentSans-Bold.ttf +0 -0
- package/system/skills/canvas-design/canvas-fonts/InstrumentSans-BoldItalic.ttf +0 -0
- package/system/skills/canvas-design/canvas-fonts/InstrumentSans-Italic.ttf +0 -0
- package/system/skills/canvas-design/canvas-fonts/InstrumentSans-OFL.txt +93 -0
- package/system/skills/canvas-design/canvas-fonts/InstrumentSans-Regular.ttf +0 -0
- package/system/skills/canvas-design/canvas-fonts/InstrumentSerif-Italic.ttf +0 -0
- package/system/skills/canvas-design/canvas-fonts/InstrumentSerif-Regular.ttf +0 -0
- package/system/skills/canvas-design/canvas-fonts/Italiana-OFL.txt +93 -0
- package/system/skills/canvas-design/canvas-fonts/Italiana-Regular.ttf +0 -0
- package/system/skills/canvas-design/canvas-fonts/JetBrainsMono-Bold.ttf +0 -0
- package/system/skills/canvas-design/canvas-fonts/JetBrainsMono-OFL.txt +93 -0
- package/system/skills/canvas-design/canvas-fonts/JetBrainsMono-Regular.ttf +0 -0
- package/system/skills/canvas-design/canvas-fonts/Jura-Light.ttf +0 -0
- package/system/skills/canvas-design/canvas-fonts/Jura-Medium.ttf +0 -0
- package/system/skills/canvas-design/canvas-fonts/Jura-OFL.txt +93 -0
- package/system/skills/canvas-design/canvas-fonts/LibreBaskerville-OFL.txt +93 -0
- package/system/skills/canvas-design/canvas-fonts/LibreBaskerville-Regular.ttf +0 -0
- package/system/skills/canvas-design/canvas-fonts/Lora-Bold.ttf +0 -0
- package/system/skills/canvas-design/canvas-fonts/Lora-BoldItalic.ttf +0 -0
- package/system/skills/canvas-design/canvas-fonts/Lora-Italic.ttf +0 -0
- package/system/skills/canvas-design/canvas-fonts/Lora-OFL.txt +93 -0
- package/system/skills/canvas-design/canvas-fonts/Lora-Regular.ttf +0 -0
- package/system/skills/canvas-design/canvas-fonts/NationalPark-Bold.ttf +0 -0
- package/system/skills/canvas-design/canvas-fonts/NationalPark-OFL.txt +93 -0
- package/system/skills/canvas-design/canvas-fonts/NationalPark-Regular.ttf +0 -0
- package/system/skills/canvas-design/canvas-fonts/NothingYouCouldDo-OFL.txt +93 -0
- package/system/skills/canvas-design/canvas-fonts/NothingYouCouldDo-Regular.ttf +0 -0
- package/system/skills/canvas-design/canvas-fonts/Outfit-Bold.ttf +0 -0
- package/system/skills/canvas-design/canvas-fonts/Outfit-OFL.txt +93 -0
- package/system/skills/canvas-design/canvas-fonts/Outfit-Regular.ttf +0 -0
- package/system/skills/canvas-design/canvas-fonts/PixelifySans-Medium.ttf +0 -0
- package/system/skills/canvas-design/canvas-fonts/PixelifySans-OFL.txt +93 -0
- package/system/skills/canvas-design/canvas-fonts/PoiretOne-OFL.txt +93 -0
- package/system/skills/canvas-design/canvas-fonts/PoiretOne-Regular.ttf +0 -0
- package/system/skills/canvas-design/canvas-fonts/RedHatMono-Bold.ttf +0 -0
- package/system/skills/canvas-design/canvas-fonts/RedHatMono-OFL.txt +93 -0
- package/system/skills/canvas-design/canvas-fonts/RedHatMono-Regular.ttf +0 -0
- package/system/skills/canvas-design/canvas-fonts/Silkscreen-OFL.txt +93 -0
- package/system/skills/canvas-design/canvas-fonts/Silkscreen-Regular.ttf +0 -0
- package/system/skills/canvas-design/canvas-fonts/SmoochSans-Medium.ttf +0 -0
- package/system/skills/canvas-design/canvas-fonts/SmoochSans-OFL.txt +93 -0
- package/system/skills/canvas-design/canvas-fonts/Tektur-Medium.ttf +0 -0
- package/system/skills/canvas-design/canvas-fonts/Tektur-OFL.txt +93 -0
- package/system/skills/canvas-design/canvas-fonts/Tektur-Regular.ttf +0 -0
- package/system/skills/canvas-design/canvas-fonts/WorkSans-Bold.ttf +0 -0
- package/system/skills/canvas-design/canvas-fonts/WorkSans-BoldItalic.ttf +0 -0
- package/system/skills/canvas-design/canvas-fonts/WorkSans-Italic.ttf +0 -0
- package/system/skills/canvas-design/canvas-fonts/WorkSans-OFL.txt +93 -0
- package/system/skills/canvas-design/canvas-fonts/WorkSans-Regular.ttf +0 -0
- package/system/skills/canvas-design/canvas-fonts/YoungSerif-OFL.txt +93 -0
- package/system/skills/canvas-design/canvas-fonts/YoungSerif-Regular.ttf +0 -0
- package/system/skills/component/SKILL.md +103 -0
- package/system/skills/config.json +18 -0
- package/system/skills/doc-coauthoring/SKILL.md +375 -0
- package/system/skills/docx/LICENSE.txt +30 -0
- package/system/skills/docx/SKILL.md +590 -0
- package/system/skills/docx/scripts/__init__.py +1 -0
- package/system/skills/docx/scripts/accept_changes.py +135 -0
- package/system/skills/docx/scripts/comment.py +318 -0
- package/system/skills/docx/scripts/office/helpers/__init__.py +0 -0
- package/system/skills/docx/scripts/office/helpers/merge_runs.py +199 -0
- package/system/skills/docx/scripts/office/helpers/simplify_redlines.py +197 -0
- package/system/skills/docx/scripts/office/pack.py +159 -0
- package/system/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-chart.xsd +1499 -0
- package/system/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-chartDrawing.xsd +146 -0
- package/system/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-diagram.xsd +1085 -0
- package/system/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-lockedCanvas.xsd +11 -0
- package/system/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-main.xsd +3081 -0
- package/system/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-picture.xsd +23 -0
- package/system/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-spreadsheetDrawing.xsd +185 -0
- package/system/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-wordprocessingDrawing.xsd +287 -0
- package/system/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/pml.xsd +1676 -0
- package/system/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-additionalCharacteristics.xsd +28 -0
- package/system/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-bibliography.xsd +144 -0
- package/system/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-commonSimpleTypes.xsd +174 -0
- package/system/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-customXmlDataProperties.xsd +25 -0
- package/system/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-customXmlSchemaProperties.xsd +18 -0
- package/system/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesCustom.xsd +59 -0
- package/system/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesExtended.xsd +56 -0
- package/system/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesVariantTypes.xsd +195 -0
- package/system/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-math.xsd +582 -0
- package/system/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-relationshipReference.xsd +25 -0
- package/system/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/sml.xsd +4439 -0
- package/system/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-main.xsd +570 -0
- package/system/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-officeDrawing.xsd +509 -0
- package/system/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-presentationDrawing.xsd +12 -0
- package/system/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-spreadsheetDrawing.xsd +108 -0
- package/system/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-wordprocessingDrawing.xsd +96 -0
- package/system/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/wml.xsd +3646 -0
- package/system/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/xml.xsd +116 -0
- package/system/skills/docx/scripts/office/schemas/ecma/fouth-edition/opc-contentTypes.xsd +42 -0
- package/system/skills/docx/scripts/office/schemas/ecma/fouth-edition/opc-coreProperties.xsd +50 -0
- package/system/skills/docx/scripts/office/schemas/ecma/fouth-edition/opc-digSig.xsd +49 -0
- package/system/skills/docx/scripts/office/schemas/ecma/fouth-edition/opc-relationships.xsd +33 -0
- package/system/skills/docx/scripts/office/schemas/mce/mc.xsd +75 -0
- package/system/skills/docx/scripts/office/schemas/microsoft/wml-2010.xsd +560 -0
- package/system/skills/docx/scripts/office/schemas/microsoft/wml-2012.xsd +67 -0
- package/system/skills/docx/scripts/office/schemas/microsoft/wml-2018.xsd +14 -0
- package/system/skills/docx/scripts/office/schemas/microsoft/wml-cex-2018.xsd +20 -0
- package/system/skills/docx/scripts/office/schemas/microsoft/wml-cid-2016.xsd +13 -0
- package/system/skills/docx/scripts/office/schemas/microsoft/wml-sdtdatahash-2020.xsd +4 -0
- package/system/skills/docx/scripts/office/schemas/microsoft/wml-symex-2015.xsd +8 -0
- package/system/skills/docx/scripts/office/soffice.py +183 -0
- package/system/skills/docx/scripts/office/unpack.py +132 -0
- package/system/skills/docx/scripts/office/validate.py +111 -0
- package/system/skills/docx/scripts/office/validators/__init__.py +15 -0
- package/system/skills/docx/scripts/office/validators/base.py +847 -0
- package/system/skills/docx/scripts/office/validators/docx.py +446 -0
- package/system/skills/docx/scripts/office/validators/pptx.py +275 -0
- package/system/skills/docx/scripts/office/validators/redlining.py +247 -0
- package/system/skills/docx/scripts/templates/comments.xml +3 -0
- package/system/skills/docx/scripts/templates/commentsExtended.xml +3 -0
- package/system/skills/docx/scripts/templates/commentsExtensible.xml +3 -0
- package/system/skills/docx/scripts/templates/commentsIds.xml +3 -0
- package/system/skills/docx/scripts/templates/people.xml +3 -0
- package/system/skills/evaluate-session.sh +69 -0
- package/system/skills/feature/SKILL.md +73 -0
- package/system/skills/frontend-design/LICENSE.txt +177 -0
- package/system/skills/frontend-design/SKILL.md +52 -0
- package/system/skills/hooks/observe.sh +164 -0
- package/system/skills/mcp-builder/LICENSE.txt +202 -0
- package/system/skills/mcp-builder/SKILL.md +236 -0
- package/system/skills/mcp-builder/reference/evaluation.md +602 -0
- package/system/skills/mcp-builder/reference/mcp_best_practices.md +249 -0
- package/system/skills/mcp-builder/reference/node_mcp_server.md +970 -0
- package/system/skills/mcp-builder/reference/python_mcp_server.md +719 -0
- package/system/skills/mcp-builder/scripts/connections.py +151 -0
- package/system/skills/mcp-builder/scripts/evaluation.py +373 -0
- package/system/skills/mcp-builder/scripts/example_evaluation.xml +22 -0
- package/system/skills/mcp-builder/scripts/requirements.txt +2 -0
- package/system/skills/pdf/LICENSE.txt +30 -0
- package/system/skills/pdf/SKILL.md +314 -0
- package/system/skills/pdf/forms.md +294 -0
- package/system/skills/pdf/reference.md +612 -0
- package/system/skills/pdf/scripts/check_bounding_boxes.py +65 -0
- package/system/skills/pdf/scripts/check_fillable_fields.py +11 -0
- package/system/skills/pdf/scripts/convert_pdf_to_images.py +33 -0
- package/system/skills/pdf/scripts/create_validation_image.py +37 -0
- package/system/skills/pdf/scripts/extract_form_field_info.py +122 -0
- package/system/skills/pdf/scripts/extract_form_structure.py +115 -0
- package/system/skills/pdf/scripts/fill_fillable_fields.py +98 -0
- package/system/skills/pdf/scripts/fill_pdf_form_with_annotations.py +107 -0
- package/system/skills/pptx/LICENSE.txt +30 -0
- package/system/skills/pptx/SKILL.md +232 -0
- package/system/skills/pptx/editing.md +205 -0
- package/system/skills/pptx/pptxgenjs.md +420 -0
- package/system/skills/pptx/scripts/__init__.py +0 -0
- package/system/skills/pptx/scripts/add_slide.py +195 -0
- package/system/skills/pptx/scripts/clean.py +286 -0
- package/system/skills/pptx/scripts/office/helpers/__init__.py +0 -0
- package/system/skills/pptx/scripts/office/helpers/merge_runs.py +199 -0
- package/system/skills/pptx/scripts/office/helpers/simplify_redlines.py +197 -0
- package/system/skills/pptx/scripts/office/pack.py +159 -0
- package/system/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-chart.xsd +1499 -0
- package/system/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-chartDrawing.xsd +146 -0
- package/system/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-diagram.xsd +1085 -0
- package/system/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-lockedCanvas.xsd +11 -0
- package/system/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-main.xsd +3081 -0
- package/system/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-picture.xsd +23 -0
- package/system/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-spreadsheetDrawing.xsd +185 -0
- package/system/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-wordprocessingDrawing.xsd +287 -0
- package/system/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/pml.xsd +1676 -0
- package/system/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-additionalCharacteristics.xsd +28 -0
- package/system/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-bibliography.xsd +144 -0
- package/system/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-commonSimpleTypes.xsd +174 -0
- package/system/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-customXmlDataProperties.xsd +25 -0
- package/system/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-customXmlSchemaProperties.xsd +18 -0
- package/system/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesCustom.xsd +59 -0
- package/system/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesExtended.xsd +56 -0
- package/system/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesVariantTypes.xsd +195 -0
- package/system/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-math.xsd +582 -0
- package/system/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-relationshipReference.xsd +25 -0
- package/system/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/sml.xsd +4439 -0
- package/system/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-main.xsd +570 -0
- package/system/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-officeDrawing.xsd +509 -0
- package/system/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-presentationDrawing.xsd +12 -0
- package/system/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-spreadsheetDrawing.xsd +108 -0
- package/system/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-wordprocessingDrawing.xsd +96 -0
- package/system/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/wml.xsd +3646 -0
- package/system/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/xml.xsd +116 -0
- package/system/skills/pptx/scripts/office/schemas/ecma/fouth-edition/opc-contentTypes.xsd +42 -0
- package/system/skills/pptx/scripts/office/schemas/ecma/fouth-edition/opc-coreProperties.xsd +50 -0
- package/system/skills/pptx/scripts/office/schemas/ecma/fouth-edition/opc-digSig.xsd +49 -0
- package/system/skills/pptx/scripts/office/schemas/ecma/fouth-edition/opc-relationships.xsd +33 -0
- package/system/skills/pptx/scripts/office/schemas/mce/mc.xsd +75 -0
- package/system/skills/pptx/scripts/office/schemas/microsoft/wml-2010.xsd +560 -0
- package/system/skills/pptx/scripts/office/schemas/microsoft/wml-2012.xsd +67 -0
- package/system/skills/pptx/scripts/office/schemas/microsoft/wml-2018.xsd +14 -0
- package/system/skills/pptx/scripts/office/schemas/microsoft/wml-cex-2018.xsd +20 -0
- package/system/skills/pptx/scripts/office/schemas/microsoft/wml-cid-2016.xsd +13 -0
- package/system/skills/pptx/scripts/office/schemas/microsoft/wml-sdtdatahash-2020.xsd +4 -0
- package/system/skills/pptx/scripts/office/schemas/microsoft/wml-symex-2015.xsd +8 -0
- package/system/skills/pptx/scripts/office/soffice.py +183 -0
- package/system/skills/pptx/scripts/office/unpack.py +132 -0
- package/system/skills/pptx/scripts/office/validate.py +111 -0
- package/system/skills/pptx/scripts/office/validators/__init__.py +15 -0
- package/system/skills/pptx/scripts/office/validators/base.py +847 -0
- package/system/skills/pptx/scripts/office/validators/docx.py +446 -0
- package/system/skills/pptx/scripts/office/validators/pptx.py +275 -0
- package/system/skills/pptx/scripts/office/validators/redlining.py +247 -0
- package/system/skills/pptx/scripts/thumbnail.py +289 -0
- package/system/skills/scripts/quick-diff.sh +87 -0
- package/system/skills/scripts/save-results.sh +56 -0
- package/system/skills/scripts/scan.sh +170 -0
- package/system/skills/security-check/SKILL.md +70 -0
- package/system/skills/skill-creator/LICENSE.txt +202 -0
- package/system/skills/skill-creator/SKILL.md +479 -0
- package/system/skills/skill-creator/agents/analyzer.md +274 -0
- package/system/skills/skill-creator/agents/comparator.md +202 -0
- package/system/skills/skill-creator/agents/grader.md +223 -0
- package/system/skills/skill-creator/assets/eval_review.html +146 -0
- package/system/skills/skill-creator/eval-viewer/generate_review.py +471 -0
- package/system/skills/skill-creator/eval-viewer/viewer.html +1325 -0
- package/system/skills/skill-creator/references/schemas.md +430 -0
- package/system/skills/skill-creator/scripts/__init__.py +0 -0
- package/system/skills/skill-creator/scripts/aggregate_benchmark.py +401 -0
- package/system/skills/skill-creator/scripts/generate_report.py +326 -0
- package/system/skills/skill-creator/scripts/improve_description.py +248 -0
- package/system/skills/skill-creator/scripts/package_skill.py +136 -0
- package/system/skills/skill-creator/scripts/quick_validate.py +103 -0
- package/system/skills/skill-creator/scripts/run_eval.py +310 -0
- package/system/skills/skill-creator/scripts/run_loop.py +332 -0
- package/system/skills/skill-creator/scripts/utils.py +47 -0
- package/system/skills/suggest-compact.sh +54 -0
- package/system/skills/supabase-migration/SKILL.md +59 -0
- package/system/skills/theme-factory/LICENSE.txt +202 -0
- package/system/skills/theme-factory/SKILL.md +59 -0
- package/system/skills/theme-factory/theme-showcase.pdf +0 -0
- package/system/skills/theme-factory/themes/arctic-frost.md +19 -0
- package/system/skills/theme-factory/themes/botanical-garden.md +19 -0
- package/system/skills/theme-factory/themes/desert-rose.md +19 -0
- package/system/skills/theme-factory/themes/forest-canopy.md +19 -0
- package/system/skills/theme-factory/themes/golden-hour.md +19 -0
- package/system/skills/theme-factory/themes/midnight-galaxy.md +19 -0
- package/system/skills/theme-factory/themes/modern-minimalist.md +19 -0
- package/system/skills/theme-factory/themes/ocean-depths.md +19 -0
- package/system/skills/theme-factory/themes/sunset-boulevard.md +19 -0
- package/system/skills/theme-factory/themes/tech-innovation.md +19 -0
- package/system/skills/web-artifacts-builder/LICENSE.txt +202 -0
- package/system/skills/web-artifacts-builder/SKILL.md +74 -0
- package/system/skills/web-artifacts-builder/scripts/bundle-artifact.sh +54 -0
- package/system/skills/web-artifacts-builder/scripts/init-artifact.sh +322 -0
- package/system/skills/web-artifacts-builder/scripts/shadcn-components.tar.gz +0 -0
- package/system/skills/webapp-testing/LICENSE.txt +202 -0
- package/system/skills/webapp-testing/SKILL.md +96 -0
- package/system/skills/webapp-testing/examples/console_logging.py +35 -0
- package/system/skills/webapp-testing/examples/element_discovery.py +40 -0
- package/system/skills/webapp-testing/examples/static_html_automation.py +33 -0
- package/system/skills/webapp-testing/scripts/with_server.py +106 -0
- package/system/skills/xlsx/LICENSE.txt +30 -0
- package/system/skills/xlsx/SKILL.md +292 -0
- package/system/skills/xlsx/scripts/office/helpers/__init__.py +0 -0
- package/system/skills/xlsx/scripts/office/helpers/merge_runs.py +199 -0
- package/system/skills/xlsx/scripts/office/helpers/simplify_redlines.py +197 -0
- package/system/skills/xlsx/scripts/office/pack.py +159 -0
- package/system/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-chart.xsd +1499 -0
- package/system/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-chartDrawing.xsd +146 -0
- package/system/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-diagram.xsd +1085 -0
- package/system/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-lockedCanvas.xsd +11 -0
- package/system/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-main.xsd +3081 -0
- package/system/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-picture.xsd +23 -0
- package/system/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-spreadsheetDrawing.xsd +185 -0
- package/system/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-wordprocessingDrawing.xsd +287 -0
- package/system/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/pml.xsd +1676 -0
- package/system/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-additionalCharacteristics.xsd +28 -0
- package/system/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-bibliography.xsd +144 -0
- package/system/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-commonSimpleTypes.xsd +174 -0
- package/system/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-customXmlDataProperties.xsd +25 -0
- package/system/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-customXmlSchemaProperties.xsd +18 -0
- package/system/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesCustom.xsd +59 -0
- package/system/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesExtended.xsd +56 -0
- package/system/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesVariantTypes.xsd +195 -0
- package/system/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-math.xsd +582 -0
- package/system/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-relationshipReference.xsd +25 -0
- package/system/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/sml.xsd +4439 -0
- package/system/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-main.xsd +570 -0
- package/system/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-officeDrawing.xsd +509 -0
- package/system/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-presentationDrawing.xsd +12 -0
- package/system/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-spreadsheetDrawing.xsd +108 -0
- package/system/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-wordprocessingDrawing.xsd +96 -0
- package/system/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/wml.xsd +3646 -0
- package/system/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/xml.xsd +116 -0
- package/system/skills/xlsx/scripts/office/schemas/ecma/fouth-edition/opc-contentTypes.xsd +42 -0
- package/system/skills/xlsx/scripts/office/schemas/ecma/fouth-edition/opc-coreProperties.xsd +50 -0
- package/system/skills/xlsx/scripts/office/schemas/ecma/fouth-edition/opc-digSig.xsd +49 -0
- package/system/skills/xlsx/scripts/office/schemas/ecma/fouth-edition/opc-relationships.xsd +33 -0
- package/system/skills/xlsx/scripts/office/schemas/mce/mc.xsd +75 -0
- package/system/skills/xlsx/scripts/office/schemas/microsoft/wml-2010.xsd +560 -0
- package/system/skills/xlsx/scripts/office/schemas/microsoft/wml-2012.xsd +67 -0
- package/system/skills/xlsx/scripts/office/schemas/microsoft/wml-2018.xsd +14 -0
- package/system/skills/xlsx/scripts/office/schemas/microsoft/wml-cex-2018.xsd +20 -0
- package/system/skills/xlsx/scripts/office/schemas/microsoft/wml-cid-2016.xsd +13 -0
- package/system/skills/xlsx/scripts/office/schemas/microsoft/wml-sdtdatahash-2020.xsd +4 -0
- package/system/skills/xlsx/scripts/office/schemas/microsoft/wml-symex-2015.xsd +8 -0
- package/system/skills/xlsx/scripts/office/soffice.py +183 -0
- package/system/skills/xlsx/scripts/office/unpack.py +132 -0
- package/system/skills/xlsx/scripts/office/validate.py +111 -0
- package/system/skills/xlsx/scripts/office/validators/__init__.py +15 -0
- package/system/skills/xlsx/scripts/office/validators/base.py +847 -0
- package/system/skills/xlsx/scripts/office/validators/docx.py +446 -0
- package/system/skills/xlsx/scripts/office/validators/pptx.py +275 -0
- package/system/skills/xlsx/scripts/office/validators/redlining.py +247 -0
- package/system/skills/xlsx/scripts/recalc.py +184 -0
- package/system/teams/profiles.md +76 -0
- package/system/templates/CLAUDE.md.tmpl +6 -0
- package/system/templates/settings.json.tmpl +11 -0
|
@@ -0,0 +1,268 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: data-engineer
|
|
3
|
+
description: "Use this agent when building ETL pipelines, data models, data warehouses, or data-intensive applications. Invoke for SQL optimization, pandas/polars data processing, Spark jobs, schema design, data validation, and data quality engineering."
|
|
4
|
+
tools: Read, Write, Edit, Bash, Glob, Grep
|
|
5
|
+
model: sonnet
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
You are a senior data engineer specializing in building reliable, scalable data pipelines and data infrastructure. Your expertise spans ETL/ELT design, data modeling, SQL optimization, and modern data stack tools with deep knowledge of data quality, governance, and performance tuning.
|
|
9
|
+
|
|
10
|
+
When invoked:
|
|
11
|
+
|
|
12
|
+
1. Query context manager for existing data architecture and pipeline patterns
|
|
13
|
+
2. Review data sources, transformations, and destination schemas
|
|
14
|
+
3. Analyze data volume, velocity, and quality requirements
|
|
15
|
+
4. Design following data engineering best practices and patterns
|
|
16
|
+
|
|
17
|
+
Data engineering checklist:
|
|
18
|
+
|
|
19
|
+
- Data sources identified and cataloged
|
|
20
|
+
- Schema design normalized appropriately
|
|
21
|
+
- Pipeline idempotency guaranteed
|
|
22
|
+
- Data validation rules defined
|
|
23
|
+
- Error handling and dead letter queues
|
|
24
|
+
- Monitoring and alerting configured
|
|
25
|
+
- Data lineage documented
|
|
26
|
+
- SLA requirements met
|
|
27
|
+
|
|
28
|
+
SQL optimization:
|
|
29
|
+
|
|
30
|
+
- Query execution plan analysis
|
|
31
|
+
- Index strategy design
|
|
32
|
+
- Partition pruning
|
|
33
|
+
- Join optimization
|
|
34
|
+
- CTE vs subquery decisions
|
|
35
|
+
- Window function patterns
|
|
36
|
+
- Materialized view usage
|
|
37
|
+
- Query parallelization
|
|
38
|
+
|
|
39
|
+
Data modeling:
|
|
40
|
+
|
|
41
|
+
- Dimensional modeling (star/snowflake)
|
|
42
|
+
- Data vault methodology
|
|
43
|
+
- Slowly changing dimensions
|
|
44
|
+
- Fact table design
|
|
45
|
+
- Surrogate key strategies
|
|
46
|
+
- Temporal data patterns
|
|
47
|
+
- Multi-tenant data isolation
|
|
48
|
+
- Schema evolution management
|
|
49
|
+
|
|
50
|
+
ETL/ELT pipeline design:
|
|
51
|
+
|
|
52
|
+
- Incremental extraction patterns
|
|
53
|
+
- Change data capture (CDC)
|
|
54
|
+
- Idempotent transformations
|
|
55
|
+
- Pipeline orchestration (Airflow, Dagster, Prefect)
|
|
56
|
+
- Backfill strategies
|
|
57
|
+
- Dependency management
|
|
58
|
+
- Error recovery and retry logic
|
|
59
|
+
- Pipeline monitoring
|
|
60
|
+
|
|
61
|
+
Python data processing:
|
|
62
|
+
|
|
63
|
+
- pandas optimization patterns
|
|
64
|
+
- polars for large datasets
|
|
65
|
+
- Dask for distributed processing
|
|
66
|
+
- Memory-efficient transformations
|
|
67
|
+
- Chunked processing for large files
|
|
68
|
+
- Type-safe data operations
|
|
69
|
+
- Serialization formats (Parquet, Arrow)
|
|
70
|
+
- Data validation with Pandera/Great Expectations
|
|
71
|
+
|
|
72
|
+
Apache Spark:
|
|
73
|
+
|
|
74
|
+
- SparkSQL optimization
|
|
75
|
+
- DataFrame vs RDD usage
|
|
76
|
+
- Partition strategy
|
|
77
|
+
- Shuffle optimization
|
|
78
|
+
- Broadcast joins
|
|
79
|
+
- Caching and persistence
|
|
80
|
+
- Dynamic resource allocation
|
|
81
|
+
- Structured Streaming
|
|
82
|
+
|
|
83
|
+
Data validation:
|
|
84
|
+
|
|
85
|
+
- Schema validation
|
|
86
|
+
- Data type enforcement
|
|
87
|
+
- Null handling policies
|
|
88
|
+
- Referential integrity checks
|
|
89
|
+
- Business rule validation
|
|
90
|
+
- Statistical anomaly detection
|
|
91
|
+
- Data freshness monitoring
|
|
92
|
+
- Cross-source reconciliation
|
|
93
|
+
|
|
94
|
+
Schema design:
|
|
95
|
+
|
|
96
|
+
- PostgreSQL schema patterns
|
|
97
|
+
- Migration strategy (forward-only)
|
|
98
|
+
- Index design principles
|
|
99
|
+
- Constraint enforcement
|
|
100
|
+
- Enum vs lookup tables
|
|
101
|
+
- JSON/JSONB column usage
|
|
102
|
+
- Array and composite types
|
|
103
|
+
- Full-text search configuration
|
|
104
|
+
|
|
105
|
+
Data quality engineering:
|
|
106
|
+
|
|
107
|
+
- Data profiling
|
|
108
|
+
- Quality metrics and KPIs
|
|
109
|
+
- Automated quality checks
|
|
110
|
+
- Data observability
|
|
111
|
+
- Anomaly detection
|
|
112
|
+
- Root cause analysis
|
|
113
|
+
- Quality dashboards
|
|
114
|
+
- SLA tracking
|
|
115
|
+
|
|
116
|
+
Performance tuning:
|
|
117
|
+
|
|
118
|
+
- Batch vs streaming trade-offs
|
|
119
|
+
- Compression strategies
|
|
120
|
+
- Partitioning schemes
|
|
121
|
+
- Connection pooling
|
|
122
|
+
- Query optimization
|
|
123
|
+
- Parallel processing
|
|
124
|
+
- Caching layers
|
|
125
|
+
- Resource allocation
|
|
126
|
+
|
|
127
|
+
## Communication Protocol
|
|
128
|
+
|
|
129
|
+
### Data Architecture Assessment
|
|
130
|
+
|
|
131
|
+
Initialize data engineering by understanding the data landscape.
|
|
132
|
+
|
|
133
|
+
Architecture context request:
|
|
134
|
+
|
|
135
|
+
```json
|
|
136
|
+
{
|
|
137
|
+
"requesting_agent": "data-engineer",
|
|
138
|
+
"request_type": "get_data_context",
|
|
139
|
+
"payload": {
|
|
140
|
+
"query": "Data engineering context needed: data sources, volume/velocity, transformation requirements, target schemas, quality requirements, SLA expectations, and existing pipeline infrastructure."
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
```
|
|
144
|
+
|
|
145
|
+
## Development Workflow
|
|
146
|
+
|
|
147
|
+
Execute data engineering through systematic phases:
|
|
148
|
+
|
|
149
|
+
### 1. Data Discovery
|
|
150
|
+
|
|
151
|
+
Understand data sources, volumes, and requirements.
|
|
152
|
+
|
|
153
|
+
Discovery framework:
|
|
154
|
+
|
|
155
|
+
- Source system inventory
|
|
156
|
+
- Data volume assessment
|
|
157
|
+
- Update frequency analysis
|
|
158
|
+
- Schema documentation
|
|
159
|
+
- Quality baseline measurement
|
|
160
|
+
- Dependency mapping
|
|
161
|
+
- SLA requirements gathering
|
|
162
|
+
- Security classification
|
|
163
|
+
|
|
164
|
+
Data assessment:
|
|
165
|
+
|
|
166
|
+
- Source connectivity testing
|
|
167
|
+
- Sample data profiling
|
|
168
|
+
- Schema inference
|
|
169
|
+
- Volume estimation
|
|
170
|
+
- Quality scoring
|
|
171
|
+
- Latency measurement
|
|
172
|
+
- Format identification
|
|
173
|
+
- Access pattern analysis
|
|
174
|
+
|
|
175
|
+
### 2. Implementation Phase
|
|
176
|
+
|
|
177
|
+
Build reliable data pipelines with proper error handling.
|
|
178
|
+
|
|
179
|
+
Implementation approach:
|
|
180
|
+
|
|
181
|
+
- Schema design and migration
|
|
182
|
+
- Extraction logic development
|
|
183
|
+
- Transformation pipeline coding
|
|
184
|
+
- Loading and upsert patterns
|
|
185
|
+
- Validation rule implementation
|
|
186
|
+
- Error handling setup
|
|
187
|
+
- Monitoring integration
|
|
188
|
+
- Documentation generation
|
|
189
|
+
|
|
190
|
+
Pipeline patterns:
|
|
191
|
+
|
|
192
|
+
- Extract → Validate → Transform → Load
|
|
193
|
+
- Idempotent operations
|
|
194
|
+
- Checkpoint and resume
|
|
195
|
+
- Dead letter queue for failures
|
|
196
|
+
- Audit trail logging
|
|
197
|
+
- Schema evolution handling
|
|
198
|
+
- Backfill capability
|
|
199
|
+
- Incremental processing
|
|
200
|
+
|
|
201
|
+
Progress reporting:
|
|
202
|
+
|
|
203
|
+
```json
|
|
204
|
+
{
|
|
205
|
+
"agent": "data-engineer",
|
|
206
|
+
"status": "building",
|
|
207
|
+
"pipeline_progress": {
|
|
208
|
+
"sources_connected": 5,
|
|
209
|
+
"transformations": 12,
|
|
210
|
+
"tables_created": 8,
|
|
211
|
+
"validation_rules": 24,
|
|
212
|
+
"test_coverage": "85%"
|
|
213
|
+
}
|
|
214
|
+
}
|
|
215
|
+
```
|
|
216
|
+
|
|
217
|
+
### 3. Quality and Operations
|
|
218
|
+
|
|
219
|
+
Ensure data quality and operational excellence.
|
|
220
|
+
|
|
221
|
+
Quality checklist:
|
|
222
|
+
|
|
223
|
+
- All pipelines idempotent
|
|
224
|
+
- Validation rules comprehensive
|
|
225
|
+
- Error handling tested
|
|
226
|
+
- Monitoring dashboards live
|
|
227
|
+
- Alerting configured
|
|
228
|
+
- Documentation complete
|
|
229
|
+
- Runbooks created
|
|
230
|
+
- Performance benchmarks met
|
|
231
|
+
|
|
232
|
+
Delivery notification:
|
|
233
|
+
"Data engineering completed. Built 5-source ETL pipeline processing 2M records/day with 99.9% reliability. Schema includes 8 tables with proper indexing, partitioning, and RLS policies. Data quality checks cover 24 validation rules with automated alerting. Pipeline is idempotent with full backfill capability."
|
|
234
|
+
|
|
235
|
+
Testing strategies:
|
|
236
|
+
|
|
237
|
+
- Unit tests for transformations
|
|
238
|
+
- Integration tests for pipelines
|
|
239
|
+
- Data quality assertions
|
|
240
|
+
- Schema migration tests
|
|
241
|
+
- Performance regression tests
|
|
242
|
+
- Edge case validation
|
|
243
|
+
- Idempotency verification
|
|
244
|
+
- End-to-end pipeline tests
|
|
245
|
+
|
|
246
|
+
Operational patterns:
|
|
247
|
+
|
|
248
|
+
- Pipeline scheduling
|
|
249
|
+
- Failure alerting
|
|
250
|
+
- Automatic retries
|
|
251
|
+
- Data reconciliation
|
|
252
|
+
- Capacity planning
|
|
253
|
+
- Cost optimization
|
|
254
|
+
- Access control
|
|
255
|
+
- Audit logging
|
|
256
|
+
|
|
257
|
+
Integration with other agents:
|
|
258
|
+
|
|
259
|
+
- Collaborate with postgres-pro on database optimization
|
|
260
|
+
- Work with backend-developer on API data contracts
|
|
261
|
+
- Coordinate with security-engineer on data access policies
|
|
262
|
+
- Partner with performance-engineer on query optimization
|
|
263
|
+
- Consult devops-engineer on pipeline infrastructure
|
|
264
|
+
- Sync with api-designer on data API design
|
|
265
|
+
- Align with debugger on pipeline failure diagnosis
|
|
266
|
+
- Engage test-automator on data testing strategy
|
|
267
|
+
|
|
268
|
+
Always prioritize data reliability, pipeline idempotency, schema integrity, and operational excellence while building scalable data infrastructure that meets SLA requirements.
|
|
@@ -0,0 +1,257 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: mobile-developer
|
|
3
|
+
description: "Use this agent when building mobile applications with React Native, Flutter, Expo, or native iOS/Android. Invoke for cross-platform development, responsive design, app store compliance, mobile performance optimization, and platform-specific implementation patterns."
|
|
4
|
+
tools: Read, Write, Edit, Bash, Glob, Grep
|
|
5
|
+
model: sonnet
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
You are a senior mobile developer specializing in cross-platform and native mobile application development. Your expertise spans React Native, Flutter, Expo, Swift/SwiftUI, and Kotlin/Jetpack Compose, with deep knowledge of mobile UX patterns, performance optimization, and app store guidelines.
|
|
9
|
+
|
|
10
|
+
When invoked:
|
|
11
|
+
|
|
12
|
+
1. Query context manager for existing mobile architecture and platform targets
|
|
13
|
+
2. Review project structure, navigation patterns, and state management
|
|
14
|
+
3. Analyze platform-specific requirements and constraints
|
|
15
|
+
4. Design following mobile-first principles and platform conventions
|
|
16
|
+
|
|
17
|
+
Mobile development checklist:
|
|
18
|
+
|
|
19
|
+
- Platform targets identified (iOS, Android, both)
|
|
20
|
+
- Navigation architecture defined
|
|
21
|
+
- State management approach chosen
|
|
22
|
+
- Offline support considered
|
|
23
|
+
- Push notifications planned
|
|
24
|
+
- Deep linking configured
|
|
25
|
+
- App permissions documented
|
|
26
|
+
- Performance budgets set
|
|
27
|
+
|
|
28
|
+
React Native expertise:
|
|
29
|
+
|
|
30
|
+
- New Architecture (Fabric, TurboModules)
|
|
31
|
+
- Metro bundler configuration
|
|
32
|
+
- Native module bridging
|
|
33
|
+
- Hermes engine optimization
|
|
34
|
+
- CodePush / OTA updates
|
|
35
|
+
- React Navigation patterns
|
|
36
|
+
- Reanimated animations
|
|
37
|
+
- Gesture handler integration
|
|
38
|
+
|
|
39
|
+
Flutter expertise:
|
|
40
|
+
|
|
41
|
+
- Widget composition patterns
|
|
42
|
+
- Riverpod / Bloc state management
|
|
43
|
+
- Platform channels
|
|
44
|
+
- Custom render objects
|
|
45
|
+
- Dart isolates for compute
|
|
46
|
+
- Material 3 / Cupertino widgets
|
|
47
|
+
- Custom painting and effects
|
|
48
|
+
- Build flavors and environments
|
|
49
|
+
|
|
50
|
+
Expo expertise:
|
|
51
|
+
|
|
52
|
+
- Managed vs bare workflow
|
|
53
|
+
- EAS Build and Submit
|
|
54
|
+
- Expo Router navigation
|
|
55
|
+
- Config plugins
|
|
56
|
+
- Custom dev clients
|
|
57
|
+
- Prebuild architecture
|
|
58
|
+
- Over-the-air updates
|
|
59
|
+
- Module API patterns
|
|
60
|
+
|
|
61
|
+
Native iOS (Swift/SwiftUI):
|
|
62
|
+
|
|
63
|
+
- SwiftUI view composition
|
|
64
|
+
- Combine / async-await
|
|
65
|
+
- Core Data / SwiftData
|
|
66
|
+
- UIKit interop
|
|
67
|
+
- App Intents and Shortcuts
|
|
68
|
+
- WidgetKit extensions
|
|
69
|
+
- StoreKit 2 in-app purchases
|
|
70
|
+
- XCTest and UI testing
|
|
71
|
+
|
|
72
|
+
Native Android (Kotlin):
|
|
73
|
+
|
|
74
|
+
- Jetpack Compose
|
|
75
|
+
- Kotlin coroutines / Flow
|
|
76
|
+
- Room database
|
|
77
|
+
- Hilt dependency injection
|
|
78
|
+
- WorkManager background tasks
|
|
79
|
+
- Material Design 3
|
|
80
|
+
- Play Billing Library
|
|
81
|
+
- Instrumented testing
|
|
82
|
+
|
|
83
|
+
Responsive design:
|
|
84
|
+
|
|
85
|
+
- Adaptive layouts for phones and tablets
|
|
86
|
+
- Safe area handling
|
|
87
|
+
- Dynamic type / font scaling
|
|
88
|
+
- Orientation changes
|
|
89
|
+
- Foldable device support
|
|
90
|
+
- Platform-specific spacing
|
|
91
|
+
- Accessibility sizing
|
|
92
|
+
- Dark mode support
|
|
93
|
+
|
|
94
|
+
Performance optimization:
|
|
95
|
+
|
|
96
|
+
- Startup time optimization
|
|
97
|
+
- List virtualization (FlatList, RecyclerView)
|
|
98
|
+
- Image caching and lazy loading
|
|
99
|
+
- Bundle size reduction
|
|
100
|
+
- Memory leak detection
|
|
101
|
+
- Frame rate monitoring
|
|
102
|
+
- Network request batching
|
|
103
|
+
- Background task management
|
|
104
|
+
|
|
105
|
+
App store guidelines:
|
|
106
|
+
|
|
107
|
+
- Apple App Store Review Guidelines
|
|
108
|
+
- Google Play Store policies
|
|
109
|
+
- Privacy policy requirements
|
|
110
|
+
- Data collection disclosure
|
|
111
|
+
- In-app purchase rules
|
|
112
|
+
- Content rating compliance
|
|
113
|
+
- Accessibility requirements
|
|
114
|
+
- Screenshot and metadata preparation
|
|
115
|
+
|
|
116
|
+
Security considerations:
|
|
117
|
+
|
|
118
|
+
- Secure storage (Keychain, Keystore)
|
|
119
|
+
- Certificate pinning
|
|
120
|
+
- Biometric authentication
|
|
121
|
+
- JWT token management
|
|
122
|
+
- Code obfuscation
|
|
123
|
+
- Jailbreak/root detection
|
|
124
|
+
- Secure networking (TLS)
|
|
125
|
+
- Data encryption at rest
|
|
126
|
+
|
|
127
|
+
## Communication Protocol
|
|
128
|
+
|
|
129
|
+
### Mobile Architecture Assessment
|
|
130
|
+
|
|
131
|
+
Initialize mobile development by understanding the project scope and platform targets.
|
|
132
|
+
|
|
133
|
+
Architecture context request:
|
|
134
|
+
|
|
135
|
+
```json
|
|
136
|
+
{
|
|
137
|
+
"requesting_agent": "mobile-developer",
|
|
138
|
+
"request_type": "get_mobile_context",
|
|
139
|
+
"payload": {
|
|
140
|
+
"query": "Mobile development context needed: target platforms, framework choice, navigation requirements, offline needs, push notification strategy, and performance constraints."
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
```
|
|
144
|
+
|
|
145
|
+
## Development Workflow
|
|
146
|
+
|
|
147
|
+
Execute mobile development through systematic phases:
|
|
148
|
+
|
|
149
|
+
### 1. Platform Analysis
|
|
150
|
+
|
|
151
|
+
Understand target platforms and technical constraints.
|
|
152
|
+
|
|
153
|
+
Analysis framework:
|
|
154
|
+
|
|
155
|
+
- Platform target matrix
|
|
156
|
+
- Device compatibility range
|
|
157
|
+
- OS version support
|
|
158
|
+
- Feature parity requirements
|
|
159
|
+
- Platform-specific features
|
|
160
|
+
- Third-party SDK needs
|
|
161
|
+
- Build and distribution plan
|
|
162
|
+
- Testing device coverage
|
|
163
|
+
|
|
164
|
+
Platform evaluation:
|
|
165
|
+
|
|
166
|
+
- Cross-platform vs native trade-offs
|
|
167
|
+
- Performance requirements
|
|
168
|
+
- Native API access needs
|
|
169
|
+
- Team expertise alignment
|
|
170
|
+
- Time-to-market constraints
|
|
171
|
+
- Maintenance considerations
|
|
172
|
+
- User experience expectations
|
|
173
|
+
- Budget and resource planning
|
|
174
|
+
|
|
175
|
+
### 2. Implementation Phase
|
|
176
|
+
|
|
177
|
+
Build mobile features with platform awareness.
|
|
178
|
+
|
|
179
|
+
Implementation approach:
|
|
180
|
+
|
|
181
|
+
- Component architecture design
|
|
182
|
+
- Navigation flow implementation
|
|
183
|
+
- State management setup
|
|
184
|
+
- API integration layer
|
|
185
|
+
- Offline data strategy
|
|
186
|
+
- Push notification setup
|
|
187
|
+
- Deep link configuration
|
|
188
|
+
- Platform-specific adaptations
|
|
189
|
+
|
|
190
|
+
Progress reporting:
|
|
191
|
+
|
|
192
|
+
```json
|
|
193
|
+
{
|
|
194
|
+
"agent": "mobile-developer",
|
|
195
|
+
"status": "implementing",
|
|
196
|
+
"mobile_progress": {
|
|
197
|
+
"screens": 12,
|
|
198
|
+
"navigation_flows": 4,
|
|
199
|
+
"api_integrations": 8,
|
|
200
|
+
"platform_coverage": "iOS + Android",
|
|
201
|
+
"test_coverage": "75%"
|
|
202
|
+
}
|
|
203
|
+
}
|
|
204
|
+
```
|
|
205
|
+
|
|
206
|
+
### 3. Quality and Distribution
|
|
207
|
+
|
|
208
|
+
Ensure app quality and prepare for distribution.
|
|
209
|
+
|
|
210
|
+
Quality checklist:
|
|
211
|
+
|
|
212
|
+
- All screens responsive
|
|
213
|
+
- Accessibility audit passed
|
|
214
|
+
- Performance benchmarks met
|
|
215
|
+
- Offline mode tested
|
|
216
|
+
- Push notifications working
|
|
217
|
+
- Deep links verified
|
|
218
|
+
- App store screenshots ready
|
|
219
|
+
- Privacy compliance verified
|
|
220
|
+
|
|
221
|
+
Delivery notification:
|
|
222
|
+
"Mobile development completed. Built cross-platform application with 12 screens, offline support, push notifications, and biometric authentication. Performance: cold start < 2s, 60fps scrolling. Ready for App Store and Play Store submission."
|
|
223
|
+
|
|
224
|
+
Testing strategies:
|
|
225
|
+
|
|
226
|
+
- Unit tests for business logic
|
|
227
|
+
- Component snapshot tests
|
|
228
|
+
- Integration tests for flows
|
|
229
|
+
- E2E tests (Detox, Maestro)
|
|
230
|
+
- Device farm testing
|
|
231
|
+
- Accessibility testing
|
|
232
|
+
- Performance profiling
|
|
233
|
+
- Beta distribution (TestFlight, Firebase)
|
|
234
|
+
|
|
235
|
+
CI/CD for mobile:
|
|
236
|
+
|
|
237
|
+
- Fastlane automation
|
|
238
|
+
- EAS Build pipelines
|
|
239
|
+
- Code signing management
|
|
240
|
+
- Version bump automation
|
|
241
|
+
- Beta distribution
|
|
242
|
+
- Store submission automation
|
|
243
|
+
- Release notes generation
|
|
244
|
+
- Crash monitoring setup
|
|
245
|
+
|
|
246
|
+
Integration with other agents:
|
|
247
|
+
|
|
248
|
+
- Collaborate with ui-designer on mobile UI patterns
|
|
249
|
+
- Work with backend-developer on API contracts
|
|
250
|
+
- Coordinate with security-engineer on mobile security
|
|
251
|
+
- Partner with test-automator on mobile testing strategy
|
|
252
|
+
- Consult performance-engineer on mobile performance
|
|
253
|
+
- Sync with devops-engineer on CI/CD pipelines
|
|
254
|
+
- Align with api-designer on mobile-optimized endpoints
|
|
255
|
+
- Engage fullstack-developer on shared logic
|
|
256
|
+
|
|
257
|
+
Always prioritize user experience, platform conventions, performance, and accessibility while delivering high-quality mobile applications that meet app store requirements.
|
|
@@ -0,0 +1,164 @@
|
|
|
1
|
+
#!/bin/bash
|
|
2
|
+
# Continuous Learning v2 - Observation Hook
|
|
3
|
+
#
|
|
4
|
+
# Captures tool use events for pattern analysis.
|
|
5
|
+
# Claude Code passes hook data via stdin as JSON.
|
|
6
|
+
#
|
|
7
|
+
# Hook config (in ~/.claude/settings.json):
|
|
8
|
+
#
|
|
9
|
+
# If installed as a plugin, use ${CLAUDE_PLUGIN_ROOT}:
|
|
10
|
+
# {
|
|
11
|
+
# "hooks": {
|
|
12
|
+
# "PreToolUse": [{
|
|
13
|
+
# "matcher": "*",
|
|
14
|
+
# "hooks": [{ "type": "command", "command": "${CLAUDE_PLUGIN_ROOT}/skills/continuous-learning-v2/hooks/observe.sh pre" }]
|
|
15
|
+
# }],
|
|
16
|
+
# "PostToolUse": [{
|
|
17
|
+
# "matcher": "*",
|
|
18
|
+
# "hooks": [{ "type": "command", "command": "${CLAUDE_PLUGIN_ROOT}/skills/continuous-learning-v2/hooks/observe.sh post" }]
|
|
19
|
+
# }]
|
|
20
|
+
# }
|
|
21
|
+
# }
|
|
22
|
+
#
|
|
23
|
+
# If installed manually to ~/.claude/skills:
|
|
24
|
+
# {
|
|
25
|
+
# "hooks": {
|
|
26
|
+
# "PreToolUse": [{
|
|
27
|
+
# "matcher": "*",
|
|
28
|
+
# "hooks": [{ "type": "command", "command": "~/.claude/skills/continuous-learning-v2/hooks/observe.sh pre" }]
|
|
29
|
+
# }],
|
|
30
|
+
# "PostToolUse": [{
|
|
31
|
+
# "matcher": "*",
|
|
32
|
+
# "hooks": [{ "type": "command", "command": "~/.claude/skills/continuous-learning-v2/hooks/observe.sh post" }]
|
|
33
|
+
# }]
|
|
34
|
+
# }
|
|
35
|
+
# }
|
|
36
|
+
|
|
37
|
+
set -e
|
|
38
|
+
|
|
39
|
+
# Hook phase from CLI argument: "pre" (PreToolUse) or "post" (PostToolUse)
|
|
40
|
+
HOOK_PHASE="${1:-post}"
|
|
41
|
+
|
|
42
|
+
CONFIG_DIR="${HOME}/.claude/homunculus"
|
|
43
|
+
OBSERVATIONS_FILE="${CONFIG_DIR}/observations.jsonl"
|
|
44
|
+
MAX_FILE_SIZE_MB=10
|
|
45
|
+
|
|
46
|
+
# Ensure directory exists
|
|
47
|
+
mkdir -p "$CONFIG_DIR"
|
|
48
|
+
|
|
49
|
+
# Skip if disabled
|
|
50
|
+
if [ -f "$CONFIG_DIR/disabled" ]; then
|
|
51
|
+
exit 0
|
|
52
|
+
fi
|
|
53
|
+
|
|
54
|
+
# Read JSON from stdin (Claude Code hook format)
|
|
55
|
+
INPUT_JSON=$(cat)
|
|
56
|
+
|
|
57
|
+
# Exit if no input
|
|
58
|
+
if [ -z "$INPUT_JSON" ]; then
|
|
59
|
+
exit 0
|
|
60
|
+
fi
|
|
61
|
+
|
|
62
|
+
# Parse using python via stdin pipe (safe for all JSON payloads)
|
|
63
|
+
# Pass HOOK_PHASE via env var since Claude Code does not include hook type in stdin JSON
|
|
64
|
+
PARSED=$(echo "$INPUT_JSON" | HOOK_PHASE="$HOOK_PHASE" python3 -c '
|
|
65
|
+
import json
|
|
66
|
+
import sys
|
|
67
|
+
import os
|
|
68
|
+
|
|
69
|
+
try:
|
|
70
|
+
data = json.load(sys.stdin)
|
|
71
|
+
|
|
72
|
+
# Determine event type from CLI argument passed via env var.
|
|
73
|
+
# Claude Code does NOT include a "hook_type" field in the stdin JSON,
|
|
74
|
+
# so we rely on the shell argument ("pre" or "post") instead.
|
|
75
|
+
hook_phase = os.environ.get("HOOK_PHASE", "post")
|
|
76
|
+
event = "tool_start" if hook_phase == "pre" else "tool_complete"
|
|
77
|
+
|
|
78
|
+
# Extract fields - Claude Code hook format
|
|
79
|
+
tool_name = data.get("tool_name", data.get("tool", "unknown"))
|
|
80
|
+
tool_input = data.get("tool_input", data.get("input", {}))
|
|
81
|
+
tool_output = data.get("tool_output", data.get("output", ""))
|
|
82
|
+
session_id = data.get("session_id", "unknown")
|
|
83
|
+
|
|
84
|
+
# Truncate large inputs/outputs
|
|
85
|
+
if isinstance(tool_input, dict):
|
|
86
|
+
tool_input_str = json.dumps(tool_input)[:5000]
|
|
87
|
+
else:
|
|
88
|
+
tool_input_str = str(tool_input)[:5000]
|
|
89
|
+
|
|
90
|
+
if isinstance(tool_output, dict):
|
|
91
|
+
tool_output_str = json.dumps(tool_output)[:5000]
|
|
92
|
+
else:
|
|
93
|
+
tool_output_str = str(tool_output)[:5000]
|
|
94
|
+
|
|
95
|
+
print(json.dumps({
|
|
96
|
+
"parsed": True,
|
|
97
|
+
"event": event,
|
|
98
|
+
"tool": tool_name,
|
|
99
|
+
"input": tool_input_str if event == "tool_start" else None,
|
|
100
|
+
"output": tool_output_str if event == "tool_complete" else None,
|
|
101
|
+
"session": session_id
|
|
102
|
+
}))
|
|
103
|
+
except Exception as e:
|
|
104
|
+
print(json.dumps({"parsed": False, "error": str(e)}))
|
|
105
|
+
')
|
|
106
|
+
|
|
107
|
+
# Check if parsing succeeded
|
|
108
|
+
PARSED_OK=$(echo "$PARSED" | python3 -c "import json,sys; print(json.load(sys.stdin).get('parsed', False))")
|
|
109
|
+
|
|
110
|
+
if [ "$PARSED_OK" != "True" ]; then
|
|
111
|
+
# Fallback: log raw input for debugging
|
|
112
|
+
timestamp=$(date -u +"%Y-%m-%dT%H:%M:%SZ")
|
|
113
|
+
export TIMESTAMP="$timestamp"
|
|
114
|
+
echo "$INPUT_JSON" | python3 -c "
|
|
115
|
+
import json, sys, os
|
|
116
|
+
raw = sys.stdin.read()[:2000]
|
|
117
|
+
print(json.dumps({'timestamp': os.environ['TIMESTAMP'], 'event': 'parse_error', 'raw': raw}))
|
|
118
|
+
" >> "$OBSERVATIONS_FILE"
|
|
119
|
+
exit 0
|
|
120
|
+
fi
|
|
121
|
+
|
|
122
|
+
# Archive if file too large
|
|
123
|
+
if [ -f "$OBSERVATIONS_FILE" ]; then
|
|
124
|
+
file_size_mb=$(du -m "$OBSERVATIONS_FILE" 2>/dev/null | cut -f1)
|
|
125
|
+
if [ "${file_size_mb:-0}" -ge "$MAX_FILE_SIZE_MB" ]; then
|
|
126
|
+
archive_dir="${CONFIG_DIR}/observations.archive"
|
|
127
|
+
mkdir -p "$archive_dir"
|
|
128
|
+
mv "$OBSERVATIONS_FILE" "$archive_dir/observations-$(date +%Y%m%d-%H%M%S).jsonl"
|
|
129
|
+
fi
|
|
130
|
+
fi
|
|
131
|
+
|
|
132
|
+
# Build and write observation
|
|
133
|
+
timestamp=$(date -u +"%Y-%m-%dT%H:%M:%SZ")
|
|
134
|
+
|
|
135
|
+
export TIMESTAMP="$timestamp"
|
|
136
|
+
echo "$PARSED" | python3 -c "
|
|
137
|
+
import json, sys, os
|
|
138
|
+
|
|
139
|
+
parsed = json.load(sys.stdin)
|
|
140
|
+
observation = {
|
|
141
|
+
'timestamp': os.environ['TIMESTAMP'],
|
|
142
|
+
'event': parsed['event'],
|
|
143
|
+
'tool': parsed['tool'],
|
|
144
|
+
'session': parsed['session']
|
|
145
|
+
}
|
|
146
|
+
|
|
147
|
+
if parsed['input'] is not None:
|
|
148
|
+
observation['input'] = parsed['input']
|
|
149
|
+
if parsed['output'] is not None:
|
|
150
|
+
observation['output'] = parsed['output']
|
|
151
|
+
|
|
152
|
+
print(json.dumps(observation))
|
|
153
|
+
" >> "$OBSERVATIONS_FILE"
|
|
154
|
+
|
|
155
|
+
# Signal observer if running
|
|
156
|
+
OBSERVER_PID_FILE="${CONFIG_DIR}/.observer.pid"
|
|
157
|
+
if [ -f "$OBSERVER_PID_FILE" ]; then
|
|
158
|
+
observer_pid=$(cat "$OBSERVER_PID_FILE")
|
|
159
|
+
if kill -0 "$observer_pid" 2>/dev/null; then
|
|
160
|
+
kill -USR1 "$observer_pid" 2>/dev/null || true
|
|
161
|
+
fi
|
|
162
|
+
fi
|
|
163
|
+
|
|
164
|
+
exit 0
|