tpmjs/packages/tools/official/STATISTICS_TOOLS.md
Ajax Davis 5d2096fb5d feat: add 100+ official TPMJS tools
Implements a comprehensive suite of AI SDK v6 tools across multiple categories:

- Research (5): page-brief, compare-pages, source-credibility, claim-checklist, timeline-from-text
- Web (10): fetch-text, links-catalog, extract-meta, extract-json-ld, redirect-trace, sitemap-read, rss-read, table-extract, robots-policy, url-normalize
- Data (15): csv-parse, csv-stringify, json-repair, json-schema-validate, yaml-parse, yaml-stringify, text-chunk, normalize-whitespace, dedupe-by-key, pivot, rows-filter, rows-sort, rows-group-aggregate, rows-join, schema-infer
- Doc (12): toc-generate, glossary-build, faq-from-text, executive-brief, decision-record-adr, prd-outline, acceptance-criteria, style-rewrite
- Eng (12): diff-text-unified, env-var-docs-generate, dependency-audit-lite, conventional-commit-suggest, markdown-lint-basic, test-case-generate, stacktrace-parse, release-notes, changelog-entry, release-checklist
- Security (7): redact-secrets, secret-scan-text, url-risk-heuristic, csp-compose, hardening-checklist-web, access-control-matrix, data-classification-heuristic
- Stats (9): effect-size-suite, bootstrap-ci, permutation-test, multiple-testing-adjust, linear-regression-ols, logistic-regression, time-series-decompose-lite, anomaly-detect-mad
- Ops (7): slo-draft, runbook-draft, postmortem-draft, postmortem-action-extractor, error-log-triage, coverage-tracker, monitoring-gap-analysis
- Agent (15): prompt-to-workflow-skeleton, workflow-validate-io, workflow-explain, workflow-cost-estimate, tool-call-accuracy-score, eval-fixture-build, guardrail-policy-draft, workflow-auto-repair, tool-selection-plan, novelty-score-workflow, workflow-variant-generate, config-normalize, recipe-*
- Utility (8): base64-encode, base64-decode, hash-text, regex-extract, template-render, date-parse, json-path-query, url-parse
- HTML (3): html-sanitize, html-to-markdown, markdown-to-html

All tools follow AI SDK v6 pattern with tool() and jsonSchema<T>().

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-31 22:55:56 +10:00

145 lines
4.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Statistics Tools Implementation Summary
Successfully implemented 3 statistical analysis tools for the TPMJS official tools collection.
## Tools Implemented
### 1. Permutation Test (`@tpmjs/tools-permutation-test`)
**Path:** `/Users/ajaxdavis/repos/tpmjs/tpmjs/packages/tools/official/permutation-test`
**Purpose:** Performs a permutation test to assess the statistical significance of the difference in means between two groups.
**Features:**
- Non-parametric hypothesis testing
- Configurable iterations (100-100,000)
- Returns p-value, observed difference, significance status
- No assumptions about distribution
**Example:**
```typescript
const result = await permutationTestTool.execute({
group1: [23, 25, 27, 29, 31],
group2: [18, 20, 22, 24, 26],
iterations: 10000
});
// Returns: pValue, observedDiff, significant, metadata
```
### 2. Multiple Testing Adjustment (`@tpmjs/tools-multiple-testing-adjust`)
**Path:** `/Users/ajaxdavis/repos/tpmjs/tpmjs/packages/tools/official/multiple-testing-adjust`
**Purpose:** Adjusts p-values for multiple comparisons using Bonferroni, Benjamini-Hochberg (BH), or Holm methods.
**Features:**
- Three adjustment methods:
- **Bonferroni**: Most conservative, controls FWER
- **Benjamini-Hochberg (BH)**: Controls FDR, less conservative
- **Holm**: Step-down procedure, more powerful than Bonferroni
- Returns adjusted p-values and indices of significant tests
- Handles monotonicity constraints correctly
**Example:**
```typescript
const result = await multipleTestingAdjustTool.execute({
pValues: [0.001, 0.02, 0.03, 0.15, 0.8],
method: 'bh',
alpha: 0.05
});
// Returns: adjusted[], significant[], method, alpha, metadata
```
### 3. Linear Regression OLS (`@tpmjs/tools-linear-regression-ols`)
**Path:** `/Users/ajaxdavis/repos/tpmjs/tpmjs/packages/tools/official/linear-regression-ols`
**Purpose:** Performs simple linear regression using Ordinary Least Squares (OLS) method.
**Features:**
- Calculates slope and intercept
- Computes R-squared (coefficient of determination)
- Returns residuals and predictions
- Handles edge cases (identical x or y values)
**Example:**
```typescript
const result = await linearRegressionOLSTool.execute({
x: [1, 2, 3, 4, 5],
y: [2, 4, 5, 4, 5]
});
// Returns: slope, intercept, rSquared, residuals[], predictions[], metadata
```
## Implementation Details
### Architecture
- Each tool follows the TPMJS pattern using AI SDK v6
- Uses `import { tool, jsonSchema } from 'ai'`
- TypeScript with strict type checking
- No external statistical libraries - implemented from scratch
- Comprehensive input validation
### File Structure (each tool)
```
tool-name/
├── src/
│ └── index.ts # Main implementation
├── dist/ # Built output (ESM + TypeScript declarations)
│ ├── index.js
│ └── index.d.ts
├── package.json # Package configuration with tpmjs metadata
├── tsconfig.json # TypeScript configuration
├── tsup.config.ts # Build configuration
└── README.md # Documentation with examples
```
### Build Status
✅ All tools build successfully
✅ All tools pass TypeScript type-check
✅ All tools tested and working correctly
### Statistical Algorithms Implemented
**Permutation Test:**
- Fisher-Yates shuffle algorithm
- Monte Carlo permutation sampling
- Two-tailed p-value calculation
**Multiple Testing Adjustment:**
- Bonferroni correction: p_adj = min(1, p × n)
- Benjamini-Hochberg: Monotonic FDR control
- Holm step-down: Sequential rejection procedure
**Linear Regression:**
- OLS slope: β₁ = Σ((x-x̄)(y-ȳ)) / Σ((x-x̄)²)
- OLS intercept: β₀ = ȳ - β₁x̄
- R-squared: R² = 1 - (SSE/SST)
## Package Metadata
Each tool includes proper `tpmjs` metadata in package.json:
- Category: `statistics`
- Framework: `vercel-ai`
- Tool documentation with parameters and returns
- Published to npm under `@tpmjs` scope
## Testing Results
All three tools have been tested and verified working:
```
✅ Permutation Test: Correctly identifies significance with p-values
✅ Multiple Testing Adjust: Properly adjusts p-values with BH method
✅ Linear Regression: Accurately calculates slope, intercept, and R²
```
## Next Steps
The tools are ready to be:
1. Added to `blocks.yml` (to be done by user)
2. Published to npm
3. Documented on tpmjs.com
## Dependencies
- `ai`: ^6.0.0-beta.124 (AI SDK v6)
- No external statistical libraries required
- All algorithms implemented from scratch for transparency and control