{
  "id": "pr-hygiene-for-agents",
  "type": "loadout",
  "title": "PR hygiene for agents",
  "summary": "Commit and PR rules for coding agents: small PRs, a four-part body, screenshots with gh --attach and a leak check for session links and secrets before pushing.",
  "description": "Agent-written pull requests fail review for boring reasons: too big, no test evidence, no screenshots, and sometimes a\nprivate session link or local path in a public commit. This loadout sets commit and PR rules an agent can follow, a\npre-push leak check, and a gh-based procedure that uses the --attach flag added in GitHub CLI 2.99 for screenshots.\nIt respects each repository's own AI-disclosure policy rather than hiding attribution.\n",
  "highlights": [
    "Commit and PR size rules, with a What / Why / How tested / Notes body",
    "Screenshots attached with gh pr create --attach and alt text (gh 2.99+)",
    "Pre-push leak check for session URLs, local paths and secret-looking lines",
    "Claude Code attribution.sessionUrl setting for cloud and Remote Control sessions",
    "Draft first, ready when checks are green"
  ],
  "version": "1.0.0",
  "license": "MIT",
  "author": {
    "name": "Agent Loadout",
    "url": "https://loadout.jnw-it.com"
  },
  "credits": [
    {
      "title": "@cwage: private session URLs in public PRs",
      "url": "https://x.com/cwage/status/2099570173829087479"
    },
    {
      "title": "@neil_jhaveri: AGENTS.md rule to attach UI screenshots with gh",
      "url": "https://x.com/neil_jhaveri/status/2108061424215789751"
    },
    {
      "title": "GitHub CLI 2.99.0 release notes",
      "url": "https://github.com/cli/cli/releases/tag/v2.99.0"
    },
    {
      "title": "Claude Code settings: attribution",
      "url": "https://code.claude.com/docs/en/settings"
    }
  ],
  "categories": [
    "workflow"
  ],
  "stacks": [
    "git",
    "github"
  ],
  "files": [
    {
      "path": "AGENTS.md",
      "role": "instructions",
      "description": "Commit, pull request and leak rules for agents.",
      "skill": null,
      "agent": null,
      "install_to": {
        "claude-code": "AGENTS.md",
        "codex": "AGENTS.md",
        "cursor": "AGENTS.md",
        "gemini-cli": "AGENTS.md",
        "antigravity-cli": "AGENTS.md",
        "copilot": "AGENTS.md"
      },
      "raw_url": "https://loadout.jnw-it.com/raw/pr-hygiene-for-agents/1.0.0/AGENTS.md",
      "raw_latest_url": "https://loadout.jnw-it.com/raw/pr-hygiene-for-agents/latest/AGENTS.md",
      "bytes": 1552,
      "lang": "markdown",
      "content": "# AGENTS.md: commits and pull requests made by agents\n\nReview is the bottleneck. Make every commit and pull request cheap to review and safe to publish.\n\n## Commits\n- One logical change per commit. Message: imperative subject under 72 characters, blank line, why (not what).\n- Never commit generated build output, lockfile churn you did not intend, `.env*` files, logs or editor folders.\n- Never push to the default branch. Never force-push a branch someone else may have pulled.\n\n## Pull requests\n- Small: aim for under ~400 changed lines. Split refactors from behaviour changes.\n- The body has four headings: **What**, **Why** (link the issue: `Fixes #123`), **How tested** (commands run and results), **Notes** (risks, follow-ups).\n- UI changes include before/after screenshots. With gh 2.99+: `gh pr create --attach before.png#\"Before: empty state\" --attach after.png#\"After\"`.\n- Open as draft until checks pass and you have reviewed your own diff once.\n- Answer every review comment, with a commit or a reason.\n\n## Attribution and leaks\n- Follow the repository's policy on AI disclosure (CONTRIBUTING.md, PR template). If it asks for disclosure, disclose plainly.\n- Never put private links in public places: agent session URLs, internal dashboards, local file paths, customer names.\n- Before pushing, run the leak check in the `open-pull-request` skill.\n- Claude Code users: `attribution.sessionUrl: false` in settings stops session links being added to commits from cloud and\n  Remote Control sessions (snippet in the `open-pull-request` skill).\n"
    },
    {
      "path": "CLAUDE.md",
      "role": "adapter",
      "description": "Imports AGENTS.md for Claude Code.",
      "skill": null,
      "agent": "claude-code",
      "install_to": {
        "claude-code": "CLAUDE.md",
        "codex": null,
        "cursor": null,
        "gemini-cli": null,
        "antigravity-cli": null,
        "copilot": null
      },
      "raw_url": "https://loadout.jnw-it.com/raw/pr-hygiene-for-agents/1.0.0/CLAUDE.md",
      "raw_latest_url": "https://loadout.jnw-it.com/raw/pr-hygiene-for-agents/latest/CLAUDE.md",
      "bytes": 380,
      "lang": "markdown",
      "content": "# CLAUDE.md\n\n@AGENTS.md\n\n## Claude Code notes\n- Skills from this loadout live in `.claude/skills/`: `open-pull-request`. Use them when their description matches the task.\n- Follow AGENTS.md above; where this file and AGENTS.md disagree, AGENTS.md wins.\n\n<!-- From the Agent Loadout \"PR hygiene for agents\" v1.0.0 — https://loadout.jnw-it.com/loadouts/pr-hygiene-for-agents/ -->\n"
    },
    {
      "path": "GEMINI.md",
      "role": "adapter",
      "description": "Imports AGENTS.md for Gemini CLI.",
      "skill": null,
      "agent": "gemini-cli",
      "install_to": {
        "claude-code": null,
        "codex": null,
        "cursor": null,
        "gemini-cli": "GEMINI.md",
        "antigravity-cli": null,
        "copilot": null
      },
      "raw_url": "https://loadout.jnw-it.com/raw/pr-hygiene-for-agents/1.0.0/GEMINI.md",
      "raw_latest_url": "https://loadout.jnw-it.com/raw/pr-hygiene-for-agents/latest/GEMINI.md",
      "bytes": 381,
      "lang": "markdown",
      "content": "# GEMINI.md\n\n@./AGENTS.md\n\n## Gemini CLI notes\n- Skills from this loadout live in `.agents/skills/`: `open-pull-request`. Use them when their description matches the task.\n- Follow AGENTS.md above; where this file and AGENTS.md disagree, AGENTS.md wins.\n\n<!-- From the Agent Loadout \"PR hygiene for agents\" v1.0.0 — https://loadout.jnw-it.com/loadouts/pr-hygiene-for-agents/ -->\n"
    },
    {
      "path": "skills/open-pull-request/SKILL.md",
      "role": "skill",
      "description": "Self-review, leak check, screenshots and gh pr create.",
      "skill": "open-pull-request",
      "agent": null,
      "install_to": {
        "claude-code": ".claude/skills/open-pull-request/SKILL.md",
        "codex": ".agents/skills/open-pull-request/SKILL.md",
        "cursor": ".agents/skills/open-pull-request/SKILL.md",
        "gemini-cli": ".agents/skills/open-pull-request/SKILL.md",
        "antigravity-cli": ".agents/skills/open-pull-request/SKILL.md",
        "copilot": ".agents/skills/open-pull-request/SKILL.md"
      },
      "raw_url": "https://loadout.jnw-it.com/raw/pr-hygiene-for-agents/1.0.0/skills/open-pull-request/SKILL.md",
      "raw_latest_url": "https://loadout.jnw-it.com/raw/pr-hygiene-for-agents/latest/skills/open-pull-request/SKILL.md",
      "bytes": 1490,
      "lang": "markdown",
      "content": "---\nname: open-pull-request\ndescription: Prepare and open a reviewable pull request with gh, including a leak check, a structured body and screenshots for UI changes. Use when work on a branch is ready for review.\n---\n\n# Open a pull request\n\n1. **Self-review.** `git diff origin/<base>...HEAD --stat`, then read the full diff once. Remove debug output and stray files.\n2. **Checks.** Run the project's test, lint and type-check commands. Note the results for the body.\n3. **Leak check.** Inspect commit messages and the diff for things that must not go public:\n   ```sh\n   git log origin/<base>..HEAD --format='%H %s%n%b' | grep -niE 'session|claude\\.ai/code|chatgpt\\.com|localhost:|/Users/|/home/' || echo \"messages clean\"\n   git diff origin/<base>...HEAD | grep -nE '^\\+.*(api[_-]?key|secret|password|token)\\s*[:=]' || echo \"diff clean\"\n   ```\n   Matches are not always problems; read each one. Rewrite messages of unpushed commits with `git commit --amend` or an\n   interactive rebase only on your own unpushed branch. If something sensitive was already pushed, stop and tell the human.\n4. **Screenshots** for UI changes: capture before and after (same viewport), save outside the repo, attach with `--attach`.\n5. **Create.** Write the body from `references/pr-body.md` into a temporary file, then:\n   `gh pr create --draft --base <base> --title \"<subject>\" --body-file <file> [--attach <img>#\"<alt text>\"]`\n6. **Mark ready** with `gh pr ready` once checks are green. Report the PR URL.\n"
    },
    {
      "path": "skills/open-pull-request/references/pr-body.md",
      "role": "reference",
      "description": "PR body template.",
      "skill": "open-pull-request",
      "agent": null,
      "install_to": {
        "claude-code": ".claude/skills/open-pull-request/references/pr-body.md",
        "codex": ".agents/skills/open-pull-request/references/pr-body.md",
        "cursor": ".agents/skills/open-pull-request/references/pr-body.md",
        "gemini-cli": ".agents/skills/open-pull-request/references/pr-body.md",
        "antigravity-cli": ".agents/skills/open-pull-request/references/pr-body.md",
        "copilot": ".agents/skills/open-pull-request/references/pr-body.md"
      },
      "raw_url": "https://loadout.jnw-it.com/raw/pr-hygiene-for-agents/1.0.0/skills/open-pull-request/references/pr-body.md",
      "raw_latest_url": "https://loadout.jnw-it.com/raw/pr-hygiene-for-agents/latest/skills/open-pull-request/references/pr-body.md",
      "bytes": 351,
      "lang": "markdown",
      "content": "# Pull request body template\n\n```markdown\n## What\n<one paragraph: the change in plain words>\n\n## Why\n<the problem or request>. Fixes #<issue>.\n\n## How tested\n- `<command>`: <result>\n- Manual: <steps, browser and viewport if UI>\n\n## Notes\n- Risks: <what could break, who should look closely>\n- Follow-ups: <deliberately left out, with issue links>\n```\n"
    },
    {
      "path": "skills/open-pull-request/references/attribution.json",
      "role": "reference",
      "description": "Claude Code settings snippet that drops session links.",
      "skill": "open-pull-request",
      "agent": null,
      "install_to": {
        "claude-code": ".claude/skills/open-pull-request/references/attribution.json",
        "codex": ".agents/skills/open-pull-request/references/attribution.json",
        "cursor": ".agents/skills/open-pull-request/references/attribution.json",
        "gemini-cli": ".agents/skills/open-pull-request/references/attribution.json",
        "antigravity-cli": ".agents/skills/open-pull-request/references/attribution.json",
        "copilot": ".agents/skills/open-pull-request/references/attribution.json"
      },
      "raw_url": "https://loadout.jnw-it.com/raw/pr-hygiene-for-agents/1.0.0/skills/open-pull-request/references/attribution.json",
      "raw_latest_url": "https://loadout.jnw-it.com/raw/pr-hygiene-for-agents/latest/skills/open-pull-request/references/attribution.json",
      "bytes": 51,
      "lang": "json",
      "content": "{\n  \"attribution\": {\n    \"sessionUrl\": false\n  }\n}\n"
    }
  ],
  "requires": {
    "tools": [
      "git",
      "gh"
    ],
    "env": [],
    "mcp": []
  },
  "tested": {
    "status": "untested",
    "last_run": null,
    "fixture": null,
    "per_agent": {
      "claude-code": "untested",
      "codex": "untested",
      "cursor": "untested",
      "gemini-cli": "untested",
      "antigravity-cli": "untested",
      "copilot": "untested"
    }
  },
  "security": {
    "scanned": true,
    "scanner": "intake-precheck/1",
    "verdict": "clean",
    "network": false,
    "scripts": []
  },
  "featured": false,
  "deprecated": false,
  "last_checked": "2026-10-17",
  "published": "2026-10-17",
  "updated": "2026-10-17",
  "compatibility": {
    "claude-code": "native",
    "codex": "native",
    "cursor": "native",
    "gemini-cli": "native",
    "antigravity-cli": "native",
    "copilot": "native"
  },
  "counts": {
    "rules": 1,
    "skills": 1,
    "mcp": 0
  },
  "url": "https://loadout.jnw-it.com/loadouts/pr-hygiene-for-agents/",
  "api_url": "https://loadout.jnw-it.com/api/loadouts/pr-hygiene-for-agents.json",
  "verification": {
    "level": "verified-install",
    "status": "verified",
    "label": "Verified install",
    "verified": true,
    "checked_at": "2026-10-17T07:47:06Z",
    "commit": "316f4bcae9d3c1f64f8f5e32a12e27e0c36f13b5",
    "content_current": true,
    "agent_tests": "not-run",
    "counts": {
      "pass": 8,
      "fail": 0,
      "skip": 0,
      "not_applicable": 2
    },
    "meaning": "Level 1: automated checks on the files (parse, install paths, MCP config, safety scan, references, size, licence, starter build). No AI agent was run.",
    "checks": [
      {
        "id": "listing",
        "name": "Listing",
        "status": "pass",
        "summary": "Schema valid; 6 files declared, none missing or extra",
        "details": [
          "tested.status: untested (agent tests are separate from Level 1)"
        ]
      },
      {
        "id": "parse",
        "name": "Files parse",
        "status": "pass",
        "summary": "All 6 files parse; front matter valid",
        "details": []
      },
      {
        "id": "adapters",
        "name": "Adapters",
        "status": "pass",
        "summary": "CLAUDE.md and GEMINI.md import AGENTS.md and are up to date",
        "details": [
          "CLAUDE.md: matches the generator",
          "GEMINI.md: matches the generator"
        ]
      },
      {
        "id": "install-paths",
        "name": "Install paths",
        "status": "pass",
        "summary": "Correct paths for all 6 agents; layouts re-discovered",
        "details": [
          "Claude Code: 5 files, 1 skill in .claude/skills/",
          "Codex CLI: 4 files, 1 skill in .agents/skills/",
          "Cursor: 4 files, 1 skill in .agents/skills/",
          "Gemini CLI: 5 files, 1 skill in .agents/skills/",
          "Antigravity CLI: 4 files, 1 skill in .agents/skills/",
          "GitHub Copilot: 4 files, 1 skill in .agents/skills/"
        ]
      },
      {
        "id": "mcp",
        "name": "MCP config",
        "status": "n/a",
        "summary": "No MCP servers in this loadout",
        "details": []
      },
      {
        "id": "safety",
        "name": "Safety scan",
        "status": "pass",
        "summary": "Clean: no credentials, risky shell or hidden text",
        "details": [
          "Scanner intake-precheck/1: verdict clean; network no (listing says no)"
        ]
      },
      {
        "id": "references",
        "name": "References",
        "status": "pass",
        "summary": "3 references between files resolve for every agent",
        "details": []
      },
      {
        "id": "size",
        "name": "Size limits",
        "status": "pass",
        "summary": "6 files, 4.1 KB total; largest AGENTS.md 1.5 KB",
        "details": [
          "Limits: 30 files, 32 KB per file, 128 KB total, 500 lines per skill or rule"
        ]
      },
      {
        "id": "licence",
        "name": "Licence",
        "status": "pass",
        "summary": "MIT, by Agent Loadout; text in the repository LICENSE",
        "details": []
      },
      {
        "id": "starter-build",
        "name": "Starter build",
        "status": "n/a",
        "summary": "Not applicable: commit and pull request rules with no project or code to build",
        "details": [
          "The loadout is working rules, a PR body template and a settings snippet; the procedure needs a GitHub repository and a signed-in gh.",
          "The settings snippet is still parsed as JSON.",
          "Every other Level 1 check still runs on this loadout."
        ]
      }
    ]
  },
  "install": {
    "claude-code": {
      "files": [
        {
          "path": "AGENTS.md",
          "target": "AGENTS.md",
          "raw_url": "https://loadout.jnw-it.com/raw/pr-hygiene-for-agents/1.0.0/AGENTS.md",
          "role": "instructions"
        },
        {
          "path": "CLAUDE.md",
          "target": "CLAUDE.md",
          "raw_url": "https://loadout.jnw-it.com/raw/pr-hygiene-for-agents/1.0.0/CLAUDE.md",
          "role": "adapter"
        },
        {
          "path": "skills/open-pull-request/SKILL.md",
          "target": ".claude/skills/open-pull-request/SKILL.md",
          "raw_url": "https://loadout.jnw-it.com/raw/pr-hygiene-for-agents/1.0.0/skills/open-pull-request/SKILL.md",
          "role": "skill"
        },
        {
          "path": "skills/open-pull-request/references/pr-body.md",
          "target": ".claude/skills/open-pull-request/references/pr-body.md",
          "raw_url": "https://loadout.jnw-it.com/raw/pr-hygiene-for-agents/1.0.0/skills/open-pull-request/references/pr-body.md",
          "role": "reference"
        },
        {
          "path": "skills/open-pull-request/references/attribution.json",
          "target": ".claude/skills/open-pull-request/references/attribution.json",
          "raw_url": "https://loadout.jnw-it.com/raw/pr-hygiene-for-agents/1.0.0/skills/open-pull-request/references/attribution.json",
          "role": "reference"
        }
      ],
      "manual_steps": [],
      "zip_url": "https://loadout.jnw-it.com/download/pr-hygiene-for-agents/claude-code.zip"
    },
    "codex": {
      "files": [
        {
          "path": "AGENTS.md",
          "target": "AGENTS.md",
          "raw_url": "https://loadout.jnw-it.com/raw/pr-hygiene-for-agents/1.0.0/AGENTS.md",
          "role": "instructions"
        },
        {
          "path": "skills/open-pull-request/SKILL.md",
          "target": ".agents/skills/open-pull-request/SKILL.md",
          "raw_url": "https://loadout.jnw-it.com/raw/pr-hygiene-for-agents/1.0.0/skills/open-pull-request/SKILL.md",
          "role": "skill"
        },
        {
          "path": "skills/open-pull-request/references/pr-body.md",
          "target": ".agents/skills/open-pull-request/references/pr-body.md",
          "raw_url": "https://loadout.jnw-it.com/raw/pr-hygiene-for-agents/1.0.0/skills/open-pull-request/references/pr-body.md",
          "role": "reference"
        },
        {
          "path": "skills/open-pull-request/references/attribution.json",
          "target": ".agents/skills/open-pull-request/references/attribution.json",
          "raw_url": "https://loadout.jnw-it.com/raw/pr-hygiene-for-agents/1.0.0/skills/open-pull-request/references/attribution.json",
          "role": "reference"
        }
      ],
      "manual_steps": [],
      "zip_url": "https://loadout.jnw-it.com/download/pr-hygiene-for-agents/codex.zip"
    },
    "cursor": {
      "files": [
        {
          "path": "AGENTS.md",
          "target": "AGENTS.md",
          "raw_url": "https://loadout.jnw-it.com/raw/pr-hygiene-for-agents/1.0.0/AGENTS.md",
          "role": "instructions"
        },
        {
          "path": "skills/open-pull-request/SKILL.md",
          "target": ".agents/skills/open-pull-request/SKILL.md",
          "raw_url": "https://loadout.jnw-it.com/raw/pr-hygiene-for-agents/1.0.0/skills/open-pull-request/SKILL.md",
          "role": "skill"
        },
        {
          "path": "skills/open-pull-request/references/pr-body.md",
          "target": ".agents/skills/open-pull-request/references/pr-body.md",
          "raw_url": "https://loadout.jnw-it.com/raw/pr-hygiene-for-agents/1.0.0/skills/open-pull-request/references/pr-body.md",
          "role": "reference"
        },
        {
          "path": "skills/open-pull-request/references/attribution.json",
          "target": ".agents/skills/open-pull-request/references/attribution.json",
          "raw_url": "https://loadout.jnw-it.com/raw/pr-hygiene-for-agents/1.0.0/skills/open-pull-request/references/attribution.json",
          "role": "reference"
        }
      ],
      "manual_steps": [],
      "zip_url": "https://loadout.jnw-it.com/download/pr-hygiene-for-agents/cursor.zip"
    },
    "gemini-cli": {
      "files": [
        {
          "path": "AGENTS.md",
          "target": "AGENTS.md",
          "raw_url": "https://loadout.jnw-it.com/raw/pr-hygiene-for-agents/1.0.0/AGENTS.md",
          "role": "instructions"
        },
        {
          "path": "GEMINI.md",
          "target": "GEMINI.md",
          "raw_url": "https://loadout.jnw-it.com/raw/pr-hygiene-for-agents/1.0.0/GEMINI.md",
          "role": "adapter"
        },
        {
          "path": "skills/open-pull-request/SKILL.md",
          "target": ".agents/skills/open-pull-request/SKILL.md",
          "raw_url": "https://loadout.jnw-it.com/raw/pr-hygiene-for-agents/1.0.0/skills/open-pull-request/SKILL.md",
          "role": "skill"
        },
        {
          "path": "skills/open-pull-request/references/pr-body.md",
          "target": ".agents/skills/open-pull-request/references/pr-body.md",
          "raw_url": "https://loadout.jnw-it.com/raw/pr-hygiene-for-agents/1.0.0/skills/open-pull-request/references/pr-body.md",
          "role": "reference"
        },
        {
          "path": "skills/open-pull-request/references/attribution.json",
          "target": ".agents/skills/open-pull-request/references/attribution.json",
          "raw_url": "https://loadout.jnw-it.com/raw/pr-hygiene-for-agents/1.0.0/skills/open-pull-request/references/attribution.json",
          "role": "reference"
        }
      ],
      "manual_steps": [],
      "zip_url": "https://loadout.jnw-it.com/download/pr-hygiene-for-agents/gemini-cli.zip"
    },
    "antigravity-cli": {
      "files": [
        {
          "path": "AGENTS.md",
          "target": "AGENTS.md",
          "raw_url": "https://loadout.jnw-it.com/raw/pr-hygiene-for-agents/1.0.0/AGENTS.md",
          "role": "instructions"
        },
        {
          "path": "skills/open-pull-request/SKILL.md",
          "target": ".agents/skills/open-pull-request/SKILL.md",
          "raw_url": "https://loadout.jnw-it.com/raw/pr-hygiene-for-agents/1.0.0/skills/open-pull-request/SKILL.md",
          "role": "skill"
        },
        {
          "path": "skills/open-pull-request/references/pr-body.md",
          "target": ".agents/skills/open-pull-request/references/pr-body.md",
          "raw_url": "https://loadout.jnw-it.com/raw/pr-hygiene-for-agents/1.0.0/skills/open-pull-request/references/pr-body.md",
          "role": "reference"
        },
        {
          "path": "skills/open-pull-request/references/attribution.json",
          "target": ".agents/skills/open-pull-request/references/attribution.json",
          "raw_url": "https://loadout.jnw-it.com/raw/pr-hygiene-for-agents/1.0.0/skills/open-pull-request/references/attribution.json",
          "role": "reference"
        }
      ],
      "manual_steps": [],
      "zip_url": "https://loadout.jnw-it.com/download/pr-hygiene-for-agents/antigravity-cli.zip"
    },
    "copilot": {
      "files": [
        {
          "path": "AGENTS.md",
          "target": "AGENTS.md",
          "raw_url": "https://loadout.jnw-it.com/raw/pr-hygiene-for-agents/1.0.0/AGENTS.md",
          "role": "instructions"
        },
        {
          "path": "skills/open-pull-request/SKILL.md",
          "target": ".agents/skills/open-pull-request/SKILL.md",
          "raw_url": "https://loadout.jnw-it.com/raw/pr-hygiene-for-agents/1.0.0/skills/open-pull-request/SKILL.md",
          "role": "skill"
        },
        {
          "path": "skills/open-pull-request/references/pr-body.md",
          "target": ".agents/skills/open-pull-request/references/pr-body.md",
          "raw_url": "https://loadout.jnw-it.com/raw/pr-hygiene-for-agents/1.0.0/skills/open-pull-request/references/pr-body.md",
          "role": "reference"
        },
        {
          "path": "skills/open-pull-request/references/attribution.json",
          "target": ".agents/skills/open-pull-request/references/attribution.json",
          "raw_url": "https://loadout.jnw-it.com/raw/pr-hygiene-for-agents/1.0.0/skills/open-pull-request/references/attribution.json",
          "role": "reference"
        }
      ],
      "manual_steps": [],
      "zip_url": "https://loadout.jnw-it.com/download/pr-hygiene-for-agents/copilot.zip"
    }
  },
  "source_zip_url": "https://loadout.jnw-it.com/download/pr-hygiene-for-agents/source.zip"
}