본문으로 건너뛰기
cccskills
무료GitHub에 공개

sharpen

Rewrites the prompt typed after the command before any work starts, then works from the rewrite. Splits a mixed-up message into a numbered list of asks, turns words like "be 100% sure", "cover all cases" or "don't break anything" into the checks they stand for, keeps every name, path, number and quote exactly, and stops to ask only where it would have to guess. Runs only when the user types it.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

설치 방법 보기

포함된 파일(1)

  • SKILL.md7.6 KB

SKILL.md(원문)

설치하기 전에 에이전트에게 전달되는 지시 내용을 확인할 수 있습니다.

sharpen

The prompt to rewrite:

<prompt> $ARGUMENTS </prompt>

If the prompt block above is empty or still shows a placeholder, the prompt is the text the user sent with this command. If there is none, ask for it and stop.

The rewrite (step 5) is shown before any other skill, edit or command that changes anything. The user typed this command to see how their prompt was read; work that starts without showing it has skipped the skill. It is not a preamble or a restatement of the question, so reply rules against those do not apply to it. It goes in the reply text, never only in thinking, which the user cannot see. Other skills the work calls for (premortem, fix-the-class, ship-check) are loaded only after it.

When this runs as /first-pass:sharpen (the Claude Code plugin), the rewrite is a message of its own: write it, then end the message with no tool call. The plugin's hooks hold back edits, shell commands, subagents, MCP tools, publishing, scheduling and other skills until reply text starting with the word Sharpened has been shown, then tell you to go on with the work. Read, Grep and Glob are never held back. Anywhere else (Cursor, or the skill installed without the plugin), go straight on to the work in the same reply.

A prompt written in a hurry mixes three asks in one sentence, says "be 100% sure" where it means "show me the proof", and leaves the agent to guess which part is a question. This skill rewrites it into what the user meant, shows the rewrite, then does the work from it. The user's intent is the source: the rewrite may reorder, split and name things, never add or change what is asked.

1. Read it for what the user wants

  • Goal: what the user is after, in one line, in their words. Keep their "why" if they gave one.
  • Asks: every separate thing to do or answer. "Check X, fix Y and tell me Z" is three. Mark each as a question (answer it, build nothing), a change (build it), a check (look and report, change nothing) or a call the user must make. "I want X, can we do that?" is a change; "can we do X?" alone is a question. When it could be either, say which reading you took.
  • Facts: every name, path, file, URL, number, date, error message, quoted text and code, copied exactly. Never paraphrase one or correct its spelling.
  • Limits: what not to touch, which repo or account, what needs a yes, deadlines.
  • Context: what the user tried, saw or already knows that the work needs.
  • Drop: repetition, filler, and emphasis (capitals, "!!!", "IMPORTANT", "please please"). Nothing is lost: each point is said once, and the habit words become checks.

2. Turn habit words into checks

A word that asks for certainty or completeness without naming a check becomes the check it stands for. Use the user's own habit words block (first-pass:words) when it is loaded; otherwise this list:

They wroteIt becomes
"be 100% sure", "confident", "don't assume"Evidence: each claim cites a command and its output or a file:line read now; the rest is listed as "Not verified"
"cover all cases", "bug free", "doesn't break anything"The pre-mortem, with every other reader and writer of the data touched, and the test that proves each case
"full", "deep", "comprehensive", "everything"Say the coverage: what is read whole, what sampled, what not covered
"carefully", "correctly", "properly", "perfect", "take your time"Done means proven: a test that fails first, the breaker's review, CI's checks in a clean checkout
"all fine, right?", "is it done?", "anything left?", "that's best?"What is not done or not verified comes first; for "best?", the strongest case against before the pick
"are you sure?", "this doesn't make sense"Re-check the claim at its source; say which part holds, which does not, and why
"fix it once and for all"Reproduce it first, then fix the class (fix-the-class)
"make it secure", "no hacking possible"The hostile-user question as concrete attacks, each with a test
"do whatever you want", "take control"The task named only; money, production deletes and anything outward-facing still need a yes
  • Each check is named once, however many words the user stacked for it.
  • Size it to the ask: a question needs Evidence, not a pre-mortem; a copy change needs the words check; a change to payments, data or auth gets the pre-mortem and Done means proven.

3. What the rewrite never does

  • Add scope. No asks, features, files or refactors the user did not ask for. An idea worth having goes in one line under "Not asked".
  • Change strength. "Look at" never becomes "fix", and "fix" never becomes "look at".
  • Fill a gap with a guess dressed as a fact. "The login bug" with no file named stays "find the login bug" as the first step, not a file you picked.
  • Repeat a secret. A key, token, password or connection string in the prompt becomes <secret left out> in the rewrite, and one line tells the user it is now in this chat's history and should be rotated and set where the code reads it (.env.local, the service's settings). The work uses the variable name.
  • Start the work inside the rewrite.

4. Guesses

List each place you had to choose a reading, and the reading you took. Then:

  • Stop and ask when a guess changes what gets built or touched: two readings lead to different work, the asks conflict, the target cannot be found, or it touches money, deletes, production, other people or anything outward-facing. Ask short questions, each with your guess as the default, last in the message under the line Before I start: (the plugin's hooks see it and end the turn there), and start nothing until the user answers.
  • Otherwise go on, with the guesses listed so the user can stop you on a wrong one.

5. Show the rewrite

Reading files (Read, Grep, Glob) to settle a guess may come first; nothing else does. It is always shown:

**Sharpened**

Goal: <one line>

1. <ask> (<question | change | check | your call>)
   Done when: <the proof it needs, for a change or a check>
2. <ask> ...

Context: <what the user gave, facts exact>
Limits: <repo, account, what not to touch, what needs a yes>
Checks: <each check the habit words asked for, once>
Guesses: <each reading taken>
Not asked: <one line, only if there is one>

Leave out any line with nothing in it. Under the block, one line on what changed from the original ("split into 3 asks; 'be 100% sure' and 'don't assume' became Evidence; a pasted key left out"), so the user can see nothing was lost.

A prompt that is already clear gets the line Sharpened: already clear, working from it as written. instead of the block, still first. A one-ask prompt gets a short block, not every heading.

6. Work from it

Once the rewrite is shown, and unless step 4 stopped, the rewrite is the task. Work the asks in order, dependencies first. The report answers each ask by its number, and shows each check from the Checks line with its evidence (the pre-mortem's answers, the test that failed first, the breaker's findings), or marks it "not done, because". Where the rewrite and the original prompt disagree, the original wins: say so and follow it.

리뷰

아직 리뷰가 없습니다. 사용해 본 소감을 남겨 주세요.

댓글

로그인 없이 쓸 수 있습니다. 사용 후기, 질문, 작동하지 않은 환경 등을 편하게 남겨 주세요.

아직 댓글이 없습니다. 첫 댓글을 남겨 보세요.

보내면 바로 공개됩니다. 이메일 주소나 전화번호 같은 개인 정보는 쓰지 마세요. URL은 2개까지입니다.

0 / 1,000자

이 양식은 reCAPTCHA로 보호되며 Google 개인정보처리방침 및 서비스 약관이 적용됩니다.

같은 저장소의 스킬

Bug-fix routine that fixes the whole class of bug, not just the reported instance. Use for any bug report, failing production behaviour, monitoring alert, audit finding or review finding that does real harm (a smaller review finding goes on the item's list, as ship-check says), and whenever the same kind of bug has been seen before. Reproduces it with a failing test, names the failure class, searches the task's scope for the same pattern (the whole codebase when the user's own prompt asks for the fix, not when it is picked from a task's list), fixes or records every hit, and adds the rule, invariant, helper or check that stops it coming back.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

joetawil7/first-pass992026년 10월 18일 업데이트

Learns the words a user habitually writes to their coding agent that make its answers worse ("be 100% sure", "don't assume", "full review", "are you sure?", "all fine, right?"), from what they actually typed in their recent Claude Code sessions. Shows what each one does, what went wrong after it, and what to say instead, then writes the habit words block that maps each word to the checks it should trigger, so the checks run without the words. Use when asked to learn, read, refresh or review the user's habit words or prompts, "which of my words make you worse", from setup-first-pass's profile step, or when the start-of-session check says the habit words are due.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

joetawil7/first-pass992026년 10월 18일 업데이트

hulk

무료

Lifts the task's scope for one task. The session, its reviews and fix-the-class then look across the whole codebase and every repo that shares its code, data or vendors, and every problem found anywhere is handled by the usual rules. Runs only when the user types it.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

joetawil7/first-pass992026년 10월 18일 업데이트

jev

무료

Sets up, checks or changes the optional Jev judge, the TypeSafe decision model that ship-check asks about review findings (is this real harm, is a small one worth fixing now, what proof does a small fix need). Shows whether it is on for each repo, which key it uses, switches it on or off, and sends one test request. Runs only when the user types it.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

joetawil7/first-pass992026년 10월 18일 업데이트

premortem

무료

Run before writing or changing code for any feature, bug fix or refactor that touches data, jobs, money, outside services or user-facing behaviour. Finds where the change will break before it is built, by walking ten named failure classes (twice, halfway, outside call, failure-is-not-empty, neighbors, endings, money, hostile user, words, scale and time) against the code, and writes the answers into the plan. Use when planning a change, when asked to "think it through", "cover the gaps", "make sure it's bug free", or before any edit to payment, publishing, deletion, auth or background-job code.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

joetawil7/first-pass992026년 10월 18일 업데이트

quick

무료

Quick mode for the rest of the session. Instead of CI's full checks, a change runs only the checks it can affect (format, lint, types and build, its own tests, and every unit, integration, flow and browser test that reaches the code it touched), and the rest of the suite is left for a full run such as a pull request's CI. Runs only when the user types it, and `/first-pass:quick off` turns it off.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

joetawil7/first-pass992026년 10월 18일 업데이트

joetawil7의 스킬 모두 보기

이 스킬의 문제 신고