[Schema Consistency] Schema Consistency Check — 2026-03-04 #177
Closed
Replies: 1 comment
-
|
This discussion was automatically closed because it expired on 2026-03-05T20:31:12.832Z.
|
Beta Was this translation helpful? Give feedback.
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
-
This repository (
norrietaylor/tt2) is a Unity game project — none of the expected Go schema/parser/documentation targets (pkg/parser/schemas/,pkg/workflow/*.go,docs/src/content/docs/) exist. Analysis pivoted to internal consistency of.github/workflows/*.mdfrontmatter, which contains the de-facto YAML schema for the workflow automation system.113 workflow files parsed (105 successfully). 22 distinct inconsistency categories found across field types, polymorphic shapes, and semantic contradictions.
Summary
Critical Issues
These are likely bugs (wrong type used, will cause parse errors or silent failures):
🔴
safe-outputs.create-discussion.expires— bool instead of stringFile:
agent-persona-explorer.md35 other files use strings (
"90d","30d", etc.). The booleanfalseis almost certainly a mistake and may disable expiry silently or cause a type error.🔴
safe-outputs.create-issue.expires— integer instead of stringFile:
daily-architecture-diagram.md23 other files use strings. The integer
7likely represents 7 days but may parse incorrectly.🔴
on.slash_command— string instead of objectFile:
pr-nitpick-reviewer.md5 other files use a dict shape. A bare string here likely causes the trigger to be misconfigured.
🔴
features.dangerous-permissions-write— feature enabled but only read permissions grantedFiles:
daily-issues-report.md,daily-observability-report.md,daily-performance-summary.md,org-health-report.mdAll 4 files declare
features.dangerous-permissions-write: truebut grant onlyreadpermissions on all scopes:Either the feature flag is vestigial/incorrect, or the permissions block is missing the required write grants.
Type Mismatches
View all type-mismatch inconsistencies (14 fields)
safe-outputs.create-discussion.expiresstr/boolstrsafe-outputs.create-issue.expiresstr/intstrsafe-outputs.create-issue.assigneeslist/strlistsafe-outputs.create-pull-request.reviewerslist/strliston.slash_commanddict/strdictenginestr/dictnetworkdict/strpermissionsdict/strtools.bashlist/booltools.cache-memorybool/dict/list/nulltools.repo-memorydict/list/booltools.repo-memory.file-globlist/strlisttools.serenalist/dicton.schedulestr/listSingle-file anomalies (likely typos):
safe-outputs.create-issue.assignees: 'copilot'(string, 2 files) — should be['copilot']safe-outputs.create-pull-request.reviewers: 'copilot'(string, 2 files:github-mcp-tools-report.md,technical-doc-writer.md) — should be['copilot']safe-outputs.create-pull-request.reviewers: [](empty list, 1 file:weekly-safe-outputs-spec-review.md) — no effect, may be intentionalPolymorphic Field Shapes
These fields legitimately accept multiple shapes but lack a documented schema:
View polymorphic field details
engine— string vs objectThe
engine.model,engine.agent, andengine.max-continuationssub-keys appear in only 1–2 files each — these may be experimental/undocumented features.tools.serena— list vs objectThe list form is a shorthand that may not be formally specified.
tools.cache-memory— 4 distinct shapessandbox— 2 distinct shapestools.github— dict keys varyThe
tools.githubdict accepts 5 distinct sub-keys with variable co-occurrence:toolsets(list) — 56 fileslockdown(bool) — 10 filesmode(str:'local'|'remote') — 5 filesread-only(bool) — 2 filesgithub-token(str) — 1 file only (code-scanning-fixer.md) — possibly undocumentedUnique/Rare Top-Level Fields
View rare or single-file top-level fields
disable-model-invocationrate-limitmcp-serversruntimessafe-inputscachetools.cache-memory)concurrencyruns-oniftracker-idRecommendations
agent-persona-explorer.md— changeexpires: falsetoexpires: "never"or remove the field if expiry should be disabled.daily-architecture-diagram.md— changeexpires: 7toexpires: "7d"to match string convention.pr-nitpick-reviewer.md—on.slash_command: 'nit'should be a dict object (e.g.,{command: nit}).daily-issues-report.md,daily-observability-report.md,daily-performance-summary.md,org-health-report.md.assigneesandreviewersin safe-outputs should consistently use lists. Fixbreaking-change-checker.md,duplicate-code-detector.md,github-mcp-tools-report.md,technical-doc-writer.md.engine,tools.bash,tools.cache-memory,tools.serena,sandboxall accept multiple shapes. A schema or README documenting accepted forms would prevent future inconsistencies.tools.github.github-tokenincode-scanning-fixer.md— this sub-key appears in only 1 file and may be an undocumented/experimental feature.References: §22687766100
Beta Was this translation helpful? Give feedback.
All reactions