Skip to content
Agentmart
Submit a tool

improve-system-prompt

Benchmark and compare system prompt variants (V2/V2a/V2b/V2c) for Sheets Chat by running test scenarios through the real GAS-side ClaudeConversation pipeline.

Skill by whichguy

IndexedMIT★ 1
Write a review

Install

Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.

npx agentmarket install skill/whichguy-improve-system-prompt

Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.

Get the weekly diff

The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.

We use your email only for this newsletter. Privacy

About

Benchmark and compare system prompt variants (V2/V2a/V2b/V2c) for Sheets Chat by running test scenarios through the real GAS-side ClaudeConversation pipeline. Tests both system-placement and user-placement, then evaluates with heuristic scoring (ABTestHarness) and LLM-as-judge. Product-specific: requires an authorized Sheets Chat/GAS execution integration. **AUTOMATICALLY INVOKE** when: - User says "benchmark system prompts", "compare prompt variants" - User wants to evaluate placement (system vs user message) - User says "which prompt variant is best", "run prompt benchmark" **NOT for:** General prompt engineering, non-GAS prompts, one-off prompt writing. Use an ordinary prompt-editing workflow for editing/refining an active prompt.

Use cases: spreadsheets, testing, data, ml

No reviews yet. Installed it? Reviews come from verified installers only. How reviews work

Permissions

What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.

Tools
No tools found
Secrets
None asked for
Install scripts
None found

Network hosts it talks to 1

  • codeload.github.com · found in install command

Files it touches

  • ~/.claude/skills/improve-system-prompt

What's inside

Skill name
improve-system-prompt
Description
Benchmark and compare system prompt variants (V2/V2a/V2b/V2c) for Sheets Chat by running test scenarios through the real GAS-side ClaudeConversation pipeline. Tests both system-placement and user-placement, then evaluates with heuristic scoring (ABTestHarness) and LLM-as-judge. Product-specific: requires an authorized Sheets Chat/GAS execution integration. **AUTOMATICALLY INVOKE** when: - User says "benchmark system prompts", "compare prompt variants" - User wants to evaluate placement (system vs user message) - User says "which prompt variant is best", "run prompt benchmark" **NOT for:** General prompt engineering, non-GAS prompts, one-off prompt writing. Use an ordinary prompt-editing workflow for editing/refining an active prompt.
License
MIT
Instructions
320 lines in SKILL.md · view on GitHub

Files (1)

  • SKILL.md

SKILL.md (first lines)

# improve-system-prompt Skill

Benchmark system prompt variants for Sheets Chat by routing test scenarios through the
real GAS-side `ClaudeConversation` pipeline. Compares content variants (V2/V2a/V2b/V2c)
and placement modes (system param vs user message prepend) with dual evaluation:
heuristic scoring (ABTestHarness 8-dim rubric) + LLM-as-judge.

## Product-specific prerequisites

- **Project selector**: the user must provide `--gas-project <id-or-configured-selector>`.
  It is never defaulted from this skill or another checkout.
- **GAS execution**: an authorized GAS execution integration exposing an equivalent of
  `mcp__gas__status`, `mcp__gas__ls`, and `mcp__gas__exec` for that selected project.
  This is a product-specific MCP dependency, not a general marketplace capability.
- **Scenarios**: `require('sheets-chat/ABTestHarness').SCENARIOS` — 12 scenarios total (indices 0–11)
- **Variants**: `require('sheets-chat/SystemPrompt')['buildSystemPromptV2|a|b|c'](null, null, SP.gatherEnvironmentContext())`
- **Variant map**: `{ V2: 'buildSystemPromptV2', V2a: 'buildSystemPromptV2a', V2b: 'buildSystemPromptV2b', V2c: 'buildSystemPromptV2c' }`

This skill is unavailable until the integration can prove authorization and the selected
project exposes the named modules. A static package check or a visible MCP connection is not
evidence that inference or the benchmark completed.

## Argument Reference

Arguments are free-form text after `/improve-system-prompt`. Parse them using the table below:

| Parameter | Default | Format | Notes |
|-----------|---------|--------|-------|
| `--variants` | `V2,V2a` | comma list | Any of: V2 V2a V2b V2c |
| `--scenarios` | `0-9` | range `0-9` or comma `0,1,5` | Indices into 12-scenario array |
| `--placement` | `both` | `system` \| `user` \| `both` | Placement mode to test |
| `--runs` | `1` | integer | Runs per cell (increases averaging) |
| `--gas-project` | — | configured selector or ID | Required target for the authorized GAS integration |
| `--model` | selected project's configured default | configured model ID | Model for GAS-side inference |
| `--judge-model` | selected project's configured default | configured model ID | Model for LLM-as-judge |

**Default matrix**: 2 variants × 2 placements × 10 scenarios × 1 run = **40 cells**

---

## Step 0 — Parse & Config Banner

Parse `$ARGUMENTS` free-form. Extract parameters from the table above. `--gas-project` is
required; if it is absent, stop before any integration call with an example that includes it.

Run an **authorization preflight** before building the matrix:

1. Query the configured GAS integration's status and select only `--gas-project`.
2. Confirm the caller is authorized for the selected project and that its reported identity
   matches the user-supplied selector or ID.
3. Run a non-mutating module check through the selected project to confirm
   `sheets-chat/ABTestHarness`, `sheets-chat/SystemPrompt`, and `chat-core/ClaudeConversation`
   are readable.
4. Confirm any supplied `--model` or `--judge-model` is accepted by that configured project;
   otherwise use only the project's configured default and report that choice.

If any check fails, print the failed prerequisite and stop. Do not substitute another GAS
project, deployment, account, or model.

Emit config table:

```
╔══════════════════════════════════════════╗
║     improve-system-prompt Benchmark      ║
╠══════════════════════════════════════════╣
║  Variants : V2, V2a                      ║
║  Scenarios: 0-9 (10 scenarios)           ║
║  Placement: both (system + user)         ║
║  Cells    : 40                           ║
║  Project  : {gas_project}                ║
║  Model    : {configured_model}           ║
║  Judge    : {configured_judge_model}     ║
╚══════════════════════════════════════════╝
```

---

## Step 1 — Build Matrix

Enumerate all `(contentVariant × placement × scenarioIndex × run)` cells.
If `--scenarios 0-9`: indices 0 through 9 inclusive.
If `--placement both`: expand each variant×scenario into two cells (system + user).

Print matrix summary:

```
Matrix: 2 variants × 2 placements × 10 scenarios × 1 run = 40 cells
  Variants : V2, V2a
  Placement: system, user
  Scenarios: 0 (Fast Path), 1 (Destructive Op), 2 (Batch Fetch), ...
```

---

## Step 2 — Execute Cells (Sliding Window, 3 Parallel)

For each cell, construct an inline JS string and call `mcp__gas__exec`.
Use a sliding window of **3 parallel** `mcp__gas__exec` calls.
Do NOT fire all cells at once — GAS execution quota.

**Per-cell inline JS — placement='system':**

```javascript
(function() {
  var AB = require('sheets-chat/ABTestHarness');
  var scenario = AB.SCENARIOS[<N>];
  var SP = require('sheets-chat/SystemPrompt');
  var promptText = SP['<variantFnName>'](null, null, SP.gatherEnvironmentContext());
  var CC = require('chat-core/ClaudeConversation');
  var claude = new CC(null, '<model>', { system: promptText });
  var result = claude.sendMessage({ messages: [], text: scenario.message, enableThinking: false });
  var ev = AB.evaluateResponse(scenario, result.response || '');
  return {
    scenarioId: scenario.id, category: scenario.category, validates: scenario.validates,
    contentVariant: '<variant>', placement: 'system',
    response: result.response || '', promptLength: promptText.length,
    usage: result.usage || {}, composite: ev.composite, scores: ev.scores
  };
})()

From whichguy/skill-craft, MIT.

More from whichguy/skill-craft

Signals

Stars
1
Forks
0
Open issues
0
Last commit (this folder)
Sep 26, 2026 (1 month ago)
Last release
Aug 15, 2026 (2 months ago)

From GitHub (fetched Oct 24, 2026).

Details

License
MIT
First seen
Oct 24, 2026
Last checked
Oct 24, 2026

More from whichguy

Cite this page

improve-system-prompt skill. Agent Mart. https://agentmart.dev/skills/whichguy-improve-system-prompt (last updated 2026-10-24)