Refresh Copilot Studio knowledge and query catalog for FOCUS 1.4#2210
Refresh Copilot Studio knowledge and query catalog for FOCUS 1.4#2210flanakin wants to merge 3 commits into
Conversation
…OCUS 1.4 Rewrite schema-reference.md for Costs_v1_4() with all 10 new FOCUS 1.3/1.4 columns (Allocated*, ContractApplied, ServiceProviderName, HostProviderName, CommitmentProgramEligibilityDetails, InvoiceDetailId, 12 ContractCommitment* row fields), remove the deleted ProviderName/PublisherName columns, and cross-check every listed column against the Costs_final_v1_4 table definition. Update agent-instructions.md, knowledge-descriptions.md, and weekly-report-guide.md from Costs_v1_2()/FOCUS 1.2 to Costs_v1_4(), replacing removed-column usage (PublisherName -> ServiceProviderName) in weekly-report-guide.md's KQL queries. Bump Build-QueryCatalog.ps1's hardcoded Costs() -> Costs_v1_2() rewrite to Costs_v1_4(). Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…OCUS 1.4 successors FOCUS 1.4 removes ProviderName and PublisherName from the Costs dataset; these queries read unversioned Costs(), which now resolves to the v1_4 schema and would fail on the removed columns. - costs-enriched-base.kql: ProviderName == 'Microsoft' -> HostProviderName == 'Microsoft' (infrastructure-provider check per the D3 mapping; identical behavior since down-conversion defines ProviderName = HostProviderName), with an explanatory comment. - top-other-transactions.kql: project ServiceProviderName (vendor that makes the service available - Marketplace publisher or Microsoft) in place of ProviderName/PublisherName for third-party purchase analysis. - finops-hub-database-guide.md: same HostProviderName fix in the "All available columns" example; Costs() table reference swaps the ProviderName/PublisherName rows for HostProviderName and ServiceProviderName. The Recommendations() and Transactions() table rows keep ProviderName - those datasets still carry it in v1_4 (hubs add-on column; not a FOCUS CostAndUsage dataset). Build-QueryCatalog.ps1 re-run to confirm a clean v1_4 catalog; its output (query-catalog.md) is gitignored, so there is nothing to commit. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…angelog' into flanakin/focus14-copilot-studio # Conflicts: # src/queries/finops-hub-database-guide.md
|
Synced with the updated base ( Conflict: Migrated: Verification: 🤖 Generated with Claude Code |
🛠️ Description
Work item W8b: refreshes the Copilot Studio knowledge files and remaining
_v1_2/query-catalog surfaces from FOCUS 1.2/v1_2 to FOCUS 1.4/v1_4. This is the copilot-studio counterpart to #2135 (which already fixedclaude-pluginandagent-skillsfiles).Stacked on
flanakin/focus14-phase7-tests-changelog(targets that branch, notdev).Per-file changes
src/templates/finops-hub-copilot-studio/knowledge/schema-reference.md— full rewrite forCosts_v1_4():Costs_final_v1_4:AllocatedMethodDetails,AllocatedMethodId,AllocatedResourceId,AllocatedResourceName,AllocatedTags,ContractApplied,ServiceProviderName,HostProviderName,CommitmentProgramEligibilityDetails,InvoiceDetailId— plus the 12 per-rowContractCommitment*columns also present inCosts_final_v1_4ProviderName/PublisherNamerows; replaced with a "Removed in FOCUS 1.4" callout under the new Provider section (renamed from Publisher) pointing toServiceProviderName/HostProviderNamePublisherNamex_BillingAccountName,x_LocationContractApplied, theContractCommitment*row fields, andInvoiceDetailIdsrc/templates/finops-hub-copilot-studio/knowledge-descriptions.md—Costs_v1_2()→Costs_v1_4()in the schema-reference.md descriptionsrc/templates/finops-hub-copilot-studio/agent-instructions.md— 4 occurrences ofCosts_v1_2()→Costs_v1_4()(schema-reference pointer, currency-detection query, scope-discovery query, core rule Hubs v0.1 – Power BI on CM exports #1)src/templates/finops-hub-copilot-studio/knowledge/weekly-report-guide.md— 6 occurrences ofCosts_v1_2()→Costs_v1_4();PublisherName→ServiceProviderNamein Q6 (marketplace costs) and Q7 (marketplace purchases) KQL, sincePublisherNameis removed in v1_4 and would break those queriessrc/scripts/Build-QueryCatalog.ps1— bumped the hardcodedCosts()→Costs_v1_2()rewrite (docstring, header text, and regex replacement) toCosts_v1_4()src/queries/catalog/costs-enriched-base.kql—ProviderName == 'Microsoft'→HostProviderName == 'Microsoft'in thex_CommitmentDiscountUtilizationPotentialcase (infrastructure-provider check per D3; behavior-identical since down-conversion definesProviderName = HostProviderName), with an explanatory KQL commentsrc/queries/catalog/top-other-transactions.kql— projectsServiceProviderName(vendor: Marketplace publisher or Microsoft; never null) in place of the removedProviderName, PublisherNamepair; header column list and note updatedsrc/queries/finops-hub-database-guide.md— sameHostProviderNamefix in the "All available columns" example query;Costs()table reference swaps theProviderName/PublisherNamerows forHostProviderNameandServiceProviderName(alphabetical positions). TheRecommendations()andTransactions()table rows intentionally keepProviderName— those datasets still carry it in v1_4 (hubs add-on column; verified inTransactions_final_v1_4/Recommendations_final_v1_4; not FOCUS CostAndUsage datasets)Cross-check results
Programmatically diffed every column listed in the rewritten
schema-reference.mdagainst theCosts_final_v1_4table definition inIngestionSetup_v1_4.kql(ground truth):Costs_final_v1_4— zero fabricated columnsCosts_final_v1_4missing from the doc after the rewrite (initially found 2 pre-existing gaps unrelated to FOCUS 1.4 —x_BillingAccountName,x_Location— and 12 newContractCommitment*row columns; all added)Remaining
_v1_2/ "FOCUS 1.2" hits (all justified)This is the only surviving hit across
src/templates/agent-skills/andsrc/templates/finops-hub-copilot-studio/. It's legitimate — documents the versioned-function pinning mechanism itself (already corrected by #2135; not a stale "1.2 is latest" claim).agent-skills/had no other unresolved hits — #2135 already fixedfinops-hubs.md's stale claims andfinops-hubs-deployment.md.Removed-column migration in
src/queries/(initially flagged, now fixed)The first commit flagged
ProviderName/PublisherNamereferences insrc/queries/as out of scope; scope was extended and the second commit (b2d138a4) fixes them. All three files query unversionedCosts(), which resolves to v1_4 where those columns no longer exist, so the queries would have broken on the new schema. Successor picked per usage, per plan D3:ProviderName == 'Microsoft') →HostProviderName == 'Microsoft'(infrastructure provider; alwaysMicrosoftfor Cost Management data). Behavior-identical: the v1_0/v1_2 down-conversion definesProviderName = HostProviderName.ServiceProviderName(vendor; Marketplace publisher or Microsoft; never null).Remaining
ProviderNamehits insrc/queries/after the fix — all justified:finops-hub-database-guide.mdRecommendations()andTransactions()table rows: those datasets keepProviderNamein v1_4 (hubs add-on column, verified againstTransactions_final_v1_4/Recommendations_final_v1_4; not FOCUS CostAndUsage datasets)HostProviderName/ServiceProviderNamecolumns themselves (substring matches)Verification
grep -rn '_v1_2' <touched dirs>— only the one justified hit aboveschema-reference.mdcolumns vs.Costs_final_v1_4— 175/175 match, 0 missing, 0 fabricatedgrep -rn 'ProviderName\|PublisherName' src/queries/— only the justified hits listed aboveBuild-QueryCatalog.ps1re-run after the query fixes — generates cleanly; catalog usesCosts_v1_4()throughout with no live removed-column references. Output (query-catalog.md) is gitignored, so nothing to commit.pwsh -Command Invoke-Pester -Path ./src/powershell/Tests/Unit/*— 2047 passed, 0 failed, 4 skipped (pre-existing skips; nothing asserts on the copilot-studio/query files touched here); re-run green after both commits📋 Checklist
🔬 How did you test this change?
📦 Deploy to test?
🙋♀️ Do any of the following that apply?
🤖 Generated with Claude Code