@rosetears/aili-pi 0.1.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/LICENSE +21 -0
- package/README.md +109 -0
- package/THIRD_PARTY_NOTICES.md +64 -0
- package/extensions/index.ts +6 -0
- package/install.sh +5 -0
- package/manifests/adapter-evidence.json +45 -0
- package/manifests/capabilities.json +124 -0
- package/manifests/live-verification.json +26 -0
- package/manifests/provenance.json +71 -0
- package/manifests/roles.json +474 -0
- package/manifests/sbom.json +7797 -0
- package/manifests/skill-compatibility.json +8100 -0
- package/manifests/subagent-provenance.json +37 -0
- package/package.json +91 -0
- package/prompts/build.md +8 -0
- package/prompts/define.md +8 -0
- package/prompts/ideate.md +8 -0
- package/prompts/local-review.md +8 -0
- package/prompts/ship.md +8 -0
- package/roles/agent-evaluator.md +47 -0
- package/roles/ai-regression-scout.md +47 -0
- package/roles/browser-qa-runner.md +47 -0
- package/roles/code-reviewer.md +47 -0
- package/roles/code-scout.md +47 -0
- package/roles/convergence-reviewer.md +55 -0
- package/roles/doc-researcher.md +47 -0
- package/roles/e2e-artifact-runner.md +47 -0
- package/roles/implementer.md +47 -0
- package/roles/opensource-sanitizer.md +47 -0
- package/roles/plan-auditor.md +47 -0
- package/roles/pr-test-analyzer.md +47 -0
- package/roles/security-auditor.md +47 -0
- package/roles/silent-failure-reviewer.md +47 -0
- package/roles/spec-miner.md +47 -0
- package/roles/test-coverage-reviewer.md +47 -0
- package/roles/test-engineer.md +48 -0
- package/roles/web-performance-auditor.md +47 -0
- package/roles/web-researcher.md +47 -0
- package/scripts/apply-adapter-evidence.ts +73 -0
- package/scripts/bootstrap.sh +180 -0
- package/scripts/generate-provenance.ts +143 -0
- package/scripts/local-package-e2e.ts +51 -0
- package/scripts/sync-roles.ts +213 -0
- package/scripts/sync-skills.ts +356 -0
- package/scripts/validate-runtime.ts +11 -0
- package/skills/academic-paper-review/SKILL.md +81 -0
- package/skills/agents-md-initialization/SKILL.md +121 -0
- package/skills/agents-md-initialization/references/agents-template.md +83 -0
- package/skills/agents-md-initialization/references/agents_md.py +215 -0
- package/skills/ai-regression-scout/SKILL.md +24 -0
- package/skills/aili-delivery-flow/SKILL.md +125 -0
- package/skills/aili-delivery-flow/references/artifact-contracts.md +138 -0
- package/skills/aili-delivery-flow/references/backend-routing.md +40 -0
- package/skills/aili-delivery-flow/references/build-execution-loop.md +113 -0
- package/skills/aili-delivery-flow/references/build-goal-mode.md +3 -0
- package/skills/aili-delivery-flow/references/direct-vs-delegated-work.md +38 -0
- package/skills/aili-delivery-flow/references/implementation-packages.md +54 -0
- package/skills/aili-delivery-flow/references/lifecycle.md +127 -0
- package/skills/aili-delivery-flow/references/protocols/acceptance-test-plan.md +18 -0
- package/skills/aili-delivery-flow/references/protocols/alignment-questionnaire.md +10 -0
- package/skills/aili-delivery-flow/references/protocols/closeout-report.md +101 -0
- package/skills/aili-delivery-flow/references/protocols/compact-evidence-pack.md +46 -0
- package/skills/aili-delivery-flow/references/protocols/idea-brief.md +10 -0
- package/skills/aili-delivery-flow/references/protocols/implementation-package.md +53 -0
- package/skills/aili-delivery-flow/references/protocols/research-evidence-pack.md +19 -0
- package/skills/aili-delivery-flow/references/protocols/review-report.md +7 -0
- package/skills/aili-delivery-flow/references/protocols/spec-draft.md +12 -0
- package/skills/aili-delivery-flow/references/protocols/subagent-result.md +60 -0
- package/skills/aili-delivery-flow/references/protocols/subagent-task-packet.md +29 -0
- package/skills/aili-delivery-flow/references/protocols/worktree-context.md +109 -0
- package/skills/aili-delivery-flow/references/questionnaire-policy.md +62 -0
- package/skills/aili-delivery-flow/references/review-repair-loop.md +16 -0
- package/skills/aili-delivery-flow/references/test-document-policy.md +35 -0
- package/skills/android-native-dev/SKILL.md +722 -0
- package/skills/android-native-dev/references/accessibility.md +209 -0
- package/skills/android-native-dev/references/adaptive-screens.md +231 -0
- package/skills/android-native-dev/references/design-style-guide.md +365 -0
- package/skills/android-native-dev/references/functional-requirements.md +229 -0
- package/skills/android-native-dev/references/motion-system.md +203 -0
- package/skills/android-native-dev/references/performance-stability.md +223 -0
- package/skills/android-native-dev/references/privacy-security.md +244 -0
- package/skills/android-native-dev/references/testing.md +554 -0
- package/skills/android-native-dev/references/visual-design.md +246 -0
- package/skills/api-and-interface-design/SKILL.md +318 -0
- package/skills/browser-qa/SKILL.md +32 -0
- package/skills/browser-testing-with-devtools/SKILL.md +323 -0
- package/skills/build-failure-repair/SKILL.md +49 -0
- package/skills/chart-visualization/SKILL.md +73 -0
- package/skills/ci-cd-and-automation/SKILL.md +353 -0
- package/skills/code-review-and-quality/SKILL.md +375 -0
- package/skills/code-review-quality-gates/SKILL.md +132 -0
- package/skills/code-simplification/SKILL.md +371 -0
- package/skills/comment-accuracy-review/SKILL.md +37 -0
- package/skills/consulting-analysis/SKILL.md +69 -0
- package/skills/context-engineering/SKILL.md +375 -0
- package/skills/coverage-review/SKILL.md +24 -0
- package/skills/data-analysis/SKILL.md +74 -0
- package/skills/deprecation-and-migration/SKILL.md +222 -0
- package/skills/documentation-and-adrs/SKILL.md +330 -0
- package/skills/e2e-artifact-handling/SKILL.md +30 -0
- package/skills/evidence-scoped-retrospective/SKILL.md +156 -0
- package/skills/explain-by-allegory/SKILL.md +99 -0
- package/skills/flutter-dev/SKILL.md +162 -0
- package/skills/flutter-dev/references/animations.md +497 -0
- package/skills/flutter-dev/references/bloc-state.md +281 -0
- package/skills/flutter-dev/references/forms.md +656 -0
- package/skills/flutter-dev/references/gorouter-navigation.md +257 -0
- package/skills/flutter-dev/references/localization.md +510 -0
- package/skills/flutter-dev/references/networking.md +566 -0
- package/skills/flutter-dev/references/performance.md +305 -0
- package/skills/flutter-dev/references/platform-specific.md +417 -0
- package/skills/flutter-dev/references/project-structure.md +273 -0
- package/skills/flutter-dev/references/riverpod-state.md +232 -0
- package/skills/flutter-dev/references/testing.md +364 -0
- package/skills/flutter-dev/references/widget-patterns.md +233 -0
- package/skills/frontend-dev/SKILL.md +468 -0
- package/skills/frontend-dev/canvas-fonts/ArsenalSC-OFL.txt +93 -0
- package/skills/frontend-dev/canvas-fonts/ArsenalSC-Regular.ttf +0 -0
- package/skills/frontend-dev/canvas-fonts/BigShoulders-Bold.ttf +0 -0
- package/skills/frontend-dev/canvas-fonts/BigShoulders-OFL.txt +93 -0
- package/skills/frontend-dev/canvas-fonts/BigShoulders-Regular.ttf +0 -0
- package/skills/frontend-dev/canvas-fonts/Boldonse-OFL.txt +93 -0
- package/skills/frontend-dev/canvas-fonts/Boldonse-Regular.ttf +0 -0
- package/skills/frontend-dev/canvas-fonts/BricolageGrotesque-Bold.ttf +0 -0
- package/skills/frontend-dev/canvas-fonts/BricolageGrotesque-OFL.txt +93 -0
- package/skills/frontend-dev/canvas-fonts/BricolageGrotesque-Regular.ttf +0 -0
- package/skills/frontend-dev/canvas-fonts/CrimsonPro-Bold.ttf +0 -0
- package/skills/frontend-dev/canvas-fonts/CrimsonPro-Italic.ttf +0 -0
- package/skills/frontend-dev/canvas-fonts/CrimsonPro-OFL.txt +93 -0
- package/skills/frontend-dev/canvas-fonts/CrimsonPro-Regular.ttf +0 -0
- package/skills/frontend-dev/canvas-fonts/DMMono-OFL.txt +93 -0
- package/skills/frontend-dev/canvas-fonts/DMMono-Regular.ttf +0 -0
- package/skills/frontend-dev/canvas-fonts/EricaOne-OFL.txt +94 -0
- package/skills/frontend-dev/canvas-fonts/EricaOne-Regular.ttf +0 -0
- package/skills/frontend-dev/canvas-fonts/GeistMono-Bold.ttf +0 -0
- package/skills/frontend-dev/canvas-fonts/GeistMono-OFL.txt +93 -0
- package/skills/frontend-dev/canvas-fonts/GeistMono-Regular.ttf +0 -0
- package/skills/frontend-dev/canvas-fonts/Gloock-OFL.txt +93 -0
- package/skills/frontend-dev/canvas-fonts/Gloock-Regular.ttf +0 -0
- package/skills/frontend-dev/canvas-fonts/IBMPlexMono-Bold.ttf +0 -0
- package/skills/frontend-dev/canvas-fonts/IBMPlexMono-OFL.txt +93 -0
- package/skills/frontend-dev/canvas-fonts/IBMPlexMono-Regular.ttf +0 -0
- package/skills/frontend-dev/canvas-fonts/IBMPlexSerif-Bold.ttf +0 -0
- package/skills/frontend-dev/canvas-fonts/IBMPlexSerif-BoldItalic.ttf +0 -0
- package/skills/frontend-dev/canvas-fonts/IBMPlexSerif-Italic.ttf +0 -0
- package/skills/frontend-dev/canvas-fonts/IBMPlexSerif-Regular.ttf +0 -0
- package/skills/frontend-dev/canvas-fonts/InstrumentSans-Bold.ttf +0 -0
- package/skills/frontend-dev/canvas-fonts/InstrumentSans-BoldItalic.ttf +0 -0
- package/skills/frontend-dev/canvas-fonts/InstrumentSans-Italic.ttf +0 -0
- package/skills/frontend-dev/canvas-fonts/InstrumentSans-OFL.txt +93 -0
- package/skills/frontend-dev/canvas-fonts/InstrumentSans-Regular.ttf +0 -0
- package/skills/frontend-dev/canvas-fonts/InstrumentSerif-Italic.ttf +0 -0
- package/skills/frontend-dev/canvas-fonts/InstrumentSerif-Regular.ttf +0 -0
- package/skills/frontend-dev/canvas-fonts/Italiana-OFL.txt +93 -0
- package/skills/frontend-dev/canvas-fonts/Italiana-Regular.ttf +0 -0
- package/skills/frontend-dev/canvas-fonts/JetBrainsMono-Bold.ttf +0 -0
- package/skills/frontend-dev/canvas-fonts/JetBrainsMono-OFL.txt +93 -0
- package/skills/frontend-dev/canvas-fonts/JetBrainsMono-Regular.ttf +0 -0
- package/skills/frontend-dev/canvas-fonts/Jura-Light.ttf +0 -0
- package/skills/frontend-dev/canvas-fonts/Jura-Medium.ttf +0 -0
- package/skills/frontend-dev/canvas-fonts/Jura-OFL.txt +93 -0
- package/skills/frontend-dev/canvas-fonts/LibreBaskerville-OFL.txt +93 -0
- package/skills/frontend-dev/canvas-fonts/LibreBaskerville-Regular.ttf +0 -0
- package/skills/frontend-dev/canvas-fonts/Lora-Bold.ttf +0 -0
- package/skills/frontend-dev/canvas-fonts/Lora-BoldItalic.ttf +0 -0
- package/skills/frontend-dev/canvas-fonts/Lora-Italic.ttf +0 -0
- package/skills/frontend-dev/canvas-fonts/Lora-OFL.txt +93 -0
- package/skills/frontend-dev/canvas-fonts/Lora-Regular.ttf +0 -0
- package/skills/frontend-dev/canvas-fonts/NationalPark-Bold.ttf +0 -0
- package/skills/frontend-dev/canvas-fonts/NationalPark-OFL.txt +93 -0
- package/skills/frontend-dev/canvas-fonts/NationalPark-Regular.ttf +0 -0
- package/skills/frontend-dev/canvas-fonts/NothingYouCouldDo-OFL.txt +93 -0
- package/skills/frontend-dev/canvas-fonts/NothingYouCouldDo-Regular.ttf +0 -0
- package/skills/frontend-dev/canvas-fonts/Outfit-Bold.ttf +0 -0
- package/skills/frontend-dev/canvas-fonts/Outfit-OFL.txt +93 -0
- package/skills/frontend-dev/canvas-fonts/Outfit-Regular.ttf +0 -0
- package/skills/frontend-dev/canvas-fonts/PixelifySans-Medium.ttf +0 -0
- package/skills/frontend-dev/canvas-fonts/PixelifySans-OFL.txt +93 -0
- package/skills/frontend-dev/canvas-fonts/PoiretOne-OFL.txt +93 -0
- package/skills/frontend-dev/canvas-fonts/PoiretOne-Regular.ttf +0 -0
- package/skills/frontend-dev/canvas-fonts/RedHatMono-Bold.ttf +0 -0
- package/skills/frontend-dev/canvas-fonts/RedHatMono-OFL.txt +93 -0
- package/skills/frontend-dev/canvas-fonts/RedHatMono-Regular.ttf +0 -0
- package/skills/frontend-dev/canvas-fonts/Silkscreen-OFL.txt +93 -0
- package/skills/frontend-dev/canvas-fonts/Silkscreen-Regular.ttf +0 -0
- package/skills/frontend-dev/canvas-fonts/SmoochSans-Medium.ttf +0 -0
- package/skills/frontend-dev/canvas-fonts/SmoochSans-OFL.txt +93 -0
- package/skills/frontend-dev/canvas-fonts/Tektur-Medium.ttf +0 -0
- package/skills/frontend-dev/canvas-fonts/Tektur-OFL.txt +93 -0
- package/skills/frontend-dev/canvas-fonts/Tektur-Regular.ttf +0 -0
- package/skills/frontend-dev/canvas-fonts/WorkSans-Bold.ttf +0 -0
- package/skills/frontend-dev/canvas-fonts/WorkSans-BoldItalic.ttf +0 -0
- package/skills/frontend-dev/canvas-fonts/WorkSans-Italic.ttf +0 -0
- package/skills/frontend-dev/canvas-fonts/WorkSans-OFL.txt +93 -0
- package/skills/frontend-dev/canvas-fonts/WorkSans-Regular.ttf +0 -0
- package/skills/frontend-dev/canvas-fonts/YoungSerif-OFL.txt +93 -0
- package/skills/frontend-dev/canvas-fonts/YoungSerif-Regular.ttf +0 -0
- package/skills/frontend-dev/references/asset-prompt-guide.md +43 -0
- package/skills/frontend-dev/references/env-setup.md +33 -0
- package/skills/frontend-dev/references/minimax-cli-reference.md +133 -0
- package/skills/frontend-dev/references/minimax-image-guide.md +65 -0
- package/skills/frontend-dev/references/minimax-music-guide.md +216 -0
- package/skills/frontend-dev/references/minimax-tts-guide.md +78 -0
- package/skills/frontend-dev/references/minimax-video-guide.md +82 -0
- package/skills/frontend-dev/references/minimax-voice-catalog.md +685 -0
- package/skills/frontend-dev/references/motion-recipes.md +407 -0
- package/skills/frontend-dev/references/troubleshooting.md +85 -0
- package/skills/frontend-dev/scripts/minimax_image.py +137 -0
- package/skills/frontend-dev/scripts/minimax_music.py +157 -0
- package/skills/frontend-dev/scripts/minimax_tts.py +127 -0
- package/skills/frontend-dev/scripts/minimax_video.py +187 -0
- package/skills/frontend-dev/templates/generator_template.js +223 -0
- package/skills/frontend-dev/templates/viewer.html +599 -0
- package/skills/frontend-ui-engineering/SKILL.md +367 -0
- package/skills/fullstack-dev/SKILL.md +819 -0
- package/skills/fullstack-dev/references/api-design.md +444 -0
- package/skills/fullstack-dev/references/auth-flow.md +165 -0
- package/skills/fullstack-dev/references/db-schema.md +706 -0
- package/skills/fullstack-dev/references/django-best-practices.md +466 -0
- package/skills/fullstack-dev/references/environment-management.md +78 -0
- package/skills/fullstack-dev/references/release-checklist.md +278 -0
- package/skills/fullstack-dev/references/technology-selection.md +254 -0
- package/skills/fullstack-dev/references/testing-strategy.md +404 -0
- package/skills/git-workflow-and-versioning/SKILL.md +446 -0
- package/skills/github-evidence-triage/SKILL.md +115 -0
- package/skills/harness-evolution/SKILL.md +59 -0
- package/skills/harness-evolution/references/activation-matrix.md +13 -0
- package/skills/harness-evolution/references/approval-policy.md +20 -0
- package/skills/harness-evolution/references/change-report-template.md +33 -0
- package/skills/harness-evolution/references/component-taxonomy.md +19 -0
- package/skills/harness-evolution/references/verdict-policy.md +13 -0
- package/skills/harness-issue-triage/SKILL.md +72 -0
- package/skills/harness-issue-triage/references/component-diagnosis.md +25 -0
- package/skills/harness-issue-triage/references/triage-report-template.md +34 -0
- package/skills/harness-optimization-audit/SKILL.md +125 -0
- package/skills/idea-refine/SKILL.md +191 -0
- package/skills/idea-refine/references/upstream/addyosmani-agent-skills/6bcfeb9dae52b11eaad23511acc165109746dbc3/LICENSE +21 -0
- package/skills/idea-refine/references/upstream/addyosmani-agent-skills/6bcfeb9dae52b11eaad23511acc165109746dbc3/NOTICE.md +9 -0
- package/skills/idea-refine/references/upstream/addyosmani-agent-skills/6bcfeb9dae52b11eaad23511acc165109746dbc3/idea-refine/SKILL.upstream.md +178 -0
- package/skills/idea-refine/references/upstream/addyosmani-agent-skills/6bcfeb9dae52b11eaad23511acc165109746dbc3/idea-refine/examples.md +238 -0
- package/skills/idea-refine/references/upstream/addyosmani-agent-skills/6bcfeb9dae52b11eaad23511acc165109746dbc3/idea-refine/frameworks.md +99 -0
- package/skills/idea-refine/references/upstream/addyosmani-agent-skills/6bcfeb9dae52b11eaad23511acc165109746dbc3/idea-refine/refinement-criteria.md +113 -0
- package/skills/idea-refine/references/upstream/addyosmani-agent-skills/6bcfeb9dae52b11eaad23511acc165109746dbc3/idea-refine/scripts/idea-refine.upstream.sh +15 -0
- package/skills/incremental-implementation/SKILL.md +252 -0
- package/skills/ios-application-dev/SKILL.md +212 -0
- package/skills/ios-application-dev/references/accessibility.md +259 -0
- package/skills/ios-application-dev/references/graphics-animation.md +350 -0
- package/skills/ios-application-dev/references/layout-system.md +199 -0
- package/skills/ios-application-dev/references/metal-shader.md +178 -0
- package/skills/ios-application-dev/references/navigation-patterns.md +175 -0
- package/skills/ios-application-dev/references/swift-coding-standards.md +757 -0
- package/skills/ios-application-dev/references/swiftui-design-guidelines.md +1167 -0
- package/skills/ios-application-dev/references/system-integration.md +401 -0
- package/skills/ios-application-dev/references/uikit-components.md +297 -0
- package/skills/local-review-gate/SKILL.md +207 -0
- package/skills/local-review-gate/references/addyosmani-code-review-rubric.md +33 -0
- package/skills/local-review-gate/references/codex-github-compatibility.md +26 -0
- package/skills/local-review-gate/references/ecc-code-review-adaptation.md +40 -0
- package/skills/local-review-gate/references/graphify-local-review.md +33 -0
- package/skills/local-review-gate/references/orchestration-adaptation.md +51 -0
- package/skills/local-review-gate/references/review-repair-lane-adaptation.md +46 -0
- package/skills/local-review-gate/references/upstream-provenance.md +61 -0
- package/skills/mature-project-pattern-research/SKILL.md +155 -0
- package/skills/mature-project-pattern-research/references/research-rubric.md +45 -0
- package/skills/minimax-docx/LICENSE +21 -0
- package/skills/minimax-docx/SKILL.md +273 -0
- package/skills/minimax-docx/assets/styles/academic_styles.xml +250 -0
- package/skills/minimax-docx/assets/styles/corporate_styles.xml +284 -0
- package/skills/minimax-docx/assets/styles/default_styles.xml +449 -0
- package/skills/minimax-docx/assets/xsd/aesthetic-rules.xsd +470 -0
- package/skills/minimax-docx/assets/xsd/business-rules.xsd +130 -0
- package/skills/minimax-docx/assets/xsd/common-types.xsd +159 -0
- package/skills/minimax-docx/assets/xsd/wml-subset.xsd +589 -0
- package/skills/minimax-docx/references/cjk_typography.md +357 -0
- package/skills/minimax-docx/references/cjk_university_template_guide.md +184 -0
- package/skills/minimax-docx/references/comments_guide.md +191 -0
- package/skills/minimax-docx/references/design_good_bad_examples.md +829 -0
- package/skills/minimax-docx/references/design_principles.md +819 -0
- package/skills/minimax-docx/references/openxml_element_order.md +308 -0
- package/skills/minimax-docx/references/openxml_encyclopedia_part1.md +4061 -0
- package/skills/minimax-docx/references/openxml_encyclopedia_part2.md +2820 -0
- package/skills/minimax-docx/references/openxml_encyclopedia_part3.md +3381 -0
- package/skills/minimax-docx/references/openxml_namespaces.md +82 -0
- package/skills/minimax-docx/references/openxml_units.md +72 -0
- package/skills/minimax-docx/references/scenario_a_create.md +284 -0
- package/skills/minimax-docx/references/scenario_b_edit_content.md +295 -0
- package/skills/minimax-docx/references/scenario_c_apply_template.md +456 -0
- package/skills/minimax-docx/references/track_changes_guide.md +200 -0
- package/skills/minimax-docx/references/troubleshooting.md +506 -0
- package/skills/minimax-docx/references/typography_guide.md +294 -0
- package/skills/minimax-docx/references/xsd_validation_guide.md +158 -0
- package/skills/minimax-docx/scripts/doc_to_docx.sh +40 -0
- package/skills/minimax-docx/scripts/docx_preview.sh +37 -0
- package/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Cli/MiniMaxAIDocx.Cli.csproj +19 -0
- package/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Cli/Program.cs +18 -0
- package/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Core/Commands/AnalyzeCommand.cs +147 -0
- package/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Core/Commands/ApplyTemplateCommand.cs +322 -0
- package/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Core/Commands/CreateCommand.cs +324 -0
- package/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Core/Commands/DiffCommand.cs +155 -0
- package/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Core/Commands/EditContentCommand.cs +487 -0
- package/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Core/Commands/FixOrderCommand.cs +108 -0
- package/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Core/Commands/MergeRunsCommand.cs +122 -0
- package/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Core/Commands/ValidateCommand.cs +107 -0
- package/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Core/MiniMaxAIDocx.Core.csproj +15 -0
- package/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Core/OpenXml/CommentSynchronizer.cs +169 -0
- package/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Core/OpenXml/ElementOrder.cs +80 -0
- package/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Core/OpenXml/NamespaceConstants.cs +42 -0
- package/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Core/OpenXml/RunMerger.cs +81 -0
- package/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Core/OpenXml/StyleAnalyzer.cs +81 -0
- package/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Core/OpenXml/TrackChangesHelper.cs +99 -0
- package/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Core/OpenXml/UnitConverter.cs +23 -0
- package/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Core/Samples/AestheticRecipeSamples.cs +1832 -0
- package/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Core/Samples/AestheticRecipeSamples_Batch1.cs +910 -0
- package/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Core/Samples/AestheticRecipeSamples_Batch2.cs +999 -0
- package/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Core/Samples/AestheticRecipeSamples_Batch3.cs +1048 -0
- package/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Core/Samples/AestheticRecipeSamples_Batch4.cs +1038 -0
- package/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Core/Samples/CharacterFormattingSamples.cs +1020 -0
- package/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Core/Samples/DocumentCreationSamples.cs +1121 -0
- package/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Core/Samples/FieldAndTocSamples.cs +624 -0
- package/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Core/Samples/FootnoteAndCommentSamples.cs +675 -0
- package/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Core/Samples/HeaderFooterSamples.cs +838 -0
- package/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Core/Samples/ImageSamples.cs +917 -0
- package/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Core/Samples/ListAndNumberingSamples.cs +826 -0
- package/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Core/Samples/ParagraphFormattingSamples.cs +1199 -0
- package/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Core/Samples/StyleSystemSamples.cs +1487 -0
- package/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Core/Samples/TableSamples.cs +1163 -0
- package/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Core/Samples/TrackChangesSamples.cs +595 -0
- package/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Core/Typography/CjkHelper.cs +39 -0
- package/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Core/Typography/FontDefaults.cs +24 -0
- package/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Core/Typography/PageSizes.cs +20 -0
- package/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Core/Validation/BusinessRuleValidator.cs +224 -0
- package/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Core/Validation/GateCheckValidator.cs +148 -0
- package/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Core/Validation/ValidationResult.cs +23 -0
- package/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Core/Validation/XsdValidator.cs +69 -0
- package/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.slnx +4 -0
- package/skills/minimax-docx/scripts/env_check.sh +196 -0
- package/skills/minimax-docx/scripts/setup.ps1 +274 -0
- package/skills/minimax-docx/scripts/setup.sh +504 -0
- package/skills/minimax-pdf/README.md +222 -0
- package/skills/minimax-pdf/SKILL.md +218 -0
- package/skills/minimax-pdf/design/design.md +381 -0
- package/skills/minimax-pdf/scripts/cover.py +1579 -0
- package/skills/minimax-pdf/scripts/fill_inspect.py +200 -0
- package/skills/minimax-pdf/scripts/fill_write.py +242 -0
- package/skills/minimax-pdf/scripts/make.sh +491 -0
- package/skills/minimax-pdf/scripts/merge.py +112 -0
- package/skills/minimax-pdf/scripts/palette.py +521 -0
- package/skills/minimax-pdf/scripts/reformat_parse.py +374 -0
- package/skills/minimax-pdf/scripts/render_body.py +1052 -0
- package/skills/minimax-pdf/scripts/render_cover.js +111 -0
- package/skills/minimax-xlsx/SKILL.md +156 -0
- package/skills/minimax-xlsx/references/create.md +691 -0
- package/skills/minimax-xlsx/references/edit.md +684 -0
- package/skills/minimax-xlsx/references/fix.md +37 -0
- package/skills/minimax-xlsx/references/format.md +768 -0
- package/skills/minimax-xlsx/references/ooxml-cheatsheet.md +231 -0
- package/skills/minimax-xlsx/references/read-analyze.md +97 -0
- package/skills/minimax-xlsx/references/validate.md +772 -0
- package/skills/minimax-xlsx/scripts/formula_check.py +422 -0
- package/skills/minimax-xlsx/scripts/libreoffice_recalc.py +248 -0
- package/skills/minimax-xlsx/scripts/shared_strings_builder.py +163 -0
- package/skills/minimax-xlsx/scripts/style_audit.py +575 -0
- package/skills/minimax-xlsx/scripts/xlsx_add_column.py +395 -0
- package/skills/minimax-xlsx/scripts/xlsx_insert_row.py +274 -0
- package/skills/minimax-xlsx/scripts/xlsx_pack.py +87 -0
- package/skills/minimax-xlsx/scripts/xlsx_reader.py +362 -0
- package/skills/minimax-xlsx/scripts/xlsx_shift_rows.py +396 -0
- package/skills/minimax-xlsx/scripts/xlsx_unpack.py +130 -0
- package/skills/minimax-xlsx/templates/minimal_xlsx/[Content_Types].xml +9 -0
- package/skills/minimax-xlsx/templates/minimal_xlsx/_rels/.rels +6 -0
- package/skills/minimax-xlsx/templates/minimal_xlsx/xl/_rels/workbook.xml.rels +19 -0
- package/skills/minimax-xlsx/templates/minimal_xlsx/xl/sharedStrings.xml +33 -0
- package/skills/minimax-xlsx/templates/minimal_xlsx/xl/styles.xml +160 -0
- package/skills/minimax-xlsx/templates/minimal_xlsx/xl/workbook.xml +30 -0
- package/skills/minimax-xlsx/templates/minimal_xlsx/xl/worksheets/sheet1.xml +70 -0
- package/skills/newsletter-generation/SKILL.md +71 -0
- package/skills/oss-release-readiness/SKILL.md +47 -0
- package/skills/parallel-subagent-dispatch/SKILL.md +58 -0
- package/skills/performance-optimization/SKILL.md +364 -0
- package/skills/planning-and-task-breakdown/SKILL.md +290 -0
- package/skills/pptx-generator/SKILL.md +275 -0
- package/skills/pptx-generator/references/design-system.md +392 -0
- package/skills/pptx-generator/references/editing.md +162 -0
- package/skills/pptx-generator/references/pitfalls.md +112 -0
- package/skills/pptx-generator/references/pptxgenjs.md +420 -0
- package/skills/pptx-generator/references/slide-types.md +413 -0
- package/skills/pr-test-analysis/SKILL.md +24 -0
- package/skills/react-native-dev/SKILL.md +180 -0
- package/skills/react-native-dev/references/animations.md +254 -0
- package/skills/react-native-dev/references/components.md +124 -0
- package/skills/react-native-dev/references/engineering.md +527 -0
- package/skills/react-native-dev/references/forms.md +300 -0
- package/skills/react-native-dev/references/native-capabilities.md +163 -0
- package/skills/react-native-dev/references/navigation.md +271 -0
- package/skills/react-native-dev/references/networking.md +346 -0
- package/skills/react-native-dev/references/performance.md +215 -0
- package/skills/react-native-dev/references/state-management.md +230 -0
- package/skills/react-native-dev/references/styling.md +117 -0
- package/skills/react-native-dev/references/testing.md +341 -0
- package/skills/requirements-grilling/SKILL.md +447 -0
- package/skills/requirements-grilling/references/ADR-FORMAT.md +46 -0
- package/skills/requirements-grilling/references/CONTEXT-FORMAT.md +41 -0
- package/skills/requirements-grilling/references/INTERVIEW-PACKET-FORMAT.md +62 -0
- package/skills/requirements-grilling/references/MIT-LICENSE-MATT-POCOCK.md +25 -0
- package/skills/requirements-grilling/references/upstream/addyosmani-agent-skills/6bcfeb9dae52b11eaad23511acc165109746dbc3/LICENSE +21 -0
- package/skills/requirements-grilling/references/upstream/addyosmani-agent-skills/6bcfeb9dae52b11eaad23511acc165109746dbc3/NOTICE.md +9 -0
- package/skills/requirements-grilling/references/upstream/addyosmani-agent-skills/6bcfeb9dae52b11eaad23511acc165109746dbc3/interview-me/SKILL.upstream.md +225 -0
- package/skills/requirements-grilling/references/upstream/mattpocock-skills/9603c1cc8118d08bc1b3bf34cf714f62178dea3b/LICENSE +21 -0
- package/skills/requirements-grilling/references/upstream/mattpocock-skills/9603c1cc8118d08bc1b3bf34cf714f62178dea3b/NOTICE.md +12 -0
- package/skills/requirements-grilling/references/upstream/mattpocock-skills/9603c1cc8118d08bc1b3bf34cf714f62178dea3b/batch-grill-me/SKILL.upstream.md +15 -0
- package/skills/requirements-grilling/references/upstream/mattpocock-skills/9603c1cc8118d08bc1b3bf34cf714f62178dea3b/grill-me/SKILL.upstream.md +7 -0
- package/skills/requirements-grilling/references/upstream/mattpocock-skills/9603c1cc8118d08bc1b3bf34cf714f62178dea3b/grilling/SKILL.upstream.md +12 -0
- package/skills/review-pipeline/SKILL.md +38 -0
- package/skills/rose-memory/SKILL.md +210 -0
- package/skills/rose-memory/references/README.md +48 -0
- package/skills/rose-memory/references/memory_cli.py +2384 -0
- package/skills/rose-memory/references/schema.sql +315 -0
- package/skills/security-and-hardening/SKILL.md +369 -0
- package/skills/session-handoff/SKILL.md +88 -0
- package/skills/session-handoff/references/upstream/mattpocock-skills/391a2701dd948f94f56a39f7533f8eea9a859c87/LICENSE +21 -0
- package/skills/session-handoff/references/upstream/mattpocock-skills/391a2701dd948f94f56a39f7533f8eea9a859c87/NOTICE.md +9 -0
- package/skills/session-handoff/references/upstream/mattpocock-skills/391a2701dd948f94f56a39f7533f8eea9a859c87/productivity/handoff/SKILL.upstream.md +16 -0
- package/skills/session-handoff/scripts/session_handoff.py +764 -0
- package/skills/shader-dev/SKILL.md +316 -0
- package/skills/shader-dev/reference/ambient-occlusion.md +382 -0
- package/skills/shader-dev/reference/analytic-ray-tracing.md +651 -0
- package/skills/shader-dev/reference/anti-aliasing.md +71 -0
- package/skills/shader-dev/reference/atmospheric-scattering.md +571 -0
- package/skills/shader-dev/reference/camera-effects.md +80 -0
- package/skills/shader-dev/reference/cellular-automata.md +635 -0
- package/skills/shader-dev/reference/color-palette.md +481 -0
- package/skills/shader-dev/reference/csg-boolean-operations.md +466 -0
- package/skills/shader-dev/reference/domain-repetition.md +436 -0
- package/skills/shader-dev/reference/domain-warping.md +419 -0
- package/skills/shader-dev/reference/fluid-simulation.md +425 -0
- package/skills/shader-dev/reference/fractal-rendering.md +525 -0
- package/skills/shader-dev/reference/lighting-model.md +639 -0
- package/skills/shader-dev/reference/matrix-transform.md +535 -0
- package/skills/shader-dev/reference/multipass-buffer.md +571 -0
- package/skills/shader-dev/reference/normal-estimation.md +418 -0
- package/skills/shader-dev/reference/particle-system.md +589 -0
- package/skills/shader-dev/reference/path-tracing-gi.md +602 -0
- package/skills/shader-dev/reference/polar-uv-manipulation.md +521 -0
- package/skills/shader-dev/reference/post-processing.md +375 -0
- package/skills/shader-dev/reference/procedural-2d-pattern.md +439 -0
- package/skills/shader-dev/reference/procedural-noise.md +551 -0
- package/skills/shader-dev/reference/ray-marching.md +396 -0
- package/skills/shader-dev/reference/sdf-2d.md +724 -0
- package/skills/shader-dev/reference/sdf-3d.md +805 -0
- package/skills/shader-dev/reference/sdf-tricks.md +63 -0
- package/skills/shader-dev/reference/shadow-techniques.md +476 -0
- package/skills/shader-dev/reference/simulation-physics.md +644 -0
- package/skills/shader-dev/reference/sound-synthesis.md +578 -0
- package/skills/shader-dev/reference/terrain-rendering.md +839 -0
- package/skills/shader-dev/reference/texture-mapping-advanced.md +87 -0
- package/skills/shader-dev/reference/texture-sampling.md +553 -0
- package/skills/shader-dev/reference/volumetric-rendering.md +608 -0
- package/skills/shader-dev/reference/voronoi-cellular-noise.md +486 -0
- package/skills/shader-dev/reference/voxel-rendering.md +701 -0
- package/skills/shader-dev/reference/water-ocean.md +445 -0
- package/skills/shader-dev/reference/webgl-pitfalls.md +41 -0
- package/skills/shader-dev/techniques/ambient-occlusion.md +364 -0
- package/skills/shader-dev/techniques/analytic-ray-tracing.md +542 -0
- package/skills/shader-dev/techniques/anti-aliasing.md +124 -0
- package/skills/shader-dev/techniques/atmospheric-scattering.md +522 -0
- package/skills/shader-dev/techniques/camera-effects.md +115 -0
- package/skills/shader-dev/techniques/cellular-automata.md +531 -0
- package/skills/shader-dev/techniques/color-palette.md +380 -0
- package/skills/shader-dev/techniques/csg-boolean-operations.md +491 -0
- package/skills/shader-dev/techniques/domain-repetition.md +333 -0
- package/skills/shader-dev/techniques/domain-warping.md +414 -0
- package/skills/shader-dev/techniques/fluid-simulation.md +1175 -0
- package/skills/shader-dev/techniques/fractal-rendering.md +436 -0
- package/skills/shader-dev/techniques/lighting-model.md +527 -0
- package/skills/shader-dev/techniques/matrix-transform.md +455 -0
- package/skills/shader-dev/techniques/multipass-buffer.md +922 -0
- package/skills/shader-dev/techniques/normal-estimation.md +318 -0
- package/skills/shader-dev/techniques/particle-system.md +1203 -0
- package/skills/shader-dev/techniques/path-tracing-gi.md +623 -0
- package/skills/shader-dev/techniques/polar-uv-manipulation.md +373 -0
- package/skills/shader-dev/techniques/post-processing.md +788 -0
- package/skills/shader-dev/techniques/procedural-2d-pattern.md +346 -0
- package/skills/shader-dev/techniques/procedural-noise.md +554 -0
- package/skills/shader-dev/techniques/ray-marching.md +467 -0
- package/skills/shader-dev/techniques/sdf-2d.md +631 -0
- package/skills/shader-dev/techniques/sdf-3d.md +589 -0
- package/skills/shader-dev/techniques/sdf-tricks.md +100 -0
- package/skills/shader-dev/techniques/shadow-techniques.md +776 -0
- package/skills/shader-dev/techniques/simulation-physics.md +1542 -0
- package/skills/shader-dev/techniques/sound-synthesis.md +490 -0
- package/skills/shader-dev/techniques/terrain-rendering.md +408 -0
- package/skills/shader-dev/techniques/texture-mapping-advanced.md +121 -0
- package/skills/shader-dev/techniques/texture-sampling.md +382 -0
- package/skills/shader-dev/techniques/volumetric-rendering.md +375 -0
- package/skills/shader-dev/techniques/voronoi-cellular-noise.md +458 -0
- package/skills/shader-dev/techniques/voxel-rendering.md +985 -0
- package/skills/shader-dev/techniques/water-ocean.md +490 -0
- package/skills/shader-dev/techniques/webgl-pitfalls.md +170 -0
- package/skills/shipping-and-launch/SKILL.md +334 -0
- package/skills/silent-failure-hunting/SKILL.md +24 -0
- package/skills/source-driven-development/SKILL.md +223 -0
- package/skills/spec-driven-development/SKILL.md +235 -0
- package/skills/spec-driven-development/references/upstream/addyosmani-agent-skills/6bcfeb9dae52b11eaad23511acc165109746dbc3/LICENSE +21 -0
- package/skills/spec-driven-development/references/upstream/addyosmani-agent-skills/6bcfeb9dae52b11eaad23511acc165109746dbc3/NOTICE.md +9 -0
- package/skills/spec-driven-development/references/upstream/addyosmani-agent-skills/6bcfeb9dae52b11eaad23511acc165109746dbc3/spec-driven-development/SKILL.upstream.md +206 -0
- package/skills/strategy-stress-test/SKILL.md +185 -0
- package/skills/systematic-literature-review/SKILL.md +77 -0
- package/skills/test-document-generator/SKILL.md +152 -0
- package/skills/test-document-generator/references/test-document-template.md +45 -0
- package/skills/test-driven-development/SKILL.md +399 -0
- package/skills/write-skills/GLOSSARY.md +113 -0
- package/skills/write-skills/SKILL.md +133 -0
- package/skills/write-skills/references/upstream/mattpocock-skills/391a2701dd948f94f56a39f7533f8eea9a859c87/LICENSE +21 -0
- package/skills/write-skills/references/upstream/mattpocock-skills/391a2701dd948f94f56a39f7533f8eea9a859c87/NOTICE.md +9 -0
- package/skills/write-skills/references/upstream/mattpocock-skills/391a2701dd948f94f56a39f7533f8eea9a859c87/productivity/writing-great-skills/GLOSSARY.md +201 -0
- package/skills/write-skills/references/upstream/mattpocock-skills/391a2701dd948f94f56a39f7533f8eea9a859c87/productivity/writing-great-skills/SKILL.upstream.md +83 -0
- package/src/runtime/child-guard.ts +70 -0
- package/src/runtime/conflicts.ts +25 -0
- package/src/runtime/contracts.ts +9 -0
- package/src/runtime/doctor.ts +134 -0
- package/src/runtime/global-resources.ts +152 -0
- package/src/runtime/index.ts +23 -0
- package/src/runtime/lifecycle.ts +19 -0
- package/src/runtime/native-integrations.ts +44 -0
- package/src/runtime/path-boundaries.ts +69 -0
- package/src/runtime/registry.ts +213 -0
- package/src/runtime/roles.ts +64 -0
- package/src/runtime/rose-context.ts +24 -0
- package/src/runtime/subagents.ts +426 -0
- package/templates/APPEND_SYSTEM.md +12 -0
- package/upstream/aili-workflows.lock.json +3226 -0
|
@@ -0,0 +1,203 @@
|
|
|
1
|
+
# Motion System Guidelines
|
|
2
|
+
|
|
3
|
+
Animation and transition specifications for Material Design 3.
|
|
4
|
+
|
|
5
|
+
## Motion Principles
|
|
6
|
+
|
|
7
|
+
### Four Core Characteristics
|
|
8
|
+
|
|
9
|
+
| Principle | Description |
|
|
10
|
+
|-----------|-------------|
|
|
11
|
+
| **Responsive** | Quickly responds to user input at the point of interaction |
|
|
12
|
+
| **Natural** | Follows real-world physics (gravity, friction, momentum) |
|
|
13
|
+
| **Aware** | Elements are aware of surroundings and other elements |
|
|
14
|
+
| **Intentional** | Guides focus to the right place at the right time |
|
|
15
|
+
|
|
16
|
+
## Duration Guidelines
|
|
17
|
+
|
|
18
|
+
### By Interaction Type
|
|
19
|
+
|
|
20
|
+
| Type | Duration | Usage |
|
|
21
|
+
|------|----------|-------|
|
|
22
|
+
| Micro | 50-100ms | Ripples, state changes, hover |
|
|
23
|
+
| Short | 100-200ms | Simple transitions, toggles |
|
|
24
|
+
| Medium | 200-300ms | Expanding, collapsing, revealing |
|
|
25
|
+
| Long | 300-500ms | Complex choreography, page transitions |
|
|
26
|
+
|
|
27
|
+
### By Device Type
|
|
28
|
+
|
|
29
|
+
| Device | Typical Duration | Adjustment |
|
|
30
|
+
|--------|------------------|------------|
|
|
31
|
+
| Mobile | 300ms | Baseline |
|
|
32
|
+
| Tablet | 390ms | +30% slower |
|
|
33
|
+
| Desktop | 150-200ms | Faster, more responsive |
|
|
34
|
+
| Wearable | 210ms | -30% faster |
|
|
35
|
+
|
|
36
|
+
### Duration Rules
|
|
37
|
+
|
|
38
|
+
- **Maximum**: Keep under 400ms for most transitions
|
|
39
|
+
- **User-initiated**: Faster (closer to instant feedback)
|
|
40
|
+
- **System-initiated**: Can be slightly longer
|
|
41
|
+
- **Loading states**: Use indeterminate indicators for unknown duration
|
|
42
|
+
|
|
43
|
+
## Easing Curves
|
|
44
|
+
|
|
45
|
+
### Standard Curves
|
|
46
|
+
|
|
47
|
+
| Curve | Usage | Characteristics |
|
|
48
|
+
|-------|-------|-----------------|
|
|
49
|
+
| **Standard** | Most common transitions | Quick acceleration, slow deceleration |
|
|
50
|
+
| **Emphasized** | Important/significant transitions | More dramatic curve |
|
|
51
|
+
| **Decelerate** | Elements entering screen | Starts fast, ends slow |
|
|
52
|
+
| **Accelerate** | Elements leaving screen permanently | Starts slow, ends fast |
|
|
53
|
+
| **Sharp** | Elements temporarily leaving | Quick, snappy motion |
|
|
54
|
+
|
|
55
|
+
### Curve Values (Cubic Bezier)
|
|
56
|
+
|
|
57
|
+
| Curve | Value |
|
|
58
|
+
|-------|-------|
|
|
59
|
+
| Standard | cubic-bezier(0.2, 0.0, 0.0, 1.0) |
|
|
60
|
+
| Emphasized | cubic-bezier(0.2, 0.0, 0.0, 1.0) |
|
|
61
|
+
| Decelerate | cubic-bezier(0.0, 0.0, 0.0, 1.0) |
|
|
62
|
+
| Accelerate | cubic-bezier(0.3, 0.0, 1.0, 1.0) |
|
|
63
|
+
|
|
64
|
+
## Movement Patterns
|
|
65
|
+
|
|
66
|
+
### Arc Motion
|
|
67
|
+
|
|
68
|
+
- Use natural, concave arcs for diagonal movement
|
|
69
|
+
- Single-axis movement (horizontal/vertical only) stays straight
|
|
70
|
+
- Elements entering/exiting screen move on single axis
|
|
71
|
+
|
|
72
|
+
### Choreography
|
|
73
|
+
|
|
74
|
+
- **Stagger**: Offset timing for related elements (20-40ms between)
|
|
75
|
+
- **Cascade**: Sequential reveal from a focal point
|
|
76
|
+
- **Shared motion**: Elements that move together maintain relationship
|
|
77
|
+
|
|
78
|
+
## Transition Patterns
|
|
79
|
+
|
|
80
|
+
### Container Transform
|
|
81
|
+
|
|
82
|
+
Best for: Navigation from card/list item to detail screen
|
|
83
|
+
|
|
84
|
+
- Origin container morphs into destination
|
|
85
|
+
- Maintains visual continuity
|
|
86
|
+
- Content fades during transformation
|
|
87
|
+
|
|
88
|
+
### Shared Axis
|
|
89
|
+
|
|
90
|
+
Best for: Same-level navigation (tabs, stepper)
|
|
91
|
+
|
|
92
|
+
| Axis | Direction | Usage |
|
|
93
|
+
|------|-----------|-------|
|
|
94
|
+
| X-axis | Horizontal | Tabs, horizontal paging |
|
|
95
|
+
| Y-axis | Vertical | Vertical lists, feeds |
|
|
96
|
+
| Z-axis | Depth | Parent-child relationships |
|
|
97
|
+
|
|
98
|
+
### Fade Through
|
|
99
|
+
|
|
100
|
+
Best for: Unrelated screen transitions
|
|
101
|
+
|
|
102
|
+
- Outgoing content fades out
|
|
103
|
+
- Incoming content fades in
|
|
104
|
+
- Brief overlap period
|
|
105
|
+
- No shared elements
|
|
106
|
+
|
|
107
|
+
### Fade
|
|
108
|
+
|
|
109
|
+
Best for: Show/hide single elements
|
|
110
|
+
|
|
111
|
+
- Simple opacity change
|
|
112
|
+
- Optionally combine with scale
|
|
113
|
+
- Quick duration (100-200ms)
|
|
114
|
+
|
|
115
|
+
## Component-Specific Motion
|
|
116
|
+
|
|
117
|
+
### FAB
|
|
118
|
+
|
|
119
|
+
| State | Animation |
|
|
120
|
+
|-------|-----------|
|
|
121
|
+
| Appear | Scale up + fade in |
|
|
122
|
+
| Disappear | Scale down + fade out |
|
|
123
|
+
| Transform | Morph to extended FAB |
|
|
124
|
+
| Press | Elevation change (3dp → 8dp) |
|
|
125
|
+
|
|
126
|
+
### Bottom Sheet
|
|
127
|
+
|
|
128
|
+
| State | Animation |
|
|
129
|
+
|-------|-----------|
|
|
130
|
+
| Expand | Slide up with decelerate curve |
|
|
131
|
+
| Collapse | Slide down with accelerate curve |
|
|
132
|
+
| Dismiss | Swipe down with velocity-based duration |
|
|
133
|
+
|
|
134
|
+
### Navigation
|
|
135
|
+
|
|
136
|
+
| Pattern | Animation |
|
|
137
|
+
|---------|-----------|
|
|
138
|
+
| Push | Incoming slides from right, outgoing shifts left |
|
|
139
|
+
| Pop | Incoming slides from left, outgoing shifts right |
|
|
140
|
+
| Modal | Slide up from bottom |
|
|
141
|
+
|
|
142
|
+
### Cards
|
|
143
|
+
|
|
144
|
+
| State | Animation |
|
|
145
|
+
|-------|-----------|
|
|
146
|
+
| Expand | Container transform to detail |
|
|
147
|
+
| Press | Subtle elevation increase |
|
|
148
|
+
| Reorder | Follow finger with physics |
|
|
149
|
+
|
|
150
|
+
## Loading & Progress
|
|
151
|
+
|
|
152
|
+
### Indeterminate Indicators
|
|
153
|
+
|
|
154
|
+
- Use for unknown duration
|
|
155
|
+
- Continuous, looping animation
|
|
156
|
+
- M3 Expressive: Customizable waveform and thickness
|
|
157
|
+
|
|
158
|
+
### Determinate Indicators
|
|
159
|
+
|
|
160
|
+
- Use when progress is measurable
|
|
161
|
+
- Smooth, linear progression
|
|
162
|
+
- Update frequently for responsiveness
|
|
163
|
+
|
|
164
|
+
### Skeleton Screens
|
|
165
|
+
|
|
166
|
+
- Show layout structure immediately
|
|
167
|
+
- Subtle shimmer animation
|
|
168
|
+
- Replace with content as it loads
|
|
169
|
+
|
|
170
|
+
## Accessibility Considerations
|
|
171
|
+
|
|
172
|
+
### Reduced Motion
|
|
173
|
+
|
|
174
|
+
- Respect prefers-reduced-motion setting
|
|
175
|
+
- Provide alternatives:
|
|
176
|
+
- Instant transitions (no animation)
|
|
177
|
+
- Simple fade instead of complex motion
|
|
178
|
+
- Static loading indicators
|
|
179
|
+
|
|
180
|
+
### Motion Duration
|
|
181
|
+
|
|
182
|
+
- Keep essential feedback < 100ms
|
|
183
|
+
- Avoid motion that could trigger vestibular issues
|
|
184
|
+
- Test with motion sensitivity settings enabled
|
|
185
|
+
|
|
186
|
+
## Implementation Notes
|
|
187
|
+
|
|
188
|
+
### Android Animation APIs
|
|
189
|
+
|
|
190
|
+
| API | Usage |
|
|
191
|
+
|-----|-------|
|
|
192
|
+
| MotionLayout | Complex, coordinated animations |
|
|
193
|
+
| Transition | Activity/Fragment transitions |
|
|
194
|
+
| Animator | Property animations |
|
|
195
|
+
| AnimatedContent | Compose content transitions |
|
|
196
|
+
| animateContentSize | Compose size changes |
|
|
197
|
+
|
|
198
|
+
### Performance Tips
|
|
199
|
+
|
|
200
|
+
- Use hardware layers for complex animations
|
|
201
|
+
- Avoid animating layout properties (use transform)
|
|
202
|
+
- Profile with GPU rendering tools
|
|
203
|
+
- Target 60 FPS (16ms per frame)
|
|
@@ -0,0 +1,223 @@
|
|
|
1
|
+
# Performance & Stability Guidelines
|
|
2
|
+
|
|
3
|
+
Android Vitals thresholds, performance requirements, and stability best practices.
|
|
4
|
+
|
|
5
|
+
## Android Vitals Thresholds
|
|
6
|
+
|
|
7
|
+
### Core Metrics (Google Play)
|
|
8
|
+
|
|
9
|
+
Exceeding these thresholds affects app visibility on Google Play:
|
|
10
|
+
|
|
11
|
+
| Metric | Overall Threshold | Per Phone Model | Per Watch Model |
|
|
12
|
+
|--------|-------------------|-----------------|-----------------|
|
|
13
|
+
| User-perceived crash rate | **1.09%** | 8% | 4% |
|
|
14
|
+
| User-perceived ANR rate | **0.47%** | 8% | 5% |
|
|
15
|
+
| Excessive battery usage | 1% | - | 1% |
|
|
16
|
+
| Excessive wake locks | 5% | - | - |
|
|
17
|
+
|
|
18
|
+
### Consequences of Exceeding Thresholds
|
|
19
|
+
|
|
20
|
+
- Reduced app visibility in Google Play
|
|
21
|
+
- Warning label on store listing
|
|
22
|
+
- Lower ranking in search results
|
|
23
|
+
- Negative impact on user trust
|
|
24
|
+
|
|
25
|
+
## Startup Performance
|
|
26
|
+
|
|
27
|
+
### Requirements
|
|
28
|
+
|
|
29
|
+
| Metric | Target | Maximum |
|
|
30
|
+
|--------|--------|---------|
|
|
31
|
+
| Cold start | < 1 second | 2 seconds |
|
|
32
|
+
| Warm start | < 500ms | 1 second |
|
|
33
|
+
| Hot start | < 100ms | 500ms |
|
|
34
|
+
|
|
35
|
+
### If Startup Exceeds 2 Seconds
|
|
36
|
+
|
|
37
|
+
Must provide visual feedback:
|
|
38
|
+
- Progress indicator
|
|
39
|
+
- Splash screen with animation
|
|
40
|
+
- Loading skeleton
|
|
41
|
+
|
|
42
|
+
### Optimization Techniques
|
|
43
|
+
|
|
44
|
+
| Technique | Impact |
|
|
45
|
+
|-----------|--------|
|
|
46
|
+
| Lazy initialization | Defer non-critical work |
|
|
47
|
+
| Async loading | Move I/O off main thread |
|
|
48
|
+
| View hierarchy optimization | Reduce layout depth |
|
|
49
|
+
| App Startup library | Initialize components efficiently |
|
|
50
|
+
| Baseline Profiles | Pre-compile hot paths |
|
|
51
|
+
|
|
52
|
+
## Rendering Performance
|
|
53
|
+
|
|
54
|
+
### Frame Rate Requirements
|
|
55
|
+
|
|
56
|
+
| Target | Frame Time | Notes |
|
|
57
|
+
|--------|------------|-------|
|
|
58
|
+
| 60 FPS | ≤ 16.67ms | Standard requirement |
|
|
59
|
+
| 90 FPS | ≤ 11.11ms | High refresh rate displays |
|
|
60
|
+
| 120 FPS | ≤ 8.33ms | Premium devices |
|
|
61
|
+
|
|
62
|
+
### Jank Detection
|
|
63
|
+
|
|
64
|
+
| Metric | Threshold | Severity |
|
|
65
|
+
|--------|-----------|----------|
|
|
66
|
+
| Slow frames | > 16ms | Warning |
|
|
67
|
+
| Frozen frames | > 700ms | Critical |
|
|
68
|
+
| Jank rate | > 1% of frames | Poor experience |
|
|
69
|
+
|
|
70
|
+
### Common Rendering Issues
|
|
71
|
+
|
|
72
|
+
| Issue | Cause | Solution |
|
|
73
|
+
|-------|-------|----------|
|
|
74
|
+
| Overdraw | Multiple layers drawn | Reduce background stacking |
|
|
75
|
+
| Deep hierarchy | Complex view nesting | Use ConstraintLayout, Compose |
|
|
76
|
+
| Main thread work | Blocking operations | Move to background thread |
|
|
77
|
+
| Large bitmaps | Unoptimized images | Downsample, use vector |
|
|
78
|
+
|
|
79
|
+
## ANR Prevention
|
|
80
|
+
|
|
81
|
+
### ANR Triggers
|
|
82
|
+
|
|
83
|
+
| Scenario | Timeout |
|
|
84
|
+
|----------|---------|
|
|
85
|
+
| Input dispatch | 5 seconds |
|
|
86
|
+
| Broadcast receiver | 10 seconds |
|
|
87
|
+
| Service start | 20 seconds |
|
|
88
|
+
|
|
89
|
+
### Prevention Strategies
|
|
90
|
+
|
|
91
|
+
- Never perform network calls on main thread
|
|
92
|
+
- Never perform database operations on main thread
|
|
93
|
+
- Never perform file I/O on main thread
|
|
94
|
+
- Use coroutines, RxJava, or other async mechanisms
|
|
95
|
+
- Reduce synchronized block contention
|
|
96
|
+
|
|
97
|
+
### Common ANR Causes
|
|
98
|
+
|
|
99
|
+
| Cause | Solution |
|
|
100
|
+
|-------|----------|
|
|
101
|
+
| Network on main thread | Use coroutines/RxJava |
|
|
102
|
+
| Database on main thread | Use Room with suspend |
|
|
103
|
+
| File I/O on main thread | Use Dispatchers.IO |
|
|
104
|
+
| Lock contention | Reduce synchronized blocks |
|
|
105
|
+
| Dead locks | Careful threading design |
|
|
106
|
+
|
|
107
|
+
## Battery Optimization
|
|
108
|
+
|
|
109
|
+
### Wake Lock Guidelines
|
|
110
|
+
|
|
111
|
+
| Rule | Implementation |
|
|
112
|
+
|------|----------------|
|
|
113
|
+
| Minimize duration | Release as soon as possible |
|
|
114
|
+
| Use appropriate type | PARTIAL_WAKE_LOCK only when needed |
|
|
115
|
+
| Always release | Use try-finally or lifecycle |
|
|
116
|
+
| Prefer WorkManager | System-managed scheduling |
|
|
117
|
+
|
|
118
|
+
### Background Restrictions
|
|
119
|
+
|
|
120
|
+
| Feature | Best Practice |
|
|
121
|
+
|---------|---------------|
|
|
122
|
+
| Background services | Use WorkManager instead |
|
|
123
|
+
| Location | Request only when necessary |
|
|
124
|
+
| Network | Batch requests, respect connectivity |
|
|
125
|
+
| Alarms | Use inexact alarms when possible |
|
|
126
|
+
|
|
127
|
+
### Doze and App Standby
|
|
128
|
+
|
|
129
|
+
| Mode | Behavior | Adaptation |
|
|
130
|
+
|------|----------|------------|
|
|
131
|
+
| Doze | Limited network, alarms delayed | Use FCM for high-priority |
|
|
132
|
+
| App Standby | Background work restricted | Use expedited WorkManager |
|
|
133
|
+
| Buckets | Frequency limits by usage | Design for infrequent execution |
|
|
134
|
+
|
|
135
|
+
## Memory Management
|
|
136
|
+
|
|
137
|
+
### Memory Best Practices
|
|
138
|
+
|
|
139
|
+
| Practice | Benefit |
|
|
140
|
+
|----------|---------|
|
|
141
|
+
| Avoid memory leaks | Prevent OutOfMemoryError |
|
|
142
|
+
| Use weak references | Allow garbage collection |
|
|
143
|
+
| Recycle bitmaps | Reduce memory pressure |
|
|
144
|
+
| Monitor heap | Profile regularly |
|
|
145
|
+
|
|
146
|
+
### Common Memory Issues
|
|
147
|
+
|
|
148
|
+
| Issue | Detection | Solution |
|
|
149
|
+
|-------|-----------|----------|
|
|
150
|
+
| Activity leak | LeakCanary | Fix lifecycle references |
|
|
151
|
+
| Bitmap leak | Memory profiler | Recycle, use Glide/Coil |
|
|
152
|
+
| Context leak | Static analysis | Use application context |
|
|
153
|
+
| Handler leak | Lint warning | Use WeakReference |
|
|
154
|
+
|
|
155
|
+
## StrictMode
|
|
156
|
+
|
|
157
|
+
### What StrictMode Detects
|
|
158
|
+
|
|
159
|
+
| Category | Issues |
|
|
160
|
+
|----------|--------|
|
|
161
|
+
| Thread | Disk reads/writes, network, slow calls |
|
|
162
|
+
| VM | Leaked objects, unsafe intents, content URI exposure |
|
|
163
|
+
|
|
164
|
+
Enable StrictMode in debug builds to detect violations during development.
|
|
165
|
+
|
|
166
|
+
## SDK Requirements
|
|
167
|
+
|
|
168
|
+
### Version Requirements
|
|
169
|
+
|
|
170
|
+
| Property | Requirement |
|
|
171
|
+
|----------|-------------|
|
|
172
|
+
| targetSdk | Latest Android SDK (Google Play requirement) |
|
|
173
|
+
| compileSdk | Latest Android SDK |
|
|
174
|
+
| minSdk | Based on target audience |
|
|
175
|
+
|
|
176
|
+
### Third-Party SDK Management
|
|
177
|
+
|
|
178
|
+
| Practice | Reason |
|
|
179
|
+
|----------|--------|
|
|
180
|
+
| Keep updated | Security fixes, compatibility |
|
|
181
|
+
| Audit regularly | Remove unused dependencies |
|
|
182
|
+
| Monitor crashes | SDKs can cause issues |
|
|
183
|
+
| Check permissions | SDKs may request excessive permissions |
|
|
184
|
+
|
|
185
|
+
### Non-SDK Interface Restrictions
|
|
186
|
+
|
|
187
|
+
- Don't use reflection for hidden APIs
|
|
188
|
+
- Use Android Studio lint to detect
|
|
189
|
+
- APIs may break in future versions
|
|
190
|
+
|
|
191
|
+
## Monitoring and Profiling
|
|
192
|
+
|
|
193
|
+
### Tools
|
|
194
|
+
|
|
195
|
+
| Tool | Purpose |
|
|
196
|
+
|------|---------|
|
|
197
|
+
| Android Studio Profiler | CPU, memory, network, energy |
|
|
198
|
+
| Android Vitals (Play Console) | Production crash/ANR data |
|
|
199
|
+
| Firebase Performance | Real-time performance monitoring |
|
|
200
|
+
| Perfetto | Advanced system tracing |
|
|
201
|
+
| Benchmark library | Reproducible measurements |
|
|
202
|
+
|
|
203
|
+
### Key Metrics to Track
|
|
204
|
+
|
|
205
|
+
| Metric | Tool |
|
|
206
|
+
|--------|------|
|
|
207
|
+
| Startup time | Macrobenchmark |
|
|
208
|
+
| Frame timing | JankStats |
|
|
209
|
+
| Memory usage | Memory Profiler |
|
|
210
|
+
| Network latency | Network Profiler |
|
|
211
|
+
| Battery drain | Energy Profiler |
|
|
212
|
+
|
|
213
|
+
## Performance Checklist
|
|
214
|
+
|
|
215
|
+
- [ ] Cold startup < 2 seconds
|
|
216
|
+
- [ ] Rendering at 60 FPS
|
|
217
|
+
- [ ] No StrictMode violations
|
|
218
|
+
- [ ] Crash rate < 1.09%
|
|
219
|
+
- [ ] ANR rate < 0.47%
|
|
220
|
+
- [ ] No memory leaks
|
|
221
|
+
- [ ] Background work uses WorkManager
|
|
222
|
+
- [ ] Wake locks properly released
|
|
223
|
+
- [ ] SDKs up to date
|
|
@@ -0,0 +1,244 @@
|
|
|
1
|
+
# Privacy & Security Guidelines
|
|
2
|
+
|
|
3
|
+
Security best practices and privacy requirements for Android applications.
|
|
4
|
+
|
|
5
|
+
## Permissions
|
|
6
|
+
|
|
7
|
+
### Principle of Least Privilege
|
|
8
|
+
|
|
9
|
+
| Rule | Implementation |
|
|
10
|
+
|------|----------------|
|
|
11
|
+
| Request minimum | Only permissions essential for core features |
|
|
12
|
+
| Request when needed | At point of use, not app startup |
|
|
13
|
+
| Explain why | Show rationale before system dialog |
|
|
14
|
+
| Degrade gracefully | App works (limited) if denied |
|
|
15
|
+
|
|
16
|
+
### Permission Request Flow
|
|
17
|
+
|
|
18
|
+
1. Check if already granted
|
|
19
|
+
2. If not, show educational UI (rationale)
|
|
20
|
+
3. Request permission
|
|
21
|
+
4. Handle result (grant or denial)
|
|
22
|
+
5. If denied, offer alternative or reduced functionality
|
|
23
|
+
|
|
24
|
+
### Sensitive Permissions
|
|
25
|
+
|
|
26
|
+
| Permission | Consideration |
|
|
27
|
+
|------------|---------------|
|
|
28
|
+
| Location | Use coarse if fine not needed |
|
|
29
|
+
| Camera | Request only when capturing |
|
|
30
|
+
| Microphone | Request only when recording |
|
|
31
|
+
| Contacts | Consider contact picker intent |
|
|
32
|
+
| Storage | Use scoped storage |
|
|
33
|
+
| SMS/Call Log | Restricted, needs approval |
|
|
34
|
+
|
|
35
|
+
### Alternative Approaches
|
|
36
|
+
|
|
37
|
+
| Instead of... | Consider... |
|
|
38
|
+
|---------------|-------------|
|
|
39
|
+
| READ_CONTACTS | Contact picker intent |
|
|
40
|
+
| ACCESS_FINE_LOCATION | Coarse location |
|
|
41
|
+
| READ_EXTERNAL_STORAGE | Storage Access Framework |
|
|
42
|
+
| CAMERA | Camera intent |
|
|
43
|
+
|
|
44
|
+
## Data Storage
|
|
45
|
+
|
|
46
|
+
### Storage Types
|
|
47
|
+
|
|
48
|
+
| Type | Security | Usage |
|
|
49
|
+
|------|----------|-------|
|
|
50
|
+
| Internal storage | Private to app | Sensitive data |
|
|
51
|
+
| External storage | World-readable | Shared files only |
|
|
52
|
+
| SharedPreferences | Private, unencrypted | Non-sensitive settings |
|
|
53
|
+
| EncryptedSharedPreferences | Private, encrypted | Sensitive settings |
|
|
54
|
+
| Room database | Private, optional encryption | Structured data |
|
|
55
|
+
|
|
56
|
+
### Sensitive Data Rules
|
|
57
|
+
|
|
58
|
+
| Rule | Implementation |
|
|
59
|
+
|------|----------------|
|
|
60
|
+
| Store internally | Use internal storage, not external |
|
|
61
|
+
| Encrypt at rest | Use EncryptedSharedPreferences, SQLCipher |
|
|
62
|
+
| Don't log | Never log PII or credentials |
|
|
63
|
+
| Clear on logout | Wipe user data completely |
|
|
64
|
+
|
|
65
|
+
### Data Logging
|
|
66
|
+
|
|
67
|
+
Never log sensitive data such as passwords, emails, tokens, or personal information. Only log non-sensitive operational information.
|
|
68
|
+
|
|
69
|
+
## Network Security
|
|
70
|
+
|
|
71
|
+
### HTTPS Requirements
|
|
72
|
+
|
|
73
|
+
- All network traffic must use SSL/TLS
|
|
74
|
+
- Configure Network Security Config
|
|
75
|
+
- Don't allow cleartext traffic
|
|
76
|
+
|
|
77
|
+
### Network Security Config
|
|
78
|
+
|
|
79
|
+
Define a network security configuration that:
|
|
80
|
+
- Disables cleartext traffic
|
|
81
|
+
- Specifies trusted certificate authorities
|
|
82
|
+
- Optionally implements certificate pinning for high-security apps
|
|
83
|
+
|
|
84
|
+
### Certificate Pinning (Optional)
|
|
85
|
+
|
|
86
|
+
For high-security apps, pin certificates to prevent MITM attacks. Include backup pins and plan for certificate rotation.
|
|
87
|
+
|
|
88
|
+
## User Identity
|
|
89
|
+
|
|
90
|
+
### Credential Manager
|
|
91
|
+
|
|
92
|
+
Integrate Credential Manager for unified sign-in supporting:
|
|
93
|
+
- Passkeys
|
|
94
|
+
- Federated identity
|
|
95
|
+
- Traditional passwords
|
|
96
|
+
|
|
97
|
+
### Biometric Authentication
|
|
98
|
+
|
|
99
|
+
Use biometric authentication for sensitive operations like:
|
|
100
|
+
- Financial transactions
|
|
101
|
+
- Accessing sensitive documents
|
|
102
|
+
- Confirming identity
|
|
103
|
+
|
|
104
|
+
### Autofill Support
|
|
105
|
+
|
|
106
|
+
Provide autofill hints on input fields:
|
|
107
|
+
- emailAddress, username for identity fields
|
|
108
|
+
- password for credential fields
|
|
109
|
+
- creditCardNumber, postalCode for payment fields
|
|
110
|
+
|
|
111
|
+
## App Components Security
|
|
112
|
+
|
|
113
|
+
### Exported Components
|
|
114
|
+
|
|
115
|
+
| Component | Exported Rule |
|
|
116
|
+
|-----------|---------------|
|
|
117
|
+
| Launcher Activity | exported="true" with intent-filter |
|
|
118
|
+
| Internal Activity | exported="false" |
|
|
119
|
+
| Internal Service | exported="false" |
|
|
120
|
+
| Content Provider (shared) | exported="true" with permissions |
|
|
121
|
+
|
|
122
|
+
Always explicitly set the exported attribute on all components.
|
|
123
|
+
|
|
124
|
+
### Custom Permissions
|
|
125
|
+
|
|
126
|
+
Use signature-level protection for custom permissions that control access between your own apps.
|
|
127
|
+
|
|
128
|
+
### Intent Validation
|
|
129
|
+
|
|
130
|
+
- Validate all intent data before use
|
|
131
|
+
- Check URI scheme and host
|
|
132
|
+
- Use explicit intents when possible
|
|
133
|
+
- Don't trust extras from unknown sources
|
|
134
|
+
|
|
135
|
+
### PendingIntent Security
|
|
136
|
+
|
|
137
|
+
Use FLAG_IMMUTABLE for PendingIntents unless mutability is required. This prevents other apps from modifying the intent.
|
|
138
|
+
|
|
139
|
+
## WebView Security
|
|
140
|
+
|
|
141
|
+
### Safe WebView Configuration
|
|
142
|
+
|
|
143
|
+
| Setting | Recommendation |
|
|
144
|
+
|---------|----------------|
|
|
145
|
+
| JavaScript | Disabled unless required |
|
|
146
|
+
| File access | Disabled |
|
|
147
|
+
| Content access | Disabled |
|
|
148
|
+
| Universal file access | Never enable |
|
|
149
|
+
|
|
150
|
+
### Avoid Dangerous Practices
|
|
151
|
+
|
|
152
|
+
| Don't | Why |
|
|
153
|
+
|-------|-----|
|
|
154
|
+
| setAllowUniversalAccessFromFileURLs(true) | Security vulnerability |
|
|
155
|
+
| addJavascriptInterface() with untrusted content | Code injection risk |
|
|
156
|
+
| Load untrusted URLs | XSS, phishing |
|
|
157
|
+
|
|
158
|
+
## Cryptography
|
|
159
|
+
|
|
160
|
+
### Use Platform APIs
|
|
161
|
+
|
|
162
|
+
- Use Android Keystore for key storage
|
|
163
|
+
- Use standard algorithms (AES-GCM, RSA)
|
|
164
|
+
- Never implement custom cryptography
|
|
165
|
+
- Use SecureRandom for random generation
|
|
166
|
+
|
|
167
|
+
### Avoid
|
|
168
|
+
|
|
169
|
+
- Custom encryption implementations
|
|
170
|
+
- Weak algorithms (MD5, SHA1 for security)
|
|
171
|
+
- Hardcoded keys or secrets
|
|
172
|
+
- Non-cryptographic random generators
|
|
173
|
+
|
|
174
|
+
## Code Security
|
|
175
|
+
|
|
176
|
+
### No Dynamic Code Loading
|
|
177
|
+
|
|
178
|
+
| Don't | Do Instead |
|
|
179
|
+
|-------|------------|
|
|
180
|
+
| Load code at runtime | Android App Bundles |
|
|
181
|
+
| Download DEX files | Play Feature Delivery |
|
|
182
|
+
| Execute scripts | Predefined functionality |
|
|
183
|
+
|
|
184
|
+
### Debug Code Removal
|
|
185
|
+
|
|
186
|
+
- Set debuggable=false in release builds
|
|
187
|
+
- Enable minification (R8/ProGuard)
|
|
188
|
+
- Remove debug libraries from production
|
|
189
|
+
|
|
190
|
+
## Device Identifiers
|
|
191
|
+
|
|
192
|
+
### Don't Use Hardware IDs
|
|
193
|
+
|
|
194
|
+
| Identifier | Status |
|
|
195
|
+
|------------|--------|
|
|
196
|
+
| IMEI | Don't use |
|
|
197
|
+
| MAC address | Don't use |
|
|
198
|
+
| Serial number | Don't use |
|
|
199
|
+
| Android ID | Limited use only |
|
|
200
|
+
|
|
201
|
+
### Recommended Alternatives
|
|
202
|
+
|
|
203
|
+
| Use Case | Solution |
|
|
204
|
+
|----------|----------|
|
|
205
|
+
| Analytics | Firebase Analytics ID |
|
|
206
|
+
| Advertising | Advertising ID (resettable) |
|
|
207
|
+
| App instance | Generate UUID on install |
|
|
208
|
+
| User identity | Account-based ID |
|
|
209
|
+
|
|
210
|
+
## Google Play Policies
|
|
211
|
+
|
|
212
|
+
### Data Safety
|
|
213
|
+
|
|
214
|
+
- Declare all data collected
|
|
215
|
+
- Explain data usage
|
|
216
|
+
- Provide privacy policy
|
|
217
|
+
- Allow data deletion requests
|
|
218
|
+
|
|
219
|
+
### User Data Policy
|
|
220
|
+
|
|
221
|
+
| Rule | Requirement |
|
|
222
|
+
|------|-------------|
|
|
223
|
+
| Transparency | Clear disclosure of data use |
|
|
224
|
+
| Security | Protect user data appropriately |
|
|
225
|
+
| Minimization | Collect only what's needed |
|
|
226
|
+
| Control | Allow users to manage data |
|
|
227
|
+
|
|
228
|
+
## Security Checklist
|
|
229
|
+
|
|
230
|
+
- [ ] Permissions requested only when needed
|
|
231
|
+
- [ ] Permissions explained to user
|
|
232
|
+
- [ ] Sensitive data stored internally
|
|
233
|
+
- [ ] No sensitive data in logs
|
|
234
|
+
- [ ] All network traffic over HTTPS
|
|
235
|
+
- [ ] Network security config defined
|
|
236
|
+
- [ ] Components export status explicit
|
|
237
|
+
- [ ] Custom permissions use signature protection
|
|
238
|
+
- [ ] Intents validated before use
|
|
239
|
+
- [ ] PendingIntents use FLAG_IMMUTABLE
|
|
240
|
+
- [ ] WebView configured securely
|
|
241
|
+
- [ ] Platform crypto APIs used
|
|
242
|
+
- [ ] No debug code in production
|
|
243
|
+
- [ ] No hardware IDs used
|
|
244
|
+
- [ ] Privacy policy available
|