Skip to content

[self-repair:c01294f018b9] [orchestrator-defect] Gate lint accepts plans with empty runtime tasks and validation gates #281

Description

@srnichols

Class

orchestrator-defect

Symptom

During a bounded local execution, lintGateCommands returned zero errors and warnings for plans whose validation commands were inside text fences and whose implementation instructions used plain bullets/prose. parsePlan found the expected slices but extracted empty tasks and null validationGate. Slice-count and lint-only readiness checks therefore gave a false-ready result. A local validator now calls the real parser; the original format fails with 'runtime parsed no tasks'. After normalizing to numbered tasks and powershell fences, mutations back to text fences or non-numbered tasks fail as expected. This mismatch can allow execution without the intended validation gate.

Workaround Applied

Added fail-closed runtime assertions for nonempty tasks, nonempty validationGate and the required typecheck in every slice, plus parser-based negative controls for both ignored formats. Normalized the affected local plan syntax while checking that scopes, dependencies and command bodies remain unchanged. Actual launches use independently checked one-slice records; no additional launches were authorized by the formatting repair. Recommended upstream fix: use the same parser contract for lint/readiness and reject slices with no executable tasks or gate before any worker launch.

Files

  • pforge-mcp/orchestrator.mjs

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions