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
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.
About
Use cases: spreadsheets, testing, data, ml
Reviews
Write a reviewNo 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
- 0.592score
rubric-eval
whichguy
Evaluate a prompt change against a rubric over a scenario catalog: run arms on a subject model (Grok by default), grade blind with one evidence-first judge…
SkillAFreshness: A★ 1Claude Code +9 - 0.592score
improve
whichguy
Use when a repository candidate needs a deliberate review-and-improvement loop: use recent Git history, make warranted changes, run meaningful checks, and…
SkillAFreshness: A★ 1Claude Code +9 - 0.592score
plan-dispatcher
whichguy
Use when executing or resuming an agreed dependency graph with one main dispatcher and parallel native workers: claim ready steps, preserve launch state…
SkillAFreshness: A★ 1Claude Code +9 - 0.592score
adversarial-review
whichguy
Have an independent model try to break a proposed change and return its findings as testable hypotheses, each with the smallest experiment that would refute it.
SkillAFreshness: A★ 1Claude Code +9 - 0.592score
review-coverage
whichguy
Add a post-ship improve-to-exhaustion directive to a plan, or run that directive after implementation.
SkillAFreshness: A★ 1Claude Code +9 - 0.589score
ask-agent
whichguy
A delegation skill, not an agent type.
SkillAFreshness: A★ 1Claude Code +9 - 0.589score
in-parallel
whichguy
Use for "in parallel" or when one goal should be divided among independent native agents and returned as one verified aggregate.
SkillAFreshness: A★ 1Claude Code +9 - 0.588score
shiploop-e2e-audit
whichguy
Run the ShipLoop test harness and audit its retained graph, review, test, product and incremental-change evidence.
SkillAFreshness: A★ 1Claude Code +9 - 0.588score
backchain
whichguy
Use when an implementation task needs a dependency-aware plan before coding: backward planner / backchain / precondition-first planning, dependency DAGs…
SkillAFreshness: A★ 1Claude Code +9 - 0.587score
architect
whichguy
Design system architecture and make technology decisions.
SkillAFreshness: A★ 1Claude Code +9 - 0.587score
plan-test
whichguy
Generate comprehensive tests for code.
SkillAFreshness: A★ 1Claude Code +9 - 0.587score
improve-agent
whichguy
Use when Improve should run in a fresh native agent instead of this conversation: start one agent that runs /improve in its own context, keep useful parent…
SkillAFreshness: A★ 1Claude Code +9
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
- Repository
- github.com/whichguy/skill-craft
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
More from whichguy
- 0.592score
plan-dispatcher
whichguy
Use when executing or resuming an agreed dependency graph with one main dispatcher and parallel native workers: claim ready steps, preserve launch state…
SkillAFreshness: A★ 1Claude Code +9 - 0.592score
rubric-eval
whichguy
Evaluate a prompt change against a rubric over a scenario catalog: run arms on a subject model (Grok by default), grade blind with one evidence-first judge…
SkillAFreshness: A★ 1Claude Code +9 - 0.592score
adversarial-review
whichguy
Have an independent model try to break a proposed change and return its findings as testable hypotheses, each with the smallest experiment that would refute it.
SkillAFreshness: A★ 1Claude Code +9 - 0.592score
improve
whichguy
Use when a repository candidate needs a deliberate review-and-improvement loop: use recent Git history, make warranted changes, run meaningful checks, and…
SkillAFreshness: A★ 1Claude Code +9 - 0.592score
review-coverage
whichguy
Add a post-ship improve-to-exhaustion directive to a plan, or run that directive after implementation.
SkillAFreshness: A★ 1Claude Code +9 - 0.589score
in-parallel
whichguy
Use for "in parallel" or when one goal should be divided among independent native agents and returned as one verified aggregate.
SkillAFreshness: A★ 1Claude Code +9
Cite this page
improve-system-prompt skill. Agent Mart. https://agentmart.dev/skills/whichguy-improve-system-prompt (last updated 2026-10-24)