refactor(workflow): rename same-name/different-semantics helpers to eliminate navigation confusion#44149
Conversation
…sion - Rename workflow.extractToolsFromFrontmatter → extractToolsMapFromFrontmatter to distinguish it from parser.extractToolsFromFrontmatter (different signature and semantics: returns map[string]any vs (string, error)) - Rename workflow.resolveImportInputPath → resolveImportInputValue to distinguish it from parser.resolveImportInputPath (different return type: any vs string) Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com>
|
@copilot merge main and recompile |
…ntic-function-clustering # Conflicts: # .github/workflows/daily-fact.lock.yml Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com>
Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com>
|
🧠 Matt Pocock Skills Reviewer has completed the skills-based review. ✅ |
|
✅ Design Decision Gate 🏗️ completed the design decision gate check. No ADR enforcement needed: PR #44149 does not have the 'implementation' label and has only 17 new lines of code in business logic directories (threshold: 100). |
|
✅ Test Quality Sentinel completed test quality analysis. |
|
✅ PR Code Quality Reviewer completed the code quality review. |
There was a problem hiding this comment.
Pull request overview
This PR aims to reduce grep/IDE navigation confusion by renaming two unexported helper functions in pkg/workflow that previously shared names with different helpers in pkg/parser. However, the PR also includes substantial compiled workflow (.lock.yml) churn, including deleting two compiled workflows and changing strict-mode markers/steps across multiple lock files.
Changes:
- Renamed workflow frontmatter helper
extractToolsFromFrontmatter→extractToolsMapFromFrontmatterand updated call sites/tests. - Renamed import-input resolution helper
resolveImportInputPath→resolveImportInputValueand updated call sites. - Updated many compiled workflow lock files (strict-mode metadata/behavior changes), and removed
test-workflow.lock.ymlandtest-dispatcher.lock.yml.
Show a summary per file
| File | Description |
|---|---|
| pkg/workflow/frontmatter_extraction_metadata.go | Renames the tools-frontmatter extraction helper definition. |
| pkg/workflow/compiler_orchestrator_tools.go | Updates call site to renamed tools-frontmatter helper. |
| pkg/workflow/git_commands_integration_test.go | Updates test helper usage to renamed tools-frontmatter helper. |
| pkg/workflow/copilot_git_commands_integration_test.go | Updates test helper usage to renamed tools-frontmatter helper. |
| pkg/workflow/firewall_workflow_test.go | Updates test helper usage to renamed tools-frontmatter helper. |
| pkg/workflow/agentic_workflow_test.go | Updates helper usage and related test text to renamed tools-frontmatter helper. |
| pkg/workflow/tools_types_test.go | Updates helper usage (but still has a test-name mismatch noted in comments). |
| pkg/workflow/expression_extraction.go | Renames import-input path resolver wrapper and updates usage. |
| .github/workflows/test-workflow.lock.yml | Deleted compiled workflow file (should likely be regenerated or removed intentionally with source/refs). |
| .github/workflows/test-dispatcher.lock.yml | Deleted compiled workflow file (should likely be regenerated or removed intentionally with source/refs). |
| .github/workflows/mcp-inspector.lock.yml | Compiled output changed (strict-mode metadata/env and removal of strict enforcement step). |
| .github/workflows/gpclean.lock.yml | Compiled output changed (strict-mode metadata/env and removal of strict enforcement step). |
| .github/workflows/example-permissions-warning.lock.yml | Compiled output changed (strict-mode metadata/env and removal of strict enforcement step). |
| .github/workflows/dev.lock.yml | Compiled output changed (strict-mode metadata/env and removal of strict enforcement step). |
| .github/workflows/daily-team-evolution-insights.lock.yml | Compiled output changed (strict-mode metadata/env and removal of strict enforcement step). |
| .github/workflows/copilot-pr-merged-report.lock.yml | Compiled output changed (strict-mode metadata/env and removal of strict enforcement step). |
| .github/workflows/cli-version-checker.lock.yml | Compiled output changed (strict-mode metadata/env and removal of strict enforcement step). |
| .github/workflows/cli-consistency-checker.lock.yml | Compiled output changed (strict-mode metadata/env and removal of strict enforcement step). |
| .github/workflows/blog-auditor.lock.yml | Compiled output changed (strict-mode metadata/env and removal of strict enforcement step). |
| .github/workflows/ace-editor.lock.yml | Compiled output changed (strict-mode metadata/env and removal of strict enforcement step). |
Review details
Tip
Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Comments suppressed due to low confidence (1)
.github/workflows/test-workflow.lock.yml:1
- This compiled workflow file was deleted, but the corresponding source workflow
.github/workflows/test-workflow.mdis still present. Deleting the.lock.ymlremoves the actual GitHub Actions workflow (and breaks existing references/badges that point attest-workflow.lock.yml). Unless the intent is to remove the workflow entirely, the lock file should be regenerated (e.g. viagh aw compile) and committed, or the.mdsource and references should be removed/updated together.
- Files reviewed: 19/22 changed files
- Comments generated: 2
- Review effort level: Low
| } | ||
|
|
||
| result := extractToolsFromFrontmatter(frontmatter) | ||
| result := extractToolsMapFromFrontmatter(frontmatter) |
There was a problem hiding this comment.
Fixed in the latest commit — renamed to TestExtractToolsMapFromFrontmatter. Also renamed the sibling test functions (TestExtractMCPServersMapFromFrontmatter, TestExtractRuntimesMapFromFrontmatter) for consistency with the sibling helper renames.
| GH_AW_COMPILED_STRICT: "true" | ||
| uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 | ||
| with: | ||
| script: | | ||
| const { setupGlobals } = require('${{ runner.temp }}/gh-aw/actions/setup_globals.cjs'); | ||
| setupGlobals(core, github, context, exec, io, getOctokit); | ||
| const { main } = require('${{ runner.temp }}/gh-aw/actions/generate_aw_info.cjs'); | ||
| await main(core, context); |
There was a problem hiding this comment.
Confirmed intentional. The strict-mode flip is a side effect of make recompile run after merging main. The compiler's default changed in main to emit GH_AW_COMPILED_STRICT: "true" for workflows that don't explicitly set strict: false in their frontmatter. The "Enforce strict mode policy" step is only emitted for non-strict compilations, so its absence in the regenerated files is expected. All affected workflows were reviewed and none requires an explicit strict: false override.
There was a problem hiding this comment.
Review: refactor(workflow) identifier renames
The renames are correct and complete. No issues found.
extractToolsMapFromFrontmatter — the ...Map suffix correctly signals the map[string]any return type and aligns with the existing sibling trio (extractMCPServersFromFrontmatter, extractRuntimesFromFrontmatter). All 7 call sites in tests and production code are updated.
resolveImportInputValue — ...Value vs ...Path makes the return-type divergence from the parser package version self-documenting at the call site. The 1 production call site and function definition are both updated.
No logic changes were introduced; the refactor is a pure mechanical rename. The lock-file churn in .github/workflows/*.lock.yml is expected recompile noise.
🧵 Reviewed using Impeccable skills by Impeccable Skills Reviewer · 70.4 AIC · ⌖ 8.46 AIC · ⊞ 4.8K
🧪 Test Quality Sentinel Report✅ Test Quality Score: 100/100 — Excellent
📊 Metrics (0 new tests — 5 files updated)
Changed test files and the nature of each change:
Verdict
Warning Firewall blocked 1 domainThe following domain was blocked by the firewall during workflow execution:
network:
allowed:
- defaults
- "awmgmcpg"See Network Configuration for more information.
|
There was a problem hiding this comment.
Skills-Based Review 🧠
Applied /codebase-design — requesting one small change to complete the rename.
📋 Key Themes & Highlights
Key Themes
- Incomplete rename:
TestExtractToolsFromFrontmatterinpkg/workflow/tools_types_test.go(line 362) was not renamed toTestExtractToolsMapFromFrontmatter. Its body already callsextractToolsMapFromFrontmatter, but the test function name still references the old identifier, leaving a stale anchor for grep/IDE navigation.
Positive Highlights
- ✅ Clear, self-documenting rename rationale:
...Mapsuffix correctly aligns with sibling helpers (extractMCPServersFromFrontmatter,extractRuntimesFromFrontmatter). - ✅
...Valuevs...Pathmakes the return-type contract visible at the call site. - ✅ All production call sites and test bodies updated consistently.
- ✅ PR description clearly explains the signature difference motivating each rename — good documentation for future readers.
🧠 Reviewed using Matt Pocock's skills by Matt Pocock Skills Reviewer · 70.8 AIC · ⌖ 6.51 AIC · ⊞ 6.6K
Comment /matt to run again
Comments that could not be inline-anchored
pkg/workflow/tools_types_test.go:362
[/codebase-design] The test function TestExtractToolsFromFrontmatter was not renamed to match the helper rename — it still references the old identifier, directly contradicting the PR's goal of eliminating navigation confusion. A grep for extractToolsFromFrontmatter would still land here.
<details>
<summary>💡 Suggested fix</summary>
Rename the test function to mirror the production code:
-func TestExtractToolsFromFrontmatter(t *testing.T) {
+func TestExtractToolsMapFromFrontma…
</details>There was a problem hiding this comment.
Three issues block merge — two naming decisions that don't achieve the stated goal, and one behavioral change bundled without disclosure.
### Blocking findings
1. resolveImportInputValue rename creates an identical-name + identical-signature collision (pkg/workflow/expression_extraction.go:537)
The rename trades workflow.resolveImportInputPath (different return type from parser) for workflow.resolveImportInputValue — which is exactly the same name and signature as parser.resolveImportInputValue. The original problem (confusing cross-package name overlap) is not fixed; it is replicated with less information to tell the two functions apart. A name that does not exist anywhere in the codebase (e.g. resolveImportInputByPath) would actually achieve the goal.
2. extractToolsMapFromFrontmatter ...Map suffix is asymmetric with stated siblings (pkg/workflow/frontmatter_extraction_metadata.go:305)
The PR description claims the ...Map suffix aligns with sibling helpers, but extractMCPServersFromFrontmatter and extractRuntimesFromFrontmatter (which have the same return type and the same delegate) do not carry ...Map. The rename introduces inconsistency rather than resolving it.
3. Lock files bundle an unannounced strict-mode change (.github/workflows/*.lock.yml)
All recompiled lock files flip GH_AW_COMPILED_STRICT: false → true and silently drop the Enforce strict mode policy guard step. This is a runtime behavioral change, not a mechanical side-effect of the Go renames, and it is not described in the PR body at all.
🔎 Code quality review by PR Code Quality Reviewer · 139.2 AIC · ⌖ 5.45 AIC · ⊞ 5.4K
Comment /review to run again
| // supporting one level of nesting as defined by import-schema object types. | ||
| // Returns the resolved value and true on success, or nil and false when the path is not found. | ||
| func resolveImportInputPath(importInputs map[string]any, path string) (any, bool) { | ||
| func resolveImportInputValue(importInputs map[string]any, path string) (any, bool) { |
There was a problem hiding this comment.
Rename defeats its own goal: resolveImportInputValue in pkg/workflow now has the identical name and identical signature as resolveImportInputValue in pkg/parser — trading one cross-package same-name problem for one that is arguably worse (same name + same signature vs. same name + different signature).
💡 Details
The motivation was to distinguish workflow.resolveImportInputPath (returns any) from parser.resolveImportInputPath (returns string), because different return types with the same name cause IDE navigation confusion.
After this rename:
// pkg/workflow/expression_extraction.go:537
func resolveImportInputValue(importInputs map[string]any, path string) (any, bool) { ... }
// pkg/parser/import_input_substitution.go:55
func resolveImportInputValue(inputs map[string]any, inputPath string) (any, bool) { ... }Both now have identical names and identical signatures. Go's separate packages prevent a compile error, but IDE "Find all references" / grep navigation is now more ambiguous than before — the old collision had different signatures to tell them apart; the new collision has nothing.
A name that doesn't exist anywhere in the codebase today (e.g. resolveImportInputByPath or lookupImportInputPath) would actually achieve the stated goal.
There was a problem hiding this comment.
Fixed — renamed to resolveImportInputByPath as suggested. This name doesn't exist in pkg/parser or anywhere else in the codebase, so grep/IDE navigation is now unambiguous.
| // extractToolsFromFrontmatter extracts tools section from frontmatter map | ||
| func extractToolsFromFrontmatter(frontmatter map[string]any) map[string]any { | ||
| // extractToolsMapFromFrontmatter extracts tools section from frontmatter map | ||
| func extractToolsMapFromFrontmatter(frontmatter map[string]any) map[string]any { |
There was a problem hiding this comment.
...Map suffix is inconsistent with the two sibling helpers it's supposed to align with: extractMCPServersFromFrontmatter and extractRuntimesFromFrontmatter both return map[string]any and both delegate to ExtractMapField — yet neither uses the ...Map suffix.
💡 Details
The PR description justifies the new name:
The
...Mapsuffix aligns with sibling helpersextractMCPServersFromFrontmatter/extractRuntimesFromFrontmatter.
But those siblings don't use the ...Map suffix:
// frontmatter_extraction_metadata.go
func extractToolsMapFromFrontmatter(...) map[string]any { ... } // renamed, has Map
func extractMCPServersFromFrontmatter(...) map[string]any { ... } // sibling, no Map
func extractRuntimesFromFrontmatter(...) map[string]any { ... } // sibling, no MapThe rename has created asymmetry rather than resolved it. Either all three should carry ...Map or none should. If the goal is purely to avoid collision with parser.extractToolsFromFrontmatter, the comment on the function is a better place to note the distinction than embedding implementation detail in the name.
There was a problem hiding this comment.
Applied ...Map to both siblings as well: extractMCPServersFromFrontmatter → extractMCPServersMapFromFrontmatter and extractRuntimesFromFrontmatter → extractRuntimesMapFromFrontmatter. All three helpers in the group now carry the suffix consistently.
| @@ -1,4 +1,4 @@ | |||
| # gh-aw-metadata: {"schema_version":"v4","frontmatter_hash":"cd4d39aa2cc775e945a501c39bc5f93956f9c16e93b692398b6495bae094c8d6","body_hash":"30d40738b32791caae633af85d6d2bb8aac971f646c1bab499220afd3c17b8a2","agent_id":"copilot","engine_versions":{"copilot":"1.0.68"}} | |||
| # gh-aw-metadata: {"schema_version":"v4","frontmatter_hash":"cd4d39aa2cc775e945a501c39bc5f93956f9c16e93b692398b6495bae094c8d6","body_hash":"30d40738b32791caae633af85d6d2bb8aac971f646c1bab499220afd3c17b8a2","strict":true,"agent_id":"copilot","engine_versions":{"copilot":"1.0.68"}} | |||
| # gh-aw-manifest: {"version":1,"secrets":["COPILOT_GITHUB_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_GRAFANA_AUTHORIZATION","GH_AW_OTEL_GRAFANA_ENDPOINT","GH_AW_OTEL_SENTRY_AUTHORIZATION","GH_AW_OTEL_SENTRY_ENDPOINT","GITHUB_TOKEN"],"actions":[{"repo":"actions/cache/restore","sha":"55cc8345863c7cc4c66a329aec7e433d2d1c52a9","version":"v6.1.0"},{"repo":"actions/cache/save","sha":"55cc8345863c7cc4c66a329aec7e433d2d1c52a9","version":"v6.1.0"},{"repo":"actions/checkout","sha":"9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0","version":"v7.0.0"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9.0.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.27.26","digest":"sha256:b283b1f037d2e068532fe178a06f2944696c3933ba11604979134e7896ac6f8c","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.27.26@sha256:b283b1f037d2e068532fe178a06f2944696c3933ba11604979134e7896ac6f8c"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.27.26","digest":"sha256:1743dbac9bf4225f3acfdcbce4f77f5a3e61e22b2e929305525f00196693c015","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.27.26@sha256:1743dbac9bf4225f3acfdcbce4f77f5a3e61e22b2e929305525f00196693c015"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.27.26","digest":"sha256:d4647c3bfaf80889eb1dbd3d4e2063340cbf94c0ca6c5747bbfc8507b12f3485","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.27.26@sha256:d4647c3bfaf80889eb1dbd3d4e2063340cbf94c0ca6c5747bbfc8507b12f3485"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.33","digest":"sha256:f0e1f1d562f01e737f3ef125cb4d7057ff87a68a97927f5ea9fd6d3f5091da06","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.33@sha256:f0e1f1d562f01e737f3ef125cb4d7057ff87a68a97927f5ea9fd6d3f5091da06"},{"image":"ghcr.io/github/gh-aw-node","digest":"sha256:529d02eb970b1161aa25c593a9c3df57fdfad5a8add328cb3b6eccef66f3183b","pinned_image":"ghcr.io/github/gh-aw-node@sha256:529d02eb970b1161aa25c593a9c3df57fdfad5a8add328cb3b6eccef66f3183b"},{"image":"ghcr.io/github/github-mcp-server:v1.5.0","digest":"sha256:e25564dccc9110a70a77b9df560cbde11aa392fcb5f08b9abe5c4ebc6d146ea4","pinned_image":"ghcr.io/github/github-mcp-server:v1.5.0@sha256:e25564dccc9110a70a77b9df560cbde11aa392fcb5f08b9abe5c4ebc6d146ea4"}]} | |||
There was a problem hiding this comment.
Unannounced behavioral change bundled into a rename PR: all updated lock files silently flip GH_AW_COMPILED_STRICT: "false" → "true" and delete the "Enforce strict mode policy" guard step — none of this is mentioned in the PR description.
💡 Details
Every non-deleted lock file in this PR contains two functional changes:
GH_AW_COMPILED_STRICTenv var changed from"false"to"true"in the metadata comment and in the job env block.- The step:
is removed from all updated workflows.
- name: Enforce strict mode policy if: ${{ vars.GH_AW_POLICY_STRICT == 'true' }} run: | echo "::error::GH_AW_POLICY_STRICT=true but this workflow was not compiled in strict mode." exit 1
This is not a mechanical side-effect of the Go identifier renames — it reflects a change in strict-mode compilation defaults. These changes affect runtime behaviour in production and should be called out explicitly in the PR description so reviewers can evaluate the impact, especially for repos with GH_AW_POLICY_STRICT=true set.
There was a problem hiding this comment.
These are side effects of running make recompile after merging main, not changes from the identifier renames. The compiler's default in main changed to compile in strict mode when no strict: false is set in the workflow frontmatter. As a result, GH_AW_COMPILED_STRICT is now "true" and the enforcement step (which is only emitted for non-strict compilations) is absent. All affected workflows were reviewed and none requires a strict: false override. The PR description has been updated to document this.
|
@copilot please run the
|
…ntic-function-clustering Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com>
Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com>
Done — merged main (no conflicts) and recompiled all 258 workflows (0 errors). |
All code changes were already in place from previous commits. Verified the lock files are in sync with their |
🤖 PR Triage
Rationale: Renames two unexported helpers that shared names with different-semantics siblings in another package. Pure identifier rename, no logic changes. Batch with #44179. CHANGES_REQUESTED; needs CR resolution. Run §28924016278
|
|
@copilot merge main and recompile |
…ntic-function-clustering # Conflicts: # .github/workflows/ab-testing-advisor.lock.yml # .github/workflows/agent-performance-analyzer.lock.yml # .github/workflows/agent-persona-explorer.lock.yml # .github/workflows/agentic-token-optimizer.lock.yml # .github/workflows/ai-moderator.lock.yml # .github/workflows/approach-validator.lock.yml # .github/workflows/archie.lock.yml # .github/workflows/artifacts-summary.lock.yml # .github/workflows/auto-triage-issues.lock.yml # .github/workflows/avenger.lock.yml # .github/workflows/aw-failure-investigator.lock.yml # .github/workflows/bot-detection.lock.yml # .github/workflows/breaking-change-checker.lock.yml # .github/workflows/chaos-pr-bundle-fuzzer.lock.yml # .github/workflows/ci-coach.lock.yml # .github/workflows/ci-doctor.lock.yml # .github/workflows/claude-code-user-docs-review.lock.yml # .github/workflows/code-scanning-fixer.lock.yml # .github/workflows/code-simplifier.lock.yml # .github/workflows/codex-github-remote-mcp-test.lock.yml # .github/workflows/commit-changes-analyzer.lock.yml # .github/workflows/contribution-check.lock.yml # .github/workflows/copilot-agent-analysis.lock.yml # .github/workflows/copilot-cli-deep-research.lock.yml # .github/workflows/copilot-opt.lock.yml # .github/workflows/copilot-pr-nlp-analysis.lock.yml # .github/workflows/copilot-pr-prompt-analysis.lock.yml # .github/workflows/copilot-session-insights.lock.yml # .github/workflows/craft.lock.yml # .github/workflows/daily-agent-of-the-day-blog-writer.lock.yml # .github/workflows/daily-ambient-context-optimizer.lock.yml # .github/workflows/daily-assign-issue-to-user.lock.yml # .github/workflows/daily-aw-cross-repo-compile-check.lock.yml # .github/workflows/daily-awf-spec-compiler-surfacing.lock.yml # .github/workflows/daily-cache-strategy-analyzer.lock.yml # .github/workflows/daily-caveman-optimizer.lock.yml # .github/workflows/daily-choice-test.lock.yml # .github/workflows/daily-cli-performance.lock.yml # .github/workflows/daily-code-metrics.lock.yml # .github/workflows/daily-community-attribution.lock.yml # .github/workflows/daily-compiler-quality.lock.yml # .github/workflows/daily-compiler-threat-spec-optimizer.lock.yml # .github/workflows/daily-doc-healer.lock.yml # .github/workflows/daily-doc-updater.lock.yml # .github/workflows/daily-experiment-report.lock.yml # .github/workflows/daily-fact.lock.yml # .github/workflows/daily-file-diet.lock.yml # .github/workflows/daily-firewall-report.lock.yml # .github/workflows/daily-formal-spec-verifier.lock.yml # .github/workflows/daily-function-namer.lock.yml # .github/workflows/daily-geo-optimizer.lock.yml # .github/workflows/daily-hippo-learn.lock.yml # .github/workflows/daily-issues-report.lock.yml # .github/workflows/daily-malicious-code-scan.lock.yml # .github/workflows/daily-mcp-concurrency-analysis.lock.yml # .github/workflows/daily-model-inventory.lock.yml # .github/workflows/daily-model-resolution.lock.yml # .github/workflows/daily-multi-device-docs-tester.lock.yml # .github/workflows/daily-news.lock.yml # .github/workflows/daily-observability-report.lock.yml # .github/workflows/daily-performance-summary.lock.yml # .github/workflows/daily-regulatory.lock.yml # .github/workflows/daily-reliability-review.lock.yml # .github/workflows/daily-rendering-scripts-verifier.lock.yml # .github/workflows/daily-repo-chronicle.lock.yml # .github/workflows/daily-safe-output-integrator.lock.yml # .github/workflows/daily-safe-outputs-conformance.lock.yml # .github/workflows/daily-safeoutputs-git-simulator.lock.yml # .github/workflows/daily-secrets-analysis.lock.yml # .github/workflows/daily-security-observability.lock.yml # .github/workflows/daily-security-red-team.lock.yml # .github/workflows/daily-semgrep-scan.lock.yml # .github/workflows/daily-spdd-spec-planner.lock.yml # .github/workflows/daily-team-evolution-insights.lock.yml # .github/workflows/daily-team-status.lock.yml # .github/workflows/daily-testify-uber-super-expert.lock.yml # .github/workflows/daily-windows-terminal-integration-builder.lock.yml # .github/workflows/daily-workflow-updater.lock.yml # .github/workflows/daily-yamllint-fixer.lock.yml # .github/workflows/dataflow-pr-discussion-dataset.lock.yml # .github/workflows/dead-code-remover.lock.yml # .github/workflows/deep-report.lock.yml # .github/workflows/delight.lock.yml # .github/workflows/dependabot-burner.lock.yml # .github/workflows/dependabot-go-checker.lock.yml # .github/workflows/dependabot-repair.lock.yml # .github/workflows/deployment-incident-monitor.lock.yml # .github/workflows/design-decision-gate.lock.yml # .github/workflows/designer-drift-audit.lock.yml # .github/workflows/dev-hawk.lock.yml # .github/workflows/dev.lock.yml # .github/workflows/developer-docs-consolidator.lock.yml # .github/workflows/dictation-prompt.lock.yml # .github/workflows/discussion-task-miner.lock.yml # .github/workflows/draft-pr-cleanup.lock.yml # .github/workflows/eslint-miner.lock.yml # .github/workflows/eslint-monster.lock.yml # .github/workflows/eslint-refiner.lock.yml # .github/workflows/example-permissions-warning.lock.yml # .github/workflows/example-workflow-analyzer.lock.yml # .github/workflows/firewall-escape.lock.yml # .github/workflows/functional-pragmatist.lock.yml # .github/workflows/github-mcp-structural-analysis.lock.yml # .github/workflows/github-mcp-tools-report.lock.yml # .github/workflows/github-remote-mcp-auth-test.lock.yml # .github/workflows/glossary-maintainer.lock.yml # .github/workflows/go-fan.lock.yml # .github/workflows/go-logger.lock.yml # .github/workflows/gpclean.lock.yml # .github/workflows/grumpy-reviewer.lock.yml # .github/workflows/hippo-embed.lock.yml # .github/workflows/hourly-ci-cleaner.lock.yml # .github/workflows/impeccable-skills-reviewer.lock.yml # .github/workflows/instructions-janitor.lock.yml # .github/workflows/issue-arborist.lock.yml # .github/workflows/issue-monster.lock.yml # .github/workflows/issue-triage-agent.lock.yml # .github/workflows/jsweep.lock.yml # .github/workflows/layout-spec-maintainer.lock.yml # .github/workflows/lint-monster.lock.yml # .github/workflows/linter-miner.lock.yml # .github/workflows/mattpocock-skills-reviewer.lock.yml # .github/workflows/mergefest.lock.yml # .github/workflows/metrics-collector.lock.yml # .github/workflows/necromancer.lock.yml # .github/workflows/notion-issue-summary.lock.yml # .github/workflows/objective-impact-report.lock.yml # .github/workflows/org-health-report.lock.yml # .github/workflows/outcome-collector.lock.yml # .github/workflows/plan.lock.yml # .github/workflows/poem-bot.lock.yml # .github/workflows/pr-code-quality-reviewer.lock.yml # .github/workflows/pr-description-caveman.lock.yml # .github/workflows/pr-nitpick-reviewer.lock.yml # .github/workflows/pr-sous-chef.lock.yml # .github/workflows/pr-triage-agent.lock.yml # .github/workflows/prompt-clustering-analysis.lock.yml # .github/workflows/q.lock.yml # .github/workflows/refactoring-cadence.lock.yml # .github/workflows/refiner.lock.yml # .github/workflows/repo-audit-analyzer.lock.yml # .github/workflows/repository-quality-improver.lock.yml # .github/workflows/ruflo-backed-task.lock.yml # .github/workflows/schema-consistency-checker.lock.yml # .github/workflows/schema-feature-coverage.lock.yml # .github/workflows/scout.lock.yml # .github/workflows/security-compliance.lock.yml # .github/workflows/security-review.lock.yml # .github/workflows/semantic-function-refactor.lock.yml # .github/workflows/sergo.lock.yml # .github/workflows/skillet.lock.yml # .github/workflows/smoke-agent-all-merged.lock.yml # .github/workflows/smoke-agent-all-none.lock.yml # .github/workflows/smoke-agent-public-approved.lock.yml # .github/workflows/smoke-agent-public-none.lock.yml # .github/workflows/smoke-agent-scoped-approved.lock.yml # .github/workflows/smoke-antigravity.lock.yml # .github/workflows/smoke-ci.lock.yml # .github/workflows/smoke-claude-on-copilot.lock.yml # .github/workflows/smoke-claude.lock.yml # .github/workflows/smoke-codex.lock.yml # .github/workflows/smoke-copilot-aoai-apikey.lock.yml # .github/workflows/smoke-copilot-aoai-entra.lock.yml # .github/workflows/smoke-copilot-arm.lock.yml # .github/workflows/smoke-copilot.lock.yml # .github/workflows/smoke-create-cross-repo-pr.lock.yml # .github/workflows/smoke-crush.lock.yml # .github/workflows/smoke-gemini.lock.yml # .github/workflows/smoke-opencode.lock.yml # .github/workflows/smoke-otel-backends.lock.yml # .github/workflows/smoke-pi.lock.yml # .github/workflows/smoke-project.lock.yml # .github/workflows/smoke-update-cross-repo-pr.lock.yml # .github/workflows/spec-enforcer.lock.yml # .github/workflows/spec-extractor.lock.yml # .github/workflows/spec-librarian.lock.yml # .github/workflows/stale-pr-cleanup.lock.yml # .github/workflows/stale-repo-identifier.lock.yml # .github/workflows/static-analysis-report.lock.yml # .github/workflows/step-name-alignment.lock.yml # .github/workflows/sub-issue-closer.lock.yml # .github/workflows/technical-doc-writer.lock.yml # .github/workflows/terminal-stylist.lock.yml # .github/workflows/tidy.lock.yml # .github/workflows/typist.lock.yml # .github/workflows/ubuntu-image-analyzer.lock.yml # .github/workflows/uk-ai-operational-resilience.lock.yml # .github/workflows/unbloat-docs.lock.yml # .github/workflows/weekly-blog-post-writer.lock.yml # .github/workflows/weekly-issue-summary.lock.yml # .github/workflows/weekly-safe-outputs-spec-review.lock.yml # .github/workflows/workflow-generator.lock.yml # .github/workflows/workflow-health-manager.lock.yml # .github/workflows/workflow-normalizer.lock.yml Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com>
|
@copilot please run the
|
|
🎉 This pull request is included in a new release. Release: |
Two unexported helpers in
pkg/workflowshared names with helpers inpkg/parserbut had different signatures and semantics, making grep/IDE navigation misleading.Renames
extractToolsFromFrontmatter→extractToolsMapFromFrontmatter(pkg/workflow)Parser version:
func(map[string]any) (string, error)— mergestools+mcp-serversinto JSONWorkflow version:
func(map[string]any) map[string]any— returns only thetoolsfield as a mapThe
…Mapsuffix aligns with sibling helpersextractMCPServersFromFrontmatter/extractRuntimesFromFrontmatter.resolveImportInputPath→resolveImportInputValue(pkg/workflow)Parser version:
func(...) (string, bool)— returns string-formatted valueWorkflow version:
func(...) (any, bool)— returns raw untyped value…Valuevs…Pathmakes the return-type difference self-documenting.No logic changes — purely identifier renames across definition and all call sites.