Good First Issues¶
Five contributor-ready issue specs maintainers can open as GitHub Issues.
Issue 1: Add EU AI Act Article 10 data governance rule¶
- Area: packages/core
- File: packages/core/src/opencomplai_core/rules.py
- Description: Implement a DataGovernanceRule class that checks whether the system manifest declares data governance commitments as required by Article 10 of the EU AI Act. The rule should check the answers dict in AssessmentInput for a key "data_governance_declared" and return FAIL if the key is missing or False.
- Acceptance criteria: Rule class added to rules.py, appended to RULE_REGISTRY, two tests added to test_engine.py.
- Suggested test approach: Test with answers={"data_governance_declared": True} (pass) and without the key (fail).
- Estimated effort: S
Issue 2: Add --config-file flag to opencomplai check¶
- Area: packages/cli
- File: packages/cli/src/opencomplai_cli/main.py
- Description: Allow users to pass a YAML config file as an alternative to --manifest. The YAML file should support the same fields as SystemManifest. Add a --config-file option to check_cmd. If both --manifest and --config-file are provided, --manifest takes precedence.
- YAML schema: fields matching SystemManifest (system_id, intended_purpose, compliance_target, high_risk_presumption, commit_ref).
- Acceptance criteria: --config-file path/to/config.yaml works; two new tests added to test_cli.py.
- Estimated effort: S
Issue 3: Add generated_at to human-readable check output¶
- Area: packages/cli
- File: packages/cli/src/opencomplai_cli/main.py
- Description: The JSON output of opencomplai check includes generated_at but the human-readable output (the Rich table) does not. Add the timestamp to the report footer in _print_human.
- Acceptance criteria: Human output shows Generated:
below the rules table; existing test updated. - Estimated effort: S
Issue 4: Improve error messages for missing required CLI flags¶
- Area: packages/cli
- File: packages/cli/src/opencomplai_cli/main.py
- Description: When required options are missing, Typer shows a generic error. Add rich_help_panel and example usage hints to the init and check commands so the error message includes a concrete example command.
- Acceptance criteria: opencomplai init without flags shows Example: opencomplai init --system-id my-model --intended-purpose "customer support chatbot".
- Estimated effort: S
Issue 5: Add type annotations to scripts/doctor.py¶
- Area: scripts/
- File: scripts/doctor.py
- Description: scripts/doctor.py uses untyped function signatures. Add full type annotations and verify ruff check scripts/doctor.py passes.
- Acceptance criteria: All functions have type annotations; ruff check scripts/doctor.py exits 0.
- Estimated effort: S