Skip to content

fix: harden work graph input validation - #10

Merged
Gandy2025 merged 1 commit into
mainfrom
agent/harden-work-graph-validation
Aug 10, 2026
Merged

fix: harden work graph input validation#10
Gandy2025 merged 1 commit into
mainfrom
agent/harden-work-graph-validation

Conversation

@Gandy2025

Copy link
Copy Markdown
Contributor

Summary

  • require schema_version to be the JSON integer 1
  • reject blank work-item titles and source references
  • fail closed when a local ticket omits its Blocked by declaration
  • update the local-ticket fixtures and public English/Chinese contract documentation

Why

The validator previously accepted schema_version: true because Python
booleans compare equal to integers, and required string fields could still be
blank. The local builder also treated a missing blocker declaration as an empty
dependency list, which could release a malformed ready ticket.

The tightened behavior requires local tickets without dependencies to declare
that state explicitly, normally with Blocked by: None.

Impact

Malformed normalized manifests and incomplete local tickets now stop before
dispatch instead of entering the current frontier. Existing valid to-tickets
v1.2.2 artifacts already contain an explicit blocker declaration.

Validation

  • python3 scripts/validate_skills.py
  • python3 -m unittest discover -s tests — 83 tests, 1 filesystem-dependent skip on macOS
  • python3 evals/floor.py — 5/5 PASS
  • python3 -m compileall -q scripts skills tests evals
  • uvx ruff check .
  • uvx ruff format --check .
  • uvx --from skills-ref agentskills validate skills/run-with-first-tree
  • npx --yes skills@1.5.22 add . --list
  • npx --yes skills@latest add . --list
  • git diff --check

@Gandy2025
Gandy2025 marked this pull request as ready for review August 10, 2026 08:17
@Gandy2025
Gandy2025 merged commit 7aa7124 into main Aug 10, 2026
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant