{"server":"io.github.OptimNow/cloud-finops","count":3,"changes":[{"tool":"list_playbooks","kind":"changed","observed_at":"2026-10-14T01:26:36.982Z","fields":["description"],"description_before":"See every ready-made runbook for finding and fixing cloud waste:\n    idle, orphaned and overprovisioned resources, egress surprises,\n    schedule blindness and AI/ML inefficiency across AWS, Azure and GCP.\n\n    Use this to discover which waste patterns have a runbook. When the\n    question already names a provider, waste category, or confidence tier,\n    call ``find_playbooks`` instead.\n\n    Each playbook is a small (~80-130 line) runbook scoped to one waste\n    pattern (e.g. ``aws-zombie-nat-gateway``, ``azure-orphan-disks``). Returns\n    ``{\"playbooks\": [...], \"total\": N}`` where each entry includes ``name``,\n    ``title``, ``scope`` (aws/azure/gcp/cross-cloud), ``service``,\n    ``waste_category``, ``confidence`` (obvious/likely/possible), and\n    ``approx_tokens`` - the same size hint the reference listing carries, so a\n    multi-playbook answer can be budgeted before fetching.\n    ","description_after":"See every ready-made runbook for finding and fixing cloud waste:\n    idle, orphaned and overprovisioned resources, egress surprises,\n    schedule blindness and AI/ML inefficiency across AWS, Azure and GCP.\n\n    Use this to discover which waste patterns have a runbook. When the\n    question already names a provider, waste category, or confidence tier,\n    call ``find_playbooks`` instead.\n\n    Each playbook is a small (~90-170 line) runbook scoped to one waste\n    pattern (e.g. ``aws-zombie-nat-gateway``, ``azure-orphan-disks``). Returns\n    ``{\"playbooks\": [...], \"total\": N}`` where each entry includes ``name``,\n    ``title``, ``scope`` (aws/azure/gcp/cross-cloud), ``service``,\n    ``waste_category``, ``confidence`` (obvious/likely/possible), and\n    ``approx_tokens`` - the same size hint the reference listing carries, so a\n    multi-playbook answer can be budgeted before fetching.\n    ","description_similarity":0.959,"before_hash":"9221d5900b3320c025f22cd53924df34","after_hash":"db670de1bf42d100359d966e9848837b"},{"tool":"get_reference","kind":"changed","observed_at":"2026-10-14T01:26:36.982Z","fields":["description"],"description_before":"Fetch the guidance on one FinOps topic - the billing mechanics,\n    decision rules and worked examples behind a defensible answer - either\n    whole or one section at a time.\n\n    Use this when you need the actual content of one known reference,\n    after ``list_references`` or ``find_references`` told you which one\n    serves the question. Advisory questions (commitment sizing, chargeback\n    design, allocation methodology) are served by the reference's decision\n    rules and worked examples, which a summary does not carry.\n\n    Pass ``section`` when the question is narrower than the file. The\n    ``approx_tokens`` hint in the listing tells you when this matters: the\n    provider pattern catalogues run past 25,000 tokens and are enumerated\n    lists, so a question about S3 lifecycle wants one section of\n    ``finops-aws-patterns``, not all of it. Omit ``section`` for the whole\n    file when you need the cross-cutting reasoning.\n\n    Args:\n        name: Reference name as returned by ``list_references`` (e.g.\n            ``\"finops-aws\"``, ``\"finops-genai-capacity\"``,\n            ``\"optimnow-methodology\"``).\n        section: Optional H2 or H3 heading to return on its own. Matched\n            case-insensitively and partially against the headings, so a\n            natural phrase works - ``\"storage\"``, ``\"commitment decision\n            tree\"``. A heading's trailing count is ignored, so\n            ``\"storage optimization patterns\"`` matches\n            ``\"Storage Optimization Patterns (28)\"``. If it matches nothing\n            you get the list of available headings back, not the whole file.\n\n    Without ``section``, returns ``{\"name\": ..., \"content\": \"...\",\n    \"lines\": N}`` where ``content`` is the file verbatim. With ``section``,\n    returns ``{\"name\", \"title\", \"section\", \"section_level\", \"partial\": true,\n    \"content\", \"lines\", \"full_lines\"}`` where ``content`` is that section\n    prefixed by the reference's title, plus ``other_matching_sections`` when\n    the phrase matched more than one heading.\n\n    On a miss, returns ``{\"error\": ..., \"suggestions\": [...]}``. An unknown\n    name gives up to three string-distance matches; an unmatched ``section``\n    gives ``available_sections`` - every heading in the file - so the retry\n    is exact.\n    ","description_after":"Fetch the guidance on one FinOps topic - the billing mechanics,\n    decision rules and worked examples behind a defensible answer - either\n    whole or one section at a time.\n\n    Use this when you need the actual content of one known reference,\n    after ``list_references`` or ``find_references`` told you which one\n    serves the question. Advisory questions (commitment sizing, chargeback\n    design, allocation methodology) are served by the reference's decision\n    rules and worked examples, which a summary does not carry.\n\n    Pass ``section`` when the question is narrower than the file. The\n    ``approx_tokens`` hint in the listing tells you when this matters: the\n    AWS pattern catalogue runs past 25,000 tokens and the pattern catalogues\n    are enumerated lists, so a question about S3 lifecycle wants one section of\n    ``finops-aws-patterns``, not all of it. Omit ``section`` for the whole\n    file when you need the cross-cutting reasoning.\n\n    Args:\n        name: Reference name as returned by ``list_references`` (e.g.\n            ``\"finops-aws\"``, ``\"finops-genai-capacity\"``,\n            ``\"optimnow-methodology\"``).\n        section: Optional H2 or H3 heading to return on its own. Matched\n            case-insensitively and partially against the headings, so a\n            natural phrase works - ``\"storage\"``, ``\"commitment decision\n            tree\"``. A heading's trailing count is ignored, so\n            ``\"storage optimization patterns\"`` matches\n            ``\"Storage Optimization Patterns (28)\"``. If it matches nothing\n            you get the list of available headings back, not the whole file.\n\n    Without ``section``, returns ``{\"name\": ..., \"content\": \"...\",\n    \"lines\": N}`` where ``content`` is the file verbatim. With ``section``,\n    returns ``{\"name\", \"title\", \"section\", \"section_level\", \"partial\": true,\n    \"content\", \"lines\", \"full_lines\"}`` where ``content`` is that section\n    prefixed by the reference's title, plus ``other_matching_sections`` when\n    the phrase matched more than one heading.\n\n    On a miss, returns ``{\"error\": ..., \"suggestions\": [...]}``. An unknown\n    name gives up to three string-distance matches; an unmatched ``section``\n    gives ``available_sections`` - every heading in the file - so the retry\n    is exact.\n    ","description_similarity":0.976,"before_hash":"a4b5720f1fe1411a789e60ae240ef462","after_hash":"906d7d8356e04ddea0b32ebca8d00da1"},{"tool":"list_references","kind":"changed","observed_at":"2026-10-14T01:26:36.982Z","fields":["description"],"description_before":"See what FinOps guidance is available: billing mechanics, commitment\n    strategy, allocation and chargeback, AI cost management, and per-provider\n    cost handbooks (AWS, Azure, GCP, OCI, Databricks, Snowflake, ...).\n\n    Use this to discover what the library covers before deciding what to\n    fetch. When the question already names a FinOps domain, phase, persona\n    or maturity, call ``find_references`` instead of scanning this full\n    list.\n\n    Returns a dict shaped ``{\"references\": [...], \"total\": N}`` where each\n    entry includes ``name``, ``title``, a one-line ``description``, the\n    discriminating FCP facets (``fcp_domain``, ``fcp_capability``,\n    ``fcp_phases``, ``fcp_personas_primary``, ``fcp_maturity_entry``) and\n    ``approx_tokens``.\n\n    Read ``approx_tokens`` before fetching: the library runs from about 3,000\n    to over 25,000 tokens per file. Above roughly 10,000, prefer\n    ``get_reference(name, section=...)`` and pull the part you need.\n    ","description_after":"See what FinOps guidance is available: billing mechanics, commitment\n    strategy, allocation and chargeback, AI cost management, and per-provider\n    cost handbooks (AWS, Azure, GCP, OCI, Databricks, Snowflake, ...).\n\n    Use this to discover what the library covers before deciding what to\n    fetch. When the question already names a FinOps domain, phase, persona\n    or maturity, call ``find_references`` instead of scanning this full\n    list.\n\n    Returns a dict shaped ``{\"references\": [...], \"total\": N}`` where each\n    entry includes ``name``, ``title``, a one-line ``description``, the\n    discriminating FCP facets (``fcp_domain``, ``fcp_capability``,\n    ``fcp_phases``, ``fcp_personas_primary``, ``fcp_maturity_entry``) and\n    ``approx_tokens``.\n\n    Read ``approx_tokens`` before fetching: the library runs from about 2,000\n    to over 25,000 tokens per file. Above roughly 10,000, prefer\n    ``get_reference(name, section=...)`` and pull the part you need.\n    ","description_similarity":0.98,"before_hash":"bd675daa95ec763c0ef7b20c77f7eeef","after_hash":"f7bbb98ca433384efcfc64a7c1a33760"}],"next_before":null,"next_actions":[]}