smithery/seer-engg

workflow-validation

Validates workflow schemas, expressions, and block configurations in seer. Use when reviewing workflow changes, adding new blocks, debugging workflow compilation errors, or validating workflow JSON structures.

Installation

$ npx skills add smithery/seer-engg --skill workflow-validation

Similar popular skills

Related neighbors and high-traction skills in the same topics — useful to compare before installing.

More details

Agent compatibility

Declared targets from SKILL.md / docs. Unmarked agents are not listed — the skill may still install via the CLI.

Claude Code Not declared
Cursor Not declared
Codex Not declared
GitHub Copilot Not declared
Windsurf Not declared
Gemini CLI Not declared
Cline Not declared
OpenCode Not declared

Skill metadata

Parsed from SKILL.md frontmatter.

Allowed toolsRead, Grep, Glob, Bash(pytest:*)

Package contents

Files included with this skill beyond the listing page.

  • skill md SKILL.md 2,699 B
  • docs SUMMARY.md 236 B

History

  1. First recorded snapshot · 0 installs

SKILL.md

Workflow Validation

Layered across a 5-stage compilation pipeline. See /workflow-compiler skill for full architecture.

Compilation Pipeline

  1. Parse (compiler/parse.py) — JSON → WorkflowSpec; raises ValidationPhaseError
  2. Type Environment (compiler/type_env.py) — builds type env; raises TypeEnvironmentError
  3. Validate References (compiler/validate_refs.py) — checks ${...} expressions; raises ValidationPhaseError
  4. Lower (compiler/lowercontrolflow.py) — execution plan; raises LoweringError
  5. Emit (compiler/emit_langgraph.py) — LangGraph StateGraph

Runtime: inputvalidation.py coerces inputs · validateoutput.py checks node outputs against OutputContract

Error Hierarchy

WorkflowCompilerError → ValidationPhaseError · TypeEnvironmentError · LoweringError · ExecutionError → EvaluationError

Key Validation Components

  • Input coercion (input_validation.py) — lenient (string↔number↔bool, JSON strings → object/array). Applies InputDef defaults. Preserves undeclared inputs.
  • Reference validation (validaterefs.py) — resolves ${...} order: locals → state → inputs → config. Loop vars (itemvar, index_var) scoped to body.
  • Expression evaluation (expr/evaluator.py) — runtime ${node.field}, ${array[0]}, nested. Context: state, inputs, locals, config.
  • Schema models (schema/models.py) — StrictModel (extra="forbid"). Key types: WorkflowSpec, Node, InputDef, OutputContract, SchemaRef, InlineSchema.
  • JSON Schema utils (schema/jsonschemaadapter.py) — Draft 2020-12. getvalidator(), validateinstance(), dereferenceschema(), formatvalidationerror().
  • Output validation (validate_output.py) — post tool/LLM when OutputContract mode=json. Raises ExecutionError.

When Adding a New Block Type

  1. Extend Node in schema/models.py, add to Node union
  2. Add ${...} reference validation in validate_refs.py
  3. Add input coercion in input_validation.py if needed
  4. Write tests: valid config, invalid inputs, edge cases

Quick Checklist

  • Required fields present; input types match InputDef
  • All ${...} references resolve; output contracts have schemas when mode=json
  • Nested blocks valid; loop vars scoped; tests cover success + error cases