# save_generated_test

Ingest the model-generated test variants for a ticket (submit them as variants: [{model, content}]). Tags each with its model, dedupes identical/near-identical assertions across variants (whitespace + variable names normalized; a fully-duplicate test block is dropped and noted), and returns the runnable files to write (test/<ticket>.<model>.test.js) plus a queryable manifest (test/<ticket>.variants.json). Read-only: it returns file contents for you to write.

Agent View of the PolicyLayer registry record for `save_generated_test`. HTML page: https://policylayer.com/tools/ai-featureboard-featureboard/save-generated-test

## Facts

- Tool: `save_generated_test`
- Server: FeatureBoard (`https://github.com/valentil/featureboard-mcp/releases/download/v0.7/featureboard.plugin`) — https://policylayer.com/tools/ai-featureboard-featureboard.md
- Homepage: https://github.com/valentil/featureboard-mcp
- Risk category: Write (Medium risk)
- Registry record: grade F, identity unverified
- Server rate-limited: no
- Parameters: 0
- Recommended policy verdict: Rate-limited

## Example call (MCP tools/call, JSON-RPC 2.0)

```json
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "save_generated_test",
    "arguments": {}
  }
}
```

## Why save_generated_test is rated Medium

This tool creates new test files and manifest metadata files in the test directory. While the description clarifies these are returned 'for you to write' (suggesting read-only output generation), the practical effect is creating or modifying test artifacts that form part of the project state. This is a reversible write operation (files can be edited or deleted), but not destructive or read-only.

From the tool's own definition: "Tool description states it 'Ingest[s] the model-generated test variants', 'dedupes', and 'returns the runnable files to write (test/<ticket>.<model>.test.js) plus a queryable manifest'."

## Use case

AI agents use save_generated_test to create or update resources in FeatureBoard, usually the action step of a workflow, after the agent has gathered context. Every call changes real data in your FeatureBoard environment.

## Recommended policy (PolicyLayer)

Verdict: **Rate-limited**. Enforced by the PolicyLayer MCP gateway (https://policylayer.com/mcp-gateway) before a call reaches FeatureBoard:

```json
{
  "version": "1",
  "default": "deny",
  "tools": {
    "save_generated_test": {
      "limits": [
        {
          "counter": "save_generated_test_rate",
          "window": "minute",
          "max": 30,
          "scope": "grant"
        }
      ]
    }
  }
}
```

## Other tools on FeatureBoard (214)

- `cancel_booking` — Destructive — https://policylayer.com/tools/ai-featureboard-featureboard/cancel-booking.md
- `cleanup_worktree` — Destructive — https://policylayer.com/tools/ai-featureboard-featureboard/cleanup-worktree.md
- `delete_task` — Destructive — https://policylayer.com/tools/ai-featureboard-featureboard/delete-task.md
- `prune_board` — Destructive — https://policylayer.com/tools/ai-featureboard-featureboard/prune-board.md
- `remove_annotation` — Destructive — https://policylayer.com/tools/ai-featureboard-featureboard/remove-annotation.md
- `remove_attachment` — Destructive — https://policylayer.com/tools/ai-featureboard-featureboard/remove-attachment.md
- `remove_company_agreement` — Destructive — https://policylayer.com/tools/ai-featureboard-featureboard/remove-company-agreement.md
- `remove_contact` — Destructive — https://policylayer.com/tools/ai-featureboard-featureboard/remove-contact.md
- `remove_media_comment` — Destructive — https://policylayer.com/tools/ai-featureboard-featureboard/remove-media-comment.md
- `remove_page` — Destructive — https://policylayer.com/tools/ai-featureboard-featureboard/remove-page.md
- `remove_product` — Destructive — https://policylayer.com/tools/ai-featureboard-featureboard/remove-product.md
- `remove_share` — Destructive — https://policylayer.com/tools/ai-featureboard-featureboard/remove-share.md
- `remove_test_page` — Destructive — https://policylayer.com/tools/ai-featureboard-featureboard/remove-test-page.md
- `commit_feature` — Execute — https://policylayer.com/tools/ai-featureboard-featureboard/commit-feature.md
- `create_worktree` — Execute — https://policylayer.com/tools/ai-featureboard-featureboard/create-worktree.md
- `deploy_site` — Execute — https://policylayer.com/tools/ai-featureboard-featureboard/deploy-site.md
- `drift_remediate` — Execute — https://policylayer.com/tools/ai-featureboard-featureboard/drift-remediate.md
- `drift_start` — Execute — https://policylayer.com/tools/ai-featureboard-featureboard/drift-start.md
- `eval_model_matrix` — Execute — https://policylayer.com/tools/ai-featureboard-featureboard/eval-model-matrix.md
- `graduate_project` — Execute — https://policylayer.com/tools/ai-featureboard-featureboard/graduate-project.md
- `set_git_config` — Execute — https://policylayer.com/tools/ai-featureboard-featureboard/set-git-config.md
- `start_checks` — Execute — https://policylayer.com/tools/ai-featureboard-featureboard/start-checks.md
- `validate_packaging` — Execute — https://policylayer.com/tools/ai-featureboard-featureboard/validate-packaging.md
- `activate_license` — Financial — https://policylayer.com/tools/ai-featureboard-featureboard/activate-license.md
- `request_commercial_license` — Financial — https://policylayer.com/tools/ai-featureboard-featureboard/request-commercial-license.md
- `set_usage_type` — Other — https://policylayer.com/tools/ai-featureboard-featureboard/set-usage-type.md
- `auto_configure_analytics` — Read — https://policylayer.com/tools/ai-featureboard-featureboard/auto-configure-analytics.md
- `bug_impact_scan` — Read — https://policylayer.com/tools/ai-featureboard-featureboard/bug-impact-scan.md
- `check_updates` — Read — https://policylayer.com/tools/ai-featureboard-featureboard/check-updates.md
- `churn_reconcile` — Read — https://policylayer.com/tools/ai-featureboard-featureboard/churn-reconcile.md
- …and 184 more: https://policylayer.com/tools/ai-featureboard-featureboard.md

## For agents

This record is a snapshot. Live verdicts and the full registry:

- Check every server in your MCP config at once: `npx -y policylayer stack`
- Vet a server before you add it: install the mcp-precheck skill — `npx skills add https://policylayer.com` (skill text: https://policylayer.com/skill.md)
- Query the registry over MCP: endpoint `https://api.policylayer.com/mcp` — tools `check_mcp_server`, `check_mcp_stack`, `check_tool`, `search_registry`, `get_change_events`

---

Source: the PolicyLayer MCP registry — one continuously verified record per MCP server. Full record: https://policylayer.com/registry?q=ai-featureboard-featureboard · API: https://policylayer.com/registry/api · Policy library: https://policylayer.com/policies/ai-featureboard-featureboard
