agentsclimarketplace

Finfocus routing

Skill rshade/finfocus/agent-skills/finfocus-routing

Configure and debug FinFocus intelligent plugin routing. Use when setting up multi-plugin routing, configuring priority and fallback rules, writing pattern matching for resource types, testing route selection, or debugging why a plugin isn't receiving cost queries. Triggers on: "configure routing", "plugin priority", "fallback chain", "route test", "multi-region routing", "pattern matching", "config routes", "plugin selection", "routing config", or any task involving finfocus plugin routing configuration and debugging.From its SKILL.md

Install
npx -y skills add rshade/finfocus --skill finfocus-routing

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

2 things to look at

  • 5 stars5 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
  • runs commandsInstructs the agent to run 5 commands, including `finfocus config routes list` and 4 more.

SKILL.md

4.3 KB, 928 tokens by cl100k_base, as published. Nobody here has run it

<!-- Copyright 2025-2026 Richard Shade. Licensed under Apache-2.0. --> <!-- SPDX-License-Identifier: Apache-2.0 -->

FinFocus Plugin Routing

Route cost queries to the right plugin based on provider, region, patterns, and priority.

No Config = No Routing

Without a routing: section in config.yaml, the engine queries all plugins for every resource. Add routing config only when you need control.

Config Format

# ~/.finfocus/config.yaml (or $PROJECT/.finfocus/config.yaml)
routing:
  plugins:
    - name: aws-public        # Must match installed plugin name
      priority: 10            # Higher = preferred (default: 0)
      features:               # Limit capabilities (default: all)
        - ProjectedCosts
      patterns:               # Declarative type matching (optional)
        - type: glob
          pattern: "aws:ec2:*"
      fallback: true          # Try next on failure (default: true)

Priority and Fallback

  • Higher number = higher priority (sorted descending, stable sort)
  • Equal priority (all 0) = plugins queried in parallel
  • $0.00 is a VALID result — does NOT trigger fallback
  • Only nil/empty results or errors trigger fallback to next plugin
  • InvalidArgument does NOT trigger fallback (plugin explicitly rejected)

Features

FeaturegRPC MethodCapability
ProjectedCostsGetProjectedCostPLUGIN_CAPABILITY_PROJECTED_COSTS
ActualCostsGetActualCostPLUGIN_CAPABILITY_ACTUAL_COSTS
RecommendationsGetRecommendationsPLUGIN_CAPABILITY_RECOMMENDATIONS
CarbonGetCarbonFootprintPLUGIN_CAPABILITY_CARBON
DryRunPerformDryRunPLUGIN_CAPABILITY_DRY_RUN
BudgetsGetBudgetStatus + 3 othersPLUGIN_CAPABILITY_BUDGETS
BatchCostBatchCostPLUGIN_CAPABILITY_BATCH_COST

Empty features list = all features enabled. Feature names are case-sensitive.

Pattern Matching

Two types for declarative resource type matching:

  • glob: filepath.Match semantics, * matches across / boundaries. Example: aws:ec2:* matches aws:ec2:Instance
  • regex: RE2 syntax. Example: aws:(ec2|rds)/.* matches aws:ec2/instance:Instance

Patterns take highest precedence over automatic provider matching.

Matching Precedence

  1. Declarative patterns — glob/regex against resource type
  2. Automatic providerSupportedProviders from GetPluginInfo
  3. Global plugins — empty or ["*"] SupportedProviders

Internal Pulumi types (pulumi:*) skip automatic matching unless explicitly matched by a pattern.

Region Matching

Region extracted from resource properties in order: region > availabilityZone > availability_zone > location > ARN.

  • AZs normalized: us-west-2aus-west-2, us-central1-aus-central1
  • Empty region on either side = wildcard (matches anything)
  • Comparison is case-insensitive

CLI Commands

# Show effective routing rules
finfocus config routes list
finfocus config routes list --output json

# Simulate plugin selection (no plugin contact needed)
finfocus config routes test aws:ec2:Instance
finfocus config routes test aws:ec2:Instance us-east-1
finfocus config routes test aws:ec2:Instance --output json

Common Scenarios

See references/routing-scenarios.md for multi-region, feature-based, pattern-based, and multi-cloud configurations with complete YAML examples.

Validation

# Validation runs automatically on config load
# Errors are blocking, warnings are non-blocking
  • Errors: empty name, missing plugin, invalid regex, negative priority, invalid pattern type, empty pattern
  • Warnings: duplicate plugin config, unknown feature names

What ships with it: 2 files

6.6 KB alongside SKILL.md

references/

Keep looking

Skills are one crate of 325,949. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.