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
Strategy Used: Targeted gap verification + top-level semantic checks
New Strategy: YES
Critical Issues
max-turns is missing from FrontmatterConfig despite being a first-class top-level schema field
Schema: pkg/parser/schemas/main_workflow_schema.json defines top-level max-turns with examples and description.
Parser type: pkg/workflow/frontmatter_types.go does not include a json:"max-turns" field in FrontmatterConfig.
Implementation still uses it via raw-map parsing in pkg/workflow/engine.go:241.
Impact: the typed frontmatter model is incomplete, so any code that relies on FrontmatterConfig for introspection, serialization, docs tooling, or validation can silently miss max-turns even though runtime compilation honors it.
Top-level github-app is also missing from FrontmatterConfig, even though runtime/compiler support exists and docs advertise it
Schema: top-level github-app exists and is documented as workflow-wide fallback config.
Docs: docs/src/content/docs/reference/frontmatter.md:158 documents github-app: as a top-level field.
Parser type: pkg/workflow/frontmatter_types.go has no top-level github-app field on FrontmatterConfig.
Impact: another mismatch between the canonical typed frontmatter model and actual supported workflow semantics.
Documentation Gaps
max-runs is in schema and implementation, but not surfaced in the user-facing frontmatter docs
Schema: max-runs exists, marked deprecated, with migration text to max-turns.
Implementation: pkg/workflow/engine.go:245-248 still parses max-runs; pkg/workflow/engine_config_parser.go:27-30 validates it; pkg/workflow/README.md describes it as engine.max-runs / AWF apiProxy.maxRuns.
User docs: no visible top-level max-runs section in docs/src/content/docs/reference/frontmatter.md; the generated frontmatter-full.md also does not expose a top-level max-runs: example near the main top-level field list.
Impact: users can still write a deprecated-but-supported field that is effectively undocumented in the main reference.
Schema Improvements Needed
Schema-diff workflow over-reports fake inconsistencies because it treats nested keys as top-level frontmatter fields
Precomputed diff reported include and version under in_frontmatter_not_schema.
Verification shows those are nested fields, not top-level frontmatter:
pkg/workflow/frontmatter_types.go:383 → Include belongs to imported-step / stop-after-related config, not top-level frontmatter.
pkg/workflow/frontmatter_types.go:24 and nearby matches show version is used in runtime configs and other nested structs.
Actual workflow usage examples such as .github/workflows/smoke-test-tools.md use version: inside runtimes: blocks, not as a top-level frontmatter key.
Impact: the current checker can create noisy or misleading reports unless it scopes extraction to type FrontmatterConfig struct instead of all tagged fields in frontmatter_types.go.
Parser Updates Required
Add top-level typed fields for schema-backed frontmatter that are currently parsed only from raw maps:
max-turns
github-app
likely ambient-folders as well, since it is schema-backed and compiler-supported through pkg/workflow/ambient_folders.go but absent from FrontmatterConfig.
Keep raw-map parsing where needed, but make the typed model match the supported contract.
Workflow Violations
No confirmed repository workflow was found using an actually invalid top-level field from the main schema.
Several entries from used_in_workflows / in_used_not_schema are false positives caused by naive regex extraction over nested YAML blocks in markdown workflows rather than true top-level frontmatter keys.
Recommendations
Add max-turns, github-app, and ambient-folders to pkg/workflow/frontmatter_types.go's FrontmatterConfig.
Add a deprecated max-runs note to docs/src/content/docs/reference/frontmatter.md, pointing users to max-turns.
Tighten the schema-consistency precomputation so it only enumerates fields from type FrontmatterConfig struct for frontmatter comparisons.
Split findings into real contract mismatches vs checker false positives to keep future reports actionable.
Strategy Performance
Strategy Used: Targeted gap verification + top-level semantic checks
Findings: 4
Effectiveness: HIGH
Should Reuse: YES
Next Steps
Fix typed frontmatter coverage for supported top-level fields
Update documentation for deprecated-but-supported fields
Reduce false positives in the schema diff precompute job
Re-run the checker after narrowing frontmatter field extraction
reacted with thumbs up emoji reacted with thumbs down emoji reacted with laugh emoji reacted with hooray emoji reacted with confused emoji reacted with heart emoji reacted with rocket emoji reacted with eyes emoji
Uh oh!
There was an error while loading. Please reload this page.
Summary
Critical Issues
max-turnsis missing fromFrontmatterConfigdespite being a first-class top-level schema fieldpkg/parser/schemas/main_workflow_schema.jsondefines top-levelmax-turnswith examples and description.pkg/workflow/frontmatter_types.godoes not include ajson:"max-turns"field inFrontmatterConfig.pkg/workflow/engine.go:241.FrontmatterConfigfor introspection, serialization, docs tooling, or validation can silently missmax-turnseven though runtime compilation honors it.Top-level
github-appis also missing fromFrontmatterConfig, even though runtime/compiler support exists and docs advertise itgithub-appexists and is documented as workflow-wide fallback config.docs/src/content/docs/reference/frontmatter.md:158documentsgithub-app:as a top-level field.pkg/workflow/workflow_github_app.go:15-45extractsfrontmatter["github-app"]and applies fallback behavior;pkg/workflow/workflow_data.go:127storesTopLevelGitHubApp.pkg/workflow/frontmatter_types.gohas no top-levelgithub-appfield onFrontmatterConfig.Documentation Gaps
max-runsis in schema and implementation, but not surfaced in the user-facing frontmatter docsmax-runsexists, marked deprecated, with migration text tomax-turns.pkg/workflow/engine.go:245-248still parsesmax-runs;pkg/workflow/engine_config_parser.go:27-30validates it;pkg/workflow/README.mddescribes it asengine.max-runs/ AWFapiProxy.maxRuns.max-runssection indocs/src/content/docs/reference/frontmatter.md; the generatedfrontmatter-full.mdalso does not expose a top-levelmax-runs:example near the main top-level field list.Schema Improvements Needed
includeandversionunderin_frontmatter_not_schema.pkg/workflow/frontmatter_types.go:383→Includebelongs to imported-step / stop-after-related config, not top-level frontmatter.pkg/workflow/frontmatter_types.go:24and nearby matches showversionis used in runtime configs and other nested structs..github/workflows/smoke-test-tools.mduseversion:insideruntimes:blocks, not as a top-level frontmatter key.type FrontmatterConfig structinstead of all tagged fields infrontmatter_types.go.Parser Updates Required
max-turnsgithub-appambient-foldersas well, since it is schema-backed and compiler-supported throughpkg/workflow/ambient_folders.gobut absent fromFrontmatterConfig.Workflow Violations
used_in_workflows/in_used_not_schemaare false positives caused by naive regex extraction over nested YAML blocks in markdown workflows rather than true top-level frontmatter keys.Recommendations
max-turns,github-app, andambient-folderstopkg/workflow/frontmatter_types.go'sFrontmatterConfig.max-runsnote todocs/src/content/docs/reference/frontmatter.md, pointing users tomax-turns.type FrontmatterConfig structfor frontmatter comparisons.Strategy Performance
Next Steps
All reactions