You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
[product-manager-impersonator] Lint dogfood-with.yml overrides against workflow inputs #619
Summary: Add a lint check that validates every gh-agent-workflows/*/dogfood-with.yml key against the corresponding workflow’s declared workflow_call inputs before trigger generation.
Why a Customer Would Want This
Maintainers rely on dogfood overrides to test workflows in this repo, and a typo in override keys can silently produce incorrect trigger behavior until much later in CI/runtime. A fast, local validation step reduces debugging time and makes workflow authoring safer.
Rough Implementation Sketch
Add scripts/check-dogfood-overrides.py to map each gh-agent-workflows/(name)/dogfood-with.yml to .github/workflows/gh-aw-(name).md and validate override keys against declared workflow_call.inputs.
Add lint-dogfood-overrides to Makefile and include it in make lint.
Document the new lint step in gh-agent-workflows/DEVELOPING.md near the dogfood override section.
Why It Won't Be That Hard
The mapping is already deterministic by naming convention, and the existing toolchain already has script-based lint checks wired via make lint; this is an additive guardrail with a small implementation surface.
Evidence
scripts/dogfood.sh injects dogfood-with.yml into generated triggers (scripts/dogfood.sh#L76-L93) but does not validate whether override keys are valid workflow inputs.
Dogfood override behavior is documented as raw key/value injection (gh-agent-workflows/DEVELOPING.md#L210-L221), which increases typo risk without schema checks.
Current lint pipeline validates workflows/actions/nav, but not dogfood override schema correctness (Makefile#L197-L210, Makefile#L236-L237; .github/workflows/ci.yml#L9-L53).
Feature Idea
Summary: Add a lint check that validates every
gh-agent-workflows/*/dogfood-with.ymlkey against the corresponding workflow’s declaredworkflow_callinputs before trigger generation.Why a Customer Would Want This
Maintainers rely on dogfood overrides to test workflows in this repo, and a typo in override keys can silently produce incorrect trigger behavior until much later in CI/runtime. A fast, local validation step reduces debugging time and makes workflow authoring safer.
Rough Implementation Sketch
scripts/check-dogfood-overrides.pyto map eachgh-agent-workflows/(name)/dogfood-with.ymlto.github/workflows/gh-aw-(name).mdand validate override keys against declaredworkflow_call.inputs.lint-dogfood-overridestoMakefileand include it inmake lint.workflow,unknown key, optional close-match suggestion).gh-agent-workflows/DEVELOPING.mdnear the dogfood override section.Why It Won't Be That Hard
The mapping is already deterministic by naming convention, and the existing toolchain already has script-based lint checks wired via
make lint; this is an additive guardrail with a small implementation surface.Evidence
scripts/dogfood.shinjectsdogfood-with.ymlinto generated triggers (scripts/dogfood.sh#L76-L93) but does not validate whether override keys are valid workflow inputs.gh-agent-workflows/DEVELOPING.md#L210-L221), which increases typo risk without schema checks.Makefile#L197-L210,Makefile#L236-L237;.github/workflows/ci.yml#L9-L53).dogfood-with.ymloverride key validation via searches fordogfood-with.yml,lint dogfood, andoverride validation; prior PM impersonator issues ([product-manager-impersonator] Add--reftargeting to quick setup #409, [product-manager-impersonator] Add--auditpreflight mode to quick setup #523, [product-manager-impersonator] Auto-detect git remote in quick setup #562, [product-manager-impersonator] Addmake verify-generatedpre-push drift check #570, [product-manager-impersonator] Make quick setup token prompt work in piped install #577, etc.) cover different areas.What is this? | From workflow: Trigger Product Manager Impersonator
Give us feedback! React with 🚀 if perfect, 👍 if helpful, 👎 if not.