[Schema Consistency] Safe-Outputs Schema Completeness Analysis #17442
Replies: 4 comments
-
|
🤖 Smoke test was here! The Copilot agent dropped by discussion #17442 to leave this totally-not-automated friendly note. Everything's working great — or at least that's what I'm programmed to say. 🚀✨
|
Beta Was this translation helpful? Give feedback.
-
|
💥 WHOOSH! 🦸 THE SMOKE TEST AGENT WAS HERE! 💨 Panel 1: "KA-POW! Claude's smoke test swoops into discussion #17442!" 🎯 MISSION COMPLETE — Smoke Test Run 22255965551 signing off! 💫
|
Beta Was this translation helpful? Give feedback.
-
|
/plan |
Beta Was this translation helpful? Give feedback.
-
|
This discussion identified that the A sub-issue has been created to fix this: update |
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
-
Schema Completeness for Safe-Outputs Operations
Summary
The schema completeness analysis reveals MISMATCHES BETWEEN SCHEMA $COMMENT AND ACTUAL SCHEMA PROPERTIES. Specifically, the
$commentfield is missing four operations that are fully defined in the schema.Key Finding: Missing Operations from $comment
The
$commentfield inproperties["safe-outputs"]lists operations that should be documented but is INCOMPLETE. Four operations are defined in the schema but NOT listed in the $comment:assign-to-user- Fully defined in schema with properties:allowed,blocked,max,target,target-repo,unassign-first,github-tokenunassign-from-user- Fully defined in schema with properties:allowed,blocked,max,target,target-repo,allowed-repos,github-tokencreate-project- Fully defined in schema with properties:max,github-token,target-owner,title-prefix,views,field-definitionsmissing-data- Fully defined in schema with properties:max,create-issue,title-prefix,labels,github-tokenNote:
missing-toolIS listed in $comment (along withmissing-data), so that one is correct.Schema Properties Inventory
All Safe-Outputs Properties (48 total)
Output Operations (40):
Configuration Properties (8):
Struct Fields in Go Implementation
BaseSafeOutputConfig (inherited by all)
Max(int) - Maximum operations (YAML:max)GitHubToken(string) - Token override (YAML:github-token)Staged(bool) - Step summary mode (YAML:staged)Operation-Specific Structs
AssignToUserConfig (
pkg/workflow/assign_to_user.go)BaseSafeOutputConfig(embedded)SafeOutputTargetConfig(embedded)Allowed([]string) - Allowed usersBlocked([]string) - Blocked users/patternsUnassignFirst(bool) - Unassign before assigningUnassignFromUserConfig (
pkg/workflow/unassign_from_user.go)BaseSafeOutputConfig(embedded)SafeOutputTargetConfig(embedded)Allowed([]string) - Allowed usersBlocked([]string) - Blocked users/patternsCreateProjectsConfig (
pkg/workflow/create_project.go)BaseSafeOutputConfig(embedded)GitHubToken(string) - Token overrideTargetOwner(string) - Default project owner (YAML:target-owner)TitlePrefix(string) - Project title prefix (YAML:title-prefix)Views([]ProjectView) - Project views to create (YAML:views)FieldDefinitions([]ProjectFieldDefinition) - Custom fields (YAML:field-definitions)MissingDataConfig (
pkg/workflow/missing_data.go)BaseSafeOutputConfig(embedded)CreateIssue(bool) - Create issues (YAML:create-issue)TitlePrefix(string) - Issue title prefix (YAML:title-prefix)Labels([]string) - Issue labels (YAML:labels)MissingToolConfig (
pkg/workflow/missing_tool.go)BaseSafeOutputConfig(embedded)CreateIssue(bool) - Create issues (YAML:create-issue)TitlePrefix(string) - Issue title prefix (YAML:title-prefix)Labels([]string) - Issue labels (YAML:labels)NoOpConfig (
pkg/workflow/noop.go)BaseSafeOutputConfig(embedded)ReportAsIssue(bool) - Report as issue comments (YAML:report-as-issue)Schema vs Implementation Analysis
Complete Alignment (All 4 operations)
assign-to-user:
allowed,blocked,max,target,target-repo,unassign-first,github-token✓Allowed,Blocked,Max(via BaseSafeOutputConfig),SafeOutputTargetConfig.Target,SafeOutputTargetConfig.TargetRepo,UnassignFirst,GitHubTokenunassign-from-user:
allowed,blocked,max,target,target-repo,allowed-repos,github-token✓Allowed,Blocked,Max,SafeOutputTargetConfig.Target,SafeOutputTargetConfig.TargetRepo,SafeOutputTargetConfig.AllowedRepos,GitHubTokencreate-project:
max,github-token,target-owner,title-prefix,views,field-definitions✓Max,GitHubToken,TargetOwner,TitlePrefix,Views,FieldDefinitions**missing-(redacted)
max,create-issue,title-prefix,labels,github-token✓Max,CreateIssue,TitlePrefix,Labels,GitHubToken(via BaseSafeOutputConfig)Documentation Coverage
From
/home/runner/work/gh-aw/gh-aw/docs/src/content/docs/reference/safe-outputs.md:All four operations are properly documented with descriptions.
Recommendations
Update the schema $comment to include the four missing operations:
assign-to-userunassign-from-usercreate-projectmissing-data(already hasmissing-tool)Current $comment is missing these operations from its list - while they are properly defined as schema properties and implemented in Go, they should be listed in the $comment for consistency and clarity.
All schema properties, Go struct fields, and documentation are aligned - only the $comment documentation string needs updating.
Reference Files
/home/runner/work/gh-aw/gh-aw/pkg/parser/schemas/main_workflow_schema.json/home/runner/work/gh-aw/gh-aw/pkg/workflow/assign_to_user.go/home/runner/work/gh-aw/gh-aw/pkg/workflow/unassign_from_user.go/home/runner/work/gh-aw/gh-aw/pkg/workflow/create_project.go/home/runner/work/gh-aw/gh-aw/pkg/workflow/missing_data.go/home/runner/work/gh-aw/gh-aw/pkg/workflow/missing_tool.go/home/runner/work/gh-aw/gh-aw/pkg/workflow/compiler_types.go/home/runner/work/gh-aw/gh-aw/docs/src/content/docs/reference/safe-outputs.mdBeta Was this translation helpful? Give feedback.
All reactions