-
Notifications
You must be signed in to change notification settings - Fork 0
Add script-based workflows for reproducible MSML operations #659
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Conversation
- Create scripts/ directory with CLI tools - Add load_and_validate_spec.py for spec validation - Add generate_reports.py for automated report generation - Include comprehensive scripts/README.md with usage guide - Document scripts vs notebooks usage patterns - Provide project structure recommendations - Addresses issue #654
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull request overview
This PR introduces script-based entry points for validating MSML specs and generating documentation, plus a README to guide using scripts vs notebooks.
Changes:
- Added
scripts/load_and_validate_spec.pyto load and validate MSML JSON specs via CLI, suitable for CI and batch validation. - Added
scripts/generate_reports.pyto (intended to) generate documentation reports from MSML specs, with CLI options for format and output directory. - Added
scripts/README.mddocumenting available scripts, usage examples, and guidance on structuring and extending script-based workflows.
Reviewed changes
Copilot reviewed 3 out of 3 changed files in this pull request and generated 6 comments.
| File | Description |
|---|---|
scripts/load_and_validate_spec.py |
Implements a CLI tool to load specs with load_from_json, report basic counts in verbose mode, and exit non-zero on validation errors, enabling CI-style validation. |
scripts/generate_reports.py |
Implements a CLI wrapper intended for report generation from specs, but currently only logs status messages and does not actually invoke the reporting functions, and its docstring overstates HTML/Obsidian support. |
scripts/README.md |
Documents how to use the new scripts, their use cases, and how to structure/add scripts, though it currently overclaims batch reporting capabilities versus the actual generate_reports.py interface. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
scripts/generate_reports.py
Outdated
| with open(spec_path, 'r') as f: | ||
| spec_data = json.load(f) | ||
|
|
||
| ms = load_from_json(spec_data) |
Copilot
AI
Jan 22, 2026
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
load_from_json is called without the optional spec_path argument, which causes it to print a "Add spec path to load_from_json..." message on every run and prevents spec-tree loading that downstream reporting tools may rely on.
For cleaner CLI output and to support spec-tree-aware reporting (e.g., Obsidian vault generation), consider passing the spec_path into load_from_json rather than using the default.
| ms = load_from_json(spec_data) | |
| ms = load_from_json(spec_data, spec_path) |
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Closes #654
Summary
This PR introduces script-based entry points for common MSML workflows, reducing reliance on notebooks for reproducible, automatable operations.
Changes
Benefits
Usage Examples
Design Philosophy