# flag_work_item

Flag a card as having a problem WITH THE CARD — unclear scope, no repro, a blocked dependency, a question waiting on an answer — or clear a flag once it is resolved. A flagged card is drawn differently on the board so nobody picks it up by mistake. A FLAG IS NOT A TAG. The tag says how urgent the WORK is; a flag says the CARD is not fit to be worked. If a card is merely important, use set_work_item_tag. If you cannot start because something is missing, flag it. THE REASON IS REQUIRED IN BOTH DIRECTIONS, and it is not the audit reason — it is the text a human reads on the card. Raising says what is wrong; clearing says what resolved it. Anyone may clear a flag, which only works because both directions are recorded as a comment on the card. This is what the ship-the-card skill means by "an unworkable card is a triage problem, not a coding problem": flag it, say the one question that would unblock it, and stop. Governed write: previews by default. A live write requires dryRun:false plus approved:true, a reason, and an idempotencyKey (reuse the SAME key on retry — a duplicate move would read as the card having bounced between columns).

Agent View of the PolicyLayer registry record for `flag_work_item`. HTML page: https://policylayer.com/tools/adrata-starfield-mcp/flag-work-item

## Facts

- Tool: `flag_work_item`
- Server: Starfield (`@adrata/starfield-mcp`) — https://policylayer.com/tools/adrata-starfield-mcp.md
- Install: `npx -y @adrata/starfield-mcp`
- Homepage: https://www.npmjs.com/package/@adrata/starfield-mcp
- Risk category: Destructive (Critical risk)
- Registry record: grade F, identity unverified
- Server rate-limited: no
- Parameters: 6 (3 required)
- Recommended policy verdict: Hidden

## Parameters

| Parameter | Type | Required | Description |
| --- | --- | --- | --- |
| `dryRun` | boolean | no | Defaults to true. Set false to change the flag. |
| `itemId` | string | yes | Card id. |
| `reason` | string | yes | REQUIRED. Raising: what is wrong with the card. Clearing: what resolved it. Shown on the card and appended to its comment thread — write it for the person who w |
| `flagged` | boolean | yes | true raises the flag; false clears it. Raising an already-flagged card replaces the reason. |
| `approved` | boolean | no | Required true for a live change. |
| `idempotencyKey` | string | no | Required for a live change. Reuse the SAME key on retry — the flag also appends a comment. |

Parameters from the server's own tool schema.

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

```json
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "flag_work_item",
    "arguments": {
      "itemId": "<itemId>",
      "reason": "<reason>",
      "flagged": false
    }
  }
}
```

## Why flag_work_item is rated Critical

An AI agent that decides to call flag_work_item doesn't hesitate, doesn't double-check, and doesn't stop at one. Whatever it removes from Starfield is gone. There is no undo for destructive operations.

## Use case

AI agents call flag_work_item to permanently remove resources in Starfield, typically in cleanup and lifecycle workflows. It does its job in a single call, and there is no undo.

## Recommended policy (PolicyLayer)

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

```json
{
  "version": "1",
  "default": "deny",
  "hide": [
    "flag_work_item"
  ]
}
```

## Other tools on Starfield (232)

- `bulk_delete_buyer_groups` — Destructive — https://policylayer.com/tools/adrata-starfield-mcp/bulk-delete-buyer-groups.md
- `cancel_agent_task` — Destructive — https://policylayer.com/tools/adrata-starfield-mcp/cancel-agent-task.md
- `delete_action` — Destructive — https://policylayer.com/tools/adrata-starfield-mcp/delete-action.md
- `delete_buyer_group` — Destructive — https://policylayer.com/tools/adrata-starfield-mcp/delete-buyer-group.md
- `delete_company` — Destructive — https://policylayer.com/tools/adrata-starfield-mcp/delete-company.md
- `delete_note` — Destructive — https://policylayer.com/tools/adrata-starfield-mcp/delete-note.md
- `delete_opportunity` — Destructive — https://policylayer.com/tools/adrata-starfield-mcp/delete-opportunity.md
- `delete_partner` — Destructive — https://policylayer.com/tools/adrata-starfield-mcp/delete-partner.md
- `delete_person` — Destructive — https://policylayer.com/tools/adrata-starfield-mcp/delete-person.md
- `delete_webhook` — Destructive — https://policylayer.com/tools/adrata-starfield-mcp/delete-webhook.md
- `forget` — Destructive — https://policylayer.com/tools/adrata-starfield-mcp/forget.md
- `paper_delete_document` — Destructive — https://policylayer.com/tools/adrata-starfield-mcp/paper-delete-document.md
- `paper_revoke_share` — Destructive — https://policylayer.com/tools/adrata-starfield-mcp/paper-revoke-share.md
- `remove_buyer_group_member` — Destructive — https://policylayer.com/tools/adrata-starfield-mcp/remove-buyer-group-member.md
- `adrata_ai_tool_execute` — Execute — https://policylayer.com/tools/adrata-starfield-mcp/adrata-ai-tool-execute.md
- `adrata_api_request` — Execute — https://policylayer.com/tools/adrata-starfield-mcp/adrata-api-request.md
- `attribute_partner_to_deal` — Execute — https://policylayer.com/tools/adrata-starfield-mcp/attribute-partner-to-deal.md
- `build_pursuit_command_center` — Execute — https://policylayer.com/tools/adrata-starfield-mcp/build-pursuit-command-center.md
- `draft_workflow` — Execute — https://policylayer.com/tools/adrata-starfield-mcp/draft-workflow.md
- `dry_run_workflow` — Execute — https://policylayer.com/tools/adrata-starfield-mcp/dry-run-workflow.md
- `record_partner_consumption` — Execute — https://policylayer.com/tools/adrata-starfield-mcp/record-partner-consumption.md
- `replay_workflow_run` — Execute — https://policylayer.com/tools/adrata-starfield-mcp/replay-workflow-run.md
- `request_deployment` — Execute — https://policylayer.com/tools/adrata-starfield-mcp/request-deployment.md
- `request_provider_action_execution` — Execute — https://policylayer.com/tools/adrata-starfield-mcp/request-provider-action-execution.md
- `request_workflow_deployment` — Execute — https://policylayer.com/tools/adrata-starfield-mcp/request-workflow-deployment.md
- `warmup_email` — Execute — https://policylayer.com/tools/adrata-starfield-mcp/warmup-email.md
- `adrata_ai_tool_catalog` — Read — https://policylayer.com/tools/adrata-starfield-mcp/adrata-ai-tool-catalog.md
- `adrata_api_catalog` — Read — https://policylayer.com/tools/adrata-starfield-mcp/adrata-api-catalog.md
- `adrata_desktop_app_audit` — Read — https://policylayer.com/tools/adrata-starfield-mcp/adrata-desktop-app-audit.md
- `check_batch_import_status` — Read — https://policylayer.com/tools/adrata-starfield-mcp/check-batch-import-status.md
- …and 202 more: https://policylayer.com/tools/adrata-starfield-mcp.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=adrata-starfield-mcp · API: https://policylayer.com/registry/api · Policy library: https://policylayer.com/policies/adrata-starfield-mcp
