pumuki 6.3.246 → 6.3.248
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/CHANGELOG.md +14 -0
- package/core/facts/detectors/text/ios.test.ts +112 -0
- package/core/facts/detectors/text/ios.ts +62 -0
- package/core/facts/extractHeuristicFacts.ts +3 -0
- package/core/rules/presets/heuristics/ios.test.ts +16 -1
- package/core/rules/presets/heuristics/ios.ts +57 -0
- package/docs/operations/RELEASE_NOTES.md +7 -0
- package/integrations/config/skillsCompilerTemplates.ts +10 -0
- package/integrations/config/skillsDetectorRegistry.ts +18 -24
- package/integrations/config/skillsMarkdownRules.ts +143 -9
- package/integrations/gate/evaluateAiGate.ts +3 -2
- package/package.json +1 -1
- package/scripts/framework-menu-gate-lib.ts +5 -0
- package/scripts/framework-menu-system-notifications-gate.ts +13 -1
- package/scripts/package-install-smoke-consumer-git-payload-lib.ts +6 -2
- package/scripts/package-install-smoke-consumer-git-repo-lib.ts +1 -1
- package/skills.lock.json +112 -195
package/skills.lock.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": "1.0",
|
|
3
3
|
"compilerVersion": "1.0.0",
|
|
4
|
-
"generatedAt": "2026-05-
|
|
4
|
+
"generatedAt": "2026-05-14T09:20:03.683Z",
|
|
5
5
|
"bundles": [
|
|
6
6
|
{
|
|
7
7
|
"name": "android-guidelines",
|
|
@@ -5387,7 +5387,7 @@
|
|
|
5387
5387
|
"name": "ios-concurrency-guidelines",
|
|
5388
5388
|
"version": "1.0.0",
|
|
5389
5389
|
"source": "file:vendor/skills/swift-concurrency/SKILL.md",
|
|
5390
|
-
"hash": "
|
|
5390
|
+
"hash": "38629be89a118780cf411e11520b34fe1aee005a38703ef4793ff37eecd10dfa",
|
|
5391
5391
|
"rules": [
|
|
5392
5392
|
{
|
|
5393
5393
|
"id": "skills.ios.guideline.ios-concurrency.async-sequences-md-asyncsequence-asyncstream-when-to-use-vs-regular-as",
|
|
@@ -5401,18 +5401,6 @@
|
|
|
5401
5401
|
"evaluationMode": "DECLARATIVE",
|
|
5402
5402
|
"origin": "core"
|
|
5403
5403
|
},
|
|
5404
|
-
{
|
|
5405
|
-
"id": "skills.ios.guideline.ios-concurrency.remove-async-if-not-required-if-required-by-protocol-override-concurre",
|
|
5406
|
-
"description": "Remove async if not required; if required by protocol/override/@concurrent, prefer narrow suppression over adding fake awaits. See references/linting.md.",
|
|
5407
|
-
"severity": "ERROR",
|
|
5408
|
-
"platform": "ios",
|
|
5409
|
-
"sourceSkill": "ios-concurrency-guidelines",
|
|
5410
|
-
"sourcePath": "vendor/skills/swift-concurrency/SKILL.md",
|
|
5411
|
-
"confidence": "HIGH",
|
|
5412
|
-
"locked": true,
|
|
5413
|
-
"evaluationMode": "DECLARATIVE",
|
|
5414
|
-
"origin": "core"
|
|
5415
|
-
},
|
|
5416
5404
|
{
|
|
5417
5405
|
"id": "skills.ios.guideline.ios-concurrency.then-use-references-actors-md-global-actors-nonisolated-isolated-param",
|
|
5418
5406
|
"description": "Then: use references/actors.md (global actors, nonisolated, isolated parameters) and references/threading.md (default isolation)",
|
|
@@ -5522,6 +5510,19 @@
|
|
|
5522
5510
|
"evaluationMode": "AUTO",
|
|
5523
5511
|
"origin": "core"
|
|
5524
5512
|
},
|
|
5513
|
+
{
|
|
5514
|
+
"id": "skills.ios.no-async-without-await",
|
|
5515
|
+
"description": "Avoid private async functions without await; remove async unless a protocol or override boundary requires it.",
|
|
5516
|
+
"severity": "WARN",
|
|
5517
|
+
"platform": "ios",
|
|
5518
|
+
"confidence": "MEDIUM",
|
|
5519
|
+
"stage": "PRE_PUSH",
|
|
5520
|
+
"locked": true,
|
|
5521
|
+
"sourceSkill": "ios-concurrency-guidelines",
|
|
5522
|
+
"sourcePath": "vendor/skills/swift-concurrency/SKILL.md",
|
|
5523
|
+
"evaluationMode": "AUTO",
|
|
5524
|
+
"origin": "core"
|
|
5525
|
+
},
|
|
5525
5526
|
{
|
|
5526
5527
|
"id": "skills.ios.no-dispatchgroup",
|
|
5527
5528
|
"description": "Avoid DispatchGroup in production iOS code; prefer TaskGroup.",
|
|
@@ -5644,56 +5645,8 @@
|
|
|
5644
5645
|
"name": "ios-core-data-guidelines",
|
|
5645
5646
|
"version": "1.0.0",
|
|
5646
5647
|
"source": "file:vendor/skills/core-data-expert/SKILL.md",
|
|
5647
|
-
"hash": "
|
|
5648
|
+
"hash": "a84487522605588f76e31278324b5153f2a437ba2ac56f972f24e1a7226c4365",
|
|
5648
5649
|
"rules": [
|
|
5649
|
-
{
|
|
5650
|
-
"id": "skills.ios.guideline.ios-core-data.make-context-ownership-explicit-and-keep-merge-boundaries-controlled",
|
|
5651
|
-
"description": "Make context ownership explicit and keep merge boundaries controlled.",
|
|
5652
|
-
"severity": "WARN",
|
|
5653
|
-
"platform": "ios",
|
|
5654
|
-
"sourceSkill": "ios-core-data-guidelines",
|
|
5655
|
-
"sourcePath": "vendor/skills/core-data-expert/SKILL.md",
|
|
5656
|
-
"confidence": "MEDIUM",
|
|
5657
|
-
"locked": true,
|
|
5658
|
-
"evaluationMode": "DECLARATIVE",
|
|
5659
|
-
"origin": "core"
|
|
5660
|
-
},
|
|
5661
|
-
{
|
|
5662
|
-
"id": "skills.ios.guideline.ios-core-data.pass-nsmanagedobjectid-when-a-different-context-must-resolve-the-entit",
|
|
5663
|
-
"description": "Pass NSManagedObjectID when a different context must resolve the entity later.",
|
|
5664
|
-
"severity": "ERROR",
|
|
5665
|
-
"platform": "ios",
|
|
5666
|
-
"sourceSkill": "ios-core-data-guidelines",
|
|
5667
|
-
"sourcePath": "vendor/skills/core-data-expert/SKILL.md",
|
|
5668
|
-
"confidence": "HIGH",
|
|
5669
|
-
"locked": true,
|
|
5670
|
-
"evaluationMode": "DECLARATIVE",
|
|
5671
|
-
"origin": "core"
|
|
5672
|
-
},
|
|
5673
|
-
{
|
|
5674
|
-
"id": "skills.ios.guideline.ios-core-data.treat-managed-objects-as-context-scoped-references-not-as-portable-dom",
|
|
5675
|
-
"description": "Treat managed objects as context-scoped references, not as portable domain entities.",
|
|
5676
|
-
"severity": "WARN",
|
|
5677
|
-
"platform": "ios",
|
|
5678
|
-
"sourceSkill": "ios-core-data-guidelines",
|
|
5679
|
-
"sourcePath": "vendor/skills/core-data-expert/SKILL.md",
|
|
5680
|
-
"confidence": "MEDIUM",
|
|
5681
|
-
"locked": true,
|
|
5682
|
-
"evaluationMode": "DECLARATIVE",
|
|
5683
|
-
"origin": "core"
|
|
5684
|
-
},
|
|
5685
|
-
{
|
|
5686
|
-
"id": "skills.ios.guideline.ios-core-data.use-repositories-that-map-managed-objects-into-domain-models-before-cr",
|
|
5687
|
-
"description": "Use repositories that map managed objects into domain models before crossing module boundaries.",
|
|
5688
|
-
"severity": "WARN",
|
|
5689
|
-
"platform": "ios",
|
|
5690
|
-
"sourceSkill": "ios-core-data-guidelines",
|
|
5691
|
-
"sourcePath": "vendor/skills/core-data-expert/SKILL.md",
|
|
5692
|
-
"confidence": "MEDIUM",
|
|
5693
|
-
"locked": true,
|
|
5694
|
-
"evaluationMode": "DECLARATIVE",
|
|
5695
|
-
"origin": "core"
|
|
5696
|
-
},
|
|
5697
5650
|
{
|
|
5698
5651
|
"id": "skills.ios.no-core-data-layer-leak",
|
|
5699
5652
|
"description": "Keep Core Data orchestration inside infrastructure or repository layers; avoid Core Data APIs in application or presentation code.",
|
|
@@ -5764,8 +5717,20 @@
|
|
|
5764
5717
|
"name": "ios-guidelines",
|
|
5765
5718
|
"version": "1.0.0",
|
|
5766
5719
|
"source": "file:vendor/skills/ios-enterprise-rules/SKILL.md",
|
|
5767
|
-
"hash": "
|
|
5720
|
+
"hash": "3eb1d2a79500bce846244c510c96e83ef1b0046695eb4ff7dc506dbd94d10154",
|
|
5768
5721
|
"rules": [
|
|
5722
|
+
{
|
|
5723
|
+
"id": "skills.ios.guideline.ios-swiftui-expert.use-lazyvstack-lazyhstack-for-large-lists",
|
|
5724
|
+
"description": "LazyVStack/LazyHStack - Para listas grandes",
|
|
5725
|
+
"severity": "WARN",
|
|
5726
|
+
"platform": "ios",
|
|
5727
|
+
"sourceSkill": "ios-guidelines",
|
|
5728
|
+
"sourcePath": "vendor/skills/ios-enterprise-rules/SKILL.md",
|
|
5729
|
+
"confidence": "MEDIUM",
|
|
5730
|
+
"locked": true,
|
|
5731
|
+
"evaluationMode": "AUTO",
|
|
5732
|
+
"origin": "core"
|
|
5733
|
+
},
|
|
5769
5734
|
{
|
|
5770
5735
|
"id": "skills.ios.guideline.ios-swiftui-expert.use-navigationdestination-for-for-type-safe-navigation",
|
|
5771
5736
|
"description": "navigationDestination(for:) - Destinos tipados",
|
|
@@ -5970,6 +5935,18 @@
|
|
|
5970
5935
|
"evaluationMode": "DECLARATIVE",
|
|
5971
5936
|
"origin": "core"
|
|
5972
5937
|
},
|
|
5938
|
+
{
|
|
5939
|
+
"id": "skills.ios.guideline.ios.automatic-plural-handling-en-string-catalogs",
|
|
5940
|
+
"description": "Automatic plural handling - En String Catalogs",
|
|
5941
|
+
"severity": "WARN",
|
|
5942
|
+
"platform": "ios",
|
|
5943
|
+
"sourceSkill": "ios-guidelines",
|
|
5944
|
+
"sourcePath": "vendor/skills/ios-enterprise-rules/SKILL.md",
|
|
5945
|
+
"confidence": "MEDIUM",
|
|
5946
|
+
"locked": true,
|
|
5947
|
+
"evaluationMode": "DECLARATIVE",
|
|
5948
|
+
"origin": "core"
|
|
5949
|
+
},
|
|
5973
5950
|
{
|
|
5974
5951
|
"id": "skills.ios.guideline.ios.avoid-over-use-async-await-ma-s-simple-para-single-values",
|
|
5975
5952
|
"description": "Avoid over-use - async/await más simple para single values",
|
|
@@ -6087,7 +6064,7 @@
|
|
|
6087
6064
|
"sourcePath": "vendor/skills/ios-enterprise-rules/SKILL.md",
|
|
6088
6065
|
"confidence": "HIGH",
|
|
6089
6066
|
"locked": true,
|
|
6090
|
-
"evaluationMode": "
|
|
6067
|
+
"evaluationMode": "AUTO",
|
|
6091
6068
|
"origin": "core"
|
|
6092
6069
|
},
|
|
6093
6070
|
{
|
|
@@ -6138,28 +6115,16 @@
|
|
|
6138
6115
|
"evaluationMode": "DECLARATIVE",
|
|
6139
6116
|
"origin": "core"
|
|
6140
6117
|
},
|
|
6141
|
-
{
|
|
6142
|
-
"id": "skills.ios.guideline.ios.codable-decodificacio-n-automa-tica-de-json-nunca-jsonserialization",
|
|
6143
|
-
"description": "Codable - Decodificación automática de JSON (nunca JSONSerialization)",
|
|
6144
|
-
"severity": "ERROR",
|
|
6145
|
-
"platform": "ios",
|
|
6146
|
-
"sourceSkill": "ios-guidelines",
|
|
6147
|
-
"sourcePath": "vendor/skills/ios-enterprise-rules/SKILL.md",
|
|
6148
|
-
"confidence": "MEDIUM",
|
|
6149
|
-
"locked": true,
|
|
6150
|
-
"evaluationMode": "DECLARATIVE",
|
|
6151
|
-
"origin": "core"
|
|
6152
|
-
},
|
|
6153
6118
|
{
|
|
6154
6119
|
"id": "skills.ios.guideline.ios.codable-para-serializacio-n-json-nunca-jsonserialization",
|
|
6155
|
-
"description": "Codable
|
|
6120
|
+
"description": "Codable - Decodificación automática de JSON (nunca JSONSerialization)",
|
|
6156
6121
|
"severity": "ERROR",
|
|
6157
6122
|
"platform": "ios",
|
|
6158
6123
|
"sourceSkill": "ios-guidelines",
|
|
6159
6124
|
"sourcePath": "vendor/skills/ios-enterprise-rules/SKILL.md",
|
|
6160
6125
|
"confidence": "MEDIUM",
|
|
6161
6126
|
"locked": true,
|
|
6162
|
-
"evaluationMode": "
|
|
6127
|
+
"evaluationMode": "AUTO",
|
|
6163
6128
|
"origin": "core"
|
|
6164
6129
|
},
|
|
6165
6130
|
{
|
|
@@ -6392,7 +6357,7 @@
|
|
|
6392
6357
|
},
|
|
6393
6358
|
{
|
|
6394
6359
|
"id": "skills.ios.guideline.ios.dynamic-type-font-scaling-automa-tico",
|
|
6395
|
-
"description": "Dynamic Type -
|
|
6360
|
+
"description": "Dynamic Type - Font scaling automático",
|
|
6396
6361
|
"severity": "WARN",
|
|
6397
6362
|
"platform": "ios",
|
|
6398
6363
|
"sourceSkill": "ios-guidelines",
|
|
@@ -6403,15 +6368,15 @@
|
|
|
6403
6368
|
"origin": "core"
|
|
6404
6369
|
},
|
|
6405
6370
|
{
|
|
6406
|
-
"id": "skills.ios.guideline.ios.
|
|
6407
|
-
"description": "
|
|
6371
|
+
"id": "skills.ios.guideline.ios.dynamic-type-fuentes-escalables-y-layouts-adaptativos",
|
|
6372
|
+
"description": "Dynamic Type - fuentes escalables y layouts adaptativos",
|
|
6408
6373
|
"severity": "WARN",
|
|
6409
6374
|
"platform": "ios",
|
|
6410
6375
|
"sourceSkill": "ios-guidelines",
|
|
6411
6376
|
"sourcePath": "vendor/skills/ios-enterprise-rules/SKILL.md",
|
|
6412
6377
|
"confidence": "MEDIUM",
|
|
6413
6378
|
"locked": true,
|
|
6414
|
-
"evaluationMode": "
|
|
6379
|
+
"evaluationMode": "AUTO",
|
|
6415
6380
|
"origin": "core"
|
|
6416
6381
|
},
|
|
6417
6382
|
{
|
|
@@ -6811,28 +6776,16 @@
|
|
|
6811
6776
|
"evaluationMode": "DECLARATIVE",
|
|
6812
6777
|
"origin": "core"
|
|
6813
6778
|
},
|
|
6814
|
-
{
|
|
6815
|
-
"id": "skills.ios.guideline.ios.jsonserialization-prohibido-usar-codable",
|
|
6816
|
-
"description": "JSONSerialization - Prohibido, usar Codable",
|
|
6817
|
-
"severity": "ERROR",
|
|
6818
|
-
"platform": "ios",
|
|
6819
|
-
"sourceSkill": "ios-guidelines",
|
|
6820
|
-
"sourcePath": "vendor/skills/ios-enterprise-rules/SKILL.md",
|
|
6821
|
-
"confidence": "HIGH",
|
|
6822
|
-
"locked": true,
|
|
6823
|
-
"evaluationMode": "DECLARATIVE",
|
|
6824
|
-
"origin": "core"
|
|
6825
|
-
},
|
|
6826
6779
|
{
|
|
6827
6780
|
"id": "skills.ios.guideline.ios.keychain-passwords-tokens-no-userdefaults",
|
|
6828
|
-
"description": "
|
|
6781
|
+
"description": "En producción ni un mocks ni un spies - Todo real de APIs y persistencia (Core Data, UserDefaults, Keychain)",
|
|
6829
6782
|
"severity": "WARN",
|
|
6830
6783
|
"platform": "ios",
|
|
6831
6784
|
"sourceSkill": "ios-guidelines",
|
|
6832
6785
|
"sourcePath": "vendor/skills/ios-enterprise-rules/SKILL.md",
|
|
6833
6786
|
"confidence": "MEDIUM",
|
|
6834
6787
|
"locked": true,
|
|
6835
|
-
"evaluationMode": "
|
|
6788
|
+
"evaluationMode": "AUTO",
|
|
6836
6789
|
"origin": "core"
|
|
6837
6790
|
},
|
|
6838
6791
|
{
|
|
@@ -6859,30 +6812,6 @@
|
|
|
6859
6812
|
"evaluationMode": "DECLARATIVE",
|
|
6860
6813
|
"origin": "core"
|
|
6861
6814
|
},
|
|
6862
|
-
{
|
|
6863
|
-
"id": "skills.ios.guideline.ios.lazy-loading-lazyvstack-on-demand-data",
|
|
6864
|
-
"description": "Lazy loading - LazyVStack, on-demand data",
|
|
6865
|
-
"severity": "WARN",
|
|
6866
|
-
"platform": "ios",
|
|
6867
|
-
"sourceSkill": "ios-guidelines",
|
|
6868
|
-
"sourcePath": "vendor/skills/ios-enterprise-rules/SKILL.md",
|
|
6869
|
-
"confidence": "MEDIUM",
|
|
6870
|
-
"locked": true,
|
|
6871
|
-
"evaluationMode": "DECLARATIVE",
|
|
6872
|
-
"origin": "core"
|
|
6873
|
-
},
|
|
6874
|
-
{
|
|
6875
|
-
"id": "skills.ios.guideline.ios.lazyvstack-lazyhstack-para-listas-grandes",
|
|
6876
|
-
"description": "LazyVStack/LazyHStack - Para listas grandes",
|
|
6877
|
-
"severity": "WARN",
|
|
6878
|
-
"platform": "ios",
|
|
6879
|
-
"sourceSkill": "ios-guidelines",
|
|
6880
|
-
"sourcePath": "vendor/skills/ios-enterprise-rules/SKILL.md",
|
|
6881
|
-
"confidence": "MEDIUM",
|
|
6882
|
-
"locked": true,
|
|
6883
|
-
"evaluationMode": "DECLARATIVE",
|
|
6884
|
-
"origin": "core"
|
|
6885
|
-
},
|
|
6886
6815
|
{
|
|
6887
6816
|
"id": "skills.ios.guideline.ios.libreri-as-de-terceros-usar-apis-nativas",
|
|
6888
6817
|
"description": "Librerías de terceros - Usar APIs nativas",
|
|
@@ -6909,14 +6838,14 @@
|
|
|
6909
6838
|
},
|
|
6910
6839
|
{
|
|
6911
6840
|
"id": "skills.ios.guideline.ios.localizable-strings-deprecado-usar-string-catalogs",
|
|
6912
|
-
"description": "String Catalogs
|
|
6913
|
-
"severity": "
|
|
6841
|
+
"description": "Localizable.strings - Deprecado, usar String Catalogs",
|
|
6842
|
+
"severity": "ERROR",
|
|
6914
6843
|
"platform": "ios",
|
|
6915
6844
|
"sourceSkill": "ios-guidelines",
|
|
6916
6845
|
"sourcePath": "vendor/skills/ios-enterprise-rules/SKILL.md",
|
|
6917
|
-
"confidence": "
|
|
6846
|
+
"confidence": "HIGH",
|
|
6918
6847
|
"locked": true,
|
|
6919
|
-
"evaluationMode": "
|
|
6848
|
+
"evaluationMode": "DECLARATIVE",
|
|
6920
6849
|
"origin": "core"
|
|
6921
6850
|
},
|
|
6922
6851
|
{
|
|
@@ -7063,30 +6992,6 @@
|
|
|
7063
6992
|
"evaluationMode": "DECLARATIVE",
|
|
7064
6993
|
"origin": "core"
|
|
7065
6994
|
},
|
|
7066
|
-
{
|
|
7067
|
-
"id": "skills.ios.guideline.ios.navigationstack-navigationpath-con-rutas-tipadas",
|
|
7068
|
-
"description": "NavigationStack + NavigationPath con rutas tipadas",
|
|
7069
|
-
"severity": "WARN",
|
|
7070
|
-
"platform": "ios",
|
|
7071
|
-
"sourceSkill": "ios-guidelines",
|
|
7072
|
-
"sourcePath": "vendor/skills/ios-enterprise-rules/SKILL.md",
|
|
7073
|
-
"confidence": "MEDIUM",
|
|
7074
|
-
"locked": true,
|
|
7075
|
-
"evaluationMode": "DECLARATIVE",
|
|
7076
|
-
"origin": "core"
|
|
7077
|
-
},
|
|
7078
|
-
{
|
|
7079
|
-
"id": "skills.ios.guideline.ios.navigationstack-navigationpath-para-navegacio-n-moderna",
|
|
7080
|
-
"description": "NavigationStack + NavigationPath - Para navegación moderna",
|
|
7081
|
-
"severity": "WARN",
|
|
7082
|
-
"platform": "ios",
|
|
7083
|
-
"sourceSkill": "ios-guidelines",
|
|
7084
|
-
"sourcePath": "vendor/skills/ios-enterprise-rules/SKILL.md",
|
|
7085
|
-
"confidence": "MEDIUM",
|
|
7086
|
-
"locked": true,
|
|
7087
|
-
"evaluationMode": "DECLARATIVE",
|
|
7088
|
-
"origin": "core"
|
|
7089
|
-
},
|
|
7090
6995
|
{
|
|
7091
6996
|
"id": "skills.ios.guideline.ios.network-layer-abstrai-do-apiclient-protocol-en-domain",
|
|
7092
6997
|
"description": "Network layer abstraído - APIClient protocol en Domain",
|
|
@@ -7132,7 +7037,7 @@
|
|
|
7132
7037
|
"sourcePath": "vendor/skills/ios-enterprise-rules/SKILL.md",
|
|
7133
7038
|
"confidence": "MEDIUM",
|
|
7134
7039
|
"locked": true,
|
|
7135
|
-
"evaluationMode": "
|
|
7040
|
+
"evaluationMode": "AUTO",
|
|
7136
7041
|
"origin": "core"
|
|
7137
7042
|
},
|
|
7138
7043
|
{
|
|
@@ -7219,18 +7124,6 @@
|
|
|
7219
7124
|
"evaluationMode": "DECLARATIVE",
|
|
7220
7125
|
"origin": "core"
|
|
7221
7126
|
},
|
|
7222
|
-
{
|
|
7223
|
-
"id": "skills.ios.guideline.ios.onchange-of-con-variante-de-2-para-metros-o-sin-para-metros",
|
|
7224
|
-
"description": "onChange(of:) con variante de 2 parámetros o sin parámetros",
|
|
7225
|
-
"severity": "WARN",
|
|
7226
|
-
"platform": "ios",
|
|
7227
|
-
"sourceSkill": "ios-guidelines",
|
|
7228
|
-
"sourcePath": "vendor/skills/ios-enterprise-rules/SKILL.md",
|
|
7229
|
-
"confidence": "MEDIUM",
|
|
7230
|
-
"locked": true,
|
|
7231
|
-
"evaluationMode": "DECLARATIVE",
|
|
7232
|
-
"origin": "core"
|
|
7233
|
-
},
|
|
7234
7127
|
{
|
|
7235
7128
|
"id": "skills.ios.guideline.ios.opaque-types-some-view-some-publisher-cuando-sea-apropiado",
|
|
7236
7129
|
"description": "Opaque types - some View, some Publisher cuando sea apropiado",
|
|
@@ -7348,7 +7241,7 @@
|
|
|
7348
7241
|
"sourcePath": "vendor/skills/ios-enterprise-rules/SKILL.md",
|
|
7349
7242
|
"confidence": "MEDIUM",
|
|
7350
7243
|
"locked": true,
|
|
7351
|
-
"evaluationMode": "
|
|
7244
|
+
"evaluationMode": "AUTO",
|
|
7352
7245
|
"origin": "core"
|
|
7353
7246
|
},
|
|
7354
7247
|
{
|
|
@@ -7540,7 +7433,7 @@
|
|
|
7540
7433
|
"sourcePath": "vendor/skills/ios-enterprise-rules/SKILL.md",
|
|
7541
7434
|
"confidence": "HIGH",
|
|
7542
7435
|
"locked": true,
|
|
7543
|
-
"evaluationMode": "
|
|
7436
|
+
"evaluationMode": "AUTO",
|
|
7544
7437
|
"origin": "core"
|
|
7545
7438
|
},
|
|
7546
7439
|
{
|
|
@@ -7696,7 +7589,7 @@
|
|
|
7696
7589
|
"sourcePath": "vendor/skills/ios-enterprise-rules/SKILL.md",
|
|
7697
7590
|
"confidence": "HIGH",
|
|
7698
7591
|
"locked": true,
|
|
7699
|
-
"evaluationMode": "
|
|
7592
|
+
"evaluationMode": "AUTO",
|
|
7700
7593
|
"origin": "core"
|
|
7701
7594
|
},
|
|
7702
7595
|
{
|
|
@@ -7819,6 +7712,30 @@
|
|
|
7819
7712
|
"evaluationMode": "DECLARATIVE",
|
|
7820
7713
|
"origin": "core"
|
|
7821
7714
|
},
|
|
7715
|
+
{
|
|
7716
|
+
"id": "skills.ios.guideline.ios.string-catalogs-xcstrings",
|
|
7717
|
+
"description": "String Catalogs (.xcstrings)",
|
|
7718
|
+
"severity": "WARN",
|
|
7719
|
+
"platform": "ios",
|
|
7720
|
+
"sourceSkill": "ios-guidelines",
|
|
7721
|
+
"sourcePath": "vendor/skills/ios-enterprise-rules/SKILL.md",
|
|
7722
|
+
"confidence": "MEDIUM",
|
|
7723
|
+
"locked": true,
|
|
7724
|
+
"evaluationMode": "DECLARATIVE",
|
|
7725
|
+
"origin": "core"
|
|
7726
|
+
},
|
|
7727
|
+
{
|
|
7728
|
+
"id": "skills.ios.guideline.ios.string-catalogs-xcstrings-sistema-moderno-de-localizacio-n-xcode-15",
|
|
7729
|
+
"description": "String Catalogs (.xcstrings) - Sistema moderno de localización (Xcode 15+)",
|
|
7730
|
+
"severity": "WARN",
|
|
7731
|
+
"platform": "ios",
|
|
7732
|
+
"sourceSkill": "ios-guidelines",
|
|
7733
|
+
"sourcePath": "vendor/skills/ios-enterprise-rules/SKILL.md",
|
|
7734
|
+
"confidence": "MEDIUM",
|
|
7735
|
+
"locked": true,
|
|
7736
|
+
"evaluationMode": "DECLARATIVE",
|
|
7737
|
+
"origin": "core"
|
|
7738
|
+
},
|
|
7822
7739
|
{
|
|
7823
7740
|
"id": "skills.ios.guideline.ios.struct-por-defecto-class-solo-cuando-necesites-identity-o-herencia",
|
|
7824
7741
|
"description": "struct por defecto - class solo cuando necesites identity o herencia",
|
|
@@ -8080,7 +7997,7 @@
|
|
|
8080
7997
|
"sourcePath": "vendor/skills/ios-enterprise-rules/SKILL.md",
|
|
8081
7998
|
"confidence": "MEDIUM",
|
|
8082
7999
|
"locked": true,
|
|
8083
|
-
"evaluationMode": "
|
|
8000
|
+
"evaluationMode": "AUTO",
|
|
8084
8001
|
"origin": "core"
|
|
8085
8002
|
},
|
|
8086
8003
|
{
|
|
@@ -8215,18 +8132,6 @@
|
|
|
8215
8132
|
"evaluationMode": "DECLARATIVE",
|
|
8216
8133
|
"origin": "core"
|
|
8217
8134
|
},
|
|
8218
|
-
{
|
|
8219
|
-
"id": "skills.ios.guideline.ios.xctest-solo-para-proyectos-legacy-o-ui-tests",
|
|
8220
|
-
"description": "XCTest - Solo para proyectos legacy o UI tests",
|
|
8221
|
-
"severity": "WARN",
|
|
8222
|
-
"platform": "ios",
|
|
8223
|
-
"sourceSkill": "ios-guidelines",
|
|
8224
|
-
"sourcePath": "vendor/skills/ios-enterprise-rules/SKILL.md",
|
|
8225
|
-
"confidence": "MEDIUM",
|
|
8226
|
-
"locked": true,
|
|
8227
|
-
"evaluationMode": "DECLARATIVE",
|
|
8228
|
-
"origin": "core"
|
|
8229
|
-
},
|
|
8230
8135
|
{
|
|
8231
8136
|
"id": "skills.ios.guideline.ios.xcuitest-ui-testing-nativo",
|
|
8232
8137
|
"description": "XCUITest - UI testing nativo",
|
|
@@ -8360,9 +8265,21 @@
|
|
|
8360
8265
|
"evaluationMode": "AUTO",
|
|
8361
8266
|
"origin": "core"
|
|
8362
8267
|
},
|
|
8268
|
+
{
|
|
8269
|
+
"id": "skills.ios.no-legacy-onchange",
|
|
8270
|
+
"description": "onChange(of:) con variante de 2 parámetros o sin parámetros",
|
|
8271
|
+
"severity": "WARN",
|
|
8272
|
+
"platform": "ios",
|
|
8273
|
+
"sourceSkill": "ios-guidelines",
|
|
8274
|
+
"sourcePath": "vendor/skills/ios-enterprise-rules/SKILL.md",
|
|
8275
|
+
"confidence": "MEDIUM",
|
|
8276
|
+
"locked": true,
|
|
8277
|
+
"evaluationMode": "AUTO",
|
|
8278
|
+
"origin": "core"
|
|
8279
|
+
},
|
|
8363
8280
|
{
|
|
8364
8281
|
"id": "skills.ios.no-navigation-view",
|
|
8365
|
-
"description": "NavigationStack
|
|
8282
|
+
"description": "NavigationStack + NavigationPath - Para navegación moderna",
|
|
8366
8283
|
"severity": "WARN",
|
|
8367
8284
|
"platform": "ios",
|
|
8368
8285
|
"sourceSkill": "ios-guidelines",
|
|
@@ -8491,6 +8408,18 @@
|
|
|
8491
8408
|
"locked": true,
|
|
8492
8409
|
"evaluationMode": "AUTO",
|
|
8493
8410
|
"origin": "core"
|
|
8411
|
+
},
|
|
8412
|
+
{
|
|
8413
|
+
"id": "skills.ios.prefer-swift-testing",
|
|
8414
|
+
"description": "XCTest - Solo para proyectos legacy o UI tests",
|
|
8415
|
+
"severity": "WARN",
|
|
8416
|
+
"platform": "ios",
|
|
8417
|
+
"sourceSkill": "ios-guidelines",
|
|
8418
|
+
"sourcePath": "vendor/skills/ios-enterprise-rules/SKILL.md",
|
|
8419
|
+
"confidence": "MEDIUM",
|
|
8420
|
+
"locked": true,
|
|
8421
|
+
"evaluationMode": "AUTO",
|
|
8422
|
+
"origin": "core"
|
|
8494
8423
|
}
|
|
8495
8424
|
]
|
|
8496
8425
|
},
|
|
@@ -8498,7 +8427,7 @@
|
|
|
8498
8427
|
"name": "ios-swift-testing-guidelines",
|
|
8499
8428
|
"version": "1.0.0",
|
|
8500
8429
|
"source": "file:vendor/skills/swift-testing-expert/SKILL.md",
|
|
8501
|
-
"hash": "
|
|
8430
|
+
"hash": "48249808a0c025bb5fb16ac2e5cec4d44ac4b0634273509ee2165ad60d0fe81f",
|
|
8502
8431
|
"rules": [
|
|
8503
8432
|
{
|
|
8504
8433
|
"id": "skills.ios.guideline.ios-swift-testing.keep-tests-isolated-expressive-and-aligned-with-swift-concurrency",
|
|
@@ -8512,18 +8441,6 @@
|
|
|
8512
8441
|
"evaluationMode": "DECLARATIVE",
|
|
8513
8442
|
"origin": "core"
|
|
8514
8443
|
},
|
|
8515
|
-
{
|
|
8516
|
-
"id": "skills.ios.guideline.ios-swift-testing.new-xctest-only-unit-tests-when-swift-testing-is-available",
|
|
8517
|
-
"description": "New XCTest-only unit tests when Swift Testing is available.",
|
|
8518
|
-
"severity": "ERROR",
|
|
8519
|
-
"platform": "ios",
|
|
8520
|
-
"sourceSkill": "ios-swift-testing-guidelines",
|
|
8521
|
-
"sourcePath": "vendor/skills/swift-testing-expert/SKILL.md",
|
|
8522
|
-
"confidence": "HIGH",
|
|
8523
|
-
"locked": true,
|
|
8524
|
-
"evaluationMode": "DECLARATIVE",
|
|
8525
|
-
"origin": "core"
|
|
8526
|
-
},
|
|
8527
8444
|
{
|
|
8528
8445
|
"id": "skills.ios.guideline.ios-swift-testing.preserve-repository-specific-test-contracts-such-as-makesut-and-memory",
|
|
8529
8446
|
"description": "Preserve repository-specific test contracts such as makeSUT() and memory-leak tracking helpers when they are mandatory.",
|
|
@@ -8620,7 +8537,7 @@
|
|
|
8620
8537
|
"name": "ios-swiftui-expert-guidelines",
|
|
8621
8538
|
"version": "1.0.0",
|
|
8622
8539
|
"source": "file:vendor/skills/swiftui-expert-skill/SKILL.md",
|
|
8623
|
-
"hash": "
|
|
8540
|
+
"hash": "d4914b86eb46b5cf0408a922c4f034789a672d95ac6c01922e94257044b8aa01",
|
|
8624
8541
|
"rules": [
|
|
8625
8542
|
{
|
|
8626
8543
|
"id": "skills.ios.guideline.ios-swiftui-expert.action-handlers-should-reference-methods-not-contain-inline-logic",
|
|
@@ -8775,7 +8692,7 @@
|
|
|
8775
8692
|
"sourcePath": "vendor/skills/swiftui-expert-skill/SKILL.md",
|
|
8776
8693
|
"confidence": "MEDIUM",
|
|
8777
8694
|
"locked": true,
|
|
8778
|
-
"evaluationMode": "
|
|
8695
|
+
"evaluationMode": "AUTO",
|
|
8779
8696
|
"origin": "core"
|
|
8780
8697
|
},
|
|
8781
8698
|
{
|
|
@@ -8943,7 +8860,7 @@
|
|
|
8943
8860
|
"sourcePath": "vendor/skills/swiftui-expert-skill/SKILL.md",
|
|
8944
8861
|
"confidence": "MEDIUM",
|
|
8945
8862
|
"locked": true,
|
|
8946
|
-
"evaluationMode": "
|
|
8863
|
+
"evaluationMode": "AUTO",
|
|
8947
8864
|
"origin": "core"
|
|
8948
8865
|
},
|
|
8949
8866
|
{
|