You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Major UX improvements for credit-scorer: simplified workflows, unified visualizations, and user-friendly defaults (#236)
* Fix model directory creation in training step
Create models directory before saving model to prevent FileNotFoundError when running training pipeline.
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <[email protected]>
* Fix auto-approve flag functionality in deployment pipeline
Connect the --auto-approve flag to the actual approval logic by checking DEPLOY_APPROVAL, APPROVER, and APPROVAL_RATIONALE environment variables in the approve_deployment step.
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <[email protected]>
* Add Modal secrets setup instructions to README
Document the required credit-scoring-secrets Modal secret for deployment pipeline, including Slack credentials needed for EU AI Act compliance incident reporting.
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <[email protected]>
* Fix --all flag to run complete pipeline workflow
Enable the --all flag to run feature engineering, training, and deployment pipelines sequentially with proper output chaining between steps.
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <[email protected]>
* Make pipeline names less generic
* Fix API documentation and risk management dashboard integration
- Extract real deployment URLs from deployment_info parameter structure
- Handle dictionary return from load_risk_register() by extracting 'Risks' sheet
- Fix indentation and structure in risk management section
- Resolve "Risk level information not found" issue by properly accessing risk data
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <[email protected]>
* Formatting
* Fix --all flag functionality in pipeline execution
- Move --all flag handling to beginning of main() function
- Remove direct artifact passing between pipelines to avoid Pydantic validation errors
- Let ZenML automatically fetch latest artifacts from artifact store
- Enables successful execution of complete workflow: feature → training → deployment
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <[email protected]>
* Update README to highlight --all flag as recommended workflow
- Add --all flag as the primary recommended command for running complete workflow
- Show --all with --auto-approve for seamless execution
- Reorganize commands to emphasize complete workflow over individual pipelines
- Add --all --no-cache example for additional pipeline options
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <[email protected]>
* Add risk assessment HTML visualization as second artifact
- Add generate_risk_visualization() function to create styled HTML report
- Update risk_assessment step to return tuple: (risk_scores_dict, risk_visualization_html)
- Add RISK_VISUALIZATION constant to annotations
- Update training pipeline and run.py to handle new return signature
- Visualization includes overall risk score, component risks, and detailed hazard breakdown
- Color-coded risk levels (LOW/MEDIUM/HIGH) with severity badges for hazards
- Professional styling with gradient header and responsive card layout
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <[email protected]>
* Unify HTMLString visualizations with shared CSS system
Migrate all HTMLString artifacts to use centralized CSS styling for improved maintainability and visual consistency across EU AI Act compliance reports.
Key changes:
- Updated eval.py to use shared CSS classes for model evaluation dashboard
- Migrated generate_sbom.py SBOM visualization to shared styling
- Converted post_run_annex.py Annex IV documentation to use shared CSS
- Updated dashboard.py compliance dashboard with unified styling
- Enhanced risk_assessment.py with shared CSS components
Benefits:
- Consistent styling across all compliance visualizations
- Reduced CSS duplication from ~500+ lines of inline styles
- Improved maintainability with centralized style management
- Enhanced visual consistency for EU AI Act reporting
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <[email protected]>
* Simplify deployment workflow with new flag defaults
- Auto-approve is now the default behavior (use --manual-approve to disable)
- Slack notifications are disabled by default (use --enable-slack to enable)
- Modal secrets are now optional, only required when --enable-slack is used
- Primary workflow is now just `python run.py --all` with no flags needed
- Full EU AI Act compliance available via `python run.py --all --enable-slack`
This makes the project much easier to test and get started with while keeping
all compliance features available when explicitly requested.
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <[email protected]>
* Add robust input validation for ENABLE_SLACK environment variable
- Add strict validation to only accept "true" or "false" values for ENABLE_SLACK
- In Modal app creation: raise ValueError and abort deployment for invalid values
- In incident reporting: log error but gracefully continue with disabled Slack
- Prevents silent failures from typos like "True", "1", "yes", or "tru"
- Provides clear error messages showing expected vs actual values
This improves user experience by catching configuration errors early rather
than silently defaulting to disabled Slack notifications.
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <[email protected]>
---------
Co-authored-by: Claude <[email protected]>
5. Set up Modal secrets for deployment (optional, only needed with `--enable-slack` flag):
119
+
120
+
```bash
121
+
# Create Modal secret with Slack credentials for incident reporting
122
+
modal secret create credit-scoring-secrets \
123
+
SLACK_BOT_TOKEN=<your_slack_bot_token> \
124
+
SLACK_CHANNEL_ID=<your_slack_channel_id>
125
+
```
126
+
127
+
> **Note:** The deployment pipeline uses Modal for cloud deployment. By default, Slack notifications are disabled for easier testing. The `credit-scoring-secrets` Modal secret stores the necessary Slack credentials for automated notifications when the deployed model API detects high or critical severity incidents.
128
+
129
+
> **Enabling full compliance features:** For complete EU AI Act compliance incident reporting (Article 18), use the `--enable-slack` flag (e.g., `python run.py --deploy --enable-slack`). This requires the Modal secret to be configured with your Slack credentials for automated incident notifications.
130
+
118
131
## 📊 Running Pipelines
119
132
120
133
### Basic Commands
121
134
122
135
```bash
136
+
# Run complete workflow (recommended)
137
+
python run.py --all # Feature → Training → Deployment (auto-approved, no Slack)
0 commit comments