prizmkit 1.1.153 → 1.1.155

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.
Files changed (178) hide show
  1. package/bundled/VERSION.json +3 -3
  2. package/bundled/adapters/codex/skill-adapter.js +1 -1
  3. package/bundled/adapters/pi/skill-adapter.js +2 -1
  4. package/bundled/dev-pipeline/.env.example +2 -6
  5. package/bundled/dev-pipeline/README.md +120 -113
  6. package/bundled/dev-pipeline/assets/skill-subagent-integration.md +1 -1
  7. package/bundled/dev-pipeline/prizmkit_runtime/checkpoint_state.py +355 -15
  8. package/bundled/dev-pipeline/prizmkit_runtime/cli.py +189 -110
  9. package/bundled/dev-pipeline/prizmkit_runtime/commands.py +146 -111
  10. package/bundled/dev-pipeline/prizmkit_runtime/daemon.py +4 -20
  11. package/bundled/dev-pipeline/prizmkit_runtime/gitops.py +48 -14
  12. package/bundled/dev-pipeline/prizmkit_runtime/interoperability.py +0 -1
  13. package/bundled/dev-pipeline/prizmkit_runtime/paths.py +0 -3
  14. package/bundled/dev-pipeline/prizmkit_runtime/reset.py +122 -15
  15. package/bundled/dev-pipeline/prizmkit_runtime/reset_preserve.py +1 -1
  16. package/bundled/dev-pipeline/prizmkit_runtime/runner_classification.py +50 -2
  17. package/bundled/dev-pipeline/prizmkit_runtime/runner_models.py +1 -10
  18. package/bundled/dev-pipeline/prizmkit_runtime/runner_prompts.py +3 -3
  19. package/bundled/dev-pipeline/prizmkit_runtime/runners.py +139 -74
  20. package/bundled/dev-pipeline/prizmkit_runtime/runtime_commit.py +482 -0
  21. package/bundled/dev-pipeline/prizmkit_runtime/status.py +106 -1
  22. package/bundled/dev-pipeline/prizmkit_runtime/test_result.py +64 -11
  23. package/bundled/dev-pipeline/scripts/generate-bootstrap-prompt.py +145 -367
  24. package/bundled/dev-pipeline/scripts/generate-bugfix-prompt.py +91 -62
  25. package/bundled/dev-pipeline/scripts/generate-refactor-prompt.py +105 -69
  26. package/bundled/dev-pipeline/scripts/init-bugfix-pipeline.py +2 -2
  27. package/bundled/dev-pipeline/scripts/prompt_framework.py +36 -41
  28. package/bundled/dev-pipeline/scripts/update-bug-status.py +197 -71
  29. package/bundled/dev-pipeline/scripts/update-checkpoint.py +77 -16
  30. package/bundled/dev-pipeline/scripts/update-feature-status.py +46 -121
  31. package/bundled/dev-pipeline/scripts/update-refactor-status.py +46 -123
  32. package/bundled/dev-pipeline/scripts/utils.py +119 -0
  33. package/bundled/dev-pipeline/templates/bootstrap-prompt.md +22 -27
  34. package/bundled/dev-pipeline/templates/bootstrap-tier3.md +71 -104
  35. package/bundled/dev-pipeline/templates/bug-fix-list-schema.json +3 -2
  36. package/bundled/dev-pipeline/templates/bugfix-bootstrap-prompt.md +59 -111
  37. package/bundled/dev-pipeline/templates/refactor-bootstrap-prompt.md +37 -72
  38. package/bundled/dev-pipeline/templates/sections/artifact-manifest.md +39 -0
  39. package/bundled/dev-pipeline/templates/sections/bugfix-critical-paths.md +3 -1
  40. package/bundled/dev-pipeline/templates/sections/bugfix-phase-commit-report.md +8 -25
  41. package/bundled/dev-pipeline/templates/sections/bugfix-phase-diagnose-plan.md +3 -3
  42. package/bundled/dev-pipeline/templates/sections/bugfix-phase-implement.md +2 -2
  43. package/bundled/dev-pipeline/templates/sections/bugfix-phase-review.md +3 -3
  44. package/bundled/dev-pipeline/templates/sections/bugfix-phase-test.md +2 -2
  45. package/bundled/dev-pipeline/templates/sections/bugfix-reminders.md +4 -4
  46. package/bundled/dev-pipeline/templates/sections/bugfix-session-context.md +0 -1
  47. package/bundled/dev-pipeline/templates/sections/checkpoint-system.md +7 -4
  48. package/bundled/dev-pipeline/templates/sections/context-budget-rules.md +14 -27
  49. package/bundled/dev-pipeline/templates/sections/feature-completion-summary.md +20 -0
  50. package/bundled/dev-pipeline/templates/sections/phase-commit-full.md +8 -71
  51. package/bundled/dev-pipeline/templates/sections/phase-implement-full.md +7 -7
  52. package/bundled/dev-pipeline/templates/sections/phase-prizmkit-test.md +3 -3
  53. package/bundled/dev-pipeline/templates/sections/phase-review-full.md +4 -4
  54. package/bundled/dev-pipeline/templates/sections/phase-specify-plan-full.md +5 -17
  55. package/bundled/dev-pipeline/templates/sections/refactor-critical-paths.md +3 -1
  56. package/bundled/dev-pipeline/templates/sections/refactor-phase-commit-report.md +10 -23
  57. package/bundled/dev-pipeline/templates/sections/refactor-phase-implement.md +2 -2
  58. package/bundled/dev-pipeline/templates/sections/refactor-phase-plan.md +2 -2
  59. package/bundled/dev-pipeline/templates/sections/refactor-phase-review.md +3 -3
  60. package/bundled/dev-pipeline/templates/sections/refactor-phase-test.md +2 -2
  61. package/bundled/dev-pipeline/templates/sections/refactor-reminders.md +7 -7
  62. package/bundled/dev-pipeline/templates/sections/refactor-session-context.md +0 -1
  63. package/bundled/dev-pipeline/templates/sections/retrospective.md +12 -0
  64. package/bundled/dev-pipeline/templates/sections/runtime-commit-handoff.md +35 -0
  65. package/bundled/dev-pipeline/templates/session-status-schema.json +45 -62
  66. package/bundled/dev-pipeline/tests/test_auto_skip.py +111 -32
  67. package/bundled/dev-pipeline/tests/test_checkpoint_state.py +617 -30
  68. package/bundled/dev-pipeline/tests/test_generate_bootstrap_prompt.py +262 -194
  69. package/bundled/dev-pipeline/tests/test_generate_bugfix_prompt.py +62 -23
  70. package/bundled/dev-pipeline/tests/test_generate_refactor_prompt.py +76 -28
  71. package/bundled/dev-pipeline/tests/test_python_runner_parity.py +281 -206
  72. package/bundled/dev-pipeline/tests/test_recovery_workflow.py +322 -0
  73. package/bundled/dev-pipeline/tests/test_reset_modes.py +935 -0
  74. package/bundled/dev-pipeline/tests/test_reset_preserve.py +5 -7
  75. package/bundled/dev-pipeline/tests/test_runtime_commit.py +608 -0
  76. package/bundled/dev-pipeline/tests/test_unified_cli.py +617 -188
  77. package/bundled/skills/_metadata.json +9 -9
  78. package/bundled/skills/app-planner/SKILL.md +3 -3
  79. package/bundled/skills/app-planner/references/generated-plan-review.md +2 -1
  80. package/bundled/skills/app-planner/references/rules/backend/derivation-rules.md +56 -64
  81. package/bundled/skills/app-planner/references/rules/backend/fixed-rules.md +85 -240
  82. package/bundled/skills/app-planner/references/rules/backend/question-bank.md +25 -25
  83. package/bundled/skills/app-planner/references/rules/backend/question-manifest.json +16 -7
  84. package/bundled/skills/app-planner/references/rules/backend/template.md +74 -92
  85. package/bundled/skills/app-planner/references/rules/database/derivation-rules.md +93 -93
  86. package/bundled/skills/app-planner/references/rules/database/fixed-rules.md +66 -173
  87. package/bundled/skills/app-planner/references/rules/database/question-bank.md +31 -26
  88. package/bundled/skills/app-planner/references/rules/database/question-manifest.json +13 -4
  89. package/bundled/skills/app-planner/references/rules/database/template.md +76 -98
  90. package/bundled/skills/app-planner/references/rules/frontend/derivation-rules.md +68 -95
  91. package/bundled/skills/app-planner/references/rules/frontend/fixed-rules.md +93 -166
  92. package/bundled/skills/app-planner/references/rules/frontend/question-bank.md +46 -36
  93. package/bundled/skills/app-planner/references/rules/frontend/question-manifest.json +11 -2
  94. package/bundled/skills/app-planner/references/rules/frontend/template.md +79 -257
  95. package/bundled/skills/app-planner/references/rules/mobile/derivation-rules.md +91 -99
  96. package/bundled/skills/app-planner/references/rules/mobile/fixed-rules.md +73 -246
  97. package/bundled/skills/app-planner/references/rules/mobile/question-bank.md +17 -17
  98. package/bundled/skills/app-planner/references/rules/mobile/question-manifest.json +17 -2
  99. package/bundled/skills/app-planner/references/rules/mobile/template.md +73 -85
  100. package/bundled/skills/app-planner/references/rules-configuration.md +133 -65
  101. package/bundled/skills/app-planner/scripts/validate-rules-configuration.py +291 -0
  102. package/bundled/skills/bug-planner/references/schema-validation.md +1 -1
  103. package/bundled/skills/bug-planner/scripts/validate-bug-list.py +1 -1
  104. package/bundled/skills/bugfix-pipeline-launcher/SKILL.md +21 -13
  105. package/bundled/skills/feature-pipeline-launcher/SKILL.md +22 -14
  106. package/bundled/skills/prizmkit/SKILL.md +17 -18
  107. package/bundled/skills/prizmkit/references/workflow-state-protocol.md +22 -18
  108. package/bundled/skills/prizmkit-code-review/SKILL.md +22 -58
  109. package/bundled/skills/prizmkit-code-review/references/independent-code-review.md +6 -6
  110. package/bundled/skills/prizmkit-code-review/references/review-report-template.md +2 -2
  111. package/bundled/skills/prizmkit-committer/SKILL.md +82 -132
  112. package/bundled/skills/prizmkit-deploy/SKILL.md +27 -11
  113. package/bundled/skills/prizmkit-deploy/assets/deploy-document-template.md +89 -0
  114. package/bundled/skills/prizmkit-deploy/references/ci-cd-workflows.md +44 -14
  115. package/bundled/skills/prizmkit-deploy/references/cloud-platform-deploy.md +19 -3
  116. package/bundled/skills/prizmkit-deploy/references/database-setup.md +22 -12
  117. package/bundled/skills/prizmkit-deploy/references/deploy-config-schema.md +3 -1
  118. package/bundled/skills/prizmkit-deploy/references/deploy-history-schema.md +22 -6
  119. package/bundled/skills/prizmkit-deploy/references/deploy-metadata-schema.json +49 -0
  120. package/bundled/skills/prizmkit-deploy/references/live-validation-notes.md +1 -1
  121. package/bundled/skills/prizmkit-deploy/references/pending-input-schema.json +164 -0
  122. package/bundled/skills/prizmkit-deploy/references/ssh-adapter-flow.md +9 -8
  123. package/bundled/skills/prizmkit-deploy/references/ssh-execution-flow.md +6 -6
  124. package/bundled/skills/prizmkit-implement/SKILL.md +30 -66
  125. package/bundled/skills/prizmkit-implement/references/implementation-subagent-procedure.md +4 -4
  126. package/bundled/skills/prizmkit-init/SKILL.md +4 -0
  127. package/bundled/skills/prizmkit-plan/SKILL.md +21 -64
  128. package/bundled/skills/prizmkit-plan/references/artifact-identity.md +38 -0
  129. package/bundled/skills/prizmkit-plan/references/independent-plan-review.md +4 -4
  130. package/bundled/skills/prizmkit-plan/references/review-plan-spec-loop.md +5 -5
  131. package/bundled/skills/prizmkit-prizm-docs/SKILL.md +11 -1
  132. package/bundled/skills/prizmkit-retrospective/SKILL.md +63 -77
  133. package/bundled/skills/prizmkit-retrospective/references/knowledge-injection-steps.md +3 -3
  134. package/bundled/skills/prizmkit-retrospective/references/retrospective-result-schema.json +138 -0
  135. package/bundled/skills/prizmkit-retrospective/references/structural-sync-steps.md +17 -23
  136. package/bundled/skills/prizmkit-test/SKILL.md +64 -51
  137. package/bundled/skills/prizmkit-test/references/boundary-contract-and-test-double-guidance.md +206 -0
  138. package/bundled/skills/prizmkit-test/references/independent-test-review.md +17 -9
  139. package/bundled/skills/prizmkit-test/references/test-coverage-model.md +45 -21
  140. package/bundled/skills/prizmkit-test/references/test-report-template.md +20 -13
  141. package/bundled/skills/prizmkit-workflow/SKILL.md +35 -37
  142. package/bundled/skills/prizmkit-workflow/references/artifact-identity.md +34 -0
  143. package/bundled/skills/prizmkit-workflow/references/workflow-state-protocol.md +22 -18
  144. package/bundled/skills/recovery-workflow/SKILL.md +9 -6
  145. package/bundled/skills/recovery-workflow/evals/evals.json +2 -2
  146. package/bundled/skills/recovery-workflow/references/detection.md +7 -6
  147. package/bundled/skills/recovery-workflow/scripts/detect-recovery-state.py +16 -6
  148. package/bundled/skills/refactor-pipeline-launcher/SKILL.md +21 -13
  149. package/bundled/templates/project-memory-template.md +19 -11
  150. package/package.json +1 -1
  151. package/src/scaffold.js +33 -22
  152. package/bundled/dev-pipeline/prizmkit_runtime/runner_recovery.py +0 -228
  153. package/bundled/dev-pipeline/scripts/generate-recovery-prompt.py +0 -767
  154. package/bundled/dev-pipeline/templates/sections/bugfix-artifacts.md +0 -16
  155. package/bundled/dev-pipeline/templates/sections/bugfix-session-status.md +0 -31
  156. package/bundled/dev-pipeline/templates/sections/critical-paths-agent.md +0 -7
  157. package/bundled/dev-pipeline/templates/sections/critical-paths-lite.md +0 -7
  158. package/bundled/dev-pipeline/templates/sections/directory-convention-agent.md +0 -9
  159. package/bundled/dev-pipeline/templates/sections/directory-convention-lite.md +0 -6
  160. package/bundled/dev-pipeline/templates/sections/headless-commit-authorization.md +0 -15
  161. package/bundled/dev-pipeline/templates/sections/phase-commit.md +0 -61
  162. package/bundled/dev-pipeline/templates/sections/phase-context-snapshot-agent-suffix.md +0 -24
  163. package/bundled/dev-pipeline/templates/sections/phase-context-snapshot-lite-suffix.md +0 -12
  164. package/bundled/dev-pipeline/templates/sections/phase-implement-agent.md +0 -44
  165. package/bundled/dev-pipeline/templates/sections/phase-implement-lite.md +0 -25
  166. package/bundled/dev-pipeline/templates/sections/phase-plan-agent.md +0 -20
  167. package/bundled/dev-pipeline/templates/sections/phase-plan-lite.md +0 -20
  168. package/bundled/dev-pipeline/templates/sections/phase-review-agent.md +0 -20
  169. package/bundled/dev-pipeline/templates/sections/refactor-artifacts.md +0 -17
  170. package/bundled/dev-pipeline/templates/sections/refactor-session-status.md +0 -28
  171. package/bundled/dev-pipeline/templates/sections/test-failure-recovery-agent.md +0 -52
  172. package/bundled/dev-pipeline/templates/sections/test-failure-recovery-lite.md +0 -52
  173. package/bundled/skills/prizmkit-code-review/references/workflow-state-protocol.md +0 -174
  174. package/bundled/skills/prizmkit-committer/references/workflow-state-protocol.md +0 -174
  175. package/bundled/skills/prizmkit-implement/references/workflow-state-protocol.md +0 -174
  176. package/bundled/skills/prizmkit-plan/references/workflow-state-protocol.md +0 -174
  177. package/bundled/skills/prizmkit-retrospective/references/workflow-state-protocol.md +0 -174
  178. package/bundled/skills/prizmkit-test/references/external-contract-mock-guidance.md +0 -119
@@ -1,290 +1,117 @@
1
- # Fixed Rules — Complete Mobile Fixed Rules
1
+ # Mobile Invariant Rules
2
2
 
3
- > This file is read by the `mobile-rules` skill in Phase 1 and injected directly into `mobile-rules.md`.
4
- > These rules are industry consensus / best practices — **do not ask the user**.
5
- > Every rule includes RATIONALE so the AI understands intent, not just constraints.
3
+ POLICY_CLASS: invariant
6
4
 
7
- ---
5
+ These blocks apply across Flutter, React Native, iOS, Android, and dual-native projects without forcing one platform's conventions onto another.
8
6
 
9
- ## F1. Project Structure
7
+ **Selected-decision boundary:** platform, minimum OS support, architecture, UI framework, navigation/deep linking, state management, networking library, persistence, push, background work, permissions timing, testing depth, distribution, performance target, accessibility target, dependency permission, caller analysis, and platform flexibility belong to confirmed decisions and derivation rules.
10
8
 
11
- ### F1.1 Platform Directory Conventions
9
+ ## I1. Platform Ownership
12
10
 
13
- - **Rule**: Project root must clearly separate platform-specific code from shared code:
14
- - Flutter: `lib/` (Dart), `test/`, `ios/`, `android/`
15
- - React Native: `src/`, `ios/`, `android/`, `app.json`
16
- - iOS: `AppName/` (Swift sources), `AppNameTests/`, `AppName.xcodeproj`
17
- - Android: `app/src/main/java/`, `app/src/test/`, `app/build.gradle`
18
- - **Rule**: Shared cross-platform code goes in `shared/` or `core/` directory.
19
- - **Forbidden**: Mixing platform-specific and cross-platform code in the same directory.
20
- - **RATIONALE**: Clean platform separation is the first defense against accidental platform coupling.
11
+ - Separate shared behavior from platform-specific adapters using the selected project structure.
12
+ - Apply only the conventions of the active platform profile; dual-native projects maintain distinct iOS and Android profiles.
13
+ - Public shared contracts state platform capability differences rather than hiding them behind accidental conditionals.
21
14
 
22
- ### F1.2 Module Organization
15
+ Inject into `{{ FIXED_RULES_STRUCTURE }}`.
23
16
 
24
- - **Rule**: Organize source by feature/module, not by technical layer (e.g., `features/auth/`, not `models/` + `views/` + `controllers/`).
25
- - **Rule**: Within each feature directory, enforce the chosen architecture pattern (MVVM/Clean Architecture/MVI).
26
- - **Forbidden**: Circular dependencies between feature modules.
27
- - **RATIONALE**: Feature-based organization keeps related code together and limits blast radius of changes.
17
+ ## I2. UI Integrity
28
18
 
29
- ### F1.3 Naming Conventions
19
+ - Components have explicit input, output, state, and sizing behavior.
20
+ - Use the selected design system or platform theme consistently; document unavoidable platform-specific deviations.
21
+ - Adapt safe areas, text scaling, and supported orientations according to the confirmed product and platform profiles.
30
22
 
31
- - **Flutter**: File names snake_case (`user_profile_screen.dart`). Widget classes PascalCase.
32
- - **React Native**: Component files PascalCase (`UserProfileScreen.tsx`). Hooks `useXxx.ts`.
33
- - **iOS/Swift**: Files PascalCase (`UserProfileView.swift`). Protocols start with describable verb.
34
- - **Android/Kotlin**: Files PascalCase (`UserProfileScreen.kt`). Layout XML snake_case.
35
- - **RATIONALE**: Consistent naming lets AI and developers find files by convention alone.
23
+ Inject into `{{ FIXED_RULES_UI }}`.
36
24
 
37
- ---
25
+ ## I3. Navigation Integrity
38
26
 
39
- ## F2. UI Development
27
+ - Back behavior, restoration, and route ownership are deterministic for the selected navigation strategy.
28
+ - Validate external navigation input before opening a screen or resource.
29
+ - Deep-link requirements apply only when deep linking is selected; simple-stack projects render an explicit no-deep-link decision.
40
30
 
41
- ### F2.1 Component/Widget Principles
31
+ Inject into `{{ FIXED_RULES_NAVIGATION }}`.
42
32
 
43
- - **Rule**: UI components must be single-responsibility. One component does one visual unit.
44
- - **Rule**: Pass data down, emit events up. Forbid bidirectional data binding between parent and child.
45
- - **Rule**: Every UI component must specify explicit sizing behavior (intrinsic, expanded, fixed). Forbid relying on implicit defaults.
46
- - **Forbidden**: Hardcoding colors, font sizes, or spacing values in UI code. Use design tokens or theme.
47
- - **RATIONALE**: UI is the most change-prone layer. Single-responsibility components make changes localized.
33
+ ## I4. State Integrity
48
34
 
49
- ### F2.2 Platform UI Conventions
35
+ - Separate ephemeral UI state from longer-lived business/session state.
36
+ - State ownership and mutation remain observable; avoid uncontrolled global mutable state.
37
+ - Persistence across process death or configuration change is required only for state the product contract marks durable.
50
38
 
51
- - **Rule**: Follow platform HIG (Human Interface Guidelines) for navigation patterns:
52
- - iOS: tab bar at bottom, back swipe gesture, navigation bar with large titles
53
- - Android: navigation drawer or bottom nav, back button (system), app bar
54
- - **Rule**: Touch targets must be ≥ 44pt (iOS) / 48dp (Android). Smaller targets need padding.
55
- - **Forbidden**: Copying UI patterns from one platform to another without adapting to HIG.
56
- - **RATIONALE**: Users expect platform-native behavior. Violating HIG causes rejection from App Store review.
39
+ Inject into `{{ FIXED_RULES_STATE }}`.
57
40
 
58
- ### F2.3 Adaptive Layout
41
+ ## I5. Network Safety
59
42
 
60
- - **Rule**: UI must adapt to safe areas (notch, home indicator, camera cutout).
61
- - **Rule**: Support both portrait and landscape on iPad/tablet. Phone may lock to portrait.
62
- - **Rule**: Text must support Dynamic Type / font scaling (1x–3x). Test with largest accessibility text size.
63
- - **Forbidden**: Using fixed pixel dimensions for text containers.
64
- - **RATIONALE**: Device fragmentation is orders of magnitude worse on mobile than on web.
43
+ - Network work never blocks the UI thread and defines timeout, cancellation, error, and retry/idempotency behavior appropriate to the operation.
44
+ - Protect credentials and personal data in transit using current platform transport security.
45
+ - Certificate pinning, offline queues, and cache policies are opt-in risk decisions, not unconditional requirements.
65
46
 
66
- ---
47
+ Inject into `{{ FIXED_RULES_NETWORKING }}`.
67
48
 
68
- ## F3. Navigation & Deep Linking
49
+ ## I6. Persistence Safety
69
50
 
70
- ### F3.1 Navigation Patterns
51
+ - Store each data class in a mechanism appropriate to its sensitivity, structure, and lifecycle.
52
+ - Keep secrets and tokens out of plaintext storage.
53
+ - Version persistent model changes and test compatibility with supported prior app versions when migration is required.
71
54
 
72
- - **Rule**: Navigation flow must be predictable. Back button/gesture always goes to the previous screen.
73
- - **Rule**: Deep links must resolve to a specific screen regardless of app launch state (cold start, background, foreground).
74
- - **Rule**: Navigation state must survive process death (save/restore navigation stack).
75
- - **Forbidden**: Modifying the navigation stack during transition animations.
76
- - **RATIONALE**: Broken navigation is the #1 cause of mobile app user frustration and 1-star reviews.
55
+ Inject into `{{ FIXED_RULES_PERSISTENCE }}`.
77
56
 
78
- ### F3.2 Deep Linking
57
+ ## I7. Platform Feature Safety
79
58
 
80
- - **Rule**: All deep link routes must be validated before navigation. Forbid navigating to arbitrary URLs.
81
- - **Rule**: Universal Links (iOS) / App Links (Android) must be configured with the correct `apple-app-site-association` / `assetlinks.json`.
82
- - **Rule**: Deep link handling must work with both custom scheme (`myapp://`) and HTTPS (`https://myapp.com/`).
83
- - **RATIONALE**: Deep links are an attack surface (open redirect). Unvalidated deep links can expose sensitive screens.
59
+ - Check capability and permission state before invoking a protected platform feature.
60
+ - Handle denial, unavailability, process termination, and token/registration changes without crashing or silently losing owned work.
61
+ - Push and background requirements are injected only when selected; otherwise render them as not applicable.
84
62
 
85
- ---
63
+ Inject into `{{ FIXED_RULES_PLATFORM_FEATURES }}`.
86
64
 
87
- ## F4. State Management Principles
65
+ ## I8. Resource Safety
88
66
 
89
- - **Rule**: UI state must be separated from business state. UI state belongs in the View/Widget. Business state belongs in ViewModel/Bloc/Store.
90
- - **Rule**: State changes must be observable and traceable. Forbid silently mutating shared state.
91
- - **Rule**: Long-lived state (user session, cached data) must survive configuration changes / process death.
92
- - **Forbidden**: Using global mutable variables as state containers.
93
- - **RATIONALE**: Uncontrolled shared mutable state is the root of all mobile app heisenbugs — bugs that vanish when you try to reproduce them.
67
+ - Keep expensive CPU, I/O, decoding, and datastore work off the UI thread.
68
+ - Release listeners, observers, tasks, and retained UI owners at the platform lifecycle boundary.
69
+ - Apply numeric frame, memory, and package-size budgets only from the selected performance target.
94
70
 
95
- ---
71
+ Inject into `{{ FIXED_RULES_PERFORMANCE }}`.
96
72
 
97
- ## F5. Networking
73
+ ## I9. Accessibility Baseline
98
74
 
99
- ### F5.1 API Communication
75
+ - Interactive elements have accessible names and meet the active platform's minimum operability expectations.
76
+ - Support system text scaling and do not convey meaning by color alone.
77
+ - Apply stricter screen-reader, contrast, and audit requirements through the selected accessibility target.
100
78
 
101
- - **Rule**: All API calls must handle: success, network error, timeout, server error (4xx/5xx), and empty response.
102
- - **Rule**: Network requests must be cancellable (dispose on screen exit to prevent memory leaks and stale UI updates).
103
- - **Rule**: Sensitive data in transit must use HTTPS with certificate pinning for production builds.
104
- - **Forbidden**: Making network calls on the main/UI thread.
105
- - **RATIONALE**: Mobile networks are unreliable by nature. Every network call needs full error handling or it will crash your app.
79
+ Inject into `{{ FIXED_RULES_A11Y }}`.
106
80
 
107
- ### F5.2 Offline & Caching
81
+ ## I10. Mobile Security
108
82
 
109
- - **Rule**: Critical flows must work offline or show graceful degradation (not a white screen).
110
- - **Rule**: Network responses should be cached with TTL. Stale cache is better than no data.
111
- - **Rule**: Offline mutations must be queued and synced when connectivity returns, with conflict resolution.
112
- - **RATIONALE**: Airplane mode, tunnels, elevators mobile apps must assume connectivity is intermittent.
83
+ - Treat the distributed application binary and local device as attacker-accessible.
84
+ - Do not embed privileged server secrets or disable platform transport protections to bypass an error.
85
+ - Protect sensitive local content and redact release logs according to the product's data classification.
86
+ - Platform hardening features are enabled according to threat model, not universally.
113
87
 
114
- ---
88
+ Inject into `{{ FIXED_RULES_SECURITY }}`.
115
89
 
116
- ## F6. Data Persistence
90
+ ## I11. Verification Integrity
117
91
 
118
- ### F6.1 Local Storage
92
+ - Follow the selected test depth and framework for each active platform profile.
93
+ - Enabled tests are deterministic and isolate network, clock, device, and backend dependencies as required by the test contract.
94
+ - A `not required yet` selection is recorded with accepted risk instead of contradicted by unconditional three-tier requirements.
119
95
 
120
- - **Rule**: Choose the right storage for the data type: structured → SQLite, KV → DataStore/MMKV/Hive, files → app sandbox, credentials → Keychain/Keystore.
121
- - **Rule**: Database migrations must be versioned and tested. Forbid destructive migrations (drop column/table) without a backup step.
122
- - **Forbidden**: Storing sensitive data (tokens, passwords, PII) in plaintext in any local storage.
123
- - **RATIONALE**: Local storage is not encrypted by default on all platforms. Assume the device can be compromised.
96
+ Inject into `{{ FIXED_RULES_TEST }}`.
124
97
 
125
- ### F6.2 Encryption
98
+ ## I12. Distribution Integrity
126
99
 
127
- - **Rule**: Authentication tokens must be stored in Keychain (iOS) / EncryptedSharedPreferences or Keystore (Android).
128
- - **Rule**: Local databases containing PII must use SQLCipher or platform-level encryption.
129
- - **Forbidden**: Hardcoding encryption keys in source code.
130
- - **RATIONALE**: The mobile device is a hostile environment — jailbroken/rooted devices can access app sandboxes.
100
+ - Follow the selected distribution channel and its signing, review, rollout, and compliance requirements.
101
+ - Do not inject public-store rules into enterprise-only or undecided distribution profiles.
102
+ - Protect signing material outside source control and make release identity reproducible.
131
103
 
132
- ---
104
+ Inject into `{{ FIXED_RULES_DISTRIBUTION }}`.
133
105
 
134
- ## F7. Platform Features
106
+ ## I13. AI Change Safety
135
107
 
136
- ### F7.1 Permissions
108
+ - Read the current platform profile and target feature before editing.
109
+ - Search for existing shared and platform-specific implementations before creating duplicates.
110
+ - Keep changes within scope and report uncertainty about API availability or platform behavior.
111
+ - Dependency, caller-analysis, and cross-platform flexibility permissions come only from selected decision blocks.
137
112
 
138
- - **Rule**: Request permissions at the time of use, not at app launch (except for critically required permissions with explanation).
139
- - **Rule**: Handle all permission outcomes: granted, denied, denied permanently ("Don't ask again").
140
- - **Rule**: When a permission is permanently denied, guide the user to system Settings with a clear explanation of why it's needed.
141
- - **Forbidden**: Crashing or silently failing when a permission is denied.
142
- - **RATIONALE**: Permission rejection rates are high (30-50% for camera/mic). Crashing on denial is a guaranteed crash report.
113
+ Inject into `{{ FIXED_RULES_AI_BASE }}`.
143
114
 
144
- ### F7.2 Background Tasks
115
+ ## Injection Contract
145
116
 
146
- - **Rule**: Background work must use the platform's recommended API:
147
- - iOS: BGTaskScheduler (short, scheduled) or BGAppRefreshTask
148
- - Android: WorkManager (deferrable) or Foreground Service (user-visible)
149
- - **Rule**: Background tasks must be battery-efficient. Forbid polling every few seconds in the background.
150
- - **Rule**: Background task results must be persisted before task completion (system may kill the process).
151
- - **RATIONALE**: Mobile OSes aggressively kill background processes. Using the wrong background API means your task never runs.
152
-
153
- ### F7.3 Push Notifications
154
-
155
- - **Rule**: Notification content must be localized. Forbid hardcoding notification text in English only.
156
- - **Rule**: Notification tap must navigate to the relevant screen, not just open the app.
157
- - **Rule**: Handle FCM/APNs token refresh. Stale tokens cause silent notification delivery failure.
158
- - **Forbidden**: Sending sensitive data (passwords, PII) in notification payloads.
159
- - **RATIONALE**: Notifications are the primary re-engagement channel. Broken deep links from notifications mean lost users.
160
-
161
- ---
162
-
163
- ## F8. Performance
164
-
165
- ### F8.1 Main Thread
166
-
167
- - **Rule**: UI thread (main thread) must stay at 60fps (16ms/frame) or 120fps (8ms/frame). Any work > 1ms offloads to background.
168
- - **Rule**: JSON parsing, image decoding, database queries must run off the main thread.
169
- - **Forbidden**: Synchronous I/O on the main thread.
170
- - **RATIONALE**: Jank (dropped frames) is immediately visible to users. A single 100ms main-thread block drops 6 frames at 60fps.
171
-
172
- ### F8.2 Memory
173
-
174
- - **Rule**: Avoid memory leaks: unregister listeners/observers in dispose/deinit/onDestroy.
175
- - **Rule**: Image memory: load scaled images (not full resolution into a thumbnail). Use image caching libraries.
176
- - **Rule**: Monitor memory warnings. Release cached data when the system sends a memory warning.
177
- - **Forbidden**: Holding references to Activity/Fragment/ViewController after they're destroyed.
178
- - **RATIONALE**: Mobile OSes kill apps that exceed memory limits. Memory leaks accumulate and eventually cause OOM crashes.
179
-
180
- ### F8.3 App Size
181
-
182
- - **Rule**: App download size target < 100MB (cellular download limit for many regions).
183
- - **Rule**: Use App Bundles (Android) / App Thinning (iOS) for platform-optimized delivery.
184
- - **Rule**: Large assets (videos, models) should be downloaded on-demand after install, not bundled.
185
- - **RATIONALE**: App size directly impacts install conversion. Every 10MB above 100MB loses ~1% of potential installs.
186
-
187
- ---
188
-
189
- ## F9. Accessibility
190
-
191
- - **Rule**: All interactive elements must have accessibility labels (contentDescription / accessibilityLabel).
192
- - **Rule**: Decorative images must be marked as not important for accessibility.
193
- - **Rule**: Color must not be the sole means of conveying information (pair with icon or text).
194
- - **Rule**: Minimum contrast ratio: 4.5:1 for normal text, 3:1 for large text (≥18pt bold or ≥24pt).
195
- - **Rule**: Support system font scaling up to 2x without layout breaking or text truncation.
196
- - **RATIONALE**: 15% of the world's population has some form of disability. Accessibility is not optional — it's also increasingly an App Store review requirement.
197
-
198
- ---
199
-
200
- ## F10. Security
201
-
202
- ### F10.1 App Hardening
203
-
204
- - **Rule**: Release builds must enable code minification/obfuscation (ProGuard/R8 for Android, strip symbols for iOS).
205
- - **Rule**: Jailbreak/root detection recommended for financial, healthcare, or enterprise apps.
206
- - **Rule**: Screenshot/screen recording prevention for sensitive screens (banking, health records).
207
- - **Forbidden**: Leaving debug logs, debug menus, or development endpoints in release builds.
208
- - **RATIONALE**: A released app is a binary that anyone can decompile. Defense in depth is the only strategy.
209
-
210
- ### F10.2 Data Protection
211
-
212
- - **Rule**: App sandbox file protection: `NSFileProtectionComplete` (iOS) / device-encrypted storage (Android).
213
- - **Rule**: API keys must not be stored in the app bundle. Use server-side proxy or secure enclave.
214
- - **Rule**: User sessions must expire. Token refresh must require re-authentication for sensitive operations.
215
- - **RATIONALE**: The app binary is distributed to attacker-controlled devices. Assume everything in the binary is public knowledge.
216
-
217
- ---
218
-
219
- ## F11. Testing
220
-
221
- - **Rule**: Testing has three tiers:
222
- - Unit tests: ViewModels/Blocs/UseCases/Repositories (fast, no UI)
223
- - Widget/Component tests: individual UI components in isolation (medium speed, fake dependencies)
224
- - Integration/E2E tests: critical user flows through real screens (slow, real or staged backend)
225
- - **Rule**: Tests must be deterministic. Forbid relying on real network calls, real time, or random values without seeding.
226
- - **Rule**: Golden/image snapshot tests must use the same OS version and device configuration for consistency.
227
- - **RATIONALE**: Mobile testing is harder than backend testing because it spans UI, platform APIs, and network. Clear tiers prevent confusion about what to test where.
228
-
229
- ---
230
-
231
- ## F12. App Distribution
232
-
233
- - **Rule**: Version code/number must be incremented for every build submitted to store.
234
- - **Rule**: Staged rollout: 10% → 50% → 100% over 48 hours. Monitor crash rate at each stage.
235
- - **Rule**: Release notes must be localized for all supported languages.
236
- - **Rule**: Keep a version history document: what changed, why, and the minimal OS version bump if any.
237
- - **RATIONALE**: A bad release can't be undone instantly (store rollback takes hours). Staged rollout is the cheapest insurance.
238
-
239
- ---
240
-
241
- ## F13. AI Vibecoding Baseline Constraints (project-agnostic, always active)
242
-
243
- ### F13.1 Search First
244
- - **Rule**: Before creating a new widget/component/screen, AI must search existing code for similar implementations.
245
- - **Rule**: Before adding a new dependency, AI must check if an existing dependency already covers that use case.
246
-
247
- ### F13.2 Platform Awareness
248
- - **Rule**: AI must know which platform it's writing code for. iOS patterns in Android code (or vice versa) must be flagged explicitly.
249
- - **Rule**: AI-generated code that uses platform-specific APIs must include the API level/iOS version availability annotation.
250
-
251
- ### F13.3 Dependency Control
252
- - **Rule**: AI must not modify `pubspec.yaml` / `package.json` / `Podfile` / `build.gradle` on its own.
253
- - **Rule**: If a new dependency is needed, AI must list: package name, version, reason, alternative comparison.
254
-
255
- ### F13.4 Breaking Changes
256
- - **Rule**: Before modifying a shared widget/component/utility, AI must list all callers and assess platform impact.
257
- - **Rule**: Changing navigation routes or deep link schemes requires assessing all entry points.
258
-
259
- ### F13.5 Context Honesty
260
- - **Rule**: When uncertain about a platform API availability, behavior, or deprecation status, AI must explicitly say "I'm not sure" and suggest the developer verify against the platform documentation.
261
-
262
- ### F13.6 Security
263
- - **Rule**: AI must not generate code that stores secrets in the app bundle, logs sensitive data, or disables ATS/SSL verification.
264
-
265
- ---
266
-
267
- ## Injection Instructions (for the AI executing this skill)
268
-
269
- Each chapter in this file corresponds to a `{{ FIXED_RULES_* }}` placeholder in the template:
270
-
271
- | Chapter | Inject Into Placeholder | Template Section |
272
- |---------|------------------------|-------------------|
273
- | F1 Project Structure | `{{ FIXED_RULES_STRUCTURE }}` | §1 Project Structure |
274
- | F2 UI Development | `{{ FIXED_RULES_UI }}` | §2 UI Development |
275
- | F3 Navigation | `{{ FIXED_RULES_NAVIGATION }}` | §3 Navigation & Deep Linking |
276
- | F4 State Management | `{{ FIXED_RULES_STATE }}` | §4 State Management |
277
- | F5 Networking | `{{ FIXED_RULES_NETWORKING }}` | §5 Networking |
278
- | F6 Data Persistence | `{{ FIXED_RULES_PERSISTENCE }}` | §6 Data Persistence |
279
- | F7 Platform Features | `{{ FIXED_RULES_PLATFORM_FEATURES }}` | §7 Platform Features |
280
- | F8 Performance | `{{ FIXED_RULES_PERFORMANCE }}` | §8 Performance |
281
- | F9 Accessibility | `{{ FIXED_RULES_A11Y }}` | §9 Accessibility |
282
- | F10 Security | `{{ FIXED_RULES_SECURITY }}` | §10 Security |
283
- | F11 Testing | `{{ FIXED_RULES_TEST }}` | §11 Testing |
284
- | F12 Distribution | `{{ FIXED_RULES_DISTRIBUTION }}` | §12 Distribution |
285
- | F13 AI Constraints | `{{ FIXED_RULES_AI_BASE }}` | §13 AI Behavior Constraints |
286
-
287
- **Rendering rules**:
288
- 1. Copy each chapter's full body (including RATIONALE) directly into the corresponding placeholder.
289
- 2. RATIONALE must be preserved — it lets AI understand intent rather than follow mechanically.
290
- 3. Keep the original markdown list structure. Do not rewrite as prose paragraphs.
117
+ Copy each invariant block only into its named placeholder. In dual-native mode, evaluate every derived rule against the iOS or Android profile it belongs to. If a rule cannot be assigned unambiguously, fail generation rather than applying it to both platforms.
@@ -11,14 +11,14 @@
11
11
  1. **Group order**: G1 → G2 → G3 → G4 → G5 → G6 → G7 → G8 → G9 → G10. Do not skip.
12
12
  2. **Shortcut commands** (respond immediately when user types these at any point):
13
13
  - `recommended` / `default` → skip current group, adopt all recommended options
14
- - `all recommended` / `one-click` → skip all remaining groups, adopt all recommended options
14
+ - `all recommended` / `one-click` → explicit authorization to adopt each remaining applicable recommended option; ask any question whose recommendation is ambiguous for the active platform profile
15
15
  - `strict` / `strictest` → adopt the strictest option for the current group
16
16
  - `skip` / `don't need this` → mark current group as N/A
17
17
  - `custom: xxx` → record user's custom content
18
18
  3. **Abbreviation recognition**: `A` / `a` / `1` all mean option A. `A,C` means multi-select (only for multi-select questions).
19
19
  4. **Follow-up rule**: If the user gives an answer outside the options, first confirm whether to classify as an "other" branch.
20
20
  5. **Forbidden behaviors**:
21
- - Must not make choices for the user before they explicitly answer.
21
+ - Must not make choices for the user before they explicitly answer, except concrete defaults covered by the user's explicit Quick/all-recommended authorization.
22
22
  - Must not fabricate user preferences to complete the answer set.
23
23
  - Must not output more than 3 questions in a single message.
24
24
 
@@ -53,15 +53,15 @@ Total: 20 questions.
53
53
  - D) Android native (Kotlin)
54
54
  - E) Both native (Swift + Kotlin, separate codebases)
55
55
  - **Note**: Determines all subsequent framework, tooling, and platform-specific rule injections.
56
- - **Dual-native note**: If Q1=E (Both native): present Q4/Q6/Q7/Q8/Q13/Q14 for iOS first, then ask the user if they want to repeat for Android (or apply same choices).
56
+ - **Dual-native contract**: If Q1=E, collect Q4/Q6/Q7/Q8/Q13/Q14 separately for iOS and Android. Store two named answer profiles and render both through `{{ platform_profiles }}`; never collapse one profile into scalar values or copy an option across platforms unless the user explicitly selects equivalent meanings for both.
57
57
  - **Maps to**: `{{ platform }}` + `{{ tech_stack_rules }}`
58
58
 
59
59
  ### Q2. Minimum OS Version
60
60
  - **Options**:
61
- - A) Latest - 1 (iOS 17+ / Android 14+) **【Recommended: covers ~90% of active devices】**
62
- - B) Latest - 2 (iOS 16+ / Android 13+)
63
- - C) Latest - 3 (wider compatibility, more legacy handling)
64
- - **Note**: Determines API availability and deprecation handling rules.
61
+ - A) Latest stable major release minus 1 **【Recommended: balanced active-device coverage】**
62
+ - B) Latest stable major release minus 2
63
+ - C) Latest stable major release minus 3 (wider compatibility, more legacy handling)
64
+ - **Note**: Resolve concrete iOS and Android versions from current stable releases when generating the file; record both the relative policy and resolved versions instead of preserving stale version examples in this question bank.
65
65
  - **Maps to**: `{{ min_os_version }}` + `{{ tech_stack_rules }}`
66
66
 
67
67
  ---
@@ -83,7 +83,7 @@ Total: 20 questions.
83
83
 
84
84
  ### Q4. UI Framework (varies by Q1)
85
85
  - **For Flutter**: A) Material Design 3 **【Recommended】** — B) Cupertino (iOS-style) — C) Adaptive (auto-switch by platform)
86
- - **For React Native**: A) React Native core components + StyleSheet **【Recommended】** — B) Tamagui / NativeWind — C) Custom design system
86
+ - **For React Native**: A) React Native core components + StyleSheet **【Recommended】** — B) Tamagui C) NativeWind — D) Custom design system
87
87
  - **For iOS**: A) SwiftUI **【Recommended: modern, declarative】** — B) UIKit (programmatic) — C) UIKit + Storyboards
88
88
  - **For Android**: A) Jetpack Compose **【Recommended: modern, declarative】** — B) XML + Material 3 — C) Hybrid (Compose + Views)
89
89
  - **Maps to**: `{{ ui_framework }}` + `{{ ui_rules }}`
@@ -131,16 +131,16 @@ Total: 20 questions.
131
131
 
132
132
  ### Q9. Push Notifications
133
133
  - **Options**:
134
- - A) Yes, needed (remote push via FCM/APNs) **【Recommended: production apps】**
135
- - B) Not required yet
136
- - **Note**: Determines notification channel configuration, token management, and foreground/background handling rules.
134
+ - A) Yes, required by a confirmed product flow (remote push through active platform services)
135
+ - B) Not required **【Recommended when no notification use case is established】**
136
+ - **Note**: Determines channel configuration, token lifecycle, consent, and foreground/background handling. Quick mode must not add push infrastructure because an app is intended for production.
137
137
  - **Maps to**: `{{ push_notifications }}` + `{{ platform_features_rules }}`
138
138
 
139
139
  ### Q10. Background Tasks
140
140
  - **Options**:
141
- - A) Yes, needed (data sync, file upload, periodic refresh) **【Recommended: data-heavy apps】**
142
- - B) Not required
143
- - **Note**: Determines background execution constraints, battery optimization, and platform-specific background mode rules.
141
+ - A) Yes, required by a confirmed sync, transfer, processing, or refresh flow
142
+ - B) Not required **【Recommended when no background-owned work is established】**
143
+ - **Note**: Determines background execution, retry, termination, battery, and platform-specific capability rules. Quick mode must not invent background work.
144
144
  - **Maps to**: `{{ background_tasks }}` + `{{ platform_features_rules }}`
145
145
 
146
146
  ### Q11. Permissions Strategy
@@ -182,10 +182,10 @@ Total: 20 questions.
182
182
 
183
183
  ### Q15. Distribution Method
184
184
  - **Options**:
185
- - A) App Store (TestFlight) + Google Play (Internal Testing) **【Recommended】**
185
+ - A) Applicable public stores for active profiles **【Recommended】** — App Store/TestFlight for iOS; Google Play testing/release tracks for Android
186
186
  - B) Enterprise / internal distribution (MDM / private store)
187
- - C) Not determined yet (development phase)
188
- - **Note**: Determines code signing, version management, staged rollout, and app review guideline rules.
187
+ - C) Not determined yet (development phase) **【Recommended when no release channel has been confirmed】**
188
+ - **Note**: A single-platform project receives only its platform's distribution rules. Dual-native projects render both public-store profiles. Rollout percentages and observation windows are selected from product risk rather than hardcoded here. Quick mode cannot assume public distribution from `mobile` alone.
189
189
  - **Maps to**: `{{ distribution }}` + `{{ distribution_rules }}`
190
190
 
191
191
  ---
@@ -1,9 +1,24 @@
1
1
  {
2
- "schema_version": "app-planner-question-manifest-v1",
2
+ "schema_version": "app-planner-question-manifest-v2",
3
3
  "layer": "mobile",
4
4
  "total_questions": 20,
5
5
  "_doc": "Machine-readable structure for mobile question-bank.md. Question TEXT/options/Recommended/Notes are authoritative in question-bank.md; this file carries ONLY structure: group membership, quick-mode, question->placeholder mapping, and conditional logic. Keep Qids and group ids in sync with question-bank.md. The AI reads this as its asking checklist (Phase A) and self-check expected-set (Phase D).",
6
6
  "_conditions": "required_if / auto_derived_when use simple expressions over recorded answers, e.g. 'Q12 in [A, B]'. options_vary_by names a prior answer that changes the OPTION LIST only (question is still asked; never affects required). dual_native_repeat_when notes Q1=E (both native) repeats the question per platform.",
7
+ "render_contract": {
8
+ "fixed_rules_policy": "invariants_only",
9
+ "selected_decision_precedence": true,
10
+ "quick_mode_requires_explicit_authorization": true,
11
+ "unmapped_option_policy": "semantic_fallback",
12
+ "not_applicable_policy": "explicit_statement",
13
+ "conflict_policy": "fail_generation",
14
+ "semantic_fallback_questions": ["Q1", "Q2", "Q3", "Q4", "Q5", "Q6", "Q7", "Q8", "Q9", "Q10", "Q11", "Q12", "Q13", "Q14", "Q15", "Q16", "Q17", "Q18", "Q19", "Q20"]
15
+ },
16
+ "multi_profile_contract": {
17
+ "when": "Q1 == E",
18
+ "dimensions": ["Q4", "Q6", "Q7", "Q8", "Q13", "Q14"],
19
+ "profiles": ["ios", "android"],
20
+ "output_placeholder": "platform_profiles"
21
+ },
7
22
  "groups": [
8
23
  { "id": "G1", "topic": "Platform & Language", "quick_mode": true },
9
24
  { "id": "G2", "topic": "Architecture", "quick_mode": true },
@@ -41,7 +56,7 @@
41
56
  "template_placeholders": {
42
57
  "from_questions": ["platform", "tech_stack_rules", "min_os_version", "architecture", "arch_rules", "ui_framework", "ui_rules", "navigation", "navigation_rules", "state_management", "state_rules", "networking", "networking_rules", "persistence", "persistence_rules", "push_notifications", "platform_features_rules", "background_tasks", "permissions_strategy", "test_coverage", "test_rules", "unit_test_framework", "e2e_framework", "distribution", "distribution_rules", "performance_target", "performance_rules", "a11y_target", "a11y_rules", "ai_dependency_rule", "ai_breaking_change_rule", "ai_platform_rule"],
43
58
  "from_fixed_rules": ["FIXED_RULES_A11Y", "FIXED_RULES_AI_BASE", "FIXED_RULES_DISTRIBUTION", "FIXED_RULES_NAVIGATION", "FIXED_RULES_NETWORKING", "FIXED_RULES_PERFORMANCE", "FIXED_RULES_PERSISTENCE", "FIXED_RULES_PLATFORM_FEATURES", "FIXED_RULES_SECURITY", "FIXED_RULES_STATE", "FIXED_RULES_STRUCTURE", "FIXED_RULES_TEST", "FIXED_RULES_UI"],
44
- "auto_generated": ["deny_list_summary", "recommended_libs"],
59
+ "auto_generated": ["deny_list_summary", "recommended_libs", "platform_profiles"],
45
60
  "metadata": ["project_name", "generated_at"]
46
61
  }
47
62
  }