@forvibe/cli 2.0.0 → 2.0.2
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/dist/engine/data/bundle.appstore.json +22 -13
- package/dist/index.js +1356 -555
- package/package.json +2 -1
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"schema_version": 1,
|
|
3
3
|
"store": "appstore",
|
|
4
|
-
"version": "2.
|
|
5
|
-
"updated_at": "2026-07-
|
|
4
|
+
"version": "2.3.0",
|
|
5
|
+
"updated_at": "2026-07-26",
|
|
6
6
|
"rules": [
|
|
7
7
|
{
|
|
8
8
|
"id": "appstore.att-usage-description-missing",
|
|
@@ -583,21 +583,26 @@
|
|
|
583
583
|
},
|
|
584
584
|
"severity": "high",
|
|
585
585
|
"category": "safety",
|
|
586
|
-
"title": "User-generated content
|
|
587
|
-
"description": "The app
|
|
588
|
-
"user_impact": "
|
|
589
|
-
"fix": "
|
|
586
|
+
"title": "User-generated content without report or block controls",
|
|
587
|
+
"description": "The app lets users create or share content with each other, but the source scan found no reporting or blocking controls attached to it. Guideline 1.2 requires apps with user-generated content to include a way to filter objectionable material, a mechanism to report content and abusive users with a timely response, the ability to block abusive users, and published contact information.",
|
|
588
|
+
"user_impact": "The reviewer posts test content, looks for a way to report it or block its author, finds neither, and rejects under 1.2.",
|
|
589
|
+
"fix": "Add all four required controls: a report or flag action on every piece of user content, a user-blocking feature, a moderation process with a stated response time, and a visible way to contact the developer. Then document them in the Notes for Review, since App Review cannot always find them through UI exploration alone.",
|
|
590
590
|
"applies_if": {
|
|
591
591
|
"capability": "ugc"
|
|
592
592
|
},
|
|
593
593
|
"unverified_if": {
|
|
594
|
-
"
|
|
594
|
+
"fact": "signals.moderation_controls_found",
|
|
595
|
+
"op": "absent"
|
|
595
596
|
},
|
|
596
597
|
"fail_if": {
|
|
597
|
-
"
|
|
598
|
+
"fact": "signals.moderation_controls_found",
|
|
599
|
+
"op": "eq",
|
|
600
|
+
"value": false
|
|
598
601
|
},
|
|
599
602
|
"evidence_facts": [
|
|
600
|
-
"capabilities"
|
|
603
|
+
"capabilities",
|
|
604
|
+
"signals.ugc_surface_found",
|
|
605
|
+
"signals.moderation_controls_found"
|
|
601
606
|
],
|
|
602
607
|
"related_story_ids": [
|
|
603
608
|
"ugc-moderation-missing-fliplearn",
|
|
@@ -828,20 +833,24 @@
|
|
|
828
833
|
"severity": "medium",
|
|
829
834
|
"category": "safety",
|
|
830
835
|
"title": "AI-generated content needs moderation and reporting controls",
|
|
831
|
-
"description": "The app appears to generate content with AI. App Review applies guideline 1.2's user-generated content standards to AI-generated content: the app needs filtering of objectionable material, a way for users to report problematic output, and an age rating that matches what the generator can produce. Apps that can generate adult or abusive content without guardrails are rejected.
|
|
836
|
+
"description": "The app appears to generate content with AI, and the source scan found no reporting or blocking controls on it. App Review applies guideline 1.2's user-generated content standards to AI-generated content: the app needs filtering of objectionable material, a way for users to report problematic output, and an age rating that matches what the generator can produce. Apps that can generate adult or abusive content without guardrails are rejected.",
|
|
832
837
|
"user_impact": "The reviewer prompts the AI feature with borderline requests, and rejects under 1.2 or demands a 17+ age rating if the app produces objectionable content without filtering, reporting, or blocking controls.",
|
|
833
838
|
"fix": "Add server-side content filtering for AI output, an in-app report action on generated content, and a block mechanism where user-to-user sharing exists, then set the age rating to match what the generator can actually produce and describe the moderation pipeline in the Notes for Review.",
|
|
834
839
|
"applies_if": {
|
|
835
840
|
"capability": "ai_generated_content"
|
|
836
841
|
},
|
|
837
842
|
"unverified_if": {
|
|
838
|
-
"
|
|
843
|
+
"fact": "signals.moderation_controls_found",
|
|
844
|
+
"op": "absent"
|
|
839
845
|
},
|
|
840
846
|
"fail_if": {
|
|
841
|
-
"
|
|
847
|
+
"fact": "signals.moderation_controls_found",
|
|
848
|
+
"op": "eq",
|
|
849
|
+
"value": false
|
|
842
850
|
},
|
|
843
851
|
"evidence_facts": [
|
|
844
|
-
"capabilities"
|
|
852
|
+
"capabilities",
|
|
853
|
+
"signals.moderation_controls_found"
|
|
845
854
|
],
|
|
846
855
|
"related_story_ids": [
|
|
847
856
|
"anonymous-chat-pornography-risk",
|