6 6
7> Claude Code 用のコピー&ペーストプロンプト。タスクと役割でタグ付けされています。7> Claude Code 用のコピー&ペーストプロンプト。タスクと役割でタグ付けされています。
8 8
9export const PromptLibrary = ({text = {}, labels = {}, tagLabels = {}, phaseLabels = {}, sourceLabels = {}, catLabels = {}}) => {
10 const RAW = useMemo(() => [{
11 id: 'get-oriented-in-a',
12 sdlc: 'discover',
13 cat: 'Onboard',
14 startN: 1,
15 roles: [],
16 prompt: 'give me an overview of this codebase: architecture, key directories, and how the pieces connect',
17 nextHref: '/en/memory',
18 src: 'workflows'
19 }, {
20 id: 'explain-unfamiliar-code',
21 sdlc: 'discover',
22 cat: 'Understand',
23 roles: [],
24 prompt: 'explain what {path} does and how data flows through it. write it up as {format}',
25 slots: {
26 path: 'src/scheduler/queue.ts',
27 format: 'an HTML page with a diagram, then open it in my browser'
28 },
29 nextHref: '/en/output-styles',
30 src: 'workflows'
31 }, {
32 id: 'find-where-something-happens',
33 sdlc: 'discover',
34 cat: 'Understand',
35 startN: 2,
36 roles: [],
37 prompt: 'where do we {behavior}?',
38 slots: {
39 behavior: 'validate uploaded file types'
40 },
41 src: 'workflows'
42 }, {
43 id: 'see-what-depends-on',
44 sdlc: 'discover',
45 cat: 'Understand',
46 roles: [],
47 prompt: 'what would break if I deleted {target}?',
48 slots: {
49 target: 'the retryWithBackoff helper'
50 },
51 src: 'workflows'
52 }, {
53 id: 'trace-how-code-evolved',
54 sdlc: 'discover',
55 cat: 'Understand',
56 roles: [],
57 prompt: 'look through the commit history of {path} and summarize how it evolved and why',
58 slots: {
59 path: 'internal/auth/session.go'
60 },
61 src: 'best-practices'
62 }, {
63 id: 'scope-a-change-before',
64 sdlc: 'discover',
65 cat: 'Understand',
66 roles: ['pm', 'design'],
67 prompt: 'which files would I need to touch to {change}?',
68 slots: {
69 change: 'add a dark mode toggle to settings'
70 },
71 src: 'teams'
72 }, {
73 id: 'ask-the-codebase-a',
74 sdlc: 'discover',
75 cat: 'Understand',
76 roles: ['pm'],
77 prompt: 'I am a {role}. walk me through what happens when a user {action}, from the UI down to the result',
78 slots: {
79 role: 'PM',
80 action: 'clicks Export to PDF'
81 },
82 nextHref: '/en/output-styles',
83 src: 'teams'
84 }, {
85 id: 'plan-a-multi-file',
86 sdlc: 'design',
87 cat: 'Plan',
88 roles: ['pm', 'design'],
89 prompt: 'plan how to refactor the {target} to {goal}. list the files you would change, but don\'t edit anything yet',
90 slots: {
91 target: 'payment module',
92 goal: 'support multiple currencies'
93 },
94 src: 'workflows'
95 }, {
96 id: 'draft-a-spec-by',
97 sdlc: 'design',
98 cat: 'Plan',
99 roles: ['pm'],
100 prompt: 'I want to build {feature}. interview me about implementation, UX, edge cases, and tradeoffs until we have covered everything, then write the spec to SPEC.md',
101 slots: {
102 feature: 'per-workspace rate limits'
103 },
104 nextHref: '/en/skills',
105 src: 'best-practices'
106 }, {
107 id: 'turn-a-meeting-into',
108 sdlc: 'design',
109 cat: 'Plan',
110 roles: ['pm'],
111 prompt: 'read {input} and write up the action items, then create a ticket in {tracker} for each one, with acceptance criteria',
112 slots: {
113 input: '@meeting-notes.md',
114 tracker: 'our issue tracker'
115 },
116 needs: 'tracker',
117 nextHref: '/en/skills',
118 src: 'teams'
119 }, {
120 id: 'map-edge-cases-before',
121 sdlc: 'design',
122 cat: 'Plan',
123 roles: ['design', 'pm'],
124 prompt: 'list the error states, empty states, and edge cases for {feature} that the design needs to cover',
125 slots: {
126 feature: 'the file upload flow'
127 },
128 src: 'teams'
129 }, {
130 id: 'turn-a-mockup-into',
131 sdlc: 'design',
132 cat: 'Prototype',
133 roles: ['design', 'pm', 'marketing'],
134 paste: 'mockup',
135 prompt: 'here is a mockup. build a working prototype I can click through, matching the layout and states shown',
136 src: 'teams'
137 }, {
138 id: 'implement-from-a-screenshot',
139 sdlc: 'design',
140 cat: 'Prototype',
141 roles: ['design'],
142 paste: 'design',
143 needs: 'browser',
144 prompt: 'implement this design, then take a screenshot of the result, compare it to the original, and fix any differences',
145 nextHref: '/en/goal',
146 src: 'best-practices'
147 }, {
148 id: 'follow-an-existing-pattern',
149 sdlc: 'build',
150 cat: 'Implement',
151 roles: [],
152 prompt: 'look at how {example} is implemented to understand the pattern, then build {new} the same way',
153 slots: {
154 example: 'the existing webhook handler',
155 new: 'a payments webhook handler'
156 },
157 nextHref: '/en/memory',
158 src: 'best-practices'
159 }, {
160 id: 'generate-docs-for-code',
161 sdlc: 'build',
162 cat: 'Implement',
163 roles: ['docs'],
164 prompt: 'find {scope} without {format} comments and add them, matching the style already used in the file',
165 slots: {
166 scope: 'the public functions in src/auth/',
167 format: 'JSDoc'
168 },
169 src: 'workflows'
170 }, {
171 id: 'add-a-small-well',
172 sdlc: 'build',
173 cat: 'Implement',
174 roles: [],
175 prompt: 'add a {endpoint} endpoint that returns {payload}',
176 slots: {
177 endpoint: '/health',
178 payload: 'the app version and uptime'
179 },
180 src: 'workflows'
181 }, {
182 id: 'build-a-small-internal',
183 sdlc: 'build',
184 cat: 'Implement',
185 roles: ['pm', 'design', 'marketing', 'docs'],
186 prompt: 'create a {tool} using HTML, CSS, and vanilla JavaScript, then open it in my browser',
187 slots: {
188 tool: 'drag-and-drop Kanban board with three columns'
189 },
190 src: 'teams'
191 }, {
192 id: 'work-an-issue-end',
193 sdlc: 'build',
194 cat: 'Implement',
195 roles: [],
196 prompt: 'read issue #{issue}, implement the fix, and run the tests',
197 slots: {
198 issue: '312'
199 },
200 needs: 'gh',
201 src: 'workflows'
202 }, {
203 id: 'find-and-update-copy',
204 sdlc: 'build',
205 cat: 'Implement',
206 roles: ['design', 'docs', 'marketing'],
207 prompt: 'find every place we say "{copy}" or a close variant, show me each one in context, then update them all to "{new}". leave tests and the changelog alone',
208 slots: {
209 copy: 'Sign up free',
210 new: 'Start free trial'
211 },
212 src: 'teams'
213 }, {
214 id: 'draft-from-past-examples',
215 sdlc: 'build',
216 cat: 'Implement',
217 roles: ['docs', 'marketing', 'pm'],
218 prompt: 'read the {examples} in {folder} to learn the structure and voice, then draft a new one for {topic}',
219 slots: {
220 examples: 'privacy impact assessments',
221 folder: 'legal/pia/',
222 topic: 'the new analytics integration'
223 },
224 nextHref: '/en/skills',
225 src: 'legal'
226 }, {
227 id: 'write-tests-run-them',
228 sdlc: 'build',
229 cat: 'Test',
230 startN: 4,
231 roles: [],
232 prompt: 'write tests for {path}, run them, and fix any failures',
233 slots: {
234 path: 'app/parsers/feed.py'
235 },
236 nextHref: '/en/memory',
237 src: 'workflows'
238 }, {
239 id: 'drive-implementation-from-tests',
240 sdlc: 'build',
241 cat: 'Test',
242 roles: [],
243 prompt: 'write tests for {feature} first, then implement it until they pass',
244 slots: {
245 feature: 'the password reset flow'
246 },
247 src: 'ebook'
248 }, {
249 id: 'fill-gaps-from-a',
250 sdlc: 'build',
251 cat: 'Test',
252 roles: [],
253 prompt: 'read {report} and add tests for the lowest-covered files until each is above {target}%',
254 slots: {
255 report: 'coverage/coverage-summary.json',
256 target: '80'
257 },
258 nextHref: '/en/goal',
259 src: 'workflows'
260 }, {
261 id: 'migrate-a-pattern-across',
262 sdlc: 'build',
263 cat: 'Refactor',
264 roles: [],
265 prompt: 'migrate everything from {from} to {to}: identify every place that needs to change, then make the changes',
266 slots: {
267 from: 'the old logging API',
268 to: 'the structured logger'
269 },
270 src: 'workflows'
271 }, {
272 id: 'port-code-between-languages',
273 sdlc: 'build',
274 cat: 'Refactor',
275 roles: [],
276 prompt: 'port {source} to {target}, keeping the same {keep}',
277 slots: {
278 source: 'this Python module',
279 target: 'Rust',
280 keep: 'public API and test behavior'
281 },
282 src: 'teams'
283 }, {
284 id: 'optimize-against-a-measurable',
285 sdlc: 'build',
286 cat: 'Refactor',
287 roles: ['data'],
288 prompt: 'optimize {target} to bring {metric} from {current} down to under {goal}',
289 slots: {
290 target: 'the search query',
291 metric: 'p95 latency',
292 current: '2s',
293 goal: '500ms'
294 },
295 nextHref: '/en/goal',
296 src: 'ebook'
297 }, {
298 id: 'fix-a-precise-visual',
299 sdlc: 'build',
300 cat: 'Refactor',
301 roles: ['design'],
302 prompt: 'the {element} extends {amount} beyond the {container} on {viewport}. fix it.',
303 slots: {
304 element: 'login button',
305 amount: '20px',
306 container: 'card border',
307 viewport: 'mobile'
308 },
309 nextHref: '/en/desktop#preview-your-app',
310 src: 'ebook'
311 }, {
312 id: 'review-your-changes-before',
313 sdlc: 'build',
314 cat: 'Review',
315 startN: 5,
316 roles: [],
317 prompt: 'review my uncommitted changes and flag anything that looks risky before I commit',
318 nextHref: '/en/commands',
319 src: 'workflows'
320 }, {
321 id: 'review-a-pull-request',
322 sdlc: 'build',
323 cat: 'Review',
324 roles: [],
325 prompt: 'review PR #{pr} and summarize what changed, then list any concerns',
326 slots: {
327 pr: '247'
328 },
329 needs: 'gh',
330 nextHref: '/en/code-review',
331 src: 'workflows'
332 }, {
333 id: 'review-infrastructure-changes-before',
334 sdlc: 'build',
335 cat: 'Review',
336 roles: ['security', 'ops'],
337 paste: 'plan',
338 prompt: 'here is my Terraform plan output. what is this going to do, and is anything here going to cause problems?',
339 src: 'teams'
340 }, {
341 id: 'run-a-security-review',
342 sdlc: 'build',
343 cat: 'Review',
344 roles: ['security'],
345 prompt: 'use a subagent to review {path} for security issues and report what it finds',
346 slots: {
347 path: 'src/api/'
348 },
349 nextHref: '/en/sub-agents',
350 src: 'best-practices'
351 }, {
352 id: 'review-content-before-sending',
353 sdlc: 'build',
354 cat: 'Review',
355 roles: ['marketing', 'docs'],
356 prompt: 'review {file} for {concerns} and list anything I should fix before it goes to {reviewer}',
357 slots: {
358 file: 'launch-post.md',
359 concerns: 'unsupported claims, missing attributions, and brand-guideline issues',
360 reviewer: 'legal'
361 },
362 nextHref: '/en/skills',
363 src: 'legal'
364 }, {
365 id: 'course-correct-a-wrong',
366 sdlc: 'build',
367 cat: 'Steer',
368 roles: [],
369 prompt: 'that is not right: {feedback}. try a different approach',
370 slots: {
371 feedback: 'the function signature needs to stay backward-compatible'
372 },
373 nextHref: '/en/checkpointing',
374 src: 'best-practices'
375 }, {
376 id: 'narrow-the-scope-of',
377 sdlc: 'build',
378 cat: 'Steer',
379 roles: [],
380 prompt: 'that is too much. keep only the changes to {scope} and undo your other edits',
381 slots: {
382 scope: 'the validation logic in src/forms/'
383 },
384 src: 'best-practices'
385 }, {
386 id: 'turn-a-correction-into',
387 sdlc: 'build',
388 cat: 'Steer',
389 roles: [],
390 prompt: 'you keep {mistake}. add a rule to CLAUDE.md so this stops happening',
391 slots: {
392 mistake: 'using default exports when this project uses named exports'
393 },
394 nextHref: '/en/memory',
395 src: 'best-practices'
396 }, {
397 id: 'resolve-merge-conflicts',
398 sdlc: 'ship',
399 cat: 'Git',
400 roles: [],
401 prompt: 'resolve the merge conflicts in this branch and explain what you kept from each side',
402 src: 'workflows'
403 }, {
404 id: 'commit-with-a-generated',
405 sdlc: 'ship',
406 cat: 'Git',
407 roles: [],
408 prompt: 'commit these changes with a message that summarizes what I did',
409 src: 'workflows'
410 }, {
411 id: 'open-a-pull-request',
412 sdlc: 'ship',
413 cat: 'Git',
414 roles: [],
415 prompt: 'find the ticket about {topic} in {tracker} and open a PR that implements it',
416 slots: {
417 tracker: 'our issue tracker',
418 topic: 'the login timeout'
419 },
420 needs: 'tracker',
421 src: 'workflows'
422 }, {
423 id: 'draft-release-notes-from',
424 sdlc: 'ship',
425 cat: 'Release',
426 roles: ['pm', 'docs', 'marketing'],
427 prompt: 'compare {from} to {to} and draft release notes grouped by feature, fix, and breaking change',
428 slots: {
429 from: 'v2.3.0',
430 to: 'v2.4.0'
431 },
432 nextHref: '/en/skills',
433 src: 'workflows'
434 }, {
435 id: 'write-a-ci-workflow',
436 sdlc: 'ship',
437 cat: 'Release',
438 roles: ['ops'],
439 prompt: 'write a GitHub Actions workflow that {steps} on every push to {branch}',
440 slots: {
441 steps: 'runs the tests and deploys to staging',
442 branch: 'main'
443 },
444 src: 'workflows'
445 }, {
446 id: 'find-and-fix-a',
447 sdlc: 'operate',
448 cat: 'Debug',
449 startN: 3,
450 roles: [],
451 prompt: 'the {test} test is failing, find out why and fix it',
452 slots: {
453 test: 'UserAuth'
454 },
455 src: 'workflows'
456 }, {
457 id: 'investigate-a-reported-error',
458 sdlc: 'operate',
459 cat: 'Debug',
460 roles: ['ops'],
461 prompt: 'users are seeing {symptom} on {where}. investigate and tell me what is going on',
462 slots: {
463 symptom: '500 errors',
464 where: '/api/settings'
465 },
466 nextHref: '/en/web-quickstart#pre-fill-sessions',
467 src: 'workflows'
468 }, {
469 id: 'fix-a-build-error',
470 sdlc: 'operate',
471 cat: 'Debug',
472 roles: ['ops'],
473 paste: 'error',
474 prompt: 'here is a build error. fix the root cause and verify the build succeeds',
475 src: 'best-practices'
476 }, {
477 id: 'investigate-a-production-incident',
478 sdlc: 'operate',
479 cat: 'Incident',
480 roles: ['ops', 'security'],
481 prompt: '{symptom}. check the logs, recent deploys, and config changes, then tell me the most likely cause',
482 slots: {
483 symptom: 'the checkout endpoint started returning 500s an hour ago'
484 },
485 nextHref: '/en/mcp',
486 src: 'workflows'
487 }, {
488 id: 'diagnose-from-a-console',
489 sdlc: 'operate',
490 cat: 'Incident',
491 roles: ['ops', 'data'],
492 paste: 'screenshot',
493 prompt: 'here is a screenshot of {console}. walk me through why {resource} is failing and give me the exact commands to fix it',
494 slots: {
495 console: 'our Kubernetes dashboard',
496 resource: 'this pod'
497 },
498 src: 'teams'
499 }, {
500 id: 'query-logs-in-plain',
501 sdlc: 'operate',
502 cat: 'Incident',
503 roles: ['security', 'ops', 'data'],
504 prompt: 'show me all {events} for {scope} over {timeframe}. write the query, run it, and tell me what stands out',
505 slots: {
506 events: 'failed logins',
507 scope: 'the auth service',
508 timeframe: 'the past 24 hours'
509 },
510 needs: 'db',
511 src: 'cybersecurity'
512 }, {
513 id: 'analyze-a-data-file',
514 sdlc: 'operate',
515 cat: 'Data',
516 roles: ['data', 'pm', 'marketing'],
517 paste: 'csv',
518 prompt: 'read {file}, summarize the key patterns, and write the results to {output}',
519 slots: {
520 file: '@reports/q1-signups.csv',
521 output: 'an HTML page with charts, then open it in my browser'
522 },
523 nextHref: '/en/mcp',
524 src: 'teams'
525 }, {
526 id: 'generate-variations-from-performance',
527 sdlc: 'operate',
528 cat: 'Data',
529 roles: ['marketing', 'data'],
530 paste: 'csv',
531 prompt: 'read {file}, find the underperforming {items}, and generate {n} new variations that stay under {limit} characters',
532 slots: {
533 file: '@ads-performance.csv',
534 items: 'headlines',
535 n: '20',
536 limit: '90'
537 },
538 nextHref: '/en/mcp',
539 src: 'teams'
540 }, {
541 id: 'turn-a-recurring-task',
542 sdlc: 'operate',
543 cat: 'Automate',
544 roles: [],
545 prompt: 'create a /{name} skill for this project that {steps}',
546 slots: {
547 name: 'ship',
548 steps: 'runs the linter and tests, then drafts a commit message'
549 },
550 src: 'workflows'
551 }, {
552 id: 'add-a-hook-for',
553 sdlc: 'operate',
554 cat: 'Automate',
555 roles: [],
556 prompt: 'write a hook that {action} after every {event}',
557 slots: {
558 action: 'runs prettier',
559 event: 'edit to a .ts or .tsx file'
560 },
561 src: 'best-practices'
562 }, {
563 id: 'connect-a-tool-with',
564 sdlc: 'operate',
565 cat: 'Automate',
566 roles: [],
567 prompt: 'connect {server} via MCP so you can read its {data} directly',
568 slots: {
569 server: 'our error tracker',
570 data: 'stack traces'
571 },
572 src: 'workflows'
573 }, {
574 id: 'capture-what-to-remember',
575 sdlc: 'operate',
576 cat: 'Automate',
577 roles: ['pm', 'docs'],
578 prompt: 'summarize what we did this session and suggest what to add to CLAUDE.md',
579 src: 'teams'
580 }], []);
581 const PROMPTS = useMemo(() => {
582 if (typeof window !== 'undefined') {
583 const rawIds = new Set(RAW.map(p => p.id));
584 RAW.forEach(p => {
585 if (!text[p.id]) console.warn('[prompt-library] no text[] entry for id:', p.id);
586 });
587 Object.keys(text).forEach(k => {
588 if (!rawIds.has(k)) console.warn('[prompt-library] orphaned text[] key:', k);
589 });
590 }
591 return RAW.map(p => ({
592 ...p,
593 title: p.id,
594 teaches: '',
595 ...text[p.id] || ({})
596 }));
597 }, [RAW, text]);
598 const L = labels;
599 const TL = k => tagLabels[k] || k;
600 const CAT_TAG = useMemo(() => ({
601 Onboard: 'understand',
602 Understand: 'understand',
603 Plan: 'plan',
604 Prototype: 'prototype',
605 Implement: 'build',
606 Test: 'test',
607 Refactor: 'refactor',
608 Review: 'review',
609 Steer: 'steer',
610 Git: 'git',
611 Release: 'release',
612 Debug: 'debug',
613 Incident: 'debug',
614 Data: 'data',
615 Automate: 'automate'
616 }), []);
617 const TAGS = useMemo(() => ['understand', 'plan', 'prototype', 'build', 'test', 'refactor', 'review', 'steer', 'debug', 'git', 'release', 'data', 'automate', 'pm', 'design', 'docs', 'marketing', 'security', 'ops'], []);
618 const tagsOf = p => [CAT_TAG[p.cat], ...p.roles || []];
619 const doc = useMemo(() => {
620 const p = typeof window !== 'undefined' ? window.location.pathname : '';
621 const base = p.startsWith('/docs/') ? '/docs' : '';
622 const m = p.slice(base.length).match(/^\/([a-z]{2}(?:-[A-Z]{2})?)\//);
623 const locale = m ? m[1] : 'en';
624 return href => {
625 if (!href) return undefined;
626 if (href[0] === '#' || href.startsWith('https://')) return href;
627 if (!(/^\/[A-Za-z0-9]/).test(href)) return undefined;
628 return base + (href.startsWith('/en/') ? '/' + locale + href.slice(3) : href);
629 };
630 }, []);
631 const SAFE_HREF = /^(\/(?![\/\\\s])|#|https?:\/\/)/;
632 const linkify = s => {
633 const out = [];
634 let last = 0;
635 const re = /\[([^\]]+)\]\(([^)]+)\)/g;
636 for (let m; m = re.exec(s); ) {
637 if (m.index > last) out.push(s.slice(last, m.index));
638 out.push(SAFE_HREF.test(m[2]) ? <a key={m.index} href={doc(m[2])}>{m[1]}</a> : m[1]);
639 last = re.lastIndex;
640 }
641 if (last < s.length) out.push(s.slice(last));
642 return out;
643 };
644 const codeify = s => s.split(/(`[^`]+`)/g).map((part, i) => part[0] === '`' ? <code key={i}>{part.slice(1, -1)}</code> : part);
645 const SOURCES = useMemo(() => ({
646 'workflows': '/en/common-workflows',
647 'teams': 'https://claude.com/blog/how-anthropic-teams-use-claude-code',
648 'legal': 'https://claude.com/blog/how-anthropic-uses-claude-legal',
649 'cybersecurity': 'https://claude.com/blog/how-anthropic-uses-claude-cybersecurity',
650 'best-practices': '/en/best-practices',
651 'ebook': 'https://resources.anthropic.com/hubfs/Scaling%20agentic%20coding%20across%20your%20organization.pdf'
652 }), []);
653 const [mounted, setMounted] = useState(false);
654 const [q, setQ] = useState('');
655 const [start, setStart] = useState(true);
656 const [sel, setSel] = useState(null);
657 const [openId, setOpenId] = useState(null);
658 const [copied, setCopied] = useState(null);
659 const [fills, setFills] = useState({});
660 const copyTimer = useRef(null);
661 useEffect(() => {
662 setMounted(true);
663 return () => clearTimeout(copyTimer.current);
664 }, []);
665 const setFill = (id, key, val) => setFills(f => ({
666 ...f,
667 [id + '.' + key]: val
668 }));
669 const fillOf = (p, key) => {
670 const v = fills[p.id + '.' + key];
671 return v !== undefined ? v : p.slots && p.slots[key] !== undefined ? p.slots[key] : '';
672 };
673 const assemble = p => p.prompt.replace(/\{(\w+)\}/g, (_, k) => fillOf(p, k) || p.slots && p.slots[k] || k);
674 const preview = p => p.prompt.replace(/\{(\w+)\}/g, (_, k) => p.slots && p.slots[k] || k);
675 const bodyText = p => preview(p) + ' ' + p.teaches.replace(/\[([^\]]+)\]\([^)]+\)/g, '$1') + ' ' + (p.next || '');
676 const WIDE_RE = /[\u1100-\u115F\u2E80-\uA4CF\uAC00-\uD7A3\uF900-\uFAFF\uFE30-\uFE4F\uFF00-\uFF60\uFFE0-\uFFE6]/g;
677 const widthFor = s => {
678 const t = typeof s === 'string' ? s : '';
679 return t.length + (t.match(WIDE_RE) || []).length + 3 + 'ch';
680 };
681 const ql = q.trim().toLowerCase();
682 const toggleTag = k => {
683 setStart(false);
684 setSel(s => !ql && s === k ? null : k);
685 };
686 const clear = () => {
687 setStart(false);
688 setSel(null);
689 setQ('');
690 };
691 const results = useMemo(() => {
692 const list = PROMPTS.filter(p => {
693 if (ql) return p.title.toLowerCase().includes(ql) || bodyText(p).toLowerCase().includes(ql);
694 if (start) return !!p.startN;
695 if (sel) return tagsOf(p).includes(sel);
696 return true;
697 });
698 if (ql) return list;
699 if (start) return list.sort((a, b) => a.startN - b.startN);
700 if (sel) return list.sort((a, b) => (a.roles || []).length - (b.roles || []).length || (b.sdlc === 'operate') - (a.sdlc === 'operate'));
701 return list;
702 }, [PROMPTS, ql, start, sel]);
703 const matchSnippet = p => {
704 if (!ql || p.title.toLowerCase().includes(ql)) return null;
705 const txt = bodyText(p);
706 const at = txt.toLowerCase().indexOf(ql);
707 if (at < 0) return null;
708 const lo = Math.max(0, at - 30), hi = Math.min(txt.length, at + ql.length + 50);
709 return [lo > 0 ? '…' : '', txt.slice(lo, at), <mark key="m">{txt.slice(at, at + ql.length)}</mark>, txt.slice(at + ql.length, hi), hi < txt.length ? '…' : ''];
710 };
711 const grouped = useMemo(() => {
712 if (start && !q.trim()) return [];
713 const g = {};
714 for (const p of results) {
715 const key = p.sdlc + '|' + p.cat;
716 (g[key] = g[key] || ({
717 sdlc: p.sdlc,
718 cat: p.cat,
719 items: []
720 })).items.push(p);
721 }
722 return Object.values(g);
723 }, [results, start, q]);
724 const copy = async (str, id) => {
725 try {
726 await navigator.clipboard.writeText(str);
727 } catch {
728 const ta = document.createElement('textarea');
729 ta.value = str;
730 ta.setAttribute('readonly', '');
731 ta.style.position = 'fixed';
732 ta.style.opacity = '0';
733 document.body.appendChild(ta);
734 ta.select();
735 document.execCommand('copy');
736 document.body.removeChild(ta);
737 }
738 clearTimeout(copyTimer.current);
739 setCopied(id);
740 copyTimer.current = setTimeout(() => setCopied(null), 1600);
741 };
742 const promptBody = p => {
743 if (!p.slots) return <code>{p.prompt}</code>;
744 const parts = p.prompt.split(/(\{\w+\})/g);
745 return <code>
746 {parts.map((part, idx) => {
747 const m = part.match(/^\{(\w+)\}$/);
748 if (!m) return <span key={idx}>{part}</span>;
749 const k = m[1];
750 const val = fillOf(p, k);
751 return <input key={idx} type="text" className="pl-slot" value={val} placeholder={p.slots[k] || k} aria-label={k} style={{
752 width: widthFor(val || p.slots[k])
753 }} onChange={e => setFill(p.id, k, e.target.value)} onFocus={e => e.target.select()} onClick={e => e.stopPropagation()} />;
754 })}
755 </code>;
756 };
757 const card = p => {
758 const open = openId === p.id;
759 const srcHref = SOURCES[p.src];
760 const srcLabel = sourceLabels[p.src];
761 const snip = matchSnippet(p);
762 return <div key={p.id} className={'pl-card' + (open ? ' pl-open' : '')}>
763 <button type="button" className="pl-head" onClick={() => setOpenId(open ? null : p.id)} aria-expanded={open}>
764 <span className="pl-title">{p.title}</span>
765 {!!p.startN && <span className="pl-chip">{L.startHere} · {p.startN}</span>}
766 </button>
767 {snip ? <div className="pl-match">{snip}</div> : <code className="pl-prompt-preview">{preview(p)}</code>}
768 {open && <div className="pl-body">
769 <div className="pl-label">{p.slots ? L.fillAndCopy : L.copyThis}</div>
770 {p.needs && L.needs && L.needs[p.needs] && <div className="pl-hint pl-needs">
771 <span className="pl-needs-label">{L.needsLabel}</span> {linkify(L.needs[p.needs])}
772 </div>}
773 {p.paste && L.paste && L.paste[p.paste] && <div className="pl-hint pl-paste">{L.paste[p.paste]}</div>}
774 {p.slots && <div className="pl-hint">
775 {L.hintBefore} <span className="pl-hint-chip">{L.hintChip}</span> {L.hintAfter}
776 </div>}
777 <div className="pl-prompt-box">
778 <span className="pl-caret">{'❯'}</span>
779 {promptBody(p)}
780 <button type="button" className="pl-copy" onClick={() => copy(assemble(p), p.id)}>
781 {copied === p.id ? L.copied : L.copy}
782 </button>
783 </div>
784 <div className="pl-label">{L.whyWorks}</div>
785 <div className="pl-teaches">{linkify(p.teaches)}</div>
786 {p.nextHref && p.next && SAFE_HREF.test(p.nextHref) && <div className="pl-next">
787 <span className="pl-next-label">{L.makeItStick}</span>
788 <a href={doc(p.nextHref)}>{codeify(p.next)} →</a>
789 </div>}
790 {srcLabel && <div className="pl-src">{L.from} {srcHref ? <a href={doc(srcHref)}>{srcLabel}</a> : srcLabel}</div>}
791 </div>}
792 </div>;
793 };
794 const STYLES = useMemo(() => `
795.pl {
796 --pl-accent: #D97757;
797 --pl-accent-bg: rgba(217,119,87,0.07);
798 --pl-bg: #fff;
799 --pl-surface: #FAFAF7;
800 --pl-border: #E8E6DC;
801 --pl-border-subtle: rgba(31,30,29,0.08);
802 --pl-text: #141413;
803 --pl-text-2: #5E5D59;
804 --pl-text-3: #73726C;
805 --pl-text-4: #9C9A92;
806 --pl-mono: var(--font-mono, ui-monospace, SFMono-Regular, Menlo, monospace);
807 font-family: 'Anthropic Sans', -apple-system, BlinkMacSystemFont, sans-serif;
808 font-size: 16px; color: var(--pl-text); margin: 8px 0 32px;
809}
810.dark .pl {
811 --pl-bg: #1f1e1d;
812 --pl-surface: #262624;
813 --pl-border: #3d3d3a;
814 --pl-border-subtle: rgba(240,238,230,0.08);
815 --pl-text: #f0eee6;
816 --pl-text-2: #bfbdb4;
817 --pl-text-3: #91908a;
818 --pl-text-4: #73726c;
819}
820.pl *, .pl *::before, .pl *::after { box-sizing: border-box; }
821.pl button { font-family: inherit; cursor: pointer; }
822.pl a { color: var(--pl-accent); text-decoration: none; }
823.pl a:hover { text-decoration: underline; }
824
825.pl-search {
826 display: flex; align-items: center; gap: 10px;
827 padding: 14px 18px; background: var(--pl-surface);
828 border: 1px solid var(--pl-border); border-radius: 12px;
829 margin-bottom: 14px;
830}
831.pl-search input {
832 flex: 1; border: none; outline: none; background: transparent;
833 font-size: 16px; color: var(--pl-text);
834}
835.pl-search input::placeholder { color: var(--pl-text-4); }
836
837.pl-tags { display: flex; gap: 8px; flex-wrap: wrap; align-items: center; margin-bottom: 18px; }
838.pl-tag {
839 padding: 7px 14px; border: 1px solid var(--pl-border); background: var(--pl-bg);
840 font-size: 14px; color: var(--pl-text-2); border-radius: 999px;
841}
842.pl-tag:hover { background: var(--pl-surface); }
843.pl-tag.pl-on { background: var(--pl-text); border-color: var(--pl-text); color: var(--pl-bg); }
844.pl-tag.pl-start { color: var(--pl-accent); font-weight: 500; }
845.pl-tag.pl-start.pl-on { background: var(--pl-accent); border-color: var(--pl-accent); color: #fff; }
846.pl-tags.pl-dim .pl-tag { opacity: 0.5; }
847.pl-tags.pl-dim .pl-tag:hover { opacity: 1; }
848.pl-sep { width: 1px; height: 22px; background: var(--pl-border); margin: 0 4px; }
849.pl-clear { border: none; background: none; font-size: 13px; color: var(--pl-text-4); padding: 4px 6px; }
850.pl-clear:hover { color: var(--pl-text-2); }
851.pl-count { margin-left: auto; font-size: 14px; color: var(--pl-text-4); }
852
853.pl-group-h {
854 font-size: 12px; letter-spacing: 0.08em; text-transform: uppercase;
855 color: var(--pl-text-4); margin: 24px 0 12px;
856}
857.pl-group-h .pl-phase { color: var(--pl-text-3); }
858.pl-card {
859 border: 1px solid var(--pl-border-subtle); border-radius: 10px;
860 margin-bottom: 12px; background: var(--pl-bg); overflow: hidden;
861 padding: 14px 18px;
862}
863.pl-card.pl-open { border-color: var(--pl-border); background: var(--pl-surface); }
864.pl-head {
865 width: 100%; display: flex; align-items: baseline; gap: 12px;
866 border: none; background: transparent; text-align: left; padding: 0;
867}
868.pl-head:focus-visible { outline: 2px solid var(--pl-accent); outline-offset: 2px; border-radius: 6px; }
869.pl-title {
870 flex: 1; font-size: 17px; font-weight: 500; color: var(--pl-text);
871 white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
872}
873.pl-prompt-preview {
874 display: block; font-family: var(--pl-mono); font-size: 13.5px; color: var(--pl-text-3);
875 margin-top: 6px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
876}
877.pl-chip {
878 font-size: 11px; letter-spacing: 0.05em; text-transform: uppercase;
879 padding: 3px 9px; border-radius: 999px; flex-shrink: 0;
880 background: var(--pl-accent-bg); color: var(--pl-accent);
881}
882
883.pl-body { margin-top: 14px; padding-top: 14px; border-top: 1px solid var(--pl-border-subtle); }
884.pl-label {
885 font-size: 11.5px; letter-spacing: 0.08em; text-transform: uppercase;
886 color: var(--pl-text-4); margin: 12px 0 8px;
887}
888.pl-prompt-box {
889 display: flex; align-items: center; gap: 10px;
890 padding: 14px 16px; background: #141413; color: #f0eee6;
891 border-radius: 8px; font-family: var(--pl-mono); font-size: 15px;
892}
893.pl-caret { color: var(--pl-accent); flex-shrink: 0; }
894.pl-prompt-box code { flex: 1; background: none; padding: 0; color: inherit; white-space: pre-wrap; line-height: 1.9; }
895.pl-slot {
896 font-family: var(--pl-mono); font-size: inherit;
897 background: rgba(217,119,87,0.15); color: #f0eee6;
898 border: none; border-bottom: 1.5px dashed var(--pl-accent);
899 border-radius: 4px 4px 0 0; padding: 2px 6px; margin: 0 1px;
900 outline: none; min-width: 6ch; max-width: 100%;
901 box-sizing: content-box; cursor: text;
902}
903.pl-slot:hover { background: rgba(217,119,87,0.22); }
904.pl-slot:focus { background: rgba(217,119,87,0.28); border-bottom-style: solid; }
905.pl-slot::placeholder { color: rgba(240,238,230,0.4); font-style: italic; }
906.pl-hint { font-size: 14px; color: var(--pl-text-3); margin: 0 0 10px; }
907.pl-paste { color: var(--pl-text-2); }
908.pl-needs { color: var(--pl-text-2); }
909.pl-needs-label {
910 display: inline-block; font-size: 10.5px; letter-spacing: 0.06em;
911 text-transform: uppercase; padding: 2px 7px; margin-right: 6px;
912 border-radius: 4px; background: var(--pl-accent-bg); color: var(--pl-accent);
913}
914.pl-hint-chip {
915 font-family: var(--pl-mono); font-size: 0.92em;
916 background: var(--pl-accent-bg); color: var(--pl-accent);
917 border-bottom: 1.5px dashed var(--pl-accent);
918 border-radius: 3px 3px 0 0; padding: 1px 5px;
919}
920.pl-copy {
921 font-size: 12.5px; padding: 6px 12px; border-radius: 6px;
922 background: var(--pl-accent); color: #fff; border: none; flex-shrink: 0;
923}
924.pl-teaches { display: block; font-size: 15.5px; color: var(--pl-text-2); margin: 4px 0 0; line-height: 1.6; }
925.pl-match {
926 display: block; font-size: 13.5px; color: var(--pl-text-3);
927 margin-top: 6px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
928}
929.pl-match mark { background: var(--pl-accent-bg); color: var(--pl-text); padding: 1px 2px; border-radius: 3px; }
930.pl-next {
931 display: flex; align-items: baseline; gap: 10px;
932 margin: 14px 0 0; padding: 10px 12px;
933 background: var(--pl-accent-bg); border-radius: 8px; font-size: 14.5px;
934}
935.pl-next-label {
936 font-size: 11px; letter-spacing: 0.06em; text-transform: uppercase;
937 color: var(--pl-accent); font-weight: 600; flex-shrink: 0;
938}
939.pl-src { display: block; font-size: 14px; color: var(--pl-text-4); margin: 14px 0 0; }
940
941.pl-show-all {
942 display: block; width: 100%; padding: 14px; margin-top: 4px;
943 border: 1px dashed var(--pl-border); border-radius: 10px;
944 background: transparent; font-size: 15px; color: var(--pl-accent);
945 text-align: center;
946}
947.pl-show-all:hover { background: var(--pl-accent-bg); border-style: solid; }
948
949.pl-empty {
950 padding: 32px; text-align: center; color: var(--pl-text-4);
951 border: 1px dashed var(--pl-border); border-radius: 10px;
952}
953`, []);
954 if (!mounted) return <div className="pl" style={{
955 minHeight: 480
956 }} />;
957 return <div className="pl">
958 <style>{STYLES}</style>
959
960 <div className="pl-search">
961 <svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="2" style={{
962 color: 'var(--pl-text-4)'
963 }}>
964 <circle cx="11" cy="11" r="7" /><line x1="21" y1="21" x2="16.65" y2="16.65" />
965 </svg>
966 <input type="text" placeholder={L.search} value={q} onChange={e => {
967 setQ(e.target.value);
968 if (e.target.value) setStart(false);
969 }} aria-label={L.search} />
970 </div>
971
972 <div className={'pl-tags' + (ql ? ' pl-dim' : '')}>
973 <button type="button" className={'pl-tag pl-start' + (!ql && start ? ' pl-on' : '')} onClick={() => {
974 setQ('');
975 setStart(!start);
976 if (!start) setSel(null);
977 }}>
978 ★ {L.startHere}
979 </button>
980 <span className="pl-sep" />
981 {TAGS.map(k => <button key={k} type="button" aria-pressed={!ql && sel === k} className={'pl-tag' + (!ql && sel === k ? ' pl-on' : '')} onClick={() => {
982 setQ('');
983 toggleTag(k);
984 }}>
985 {TL(k)}
986 </button>)}
987 {(start || sel || q) && <button type="button" className="pl-clear" onClick={clear}>{L.clear}</button>}
988 <span className="pl-count">{results.length} {results.length === 1 ? L.prompt : L.prompts}</span>
989 </div>
990
991 {results.length === 0 ? <div className="pl-empty">
992 {L.noMatch} {ql ? <code>{q}</code> : null} <button type="button" className="pl-clear" onClick={clear}>{L.clear}</button>
993 </div> : !ql && start ? <div>
994 <div className="pl-group-h">{L.startHereHeader}</div>
995 {results.map(card)}
996 <button type="button" className="pl-show-all" onClick={clear}>
997 {L.showAll && L.showAll.replace('{n}', PROMPTS.length)} →
998 </button>
999 </div> : grouped.map(g => <div key={g.sdlc + '|' + g.cat}>
1000 <div className="pl-group-h"><span className="pl-phase">{phaseLabels[g.sdlc] || g.sdlc}</span> · {catLabels[g.cat] || g.cat}</div>
1001 {g.items.map(card)}
1002 </div>)}
1003 </div>;
1004};
1005
1006これは Claude Code にコピーして使用するプロンプトのライブラリです。試したことのない作業方法を探索したり、どこから始めたらよいかわからない場合に使用してください。9これは Claude Code にコピーして使用するプロンプトのライブラリです。試したことのない作業方法を探索したり、どこから始めたらよいかわからない場合に使用してください。
1007 10
1008プロンプトは、[一般的なワークフロー](/docs/ja/common-workflows)、[ベストプラクティス](/docs/ja/best-practices)、[Anthropic チームが Claude Code をどのように使用しているか](https://claude.com/blog/how-anthropic-teams-use-claude-code)など、様々な Anthropic ガイドから収集されています。これらはスクリプトではなく、出発点です。任意のプロンプトの下にある **このプロンプトが機能する理由** を開くと、その背後にあるパターンを確認できるため、独自のプロンプトを作成できます。11プロンプトは、[一般的なワークフロー](/docs/ja/common-workflows)、[ベストプラクティス](/docs/ja/best-practices)、[Anthropic チームが Claude Code をどのように使用しているか](https://claude.com/blog/how-anthropic-teams-use-claude-code)など、様々な Anthropic ガイドから収集されています。これらはスクリプトではなく、出発点です。任意のプロンプトの下にある **このプロンプトが機能する理由** を開くと、その背後にあるパターンを確認できるため、独自のプロンプトを作成できます。
1009 12
1010export const labels = {13## これらのプロンプトを機能させるもの
1011 startHere: "ここから始める",
1012 startHereHeader: "最初に試すべき 5 つのプロンプト",
1013 showAll: "{n} 個のプロンプトをすべて表示",
1014 search: "プロンプトを検索…",
1015 clear: "クリア",
1016 prompt: "プロンプト",
1017 prompts: "プロンプト",
1018 noMatch: "一致するプロンプトがありません",
1019 fillAndCopy: "入力してコピー",
1020 copyThis: "このプロンプトをコピー",
1021 hintBefore: "次の",
1022 hintChip: "ハイライト",
1023 hintAfter: "フィールドに入力してからコピーしてください。",
1024 copy: "コピー",
1025 copied: "コピーしました",
1026 whyWorks: "このプロンプトが機能する理由",
1027 makeItStick: "記憶に残す",
1028 from: "出典",
1029 paste: {
1030 mockup: "モックアップ画像をペースト、ドラッグ、または @-mention してから、以下を送信してください:",
1031 design: "デザイン画像をペースト、ドラッグ、または @-mention してから、以下を送信してください:",
1032 screenshot: "スクリーンショットをペースト、ドラッグ、または @-mention してから、以下を送信してください:",
1033 plan: "プラン出力をプロンプトに最初にペーストしてから、以下を送信してください:",
1034 error: "エラー出力をプロンプトに最初にペーストしてから、以下を送信してください:",
1035 csv: "ファイルをプロンプトにドラッグするか、以下のパスを独自の @-mention に置き換えてください:"
1036 },
1037 needsLabel: "必要なもの",
1038 needs: {
1039 tracker: "[claude.ai コネクタ](/docs/ja/mcp#use-mcp-servers-from-claude-ai)または [MCP サーバー](/docs/ja/mcp)として追加されたイシュートラッカー。",
1040 gh: "[gh CLI](https://cli.github.com) が認証されているか、GitHub が [claude.ai コネクタ](/docs/ja/mcp#use-mcp-servers-from-claude-ai)として追加されていること。",
1041 browser: "Claude が結果をレンダリングしてスクリーンショットを撮る方法。[デスクトップアプリ](/docs/ja/desktop#preview-your-app)にはこれが組み込まれています。ターミナルでは、[Chrome 拡張機能](/docs/ja/chrome)または Playwright [MCP](/docs/ja/mcp) サーバーをインストールしてください。",
1042 db: "[claude.ai コネクタ](/docs/ja/mcp#use-mcp-servers-from-claude-ai)または [MCP サーバー](/docs/ja/mcp)として追加されたデータウェアハウスまたはログストア。"
1043 }
1044};
1045
1046export const tagLabels = {
1047 understand: "理解",
1048 plan: "計画",
1049 prototype: "プロトタイプ",
1050 build: "構築",
1051 test: "テスト",
1052 refactor: "リファクタリング",
1053 review: "レビュー",
1054 steer: "操舵",
1055 debug: "デバッグ",
1056 git: "Git",
1057 release: "リリース",
1058 data: "データ",
1059 automate: "自動化",
1060 pm: "プロダクト",
1061 design: "デザイン",
1062 docs: "ドキュメント",
1063 marketing: "マーケティング",
1064 security: "セキュリティ",
1065 ops: "オンコール"
1066};
1067
1068export const phaseLabels = {
1069 discover: "発見",
1070 design: "設計",
1071 build: "構築",
1072 ship: "リリース",
1073 operate: "運用"
1074};
1075
1076export const sourceLabels = {
1077 workflows: "一般的なワークフロー",
1078 teams: "Anthropic チームが Claude Code をどのように使用しているか",
1079 legal: "Anthropic が法務で Claude をどのように使用しているか",
1080 cybersecurity: "Anthropic がサイバーセキュリティで Claude をどのように使用しているか",
1081 "best-practices": "ベストプラクティス",
1082 ebook: "agentic coding スケーリングガイド"
1083};
1084
1085export const catLabels = {
1086 Onboard: "オンボード",
1087 Understand: "理解",
1088 Plan: "計画",
1089 Prototype: "プロトタイプ",
1090 Implement: "実装",
1091 Test: "テスト",
1092 Refactor: "リファクタリング",
1093 Review: "レビュー",
1094 Steer: "操舵",
1095 Git: "Git",
1096 Release: "リリース",
1097 Debug: "デバッグ",
1098 Incident: "インシデント",
1099 Data: "データ",
1100 Automate: "自動化"
1101};
1102
1103export const text = {
1104 "get-oriented-in-a": {
1105 title: "新しいリポジトリで方向性を確認する",
1106 teaches: "読むべきファイルではなく、知りたいことを説明してください。Claude はプロジェクトを独自に探索し、それがどのように組み合わさっているかの概要を返します。",
1107 next: "`/init` を実行して `CLAUDE.md` をセットアップし、Claude がこれを毎回のセッションで覚えるようにしてください",
1108 prompt: "このコードベースの概要を教えてください。アーキテクチャ、主要なディレクトリ、各部分がどのようにつながっているかを含めてください"
1109 },
1110 "explain-unfamiliar-code": {
1111 title: "なじみのないコードを説明する",
1112 teaches: "ファイル名を指定し、答えてほしい形式を言ってください。HTML ページを図、箇条書き、または学習方法に合ったものに置き換えてください。",
1113 next: "出力スタイルを設定して、Claude が常に好みの形式で説明するようにしてください",
1114 prompt: "{path} が何をしているか、データがどのように流れるかを説明してください。{format}",
1115 slots: {
1116 path: "src/scheduler/queue.ts",
1117 format: "図入りの HTML ページにまとめて、ブラウザで開いてください"
1118 }
1119 },
1120 "find-where-something-happens": {
1121 title: "何かが起こる場所を見つける",
1122 teaches: "ファイル名ではなく動作で検索してください。ファイルの名前やディレクトリの場所がわからない場合でも、検索は機能します。",
1123 prompt: "{behavior}はどこで行っていますか?",
1124 slots: {
1125 behavior: "アップロードされたファイルの種類の検証"
1126 }
1127 },
1128 "see-what-depends-on": {
1129 title: "削除する前に何が壊れるかを確認する",
1130 teaches: "何かを削除する前に尋ねてください。呼び出し元と下流への影響のリストは、1 行のクリーンアップを見ているのか、調整が必要な変更を見ているのかを示します。",
1131 prompt: "{target}を削除したら何が壊れますか?",
1132 slots: {
1133 target: "retryWithBackoff ヘルパー"
1134 }
1135 },
1136 "trace-how-code-evolved": {
1137 title: "コードがどのように進化したかを追跡する",
1138 teaches: "質問が「何」ではなく「なぜ」の場合は、コミット履歴を指してください。Claude はどのバージョン管理を使用していても、ログと blame を読み、現在の実装の背後にある決定を説明します。",
1139 prompt: "{path} のコミット履歴を調べて、どのように、そしてなぜ変化してきたかをまとめてください",
1140 slots: {
1141 path: "internal/auth/session.go"
1142 }
1143 },
1144 "scope-a-change-before": {
1145 title: "開始する前に変更の範囲を決定する",
1146 teaches: "ロードマップにコミットする前に作業をサイズ化してください。ファイルリストは、1 つのコンポーネントを見ているのか、クロスカッティング変更を見ているのかを示します。",
1147 prompt: "{change}には、どのファイルに手を入れる必要がありますか?",
1148 slots: {
1149 change: "設定画面にダークモードの切り替えを追加する"
1150 }
1151 },
1152 "ask-the-codebase-a": {
1153 title: "コードベースにプロダクト質問をする",
1154 teaches: "役割を述べて、答えが適切なレベルで提供されるようにしてください。Claude はソースコードから実際に何をするかを説明し、読む必要はありません。",
1155 next: "出力スタイルを設定して、Claude が常にこのレベルで答えを提供するようにしてください",
1156 prompt: "私は {role} です。ユーザーが{action}ときに何が起こるのか、UI から結果まで順を追って説明してください",
1157 slots: {
1158 role: "PM",
1159 action: "Export to PDF をクリックした"
1160 }
1161 },
1162 "plan-a-multi-file": {
1163 title: "コードに触れる前に複数ファイルの変更を計画する",
1164 teaches: "「まだ編集しないでください」を追加すると、探索と変更が分離されるため、コードが移動する前にアプローチが表示されます。すべてのプロンプトでプラン優先をデフォルトにするには、Shift+Tab を押して [plan モード](/docs/ja/permission-modes#analyze-before-you-edit-with-plan-mode)を使用してください。",
1165 prompt: "{goal}ように{target}をリファクタリングする計画を立ててください。変更するファイルを列挙してください。ただし、まだ何も編集しないでください",
1166 slots: {
1167 target: "決済モジュール",
1168 goal: "複数通貨に対応できる"
1169 }
1170 },
1171 "draft-a-spec-by": {
1172 title: "インタビューでスペックを作成する",
1173 teaches: "スペックを自分で書く代わりに、インタビューを受けるよう依頼してください。Claude は要件が完全になるまで構造化された質問をし、その後、結果をファイルに書き込みます。",
1174 next: "インタビュー質問を `/spec` スキルとして保存して、すべてのスペックが同じ方法で開始されるようにしてください",
1175 prompt: "{feature}を作りたいです。実装、UX、エッジケース、トレードオフについて、すべてを網羅するまで私にインタビューしてから、スペックを SPEC.md に書き出してください",
1176 slots: {
1177 feature: "ワークスペースごとのレート制限"
1178 }
1179 },
1180 "turn-a-meeting-into": {
1181 title: "ミーティングをチケットに変換する",
1182 teaches: "トランスクリプションステップをスキップしてください。Claude は非構造化入力からアクション項目を抽出し、[MCP](/docs/ja/mcp)経由でトラッカーに直接書き込むため、トランスクリプトではなくチケットをレビューします。",
1183 next: "これを `/tickets` スキルとして保存してください",
1184 prompt: "{input} を読んでアクション項目をまとめ、それぞれについて受け入れ基準付きのチケットを{tracker}に作成してください",
1185 slots: {
1186 input: "@meeting-notes.md",
1187 tracker: "自社のイシュートラッカー"
1188 }
1189 },
1190 "map-edge-cases-before": {
1191 title: "構築する前にエッジケースをマップする",
1192 teaches: "そこにあるものではなく、欠けているものを尋ねてください。Claude はエラー状態、空の状態、ハッピーパス設計が傾向としてスキップするエッジケースをリストアップします。",
1193 prompt: "{feature}について、デザインでカバーすべきエラー状態、空の状態、エッジケースを列挙してください",
1194 slots: {
1195 feature: "ファイルアップロードのフロー"
1196 }
1197 },
1198 "turn-a-mockup-into": {
1199 title: "モックアップを動作するプロトタイプに変換する",
1200 teaches: "クリック可能なプロトタイプは、静的モックアップが答えられない質問に答えます。ドキュメントで相互作用を説明する代わりに、動作するコードをエンジニアリングに渡してください。",
1201 prompt: "これはモックアップです。表示されているレイアウトと状態に合わせて、クリックして操作できる動作するプロトタイプを作成してください"
1202 },
1203 "implement-from-a-screenshot": {
1204 title: "スクリーンショットから実装して自己チェックする",
1205 teaches: "これは Claude に検証ループを提供します。レンダリングし、ソース画像と比較し、各ギャップを指摘することなく反復します。",
1206 next: "`/goal` を使用して、Claude がスクリーンショットが一致するまで反復し続けるようにしてください",
1207 prompt: "このデザインを実装し、結果のスクリーンショットを撮って元のデザインと比較し、違いがあれば修正してください"
1208 },
1209 "follow-an-existing-pattern": {
1210 title: "既存のパターンに従う",
1211 teaches: "既に気に入っているコードを指してください。参照がないと、Claude は一般的なベストプラクティスにデフォルト設定されます。参照があると、コードベースが実際に使用する規約に一致します。",
1212 next: "Claude に、従ったパターンを `CLAUDE.md` に書き込むよう依頼して、将来のセッションが参照なしで一致するようにしてください",
1213 prompt: "{example}の実装を見てパターンを理解し、同じ方法で {new}を作成してください",
1214 slots: {
1215 example: "既存の webhook ハンドラー",
1216 new: "決済用の webhook ハンドラー"
1217 }
1218 },
1219 "add-a-small-well": {
1220 title: "小さく、明確に定義された機能を追加する",
1221 teaches: "構築方法ではなく、入力と出力を述べてください。Claude は同様のコードが存在する場所を見つけ、その横に追加します。",
1222 prompt: "{endpoint} エンドポイントを追加して、{payload}を返すようにしてください",
1223 slots: {
1224 endpoint: "/health",
1225 payload: "アプリのバージョンと稼働時間"
1226 }
1227 },
1228 "build-a-small-internal": {
1229 title: "小さな内部ツールをゼロから構築する",
1230 teaches: "プロジェクト、フレームワーク、またはビルドステップは必要ありません。ツールを説明し、Claude に開くよう依頼して、すぐに動作を確認してください。",
1231 prompt: "HTML、CSS、素の JavaScript で {tool}を作成し、ブラウザで開いてください",
1232 slots: {
1233 tool: "3 列のドラッグ&ドロップ式カンバンボード"
1234 }
1235 },
1236 "work-an-issue-end": {
1237 title: "イシューをエンドツーエンドで処理する",
1238 teaches: "概要ではなく、イシュー番号を指定してください。Claude はチケット全体を読むため、言及し忘れた要件が含まれ、変更を報告する前に検証します。",
1239 prompt: "イシュー #{issue} を読んで修正を実装し、テストを実行してください",
1240 slots: {
1241 issue: "312"
1242 }
1243 },
1244 "find-and-update-copy": {
1245 title: "コードベース全体でコピーを見つけて更新する",
1246 teaches: "バリエーションを尋ね、スキップするものを言ってください。Claude はリテラル検索が見落とすフレーズングを見つけ、テストフィクスチャと履歴をそのままにしておくため、ユーザーが実際に見るコピーのみをレビューします。",
1247 prompt: "「{copy}」またはそれに近い表現を使っている箇所をすべて見つけ、それぞれを文脈とともに示してから、すべて「{new}」に更新してください。テストとチェンジログはそのままにしてください",
1248 slots: {
1249 copy: "無料で登録",
1250 new: "無料トライアルを開始"
1251 }
1252 },
1253 "draft-from-past-examples": {
1254 title: "過去の例からドキュメントを作成する",
1255 teaches: "スタイルを説明する代わりに、完成した作業のフォルダを指してください。Claude は既に出荷したものから構成と文体を学ぶため、最初のドラフトは自分が書いたもののように読めます。",
1256 next: "文体をスキルとして保存して、すべてのドラフトがそこから開始されるようにしてください",
1257 prompt: "{folder} にある{examples}を読んで構成と文体を学び、{topic}について新しいものを作成してください",
1258 slots: {
1259 examples: "プライバシー影響評価",
1260 folder: "legal/pia/",
1261 topic: "新しいアナリティクス連携"
1262 }
1263 },
1264 "write-tests-run-them": {
1265 title: "テストを書き、実行し、失敗を修正する",
1266 teaches: "書き込み、実行、修正を一緒に依頼して、Claude が指示を待たずに反復するようにしてください。",
1267 next: "`/init` を実行して、Claude がテストコマンドを自動的に学習するようにしてください",
1268 prompt: "{path} のテストを書いて実行し、失敗があれば修正してください",
1269 slots: {
1270 path: "app/parsers/feed.py"
1271 }
1272 },
1273 "drive-implementation-from-tests": {
1274 title: "テストから実装を駆動する",
1275 teaches: "テスト駆動開発: テストは作業が完了したときを定義し、Claude は合格するまで実装を反復します。",
1276 prompt: "まず{feature}のテストを書き、テストが通るまで実装してください",
1277 slots: {
1278 feature: "パスワードリセットのフロー"
1279 }
1280 },
1281 "fill-gaps-from-a": {
1282 title: "カバレッジレポートからギャップを埋める",
1283 teaches: "何がテストされていないかを推測する代わりに、カバレッジレポートを指してください。Claude は実際の数字を読み、最も必要なファイルのテストを書きます。",
1284 next: "これを `/goal` として設定して、Claude がカバレッジがターゲットに達するまでテストを書き続けるようにしてください",
1285 prompt: "{report} を読み、カバレッジが最も低いファイルにテストを追加して、各ファイルが {target}% を超えるようにしてください",
1286 slots: {
1287 report: "coverage/coverage-summary.json",
1288 target: "80"
1289 }
1290 },
1291 "port-code-between-languages": {
1292 title: "コードを別の言語に移植する",
1293 teaches: "ターゲット言語だけでなく、保持するものを言ってください。保持する必要がある API または動作に名前を付けると、Claude がポートをチェックするための契約が与えられます。",
1294 prompt: "{source}を {target} に移植してください。{keep}は変えないでください",
1295 slots: {
1296 source: "この Python モジュール",
1297 target: "Rust",
1298 keep: "公開 API とテストの挙動"
1299 }
1300 },
1301 "generate-docs-for-code": {
1302 title: "ドキュメント化されていないコードのドキュメントを生成する",
1303 teaches: "スコープと形式に名前を付けてください。Claude は欠けているものを見つけ、ファイルに既にあるコメントスタイルに一致するため、新しいドキュメントは残りのように読めます。",
1304 prompt: "{format} コメントのない {scope}を見つけて、ファイル内で既に使われているスタイルに合わせて追加してください",
1305 slots: {
1306 scope: "src/auth/ 内の公開関数",
1307 format: "JSDoc"
1308 }
1309 },
1310 "migrate-a-pattern-across": {
1311 title: "コードベース全体でパターンを移行する",
1312 teaches: "古いパターンと新しいパターンを説明してください。Claude に最初にすべての場所を識別するよう依頼すると、呼び出しサイトが応答にリストアップされるため、何も見落とされていないことを確認できます。多くのファイルにわたる移行の場合は、[/batch](/docs/ja/commands)を実行してください。Claude は作業を承認用のユニットに分割し、バックグラウンドサブエージェントが変更を加えます。",
1313 prompt: "{from} から{to}へすべて移行してください。変更が必要な箇所をすべて特定してから、変更を加えてください",
1314 slots: {
1315 from: "古いロギング API",
1316 to: "構造化ロガー"
1317 }
1318 },
1319 "optimize-against-a-measurable": {
1320 title: "測定可能なターゲットに対して最適化する",
1321 teaches: "メトリックとターゲットを述べると、Claude に完了の明確な定義が与えられます。",
1322 next: "これを `/goal` として設定して、Claude がターゲットに達するまで測定と反復を続けるようにしてください",
1323 prompt: "{target}を最適化して、{metric}を {current} から {goal} 未満に下げてください",
1324 slots: {
1325 target: "検索クエリ",
1326 metric: "p95 レイテンシ",
1327 current: "2s",
1328 goal: "500ms"
1329 }
1330 },
1331 "fix-a-precise-visual": {
1332 title: "正確なビジュアルバグを修正する",
1333 teaches: "正確なビジュアルフィードバックは正確な修正を得ます。正確な要素、測定、ビューポートを述べてください。",
1334 next: "プレビューツールを追加して、Claude がスクリーンショットを撮り、修正を自分で検証するようにしてください",
1335 prompt: "{viewport}で、{element}が{container}から {amount} はみ出しています。修正してください。",
1336 slots: {
1337 element: "ログインボタン",
1338 amount: "20px",
1339 container: "カードの枠線",
1340 viewport: "モバイル"
1341 }
1342 },
1343 "review-your-changes-before": {
1344 title: "コミットする前に変更をレビューする",
1345 teaches: "修正の手間が少ないうちに問題を見つけてください。Claude は差分の行だけでなく、変更されたファイル全体を読むため、迅速な自己レビューが見落とす問題を見つけます。",
1346 next: "同じチェックを 1 つのコマンドで実行するために `/code-review` を実行してください",
1347 prompt: "コミットしていない変更をレビューして、コミット前に危険そうな箇所があれば指摘してください"
1348 },
1349 "review-a-pull-request": {
1350 title: "プルリクエストをレビューする",
1351 teaches: "Claude は差分だけでなく、コードベース全体のコンテキストでレビューします。変更されたコードとそれが呼び出すものを読むため、差分のみのレビューが見落とす問題をキャッチします。",
1352 next: "`/code-review <pr#>` を実行して 1 つのコマンドでレビューするか、すべての PR に対して Code Review をオンにしてください",
1353 prompt: "PR #{pr} をレビューして変更内容をまとめ、懸念点があれば列挙してください",
1354 slots: {
1355 pr: "247"
1356 }
1357 },
1358 "review-infrastructure-changes-before": {
1359 title: "適用する前にインフラストラクチャの変更をレビューする",
1360 teaches: "プラン出力は密集していてスキャンが難しいです。ペーストすると、適用する前に、実際に何が変わるかの平易な言語の概要が得られます。",
1361 prompt: "これは私の Terraform plan の出力です。これは何を実行しますか?問題を引き起こしそうなものはありますか?"
1362 },
1363 "run-a-security-review": {
1364 title: "サブエージェントでセキュリティレビューを実行する",
1365 teaches: "[サブエージェント](/docs/ja/sub-agents)は独自のコンテキストウィンドウで監査を実行し、概要を報告するため、長いセキュリティレビューがメインセッションを満たしません。組み込みの汎用サブエージェントは追加のセットアップなしでこれを処理します。",
1366 next: "チーム全体が使用できる専用のセキュリティレビューサブエージェントをセットアップしてください",
1367 prompt: "サブエージェントを使って {path} のセキュリティ上の問題をレビューし、見つかったことを報告してください",
1368 slots: {
1369 path: "src/api/"
1370 }
1371 },
1372 "review-content-before-sending": {
1373 title: "正式なレビューの前に問題をキャッチする",
1374 teaches: "人間が時間を費やす前に最初のパスを取得してください。チェックしたい懸念事項に名前を付けて、レビューが焦点を当てるようにしてから、見つけたものを修正して、よりクリーンなドラフトを送信してください。",
1375 next: "レビューチェックリストをスキルとしてキャプチャして、チーム全体が実行できるようにしてください",
1376 prompt: "{file} を{concerns}の観点でレビューし、{reviewer}に回す前に修正すべき点を列挙してください",
1377 slots: {
1378 file: "launch-post.md",
1379 concerns: "根拠のない主張、出典の欠落、ブランドガイドラインの問題",
1380 reviewer: "法務"
1381 }
1382 },
1383 "course-correct-a-wrong": {
1384 title: "間違ったアプローチを修正する",
1385 teaches: "それが間違っているだけでなく、Claude が見落とした制約に名前を付けてください。具体的な理由を伝えると、Claude は再度推測する代わりに、再試行時に満たすべき具体的な制約を得られます。",
1386 next: "`Esc` を 2 回押して巻き戻しメニューを開き、コードと会話を復元して、再試行がクリーンに開始されるようにしてください",
1387 prompt: "それは違います。{feedback}。別のアプローチを試してください",
1388 slots: {
1389 feedback: "関数のシグネチャは後方互換性を保つ必要があります"
1390 }
1391 },
1392 "narrow-the-scope-of": {
1393 title: "変更の範囲を絞る",
1394 teaches: "方向が正しいが変更が広すぎる場合は、Claude にすべてを巻き戻すのではなく、その一部を保持するよう依頼してください。述べられた境界は、小さな修正がリファクタリングになるのを防ぎます。",
1395 prompt: "やりすぎです。{scope}への変更だけを残して、それ以外の編集は元に戻してください",
1396 slots: {
1397 scope: "src/forms/ のバリデーションロジック"
1398 }
1399 },
1400 "turn-a-correction-into": {
1401 title: "修正をルールに変える",
1402 teaches: "チャットでの修正はチームと共有されません。プロジェクトの [CLAUDE.md](/docs/ja/memory)のルールはコミットすると共有され、Claude はすべてのセッションの開始時にそれを読みます。",
1403 next: "`/memory` を開いて、Claude が書いたものをレビューしてください",
1404 prompt: "{mistake}ことが繰り返されています。同じことが起きないように CLAUDE.md にルールを追加してください",
1405 slots: {
1406 mistake: "このプロジェクトは名前付きエクスポートを使っているのに、デフォルトエクスポートを使う"
1407 }
1408 },
1409 "resolve-merge-conflicts": {
1410 title: "マージコンフリクトを解決する",
1411 teaches: "保持するマーカーではなく、望む状態を言ってください。推論を求めると、マージがレビュー可能になり、ブラックボックスではなくなります。",
1412 prompt: "このブランチのマージコンフリクトを解決し、それぞれの側から何を残したかを説明してください"
1413 },
1414 "commit-with-a-generated": {
1415 title: "生成されたメッセージでコミットする",
1416 teaches: "Claude に差分からメッセージを導出させてください。リポジトリの既存のコミットスタイルに一致します。",
1417 prompt: "私が行った内容を要約したメッセージで、これらの変更をコミットしてください"
1418 },
1419 "open-a-pull-request": {
1420 title: "チケットからプルリクエストを開く",
1421 teaches: "トラッカー、エディタ、GitHub 間のコンテキストスイッチをスキップしてください。1 つのプロンプトがスペックを読み、変更を加え、PR を開きます。",
1422 prompt: "{tracker}で{topic}に関するチケットを見つけて、それを実装する PR を作成してください",
1423 slots: {
1424 tracker: "自社のイシュートラッカー",
1425 topic: "ログインのタイムアウト"
1426 }
1427 },
1428 "draft-release-notes-from": {
1429 title: "git 履歴からリリースノートを作成する",
1430 teaches: "2 つの参照ポイントと望む構造を指定してください。Claude はそれらの間のコミットログを読み、編集できるチェンジログを作成します。",
1431 next: "これを `/changelog` スキルとして保存してください",
1432 prompt: "{from} と {to} を比較して、機能追加、修正、破壊的変更ごとにまとめたリリースノートの草案を作成してください",
1433 slots: {
1434 from: "v2.3.0",
1435 to: "v2.4.0"
1436 }
1437 },
1438 "write-a-ci-workflow": {
1439 title: "CI ワークフローを書く",
1440 teaches: "いつ実行すべきか、何をすべきかを説明してください。YAML はプロジェクトのビルドおよびテストコマンドに一致して生成されます。",
1441 prompt: "{branch} へのプッシュごとに{steps} GitHub Actions ワークフローを書いてください",
1442 slots: {
1443 steps: "テストを実行してステージングにデプロイする",
1444 branch: "main"
1445 }
1446 },
1447 "find-and-fix-a": {
1448 title: "失敗したテストを見つけて修正する",
1449 teaches: "症状を説明してください。どのファイルが壊れているかを知る必要はありません。Claude はテストを実行して失敗を確認し、ソースに追跡して修正します。",
1450 prompt: "{test} のテストが失敗しています。原因を調べて修正してください",
1451 slots: {
1452 test: "UserAuth"
1453 }
1454 },
1455 "investigate-a-reported-error": {
1456 title: "報告されたエラーを調査する",
1457 teaches: "症状と場所を説明してください。Claude は関連するコードパスを読み、可能性のある原因を追跡します。スタックトレースまたはログがあればペーストしてください。",
1458 next: "実行ブックに deeplink を入れて、このプロンプトが事前に入力された状態で Claude を開くようにしてください",
1459 prompt: "{where} でユーザーに {symptom}が発生しています。調査して何が起きているか教えてください",
1460 slots: {
1461 symptom: "500 エラー",
1462 where: "/api/settings"
1463 }
1464 },
1465 "fix-a-build-error": {
1466 title: "ビルドエラーを根本から修正する",
1467 teaches: "根本原因と検証を求めると、エラーを修正せずに抑制する表面レベルのパッチが防止されます。",
1468 prompt: "これはビルドエラーです。根本原因を修正し、ビルドが成功することを確認してください"
1469 },
1470 "investigate-a-production-incident": {
1471 title: "本番インシデントを調査する",
1472 teaches: "実行するステップではなく、相関させるエビデンスソースをリストアップしてください。Claude はログ、git 履歴、設定を一緒に読んで、原因を絞り込みます。",
1473 next: "エラートラッカーまたはログストアを MCP 経由で接続してください",
1474 prompt: "{symptom}。ログ、最近のデプロイ、設定の変更を確認して、最も可能性の高い原因を教えてください",
1475 slots: {
1476 symptom: "1 時間前からチェックアウトのエンドポイントが 500 を返すようになりました"
1477 }
1478 },
1479 "query-logs-in-plain": {
1480 title: "平易な言葉でログをクエリする",
1481 teaches: "SQL を書く代わりに、質問を尋ねてください。Claude はクエリを構築し、接続されたログに対して実行し、クエリと結果の両方を表示して、何が実行されたかを確認できるようにします。",
1482 prompt: "{timeframe}の{scope}の{events}をすべて表示してください。クエリを書いて実行し、目立つ点を教えてください",
1483 slots: {
1484 events: "ログイン失敗",
1485 scope: "認証サービス",
1486 timeframe: "過去 24 時間"
1487 }
1488 },
1489 "diagnose-from-a-console": {
1490 title: "コンソールスクリーンショットから診断する",
1491 teaches: "クラウドコンソールは問題を表示しますが、修正するコマンドは表示しません。Claude はスクリーンショットを読み、ダッシュボードを実行する kubectl、gcloud、または aws コマンドに変換します。",
1492 prompt: "これは {console}のスクリーンショットです。{resource}が失敗している理由を順を追って説明し、修正するための正確なコマンドを教えてください",
1493 slots: {
1494 console: "自社の Kubernetes ダッシュボード",
1495 resource: "この Pod"
1496 }
1497 },
1498 "analyze-a-data-file": {
1499 title: "データファイルを分析する",
1500 teaches: "1 回限りの質問は 1 回限りのスクリプトを必要としません。プロジェクトフォルダ内のファイルを指してください。Claude はそれを直接読み、パターンを見つけ、要求した場所に出力を書き込みます。",
1501 next: "ファイルをエクスポートする代わりに、MCP 経由でデータソースを接続してください",
1502 prompt: "{file} を読んで主なパターンを要約し、結果を{output}",
1503 slots: {
1504 file: "@reports/q1-signups.csv",
1505 output: "グラフ入りの HTML ページに書き出して、ブラウザで開いてください"
1506 }
1507 },
1508 "generate-variations-from-performance": {
1509 title: "パフォーマンスデータからバリエーションを生成する",
1510 teaches: "制約を最初に述べて、生成が制限内に留まるようにしてください。Claude はメトリックを読み、置き換えるものを選択し、制限に適合する代替案を生成します。",
1511 next: "ファイルをエクスポートする代わりに、MCP 経由で広告プラットフォームを接続してください",
1512 prompt: "{file} を読んで成果の低い{items}を見つけ、{limit} 文字未満に収まる新しいバリエーションを {n} 個生成してください",
1513 slots: {
1514 file: "@ads-performance.csv",
1515 items: "見出し",
1516 n: "20",
1517 limit: "90"
1518 }
1519 },
1520 "turn-a-recurring-task": {
1521 title: "繰り返しタスクをスキルに変える",
1522 teaches: "ステップに一度名前を付けてください。コマンドとして再利用してください。Claude はチーム内の誰でも実行できる [スキル](/docs/ja/skills)を書きます。",
1523 prompt: "このプロジェクト用に、{steps} /{name} スキルを作成してください",
1524 slots: {
1525 name: "ship",
1526 steps: "リンターとテストを実行してからコミットメッセージの草案を作成する"
1527 }
1528 },
1529 "add-a-hook-for": {
1530 title: "繰り返し動作のためのフックを追加する",
1531 teaches: "フックは、覚えておく必要があるものではなく、動作を自動にします。トリガーとアクションを説明し、Claude が [フック](/docs/ja/hooks)設定を書きます。",
1532 prompt: "{event}たびに {action}フックを書いてください",
1533 slots: {
1534 action: "prettier を実行する",
1535 event: ".ts または .tsx ファイルを編集する"
1536 }
1537 },
1538 "connect-a-tool-with": {
1539 title: "MCP でツールを接続する",
1540 teaches: "毎回のセッションでデータをペーストする代わりに、ソースを一度接続してください。[MCP](/docs/ja/mcp)セットアップ後、Claude はそれについて尋ねるときにツールから直接読みます。",
1541 prompt: "{server}を MCP 経由で接続して、その{data}を直接読めるようにしてください",
1542 slots: {
1543 server: "自社のエラートラッカー",
1544 data: "スタックトレース"
1545 }
1546 },
1547 "capture-what-to-remember": {
1548 title: "次回のために覚えておくべきことをキャプチャする",
1549 teaches: "忘れる前に尋ねてください。Claude はこのセッションで何を理解する必要があったかを知っており、次のセッションがその文脈で開始されるように [CLAUDE.md](/docs/ja/memory)エントリを提案します。",
1550 prompt: "このセッションで行ったことを要約し、CLAUDE.md に追加すべき内容を提案してください"
1551 }
1552};
1553
1554<PromptLibrary text={text} labels={labels} tagLabels={tagLabels} phaseLabels={phaseLabels} sourceLabels={sourceLabels} catLabels={catLabels} />
1555
1556<h2 id="what-makes-these-prompts-work">
1557 これらのプロンプトを機能させるもの
1558</h2>
1559 14
1560上記のプロンプトはいくつかのパターンを共有しています。それらを認識することは、ここで任意のプロンプトを独自のタスクに適応させるのに役立ちます。15上記のプロンプトはいくつかのパターンを共有しています。それらを認識することは、ここで任意のプロンプトを独自のタスクに適応させるのに役立ちます。
1561 16
1597 52
1598各パターンの詳細については、[ベストプラクティス](/docs/ja/best-practices)を参照してください。53各パターンの詳細については、[ベストプラクティス](/docs/ja/best-practices)を参照してください。
1599 54
1600<h2 id="where-these-come-from">55## これらはどこから来ているのか
1601 これらはどこから来ているのか
1602</h2>
1603 56
1604これらのプロンプトは、公開されている Anthropic リソースのパターンに基づいています。各カードはそのソースにリンクしています:57これらのプロンプトは、公開されている Anthropic リソースのパターンに基づいています。各カードはそのソースにリンクしています:
1605 58
1610 63
1611これらのパターンのビデオウォークスルーについては、[Claude Academy](https://academy.claude.com/) の無料 [Claude Code in Action](https://academy.claude.com/courses/claude-code-in-action) コースを参照してください。64これらのパターンのビデオウォークスルーについては、[Claude Academy](https://academy.claude.com/) の無料 [Claude Code in Action](https://academy.claude.com/courses/claude-code-in-action) コースを参照してください。
1612 65
1613<h2 id="related-resources">66## 関連リソース
1614 関連リソース
1615</h2>
1616 67
1617このページのプロンプトは出発点です。1 つがプロジェクトで機能したら、次のステップはそれを繰り返し可能にすることです。[スキル](/docs/ja/skills)として保存して、チーム内の誰でも `/command` として実行でき、Claude が学習したコンベンションを [CLAUDE.md](/docs/ja/memory)に記録して、すべてのセッションがその文脈で開始されるようにしてください。より大きなまたはより危険な変更については、[プランモード](/docs/ja/permission-modes#analyze-before-you-edit-with-plan-mode)は編集が発生する前にファイルリストを表示します。68このページのプロンプトは出発点です。1 つがプロジェクトで機能したら、次のステップはそれを繰り返し可能にすることです。[スキル](/docs/ja/skills)として保存して、チーム内の誰でも `/command` として実行でき、Claude が学習したコンベンションを [CLAUDE.md](/docs/ja/memory)に記録して、すべてのセッションがその文脈で開始されるようにしてください。より大きなまたはより危険な変更については、[プランモード](/docs/ja/permission-modes#analyze-before-you-edit-with-plan-mode)は編集が発生する前にファイルリストを表示します。
1618 69