@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,252 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: incremental-implementation
|
|
3
|
+
description: Implement an accepted change in bounded dependency-ordered increments when the user requests implementation and the scope benefits from multiple coherent slices; do not trigger merely because work touches multiple files, changes behavior, or is over an arbitrary line count.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Incremental Implementation
|
|
7
|
+
|
|
8
|
+
## Overview
|
|
9
|
+
|
|
10
|
+
Implement a larger accepted scope in dependency-ordered coherent slices. A slice boundary is for scope and recovery, not an automatic test, review, approval, or commit. Use slice-specific feedback only when its behavior, risk, dependency, or diagnosis requires it; the canonical owner selects the final claim-matched check.
|
|
11
|
+
|
|
12
|
+
## When to Use
|
|
13
|
+
|
|
14
|
+
- The user asks to implement an accepted plan/change whose dependencies form multiple coherent slices.
|
|
15
|
+
- One bounded ordinary implementation is safer or more traceable as two or more complete increments.
|
|
16
|
+
- BUILD has a current package queue and selects this as its primary implementation technique.
|
|
17
|
+
|
|
18
|
+
**When NOT to use:** A bounded change that ROSE can complete directly in one pass, planning-only work, TDD without implementation authority, review, or a request that lacks accepted scope.
|
|
19
|
+
|
|
20
|
+
## Canonical loop contract
|
|
21
|
+
|
|
22
|
+
This skill is one bounded ordinary/BUILD implementation adapter. ROSE/`aili-delivery-flow` owns lifecycle state, package queue, approvals, progress, and verification. Implement the selected complete scope and stop with `complete`, `need-user`, `need-evidence`, `material-delta`, `blocked`, or `Unverified`. Do not invoke planning, TDD, Git, context, review, test, security, or another process skill; return one named need to ROSE. Safe local edits/checks proceed without micro-approval, exact risky operations retain their gates, and the canonical verification owner overrides all generic per-slice/full-suite language.
|
|
23
|
+
|
|
24
|
+
## The Increment Cycle
|
|
25
|
+
|
|
26
|
+
```
|
|
27
|
+
┌──────────────────────────────────────┐
|
|
28
|
+
│ │
|
|
29
|
+
│ Implement ──→ Savepoint ──→ Next │
|
|
30
|
+
│ ▲ │ │
|
|
31
|
+
│ └── affected feedback only ────┘
|
|
32
|
+
│ │
|
|
33
|
+
└──────────────────────────────────────┘
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
For each slice:
|
|
37
|
+
|
|
38
|
+
1. **Implement** a focused complete piece of functionality
|
|
39
|
+
2. **Feedback when needed** — run a focused check only when this slice's behavior, risk, dependency, or diagnosis needs it
|
|
40
|
+
3. **Verify at the owner boundary** — let the canonical owner select the smallest fresh check for the exact claim
|
|
41
|
+
4. **Savepoint** — record progress; commit only when the exact Git action is separately authorized
|
|
42
|
+
5. **Move to the next slice** — carry forward, don't restart
|
|
43
|
+
|
|
44
|
+
Before a non-obvious slice, keep a compact internal boundary: behavior, scope, dependency, and stop condition. Do not turn it into an extra user approval or mandatory test command.
|
|
45
|
+
|
|
46
|
+
## Slicing Strategies
|
|
47
|
+
|
|
48
|
+
### Vertical Slices (Preferred)
|
|
49
|
+
|
|
50
|
+
Build one complete path through the stack:
|
|
51
|
+
|
|
52
|
+
```
|
|
53
|
+
Slice 1: Create a task (DB + API + basic UI)
|
|
54
|
+
→ dependency-ready creation path
|
|
55
|
+
|
|
56
|
+
Slice 2: List tasks (query + API + UI)
|
|
57
|
+
→ dependency-ready listing path
|
|
58
|
+
|
|
59
|
+
Slice 3: Edit a task (update + API + UI)
|
|
60
|
+
→ dependency-ready edit path
|
|
61
|
+
|
|
62
|
+
Slice 4: Delete a task (delete + API + UI + confirmation)
|
|
63
|
+
→ accepted CRUD scope complete
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
Each slice delivers working end-to-end functionality.
|
|
67
|
+
|
|
68
|
+
Do not use horizontal slicing as the default. A slice should produce complete traceable behavior; verification and Git actions remain selected by their canonical owners.
|
|
69
|
+
|
|
70
|
+
If commits are not explicitly allowed by the user/task contract or project rules, replace the commit with an explicit savepoint report: changed files, verification result, and rollback note. Do not violate a no-commit contract to satisfy this skill.
|
|
71
|
+
|
|
72
|
+
### Contract-First Slicing
|
|
73
|
+
|
|
74
|
+
When backend and frontend need to develop in parallel:
|
|
75
|
+
|
|
76
|
+
```
|
|
77
|
+
Slice 0: Define the API contract (types, interfaces, OpenAPI spec)
|
|
78
|
+
Slice 1a: Implement backend against the contract + API tests
|
|
79
|
+
Slice 1b: Implement frontend against mock data matching the contract
|
|
80
|
+
Slice 2: Integrate and test end-to-end
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
### Risk-First Slicing
|
|
84
|
+
|
|
85
|
+
Tackle the riskiest or most uncertain piece first:
|
|
86
|
+
|
|
87
|
+
```
|
|
88
|
+
Slice 1: Prove the WebSocket connection works (highest risk)
|
|
89
|
+
Slice 2: Build real-time task updates on the proven connection
|
|
90
|
+
Slice 3: Add offline support and reconnection
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
If Slice 1 fails, you discover it before investing in Slices 2 and 3.
|
|
94
|
+
|
|
95
|
+
## Implementation Rules
|
|
96
|
+
|
|
97
|
+
### Rule 0: Simplicity First
|
|
98
|
+
|
|
99
|
+
Before writing any code, ask: "What is the simplest complete thing that could work?"
|
|
100
|
+
|
|
101
|
+
After writing code, review it against these checks:
|
|
102
|
+
- Can this be clearer without losing required behavior?
|
|
103
|
+
- Are these abstractions earning their complexity?
|
|
104
|
+
- Would a staff engineer look at this and say "why didn't you just..."?
|
|
105
|
+
- Am I building for hypothetical future requirements, or the current task?
|
|
106
|
+
|
|
107
|
+
```
|
|
108
|
+
SIMPLICITY CHECK:
|
|
109
|
+
✗ Generic EventBus with middleware pipeline for one notification
|
|
110
|
+
✓ Simple function call
|
|
111
|
+
|
|
112
|
+
✗ Abstract factory pattern for two similar components
|
|
113
|
+
✓ Two straightforward components with shared utilities
|
|
114
|
+
|
|
115
|
+
✗ Config-driven form builder for three forms
|
|
116
|
+
✓ Three form components
|
|
117
|
+
```
|
|
118
|
+
|
|
119
|
+
Three similar lines of code is better than a premature abstraction. Implement the naive, obviously-correct version first. Optimize only after the accepted claim has sufficient evidence.
|
|
120
|
+
|
|
121
|
+
### Rule 0.5: Scope Discipline
|
|
122
|
+
|
|
123
|
+
Touch only what the task requires.
|
|
124
|
+
|
|
125
|
+
Do NOT:
|
|
126
|
+
- "Clean up" code adjacent to your change
|
|
127
|
+
- Refactor imports in files you're not modifying
|
|
128
|
+
- Remove comments you don't fully understand
|
|
129
|
+
- Add features not in the spec because they "seem useful"
|
|
130
|
+
- Modernize syntax in files you're only reading
|
|
131
|
+
|
|
132
|
+
If you notice something worth improving outside your task scope, note it — don't fix it:
|
|
133
|
+
|
|
134
|
+
```
|
|
135
|
+
NOTICED BUT NOT TOUCHING:
|
|
136
|
+
- src/utils/format.ts has an unused import (unrelated to this task)
|
|
137
|
+
- The auth middleware could use better error messages (separate task)
|
|
138
|
+
→ Record only when useful; do not create tasks or questions unless the user asks or the item blocks current work.
|
|
139
|
+
```
|
|
140
|
+
|
|
141
|
+
### Rule 1: One Thing at a Time
|
|
142
|
+
|
|
143
|
+
Each increment changes one logical thing. Don't mix concerns:
|
|
144
|
+
|
|
145
|
+
**Bad:** One increment that adds a new component, refactors an existing one, and updates unrelated build config.
|
|
146
|
+
|
|
147
|
+
**Good:** Separate logical increments/savepoints with explicit dependencies; commits remain separately authorized Git actions.
|
|
148
|
+
|
|
149
|
+
Each increment should be small enough to explain as one reversible savepoint: what changed, how it was verified, and what remains out of scope.
|
|
150
|
+
|
|
151
|
+
### Rule 2: Keep It Compilable
|
|
152
|
+
|
|
153
|
+
Do not knowingly leave a dependency boundary broken between slices. The canonical verification owner decides whether a focused test, build, typecheck, static inspection, or deferred final check proves that state.
|
|
154
|
+
|
|
155
|
+
### Rule 3: Accepted Feature Flags for Incomplete Features
|
|
156
|
+
|
|
157
|
+
Use a feature flag only when the accepted design requires staged exposure; slice boundaries do not create a flag or merge requirement by themselves.
|
|
158
|
+
|
|
159
|
+
```typescript
|
|
160
|
+
// Feature flag for work-in-progress
|
|
161
|
+
const ENABLE_TASK_SHARING = process.env.FEATURE_TASK_SHARING === 'true';
|
|
162
|
+
|
|
163
|
+
if (ENABLE_TASK_SHARING) {
|
|
164
|
+
// New sharing UI
|
|
165
|
+
}
|
|
166
|
+
```
|
|
167
|
+
|
|
168
|
+
This can protect staged exposure under the accepted design; it does not authorize merge or deployment.
|
|
169
|
+
|
|
170
|
+
### Rule 4: Safe Defaults
|
|
171
|
+
|
|
172
|
+
New code should default to safe, conservative behavior:
|
|
173
|
+
|
|
174
|
+
```typescript
|
|
175
|
+
// Safe: disabled by default, opt-in
|
|
176
|
+
export function createTask(data: TaskInput, options?: { notify?: boolean }) {
|
|
177
|
+
const shouldNotify = options?.notify ?? false;
|
|
178
|
+
// ...
|
|
179
|
+
}
|
|
180
|
+
```
|
|
181
|
+
|
|
182
|
+
### Rule 5: Rollback-Friendly
|
|
183
|
+
|
|
184
|
+
Each increment should be independently revertable:
|
|
185
|
+
|
|
186
|
+
- Additive changes (new files, new functions) are easy to revert
|
|
187
|
+
- Modifications to existing code should be focused and traceable
|
|
188
|
+
- Database migrations should have corresponding rollback migrations
|
|
189
|
+
- Avoid mixing destructive removal and replacement when a safer focused transition is available; exact destructive/Git actions retain their gates
|
|
190
|
+
|
|
191
|
+
## Working with Agents
|
|
192
|
+
|
|
193
|
+
When directing an agent to implement incrementally:
|
|
194
|
+
|
|
195
|
+
```
|
|
196
|
+
"Let's implement Task 3 from the plan.
|
|
197
|
+
|
|
198
|
+
Start with just the database schema change and the API endpoint.
|
|
199
|
+
Don't touch the UI yet — we'll do that in the next increment.
|
|
200
|
+
|
|
201
|
+
After implementing, run only the focused check selected by the canonical
|
|
202
|
+
verification owner for this increment's exact claim."
|
|
203
|
+
```
|
|
204
|
+
|
|
205
|
+
Be explicit about what's in scope and what's NOT in scope for each increment.
|
|
206
|
+
|
|
207
|
+
## Increment Checklist
|
|
208
|
+
|
|
209
|
+
After each increment, record only applicable evidence:
|
|
210
|
+
|
|
211
|
+
- [ ] The change does one thing and does it completely
|
|
212
|
+
- [ ] Any slice-specific feedback selected by the canonical owner is recorded
|
|
213
|
+
- [ ] The accepted behavior is complete enough for the next dependency
|
|
214
|
+
- [ ] A lightweight savepoint records changed files and unresolved dependencies; it does not imply verification or commit
|
|
215
|
+
|
|
216
|
+
## Fallbacks
|
|
217
|
+
|
|
218
|
+
| Trigger | First action | If still unresolved |
|
|
219
|
+
|---|---|---|
|
|
220
|
+
| Tests fail after a slice | Stop next-slice work; identify whether failure is from this slice or pre-existing | Revert or narrow the slice; report unrelated failures instead of piling on fixes |
|
|
221
|
+
| Working tree is dirty before a slice | Inspect status and separate task-related from unrelated changes | Ask whether to continue, branch/worktree, or pause; do not mix unrelated edits silently |
|
|
222
|
+
| Slice grows past the planned behavior/files | Stop and cut scope to a focused independently verifiable complete behavior | Return the oversized remainder to the task queue; do not finish it in the same increment |
|
|
223
|
+
| No automated test exists | Decide whether the exact claim needs a focused test or other evidence | Use the lifecycle-selected manual/static check and mark any remaining gap `Unverified` |
|
|
224
|
+
|
|
225
|
+
## Common Rationalizations
|
|
226
|
+
|
|
227
|
+
| Rationalization | Reality |
|
|
228
|
+
|---|---|
|
|
229
|
+
| "Every slice needs its own full check" | Slice boundaries alone trigger no test. Select feedback only where a dependency/risk needs it, then run the final claim-matched check. |
|
|
230
|
+
| "It's faster to do it all at once" | Keep dependency boundaries visible so a failure can be localized without turning each boundary into ceremony. |
|
|
231
|
+
| "Every slice needs a commit" | Savepoints preserve scope and recovery; commits remain exact user-authorized Git actions. |
|
|
232
|
+
| "Every incomplete feature needs a flag" | Add a flag only when staged exposure is accepted; otherwise keep incomplete work unexposed by the project’s existing mechanism. |
|
|
233
|
+
| "This refactor is small enough to include" | Refactors mixed with features make both harder to review and debug. Separate them. |
|
|
234
|
+
|
|
235
|
+
## Red Flags
|
|
236
|
+
|
|
237
|
+
- Multiple unrelated changes in a single increment
|
|
238
|
+
- "Let me just quickly add this too" scope expansion
|
|
239
|
+
- Ignoring feedback required by an affected dependency/risk, or inventing per-slice checks with no claim need
|
|
240
|
+
- Knowingly leaving a dependency boundary broken without recording the blocker
|
|
241
|
+
- Unbounded changes accumulating without a savepoint
|
|
242
|
+
- Building abstractions before the third use case demands it
|
|
243
|
+
- Touching files outside the task scope "while I'm here"
|
|
244
|
+
- Creating new utility files for one-time operations
|
|
245
|
+
|
|
246
|
+
## Verification
|
|
247
|
+
|
|
248
|
+
After completing all increments, return to the canonical owner:
|
|
249
|
+
|
|
250
|
+
- [ ] Complete accepted behavior and changed files are reported
|
|
251
|
+
- [ ] Savepoints and unresolved items are recorded without implying verification or commit
|
|
252
|
+
- [ ] The owner selects the smallest final claim-matched check and reports any `Unverified` residual
|
|
@@ -0,0 +1,212 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: ios-application-dev
|
|
3
|
+
description: |
|
|
4
|
+
Build native iOS apps with SwiftUI, UIKit, SnapKit, Apple HIG, accessibility, and platform UI patterns.
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# iOS Application Development Guide
|
|
8
|
+
|
|
9
|
+
A practical guide for building iOS applications using UIKit, SnapKit, and SwiftUI. Focuses on proven patterns and Apple platform conventions.
|
|
10
|
+
|
|
11
|
+
## Routing Boundary
|
|
12
|
+
|
|
13
|
+
Use this skill for native iOS/iPadOS apps, Swift, SwiftUI, UIKit, SnapKit, Apple platform APIs, App Store UI expectations, and iOS accessibility. Use `android-native-dev` for native Android, `flutter-dev` for Flutter/Dart, `react-native-dev` for React Native/Expo, and frontend web skills for browser React/Next/Vue UI.
|
|
14
|
+
|
|
15
|
+
## Quick Reference
|
|
16
|
+
|
|
17
|
+
### Implementation Workflow
|
|
18
|
+
|
|
19
|
+
1. **Inspect the app boundary**: identify SwiftUI vs UIKit ownership, deployment target, package manager, navigation root, design system, accessibility patterns, and nearest tests before editing.
|
|
20
|
+
2. **Choose SwiftUI or UIKit** with the decision table below; keep mixed apps at their existing seam instead of moving screens across frameworks.
|
|
21
|
+
3. **Implement one screen/flow at a time**: data model or view model first, navigation/presentation second, layout third, accessibility/privacy states fourth.
|
|
22
|
+
4. **Build and test**: run the narrowest available Xcode scheme/test target; for UI-only changes, also inspect Dynamic Type, Dark Mode, VoiceOver labels, and reduced motion behavior.
|
|
23
|
+
5. **Report platform evidence**: include scheme/device or simulator used, tests run, and any manual checks that could not be executed.
|
|
24
|
+
|
|
25
|
+
🔴 CHECKPOINT · 🛑 STOP before changing navigation roots, permission timing, authentication/sign-in behavior, App Store-facing privacy behavior, or converting a screen between SwiftUI and UIKit. These are product/API decisions, not local UI cleanup.
|
|
26
|
+
|
|
27
|
+
### SwiftUI vs UIKit Decision Table
|
|
28
|
+
|
|
29
|
+
| Situation | Use | Avoid |
|
|
30
|
+
|---|---|---|
|
|
31
|
+
| New simple screen in SwiftUI app | `View` + `@StateObject`/`@Observable` pattern already present | Introducing UIKit controller just for layout convenience |
|
|
32
|
+
| Existing UIKit feature | `UIViewController`, `UICollectionView`, SnapKit, existing coordinator | Rewriting to SwiftUI unless migration is requested |
|
|
33
|
+
| Complex collection/grid | Existing UIKit compositional layout or SwiftUI `Grid/List` if app already uses it | Mixing two list systems in one screen |
|
|
34
|
+
| Deep navigation/state restoration | Existing `UINavigationController`/coordinator or `NavigationStack` pattern | Ad-hoc modal chains without back path |
|
|
35
|
+
| Custom drawing/animation | Core Animation/UIKit when precision is needed; SwiftUI animation for simple state transitions | Decorative motion that ignores Reduce Motion |
|
|
36
|
+
|
|
37
|
+
### Failure Modes and Fallbacks
|
|
38
|
+
|
|
39
|
+
| Trigger | First response | If still failing |
|
|
40
|
+
|---|---|---|
|
|
41
|
+
| Xcode build fails from signing/provisioning | Separate code errors from signing errors; verify compile diagnostics first | Report signing as environment-blocked; do not change bundle IDs or teams |
|
|
42
|
+
| SwiftUI preview fails | Run the scheme/tests instead of treating preview failure as runtime truth | Mark preview-only issue separately if app builds |
|
|
43
|
+
| Auto Layout warnings appear | Identify the exact conflicting constraint and adjust local priorities/anchors | Do not silence by lowering many priorities; stop if layout ownership is unclear |
|
|
44
|
+
| Dynamic Type truncates content | Reflow layout, allow multiline text, or adjust stack priorities | Report if product copy/visual design must change |
|
|
45
|
+
| Permission prompt behavior is unclear | Inspect existing permission wrapper and Info.plist strings | Stop before changing request timing or privacy copy |
|
|
46
|
+
| UI test is flaky | Re-run once, check accessibility identifiers and async waits | Report flake evidence; do not add arbitrary sleeps |
|
|
47
|
+
|
|
48
|
+
### Do Not Do This
|
|
49
|
+
|
|
50
|
+
- Do not use hamburger/drawer navigation in native iOS flows.
|
|
51
|
+
- Do not override system back gestures or remove standard dismissal paths.
|
|
52
|
+
- Do not request camera/location/notification permissions at launch unless explicitly required.
|
|
53
|
+
- Do not use hard-coded colors/fonts that break Dark Mode or Dynamic Type.
|
|
54
|
+
- Do not change signing, entitlements, bundle identifiers, or privacy prompts as a side effect of UI work.
|
|
55
|
+
|
|
56
|
+
### UIKit
|
|
57
|
+
|
|
58
|
+
| Purpose | Component |
|
|
59
|
+
|---------|-----------|
|
|
60
|
+
| Main sections | `UITabBarController` |
|
|
61
|
+
| Drill-down | `UINavigationController` |
|
|
62
|
+
| Focused task | Sheet presentation |
|
|
63
|
+
| Critical choice | `UIAlertController` |
|
|
64
|
+
| Secondary actions | `UIContextMenuInteraction` |
|
|
65
|
+
| List content | `UICollectionView` + `DiffableDataSource` |
|
|
66
|
+
| Sectioned list | `DiffableDataSource` + `headerMode` |
|
|
67
|
+
| Grid layout | `UICollectionViewCompositionalLayout` |
|
|
68
|
+
| Search | `UISearchController` |
|
|
69
|
+
| Share | `UIActivityViewController` |
|
|
70
|
+
| Location (once) | `CLLocationButton` |
|
|
71
|
+
| Feedback | `UIImpactFeedbackGenerator` |
|
|
72
|
+
| Linear layout | `UIStackView` |
|
|
73
|
+
| Custom shapes | `CAShapeLayer` + `UIBezierPath` |
|
|
74
|
+
| Gradients | `CAGradientLayer` |
|
|
75
|
+
| Modern buttons | `UIButton.Configuration` |
|
|
76
|
+
| Dynamic text | `UIFontMetrics` + `preferredFont` |
|
|
77
|
+
| Dark mode | Semantic colors (`.systemBackground`, `.label`) |
|
|
78
|
+
| Permissions | Contextual request + `AVCaptureDevice` |
|
|
79
|
+
| Lifecycle | `UIApplication` notifications |
|
|
80
|
+
|
|
81
|
+
### SwiftUI
|
|
82
|
+
|
|
83
|
+
| Purpose | Component |
|
|
84
|
+
|---------|-----------|
|
|
85
|
+
| Main sections | `TabView` + `tabItem` |
|
|
86
|
+
| Drill-down | `NavigationStack` + `NavigationPath` |
|
|
87
|
+
| Focused task | `.sheet` + `presentationDetents` |
|
|
88
|
+
| Critical choice | `.alert` |
|
|
89
|
+
| Secondary actions | `.contextMenu` |
|
|
90
|
+
| List content | `List` + `.insetGrouped` |
|
|
91
|
+
| Search | `.searchable` |
|
|
92
|
+
| Share | `ShareLink` |
|
|
93
|
+
| Location (once) | `LocationButton` |
|
|
94
|
+
| Feedback | `UIImpactFeedbackGenerator` |
|
|
95
|
+
| Progress (known) | `ProgressView(value:total:)` |
|
|
96
|
+
| Progress (unknown) | `ProgressView()` |
|
|
97
|
+
| Dynamic text | `.font(.body)` semantic styles |
|
|
98
|
+
| Dark mode | `.primary`, `.secondary`, `Color(.systemBackground)` |
|
|
99
|
+
| Scene lifecycle | `@Environment(\.scenePhase)` |
|
|
100
|
+
| Reduce motion | `@Environment(\.accessibilityReduceMotion)` |
|
|
101
|
+
| Dynamic type | `@Environment(\.dynamicTypeSize)` |
|
|
102
|
+
|
|
103
|
+
## Core Principles
|
|
104
|
+
|
|
105
|
+
### Layout
|
|
106
|
+
- Touch targets >= 44pt
|
|
107
|
+
- Content within safe areas (SwiftUI respects by default, use `.ignoresSafeArea()` only for backgrounds)
|
|
108
|
+
- Use 8pt spacing increments (8, 16, 24, 32, 40, 48)
|
|
109
|
+
- Primary actions in thumb zone
|
|
110
|
+
- Support all screen sizes (iPhone SE 375pt to Pro Max 430pt)
|
|
111
|
+
|
|
112
|
+
### Typography
|
|
113
|
+
- UIKit: `preferredFont(forTextStyle:)` + `adjustsFontForContentSizeCategory = true`
|
|
114
|
+
- SwiftUI: semantic text styles `.headline`, `.body`, `.caption`
|
|
115
|
+
- Custom fonts: `UIFontMetrics` / `Font.custom(_:size:relativeTo:)`
|
|
116
|
+
- Adapt layout at accessibility sizes (minimum 11pt)
|
|
117
|
+
|
|
118
|
+
### Colors
|
|
119
|
+
- Use semantic system colors (`.systemBackground`, `.label`, `.primary`, `.secondary`)
|
|
120
|
+
- Asset catalog variants for custom colors (Any/Dark Appearance)
|
|
121
|
+
- No color-only information (pair with icons or text)
|
|
122
|
+
- Contrast ratio >= 4.5:1 for normal text, 3:1 for large text
|
|
123
|
+
|
|
124
|
+
### Accessibility
|
|
125
|
+
- Labels on icon buttons (`.accessibilityLabel()`)
|
|
126
|
+
- Reduce motion respected (`@Environment(\.accessibilityReduceMotion)`)
|
|
127
|
+
- Logical reading order (`.accessibilitySortPriority()`)
|
|
128
|
+
- Support Bold Text, Increase Contrast preferences
|
|
129
|
+
|
|
130
|
+
### Navigation
|
|
131
|
+
- Tab bar (3-5 sections) stays visible during navigation
|
|
132
|
+
- Back swipe works (never override system gestures)
|
|
133
|
+
- State preserved across tabs (`@SceneStorage`, `@State`)
|
|
134
|
+
- Never use hamburger menus
|
|
135
|
+
|
|
136
|
+
### Privacy & Permissions
|
|
137
|
+
- Request permissions in context (not at launch)
|
|
138
|
+
- Custom explanation before system dialog
|
|
139
|
+
- Support Sign in with Apple
|
|
140
|
+
- Respect ATT denial
|
|
141
|
+
|
|
142
|
+
## Checklist
|
|
143
|
+
|
|
144
|
+
### Layout
|
|
145
|
+
- [ ] Touch targets >= 44pt
|
|
146
|
+
- [ ] Content within safe areas
|
|
147
|
+
- [ ] Primary actions in thumb zone (bottom half)
|
|
148
|
+
- [ ] Flexible widths for all screen sizes (SE to Pro Max)
|
|
149
|
+
- [ ] Spacing aligns to 8pt grid
|
|
150
|
+
|
|
151
|
+
### Typography
|
|
152
|
+
- [ ] Semantic text styles or UIFontMetrics-scaled custom fonts
|
|
153
|
+
- [ ] Dynamic Type supported up to accessibility sizes
|
|
154
|
+
- [ ] Layouts reflow at large sizes (no truncation)
|
|
155
|
+
- [ ] Minimum text size 11pt
|
|
156
|
+
|
|
157
|
+
### Colors
|
|
158
|
+
- [ ] Semantic system colors or light/dark asset variants
|
|
159
|
+
- [ ] Dark Mode is intentional (not just inverted)
|
|
160
|
+
- [ ] No color-only information
|
|
161
|
+
- [ ] Text contrast >= 4.5:1 (normal) / 3:1 (large)
|
|
162
|
+
- [ ] Single accent color for interactive elements
|
|
163
|
+
|
|
164
|
+
### Accessibility
|
|
165
|
+
- [ ] VoiceOver labels on all interactive elements
|
|
166
|
+
- [ ] Logical reading order
|
|
167
|
+
- [ ] Bold Text preference respected
|
|
168
|
+
- [ ] Reduce Motion disables decorative animations
|
|
169
|
+
- [ ] All gestures have alternative access paths
|
|
170
|
+
|
|
171
|
+
### Navigation
|
|
172
|
+
- [ ] Tab bar for 3-5 top-level sections
|
|
173
|
+
- [ ] No hamburger/drawer menus
|
|
174
|
+
- [ ] Tab bar stays visible during navigation
|
|
175
|
+
- [ ] Back swipe works throughout
|
|
176
|
+
- [ ] State preserved across tabs
|
|
177
|
+
|
|
178
|
+
### Components
|
|
179
|
+
- [ ] Alerts for critical decisions only
|
|
180
|
+
- [ ] Sheets have dismiss path (button and/or swipe)
|
|
181
|
+
- [ ] List rows >= 44pt tall
|
|
182
|
+
- [ ] Destructive buttons use `.destructive` role
|
|
183
|
+
|
|
184
|
+
### Privacy
|
|
185
|
+
- [ ] Permissions requested in context (not at launch)
|
|
186
|
+
- [ ] Custom explanation before system permission dialog
|
|
187
|
+
- [ ] Sign in with Apple offered with other providers
|
|
188
|
+
- [ ] Basic features usable without account
|
|
189
|
+
- [ ] ATT prompt shown if tracking, denial respected
|
|
190
|
+
|
|
191
|
+
### System Integration
|
|
192
|
+
- [ ] App handles interruptions gracefully (calls, background, Siri)
|
|
193
|
+
- [ ] App content indexed for Spotlight
|
|
194
|
+
- [ ] Share Sheet available for shareable content
|
|
195
|
+
|
|
196
|
+
## References
|
|
197
|
+
|
|
198
|
+
| Topic | Reference |
|
|
199
|
+
|-------|-----------|
|
|
200
|
+
| Touch Targets, Safe Area, CollectionView | [Layout System](references/layout-system.md) |
|
|
201
|
+
| TabBar, NavigationController, Modal | [Navigation Patterns](references/navigation-patterns.md) |
|
|
202
|
+
| StackView, Button, Alert, Search, ContextMenu | [UIKit Components](references/uikit-components.md) |
|
|
203
|
+
| CAShapeLayer, CAGradientLayer, Core Animation | [Graphics & Animation](references/graphics-animation.md) |
|
|
204
|
+
| Dynamic Type, Semantic Colors, VoiceOver | [Accessibility](references/accessibility.md) |
|
|
205
|
+
| Permissions, Location, Share, Lifecycle, Haptics | [System Integration](references/system-integration.md) |
|
|
206
|
+
| Metal Shaders & GPU | [Metal Shader Reference](references/metal-shader.md) |
|
|
207
|
+
| SwiftUI HIG, Components, Patterns, Anti-Patterns | [SwiftUI Design Guidelines](references/swiftui-design-guidelines.md) |
|
|
208
|
+
| Optionals, Protocols, async/await, ARC, Error Handling | [Swift Coding Standards](references/swift-coding-standards.md) |
|
|
209
|
+
|
|
210
|
+
---
|
|
211
|
+
|
|
212
|
+
Swift, SwiftUI, UIKit, SF Symbols, Metal, and Apple are trademarks of Apple Inc. SnapKit is a trademark of its respective owners.
|