[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6NT5BCMD5N3PNXAA7WGEDCM":3,"skill-same:01M6NT5BCMD5N3PNXAA7WGEDCM":64},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":16,"categories":17,"keywords":23,"publishedAt":37,"linkOnly":38,"markdownContent":39,"markdownBody":40,"frontMatter":41,"refName":43,"commitSha":44,"skillDirectory":45,"forksCount":46,"repositoryHtmlUrl":47,"repositoryHomepageUrl":6,"ownerHtmlUrl":48,"ownerBlogUrl":6,"ownerDescription":6,"updatedAt":49,"install":50,"resources":63},"01M6NT5BCMD5N3PNXAA7WGEDCM","bencium-code-conventions",null,"Bence's code style, tech stack, and workflow conventions","mattonweb\u002Fai-assistant-foundry","mattonweb","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F2309734?v=4","01M6NQYCY846TKYN2ZCRS71WQ7","Matt Johnson","01M6NQYD2NPAQEFVD8TW9W0SVX",1,"MIT","https:\u002F\u002Fgithub.com\u002Fmattonweb\u002Fai-assistant-foundry\u002Fblob\u002Fmain\u002Fcode-nextjs\u002Fbencium\u002Fbencium-code-conventions\u002FSKILL.md",[18],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000030","开发工程师","PROFESSION","适用职业",[24,25,26,27,28,29,30,31,32,33,34,35,36],"code","conventions","code conventions","bencium code conventions","writing","workflow","code style","projects","stack","up","style","tech","for","2026-11-10 10:12:30",false,"---\nname: bencium-code-conventions\ndescription: Bence's code style, tech stack, and workflow conventions\nwhen_to_use: When writing code or setting up projects for Bence\n---\n\n# Code Conventions\n\n## Core Technologies\n- **Frontend:** ReactJS, Next.js (App Router structure), TypeScript\n- **Styling:** TailwindCSS v3.x (never v4), Shadcn UI\n- **Build Tools:** Vite (when applicable)\n- **Backend:** Postgres compatible convex.dev or Supabase (always ask, never local postgres)\n- **Deployment:** Netlify or Vercel or Fly - suggest\n- **Environment:** Mac M2, Python3 with virtual environments, no CUDA, no Docker\n- **Alternative Languages:** Avoid python if you can, try using RUST\n\n## Code Style & Structure\n- Use ES modules (import\u002Fexport) syntax\n- Destructure imports when possible\n- Use TypeScript for all new code\n- Use async\u002Fawait instead of Promise chains\n- Prefer const\u002Flet over var; use early returns\n- Use consts instead of functions: `const toggle = () =>`. Define types.\n- Use descriptive variable names with auxiliary verbs (e.g., `isLoading`, `hasError`)\n- Use lowercase with dashes for directory names (e.g., `components\u002Fauth-wizard`)\n\n## Framework Conventions\n- **Next.js:** Use App Router (app directory) structure and page.tsx files\n- **React:** Functional and declarative patterns; avoid classes\n- **State Management:** Zustand, TanStack React Query\n- **Validation:** Zod for schema validation\n\n## Component Library & Styling\n- **Component Library:** Prefer shadcn components from `@\u002Fcomponents\u002Fui`\n- **Styling:** Tailwind utility classes\n- **Layout:** Grid\u002Fflex wrappers with `gap` for spacing\n- **Icons:** `@phosphor-icons\u002Freact`\n- **Toasts:** `sonner` for notifications\n- Always add loading states, spinners, placeholder animations\n\n## Quality Assurance & Testing\n- **TDD:** Write failing tests first, commit them, then iterate until suite passes\n- Never mock tests - if there's a test script, execute all until done\n- Always write SQL in chunks with test steps after each chunk\n- Typecheck after making code changes\n- Run tests before committing\n- Prefer running single tests for performance, not whole suite\n\n## Error Handling\n- Implement proper error handling and user input validation\n- Error messages should be understood by non-technical people\n- Use early returns for error conditions\n- Test APIs via curl commands first, then implement in code\n\n## Performance & Architecture\n- Minimize `'use client'`, `useEffect`, `setState`; favor RSC and Next.js SSR\n- Implement dynamic imports for code splitting\n- Optimize images: WebP format, size data, lazy loading\n- Favor small, simple, well-named modules\n\n## Development Workflow\n**Process:** Explore → Plan → Code → Commit\n- Read relevant files\n- Think through a plan\n- Implement\n- Then commit\n- Never local backend, always ask (usually Supabase, Neon)\n- Minimal dependency, no docker\n\n## Environment & Deployment\n- Add .env files for API keys; warn me to save keys in Vercel\u002FNetlify env variables\n- Write code deployable to Netlify or Vercel; prepare to build locally first\n- Document progress in progress.md; ask for implementation plan\n","# Code Conventions\n\n## Core Technologies\n- **Frontend:** ReactJS, Next.js (App Router structure), TypeScript\n- **Styling:** TailwindCSS v3.x (never v4), Shadcn UI\n- **Build Tools:** Vite (when applicable)\n- **Backend:** Postgres compatible convex.dev or Supabase (always ask, never local postgres)\n- **Deployment:** Netlify or Vercel or Fly - suggest\n- **Environment:** Mac M2, Python3 with virtual environments, no CUDA, no Docker\n- **Alternative Languages:** Avoid python if you can, try using RUST\n\n## Code Style & Structure\n- Use ES modules (import\u002Fexport) syntax\n- Destructure imports when possible\n- Use TypeScript for all new code\n- Use async\u002Fawait instead of Promise chains\n- Prefer const\u002Flet over var; use early returns\n- Use consts instead of functions: `const toggle = () =>`. Define types.\n- Use descriptive variable names with auxiliary verbs (e.g., `isLoading`, `hasError`)\n- Use lowercase with dashes for directory names (e.g., `components\u002Fauth-wizard`)\n\n## Framework Conventions\n- **Next.js:** Use App Router (app directory) structure and page.tsx files\n- **React:** Functional and declarative patterns; avoid classes\n- **State Management:** Zustand, TanStack React Query\n- **Validation:** Zod for schema validation\n\n## Component Library & Styling\n- **Component Library:** Prefer shadcn components from `@\u002Fcomponents\u002Fui`\n- **Styling:** Tailwind utility classes\n- **Layout:** Grid\u002Fflex wrappers with `gap` for spacing\n- **Icons:** `@phosphor-icons\u002Freact`\n- **Toasts:** `sonner` for notifications\n- Always add loading states, spinners, placeholder animations\n\n## Quality Assurance & Testing\n- **TDD:** Write failing tests first, commit them, then iterate until suite passes\n- Never mock tests - if there's a test script, execute all until done\n- Always write SQL in chunks with test steps after each chunk\n- Typecheck after making code changes\n- Run tests before committing\n- Prefer running single tests for performance, not whole suite\n\n## Error Handling\n- Implement proper error handling and user input validation\n- Error messages should be understood by non-technical people\n- Use early returns for error conditions\n- Test APIs via curl commands first, then implement in code\n\n## Performance & Architecture\n- Minimize `'use client'`, `useEffect`, `setState`; favor RSC and Next.js SSR\n- Implement dynamic imports for code splitting\n- Optimize images: WebP format, size data, lazy loading\n- Favor small, simple, well-named modules\n\n## Development Workflow\n**Process:** Explore → Plan → Code → Commit\n- Read relevant files\n- Think through a plan\n- Implement\n- Then commit\n- Never local backend, always ask (usually Supabase, Neon)\n- Minimal dependency, no docker\n\n## Environment & Deployment\n- Add .env files for API keys; warn me to save keys in Vercel\u002FNetlify env variables\n- Write code deployable to Netlify or Vercel; prepare to build locally first\n- Document progress in progress.md; ask for implementation plan\n",{"name":5,"description":7,"when_to_use":42},"When writing code or setting up projects for Bence","main","d8518247cb8ab8b2dac57a6be33543ffd23b97c5","code-nextjs\u002Fbencium\u002Fbencium-code-conventions",0,"https:\u002F\u002Fgithub.com\u002Fmattonweb\u002Fai-assistant-foundry","https:\u002F\u002Fgithub.com\u002Fmattonweb","2026-05-29 08:42:23",{"source":8,"skillName":5,"commands":51,"prompt":61,"zipAvailable":62},[52,55,58],{"tool":53,"command":54},"npx","npx skills add mattonweb\u002Fai-assistant-foundry --skill bencium-code-conventions",{"tool":56,"command":57},"bunx","bunx skills add mattonweb\u002Fai-assistant-foundry --skill bencium-code-conventions",{"tool":59,"command":60},"pnpm","pnpm dlx skills add mattonweb\u002Fai-assistant-foundry --skill bencium-code-conventions","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fmattonweb\u002Fai-assistant-foundry\u002Fblob\u002Fmain\u002Fcode-nextjs\u002Fbencium\u002Fbencium-code-conventions\u002FSKILL.md",true,[],[65,98,112,132,153,178],{"skillNo":66,"name":67,"nameZh":6,"description":68,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":69,"categories":70,"keywords":79,"publishedAt":37},"01M6P02DENRHN6KVGYC55FKASJ","writing-clearly-and-concisely","Use when writing prose humans will read—documentation, commit messages, error messages, explanations, reports, or UI text. Applies Strunk's timeless rules for clearer, stronger, more professional writing.","https:\u002F\u002Fgithub.com\u002Fmattonweb\u002Fai-assistant-foundry\u002Fblob\u002Fmain\u002Fwrite-technical\u002Fsoftaworks\u002Fwriting-clearly-and-concisely\u002FSKILL.md",[71,76],{"categoryNo":72,"categoryName":73,"taxonomyType":74,"taxonomyTypeDesc":75},"01JBSEEDCAT000000000000018","写作与文案","SCENARIO","使用场景",{"categoryNo":77,"categoryName":78,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000036","内容创作者",[80,28,81,82,36,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97],"writing clearly and concisely","concisely","text","more","timeless","error","professional","prose","reports","use","read","Rules","commit messages","messages","error messages","ui","documentation","commit",{"skillNo":99,"name":100,"nameZh":6,"description":101,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":102,"categories":103,"keywords":104,"publishedAt":37},"01M6P0286HZ8RWMFCCPC8HF7SC","crafting-effective-readmes","Use when writing or improving README files. Not all READMEs are the same — provides templates and guidance matched to your audience and project type.","https:\u002F\u002Fgithub.com\u002Fmattonweb\u002Fai-assistant-foundry\u002Fblob\u002Fmain\u002Fwrite-technical\u002Fsoftaworks\u002Fcrafting-effective-readmes\u002FSKILL.md",[],[105,106,28,107,108,89,109,110,111],"crafting effective readmes","README","templates","type","project","guidance","files",{"skillNo":113,"name":114,"nameZh":6,"description":115,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":116,"categories":117,"keywords":121,"publishedAt":37},"01M6P025A41BBTPWVTZ3GFQVG6","wiki-architect","You are a documentation architect that produces structured wiki catalogues and onboarding guides from codebases.","https:\u002F\u002Fgithub.com\u002Fmattonweb\u002Fai-assistant-foundry\u002Fblob\u002Fmain\u002Fwrite-technical\u002Fsickn33\u002Fwiki-architect\u002FSKILL.md",[118],{"categoryNo":119,"categoryName":120,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000038","人力资源",[122,123,124,125,126,127,128,129,130,131,96],"wiki","architect","wiki architect","unknown","you","documentation architect","guides","structured","community","onboarding",{"skillNo":133,"name":134,"nameZh":6,"description":135,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":136,"categories":137,"keywords":138,"publishedAt":37},"01M6P01NSKPXP77NWB4K0PXRK5","readme","You are an expert technical writer creating comprehensive project documentation. Your goal is to write a README.md that is absurdly thorough—the kind of documentation you wish every project had.","https:\u002F\u002Fgithub.com\u002Fmattonweb\u002Fai-assistant-foundry\u002Fblob\u002Fmain\u002Fwrite-technical\u002Fsickn33\u002Freadme\u002FSKILL.md",[],[106,139,140,141,126,142,143,109,144,145,43,146,147,148,149,150,96,151,152],"project documentation","tree","kind","expert","github","wish","writer","goal","write","technical writer","technical","https","write a readme","safe",{"skillNo":154,"name":155,"nameZh":6,"description":156,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":157,"categories":158,"keywords":159,"publishedAt":37},"01M6P01GP0NEN8KT3A3SA6ZFVE","ubiquitous-language","Extract a DDD-style ubiquitous language glossary from the current conversation, flagging ambiguities and proposing canonical terms. Saves to UBIQUITOUS_LANGUAGE.md. Use when user wants to define domain terms, build a glossary, harden terminology, create a ubiquitous language, or mentions \"domain model\" or \"DDD\".","https:\u002F\u002Fgithub.com\u002Fmattonweb\u002Fai-assistant-foundry\u002Fblob\u002Fmain\u002Fwrite-technical\u002Fmattpocock\u002Fubiquitous-language\u002FSKILL.md",[],[160,161,89,162,163,164,165,166,167,168,169,170,171,34,172,173,174,175,176,177],"ubiquitous language","language","extract","user","glossary","model","terms","ddd","create","build","true","canonical","define","harden","domain model","domain","terminology","conversation",{"skillNo":179,"name":180,"nameZh":6,"description":181,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":182,"categories":183,"keywords":186,"publishedAt":37},"01M6P01BJBP9XP4TDRT7QD1ZVA","technical-writing-style","Enforce clear, direct writing in software development documents including OKRs, PRDs, tech specs, architecture decision records (ADRs), git commit messages, PR descriptions, READMEs, changelogs, runbooks, incident postmortems, API docs, and onboarding guides. Trigger whenever a user asks to write, edit, revise, or review any of these document types. Also trigger when the user says writing \"sounds like AI\", \"feels robotic\", \"needs polish\", or asks to \"make it sound more natural\" in the context of technical or professional prose. Do not trigger for fiction, poetry, creative writing, academic papers, or legal documents unless the user explicitly asks for a more natural tone.","https:\u002F\u002Fgithub.com\u002Fmattonweb\u002Fai-assistant-foundry\u002Fblob\u002Fmain\u002Fwrite-technical\u002Fmattnebr\u002Ftechnical-writing-style\u002FSKILL.md",[184,185],{"categoryNo":72,"categoryName":73,"taxonomyType":74,"taxonomyTypeDesc":75},{"categoryNo":77,"categoryName":78,"taxonomyType":21,"taxonomyTypeDesc":22},[187,188,34,149,28,189,86,190,191,192,193,194,195,196,197,93,198,199,97,200],"writing style","technical writing style","technical writing","papers","types","runbooks","software development","incident","Poetry","decision","api","documents","architecture","review"]