Quality Score
Critical issues found
8 error-level issues require attention. Review the feedback details below.
Score Breakdown
Feedback by Criterion
CRITICAL - Missing rules from Section 1: Neither the minimum age requirement (applicants must be at least 18 years of age) nor the government-issued ID requirement are captured in any extracted rule or json-rules-engine output.
CRITICAL - Missing rules from Section 3: The background check requirement (required for all applicants over 18) and the case-by-case criminal history review policy are entirely absent from the extraction.
Duplicate entries in dependency metadata: rule-003's child_rules array contains ['rule-001', 'rule-002', 'rule-001', 'rule-002'] — rule-001 and rule-002 are each listed twice.
rule-003's parent_rules in rule-001 and rule-002 metadata lists 'rule-003' twice each, indicating a metadata generation defect.
The extraction creates redundancy by having rule-001 and rule-002 as standalone rules AND combining them into rule-003, which may cause duplicate event firing in the rules engine without explicit deduplication logic.
The 'monthlyRentTripled' computed fact is referenced in the json-rules-engine output but is not defined or documented anywhere in the extraction — implementers must infer this computed fact independently, creating an undocumented dependency.
Add a rule or annotation capturing the case-by-case criminal history review policy from Section 3, even if it results in a 'manual_review_required' consequence rather than a binary pass/fail.
Deduplicate the child_rules and parent_rules arrays in the dependency metadata to avoid confusion.
Explicitly document the 'monthlyRentTripled' computed fact in the extraction metadata or as a fact definition, including its formula (monthlyRent * 3), so implementers have a clear contract.
Consider whether rule-001 and rule-002 need to exist as standalone rules if rule-003 already combines them; if kept, add a note explaining the intentional redundancy and how to avoid double-counting events.
Only 3 of approximately 6 distinct policy statements are captured, all from Section 2 only — Sections 1 and 3 are completely unrepresented.
rule-001 source_chunks incorrectly includes 'Section 3' as a source reference; this rule originates solely from Section 2: Income Requirements, not Section 3 (Background Check).
Add a rule capturing the minimum age requirement: applicant.age >= 18, with consequence 'meets_age_requirement', sourced from Section 1.
Add a rule capturing the government-issued ID requirement: applicant.has_valid_government_id == true, sourced from Section 1.
Add a rule capturing the background check requirement for applicants over 18, sourced from Section 3.
Remove 'Section 3' from rule-001's source_chunks — it is an incorrect attribution that could mislead auditors.
Expand source_chunks to include more precise chunk identifiers for all rules, particularly for rule-003 which only references two chunks despite combining conditions from multiple policy statements.
Policy Logic Extractor