workspace-validator-workflow Workflow
Autonomous workflow for systematically validating all projects in the workspace, reviewing and fixing the identified issues concurrently, and optionally publishing updates.
⚠️ Error Resolution Policy
CRITICAL: When fixing validation errors, you MUST follow these rules:
- NEVER prefix variables with an underscore (
_) to silence linting errors. This is strictly prohibited. Renamingvarto_varis not a fix — it's hiding the problem.- Always determine root cause. For every error, understand how the variable, implementation, or code was intended to function. Close the knowledge gap before making changes.
- Fix the real problem. If a variable is unused because a feature is incomplete, complete the implementation. If it's genuinely dead code, remove it entirely — don't rename it.
- Troubleshoot ALL errors. Every single error in the report must be understood and resolved at its root cause. No exceptions.
Step 0: user-interaction
Clarify with the user if they only want to validate and fix issues, or if they also want to perform a phased bump (e.g. minor version) and phased push once 0 issues are found. Expected: run_parameters
Step 1: submit-validation [skill: repository-manager-mcp]
Submit validation using the rm_projects tool with action="validate". If the user requested a phased bump and phased push, pass auto_bump=true, auto_push=true, and the requested bump_part parameter. This ensures the ecosystem will automatically bump and publish on the very first run if 0 issues are found. Store the reports in ${AGENT_UTILITIES_WORKSPACE_ROOT}/reports.
Expected: job_id
Depends On: Step 0
Step 2: monitor-validation [skill: repository-manager-mcp]
Poll for validation results by calling rm_projects with action="validate_status" and job_id="<the-returned-id>". While polling is active, do NOT wait idle. Dynamically inspect the output directory ${AGENT_UTILITIES_WORKSPACE_ROOT}/reports/validation-reports-<ts>/ for newly created project results subdirectories (e.g. wger-agent-results/). As soon as a repository folder is created and populated with its project summary summary_<repo_underscores>_<ts>.md, immediately read it to get a quick, actionable peek into the validation issues and start triaging and fixing that project's failures concurrently without waiting for the overall validation run to complete.
Expected: initial_validation_report
Depends On: Step 1
Step 3: remediate-findings [skill: repository-manager-mcp]
Enter remediation loop. Run automated remediation via rm_workspace with action="remediate", coordinate manual fixes following the strict Error Resolution Policy, and validate targeted projects using the "Next Validation Command" from the report. As new validation sweeps run, continue utilizing dynamic per-project summaries to rapidly triage and fix bugs for completed repositories on-the-fly.
Expected: remediation_loop_completed
Depends On: Step 2
Step 4: run-regression-sweep [skill: repository-manager-mcp]
Execute the final regression sweep on all repositories (no targeted filtering) and verify that the report shows 0 failures. Expected: final_regression_sweep_passed Depends On: Step 3
Step 5: publish-approved-changes [skill: repository-manager-mcp]
If bumping and pushing was approved, verify that every project is on the main branch, run a minor version bump via rm_workspace with action="maintain", and push via rm_git with action="phased_push".
Expected: push_and_publish_results
Depends On: Step 4
Execution
Run this workflow as a dependency-ordered DAG. Steps with no unmet depends_on run in parallel; dependents run after their prerequisites complete.
- Run first (in parallel): Step 0 — user-interaction; Step 1 — submit-validation; Step 2 — monitor-validation; Step 3 — remediate-findings; Step 4 — run-regression-sweep; Step 5 — publish-approved-changes
Execution: If graph-os is reachable, offload the whole DAG via graph_orchestrate action=execute_workflow (or the kg-delegate skill) for true parallel/swarm execution. Otherwise execute the steps natively in dependency order: run steps with no unmet depends_on in parallel, then their dependents.