Skip to content

[Code Quality] Extract magic constants from compiler_yaml.go to centralized constants package #12678

@github-actions

Description

@github-actions

Description

The compiler_yaml.go file contains hardcoded magic values (file paths, size limits, constants) that should be extracted to a centralized constants package. This makes the code harder to maintain and creates inconsistencies when the same values are used across multiple files.

Problems Identified

Hardcoded Values Found:

  1. File Paths:

    • /tmp/gh-aw/aw-prompts/prompt.txt (line 257) - appears multiple times
    • Should be in PathConstants
  2. Size Limits:

    • maxPatchSize := 1024 // default 1024 KB (line 298) - should be constant
    • Should be DefaultMaxPatchSize = 1024
  3. Other Magic Values:

    • Step IDs and output names scattered throughout
    • Should be defined as constants for easy reference

Impact

  • Maintainability: Must search for all occurrences to change values
  • Consistency: Risk of different values in different locations
  • Documentation: Hard to find canonical values
  • Type Safety: Strings/ints don't convey semantic meaning

Suggested Changes

1. Create centralized constants in pkg/constants/paths.go:

const (
    PromptFilePath = "/tmp/gh-aw/aw-prompts/prompt.txt"
    DefaultMaxPatchSize = 1024  // KB
)

2. Replace hardcoded values in compiler_yaml.go:

// Before:
maxPatchSize := 1024

// After:
maxPatchSize := constants.DefaultMaxPatchSize

3. Extract step IDs and output names (if applicable):

const (
    SetupStepID = "setup"
    AgentStepID = "agent"
    // ... etc
)

Files Affected

  • pkg/workflow/compiler_yaml.go - Replace hardcoded values
  • pkg/constants/paths.go (new) - Or add to existing constants file
  • Other files using same constants - Update imports

Success Criteria

  • All magic values in compiler_yaml.go extracted to constants
  • Constants defined with semantic type aliases where appropriate
  • All references updated to use constants
  • No hardcoded file paths or size limits remaining
  • All tests pass without modification
  • Documentation updated if constants are user-configurable

Source

Extracted from Daily Compiler Code Quality Report - 2026-01-30

Finding: Issue #2 - Hardcoded Magic Values (Low Priority)

Priority

Low-Medium - Improves code maintainability and reduces technical debt, but not blocking functionality.

Estimated Effort

1-2 hours (extraction + testing)

AI generated by Discussion Task Miner - Code Quality Improvement Agent

  • expires on Feb 13, 2026, 5:22 AM UTC

Metadata

Metadata

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions