[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6DR642FPHXSBDBX9PTPZEK1":3,"skill-same:01M6DR642FPHXSBDBX9PTPZEK1":112},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":15,"categories":16,"keywords":36,"publishedAt":57,"linkOnly":58,"markdownContent":59,"markdownBody":60,"frontMatter":61,"refName":69,"commitSha":70,"skillDirectory":71,"forksCount":72,"repositoryHtmlUrl":73,"repositoryHomepageUrl":6,"ownerHtmlUrl":74,"ownerBlogUrl":6,"ownerDescription":6,"updatedAt":75,"install":76,"resources":89},"01M6DR642FPHXSBDBX9PTPZEK1","nextjs-developer",null,"Use when building Next.js 14+ applications with App Router, server components, or server actions. Invoke to configure route handlers, implement middleware, set up API routes, add streaming SSR, write generateMetadata for SEO, scaffold loading.tsx\u002Ferror.tsx boundaries, or deploy to Vercel. Triggers on: Next.js, Next.js 14, App Router, RSC, use server, Server Components, Server Actions, React Server Components, generateMetadata, loading.tsx, Next.js deployment, Vercel, Next.js performance.","AntifragileTech\u002Fantifragile-claude-code","AntifragileTech","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F174357194?v=4","01M6DQCYMK4CDSQQAN0ZC72NTV","01M6DQCYS9YPW1WKMQ5TJMPQ43",9,"MIT","https:\u002F\u002Fgithub.com\u002FAntifragileTech\u002Fantifragile-claude-code\u002Fblob\u002Fmaster\u002Fassets\u002Fskills\u002Fdev\u002Fnextjs-developer\u002FSKILL.md",[17,22,25,28,33],{"categoryNo":18,"categoryName":19,"taxonomyType":20,"taxonomyTypeDesc":21},"01JBSEEDCAT000000000000009","前端开发","SCENARIO","使用场景",{"categoryNo":23,"categoryName":24,"taxonomyType":20,"taxonomyTypeDesc":21},"01JBSEEDCAT000000000000010","后端与接口",{"categoryNo":26,"categoryName":27,"taxonomyType":20,"taxonomyTypeDesc":21},"01JBSEEDCAT000000000000019","营销推广",{"categoryNo":29,"categoryName":30,"taxonomyType":31,"taxonomyTypeDesc":32},"01JBSEEDCAT000000000000030","开发工程师","PROFESSION","适用职业",{"categoryNo":34,"categoryName":35,"taxonomyType":31,"taxonomyTypeDesc":32},"01JBSEEDCAT000000000000035","市场营销",[37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56],"nextjs developer","developer","nextjs","SET","app","route","deploy to vercel","tsx","up","router","configure","api","frontend","actions","server","streaming","code","react","components","performance","2026-11-10 10:12:30",false,"---\nname: nextjs-developer\ndescription: \"Use when building Next.js 14+ applications with App Router, server components, or server actions. Invoke to configure route handlers, implement middleware, set up API routes, add streaming SSR, write generateMetadata for SEO, scaffold loading.tsx\u002Ferror.tsx boundaries, or deploy to Vercel. Triggers on: Next.js, Next.js 14, App Router, RSC, use server, Server Components, Server Actions, React Server Components, generateMetadata, loading.tsx, Next.js deployment, Vercel, Next.js performance.\"\nlicense: MIT\nmetadata:\n  author: https:\u002F\u002Fgithub.com\u002FJeffallan\n  version: \"1.1.0\"\n  domain: frontend\n  triggers: Next.js, Next.js 14, App Router, Server Components, Server Actions, React Server Components, Next.js deployment, Vercel, Next.js performance\n  role: specialist\n  scope: implementation\n  output-format: code\n  related-skills: typescript-pro\n---\n\n# Next.js Developer\n\nSenior Next.js developer with expertise in Next.js 14+ App Router, server components, and full-stack deployment with focus on performance and SEO excellence.\n\n## Core Workflow\n\n1. **Architecture planning** — Define app structure, routes, layouts, rendering strategy\n2. **Implement routing** — Create App Router structure with layouts, templates, loading\u002Ferror states\n3. **Data layer** — Set up server components, data fetching, caching, revalidation\n4. **Optimize** — Images, fonts, bundles, streaming, edge runtime\n5. **Deploy** — Production build, environment setup, monitoring\n   - Validate: run `next build` locally, confirm zero type errors, check `NEXT_PUBLIC_*` and server-only env vars are set, run Lighthouse\u002FPageSpeed to confirm Core Web Vitals > 90\n\n## Reference Guide\n\nLoad detailed guidance based on context:\n\n| Topic | Reference | Load When |\n|-------|-----------|-----------|\n| App Router | `references\u002Fapp-router.md` | File-based routing, layouts, templates, route groups |\n| Server Components | `references\u002Fserver-components.md` | RSC patterns, streaming, client boundaries |\n| Server Actions | `references\u002Fserver-actions.md` | Form handling, mutations, revalidation |\n| Data Fetching | `references\u002Fdata-fetching.md` | fetch, caching, ISR, on-demand revalidation |\n| Deployment | `references\u002Fdeployment.md` | Vercel, self-hosting, Docker, optimization |\n\n## Constraints\n\n### MUST DO (Next.js-specific)\n- Use App Router (`app\u002F` directory), never Pages Router (`pages\u002F`)\n- Keep components as Server Components by default; add `'use client'` only at the leaf boundary where interactivity is required\n- Use native `fetch` with explicit `cache` \u002F `next.revalidate` options — do not rely on implicit caching\n- Use `generateMetadata` (or the static `metadata` export) for all SEO — never hardcode `\u003Ctitle>` or `\u003Cmeta>` tags in JSX\n- Optimize every image with `next\u002Fimage`; never use a plain `\u003Cimg>` tag for content images\n- Add `loading.tsx` and `error.tsx` at every route segment that performs async data fetching\n\n### MUST NOT DO\n- Convert components to Client Components just to access data — fetch server-side first\n- Skip `loading.tsx`\u002F`error.tsx` boundaries on async route segments\n- Deploy without running `next build` to confirm zero errors\n\n## Code Examples\n\n### Server Component with data fetching and caching\n```tsx\n\u002F\u002F app\u002Fproducts\u002Fpage.tsx\nimport { Suspense } from 'react'\n\nasync function ProductList() {\n  \u002F\u002F Revalidate every 60 seconds (ISR)\n  const res = await fetch('https:\u002F\u002Fapi.example.com\u002Fproducts', {\n    next: { revalidate: 60 },\n  })\n  if (!res.ok) throw new Error('Failed to fetch products')\n  const products: Product[] = await res.json()\n\n  return (\n    \u003Cul>\n      {products.map((p) => (\n        \u003Cli key={p.id}>{p.name}\u003C\u002Fli>\n      ))}\n    \u003C\u002Ful>\n  )\n}\n\nexport default function Page() {\n  return (\n    \u003CSuspense fallback={\u003Cp>Loading…\u003C\u002Fp>}>\n      \u003CProductList \u002F>\n    \u003C\u002FSuspense>\n  )\n}\n```\n\n### Server Action with form handling and revalidation\n```tsx\n\u002F\u002F app\u002Fproducts\u002Factions.ts\n'use server'\n\nimport { revalidatePath } from 'next\u002Fcache'\n\nexport async function createProduct(formData: FormData) {\n  const name = formData.get('name') as string\n  await db.product.create({ data: { name } })\n  revalidatePath('\u002Fproducts')\n}\n\n\u002F\u002F app\u002Fproducts\u002Fnew\u002Fpage.tsx\nimport { createProduct } from '..\u002Factions'\n\nexport default function NewProductPage() {\n  return (\n    \u003Cform action={createProduct}>\n      \u003Cinput name=\"name\" placeholder=\"Product name\" required \u002F>\n      \u003Cbutton type=\"submit\">Create\u003C\u002Fbutton>\n    \u003C\u002Fform>\n  )\n}\n```\n\n### generateMetadata for dynamic SEO\n```tsx\n\u002F\u002F app\u002Fproducts\u002F[id]\u002Fpage.tsx\nimport type { Metadata } from 'next'\n\nexport async function generateMetadata(\n  { params }: { params: { id: string } }\n): Promise\u003CMetadata> {\n  const product = await fetchProduct(params.id)\n  return {\n    title: product.name,\n    description: product.description,\n    openGraph: { title: product.name, images: [product.imageUrl] },\n  }\n}\n```\n\n## Output Templates\n\nWhen implementing Next.js features, provide:\n1. App structure (route organization)\n2. Layout\u002Fpage components with proper data fetching\n3. Server actions if mutations needed\n4. Configuration (`next.config.js`, TypeScript)\n5. Brief explanation of rendering strategy chosen\n\n## Knowledge Reference\n\nNext.js 14+, App Router, React Server Components, Server Actions, Streaming SSR, Partial Prerendering, next\u002Fimage, next\u002Ffont, Metadata API, Route Handlers, Middleware, Edge Runtime, Turbopack, Vercel deployment\n","# Next.js Developer\n\nSenior Next.js developer with expertise in Next.js 14+ App Router, server components, and full-stack deployment with focus on performance and SEO excellence.\n\n## Core Workflow\n\n1. **Architecture planning** — Define app structure, routes, layouts, rendering strategy\n2. **Implement routing** — Create App Router structure with layouts, templates, loading\u002Ferror states\n3. **Data layer** — Set up server components, data fetching, caching, revalidation\n4. **Optimize** — Images, fonts, bundles, streaming, edge runtime\n5. **Deploy** — Production build, environment setup, monitoring\n   - Validate: run `next build` locally, confirm zero type errors, check `NEXT_PUBLIC_*` and server-only env vars are set, run Lighthouse\u002FPageSpeed to confirm Core Web Vitals > 90\n\n## Reference Guide\n\nLoad detailed guidance based on context:\n\n| Topic | Reference | Load When |\n|-------|-----------|-----------|\n| App Router | `references\u002Fapp-router.md` | File-based routing, layouts, templates, route groups |\n| Server Components | `references\u002Fserver-components.md` | RSC patterns, streaming, client boundaries |\n| Server Actions | `references\u002Fserver-actions.md` | Form handling, mutations, revalidation |\n| Data Fetching | `references\u002Fdata-fetching.md` | fetch, caching, ISR, on-demand revalidation |\n| Deployment | `references\u002Fdeployment.md` | Vercel, self-hosting, Docker, optimization |\n\n## Constraints\n\n### MUST DO (Next.js-specific)\n- Use App Router (`app\u002F` directory), never Pages Router (`pages\u002F`)\n- Keep components as Server Components by default; add `'use client'` only at the leaf boundary where interactivity is required\n- Use native `fetch` with explicit `cache` \u002F `next.revalidate` options — do not rely on implicit caching\n- Use `generateMetadata` (or the static `metadata` export) for all SEO — never hardcode `\u003Ctitle>` or `\u003Cmeta>` tags in JSX\n- Optimize every image with `next\u002Fimage`; never use a plain `\u003Cimg>` tag for content images\n- Add `loading.tsx` and `error.tsx` at every route segment that performs async data fetching\n\n### MUST NOT DO\n- Convert components to Client Components just to access data — fetch server-side first\n- Skip `loading.tsx`\u002F`error.tsx` boundaries on async route segments\n- Deploy without running `next build` to confirm zero errors\n\n## Code Examples\n\n### Server Component with data fetching and caching\n```tsx\n\u002F\u002F app\u002Fproducts\u002Fpage.tsx\nimport { Suspense } from 'react'\n\nasync function ProductList() {\n  \u002F\u002F Revalidate every 60 seconds (ISR)\n  const res = await fetch('https:\u002F\u002Fapi.example.com\u002Fproducts', {\n    next: { revalidate: 60 },\n  })\n  if (!res.ok) throw new Error('Failed to fetch products')\n  const products: Product[] = await res.json()\n\n  return (\n    \u003Cul>\n      {products.map((p) => (\n        \u003Cli key={p.id}>{p.name}\u003C\u002Fli>\n      ))}\n    \u003C\u002Ful>\n  )\n}\n\nexport default function Page() {\n  return (\n    \u003CSuspense fallback={\u003Cp>Loading…\u003C\u002Fp>}>\n      \u003CProductList \u002F>\n    \u003C\u002FSuspense>\n  )\n}\n```\n\n### Server Action with form handling and revalidation\n```tsx\n\u002F\u002F app\u002Fproducts\u002Factions.ts\n'use server'\n\nimport { revalidatePath } from 'next\u002Fcache'\n\nexport async function createProduct(formData: FormData) {\n  const name = formData.get('name') as string\n  await db.product.create({ data: { name } })\n  revalidatePath('\u002Fproducts')\n}\n\n\u002F\u002F app\u002Fproducts\u002Fnew\u002Fpage.tsx\nimport { createProduct } from '..\u002Factions'\n\nexport default function NewProductPage() {\n  return (\n    \u003Cform action={createProduct}>\n      \u003Cinput name=\"name\" placeholder=\"Product name\" required \u002F>\n      \u003Cbutton type=\"submit\">Create\u003C\u002Fbutton>\n    \u003C\u002Fform>\n  )\n}\n```\n\n### generateMetadata for dynamic SEO\n```tsx\n\u002F\u002F app\u002Fproducts\u002F[id]\u002Fpage.tsx\nimport type { Metadata } from 'next'\n\nexport async function generateMetadata(\n  { params }: { params: { id: string } }\n): Promise\u003CMetadata> {\n  const product = await fetchProduct(params.id)\n  return {\n    title: product.name,\n    description: product.description,\n    openGraph: { title: product.name, images: [product.imageUrl] },\n  }\n}\n```\n\n## Output Templates\n\nWhen implementing Next.js features, provide:\n1. App structure (route organization)\n2. Layout\u002Fpage components with proper data fetching\n3. Server actions if mutations needed\n4. Configuration (`next.config.js`, TypeScript)\n5. Brief explanation of rendering strategy chosen\n\n## Knowledge Reference\n\nNext.js 14+, App Router, React Server Components, Server Actions, Streaming SSR, Partial Prerendering, next\u002Fimage, next\u002Ffont, Metadata API, Route Handlers, Middleware, Edge Runtime, Turbopack, Vercel deployment\n",{"name":5,"license":14,"metadata":62,"description":7},{"role":63,"scope":64,"author":65,"domain":49,"version":66,"triggers":67,"output-format":53,"related-skills":68},"specialist","implementation","https:\u002F\u002Fgithub.com\u002FJeffallan","1.1.0","Next.js, Next.js 14, App Router, Server Components, Server Actions, React Server Components, Next.js deployment, Vercel, Next.js performance","typescript-pro","master","c73386b305dec167db7654e0e6feacb462d4f9dc","assets\u002Fskills\u002Fdev\u002Fnextjs-developer",1,"https:\u002F\u002Fgithub.com\u002FAntifragileTech\u002Fantifragile-claude-code","https:\u002F\u002Fgithub.com\u002FAntifragileTech","2026-10-02 14:22:14",{"source":8,"skillName":5,"commands":77,"prompt":87,"zipAvailable":88},[78,81,84],{"tool":79,"command":80},"npx","npx skills add AntifragileTech\u002Fantifragile-claude-code --skill nextjs-developer",{"tool":82,"command":83},"bunx","bunx skills add AntifragileTech\u002Fantifragile-claude-code --skill nextjs-developer",{"tool":85,"command":86},"pnpm","pnpm dlx skills add AntifragileTech\u002Fantifragile-claude-code --skill nextjs-developer","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002FAntifragileTech\u002Fantifragile-claude-code\u002Fblob\u002Fmaster\u002Fassets\u002Fskills\u002Fdev\u002Fnextjs-developer\u002FSKILL.md",true,[90,96,100,104,108],{"path":91,"resourceType":92,"resourceTypeDesc":93,"sizeBytes":94,"sourceHtmlUrl":95},"references\u002Fapp-router.md","REFERENCE","参考文档",6862,"https:\u002F\u002Fgithub.com\u002FAntifragileTech\u002Fantifragile-claude-code\u002Fblob\u002Fmaster\u002Fassets\u002Fskills\u002Fdev\u002Fnextjs-developer\u002Freferences\u002Fapp-router.md",{"path":97,"resourceType":92,"resourceTypeDesc":93,"sizeBytes":98,"sourceHtmlUrl":99},"references\u002Fdata-fetching.md",10389,"https:\u002F\u002Fgithub.com\u002FAntifragileTech\u002Fantifragile-claude-code\u002Fblob\u002Fmaster\u002Fassets\u002Fskills\u002Fdev\u002Fnextjs-developer\u002Freferences\u002Fdata-fetching.md",{"path":101,"resourceType":92,"resourceTypeDesc":93,"sizeBytes":102,"sourceHtmlUrl":103},"references\u002Fdeployment.md",10647,"https:\u002F\u002Fgithub.com\u002FAntifragileTech\u002Fantifragile-claude-code\u002Fblob\u002Fmaster\u002Fassets\u002Fskills\u002Fdev\u002Fnextjs-developer\u002Freferences\u002Fdeployment.md",{"path":105,"resourceType":92,"resourceTypeDesc":93,"sizeBytes":106,"sourceHtmlUrl":107},"references\u002Fserver-actions.md",9658,"https:\u002F\u002Fgithub.com\u002FAntifragileTech\u002Fantifragile-claude-code\u002Fblob\u002Fmaster\u002Fassets\u002Fskills\u002Fdev\u002Fnextjs-developer\u002Freferences\u002Fserver-actions.md",{"path":109,"resourceType":92,"resourceTypeDesc":93,"sizeBytes":110,"sourceHtmlUrl":111},"references\u002Fserver-components.md",8273,"https:\u002F\u002Fgithub.com\u002FAntifragileTech\u002Fantifragile-claude-code\u002Fblob\u002Fmaster\u002Fassets\u002Fskills\u002Fdev\u002Fnextjs-developer\u002Freferences\u002Fserver-components.md",[113,135,149,164,177,190],{"skillNo":114,"name":115,"nameZh":6,"description":116,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":117,"categories":118,"keywords":128,"publishedAt":57},"01M6DT9Q6VYA615SCXR757TZZ7","writing-skills","Use when creating new skills, editing existing skills, or verifying skills work before deployment","https:\u002F\u002Fgithub.com\u002FAntifragileTech\u002Fantifragile-claude-code\u002Fblob\u002Fmaster\u002Fassets\u002Fskills\u002Fthinking\u002Fwriting-skills\u002FSKILL.md",[119,122,125],{"categoryNo":120,"categoryName":121,"taxonomyType":20,"taxonomyTypeDesc":21},"01JBSEEDCAT000000000000008","测试与质量",{"categoryNo":123,"categoryName":124,"taxonomyType":20,"taxonomyTypeDesc":21},"01JBSEEDCAT000000000000018","写作与文案",{"categoryNo":126,"categoryName":127,"taxonomyType":31,"taxonomyTypeDesc":32},"01JBSEEDCAT000000000000036","内容创作者",[129,130,131,132,133,134],"writing skills","writing","use","editing","work","deployment",{"skillNo":136,"name":137,"nameZh":6,"description":138,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":139,"categories":140,"keywords":143,"publishedAt":57},"01M6DT9GFHDNY90P41WGAE1TV0","writing-plans","Use when you have a spec or requirements for a multi-step task, before touching code","https:\u002F\u002Fgithub.com\u002FAntifragileTech\u002Fantifragile-claude-code\u002Fblob\u002Fmaster\u002Fassets\u002Fskills\u002Fthinking\u002Fwriting-plans\u002FSKILL.md",[141,142],{"categoryNo":123,"categoryName":124,"taxonomyType":20,"taxonomyTypeDesc":21},{"categoryNo":126,"categoryName":127,"taxonomyType":31,"taxonomyTypeDesc":32},[144,145,130,146,147,131,53,148],"plans","writing plans","requirements","task","spec",{"skillNo":150,"name":151,"nameZh":6,"description":152,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":153,"categories":154,"keywords":157,"publishedAt":57},"01M6DT9C6PFGD86WS3HY7YE3XG","docs:write-concisely","Apply writing rules to any documentation that humans will read. Makes your writing clearer, stronger, and more professional.","https:\u002F\u002Fgithub.com\u002FAntifragileTech\u002Fantifragile-claude-code\u002Fblob\u002Fmaster\u002Fassets\u002Fskills\u002Fthinking\u002Fwrite-concisely\u002FSKILL.md",[155,156],{"categoryNo":123,"categoryName":124,"taxonomyType":20,"taxonomyTypeDesc":21},{"categoryNo":126,"categoryName":127,"taxonomyType":31,"taxonomyTypeDesc":32},[158,159,160,161,162,163,130],"docs:write concisely","write","docs","read","Rules","documentation",{"skillNo":165,"name":166,"nameZh":6,"description":167,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":168,"categories":169,"keywords":170,"publishedAt":57},"01M6DT98AWQ27P0N1CG97WAG66","kaizen:why","Iterative Five Whys root cause analysis drilling from symptoms to fundamentals","https:\u002F\u002Fgithub.com\u002FAntifragileTech\u002Fantifragile-claude-code\u002Fblob\u002Fmaster\u002Fassets\u002Fskills\u002Fthinking\u002Fwhy\u002FSKILL.md",[],[166,171,172,173,174,175,176],"why","kaizen","issue","five whys","analysis","root cause analysis",{"skillNo":178,"name":179,"nameZh":6,"description":180,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":181,"categories":182,"keywords":183,"publishedAt":57},"01M6DT93EH25NAX19R3WGE1P53","verification-loop","A comprehensive verification system for Claude Code sessions.","https:\u002F\u002Fgithub.com\u002FAntifragileTech\u002Fantifragile-claude-code\u002Fblob\u002Fmaster\u002Fassets\u002Fskills\u002Fthinking\u002Fverification-loop\u002FSKILL.md",[],[184,185,186,187,53,188,189],"verification loop","verification","loop","sessions","claude code sessions","system",{"skillNo":191,"name":192,"nameZh":6,"description":193,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":194,"categories":195,"keywords":196,"publishedAt":57},"01M6DT90GW7Z7VCN98P9DVYSNC","verification-before-completion","Use when about to claim work is complete, fixed, or passing, before committing or creating PRs - requires running verification commands and confirming output before making any success claims; evidence before assertions always","https:\u002F\u002Fgithub.com\u002FAntifragileTech\u002Fantifragile-claude-code\u002Fblob\u002Fmaster\u002Fassets\u002Fskills\u002Fthinking\u002Fverification-before-completion\u002FSKILL.md",[],[197,185,198,133,131,199,200,201],"verification before completion","commands","evidence","claim","complete"]