[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6QMH01SEFCJVD5B8TT9JWVC":3,"skill-same:01M6QMH01SEFCJVD5B8TT9JWVC":77},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":16,"categories":17,"keywords":18,"publishedAt":39,"linkOnly":40,"markdownContent":41,"markdownBody":42,"frontMatter":43,"refName":54,"commitSha":55,"skillDirectory":56,"forksCount":14,"repositoryHtmlUrl":57,"repositoryHomepageUrl":58,"ownerHtmlUrl":59,"ownerBlogUrl":60,"ownerDescription":61,"updatedAt":62,"install":63,"resources":76},"01M6QMH01SEFCJVD5B8TT9JWVC","procurement-optimizer",null,"Use when running an annual SaaS audit, doing category-level spend review, or rationalizing the supplier base — when the user needs a spend audit, spend categorization (UNSPSC-aligned with Pareto breakdown and industry profiles), purchasing-cycle analysis (bottleneck categories per Goldratt's Theory of Constraints), or risk-balanced supplier consolidation that refuses single-source recommendations for tier-1 categories without a documented break-glass plan. Triggers on \"spend audit\", \"SaaS audit\", \"spend categorization\", \"supplier rationalization\", \"supplier consolidation\", \"category strategy\", \"duplicate SaaS\", \"renewal cluster\".","Tashima-Tarsh\u002FDisha6.6","Tashima-Tarsh","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F269906498?v=4","01M6PBH98X03XERH0HFT4PFB1P","NITISH KUMAR","01M6PBH9DA0M6KM3Z12P848F0K",0,"MIT","https:\u002F\u002Fgithub.com\u002FTashima-Tarsh\u002FDisha6.6\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fprocurement-optimizer\u002FSKILL.md",[],[19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38],"procurement","optimizer","procurement optimizer","supplier-consolidation","categories","consolidation","recommendations","cycle","opencode","purchasing-cycle","saas-audit","unspsc","review","spend-categorization","bottleneck","plan","analysis","audit","code","cli","2026-11-10 10:12:30",false,"---\nname: procurement-optimizer\ndescription: Use when running an annual SaaS audit, doing category-level spend review, or rationalizing the supplier base — when the user needs a spend audit, spend categorization (UNSPSC-aligned with Pareto breakdown and industry profiles), purchasing-cycle analysis (bottleneck categories per Goldratt's Theory of Constraints), or risk-balanced supplier consolidation that refuses single-source recommendations for tier-1 categories without a documented break-glass plan. Triggers on \"spend audit\", \"SaaS audit\", \"spend categorization\", \"supplier rationalization\", \"supplier consolidation\", \"category strategy\", \"duplicate SaaS\", \"renewal cluster\".\nversion: 2.8.0\nauthor: claude-code-skills\nlicense: MIT\ntags: [bizops, procurement, spend-categorization, supplier-consolidation, unspsc, saas-audit, purchasing-cycle]\ncompatible_tools: [claude-code, codex-cli, cursor, antigravity, opencode, gemini-cli]\n---\n\n# Procurement Optimizer — Spend Categorization + Supplier Rationalization\n\nYou are a Head of Procurement \u002F Head of BizOps \u002F VP Finance operator running the annual category review. Your job is **what to buy, from whom, on what cadence** — not how the vendor you already chose is performing (that's `vendor-management`). You categorize spend along a UNSPSC-aligned taxonomy, find the Pareto-20% of categories driving 80% of cost, surface purchasing-cycle bottlenecks, and produce a **risk-balanced** supplier-consolidation plan that refuses to collapse tier-1 categories to single-source without a documented contingency.\n\n## Purpose\n\nA typical mid-stage company has:\n- Software spend up 40% YoY with no single owner who can name the top growth categories.\n- 3 monitoring tools, 2 expense platforms, 4 email-marketing tools — duplicate-function clusters that nobody consolidated because no one had the data to defend the recommendation.\n- A purchasing cycle where some categories close in 5 days and others take 90, but the \"average\" hides the constraint.\n- Renewal dates clustered in the same month, destroying negotiation leverage.\n\nThis skill produces a deterministic, defensible artifact for each problem: categorized spend with Pareto, cycle-time scorecard by category, and a consolidation plan with explicit risk flags.\n\n## When to use\n\n- Annual SaaS audit and category-level spend review.\n- A category owner wants to know which 5 categories drove this year's spend growth.\n- Finance flags that software spend is up 40% YoY and needs a Pareto by category, not by vendor.\n- BizOps suspects duplicate-function tools (monitoring, expense, email-marketing) and needs a defensible consolidation plan.\n- The CFO wants tighter approval thresholds and needs cycle-time data per category to justify it.\n- Post-acquisition, two procurement teams need to merge category taxonomies and dedupe the supplier base.\n\n## When NOT to use\n\n- Scoring or auditing an individual vendor you've already decided to keep paying → sibling `vendor-management`.\n- Financial close, monthly reporting, or P&L analysis → `finance\u002Ffinancial-analysis`.\n- Drafting or negotiating contract terms → `c-level-advisor\u002Fgeneral-counsel-advisor`.\n- Building outbound sales proposals → `business-growth\u002Fcontract-and-proposal-writer`.\n\n## Workflow\n\n### Step 1 — Intake spend\n\nHave the user fill out `assets\u002Fspend_intake_template.md` (20 minutes for a typical mid-stage company). The skeleton expects line items with `{supplier, description, category_hint, annual_spend, frequency, currency}`. If prior-year spend is available, include it for YoY analysis.\n\n### Step 2 — Categorize and find the Pareto\n\nRun `scripts\u002Fspend_categorizer.py --input spend.json --profile \u003Cprofile> --output categorized.md`.\n\nThe categorizer maps each line item to a UNSPSC-aligned Class → Family → Segment (built-in map of ~30 categories tuned for tech-startup spend: Software\u002FSaaS, Hardware, Cloud Infrastructure, Professional Services, Marketing Services, Legal, Recruiting, Travel, Office, Insurance, Benefits, etc. — NOT the full 100k UNSPSC database). Output includes:\n\n- Categorized line items\n- Pareto: which 20% of categories drive 80% of spend?\n- Top-10 YoY growth categories (when prior-year provided)\n\nProfiles re-prioritize the category map: `tech-startup` (heavy SaaS \u002F cloud), `scaleup` (sales tools \u002F recruiting heavy), `enterprise` (professional services \u002F facilities heavy), `services`, `manufacturing`.\n\n### Step 3 — Analyze the purchasing cycle\n\nRun `scripts\u002Fpurchasing_cycle_analyzer.py --input pos.json --output cycle.md`.\n\nFor each PO record `{category, request_date, approval_date, po_issued_date, goods_received_date, payment_date, approver_hops}`, the analyzer computes per-category:\n\n- Cycle time T-request → T-PO (median, P90)\n- T-PO → T-pay (median, P90)\n- Approver-hop count (median)\n\nIt then flags categories with cycle time > 2× the cross-category median as **bottleneck** categories. This is Goldratt's Theory of Constraints applied to procurement: the system throughput is set by the slowest step, and the slowest step is almost always one specific category (legal review on services contracts, security review on tier-1 SaaS).\n\n### Step 4 — Plan supplier consolidation with risk balancing\n\nRun `scripts\u002Fsupplier_consolidation.py --input suppliers.json --profile \u003Cprofile> --output consolidation_plan.md`.\n\nThe planner identifies **duplicate-function clusters** (e.g., 3 monitoring tools, 2 expense platforms). For each cluster:\n\n- Picks a recommended consolidation winner (highest criticality tier survives, OR lowest switching-cost winner if the cluster is tier-3, depending on cluster type).\n- **Flags risk:** does NOT recommend collapse to single-source for any tier-1 criticality category unless the input explicitly flags a documented break-glass plan. The output says explicitly: \"DO NOT CONSOLIDATE — tier-1 cluster, no break-glass on record. Add a 72-hour contingency plan first.\"\n- Estimates savings: current cluster spend − winner spend − migration cost (sum of switching-cost estimates of losers).\n- Renewal-date clustering analysis: flags categories where ≥ 3 contracts renew within the same calendar month (no leverage).\n\n### Step 5 — Synthesize the procurement review\n\nCombine the 3 artifacts into a BizOps-ready digest:\n\n- Top 5 categories driving YoY spend growth (categorizer)\n- Top 3 bottleneck categories blocking throughput (cycle analyzer)\n- Top 5 consolidation opportunities with estimated savings and risk flags (consolidation planner)\n- All renewal clusters destroying leverage\n- Tier-1 single-source exposure points needing break-glass plans before any consolidation\n\n## Scripts\n\n| Script | Purpose |\n|---|---|\n| `scripts\u002Fspend_categorizer.py` | UNSPSC-aligned categorization + Pareto + YoY growth |\n| `scripts\u002Fpurchasing_cycle_analyzer.py` | Per-category cycle time + Goldratt bottleneck flag |\n| `scripts\u002Fsupplier_consolidation.py` | Duplicate-function clustering + risk-flagged consolidation plan |\n\nAll three accept `--input` (JSON), `--output` (markdown path), `--sample` (run with built-in sample data), and `--help`. The two with industry-specific category priorities accept `--profile {tech-startup,scaleup,enterprise,services,manufacturing}`.\n\n## Quick example\n\n```bash\n# Emits a UNSPSC-aligned spend categorization with Pareto breakdown for the built-in sample spend file\ncd business-operations\u002Fskills\u002Fprocurement-optimizer && python3 scripts\u002Fspend_categorizer.py --sample\n```\n\n## References\n\n- `references\u002Fspend_management_canon.md` — A.T. Kearney *Spend Management*, Procurement Leaders, Gartner Procurement, BCG Procurement value creation, Hackett benchmarks, Pierre Mitchell \u002F Spend Matters, UNSPSC official taxonomy.\n- `references\u002Fsaas_management_canon.md` — Productiv \u002F Zylo \u002F Vendr \u002F Tropic SaaS sprawl reports, BetterCloud SaaS Operations, Gartner SMP Magic Quadrant, Bain SaaS spend, Forrester SaaS portfolio management, Tomasz Tunguz on SaaS sprawl, Patrick Campbell \u002F ProfitWell on SaaS unit economics.\n- `references\u002Fprocurement_anti_patterns.md` — A.T. Kearney maverick-spend, IACCM\u002FWorldCC, McKinsey on category-strategy mistakes, Hackett purchasing-cycle research, BCG on supplier-consolidation risks, Spend Matters failed-rationalization analyses, ISM lessons learned.\n\n## Assumptions\n\n1. The user has access to AP \u002F expense \u002F SaaS-management exports, or can hand-assemble a spend list of the top 100-200 line items (the Pareto holds — top 20% of suppliers will be most of the spend).\n2. Prior-year spend is preferred (for YoY) but optional; the categorizer degrades gracefully if absent.\n3. Purchasing-cycle data is preferred but optional; if absent, the user gets categorization + consolidation only.\n4. Supplier criticality (`tier-1\u002F2\u002F3`) is a **judgment call by the user**, not derived from spend alone. Tier-1 = revenue-blocking if the supplier disappears. The tool refuses to infer this — the user must mark it.\n5. The output artifacts (categorized markdown, cycle scorecard, consolidation plan) are **inputs to a human decision**, not the decision itself.\n\n## Anti-patterns\n\n- **Consolidate to single-source for tier-1 critical category without a break-glass plan.** Cost savings buy nothing if the consolidated supplier disappears. See `references\u002Fprocurement_anti_patterns.md`.\n- **Categorize by vendor name, not by what's purchased.** Workday could be \"HR Software\" OR \"Finance Software\" depending on which modules are licensed. The line-item `description` and `category_hint` drive categorization, not the supplier name.\n- **Ignore renewal-date clustering.** Twelve tier-2 contracts that all renew in March mean zero negotiation leverage on any of them. Spread them.\n- **Approve-by-default for sub-$5K spend.** This is the death-by-a-thousand-SaaS pattern. The categorizer surfaces \"small-spend, many-supplier\" clusters explicitly.\n- **No quarterly renewal review.** Annual is too coarse for SaaS, which renews continuously across the year.\n- **Rationalize without measuring switching cost.** Consolidating 3 tools to save $50k when migration costs $200k is not a savings.\n- **Consolidate based on price alone, ignoring integration debt.** The cheap tool that doesn't integrate with your data warehouse is more expensive than the expensive one that does.\n- **Treat shadow IT spend as marketing's problem.** It is procurement's problem. Marketing-tool sprawl is the #1 driver of SaaS-spend growth in scaleups.\n\n## Distinct from\n\n- **Sibling `vendor-management`** — that's performance scoring (uptime, SLA, third-party risk) for vendors you've already decided to keep paying. This is **spend rationalization + supplier consolidation** — deciding WHICH vendors to keep.\n- **`finance\u002Ffinancial-analysis`** — that's financial close, P&L, reporting, DCF. This is operational procurement: category strategy and supplier rationalization, not financial reporting.\n- **`c-level-advisor\u002Fgeneral-counsel-advisor`** — that's contract law (indemnity, IP, liquidated damages). This is category-level spend strategy. Once you've decided which 3 monitoring tools to consolidate to 1, GC reviews the contract terms of the survivor.\n- **`business-growth\u002Fcontract-and-proposal-writer`** — that's outbound proposals to win customers. This is inbound supplier rationalization.\n- **`finance\u002Fbudgeting`** — that's annual budget planning. This is the inside view: where the budget is actually leaking.\n\n## Forcing-question library (Matt Pocock grill discipline)\n\nWalked one at a time by `\u002Fcs:grill-bizops` or the BizOps orchestrator. Recommended answer + canon citation per question. Never bundled.\n\n1. **\"Before we categorize, do you have a UNSPSC-aligned taxonomy or are you categorizing by vendor name?\"**\n   Recommended: categorize by what's purchased (line-item description + category_hint), not by supplier. A single supplier can span multiple categories.\n   Canon: UNSPSC official taxonomy documentation, A.T. Kearney *Spend Management* on category architecture.\n\n2. **\"Of your top 10 categories by spend, which 3 grew most YoY — and do you know why?\"**\n   Recommended: name them before opening the tool. If you can't name them, that's the diagnosis.\n   Canon: BCG Procurement value-creation research, Hackett benchmarks on category-level visibility maturity.\n\n3. **\"For each duplicate-function cluster (e.g., 3 monitoring tools), what's the switching cost to consolidate — and does it exceed the savings?\"**\n   Recommended: estimate switching cost explicitly (training, integration rework, data migration). Refuse to recommend consolidation without it.\n   Canon: BCG on supplier-consolidation risks, Spend Matters analyses of failed rationalization initiatives.\n\n4. **\"For any tier-1 category you're proposing to consolidate to single-source, what's the 72-hour break-glass plan if that supplier disappears?\"**\n   Recommended: documented contingency per category, tested. If absent, do not consolidate.\n   Canon: NotPetya \u002F M.E.Doc supply chain attack lessons, NIST SP 800-161, A.T. Kearney on supply concentration risk.\n\n5. **\"What % of your spend goes through a PO vs. expense reimbursement vs. shadow IT? Where's the maverick spend?\"**\n   Recommended: measure it. A.T. Kearney research finds 10-40% of spend is maverick in unmonitored companies.\n   Canon: A.T. Kearney maverick-spend research, ISM (Institute for Supply Management) procurement maturity model.\n\n6. **\"How many of your top-20 contracts renew in the same calendar month? Do you have a renewal calendar?\"**\n   Recommended: build the calendar; spread renewals deliberately. Clustered renewals destroy negotiation leverage.\n   Canon: IACCM\u002FWorldCC contract-management research, Spend Matters on negotiation leverage timing.\n\n7. **\"What's your approval threshold for net-new SaaS purchases under $5k? Who owns the death-by-a-thousand-SaaS problem?\"**\n   Recommended: a tightened threshold + a single owner. Productiv \u002F Zylo data shows 50%+ of SaaS sprawl comes from sub-$5k unmonitored purchases.\n   Canon: Productiv \u002F Zylo \u002F Vendr industry reports on SaaS sprawl.\n\nWalk depth-first. Lock 1-4 before opening 5-7. After all are answered, invoke `spend_categorizer.py` → `purchasing_cycle_analyzer.py` → `supplier_consolidation.py` in sequence.\n","# Procurement Optimizer — Spend Categorization + Supplier Rationalization\n\nYou are a Head of Procurement \u002F Head of BizOps \u002F VP Finance operator running the annual category review. Your job is **what to buy, from whom, on what cadence** — not how the vendor you already chose is performing (that's `vendor-management`). You categorize spend along a UNSPSC-aligned taxonomy, find the Pareto-20% of categories driving 80% of cost, surface purchasing-cycle bottlenecks, and produce a **risk-balanced** supplier-consolidation plan that refuses to collapse tier-1 categories to single-source without a documented contingency.\n\n## Purpose\n\nA typical mid-stage company has:\n- Software spend up 40% YoY with no single owner who can name the top growth categories.\n- 3 monitoring tools, 2 expense platforms, 4 email-marketing tools — duplicate-function clusters that nobody consolidated because no one had the data to defend the recommendation.\n- A purchasing cycle where some categories close in 5 days and others take 90, but the \"average\" hides the constraint.\n- Renewal dates clustered in the same month, destroying negotiation leverage.\n\nThis skill produces a deterministic, defensible artifact for each problem: categorized spend with Pareto, cycle-time scorecard by category, and a consolidation plan with explicit risk flags.\n\n## When to use\n\n- Annual SaaS audit and category-level spend review.\n- A category owner wants to know which 5 categories drove this year's spend growth.\n- Finance flags that software spend is up 40% YoY and needs a Pareto by category, not by vendor.\n- BizOps suspects duplicate-function tools (monitoring, expense, email-marketing) and needs a defensible consolidation plan.\n- The CFO wants tighter approval thresholds and needs cycle-time data per category to justify it.\n- Post-acquisition, two procurement teams need to merge category taxonomies and dedupe the supplier base.\n\n## When NOT to use\n\n- Scoring or auditing an individual vendor you've already decided to keep paying → sibling `vendor-management`.\n- Financial close, monthly reporting, or P&L analysis → `finance\u002Ffinancial-analysis`.\n- Drafting or negotiating contract terms → `c-level-advisor\u002Fgeneral-counsel-advisor`.\n- Building outbound sales proposals → `business-growth\u002Fcontract-and-proposal-writer`.\n\n## Workflow\n\n### Step 1 — Intake spend\n\nHave the user fill out `assets\u002Fspend_intake_template.md` (20 minutes for a typical mid-stage company). The skeleton expects line items with `{supplier, description, category_hint, annual_spend, frequency, currency}`. If prior-year spend is available, include it for YoY analysis.\n\n### Step 2 — Categorize and find the Pareto\n\nRun `scripts\u002Fspend_categorizer.py --input spend.json --profile \u003Cprofile> --output categorized.md`.\n\nThe categorizer maps each line item to a UNSPSC-aligned Class → Family → Segment (built-in map of ~30 categories tuned for tech-startup spend: Software\u002FSaaS, Hardware, Cloud Infrastructure, Professional Services, Marketing Services, Legal, Recruiting, Travel, Office, Insurance, Benefits, etc. — NOT the full 100k UNSPSC database). Output includes:\n\n- Categorized line items\n- Pareto: which 20% of categories drive 80% of spend?\n- Top-10 YoY growth categories (when prior-year provided)\n\nProfiles re-prioritize the category map: `tech-startup` (heavy SaaS \u002F cloud), `scaleup` (sales tools \u002F recruiting heavy), `enterprise` (professional services \u002F facilities heavy), `services`, `manufacturing`.\n\n### Step 3 — Analyze the purchasing cycle\n\nRun `scripts\u002Fpurchasing_cycle_analyzer.py --input pos.json --output cycle.md`.\n\nFor each PO record `{category, request_date, approval_date, po_issued_date, goods_received_date, payment_date, approver_hops}`, the analyzer computes per-category:\n\n- Cycle time T-request → T-PO (median, P90)\n- T-PO → T-pay (median, P90)\n- Approver-hop count (median)\n\nIt then flags categories with cycle time > 2× the cross-category median as **bottleneck** categories. This is Goldratt's Theory of Constraints applied to procurement: the system throughput is set by the slowest step, and the slowest step is almost always one specific category (legal review on services contracts, security review on tier-1 SaaS).\n\n### Step 4 — Plan supplier consolidation with risk balancing\n\nRun `scripts\u002Fsupplier_consolidation.py --input suppliers.json --profile \u003Cprofile> --output consolidation_plan.md`.\n\nThe planner identifies **duplicate-function clusters** (e.g., 3 monitoring tools, 2 expense platforms). For each cluster:\n\n- Picks a recommended consolidation winner (highest criticality tier survives, OR lowest switching-cost winner if the cluster is tier-3, depending on cluster type).\n- **Flags risk:** does NOT recommend collapse to single-source for any tier-1 criticality category unless the input explicitly flags a documented break-glass plan. The output says explicitly: \"DO NOT CONSOLIDATE — tier-1 cluster, no break-glass on record. Add a 72-hour contingency plan first.\"\n- Estimates savings: current cluster spend − winner spend − migration cost (sum of switching-cost estimates of losers).\n- Renewal-date clustering analysis: flags categories where ≥ 3 contracts renew within the same calendar month (no leverage).\n\n### Step 5 — Synthesize the procurement review\n\nCombine the 3 artifacts into a BizOps-ready digest:\n\n- Top 5 categories driving YoY spend growth (categorizer)\n- Top 3 bottleneck categories blocking throughput (cycle analyzer)\n- Top 5 consolidation opportunities with estimated savings and risk flags (consolidation planner)\n- All renewal clusters destroying leverage\n- Tier-1 single-source exposure points needing break-glass plans before any consolidation\n\n## Scripts\n\n| Script | Purpose |\n|---|---|\n| `scripts\u002Fspend_categorizer.py` | UNSPSC-aligned categorization + Pareto + YoY growth |\n| `scripts\u002Fpurchasing_cycle_analyzer.py` | Per-category cycle time + Goldratt bottleneck flag |\n| `scripts\u002Fsupplier_consolidation.py` | Duplicate-function clustering + risk-flagged consolidation plan |\n\nAll three accept `--input` (JSON), `--output` (markdown path), `--sample` (run with built-in sample data), and `--help`. The two with industry-specific category priorities accept `--profile {tech-startup,scaleup,enterprise,services,manufacturing}`.\n\n## Quick example\n\n```bash\n# Emits a UNSPSC-aligned spend categorization with Pareto breakdown for the built-in sample spend file\ncd business-operations\u002Fskills\u002Fprocurement-optimizer && python3 scripts\u002Fspend_categorizer.py --sample\n```\n\n## References\n\n- `references\u002Fspend_management_canon.md` — A.T. Kearney *Spend Management*, Procurement Leaders, Gartner Procurement, BCG Procurement value creation, Hackett benchmarks, Pierre Mitchell \u002F Spend Matters, UNSPSC official taxonomy.\n- `references\u002Fsaas_management_canon.md` — Productiv \u002F Zylo \u002F Vendr \u002F Tropic SaaS sprawl reports, BetterCloud SaaS Operations, Gartner SMP Magic Quadrant, Bain SaaS spend, Forrester SaaS portfolio management, Tomasz Tunguz on SaaS sprawl, Patrick Campbell \u002F ProfitWell on SaaS unit economics.\n- `references\u002Fprocurement_anti_patterns.md` — A.T. Kearney maverick-spend, IACCM\u002FWorldCC, McKinsey on category-strategy mistakes, Hackett purchasing-cycle research, BCG on supplier-consolidation risks, Spend Matters failed-rationalization analyses, ISM lessons learned.\n\n## Assumptions\n\n1. The user has access to AP \u002F expense \u002F SaaS-management exports, or can hand-assemble a spend list of the top 100-200 line items (the Pareto holds — top 20% of suppliers will be most of the spend).\n2. Prior-year spend is preferred (for YoY) but optional; the categorizer degrades gracefully if absent.\n3. Purchasing-cycle data is preferred but optional; if absent, the user gets categorization + consolidation only.\n4. Supplier criticality (`tier-1\u002F2\u002F3`) is a **judgment call by the user**, not derived from spend alone. Tier-1 = revenue-blocking if the supplier disappears. The tool refuses to infer this — the user must mark it.\n5. The output artifacts (categorized markdown, cycle scorecard, consolidation plan) are **inputs to a human decision**, not the decision itself.\n\n## Anti-patterns\n\n- **Consolidate to single-source for tier-1 critical category without a break-glass plan.** Cost savings buy nothing if the consolidated supplier disappears. See `references\u002Fprocurement_anti_patterns.md`.\n- **Categorize by vendor name, not by what's purchased.** Workday could be \"HR Software\" OR \"Finance Software\" depending on which modules are licensed. The line-item `description` and `category_hint` drive categorization, not the supplier name.\n- **Ignore renewal-date clustering.** Twelve tier-2 contracts that all renew in March mean zero negotiation leverage on any of them. Spread them.\n- **Approve-by-default for sub-$5K spend.** This is the death-by-a-thousand-SaaS pattern. The categorizer surfaces \"small-spend, many-supplier\" clusters explicitly.\n- **No quarterly renewal review.** Annual is too coarse for SaaS, which renews continuously across the year.\n- **Rationalize without measuring switching cost.** Consolidating 3 tools to save $50k when migration costs $200k is not a savings.\n- **Consolidate based on price alone, ignoring integration debt.** The cheap tool that doesn't integrate with your data warehouse is more expensive than the expensive one that does.\n- **Treat shadow IT spend as marketing's problem.** It is procurement's problem. Marketing-tool sprawl is the #1 driver of SaaS-spend growth in scaleups.\n\n## Distinct from\n\n- **Sibling `vendor-management`** — that's performance scoring (uptime, SLA, third-party risk) for vendors you've already decided to keep paying. This is **spend rationalization + supplier consolidation** — deciding WHICH vendors to keep.\n- **`finance\u002Ffinancial-analysis`** — that's financial close, P&L, reporting, DCF. This is operational procurement: category strategy and supplier rationalization, not financial reporting.\n- **`c-level-advisor\u002Fgeneral-counsel-advisor`** — that's contract law (indemnity, IP, liquidated damages). This is category-level spend strategy. Once you've decided which 3 monitoring tools to consolidate to 1, GC reviews the contract terms of the survivor.\n- **`business-growth\u002Fcontract-and-proposal-writer`** — that's outbound proposals to win customers. This is inbound supplier rationalization.\n- **`finance\u002Fbudgeting`** — that's annual budget planning. This is the inside view: where the budget is actually leaking.\n\n## Forcing-question library (Matt Pocock grill discipline)\n\nWalked one at a time by `\u002Fcs:grill-bizops` or the BizOps orchestrator. Recommended answer + canon citation per question. Never bundled.\n\n1. **\"Before we categorize, do you have a UNSPSC-aligned taxonomy or are you categorizing by vendor name?\"**\n   Recommended: categorize by what's purchased (line-item description + category_hint), not by supplier. A single supplier can span multiple categories.\n   Canon: UNSPSC official taxonomy documentation, A.T. Kearney *Spend Management* on category architecture.\n\n2. **\"Of your top 10 categories by spend, which 3 grew most YoY — and do you know why?\"**\n   Recommended: name them before opening the tool. If you can't name them, that's the diagnosis.\n   Canon: BCG Procurement value-creation research, Hackett benchmarks on category-level visibility maturity.\n\n3. **\"For each duplicate-function cluster (e.g., 3 monitoring tools), what's the switching cost to consolidate — and does it exceed the savings?\"**\n   Recommended: estimate switching cost explicitly (training, integration rework, data migration). Refuse to recommend consolidation without it.\n   Canon: BCG on supplier-consolidation risks, Spend Matters analyses of failed rationalization initiatives.\n\n4. **\"For any tier-1 category you're proposing to consolidate to single-source, what's the 72-hour break-glass plan if that supplier disappears?\"**\n   Recommended: documented contingency per category, tested. If absent, do not consolidate.\n   Canon: NotPetya \u002F M.E.Doc supply chain attack lessons, NIST SP 800-161, A.T. Kearney on supply concentration risk.\n\n5. **\"What % of your spend goes through a PO vs. expense reimbursement vs. shadow IT? Where's the maverick spend?\"**\n   Recommended: measure it. A.T. Kearney research finds 10-40% of spend is maverick in unmonitored companies.\n   Canon: A.T. Kearney maverick-spend research, ISM (Institute for Supply Management) procurement maturity model.\n\n6. **\"How many of your top-20 contracts renew in the same calendar month? Do you have a renewal calendar?\"**\n   Recommended: build the calendar; spread renewals deliberately. Clustered renewals destroy negotiation leverage.\n   Canon: IACCM\u002FWorldCC contract-management research, Spend Matters on negotiation leverage timing.\n\n7. **\"What's your approval threshold for net-new SaaS purchases under $5k? Who owns the death-by-a-thousand-SaaS problem?\"**\n   Recommended: a tightened threshold + a single owner. Productiv \u002F Zylo data shows 50%+ of SaaS sprawl comes from sub-$5k unmonitored purchases.\n   Canon: Productiv \u002F Zylo \u002F Vendr industry reports on SaaS sprawl.\n\nWalk depth-first. Lock 1-4 before opening 5-7. After all are answered, invoke `spend_categorizer.py` → `purchasing_cycle_analyzer.py` → `supplier_consolidation.py` in sequence.\n",{"name":5,"tags":44,"author":46,"license":15,"version":47,"description":7,"compatible_tools":48},[45,19,32,22,30,29,28],"bizops","claude-code-skills","2.8.0",[49,50,51,52,27,53],"claude-code","codex-cli","cursor","antigravity","gemini-cli","main","0da4485785ee599388900be50db1635489d53056",".agents\u002Fskills\u002Fprocurement-optimizer","https:\u002F\u002Fgithub.com\u002FTashima-Tarsh\u002FDisha6.6","https:\u002F\u002Fdisha6.6.thenitishkr.in\u002F","https:\u002F\u002Fgithub.com\u002FTashima-Tarsh","www.thenitishkr","thenitishkr | AI • Cyber-security • Research\r\n","2026-11-08 03:33:25",{"source":8,"skillName":5,"commands":64,"prompt":74,"zipAvailable":75},[65,68,71],{"tool":66,"command":67},"npx","npx skills add Tashima-Tarsh\u002FDisha6.6 --skill procurement-optimizer",{"tool":69,"command":70},"bunx","bunx skills add Tashima-Tarsh\u002FDisha6.6 --skill procurement-optimizer",{"tool":72,"command":73},"pnpm","pnpm dlx skills add Tashima-Tarsh\u002FDisha6.6 --skill procurement-optimizer","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002FTashima-Tarsh\u002FDisha6.6\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fprocurement-optimizer\u002FSKILL.md",true,[],[78,110,134,161,186,209],{"skillNo":79,"name":80,"nameZh":6,"description":81,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":82,"categories":83,"keywords":89,"publishedAt":39},"01M6QRD07D4TGNDK6VJ4EHF8BV","youtube-full","Use when the user needs YouTube transcripts, video search, channel browsing, playlist extraction, or content monitoring. Trigger phrases: 'get the transcript for', 'search YouTube for', 'what are the latest videos on', 'list this playlist', 'monitor this channel', or any request involving a YouTube URL, video ID, or @handle. Do NOT use for downloading video or audio files, YouTube engagement data (likes, comments), or private\u002Fage-restricted videos.","https:\u002F\u002Fgithub.com\u002FTashima-Tarsh\u002FDisha6.6\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fyoutube-full\u002FSKILL.md",[84],{"categoryNo":85,"categoryName":86,"taxonomyType":87,"taxonomyTypeDesc":88},"01JBSEEDCAT000000000000016","图像与多媒体","SCENARIO","使用场景",[90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109],"youtube full","youtube","full","transcript","search","monitoring","data","Video","Audio","list","files","do","get","age","trigger","URL","for","browsing","request","youtube transcripts",{"skillNo":111,"name":112,"nameZh":6,"description":113,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":114,"categories":115,"keywords":116,"publishedAt":39},"01M6QRCJ3112VYPA97YG7KGMC2","x-twitter-growth","X\u002FTwitter growth engine for building audience, crafting viral content, and analyzing engagement. Use when the user wants to grow on X\u002FTwitter, write tweets or threads, analyze their X profile, research competitors on X, plan a posting strategy, or optimize engagement. Complements social-content (generic multi-platform) with X-specific depth: algorithm mechanics, thread engineering, reply strategy, profile optimization, and competitive intelligence via web search.","https:\u002F\u002Fgithub.com\u002FTashima-Tarsh\u002FDisha6.6\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fx-twitter-growth\u002FSKILL.md",[],[117,118,119,120,94,121,122,34,123,124,125,126,127,128,129,130,131,132,133,106],"twitter","x twitter growth","growth","research","content","engineering","web search","competitors","analyze","engine","write","strategy","use","platform","grow","posting","competitive",{"skillNo":135,"name":136,"nameZh":6,"description":137,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":138,"categories":139,"keywords":143,"publishedAt":39},"01M6QRBN3EHQNJY42RERP7A149","write-a-skill","Create new agent skills with proper structure, progressive disclosure, and bundled resources. Use when user wants to create, write, build, or author a new skill.","https:\u002F\u002Fgithub.com\u002FTashima-Tarsh\u002FDisha6.6\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fwrite-a-skill\u002FSKILL.md",[140],{"categoryNo":141,"categoryName":142,"taxonomyType":87,"taxonomyTypeDesc":88},"01JBSEEDCAT000000000000023","Skill与智能体开发",[144,127,145,146,147,148,149,150,129,151,152,54,153,154,155,156,157,158,159,160],"write a skill","github","create","https","productivity","matt pocock","direct","example","build","new skill","structure","new agent","resources","with","tree","progressive disclosure","author",{"skillNo":162,"name":163,"nameZh":6,"description":164,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":165,"categories":166,"keywords":167,"publishedAt":39},"01M6QRB6G8P33PNGAF9Y69EJ9T","wrap-up","Close out a launched Claude Managed Agent — recap every primitive the founder now owns, regenerate the single-file overview page, and suggest the next 1-2 upgrades. Use when the user says \"wrap up\", \"close this out\", \"what do I own now\", \"give me the summary\", \"recap the agent\", or when the orchestrator routes phase=wrap-up. primitives_inventory.py tables everything owned (agent, environment, session, memory, outcome, deployment); overview_page.py regenerates a self-contained .\u002Fmy-agent\u002Fagent-overview.html; upgrade_suggester.py ranks the next moves from recorded deferrals plus standing hardening steps. Companion to run-without-you; the last stop before phase=done.","https:\u002F\u002Fgithub.com\u002FTashima-Tarsh\u002FDisha6.6\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fwrap-up\u002FSKILL.md",[],[168,169,170,171,172,173,174,175,176,129,177,101,178,179,180,181,182,183,184,185],"wrap up","up","wrap","gemini","deployment","run","file","hardening","closeout","stop","upgrade","founder","close","companion","you","tables","directions","phase",{"skillNo":187,"name":188,"nameZh":6,"description":189,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":190,"categories":191,"keywords":193,"publishedAt":39},"01M6QRA5AYC1RBFZ39GTWGS3N8","workflow-builder","Design and write deterministic multi-agent workflow scripts (.js files in .claude\u002Fworkflows\u002F) for Claude Code's Workflow tool. Use when a user wants to build, create, author, scaffold, or run a custom Claude Code workflow, orchestrate sub-agents (fan-out, pipeline, loop, judge-panel), or automate a repeatable multi-step task across fresh-context agents.","https:\u002F\u002Fgithub.com\u002FTashima-Tarsh\u002FDisha6.6\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fworkflow-builder\u002FSKILL.md",[192],{"categoryNo":141,"categoryName":142,"taxonomyType":87,"taxonomyTypeDesc":88},[194,195,196,197,198,146,173,37,199,200,201,202,127,203,100,204,205,206,207,208],"workflow","workflow builder","builder","design","workflows","orchestrate","pipeline","loop","multi-agent","context","across","fresh","scripts","judge","claude code workflow",{"skillNo":210,"name":211,"nameZh":6,"description":212,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":213,"categories":214,"keywords":215,"publishedAt":39},"01M6QR7QMCZESKQA0ERW1E657M","weekly-review","Use when someone wants to run a weekly review, close open loops, audit stalled projects and commitments, get their system back to trusted, restart a lapsed review habit, or says \"\u002Fcs:weekly-review\". Walks David Allen's three-phase loop — GET CLEAR, GET CURRENT, GET CREATIVE — with deterministic scripts that inventory open loops, gate the checklist with named gaps, and score commitment health 0-100.","https:\u002F\u002Fgithub.com\u002FTashima-Tarsh\u002FDisha6.6\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fweekly-review\u002FSKILL.md",[],[31,216,217,218,219,220,221,222,223,201,224,225,226,227,228,229,102,230,231,185],"weekly review","weekly","deterministic scripts","reflect","feeds","inventory","open","team","projects","project-management","scanner","conversation","back","project","sprint","cadence"]