Skip to content

Refresh Claude Code plugin skill files for FOCUS 1.4#2135

Draft
flanakin wants to merge 12 commits into
flanakin/focus14-phase2-hubs-1.3from
flanakin/focus14-phase6-plugin
Draft

Refresh Claude Code plugin skill files for FOCUS 1.4#2135
flanakin wants to merge 12 commits into
flanakin/focus14-phase2-hubs-1.3from
flanakin/focus14-phase6-plugin

Conversation

@flanakin

@flanakin flanakin commented May 6, 2026

Copy link
Copy Markdown
Collaborator

🛠️ Description

Refreshes the Claude Code plugin and agent-skills files for the FOCUS 1.4 (hubs v1_4) schema. Part of the FOCUS 1.4 stack: #2126 (ingestion) → #2128 (hub functions) → this PR#2136#2194.

  • Documents all eight hub analytic functions (Costs(), Prices(), CommitmentDiscountUsage(), ContractCommitments(), BillingPeriods(), InvoiceDetails(), Recommendations(), Transactions()) with unversioned functions resolving to the latest supported schema (v1_4) and versioned variants for pinning.
  • Adds the new FOCUS columns to the Costs() schema docs: ContractApplied, ServiceProviderName, HostProviderName (FOCUS 1.3 columns available in the hubs v1_4 schema) plus the FOCUS 1.4 additions (CommitmentProgramEligibilityDetails, InvoiceDetailId, 12 per-row ContractCommitment* columns).
  • Documents correct provider semantics: ServiceProviderName = vendor that makes the service available (Marketplace publisher or Microsoft; never null; replaces the removed PublisherName/ProviderName); HostProviderName = infrastructure provider hosting the resource (Microsoft for Cost Management data).
  • Adds "no data until Microsoft Cost Management ships a FOCUS 1.4 export" caveats for ContractCommitments(), BillingPeriods(), and InvoiceDetails().
  • Corrects supported FOCUS export versions (1.0-preview(v1), 1.0, 1.0r2, 1.2-preview, 1.2; no 1.4 export yet) in the deployment reference.

Files changed (vs. base flanakin/focus14-phase2-hubs-1.3)

  • src/templates/claude-plugin/agents/ftk-database-query.md
  • src/templates/claude-plugin/output-styles/ftk-output-style.md
  • src/templates/agent-skills/finops-toolkit/references/finops-hubs.md
  • src/templates/agent-skills/finops-toolkit/references/finops-hubs-deployment.md

KQL/Bicep changes visible in the diff before retargeting came from merging the fixed flanakin/focus14-phase2-hubs-1.3 base (including removal of a previously committed unresolved merge-conflict fragment in HubSetup_v1_4.kql); they are not part of this PR's content.

Verification

  • No merge-conflict markers or stray v1_3 references remain in src/ (grep verified; only the pre-existing benign TODO in IngestionSetup_v1_2.kql).
  • Provider mapping direction verified against IngestionSetup_v1_4.kql (ServiceProviderName ← PublisherName/ProviderName fallback; HostProviderName ← ProviderName fallback).
  • Function names and column lists verified against HubSetup_Latest.kql, HubSetup_v1_4.kql, and IngestionSetup_v1_4_Datasets.kql.
  • ./src/scripts/Build-Toolkit finops-hub passes.
  • Plugin skills not yet exercised against a live hubs v1_4 deployment (blocked until a FOCUS 1.4 export is available).

📋 Checklist

🔬 How did you test this change?

  • 🤏 Lint tests
  • 🤞 PS -WhatIf / az validate
  • 👍 Manually deployed + verified
  • 💪 Unit tests
  • 🙌 Integration tests

📦 Deploy to test?

  • Hubs + ADX (managed)
  • Hubs + Fabric (manual) — URI:
  • Hubs (manual)
  • Hubs (no data)
  • Workbooks
  • Alerts

🙋‍♀️ Do any of the following that apply?

  • 🚨 This is a breaking change.
  • 🤏 The change is less than 20 lines of code.

🤖 Generated with Claude Code

flanakin and others added 4 commits May 6, 2026 08:35
Adds the FOCUS 1.3 Contract Commitment supplemental dataset:
- ContractCommitment_raw table in IngestionSetup_RawTables.kql with
  the 14 mandatory FOCUS 1.3 columns plus standard hubs source
  metadata.
- ContractCommitment_transform_v1_3 + ContractCommitment_final_v1_3
  in IngestionSetup_v1_3.kql, with update policy mapping raw to final.
- ContractCommitment_v1_3 hub function in HubSetup_v1_3.kql that
  reads the final table directly (no older versions to union).
- Unversioned ContractCommitment alias in HubSetup_Latest.kql.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Adds IngestionSetup_v1_4.kql as a preview schema for FOCUS 1.4
working_draft. Cost and Usage drops the deprecated ProviderName
and PublisherName columns (removed in 1.4 per spec). Contract
Commitment expands by 14 new columns: BenefitCategory,
ContractCommitmentApplicability (JSON), Created, DiscountPercentage,
DurationType, FulfillmentInterval, LastUpdated, LifecycleStatus,
Model, OfferCategory, PaymentInterval, PaymentModel,
PaymentUpfrontPercentage, PricingCurrencyContractCommitmentCost.

The internal ProviderName/PublisherName fix-up logic in the Costs
transform stays so HostProviderName / ServiceProviderName can fall
back to those values when source data does not yet supply them.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Adds HubSetup_v1_4.kql with the v1_4-preview-shaped hub functions.
Costs_v1_4 unions Costs_final_v1_4, Costs_final_v1_3,
Costs_final_v1_2, and Costs_final_v1_0; ProviderName and
PublisherName are dropped from the v1_4 project list (removed in
1.4 per spec).

ContractCommitment_v1_4 unions ContractCommitment_final_v1_4 with
ContractCommitment_final_v1_3 and extends v1_3 data with empty/null
defaults for the 14 new FOCUS 1.4 columns.

HubSetup_Latest.kql is intentionally NOT retargeted to v1_4. Per
the preview convention in data-model.md, unversioned aliases stay
pinned to the latest GA schema (v1_3) until v1_4 promotes from
preview to GA.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Updates plugin skill files so plugin guidance reflects the new
hub schemas and FOCUS columns added in this milestone:

- finops-hubs.md: lists the full set of unversioned functions
  (CommitmentDiscountUsage, ContractCommitment included), notes
  the v1_0 / v1_2 / v1_3 / v1_4-preview versioned variants, and
  enumerates the FOCUS 1.3 column additions plus the 1.4
  ProviderName / PublisherName removal.
- finops-hubs-deployment.md: extends the supported FOCUS export
  versions to 1.0r2 / 1.2 / 1.2-preview (current Cost Management)
  and notes that hubs can also ingest 1.3 / 1.4-preview when
  Cost Management ships those exports.
- ftk-database-query.md: expands from four to six analytic
  functions, adds CommitmentDiscountUsage and ContractCommitment
  sections, and surfaces the FOCUS 1.3 columns on the Costs()
  reference table.
- ftk-output-style.md: adds FOCUS 1.3+ terminology preferences
  for ServiceProviderName, HostProviderName, and ContractApplied.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Copilot AI review requested due to automatic review settings May 6, 2026 18:09
@flanakin
flanakin requested a review from MSBrett as a code owner May 6, 2026 18:09
@microsoft-github-policy-service microsoft-github-policy-service Bot added the Needs: Review 👀 PR that is ready to be reviewed label May 6, 2026
@flanakin
flanakin changed the base branch from flanakin/focus14-phase5-hubs-1.4 to flanakin/focus14 May 6, 2026 23:00
@flanakin
flanakin marked this pull request as draft May 6, 2026 23:16
@flanakin flanakin added this to the v15 milestone May 15, 2026
Updates all FOCUS version references from 1.3/1.4-preview to v1_4 GA.
Removes intermediate v1_3 function references. Marks ContractCommitment
as FOCUS 1.4+ (not 1.3+). Removes preview designations for v1_4.

Co-Authored-By: Claude <noreply@anthropic.com>
@flanakin flanakin changed the title Refresh Claude Code plugin skill files for FOCUS 1.3 / 1.4 Refresh Claude Code plugin skill files for FOCUS 1.4 May 17, 2026
flanakin and others added 2 commits May 26, 2026 00:27
…-phase6-plugin

# Conflicts:
#	src/templates/finops-hub/.build.config
#	src/templates/finops-hub/modules/Microsoft.FinOpsHubs/Analytics/app.bicep
#	src/templates/finops-hub/modules/Microsoft.FinOpsHubs/Analytics/scripts/HubSetup_v1_4.kql
#	src/templates/finops-hub/modules/Microsoft.FinOpsHubs/Analytics/scripts/IngestionSetup_RawTables.kql
#	src/templates/finops-hub/modules/Microsoft.FinOpsHubs/Analytics/scripts/IngestionSetup_v1_4.kql
- Rename ContractCommitment() -> ContractCommitments() in skill references and agent docs
- Add BillingPeriods() and InvoiceDetails() to the function list and dedicated agent doc sections
- Mention the new FOCUS 1.4 per-row columns (CommitmentProgramEligibilityDetails, 12 ContractCommitment* columns, InvoiceDetailId)
- Update output-style guidance to reference all three supplemental datasets

🤖 Generated with [Claude Code](https://claude.ai/claude-code)

Co-Authored-By: Michael Flanakin <flanakin@users.noreply.github.com>
Co-Authored-By: Claude <noreply@anthropic.com>
@flanakin

Copy link
Copy Markdown
Collaborator Author

🤖 [AI][Claude Code] PR Update Summary

Cascade of PR #2126 review feedback (renames + new datasets):

  • ✅ Pluralized ContractCommitment() -> ContractCommitments() across plugin skill files
  • ✅ Documented BillingPeriods() and InvoiceDetails() functions in ftk-database-query agent
  • ✅ Expanded the FOCUS 1.4 column list and dataset summary in finops-hubs.md

Depends on PRs #2126 and #2128.

A merge artifact from rebasing on the v1_3 ancestry left a singular
ContractCommitment() function referencing ContractCommitment_v1_3() in
HubSetup_Latest.kql. v1_3 was eliminated and the dataset was pluralized
to ContractCommitments_v1_4(); the orphan would fail to load on hub
deployment. Remove it.

Co-Authored-By: Michael Flanakin <flanakin@users.noreply.github.com>
Co-Authored-By: Claude <noreply@anthropic.com>
flanakin and others added 2 commits July 15, 2026 13:20
Pulls the fixed FOCUS 1.4 ingestion and hub-function changes (W2/W3),
including the IngestionSetup_v1_4 file split, and removes the previously
committed unresolved merge-conflict fragment (defunct HubSetup_v1_3 /
ContractCommitment_v1_3 block) from HubSetup_v1_4.kql. All KQL, Bicep,
and build config files resolve to the upstream phase2 versions.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
- Correct swapped ServiceProviderName/HostProviderName semantics:
  ServiceProviderName is the vendor that makes the service available
  (successor to PublisherName/ProviderName); HostProviderName is the
  infrastructure provider (Microsoft for Cost Management data).
- Label Allocated*, ContractApplied, ServiceProviderName, and
  HostProviderName as FOCUS 1.3 columns available in the hubs v1_4
  schema instead of implying a v1_3 toolkit schema exists.
- Add "no data until a FOCUS 1.4 export ships" caveats to
  ContractCommitments(), BillingPeriods(), and InvoiceDetails().
- Correct supported FOCUS export versions (add 1.0-preview(v1);
  recommend 1.2 as latest) and fix stale "four analytic functions"
  reference.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@flanakin
flanakin changed the base branch from flanakin/focus14 to flanakin/focus14-phase2-hubs-1.3 July 15, 2026 20:26
@flanakin

Copy link
Copy Markdown
Collaborator Author

Rework summary (W8)

  1. Conflict-marker cleanup: Merged the fixed flanakin/focus14-phase2-hubs-1.3 base (commit 968207f). This branch previously contained a committed unresolved merge conflict in HubSetup_v1_4.kql (literal <<<<<<</>>>>>>> markers around a defunct HubSetup_v1_3.kql / ContractCommitment_v1_3 fragment) — the markers and the v1_3 fragment were removed, keeping only the ContractCommitments_final_v1_4 content. All KQL/Bicep/build-config files now resolve to the upstream phase2 versions; grep for conflict markers and stray v1_3 references across src/ is clean.
  2. Provider mapping fix (C2): ftk-database-query.md, ftk-output-style.md, and finops-hubs.md had the ServiceProviderName/HostProviderName semantics swapped. All three now match IngestionSetup_v1_4.kql: ServiceProviderName = vendor that makes the service available (falls back to the removed PublisherName, then ProviderName; never null); HostProviderName = infrastructure provider (Microsoft for all Cost Management data).
  3. "No data yet" caveats (M2): ContractCommitments(), BillingPeriods(), and InvoiceDetails() mentions now note they return no data until Microsoft Cost Management ships a FOCUS 1.4 export.
  4. Version-label accuracy (M1): Allocated*, ContractApplied, ServiceProviderName, and HostProviderName are now labeled as FOCUS 1.3 columns available in the hubs v1_4 schema (no v1_3 toolkit schema exists).
  5. Accuracy sweep: corrected supported FOCUS export versions (1.0-preview(v1), 1.0, 1.0r2, 1.2-preview, 1.2), recommended 1.2 for manual exports, and fixed a stale "four analytic functions" reference (now eight).

PR retargeted to flanakin/focus14-phase2-hubs-1.3; diff is now limited to the four plugin/agent-skills files. Build-Toolkit finops-hub passes.

flanakin and others added 2 commits July 15, 2026 17:06
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Updates the ftk-database-query agent's key column list to the FOCUS 1.4
spec IDs after the Q4 schema alignment (ContractCommitmentPaymentModel,
ContractCommitmentPaymentInterval, ContractCommitmentLifecycleStatus,
ContractCommitmentDurationType).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@flanakin

Copy link
Copy Markdown
Collaborator Author

Synced with phase 2 (dev merge + Q4 ContractCommitments spec alignment upstream). Clean merge, no conflicts.

One doc update for Q4: the ftk-database-query agent's ContractCommitments key column list now uses the spec-prefixed IDs (ContractCommitmentPaymentModel, ContractCommitmentPaymentInterval, ContractCommitmentLifecycleStatus, ContractCommitmentDurationType). All other plugin/agent-skills references already used prefixed or dataset-level names.

Verified: Build-Toolkit finops-hub exit 0; no conflict markers.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Needs: Review 👀 PR that is ready to be reviewed

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants