Help us improve
Share bugs, ideas, or general feedback.
From tap-skills
Curate and maintain `.tap/product.md` — a compressed, agent-readable product-context file (what we build, audience, current focus, bets, non-goals). Use when someone says "curate product context", "install product context", "update product context", "product vision in repo", "what are we building", or when an agent enters a repo and can't find durable product-strategic context. Auto-detects interview / review / refresh mode. Outputs to `.tap/product.md`.
npx claudepluginhub teambrilliant/marketplace --plugin tap-skillsHow this skill is triggered — by the user, by Claude, or both
Slash command
/tap-skills:curate-product-contextThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Install and maintain durable product-strategic context as an in-repo artifact (`.tap/product.md`) so human engineers and AI agents can make decisions without pinging the leader. One file, five sections, ≤ 80 lines, principle-driven.
Provides behavioral guidelines to reduce common LLM coding mistakes, focusing on simplicity, surgical changes, assumption surfacing, and verifiable success criteria.
Searches, retrieves, and installs Agent Skills from prompts.chat registry using MCP tools like search_skills and get_skill. Activates for finding skills, browsing catalogs, or extending Claude.
Provides UI/UX resources: 50+ styles, color palettes, font pairings, guidelines, charts for web/mobile across React, Next.js, Vue, Svelte, Tailwind, React Native, Flutter. Aids planning, building, reviewing interfaces.
Share bugs, ideas, or general feedback.
Install and maintain durable product-strategic context as an in-repo artifact (.tap/product.md) so human engineers and AI agents can make decisions without pinging the leader. One file, five sections, ≤ 80 lines, principle-driven.
This skill does NOT describe the tech stack (CLAUDE.md's job) or architectural decisions (.tap/architecture.md — seeded by /tap-skills:tap-audit). It captures product direction: what, for whom, what we're solving now, what bets we're making, what we're NOT doing.
Check for .tap/product.md:
if [[ -f .tap/product.md ]]; then
mtime_epoch=$(stat -f %m .tap/product.md 2>/dev/null || stat -c %Y .tap/product.md)
days_old=$(( ( $(date +%s) - mtime_epoch ) / 86400 ))
fi
| Condition | Mode |
|---|---|
.tap/product.md missing | Interview — walk all five sections, require confirmation before write |
.tap/product.md exists, < 90 days old | Review — prune-first protocol, diff, write on confirm |
.tap/product.md exists, ≥ 90 days old | Refresh — staleness framing, then review protocol |
Never overwrite without explicit user confirmation of the final diff.
Always read before asking anything (skip any that don't exist):
CLAUDE.md → stack signals, product hints
README.md → product description, audience
.tap/tap-audit.md → readiness score, leverage points
.tap/system-health.md → velocity, in-flight areas
.tap/architecture.md → arch decisions (to avoid duplicating)
git log --oneline --since="90 days ago" → recent focus signals
gh pr list --state merged --limit 30 → what shipped recently
For each input that doesn't exist or doesn't yield a useful signal, announce: "I couldn't infer [section] from [source] — starting cold for this one." Never block on missing inputs.
Pick the mode from step 1. Use the protocol below.
Walk the five sections in order. For each, present inferred starter content labeled with its source, then ask to confirm, edit, or discard. When nothing is inferrable, open-question.
Before asking any Principle line, run the coaching loop below. Sections 2 (Audience & pain) and 5 (Non-goals) each require a Principle line. These are the hardest part of the file — don't just ask "what's the principle?" and write down whatever comes back.
Open with the definition:
A Principle is the underlying belief that shapes decisions in this area.
- Not a goal (the outcome you want — e.g., "grow to 100 customers").
- Not a feature (a thing you built — e.g., "we have a self-serve onboarding").
- Not a preference (a stylistic choice — e.g., "we like simple UIs").
It's the thing that, if it stopped being true, would change how you decide.
Show 2-3 examples from .tap/architecture.md's Principle lines (or the format spec's example if no architecture.md exists yet):
Principle: errors are data, not exceptions. Make error paths visible in types. (tells you what to build AND what to reject)Principle: separate orchestration from execution. Let the platform handle retry/state/recovery. (tells you what belongs where)Principle: most "state management" is actually server cache. Treat it that way. (reframes a whole class of decisions)Then ask the user to draft, and pressure-test with these three checks. Surface each check explicitly to the user:
Loop: user drafts → skill runs the three checks out loud → user refines. Typical convergence: 2-3 passes. Don't accept the first draft if it fails any check — say which check it failed and why.
Section 1 — What we build
README.md description, package.json / plugin.json description, gh repo view descriptionInferred from README.md: "[quoted 1-3 sentences]". Keep, edit, or discard?1-3 sentences: the product + who it's specifically for. Ground truth, not marketing. Use the third sentence only if your value prop is compound (e.g., product + delivery model).Section 2 — Audience & pain
Who are the users, concretely? (role + context, not a persona archetype)What pain hurts them most today that this product addresses?What's the one belief about your audience that shapes every decision? (running pressure-test after your draft)Section 3 — Current focus
git log --oneline --since="90 days ago" (group commit subjects), recent merged PR titles, .tap/system-health.md if it names in-flight areasRecent activity clusters around: [themes extracted from git log / PR titles]. Is the current focus one of these, or something else?The problem you're solving this quarter (not a feature list — the underlying problem)?Insight: what data / users / tech showed you this was THE focus?Success signal: the one measurable thing that tells you it's working?Section 4 — Bets
git branch -r --sort=-committerdate | head -20) + recent architectural decisions in .tap/architecture.mdGiven the focus above, it looks like these are in-flight: [list]. Are these your bets, or are the real bets different?List 2-4 bets. For each: what you're trying + why you think it'll work.Section 5 — Non-goals
What are you explicitly NOT doing this quarter, even though people ask for it?Why does this boundary matter right now? State it as a belief, not as an outcome you want (running pressure-test after your draft).After all five sections, assemble the draft and go to step 4 (diff) → step 5 (write).
Read the existing file. For each section, prune before adding:
Still true? Anything stale or wrong?Anything new to add here?Do this for all five sections. Then assemble the revised draft and go to step 4.
Open with: This file is [N] days old — what's shifted since it was written?
Capture the top-line shifts before diving into sections. Then run the Review protocol (prune-first, section by section).
Assemble the full draft. Before writing:
Length check: count lines. If > 80:
Draft is [N] lines, over the 80-line ceiling. Which section should we compress?
- [section name]: [line count]
- [section name]: [line count]
...
Refuse to proceed until the draft is ≤ 80 lines.
Duplication check: for each section, scan CLAUDE.md and .tap/architecture.md for overlapping content. Report: Detected overlap with [file]: "[text]". Removed from draft.
Present the diff:
Ask: Write this to .tap/product.md? (yes / edit / cancel)
On yes:
.tap/ if it doesn't exist..tap/product.md.On edit: loop back to step 4 with the requested changes.
On cancel: discard the draft. Do not write.
See references/product-context-format.md for the format spec, principles, and a full example. The draft assembled by this skill must conform to that format.
/tap-skills:tap-audit next. product.md gives tap-audit's new Strategic Context dimension a ✓./tap-skills:tech-roadmap to re-align the 12-month plan with the updated context.codify-opinion skill..tap/architecture.md (that's /tap-skills:tap-audit)./tap-skills:tap-audit's Strategic Context dimension scores it, but nothing blocks on it..tap/product.md without explicit user confirmation of the final diff.