{
  "name": "FastTool Public Tool Action Catalog",
  "canonical_url": "https://fasttool.app/tool-actions.json",
  "well_known_pointer": "https://fasttool.app/.well-known/tool-actions.json",
  "updated": "2026-07-29",
  "last_updated": "2026-07-29",
  "purpose": "Execution contracts for indexable FastTool tools only. Direct-access and beta contracts are intentionally excluded from public discovery.",
  "default_start": "https://fasttool.app/tools/website-migration-evidence-compiler/",
  "action_contracts": [
    {
      "$schema": "https://fasttool.app/schemas/tool-contract-v1.schema.json",
      "ad_state": "off_during_review",
      "assumptions": [
        "The browser decoder's PCM result is the source used for WAV export.",
        "Requested times are aligned down to whole source sample frames and the exact frame range is recorded.",
        "The clearly labeled synthetic fixture is generated locally and is never represented as customer audio."
      ],
      "availability_state": "available",
      "canonical_url": "https://fasttool.app/tools/audio-cutter/",
      "category": "Media",
      "flagship": false,
      "index_state": "index",
      "input_schema": {
        "accepted_types": [
          "audio/*",
          "browser-decodable audio bytes"
        ],
        "max_bytes": 209715200,
        "max_items": 1,
        "modes": [
          "local_audio_file",
          "synthetic_wav_fixture",
          "numeric_time_range"
        ]
      },
      "limits": [
        "Output is 16-bit PCM WAV only; the tool does not preserve the source codec or container.",
        "Input is capped at 200 MiB and output at 100 MiB so the public Receipt Verifier can compare the exact artifact bytes within its bounded local verification limit.",
        "The receipt proves artifact-byte integrity for this run, not rights ownership, mastering quality, authorship, or forensic authenticity."
      ],
      "name": "Audio Cutter Online",
      "output_artifacts": [
        "verified-pcm16.wav",
        "audio-cutter-receipt.json",
        "audio-cutter-receipt.md"
      ],
      "primary_user_job": "Trim a browser-decodable audio file to an exact range and leave with a locally verified PCM WAV plus hash-backed JSON and Markdown receipts.",
      "privacy_boundary": "Audio bytes, decoded samples, filenames, selected times, and hashes stay inside this browser tool. Analytics receives only allowlisted lifecycle metadata and never raw input, filenames, ranges, or hashes.",
      "quality_badge": "Reviewed public tool · English-only · WAV output",
      "quality_gates": {
        "editorial": "pass",
        "independent_human_review": "not_claimed",
        "independent_redteam": "pass",
        "product": "pass",
        "provenance": "pass"
      },
      "receipt_schema": "fasttool-evidence-receipt/v1",
      "reviewed": true,
      "schema_version": "fasttool-tool-contract/v1",
      "source_refs": [
        "https://www.w3.org/TR/webaudio/",
        "https://www.w3.org/TR/WebCryptoAPI/",
        "https://www.w3.org/TR/FileAPI/"
      ],
      "tool_slug": "audio-cutter"
    },
    {
      "$schema": "https://fasttool.app/schemas/tool-contract-v1.schema.json",
      "ad_state": "off_during_review",
      "assumptions": [
        "Report identifiers and expanded payload hashes are used to exclude exact duplicates while preserving overlap warnings.",
        "Source classifications are local reviewer decisions and are not inferred ownership facts.",
        "Aggregate counts describe supplied reporting windows and do not prove complete global mail flow."
      ],
      "availability_state": "available",
      "canonical_url": "https://fasttool.app/tools/dmarc-report-triage/",
      "category": "Email Security",
      "flagship": true,
      "index_state": "index",
      "input_schema": {
        "accepted_types": [
          "application/xml",
          "text/xml",
          "application/gzip",
          "application/zip",
          ".xml",
          ".gz",
          ".xml.gz",
          ".zip"
        ],
        "max_bytes": 26214400,
        "max_depth": 32,
        "max_items": 250000,
        "modes": [
          "safe_sample",
          "multiple_xml_files",
          "multiple_xml_gzip_files",
          "zip_archives",
          "local_source_classification"
        ]
      },
      "limits": [
        "At most 100 report files, 10 MiB compressed and 5 MiB expanded per file, 25 MiB expanded per batch and 250000 record rows.",
        "The tool parses aggregate reports but does not change DNS, send mail, inspect message content or guarantee deliverability.",
        "Source IP addresses and authentication identifiers can be sensitive and should be handled only on a trusted device."
      ],
      "name": "DMARC Report Triage",
      "output_artifacts": [
        "dmarc-source-summary.csv",
        "dmarc-trend.svg",
        "dmarc-remediation.md",
        "receipt.json",
        "dmarc-report-triage-proof-pack.zip"
      ],
      "primary_user_job": "Triage batches of DMARC aggregate reports into deduplicated sender evidence, alignment trends, classification gaps and a remediation packet.",
      "privacy_boundary": "Report files are decompressed, parsed, classified and hashed in this browser. Their source IPs and authentication identifiers are not sent by the tool; use a trusted device and approved handling policy.",
      "quality_gates": {
        "editorial": "pass",
        "independent_human_review": "not_claimed",
        "independent_redteam": "pass",
        "product": "pass",
        "provenance": "pass"
      },
      "schema_version": "fasttool-tool-contract/v1",
      "source_refs": [
        "https://www.rfc-editor.org/rfc/rfc9990.html#section-3.1",
        "https://www.rfc-editor.org/rfc/rfc9990.html#section-3.5.4",
        "https://www.rfc-editor.org/rfc/rfc9990.html#appendix-A",
        "https://www.rfc-editor.org/rfc/rfc9989.html",
        "https://stuk.github.io/jszip/"
      ],
      "tool_slug": "dmarc-report-triage"
    },
    {
      "$schema": "https://fasttool.app/schemas/tool-contract-v1.schema.json",
      "ad_state": "off_during_review",
      "assumptions": [
        "Exact overlap uses NFKC-normalized equality over configured shared columns.",
        "Near-duplicate screening uses lexical token Jaccard and can miss semantic paraphrases.",
        "Drift and proxy metrics are screening signals that require domain and model-performance review."
      ],
      "availability_state": "available",
      "canonical_url": "https://fasttool.app/tools/ml-dataset-leakage-drift-lab/",
      "category": "Machine Learning",
      "flagship": true,
      "index_state": "index",
      "input_schema": {
        "accepted_types": [
          "text/csv",
          ".csv"
        ],
        "max_bytes": 4194304,
        "max_depth": 8,
        "max_items": 2000,
        "modes": [
          "safe_sample",
          "random_synthetic_case",
          "train_csv",
          "test_csv",
          "split_policy"
        ]
      },
      "limits": [
        "Each split is capped at 1000 rows and 60 columns; pairwise near-duplicate scanning is explicitly bounded.",
        "Drift metrics do not prove model performance harm and correlation or association does not establish causality.",
        "Use only public, synthetic or fully de-identified rows; sensitive row-level data is outside the privacy boundary."
      ],
      "name": "ML Dataset Leakage & Drift Lab",
      "output_artifacts": [
        "ml-dataset-leakage-drift-lab-evidence.svg",
        "ml-dataset-leakage-drift-lab-overlap-ledger.csv",
        "ml-dataset-leakage-drift-lab-feature-drift.csv",
        "ml-dataset-leakage-drift-lab-quarantine.csv",
        "ml-dataset-leakage-drift-lab-remediation.md",
        "ml-dataset-leakage-drift-lab-receipt.json"
      ],
      "primary_user_job": "Compare train and test CSV splits for copied or near-duplicate rows, entity and time leakage, target proxies and feature drift before release.",
      "privacy_boundary": "Train and test CSV text is parsed and hashed locally in this browser. Use only public, synthetic or fully de-identified data and never paste customer, patient, employee, credential or financial rows.",
      "quality_gates": {
        "editorial": "pass",
        "independent_human_review": "not_claimed",
        "independent_redteam": "pass",
        "product": "pass",
        "provenance": "pass"
      },
      "schema_version": "fasttool-tool-contract/v1",
      "source_refs": [
        "https://scikit-learn.org/stable/common_pitfalls.html#data-leakage",
        "https://developers.google.com/machine-learning/crash-course/production-ml-systems/monitoring",
        "https://arxiv.org/abs/2107.06499"
      ],
      "tool_slug": "ml-dataset-leakage-drift-lab"
    },
    {
      "$schema": "https://fasttool.app/schemas/tool-contract-v1.schema.json",
      "ad_state": "off_during_review",
      "assumptions": [
        "Artifact identity is matched by the exact filename declared in the receipt.",
        "Receipt core canonicalization uses the FastTool Evidence Workflow deterministic key ordering contract."
      ],
      "availability_state": "available",
      "canonical_url": "https://fasttool.app/tools/receipt-verifier/",
      "category": "Evidence",
      "flagship": false,
      "index_state": "index",
      "input_schema": {
        "accepted_types": [
          "application/json",
          "any receipt-declared artifact type"
        ],
        "max_bytes_per_input": 104857600,
        "max_depth": 64,
        "max_items": 100,
        "max_total_bytes": 104857600,
        "modes": [
          "receipt_json_paste",
          "receipt_json_file",
          "optional_artifact_files",
          "optional_parent_receipt_files",
          "generated_safe_fixture"
        ]
      },
      "limits": [
        "Integrity PASS does not establish authorship, source authenticity, factual correctness or independent certification.",
        "Engine hashes are reported but executable engine bytes are not accepted or executed.",
        "Parent links PASS only when every declared parent and transitive ancestor receipt core is supplied and recomputed; parent artifact bytes are not checked by the chain result."
      ],
      "name": "Receipt Verifier",
      "output_artifacts": [
        "fasttool-receipt-verification.json",
        "fasttool-receipt-verification.md"
      ],
      "primary_user_job": "Recompute a FastTool Receipt v1 core hash and compare optional local artifact bytes with declared hashes so reviewers can distinguish intact, broken and incomplete evidence packets.",
      "privacy_boundary": "Receipt and artifact bytes are parsed and hashed inside this browser tab without upload; analytics receives only allowlisted bounded status and artifact-count fields, never receipt content or filenames.",
      "quality_gates": {
        "editorial": "pass",
        "independent_human_review": "not_claimed",
        "independent_redteam": "pass",
        "product": "pass",
        "provenance": "pass"
      },
      "receipt_schema": "fasttool-evidence-receipt/v1",
      "schema_version": "fasttool-tool-contract/v1",
      "source_refs": [
        "https://www.rfc-editor.org/rfc/rfc8785",
        "https://www.w3.org/TR/WebCryptoAPI/",
        "https://json-schema.org/draft/2020-12"
      ],
      "tool_slug": "receipt-verifier"
    },
    {
      "$schema": "https://fasttool.app/schemas/tool-contract-v1.schema.json",
      "ad_state": "off_during_review",
      "assumptions": [
        "Finding identity uses declared fingerprints first and bounded fallback matching second.",
        "The selected release policy reflects the team's actual risk budget.",
        "Accepted suppressions remain visible evidence even when excluded from the configured budget."
      ],
      "availability_state": "available",
      "canonical_url": "https://fasttool.app/tools/sarif-finding-delta-release-gate/",
      "category": "Developer",
      "flagship": true,
      "index_state": "index",
      "input_schema": {
        "accepted_types": [
          "application/sarif+json",
          "application/json",
          ".sarif",
          ".json"
        ],
        "max_bytes": 5242880,
        "max_depth": 96,
        "max_items": 50000,
        "modes": [
          "safe_sample",
          "baseline_sarif_json",
          "candidate_sarif_json",
          "local_sarif_files",
          "release_policy"
        ]
      },
      "limits": [
        "The tool validates supported self-contained SARIF but does not scan code, resolve external property files or deploy a release.",
        "A PASS is a policy result for the supplied reports, not proof that software is secure or free of unreported findings.",
        "Each input is capped at 5 MiB, 100 runs, 50000 results, 600000 JSON nodes and 96 nesting levels."
      ],
      "name": "SARIF Finding Delta & Release Gate",
      "output_artifacts": [
        "sarif-finding-delta.json",
        "sarif-finding-delta.csv",
        "sarif-release-gate.md",
        "sarif-release-gate.svg",
        "sarif-release-gate-policy.json",
        "sarif-release-gate-annotations.sarif",
        "sarif-release-gate-receipt.json"
      ],
      "primary_user_job": "Validate baseline and candidate SARIF 2.1.0 reports, compute fingerprint-aware finding deltas and produce an explicit evidence-backed release gate.",
      "privacy_boundary": "Pasted or locally selected SARIF bytes are processed and hashed in this browser. No external property file is fetched; confidential reports should be used only on an approved local device.",
      "quality_gates": {
        "editorial": "pass",
        "independent_human_review": "not_claimed",
        "independent_redteam": "pass",
        "product": "pass",
        "provenance": "pass"
      },
      "schema_version": "fasttool-tool-contract/v1",
      "source_refs": [
        "https://docs.oasis-open.org/sarif/sarif/v2.1.0/os/sarif-v2.1.0-os.html",
        "https://docs.oasis-open.org/sarif/sarif/v2.1.0/os/schemas/sarif-schema-2.1.0.json",
        "https://json.schemastore.org/sarif-2.1.0.json"
      ],
      "tool_slug": "sarif-finding-delta-release-gate"
    },
    {
      "$schema": "https://fasttool.app/schemas/tool-contract-v1.schema.json",
      "ad_state": "off_during_review",
      "assumptions": [
        "Every sensitive region is selected manually and reviewed by the user before export.",
        "Solid-fill pixel verification covers the declared redaction rectangles in the re-decoded PNG.",
        "The source image itself is not proof that all sensitive context has been identified."
      ],
      "availability_state": "available",
      "canonical_url": "https://fasttool.app/tools/screenshot-redaction-proof-studio/",
      "category": "Privacy",
      "flagship": true,
      "index_state": "index",
      "input_schema": {
        "accepted_types": [
          "image/png",
          "image/jpeg",
          "image/webp",
          ".png",
          ".jpg",
          ".jpeg",
          ".webp"
        ],
        "max_bytes": 26214400,
        "max_depth": 8,
        "max_items": 64,
        "modes": [
          "safe_sample",
          "local_image_file",
          "clipboard_image",
          "manual_redaction_regions"
        ]
      },
      "limits": [
        "Input is capped at 25 MiB, 8 megapixels, 64 redaction zones and 16 million total zone-check pixels.",
        "OCR is intentionally disabled; the tool cannot discover unselected sensitive text or certify legal redaction.",
        "Receipts bind the local input and artifacts but do not prove an external share, deletion or recipient state."
      ],
      "name": "Screenshot Redaction Proof Studio",
      "output_artifacts": [
        "redacted-screenshot.png",
        "redaction-zones.json",
        "redaction-map.svg",
        "redaction-audit.csv",
        "share-safety-manifest.md",
        "screenshot-redaction-proof-receipt.json"
      ],
      "primary_user_job": "Redact selected screenshot regions with solid fills, re-encode a metadata-free PNG, verify output pixels and export a reviewable proof packet.",
      "privacy_boundary": "Image pixels, selected zones and generated artifacts remain in browser memory. No remote OCR code is loaded; inspect every sensitive area before sharing the verified output.",
      "quality_gates": {
        "editorial": "pass",
        "independent_human_review": "not_claimed",
        "independent_redteam": "pass",
        "product": "pass",
        "provenance": "pass"
      },
      "schema_version": "fasttool-tool-contract/v1",
      "source_refs": [
        "https://www.w3.org/TR/png-3/",
        "https://html.spec.whatwg.org/multipage/canvas.html",
        "https://w3c.github.io/webcrypto/"
      ],
      "tool_slug": "screenshot-redaction-proof-studio"
    },
    {
      "$schema": "https://fasttool.app/schemas/tool-contract-v1.schema.json",
      "ad_state": "off_during_review",
      "assumptions": [
        "The workbook uses the XLSX Office Open XML package model.",
        "Formula comparison is textual and does not claim semantic equivalence.",
        "External relationships and selected formula families are review signals, not proof of malicious behavior."
      ],
      "availability_state": "available",
      "available": true,
      "canonical_url": "https://fasttool.app/tools/spreadsheet-formula-hidden-link-forensics-lab/",
      "category": "Data",
      "flagship": false,
      "index_state": "index",
      "input_schema": {
        "accepted_types": [
          "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",
          ".xlsx"
        ],
        "max_bytes": 15728640,
        "modes": [
          "generated_pass_sample",
          "generated_indeterminate_sample",
          "generated_block_sample_pair",
          "xlsx_primary",
          "xlsx_optional_comparison"
        ]
      },
      "limits": [
        "Maximum compressed input is 15 MiB per workbook.",
        "Maximum package inventory is 1500 entries, 80 MiB uncompressed and 100,000 dependency edges.",
        "The tool does not execute formulas, macros, Power Query, embedded binaries or network calls.",
        "Conditional-formatting, data-validation, table, chart, pivot and other non-cell formula surfaces are reported fail-closed and cannot produce PASS."
      ],
      "name": "Spreadsheet Formula & Hidden-Link Forensics Lab",
      "output_artifacts": [
        "spreadsheet-forensics-analysis.json",
        "spreadsheet-forensics-findings.csv",
        "spreadsheet-forensics-dependencies.csv",
        "spreadsheet-forensics-review.md",
        "spreadsheet-forensics-risk-map.svg",
        "spreadsheet-forensics-receipt.json"
      ],
      "primary_user_job": "Review an XLSX workbook for formulas, hidden structures, external relationships and formula changes before trusting or releasing it.",
      "privacy_boundary": "Workbook bytes are parsed and hashed in this browser tab. FastTool does not upload workbook bytes. Normal page asset requests can still occur.",
      "quality_badge": "Reviewed public workflow",
      "quality_gates": {
        "browser_matrix": "pass",
        "editorial": "pass",
        "independent_human_review": "not_claimed",
        "independent_redteam": "pass",
        "product": "pass",
        "provenance": "pass",
        "unit": "pass"
      },
      "reviewed": true,
      "schema_version": "fasttool-tool-contract/v1",
      "source_refs": [
        "https://ecma-international.org/publications-and-standards/standards/ecma-376/",
        "https://stuk.github.io/jszip/"
      ],
      "summary": "Inspect XLSX formulas, hidden workbook structures, external relationships and formula changes, then export review evidence with exact hashes.",
      "tool_slug": "spreadsheet-formula-hidden-link-forensics-lab"
    },
    {
      "$schema": "https://fasttool.app/schemas/tool-contract-v1.schema.json",
      "ad_state": "off_during_review",
      "assumptions": [
        "URL similarity and route-shape matches are candidates that still require owner review.",
        "Source and destination inventories represent the intended migration scope.",
        "Deployment syntax must be tested in the actual edge or web-server environment."
      ],
      "availability_state": "available",
      "canonical_url": "https://fasttool.app/tools/website-migration-evidence-compiler/",
      "category": "SEO",
      "flagship": true,
      "index_state": "index",
      "input_schema": {
        "accepted_types": [
          "text/plain",
          "text/csv",
          "application/xml",
          ".txt",
          ".csv",
          ".xml"
        ],
        "max_bytes": 5242880,
        "max_depth": 64,
        "max_items": 50000,
        "modes": [
          "safe_sample",
          "old_and_new_url_text",
          "sitemap_xml",
          "crawl_csv",
          "manual_override_csv"
        ]
      },
      "limits": [
        "This tool does not crawl a live site, change DNS, deploy redirects or guarantee ranking or traffic outcomes.",
        "Authenticated URLs, private preview tokens, server-log truth and runtime redirect behavior are outside the browser-only analysis.",
        "Each input is bounded before parsing and generated rules remain subject to platform-specific quotas and precedence."
      ],
      "name": "Website Migration Evidence Compiler",
      "output_artifacts": [
        "website-migration-cloudflare-bulk-redirects.csv",
        "website-migration-webflow-301-redirects.csv",
        "website-migration-_redirects.txt",
        "website-migration-apache-redirects.conf",
        "website-migration-nginx-redirects.conf",
        "website-migration-playwright-redirect-qa.js",
        "website-migration-redirect-ledger.csv",
        "website-migration-evidence-map.svg",
        "website-migration-runbook.md",
        "website-migration-evidence-receipt.json"
      ],
      "primary_user_job": "Compile old and new URL inventories into a reviewable redirect migration packet with collision, chain, loop, orphan and query-loss evidence.",
      "privacy_boundary": "Pasted or selected URL inventories are processed and hashed locally in this browser. Do not include credentials, private preview tokens, customer identifiers or authenticated URLs.",
      "quality_gates": {
        "editorial": "pass",
        "independent_human_review": "not_claimed",
        "independent_redteam": "pass",
        "product": "pass",
        "provenance": "pass"
      },
      "schema_version": "fasttool-tool-contract/v1",
      "source_refs": [
        "https://www.sitemaps.org/protocol.html",
        "https://www.rfc-editor.org/rfc/rfc9110.html",
        "https://developers.cloudflare.com/rules/url-forwarding/bulk-redirects/",
        "https://nginx.org/en/docs/http/ngx_http_rewrite_module.html",
        "https://httpd.apache.org/docs/2.4/mod/mod_alias.html",
        "https://playwright.dev/docs/test-assertions"
      ],
      "tool_slug": "website-migration-evidence-compiler"
    }
  ],
  "tool_count": 8,
  "indexable_tool_count": 8,
  "adsense_review_boundary": {
    "ad_state": "off_during_review",
    "indexable_tools": 8,
    "public_action_contracts": 8,
    "rule": "Availability does not imply indexability or ad eligibility."
  }
}
