tpmjs/packages/tools/official/IMPLEMENTATION_SUMMARY_NEW_TOOLS.md
Ajax Davis 09fd0a5833 feat: add 55 new business tools and improve existing implementations
New tools added across multiple domains:
- Sales: lead-score, proposal-outline, objection-response
- Marketing: competitor-brief, campaign-brief, social-post-draft, email-subject-score, audience-persona, content-calendar-plan, pricing-page-copy
- HR: job-description-draft, interview-questions, performance-review-draft, onboarding-checklist, compensation-band, survey-analyze, org-chart-format, offer-letter-draft, exit-interview-summarize, policy-doc-format
- Legal: contract-clause-scan, nda-template-draft, tos-readability, risk-clause-highlight, invoice-terms-extract, gdpr-data-map, copyright-notice, trademark-check
- Finance: expense-categorize, invoice-data-extract, budget-variance, cash-flow-project, revenue-breakdown, ratio-analysis, tax-deduction-scan, reconciliation-match
- Customer Experience: feedback-themes, churn-risk-score, nps-analysis, ticket-categorize, response-template-suggest, health-score-calculate, renewal-forecast
- Education: lesson-plan-outline, quiz-generate, rubric-create, syllabus-format, progress-report-draft, learning-objective-write, curriculum-map

Also includes improvements to 68 existing tool implementations.

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

Co-Authored-By: Claude <noreply@anthropic.com>
2026-01-01 19:23:32 +10:00

7.3 KiB

TPMJS Tools Implementation Summary

Overview

Successfully implemented 5 production-ready TPMJS tools following the blocks.yml definitions:

  1. finance.reconciliationMatch - Bank transaction reconciliation
  2. cx.feedbackThemes - Customer feedback theme extraction
  3. cx.churnRiskScore - Customer churn risk scoring
  4. cx.npsAnalysis - NPS survey analysis
  5. cx.ticketCategorize - Support ticket categorization

Tool Details

1. finance.reconciliationMatch (reconciliation-match)

Path: /packages/tools/official/reconciliation-match/

Description: Matches bank transactions to ledger entries for reconciliation using amount matching, date proximity scoring, and description similarity analysis.

Key Features:

  • Exact amount matching with 60% weight
  • Date proximity scoring (same day = 1.0, decreases with distance)
  • Levenshtein distance for description similarity
  • Confidence scores with match reasons
  • Unmatched transaction tracking

Input Schema:

{
  bankTransactions: Array<{
    id: string;
    date: string;
    amount: number;
    description: string;
  }>;
  ledgerEntries: Array<{
    id: string;
    date: string;
    amount: number;
    description: string;
  }>;
}

Output:

  • Matched pairs with confidence scores
  • Unmatched bank transactions
  • Unmatched ledger entries
  • Match rate summary

2. cx.feedbackThemes (feedback-themes)

Path: /packages/tools/official/feedback-themes/

Description: Extracts themes and sentiment from customer feedback text using keyword-based analysis.

Key Features:

  • 10+ theme categories (Performance, UI, Ease of Use, Features, Support, etc.)
  • Sentiment scoring (positive/negative/neutral)
  • Theme frequency tracking
  • Overall sentiment calculation
  • Example feedback for each theme

Input Schema:

{
  feedback: string[];
}

Output:

  • Themes with sentiment scores and frequencies
  • Overall sentiment breakdown
  • Positive/negative/neutral counts
  • Example feedback per theme

3. cx.churnRiskScore (churn-risk-score)

Path: /packages/tools/official/churn-risk-score/

Description: Scores customer churn risk based on usage, engagement, and support signals.

Key Features:

  • Multi-signal risk assessment (usage, engagement, support)
  • 0-100 risk score calculation
  • Risk level categorization (critical/high/medium/low)
  • Contributing factors with impact levels
  • Actionable retention recommendations

Input Schema:

{
  customer: {
    id: string;
    name: string;
    subscriptionStartDate: string;
    lastLoginDate?: string;
    loginCount30Days?: number;
    activeUsersCount?: number;
    totalSeats?: number;
    supportTicketsCount30Days?: number;
    negativeTicketsCount30Days?: number;
    npsScore?: number;
    billingIssues?: boolean;
    contractEndDate?: string;
  };
}

Output:

  • Risk score (0-100)
  • Risk level classification
  • Contributing risk factors
  • Retention recommendations
  • Summary statement

4. cx.npsAnalysis (nps-analysis)

Path: /packages/tools/official/nps-analysis/

Description: Analyzes NPS survey responses to categorize by promoter/passive/detractor and extract themes.

Key Features:

  • NPS score calculation (% promoters - % detractors)
  • Automatic categorization (9-10 = promoter, 7-8 = passive, 0-6 = detractor)
  • Theme extraction from comments
  • Separate themes for promoters vs detractors
  • Actionable recommendations based on findings

Input Schema:

{
  responses: Array<{
    score: number; // 0-10
    comment?: string;
    respondentId?: string;
    date?: string;
  }>;
}

Output:

  • NPS score
  • Distribution breakdown (promoters/passives/detractors)
  • Themes by category
  • Recommendations
  • Summary statement

5. cx.ticketCategorize (ticket-categorize)

Path: /packages/tools/official/ticket-categorize/

Description: Categorizes support tickets by type, priority, and product area with routing suggestions.

Key Features:

  • 7 ticket categories (bug, feature-request, how-to, billing, technical-issue, account, other)
  • 4 priority levels (critical, high, medium, low)
  • Product area identification (API, Dashboard, Mobile, Integrations, etc.)
  • Smart routing suggestions
  • Estimated resolution time
  • Automatic tagging

Input Schema:

{
  ticket: {
    id: string;
    subject: string;
    description: string;
    customerEmail?: string;
    createdAt?: string;
  };
}

Output:

  • Category classification
  • Priority level
  • Product area
  • Routing suggestion
  • Tags
  • Estimated resolution time
  • Reasoning explanation

Technical Implementation

Stack

  • AI SDK: v6.0.0-beta.124 (Vercel AI SDK)
  • Schema: jsonSchema() (avoids Zod 4 JSON Schema issues)
  • TypeScript: Strict mode with full type safety
  • Build Tool: tsup (ESM only)
  • Package Structure: Follows TPMJS monorepo conventions

Build Status

All 5 tools successfully type-check All 5 tools successfully build All output files generated (index.js + index.d.ts)

File Structure (per tool)

tool-name/
├── src/
│   └── index.ts          # Full implementation with interfaces and logic
├── package.json          # With tpmjs field and category
├── tsconfig.json         # Extends @tpmjs/tsconfig/base.json
└── tsup.config.ts        # Standard tsup config

Package Naming Convention

  • @tpmjs/reconciliation-match
  • @tpmjs/feedback-themes
  • @tpmjs/churn-risk-score
  • @tpmjs/nps-analysis
  • @tpmjs/ticket-categorize

Categories

  • finance: reconciliation-match
  • cx: feedback-themes, churn-risk-score, nps-analysis, ticket-categorize

Export Pattern

Each tool exports both named and default:

export const toolNameTool = tool({ ... });
export default toolNameTool;

Validation & Quality

All tools include:

  • Input validation with error messages
  • TypeScript interfaces for all data structures
  • Comprehensive JSDoc comments
  • Edge case handling
  • Production-ready error handling
  • Detailed tpmjs metadata in package.json

Usage Example

import { reconciliationMatchTool } from '@tpmjs/reconciliation-match';
import { streamText } from 'ai';

const result = await streamText({
  model: yourModel,
  tools: {
    reconciliationMatch: reconciliationMatchTool,
  },
  // ... your config
});

Next Steps

To use these tools:

  1. Build the packages:

    pnpm --filter=@tpmjs/reconciliation-match... build
    pnpm --filter=@tpmjs/feedback-themes... build
    pnpm --filter=@tpmjs/churn-risk-score... build
    pnpm --filter=@tpmjs/nps-analysis... build
    pnpm --filter=@tpmjs/ticket-categorize... build
    
  2. Type-check:

    pnpm --filter=@tpmjs/reconciliation-match type-check
    # ... repeat for other tools
    
  3. Publish to npm (when ready):

    pnpm changeset
    pnpm changeset:version
    pnpm changeset:publish
    

Notes

  • All tools use keyword-based heuristics for classification
  • For advanced use cases, consider enhancing with AI model-powered analysis
  • Categorization logic can be customized per organization
  • All scoring algorithms use weighted factors that can be tuned
  • Tools are designed to be composable with other TPMJS tools

Created: 2026-01-01 Author: AI Assistant Status: Production Ready