Skip to content

[Validation gap] Conductor Jinja inventory pin and lint enforcement #174

Description

@PolyphonyRequiem

[Validation gap] Conductor Jinja inventory pin and lint enforcement

Part of #172.

Gap

Workflow YAMLs and lint-*.ps1 rules can demand Jinja constructs
(filters, globals, custom functions) that conductor's TemplateRenderer
does not actually expose at runtime. There is no inventory; we discover
the truth by crashing.

Bugs this would have caught

Implementation sketch (design TBD; this issue captures the gap)

  • A small probe script that imports/instantiates conductor's
    TemplateRenderer (or the equivalent entry point) and enumerates the
    Jinja Environment.filters, globals, and tests registries with
    their callable signatures (introspected via inspect.signature).
  • Emits conductor-jinja-inventory.json as a checked-in artifact.
  • Lint refuses any Jinja construct in workflow YAMLs (or in
    lint-*.ps1 allowlists) that is not in the inventory, including
    arity mismatches on filter calls.
  • Probe runs in CI against the conductor version polyphony pins.

Pin location

Polyphony does not currently pin a conductor SHA. The closest thing is
metadata.min_polyphony_version in each workflow YAML
(docs/decisions/versioning-strategy.md), which gates polyphony CLI
itself, not conductor. conductor registry add does not accept
--ref / --tag (per same doc). Designing where the conductor
version is pinned is part of this issue's scope.
Candidates:

  • A new metadata.min_conductor_version field in workflow YAML
    (parallels the existing min-polyphony pattern).
  • A repo-level pin in .conductor/profile.yaml or process-config.yaml.
  • A submodule / vendored copy of the conductor source for the probe to
    import.

Status

Design TBD. This issue captures the gap; no code yet.

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

    Labels

    deferredTracked gap; intentionally not in flight

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions