Skills
Skills
Four skills: challenge a plan, test a doc on its readers, turn an idea or bug into an issue an engineer can start on and write in your own voice.
Position
Do not run a fourth sprint of prompt fixes. Three sprints gave no lift on supplier names and revision tags, so a fourth buys the same result.
Strongest counter
The easy drawings did improve. Shipping those covers part of the job. An estimator still needs the full scope, so a partial read leaves the hard part to a person.
Kill test
This week, run the eval set end to end on one real drawing set. Stop the extraction work if recall stays under the 95% line.
What the plan leaves out
The current approach misses context spread across drawings. Test a change to how the system reads them.
Recommendation
Stop prompting, run the end-to-end test and decide on its result.
Teaching example combining separate events in Parapet's history. The 95% rule was set in September, after the earlier prompt-only rounds.
What you get
Four skills, each with the reason I built it.
- product-sparring challenges a plan, PRD, metric or go/no-go claim as a peer product lead and gives the strongest counter.
Why I built itOn Parapet I ran several rounds of prompt fixes before I set a kill test, so I built a skill that asks for the test first.
- None of those rounds improved supplier names or revision tags.
- A weak plan found before the build costs a conversation. Found after, it costs a sprint.
- The skill gives a position, the strongest counter and a test that could change the decision.
- It changes its view only when you show it something new, and names what changed it.
- recipient-panel has AI stand-ins for the people who will receive your work read it before you send it.
Why I built itAI stand-ins for this site's readers found a step I had missed before any real reader hit it.
- Each reader sees the draft cold and reports where they stop and what they object to.
- I fix first the objections that two or more readers raise.
- The result is a simulation: it shows where a draft loses a reader and says nothing about demand.
- You name the roles.
- Claude starts one subagent per role. A subagent is a separate AI helper. At most four run at a time.
- Each reader reports the line where they stop reading, their objections with the line each rests on, one fix each, what would make them say yes and a score from 1 to 10.
- Claude merges the reports and tightens the draft.
- Presets for the readers:
- Stakeholder doc: the sponsor who decides, the engineering lead, design, finance or legal, the team that does the work.
- CV or application: a recruiter screen, HR, the PMs who interview you and the hiring manager. The applicant-tracking check stays a separate formatting check.
- Product, feature or onboarding: three personas from your exact target segment plus one skeptic (four in total, one batch), each with a job to do, a context and a reason to quit.
- Public page or post: the target reader, a skeptic, a copy editor and a voice check.
- You check every fact a reader states.
- Download the zip or see the skill on GitHub.
- distill-to-gh-issue turns one finding, bug report or feedback row into a draft issue that you review before filing.
Why I built itI used to write every roadmap, spec and issue by hand; now I describe the feature or bug and Claude writes the issue an engineer can start on.
- Claude gathers the context first: it reads the live code and data before it trusts a doc.
- It then asks me what the item leaves open, one question at a time, each with a proposed default.
- The issue states the user problem and the expected behaviour, points to the relevant code and carries a spec where the work needs one.
- It lists the open decisions for you to settle. You review the draft before it is filed.
- In my own setup it also attaches prototypes and artifacts. The public skill stops at the issue.
- A stop list keeps it out of repos it must never file into.
- Claude Code only: it needs the GitHub command line (
gh) and a local copy of the repository.
- voice drafts emails and posts in your voice from rules extracted from your own sent writing.
Why I built itI rewrote most AI drafts, so I turned about 25 of my sent emails into writing rules.
- Example rules: lead with the point, numbers over adjectives, no em-dashes.
- The skill loads the rules, drafts and then checks the draft against them.
- I now edit drafts where I used to rewrite them.
- Use writing you own. Check your employer's policy before you paste work email into an AI tool.
- It carries a self-check and a slop hook (a small script that runs on its own and flags weak wording) for what the rules miss.
Copy it
Time to set up: 2 to 20 minutes. Pick the assistant you use. The choice is remembered on this device.
Copy a skill folder into your skills folder. Every project sees it. cp -n never overwrites a skill you already have. recipient-panel reads with the panelist agent, so the block copies that too.
[ -d ~/how-i-work ] || git clone https://github.com/DanielErCohen/how-i-work.git ~/how-i-work
mkdir -p ~/.claude/skills ~/.claude/agents
cp -Rn ~/how-i-work/skills/product-sparring ~/how-i-work/skills/recipient-panel ~/.claude/skills/
cp -n ~/how-i-work/claude/agents/panelist.md ~/.claude/agents/No terminal needed. Download a skill as a zip, then upload it in the Claude app. Uploading a custom skill needs a paid Claude plan.
- Download product-sparring.zipChallenge a plan.
- Download recipient-panel.zipHave AI stand-ins for the people who will receive a doc read it. A chat in the Claude app does not start subagents, so each reader runs in its own chat with the same brief.
- Download voice.zipWrite in your voice. Upload the zip as it is. In your first chat the skill asks you to paste your voice file, or to paste 20 to 30 items you sent so it builds one for that session.
- In the Claude app, open Customize, then Skills.
- Select "+", then "Create skill", then "Upload a skill".
- Choose the zip you downloaded.
- Start a chat and ask Claude to use the skill.
distill-to-gh-issue is not in this list. It needs gh and a local repository, so it works in Claude Code only.
Code execution (the setting that lets Claude run code and create files) must be on in the Claude app (Settings, then Capabilities). It is on by default. On Team and Enterprise plans an admin turns it on.
Open the link below, copy the text and paste it into your assistant's custom instructions. Leave out the header: everything above the second --- line. The link is for product-sparring. For recipient-panel or voice, replace the skill name in the link with recipient-panel or voice. distill-to-gh-issue needs Claude Code.
https://raw.githubusercontent.com/DanielErCohen/how-i-work/main/skills/product-sparring/SKILL.mdSetup steps
- For distill-to-gh-issue, copy the folder the same way with
cp -Rn ~/how-i-work/skills/distill-to-gh-issue ~/.claude/skills/. Then, inside~/.claude/skills/distill-to-gh-issue/, copy config.example.md toconfig.local.mdand list the GitHub orgs or repos and handles it must never file into (5 minutes). Keep that file out of any public repo (a project folder with a saved history). - For the voice skill, follow the eight-step method in the voice README: collect 20 to 30 sent items, extract rules, write them in command voice, add bans and a self-check. Keep your filled
SOUL.mdprivate (20 minutes plus testing).
Read the skill files before you install them.
Try product-sparring
Use product-sparring to challenge this plan. Ask for any missing product stage or goal. Give your position, the strongest counterargument and the cheapest test that could change the decision.
Plan: [paste your plan]
Evidence: [paste the evidence you have]Expected result: a reasoned position, a fair counterargument and a test with a decision threshold; check the cited evidence against your inputs.
Try recipient-panel
Paste only what your employer allows. Remove names and customer details first.
Use recipient-panel on this doc. Preset: stakeholder doc. The readers are: [role 1], [role 2], [role 3]. They have to decide: [what the doc asks of them]. Merge the reports, fix the objections that two or more readers raised first, and give me a tightened draft.
Document: [paste it]Expected result: one report per reader, a merged list of objections ordered by how many readers raised them, and a tightened draft. The readers are a simulation. Check any fact a reader states, and use the scores only to compare drafts.
You are [role: for example the finance lead who approves the budget]. You must [what they decide or do with this doc]. You already know [their context]. You have [their patience, for example two minutes]. You say no when [their reasons].
Read the document below once, as this person. Then reply in under 300 words:
1. The line where you would stop reading, quoted.
2. Up to five objections, each with the line it rests on and one fix.
3. What would make you say yes.
4. One thing that works.
Document: [paste it]Open a new chat for each reader, then paste all the answers into one chat and ask it to merge the objections two or more readers share.
Try distill-to-gh-issue
Use distill-to-gh-issue to draft one issue from this feedback. Ask for the target repository and any missing context. Keep it as a draft for my review.
Feedback: [paste one finding]Expected result: a draft with the user problem, desired behavior and open decisions; review it before approving publication.
Try voice
Use the voice skill to rewrite this draft using my attached voice file. Preserve the facts.
Draft: [paste your text]Expected result: a revised draft using your writing rules; compare it with the original for changed facts and phrasing you would not use.
Where it works
| Assistant | Support |
|---|---|
| Claude Code | Copy the folder into ~/.claude/skills/. |
| Claude app | Download the zip, open Customize, then Skills, and upload it with "+", then "Create skill", then "Upload a skill". distill-to-gh-issue is Claude Code only. |
| Other assistants | Paste the SKILL.md text below the header into the assistant's custom instructions. distill-to-gh-issue needs Claude Code. |
The distill-to-gh-issue stop list
The local config on distill-to-gh-issue lists the repos it must never file into, because an issue in the wrong repo reaches another person.
Came from
Three of the four skills came from my work on Sparktale and Parapet.
- Most of my output on Sparktale is GitHub issues and written decisions for a partner developer who leads engineering, which is what distill-to-gh-issue serves.
- product-sparring grew from the red team (a fresh Claude session that challenges a plan) and the kill tests I wrote for Parapet.
- The voice skill came from the volume of writing the products ask for.