<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Ashadul Mridha</title>
    <description>The latest articles on DEV Community by Ashadul Mridha (@ashadulmridha).</description>
    <link>https://dev.to/ashadulmridha</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F874109%2Fc3c45883-a6e0-4db9-aeed-6094af9b3598.png</url>
      <title>DEV Community: Ashadul Mridha</title>
      <link>https://dev.to/ashadulmridha</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/ashadulmridha"/>
    <language>en</language>
    <item>
      <title>Claude Code: সম্পূর্ণ বাংলা গাইড</title>
      <dc:creator>Ashadul Mridha</dc:creator>
      <pubDate>Fri, 16 Jan 2026 18:13:43 +0000</pubDate>
      <link>https://dev.to/ashadulmridha/claude-code-smpuurnn-baanlaa-gaaidd-2b8m</link>
      <guid>https://dev.to/ashadulmridha/claude-code-smpuurnn-baanlaa-gaaidd-2b8m</guid>
      <description>&lt;p&gt;Terminal খুলে natural language-এ instruction দিলেই যদি আপনার project setup হয়ে যায়, test run হয়, deployment ready হয় - এমন experience চাইলে Claude Code একবার দেখতে পারেন।&lt;/p&gt;

&lt;p&gt;Claude Code নিয়ে অনেকেই শুনেছেন, কিন্তু Agents, Skills, Hooks, Slash Command কী, Plugins আর MCP আসলে কীভাবে কাজ করে - এই basic জিনিসগুলো পরিষ্কার না থাকলে এটার আসল power বোঝা মুশকিল।&lt;/p&gt;

&lt;p&gt;এই পোস্টে Claude Code-এর core concepts গুলো simple ভাবে explain করব - যেন আপনি বুঝতে পারেন এটা দিয়ে আসলে কী কী করা সম্ভব, আর কীভাবে এটা আপনার কাজে লাগাতে পারবেন।&lt;/p&gt;

&lt;h2&gt;
  
  
  Table of Contents
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;[Agents]&lt;/li&gt;
&lt;li&gt;[Skills]&lt;/li&gt;
&lt;li&gt;[Hooks]&lt;/li&gt;
&lt;li&gt;[Slash Commands]&lt;/li&gt;
&lt;li&gt;[Plugins]&lt;/li&gt;
&lt;li&gt;[File Structure]&lt;/li&gt;
&lt;li&gt;[Quick Reference]&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Agents
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Agents কী?
&lt;/h3&gt;

&lt;p&gt;Agents বলতে মূলত Claude-এর এমন কিছু সহকারীকে বোঝায়, যাদের প্রত্যেকটা নির্দিষ্ট একটা কাজের জন্য ব্যবহার করা হয়। বড় কোনো প্রজেক্ট একা একটানা সামলানো অনেক সময় কঠিন হয়ে যায়। তাই প্রজেক্টকে ছোট ছোট অংশে ভাগ করে নেওয়া হয়, আর সেই অংশগুলো আলাদা আলাদা Agent দেখাশোনা করে।&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;সুবিধা:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;কাজগুলো আরও গুছিয়ে করা যায়&lt;/li&gt;
&lt;li&gt;একসাথে একাধিক কাজ এগোয়&lt;/li&gt;
&lt;li&gt;ভুল কম হয় এবং output quality ভালো হয়&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  বাস্তব উদাহরণ
&lt;/h3&gt;

&lt;p&gt;ধরুন আপনি একটা Full Stack ইকমার্সের অ্যাপ্লিকেশন বানাচ্ছেন। এখানে আপনি বিভিন্ন agent তৈরি করতে পারেন:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Frontend Development এর জন্য:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight markdown"&gt;&lt;code&gt;&lt;span class="gh"&gt;# .claude/agents/frontend-agent.md&lt;/span&gt;

You are a frontend development specialist focused on React and modern UI/UX.

&lt;span class="gu"&gt;## Your Responsibilities&lt;/span&gt;
&lt;span class="p"&gt;-&lt;/span&gt; Build responsive React components
&lt;span class="p"&gt;-&lt;/span&gt; Implement state management
&lt;span class="p"&gt;-&lt;/span&gt; Ensure accessibility standards
&lt;span class="p"&gt;-&lt;/span&gt; Optimize performance

&lt;span class="gu"&gt;## Technologies&lt;/span&gt;
&lt;span class="p"&gt;-&lt;/span&gt; React 18+
&lt;span class="p"&gt;-&lt;/span&gt; Tailwind CSS
&lt;span class="p"&gt;-&lt;/span&gt; React Query
&lt;span class="p"&gt;-&lt;/span&gt; TypeScript
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Backend Development এর জন্য:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight markdown"&gt;&lt;code&gt;&lt;span class="gh"&gt;# .claude/agents/backend-agent.md&lt;/span&gt;

You are a backend development expert specializing in Node.js and Express.

&lt;span class="gu"&gt;## Your Responsibilities&lt;/span&gt;
&lt;span class="p"&gt;-&lt;/span&gt; Design RESTful APIs
&lt;span class="p"&gt;-&lt;/span&gt; Database schema design
&lt;span class="p"&gt;-&lt;/span&gt; Authentication &amp;amp; Authorization
&lt;span class="p"&gt;-&lt;/span&gt; Error handling and logging

&lt;span class="gu"&gt;## Technologies&lt;/span&gt;
&lt;span class="p"&gt;-&lt;/span&gt; Node.js
&lt;span class="p"&gt;-&lt;/span&gt; Express.js
&lt;span class="p"&gt;-&lt;/span&gt; PostgreSQL
&lt;span class="p"&gt;-&lt;/span&gt; JWT Authentication
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;API Design এর জন্য:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight markdown"&gt;&lt;code&gt;&lt;span class="gh"&gt;# .claude/agents/api-designer-agent.md&lt;/span&gt;

You are an API design specialist.

&lt;span class="gu"&gt;## Your Responsibilities&lt;/span&gt;
&lt;span class="p"&gt;-&lt;/span&gt; Design RESTful endpoints
&lt;span class="p"&gt;-&lt;/span&gt; Define request/response structures
&lt;span class="p"&gt;-&lt;/span&gt; Plan versioning strategy
&lt;span class="p"&gt;-&lt;/span&gt; Document API specifications

&lt;span class="gu"&gt;## Guidelines&lt;/span&gt;
&lt;span class="p"&gt;-&lt;/span&gt; Follow REST principles
&lt;span class="p"&gt;-&lt;/span&gt; Use proper HTTP methods
&lt;span class="p"&gt;-&lt;/span&gt; Implement pagination
&lt;span class="p"&gt;-&lt;/span&gt; Version APIs properly
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Code Review এর জন্য:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight markdown"&gt;&lt;code&gt;&lt;span class="gh"&gt;# .claude/agents/code-reviewer-agent.md&lt;/span&gt;

You are a code quality expert.

&lt;span class="gu"&gt;## Your Responsibilities&lt;/span&gt;
&lt;span class="p"&gt;-&lt;/span&gt; Review code for best practices
&lt;span class="p"&gt;-&lt;/span&gt; Check for security vulnerabilities
&lt;span class="p"&gt;-&lt;/span&gt; Ensure consistent coding style
&lt;span class="p"&gt;-&lt;/span&gt; Suggest optimizations

&lt;span class="gu"&gt;## Focus Areas&lt;/span&gt;
&lt;span class="p"&gt;-&lt;/span&gt; Code readability
&lt;span class="p"&gt;-&lt;/span&gt; Performance issues
&lt;span class="p"&gt;-&lt;/span&gt; Security concerns
&lt;span class="p"&gt;-&lt;/span&gt; Test coverage
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Agents কীভাবে কাজ করে?
&lt;/h3&gt;

&lt;p&gt;Claude Code দুইভাবে agents ব্যবহার করে:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Automatic Mode&lt;/strong&gt;: Claude অটোমেটিক বুঝে নেয় কোন agent দরকার&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Manual Mode&lt;/strong&gt;: আপনি &lt;code&gt;@agent-name&lt;/code&gt; দিয়ে সরাসরি একটা নির্দিষ্ট agent কে কল করতে পারেন&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;উদাহরণ:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;আপনি: @frontend-agent Create a user profile component
আপনি: @backend-agent Design an API for user authentication
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  Skills
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Skills কী?
&lt;/h3&gt;

&lt;p&gt;Skills হলো Claude-এর জন্য best practices, domain-specific knowledge, এবং structured workflows। এটা agents-দের কাজ করার জন্য একটা নির্দেশিকা বা গাইডবুক হিসেবে কাজ করে। কাজের প্রয়োজন অনুসারে Claude অটোমেটিক এই skills পড়ে এবং apply করে।&lt;/p&gt;

&lt;h3&gt;
  
  
  Skills vs Agents এর পার্থক্য
&lt;/h3&gt;

&lt;p&gt;সহজ ভাষায়:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Agents&lt;/strong&gt; = কাজ করার জন্য বিশেষায়িত সহকারী&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Skills&lt;/strong&gt; = সেই সহকারীকে &lt;strong&gt;কীভাবে&lt;/strong&gt; কাজ করতে হবে তার জন্য knowledge বা guideline দেয়।&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;একটা উদাহরণ দিলে ব্যাপারটা আরও পরিষ্কার হবে:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;backend-agent&lt;/code&gt; হলো রাঁধুনি (যে রান্না করবে)&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;rest-api-best-practices&lt;/code&gt; skill হলো রেসিপি বই (যেখানে লেখা আছে কীভাবে রান্না করতে হবে)&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  বাস্তব উদাহরণ
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;REST API Design Skill:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight markdown"&gt;&lt;code&gt;&lt;span class="gh"&gt;# .claude/skills/rest-api-best-practices.md&lt;/span&gt;

&lt;span class="gh"&gt;# REST API Design Guidelines&lt;/span&gt;

&lt;span class="gu"&gt;## URL Structure&lt;/span&gt;
&lt;span class="p"&gt;-&lt;/span&gt; Use nouns, not verbs: &lt;span class="sb"&gt;`/users`&lt;/span&gt; not &lt;span class="sb"&gt;`/getUsers`&lt;/span&gt;
&lt;span class="p"&gt;-&lt;/span&gt; Use plural form: &lt;span class="sb"&gt;`/products`&lt;/span&gt; not &lt;span class="sb"&gt;`/product`&lt;/span&gt;
&lt;span class="p"&gt;-&lt;/span&gt; Nested resources: &lt;span class="sb"&gt;`/users/{id}/orders`&lt;/span&gt;
&lt;span class="p"&gt;-&lt;/span&gt; Keep URLs simple and intuitive

&lt;span class="gu"&gt;## HTTP Methods&lt;/span&gt;
&lt;span class="p"&gt;-&lt;/span&gt; &lt;span class="gs"&gt;**GET**&lt;/span&gt;: Retrieve data (no side effects)
&lt;span class="p"&gt;-&lt;/span&gt; &lt;span class="gs"&gt;**POST**&lt;/span&gt;: Create new resource
&lt;span class="p"&gt;-&lt;/span&gt; &lt;span class="gs"&gt;**PUT**&lt;/span&gt;: Update entire resource
&lt;span class="p"&gt;-&lt;/span&gt; &lt;span class="gs"&gt;**PATCH**&lt;/span&gt;: Partial update
&lt;span class="p"&gt;-&lt;/span&gt; &lt;span class="gs"&gt;**DELETE**&lt;/span&gt;: Remove resource

&lt;span class="gu"&gt;## Response Status Codes&lt;/span&gt;
&lt;span class="p"&gt;-&lt;/span&gt; &lt;span class="gs"&gt;**200 OK**&lt;/span&gt;: Successful GET, PUT, PATCH
&lt;span class="p"&gt;-&lt;/span&gt; &lt;span class="gs"&gt;**201 Created**&lt;/span&gt;: Successful POST
&lt;span class="p"&gt;-&lt;/span&gt; &lt;span class="gs"&gt;**204 No Content**&lt;/span&gt;: Successful DELETE
&lt;span class="p"&gt;-&lt;/span&gt; &lt;span class="gs"&gt;**400 Bad Request**&lt;/span&gt;: Invalid input
&lt;span class="p"&gt;-&lt;/span&gt; &lt;span class="gs"&gt;**401 Unauthorized**&lt;/span&gt;: Authentication required
&lt;span class="p"&gt;-&lt;/span&gt; &lt;span class="gs"&gt;**403 Forbidden**&lt;/span&gt;: No permission
&lt;span class="p"&gt;-&lt;/span&gt; &lt;span class="gs"&gt;**404 Not Found**&lt;/span&gt;: Resource doesn't exist
&lt;span class="p"&gt;-&lt;/span&gt; &lt;span class="gs"&gt;**500 Internal Server Error**&lt;/span&gt;: Server error

&lt;span class="gu"&gt;## Response Structure&lt;/span&gt;
Always return consistent JSON:

{
  "success": true,
  "data": {...},
  "message": "Operation successful",
  "timestamp": "2024-01-15T10:30:00Z"
}

&lt;span class="gu"&gt;## Pagination&lt;/span&gt;

{
  "data": [...],
  "pagination": {
    "page": 1,
    "limit": 20,
    "total": 100,
    "totalPages": 5
  }
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Database Schema Design Skill:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight markdown"&gt;&lt;code&gt;&lt;span class="gh"&gt;# .claude/skills/database-design.md&lt;/span&gt;

&lt;span class="gh"&gt;# Database Design Principles&lt;/span&gt;

&lt;span class="gu"&gt;## Naming Conventions&lt;/span&gt;
&lt;span class="p"&gt;-&lt;/span&gt; &lt;span class="gs"&gt;**Tables**&lt;/span&gt;: plural, snake_case (e.g., &lt;span class="sb"&gt;`user_profiles`&lt;/span&gt;, &lt;span class="sb"&gt;`order_items`&lt;/span&gt;)
&lt;span class="p"&gt;-&lt;/span&gt; &lt;span class="gs"&gt;**Columns**&lt;/span&gt;: snake_case (e.g., &lt;span class="sb"&gt;`first_name`&lt;/span&gt;, &lt;span class="sb"&gt;`created_at`&lt;/span&gt;)
&lt;span class="p"&gt;-&lt;/span&gt; &lt;span class="gs"&gt;**Primary Key**&lt;/span&gt;: Always use &lt;span class="sb"&gt;`id`&lt;/span&gt;
&lt;span class="p"&gt;-&lt;/span&gt; &lt;span class="gs"&gt;**Foreign Key**&lt;/span&gt;: &lt;span class="sb"&gt;`{table}_id`&lt;/span&gt; (e.g., &lt;span class="sb"&gt;`user_id`&lt;/span&gt;, &lt;span class="sb"&gt;`product_id`&lt;/span&gt;)
&lt;span class="p"&gt;-&lt;/span&gt; &lt;span class="gs"&gt;**Junction Tables**&lt;/span&gt;: &lt;span class="sb"&gt;`{table1}_{table2}`&lt;/span&gt; (e.g., &lt;span class="sb"&gt;`users_roles`&lt;/span&gt;)

&lt;span class="gu"&gt;## Data Types Best Practices&lt;/span&gt;
&lt;span class="p"&gt;-&lt;/span&gt; &lt;span class="gs"&gt;**IDs**&lt;/span&gt;: BIGINT UNSIGNED AUTO_INCREMENT
&lt;span class="p"&gt;-&lt;/span&gt; &lt;span class="gs"&gt;**Strings**&lt;/span&gt;: VARCHAR(255) for short text, TEXT for long content
&lt;span class="p"&gt;-&lt;/span&gt; &lt;span class="gs"&gt;**Dates**&lt;/span&gt;: TIMESTAMP (includes timezone)
&lt;span class="p"&gt;-&lt;/span&gt; &lt;span class="gs"&gt;**Money**&lt;/span&gt;: DECIMAL(10, 2)
&lt;span class="p"&gt;-&lt;/span&gt; &lt;span class="gs"&gt;**Boolean**&lt;/span&gt;: TINYINT(1) or BOOLEAN

&lt;span class="gu"&gt;## Essential Columns&lt;/span&gt;
Every table should have:

id BIGINT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP

&lt;span class="gu"&gt;## Indexing Rules&lt;/span&gt;
&lt;span class="p"&gt;-&lt;/span&gt; Always index foreign keys
&lt;span class="p"&gt;-&lt;/span&gt; Index columns used in WHERE, JOIN, ORDER BY
&lt;span class="p"&gt;-&lt;/span&gt; Composite index for multi-column queries
&lt;span class="p"&gt;-&lt;/span&gt; Don't over-index (slows down INSERT/UPDATE)

&lt;span class="gu"&gt;## Relationships&lt;/span&gt;
&lt;span class="p"&gt;-&lt;/span&gt; &lt;span class="gs"&gt;**One-to-Many**&lt;/span&gt;: Foreign key in the "many" table
&lt;span class="p"&gt;-&lt;/span&gt; &lt;span class="gs"&gt;**Many-to-Many**&lt;/span&gt;: Use junction table
&lt;span class="p"&gt;-&lt;/span&gt; &lt;span class="gs"&gt;**One-to-One**&lt;/span&gt;: Foreign key with UNIQUE constraint
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Security Best Practices Skill:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight markdown"&gt;&lt;code&gt;&lt;span class="gh"&gt;# .claude/skills/security-guidelines.md&lt;/span&gt;

&lt;span class="gh"&gt;# Security Best Practices&lt;/span&gt;

&lt;span class="gu"&gt;## Authentication&lt;/span&gt;
&lt;span class="p"&gt;-&lt;/span&gt; Use bcrypt for password hashing (min 10 rounds)
&lt;span class="p"&gt;-&lt;/span&gt; Implement JWT with short expiry (15-30 minutes)
&lt;span class="p"&gt;-&lt;/span&gt; Use refresh tokens for long sessions
&lt;span class="p"&gt;-&lt;/span&gt; Enable rate limiting on login endpoints

&lt;span class="gu"&gt;## Data Validation&lt;/span&gt;
&lt;span class="p"&gt;-&lt;/span&gt; Always validate user input
&lt;span class="p"&gt;-&lt;/span&gt; Sanitize data before database queries
&lt;span class="p"&gt;-&lt;/span&gt; Use parameterized queries (prevent SQL injection)
&lt;span class="p"&gt;-&lt;/span&gt; Validate file uploads (type, size, content)

&lt;span class="gu"&gt;## API Security&lt;/span&gt;
&lt;span class="p"&gt;-&lt;/span&gt; Always use HTTPS in production
&lt;span class="p"&gt;-&lt;/span&gt; Implement CORS properly
&lt;span class="p"&gt;-&lt;/span&gt; Use API keys for service-to-service communication
&lt;span class="p"&gt;-&lt;/span&gt; Rate limit all endpoints

&lt;span class="gu"&gt;## Sensitive Data&lt;/span&gt;
&lt;span class="p"&gt;-&lt;/span&gt; Never log passwords or tokens
&lt;span class="p"&gt;-&lt;/span&gt; Encrypt sensitive data at rest
&lt;span class="p"&gt;-&lt;/span&gt; Use environment variables for secrets
&lt;span class="p"&gt;-&lt;/span&gt; Never commit .env files to git
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Agent কীভাবে Skills ব্যবহার করে
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight markdown"&gt;&lt;code&gt;&lt;span class="gh"&gt;# .claude/agents/backend-agent.md&lt;/span&gt;

You are a backend development specialist.

&lt;span class="gu"&gt;## Skills to Apply&lt;/span&gt;
When working, always reference and follow these skills:
&lt;span class="p"&gt;-&lt;/span&gt; rest-api-best-practices
&lt;span class="p"&gt;-&lt;/span&gt; database-design
&lt;span class="p"&gt;-&lt;/span&gt; security-guidelines

&lt;span class="gu"&gt;## Instructions&lt;/span&gt;
&lt;span class="p"&gt;1.&lt;/span&gt; Before designing any API, review REST API best practices
&lt;span class="p"&gt;2.&lt;/span&gt; For database work, follow the database design skill
&lt;span class="p"&gt;3.&lt;/span&gt; Always check security guidelines before implementing auth
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;এভাবে agent-রা skills থেকে knowledge নিয়ে আরও ভালোভাবে কাজ করতে পারে।&lt;/p&gt;




&lt;h2&gt;
  
  
  Hooks - Lifecycle Automation
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Hooks কী?
&lt;/h3&gt;

&lt;p&gt;Hooks হলো custom bash script যেগুলো Claude Code-এর নির্দিষ্ট lifecycle event-এ অটোমেটিক trigger হয়। এর মাধ্যমে আপনি repetitive কাজগুলো অটোমেট করে ফেলতে পারেন।&lt;/p&gt;

&lt;h3&gt;
  
  
  Available Lifecycle Events
&lt;/h3&gt;

&lt;p&gt;Claude Code এর মূল কয়েকটি event:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;sessionStart&lt;/strong&gt; - যখন Claude Code session শুরু হয়&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;sessionEnd&lt;/strong&gt; - যখন session শেষ হয়&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;stop&lt;/strong&gt; - যখন Claude response দেওয়া বন্ধ করে&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;beforeCommand&lt;/strong&gt; - কোনো command execute হওয়ার আগে&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;afterCommand&lt;/strong&gt; - কোনো command execute হওয়ার পরে&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  বাস্তব উদাহরণ
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Example 1: Auto Code Formatting (stop event)&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;কোড লেখার পর ম্যানুয়ালি ফরম্যাট করা বিরক্তিকর। এই hook দিয়ে Claude যখনই code লেখা শেষ করবে, automatically prettier run হবে:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# .claude/hooks/format-on-stop.sh&lt;/span&gt;
&lt;span class="c"&gt;#!/bin/bash&lt;/span&gt;

&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;"Formatting code..."&lt;/span&gt;

&lt;span class="c"&gt;# Format JavaScript/TypeScript files&lt;/span&gt;
npx prettier &lt;span class="nt"&gt;--write&lt;/span&gt; &lt;span class="s2"&gt;"src/**/*.{js,jsx,ts,tsx,json,css,md}"&lt;/span&gt;

&lt;span class="c"&gt;# Format Python files&lt;/span&gt;
black src/

&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;"✓ Code formatting complete!"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Example 2: Auto Git Commit (sessionEnd event)&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Session শেষে automatically changes commit করুন:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# .claude/hooks/auto-commit.sh&lt;/span&gt;
&lt;span class="c"&gt;#!/bin/bash&lt;/span&gt;

&lt;span class="c"&gt;# Check if there are any changes&lt;/span&gt;
&lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="o"&gt;[[&lt;/span&gt; &lt;span class="nt"&gt;-n&lt;/span&gt; &lt;span class="si"&gt;$(&lt;/span&gt;git status &lt;span class="nt"&gt;-s&lt;/span&gt;&lt;span class="si"&gt;)&lt;/span&gt; &lt;span class="o"&gt;]]&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="k"&gt;then
    &lt;/span&gt;&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;"Auto-committing changes..."&lt;/span&gt;

    &lt;span class="c"&gt;# Add all changes&lt;/span&gt;
    git add &lt;span class="nb"&gt;.&lt;/span&gt;

    &lt;span class="c"&gt;# Create commit with timestamp&lt;/span&gt;
    &lt;span class="nv"&gt;timestamp&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="si"&gt;$(&lt;/span&gt;&lt;span class="nb"&gt;date&lt;/span&gt; &lt;span class="s2"&gt;"+%Y-%m-%d %H:%M:%S"&lt;/span&gt;&lt;span class="si"&gt;)&lt;/span&gt;
    git commit &lt;span class="nt"&gt;-m&lt;/span&gt; &lt;span class="s2"&gt;"Auto-commit: Claude Code session ended at &lt;/span&gt;&lt;span class="nv"&gt;$timestamp&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt;

    &lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;"✓ Changes committed successfully!"&lt;/span&gt;
&lt;span class="k"&gt;else
    &lt;/span&gt;&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;"No changes to commit"&lt;/span&gt;
&lt;span class="k"&gt;fi&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Example 3: Test Runner (afterCommand event)&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;কোড লেখার পর automatically tests run করুন:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# .claude/hooks/run-tests.sh&lt;/span&gt;
&lt;span class="c"&gt;#!/bin/bash&lt;/span&gt;

&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;"Running tests..."&lt;/span&gt;

&lt;span class="c"&gt;# Run Jest tests&lt;/span&gt;
&lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="o"&gt;[&lt;/span&gt; &lt;span class="nt"&gt;-f&lt;/span&gt; &lt;span class="s2"&gt;"package.json"&lt;/span&gt; &lt;span class="o"&gt;]&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class="nb"&gt;grep&lt;/span&gt; &lt;span class="nt"&gt;-q&lt;/span&gt; &lt;span class="s2"&gt;"jest"&lt;/span&gt; package.json&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="k"&gt;then
    &lt;/span&gt;npm &lt;span class="nb"&gt;test&lt;/span&gt; &lt;span class="nt"&gt;--&lt;/span&gt; &lt;span class="nt"&gt;--passWithNoTests&lt;/span&gt;
&lt;span class="k"&gt;fi&lt;/span&gt;

&lt;span class="c"&gt;# Run pytest&lt;/span&gt;
&lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="o"&gt;[&lt;/span&gt; &lt;span class="nt"&gt;-f&lt;/span&gt; &lt;span class="s2"&gt;"pytest.ini"&lt;/span&gt; &lt;span class="o"&gt;]&lt;/span&gt; &lt;span class="o"&gt;||&lt;/span&gt; &lt;span class="o"&gt;[&lt;/span&gt; &lt;span class="nt"&gt;-d&lt;/span&gt; &lt;span class="s2"&gt;"tests"&lt;/span&gt; &lt;span class="o"&gt;]&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="k"&gt;then
    &lt;/span&gt;pytest &lt;span class="nt"&gt;-v&lt;/span&gt;
&lt;span class="k"&gt;fi

&lt;/span&gt;&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;"✓ Tests complete!"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Hooks Setup করা
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;code&gt;.claude/hooks/&lt;/code&gt; folder তৈরি করুন&lt;/li&gt;
&lt;li&gt;Bash script লিখুন (&lt;code&gt;.sh&lt;/code&gt; extension সহ)&lt;/li&gt;
&lt;li&gt;Script-কে executable করুন:
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;chmod&lt;/span&gt; +x .claude/hooks/format-on-stop.sh
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  Slash Commands - দ্রুত কাজের Shortcut
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Slash Commands কী?
&lt;/h3&gt;

&lt;p&gt;Slash commands হলো repetitive কাজ দ্রুত করার শর্টকাট। একবার define করে ফেললে বারবার একই instruction দিতে হয় না। শুধু &lt;code&gt;/&lt;/code&gt; টাইপ করলেই সব available commands দেখা যায়।&lt;/p&gt;

&lt;h3&gt;
  
  
  কখন Slash Commands ব্যবহার করবেন?
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;যখন একই ধরনের code বারবার লিখতে হয়&lt;/li&gt;
&lt;li&gt;যখন একটা নির্দিষ্ট pattern follow করতে হয়&lt;/li&gt;
&lt;li&gt;যখন boilerplate code তৈরি করতে হয়&lt;/li&gt;
&lt;li&gt;যখন complex workflow একটা command-এ execute করতে চান&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  বাস্তব উদাহরণ
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Example 1: React Component Generator&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight markdown"&gt;&lt;code&gt;&lt;span class="gh"&gt;# .claude/commands/create-component.md&lt;/span&gt;

&lt;span class="gh"&gt;# Create React Component&lt;/span&gt;

Generate a complete React component with the following structure:

&lt;span class="gu"&gt;## Files to Create&lt;/span&gt;
&lt;span class="p"&gt;
1.&lt;/span&gt; &lt;span class="gs"&gt;**Component File**&lt;/span&gt;: &lt;span class="sb"&gt;`src/components/{ComponentName}/{ComponentName}.jsx`&lt;/span&gt;
&lt;span class="p"&gt;2.&lt;/span&gt; &lt;span class="gs"&gt;**Styles**&lt;/span&gt;: &lt;span class="sb"&gt;`src/components/{ComponentName}/{ComponentName}.module.css`&lt;/span&gt;
&lt;span class="p"&gt;3.&lt;/span&gt; &lt;span class="gs"&gt;**Test File**&lt;/span&gt;: &lt;span class="sb"&gt;`src/components/{ComponentName}/__tests__/{ComponentName}.test.jsx`&lt;/span&gt;
&lt;span class="p"&gt;4.&lt;/span&gt; &lt;span class="gs"&gt;**Storybook**&lt;/span&gt;: &lt;span class="sb"&gt;`src/components/{ComponentName}/{ComponentName}.stories.jsx`&lt;/span&gt;

&lt;span class="gu"&gt;## Component Template&lt;/span&gt;

import React from 'react';
import PropTypes from 'prop-types';
import styles from './{ComponentName}.module.css';

/&lt;span class="ge"&gt;**&lt;/span&gt;
&lt;span class="p"&gt; *&lt;/span&gt; {ComponentName} component description
 &lt;span class="err"&gt;*&lt;/span&gt;/
const {ComponentName} = ({ title, children, className = '' }) =&amp;gt; {
  return (
    &lt;span class="nt"&gt;&amp;lt;div&lt;/span&gt; &lt;span class="na"&gt;className=&lt;/span&gt;&lt;span class="s"&gt;{`${styles.container}&lt;/span&gt; &lt;span class="err"&gt;${&lt;/span&gt;&lt;span class="na"&gt;className&lt;/span&gt;&lt;span class="err"&gt;}`}&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
      &lt;span class="nt"&gt;&amp;lt;h2&lt;/span&gt; &lt;span class="na"&gt;className=&lt;/span&gt;&lt;span class="s"&gt;{styles.title}&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;{title}&lt;span class="nt"&gt;&amp;lt;/h2&amp;gt;&lt;/span&gt;
      &lt;span class="nt"&gt;&amp;lt;div&lt;/span&gt; &lt;span class="na"&gt;className=&lt;/span&gt;&lt;span class="s"&gt;{styles.content}&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;{children}&lt;span class="nt"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
  );
};

{ComponentName}.propTypes = {
  title: PropTypes.string.isRequired,
  children: PropTypes.node,
  className: PropTypes.string,
};

export default {ComponentName};

&lt;span class="gu"&gt;## CSS Template&lt;/span&gt;

.container {
  padding: 1rem;
  border-radius: 8px;
  background-color: #ffffff;
}

.title {
  font-size: 1.5rem;
  font-weight: 600;
  margin-bottom: 0.5rem;
}

.content {
  font-size: 1rem;
  color: #333333;
}

&lt;span class="gu"&gt;## Test Template&lt;/span&gt;

import { render, screen } from '@testing-library/react';
import {ComponentName} from '../{ComponentName}';

describe('{ComponentName}', () =&amp;gt; {
  it('renders correctly', () =&amp;gt; {
    render(&lt;span class="nt"&gt;&amp;lt;&lt;/span&gt;&lt;span class="err"&gt;{&lt;/span&gt;&lt;span class="na"&gt;ComponentName&lt;/span&gt;&lt;span class="err"&gt;}&lt;/span&gt; &lt;span class="na"&gt;title=&lt;/span&gt;&lt;span class="s"&gt;"Test Title"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;Test Content&lt;span class="nt"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="err"&gt;{&lt;/span&gt;&lt;span class="nt"&gt;ComponentName&lt;/span&gt;&lt;span class="err"&gt;}&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;);
    expect(screen.getByText('Test Title')).toBeInTheDocument();
  });
});

&lt;span class="gu"&gt;## Prompt&lt;/span&gt;
Ask the user for the component name and create all files accordingly.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;ব্যবহার:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;/create-component Button
/create-component UserProfile
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Example 2: Express API Endpoint Creator&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight markdown"&gt;&lt;code&gt;&lt;span class="gh"&gt;# .claude/commands/create-api-endpoint.md&lt;/span&gt;

&lt;span class="gh"&gt;# Create Express API Endpoint&lt;/span&gt;

Generate a complete API endpoint with the following structure:

&lt;span class="gu"&gt;## Files to Create&lt;/span&gt;
&lt;span class="p"&gt;
1.&lt;/span&gt; &lt;span class="gs"&gt;**Route**&lt;/span&gt;: &lt;span class="sb"&gt;`src/routes/{resource}.routes.js`&lt;/span&gt;
&lt;span class="p"&gt;2.&lt;/span&gt; &lt;span class="gs"&gt;**Controller**&lt;/span&gt;: &lt;span class="sb"&gt;`src/controllers/{resource}.controller.js`&lt;/span&gt;
&lt;span class="p"&gt;3.&lt;/span&gt; &lt;span class="gs"&gt;**Validation**&lt;/span&gt;: &lt;span class="sb"&gt;`src/middlewares/{resource}.validation.js`&lt;/span&gt;
&lt;span class="p"&gt;4.&lt;/span&gt; &lt;span class="gs"&gt;**Test**&lt;/span&gt;: &lt;span class="sb"&gt;`src/tests/{resource}.test.js`&lt;/span&gt;

&lt;span class="gu"&gt;## Route Template&lt;/span&gt;

const express = require('express');
const router = express.Router();
const {resourceCamelCase}Controller = require('../controllers/{resource}.controller');
const validate = require('../middlewares/{resource}.validation');

// GET all
router.get('/', {resourceCamelCase}Controller.getAll);

// GET by ID
router.get('/:id', {resourceCamelCase}Controller.getById);

// POST create
router.post('/', validate.create, {resourceCamelCase}Controller.create);

// PUT update
router.put('/:id', validate.update, {resourceCamelCase}Controller.update);

// DELETE
router.delete('/:id', {resourceCamelCase}Controller.delete);

module.exports = router;

&lt;span class="gu"&gt;## Controller Template&lt;/span&gt;

const asyncHandler = require('../utils/asyncHandler');
const ApiResponse = require('../utils/ApiResponse');
const ApiError = require('../utils/ApiError');

// @desc    Get all {resources}
// @route   GET /api/{resources}
// @access  Public
exports.getAll = asyncHandler(async (req, res) =&amp;gt; {
  // Implementation here
  res.status(200).json(new ApiResponse(200, [], 'Retrieved successfully'));
});

// @desc    Get {resource} by ID
// @route   GET /api/{resources}/:id
// @access  Public
exports.getById = asyncHandler(async (req, res) =&amp;gt; {
  const { id } = req.params;
  // Implementation here
  res.status(200).json(new ApiResponse(200, {}, 'Retrieved successfully'));
});

// @desc    Create new {resource}
// @route   POST /api/{resources}
// @access  Private
exports.create = asyncHandler(async (req, res) =&amp;gt; {
  // Implementation here
  res.status(201).json(new ApiResponse(201, {}, 'Created successfully'));
});

// @desc    Update {resource}
// @route   PUT /api/{resources}/:id
// @access  Private
exports.update = asyncHandler(async (req, res) =&amp;gt; {
  const { id } = req.params;
  // Implementation here
  res.status(200).json(new ApiResponse(200, {}, 'Updated successfully'));
});

// @desc    Delete {resource}
// @route   DELETE /api/{resources}/:id
// @access  Private
exports.delete = asyncHandler(async (req, res) =&amp;gt; {
  const { id } = req.params;
  // Implementation here
  res.status(200).json(new ApiResponse(200, null, 'Deleted successfully'));
});

&lt;span class="gu"&gt;## Validation Template&lt;/span&gt;

const { body, param } = require('express-validator');
const validate = require('../middlewares/validate');

exports.create = validate([
  body('name').notEmpty().withMessage('Name is required'),
  // Add more validations
]);

exports.update = validate([
  param('id').isInt().withMessage('Invalid ID'),
  body('name').optional().notEmpty(),
  // Add more validations
]);

&lt;span class="gu"&gt;## Prompt&lt;/span&gt;
Ask for:
&lt;span class="p"&gt;1.&lt;/span&gt; Resource name (singular, e.g., "user", "product")
&lt;span class="p"&gt;2.&lt;/span&gt; Fields for validation
&lt;span class="p"&gt;3.&lt;/span&gt; Authentication requirements
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;ব্যবহার:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;/create-api-endpoint user
/create-api-endpoint product
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;ব্যবহার:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;/create-migration users
/create-migration products
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  Plugins - Ready-made Configuration
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Plugins কী?
&lt;/h3&gt;

&lt;p&gt;Plugins হলো ready made ও ভ্যালিডেট - Claude Code configuration bundle, যা নির্দিষ্ট workflow বা use case অনুযায়ী অপটিমাইজ করা থাকে। এগুলো সরাসরি install করে অতিরিক্ত custom configuration ছাড়াই ব্যবহার করা যায়। একটা plugin install করলে তার সাথে থাকা &lt;strong&gt;agents, skills, hooks, এবং commands&lt;/strong&gt; সব একসাথে আপনার project এ যুক্ত হয়ে যায়।&lt;/p&gt;

&lt;h3&gt;
  
  
  Plugins কেন ব্যবহার করবেন?
&lt;/h3&gt;

&lt;h4&gt;
  
  
  ১. সময় বাঁচায়
&lt;/h4&gt;

&lt;p&gt;নিজে থেকে agents, skills, hooks তৈরি করতে অনেক সময় লাগে। Plugin install করলে সব ready-made পেয়ে যাবেন।&lt;/p&gt;

&lt;h4&gt;
  
  
  ২. Community-tested
&lt;/h4&gt;

&lt;p&gt;হাজারো developer এই plugins ব্যবহার করেছে এবং improve করেছে। তাই quality নিয়ে নিশ্চিন্ত থাকতে পারেন।&lt;/p&gt;

&lt;h4&gt;
  
  
  ৩. Best Practices
&lt;/h4&gt;

&lt;p&gt;Industry standard best practices follow করা হয় plugin-গুলোতে।&lt;/p&gt;

&lt;h4&gt;
  
  
  ৪. Consistent Workflow
&lt;/h4&gt;

&lt;p&gt;Team-এর সবাই same plugin ব্যবহার করলে একই workflow follow হয়, collaboration সহজ হয়।&lt;/p&gt;

&lt;h3&gt;
  
  
  Claude Plugin Marketplace
&lt;/h3&gt;

&lt;p&gt;Claude-এর official plugin marketplace থেকে বিভিন্ন ধরনের plugin পাওয়া যায়:&lt;/p&gt;

&lt;h4&gt;
  
  
  Popular Plugins:
&lt;/h4&gt;

&lt;p&gt;&lt;strong&gt;1. GitHub Plugin&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Git operations সহজ করে&lt;/li&gt;
&lt;li&gt;Pull Request management&lt;/li&gt;
&lt;li&gt;Issue tracking&lt;/li&gt;
&lt;li&gt;Code review automation&lt;/li&gt;
&lt;li&gt;Branch management&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;2. Notion Plugin&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Documentation automatically sync হয়&lt;/li&gt;
&lt;li&gt;Meeting notes তৈরি&lt;/li&gt;
&lt;li&gt;Task management&lt;/li&gt;
&lt;li&gt;Knowledge base update&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;3. Docker Plugin&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Container management&lt;/li&gt;
&lt;li&gt;Dockerfile generation&lt;/li&gt;
&lt;li&gt;Docker Compose setup&lt;/li&gt;
&lt;li&gt;Container debugging&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;4. Testing Plugin&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Automated test generation&lt;/li&gt;
&lt;li&gt;Coverage report&lt;/li&gt;
&lt;li&gt;Test runner integration&lt;/li&gt;
&lt;li&gt;Mock data generation&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;*&lt;em&gt;5. Database Plugin *&lt;/em&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Migration management&lt;/li&gt;
&lt;li&gt;Query optimization&lt;/li&gt;
&lt;li&gt;Schema visualization&lt;/li&gt;
&lt;li&gt;Seed data generation&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Plugin এ কী কী থাকে?
&lt;/h3&gt;

&lt;p&gt;একটা plugin-এ সাধারণত এই structure থাকে:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;github-plugin/
├── agents/
│   ├── git-expert-agent.md
│   ├── pr-reviewer-agent.md
│   └── issue-manager-agent.md
├── skills/
│   ├── git-workflow.md
│   ├── commit-message-guidelines.md
│   └── branch-naming-conventions.md
├── hooks/
│   ├── pre-commit-check.sh
│   ├── post-commit-push.sh
│   └── branch-protection.sh
└── commands/
    ├── create-pr.md
    ├── review-code.md
    └── create-issue.md
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Plugin কীভাবে Install করবেন?
&lt;/h3&gt;

&lt;h4&gt;
  
  
  Method 1: Claude Code CLI
&lt;/h4&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;claude plugin &lt;span class="nb"&gt;install &lt;/span&gt;github
claude plugin &lt;span class="nb"&gt;install &lt;/span&gt;notion
claude plugin &lt;span class="nb"&gt;install &lt;/span&gt;docker
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h4&gt;
  
  
  Method 2: Manual Installation
&lt;/h4&gt;

&lt;ol&gt;
&lt;li&gt;Plugin repository থেকে download করুন&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;.claude/plugins/&lt;/code&gt; folder-এ রাখুন&lt;/li&gt;
&lt;li&gt;Claude Code restart করুন&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  Plugin কীভাবে Configure করবেন?
&lt;/h3&gt;

&lt;p&gt;প্রতিটা plugin-এর একটা config file থাকে:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight yaml"&gt;&lt;code&gt;&lt;span class="c1"&gt;# .claude/plugins/github/config.yml&lt;/span&gt;

&lt;span class="na"&gt;enabled&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;

&lt;span class="na"&gt;agents&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
  &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="s"&gt;git-expert-agent&lt;/span&gt;
  &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="s"&gt;pr-reviewer-agent&lt;/span&gt;

&lt;span class="na"&gt;skills&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
  &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="s"&gt;git-workflow&lt;/span&gt;
  &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="s"&gt;commit-message-guidelines&lt;/span&gt;

&lt;span class="na"&gt;hooks&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
  &lt;span class="na"&gt;sessionStart&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
    &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="s"&gt;check-git-status&lt;/span&gt;
  &lt;span class="na"&gt;beforeCommand&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
    &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="s"&gt;validate-branch&lt;/span&gt;

&lt;span class="na"&gt;commands&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
  &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="s"&gt;create-pr&lt;/span&gt;
  &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="s"&gt;review-code&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Custom Plugin তৈরি করা
&lt;/h3&gt;

&lt;p&gt;আপনি চাইলে নিজের plugin ও তৈরি করতে পারেন এবং team-এর সাথে share করতে পারেন:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;my-company-plugin/
├── README.md
├── plugin.yml (metadata)
├── agents/
│   └── company-standards-agent.md
├── skills/
│   └── company-coding-standards.md
├── hooks/
│   └── company-workflow.sh
└── commands/
    └── create-ticket.md
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;plugin.yml:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight yaml"&gt;&lt;code&gt;&lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;my-company-plugin&lt;/span&gt;
&lt;span class="na"&gt;version&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;1.0.0&lt;/span&gt;
&lt;span class="na"&gt;description&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;Company-specific development standards&lt;/span&gt;
&lt;span class="na"&gt;author&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;Your Team&lt;/span&gt;
&lt;span class="na"&gt;dependencies&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
  &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="s"&gt;github&lt;/span&gt;
  &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="s"&gt;testing&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Plugin Best Practices
&lt;/h3&gt;

&lt;h4&gt;
  
  
  ১. শুধু প্রয়োজনীয় Plugin Enable করুন
&lt;/h4&gt;

&lt;p&gt;অনেক plugin একসাথে enable করলে performance কমতে পারে।&lt;/p&gt;

&lt;h4&gt;
  
  
  ২. Regular Update করুন
&lt;/h4&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;claude plugin update &lt;span class="nt"&gt;--all&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h4&gt;
  
  
  ৩. Plugin Documentation পড়ুন
&lt;/h4&gt;

&lt;p&gt;প্রতিটা plugin-এর নিজস্ব features এবং commands আছে। Install করার পর documentation check করুন।&lt;/p&gt;

&lt;h4&gt;
  
  
  ৪. Team-এ Same Plugins ব্যবহার করুন
&lt;/h4&gt;

&lt;p&gt;এতে সবার কাছে same workflow থাকবে।&lt;/p&gt;

&lt;h3&gt;
  
  
  Plugin vs Manual Setup - কখন কোনটা?
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Plugin ব্যবহার করুন যখন:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Standard workflow follow করতে চান&lt;/li&gt;
&lt;li&gt;দ্রুত setup করতে চান&lt;/li&gt;
&lt;li&gt;Community-tested solution চান&lt;/li&gt;
&lt;li&gt;Team collaboration গুরুত্বপূর্ণ&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Manual Setup করুন যখন:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Very specific requirements আছে&lt;/li&gt;
&lt;li&gt;Company-specific workflow আছে&lt;/li&gt;
&lt;li&gt;Full control চান&lt;/li&gt;
&lt;li&gt;Learning purpose-এ কাজ করছেন&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  File Structure - সব একসাথে
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Project-Specific Configuration
&lt;/h3&gt;

&lt;p&gt;আপনার specific project-এর জন্য:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;my-ecommerce-app/
├── src/
├── tests/
└── .claude/
    ├── agents/
    │   ├── frontend-agent.md
    │   ├── backend-agent.md
    │   ├── api-designer-agent.md
    │   └── code-reviewer-agent.md
    │
    ├── skills/
    │   ├── rest-api-best-practices.md
    │   ├── database-design.md
    │   ├── security-guidelines.md
    │   └── react-patterns.md
    │
    ├── hooks/
    │   ├── format-on-stop.sh
    │   ├── auto-commit.sh
    │   ├── check-dependencies.sh
    │   └── run-tests.sh
    │
    ├── commands/
    │   ├── create-component.md
    │   ├── create-api-endpoint.md
    │   └── create-migration.md
    │
    └── plugins/
        ├── github/
        └── testing/
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Global Configuration
&lt;/h3&gt;

&lt;p&gt;সব project-এ যা common থাকবে:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;~/.config/claude/
├── agents/
│   ├── general-coding-agent.md
│   └── documentation-agent.md
│
├── skills/
│   ├── clean-code-principles.md
│   └── git-best-practices.md
│
├── hooks/
│   └── global-formatter.sh
│
└── commands/
    └── common-commands.md
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  Quick Reference
&lt;/h2&gt;

&lt;p&gt;আপনার সুবিধার জন্য একটা quick reference table:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Feature&lt;/th&gt;
&lt;th&gt;কী করে&lt;/th&gt;
&lt;th&gt;কখন Trigger হয়&lt;/th&gt;
&lt;th&gt;File Location&lt;/th&gt;
&lt;th&gt;উদাহরণ&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Agents&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;নির্দিষ্ট কাজের বিশেষজ্ঞ&lt;/td&gt;
&lt;td&gt;
&lt;code&gt;@agent-name&lt;/code&gt; বা auto&lt;/td&gt;
&lt;td&gt;&lt;code&gt;.claude/agents/*.md&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;@backend-agent&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Skills&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Knowledge &amp;amp; guidelines&lt;/td&gt;
&lt;td&gt;Auto (যখন প্রয়োজন)&lt;/td&gt;
&lt;td&gt;&lt;code&gt;.claude/skills/*.md&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;rest-api-best-practices.md&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Hooks&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Lifecycle automation&lt;/td&gt;
&lt;td&gt;Event-based&lt;/td&gt;
&lt;td&gt;&lt;code&gt;.claude/hooks/*.sh&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;
&lt;code&gt;sessionStart&lt;/code&gt;, &lt;code&gt;stop&lt;/code&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Commands&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;দ্রুত কাজের shortcut&lt;/td&gt;
&lt;td&gt;&lt;code&gt;/command-name&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;.claude/commands/*.md&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;/create-component&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Plugins&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Ready-made config bundle&lt;/td&gt;
&lt;td&gt;Manual install&lt;/td&gt;
&lt;td&gt;Marketplace / &lt;code&gt;.claude/plugins/&lt;/code&gt;
&lt;/td&gt;
&lt;td&gt;&lt;code&gt;claude plugin install github&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;




&lt;h2&gt;
  
  
  🎯 শেষ কথা
&lt;/h2&gt;

&lt;p&gt;Claude Code একটা অসাধারণ শক্তিশালী টুল যা আপনার development workflow কে সম্পূর্ণ বদলে দিতে পারে। &lt;strong&gt;Agents, Skills, Hooks, Slash Commands, এবং Plugins&lt;/strong&gt; - এই পাঁচটা ফিচার একসাথে ব্যবহার করলে আপনি:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;দ্রুত এবং গুছিয়ে কাজ করতে পারবেন&lt;/li&gt;
&lt;li&gt;Repetitive কাজগুলো automate করে ফেলতে পারবেন&lt;/li&gt;
&lt;li&gt;Best practices maintain করতে পারবেন&lt;/li&gt;
&lt;li&gt;Team collaboration improve হবে&lt;/li&gt;
&lt;li&gt;Code quality অনেক ভালো হবে&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;শুরুতে একটু সময় নিয়ে setup করুন, তারপর দেখবেন কাজের গতি কতটা বেড়ে গেছে!&lt;/p&gt;

&lt;h3&gt;
  
  
  পরবর্তী পদক্ষেপ
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;একটা simple agent দিয়ে শুরু করুন&lt;/li&gt;
&lt;li&gt;১-২টা useful skill তৈরি করুন&lt;/li&gt;
&lt;li&gt;প্রয়োজনীয় hooks setup করুন&lt;/li&gt;
&lt;li&gt;Frequently used কাজের জন্য slash commands বানান&lt;/li&gt;
&lt;li&gt;Popular plugins explore করুন&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Happy Coding!&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;আপনার মতামত জানান&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;কোনো প্রশ্ন বা feedback থাকলে কমেন্টে জানাতে পারেন। এছাড়া আপনার নিজের তৈরি agents, skills বা plugins শেয়ার করতে পারেন!&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;🔗 Connect with me:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;GitHub: [&lt;a href="https://github.com/ashadul-mridha" rel="noopener noreferrer"&gt;https://github.com/ashadul-mridha&lt;/a&gt;]&lt;/li&gt;
&lt;li&gt;LinkedIn: [&lt;a href="https://www.linkedin.com/in/ashadulmridha/" rel="noopener noreferrer"&gt;https://www.linkedin.com/in/ashadulmridha/&lt;/a&gt;]&lt;/li&gt;
&lt;/ul&gt;




&lt;h1&gt;
  
  
  ClaudeCode #AI #Productivity #Programming #DevTools #Automation #Bengali #BanglaContent
&lt;/h1&gt;

</description>
      <category>ai</category>
      <category>programming</category>
      <category>agents</category>
      <category>productivity</category>
    </item>
    <item>
      <title>3 Git features that changed how I work (and you probably aren't using them)</title>
      <dc:creator>Ashadul Mridha</dc:creator>
      <pubDate>Fri, 16 Jan 2026 09:59:03 +0000</pubDate>
      <link>https://dev.to/ashadulmridha/3-git-features-that-changed-how-i-work-and-you-probably-arent-using-them-1m8f</link>
      <guid>https://dev.to/ashadulmridha/3-git-features-that-changed-how-i-work-and-you-probably-arent-using-them-1m8f</guid>
      <description>&lt;p&gt;So I've been using Git for years, but honestly? I was just doing the basic add, commit, push routine. Then I discovered these three features and they genuinely made my workflow so much smoother.&lt;/p&gt;

&lt;h2&gt;
  
  
  1. Git Submodules - because copy-pasting code is exhausting
&lt;/h2&gt;

&lt;p&gt;Here's the thing - I had this auth library that I needed in like 5 different microservices. First, I was literally copy-pasting it everywhere. Nightmare to maintain. One bug fix meant updating 5 repos manually.&lt;/p&gt;

&lt;p&gt;Then I learned about submodules. Basically, you can include one Git repo inside another. Now I have a shared repo with common utilities, and all my projects reference it as a submodule. When I update the auth logic? Just run &lt;code&gt;git submodule update&lt;/code&gt; in each project and boom, everyone's on the latest version.&lt;/p&gt;

&lt;p&gt;Yeah, there's a learning curve, but it beats manually syncing code across projects.&lt;/p&gt;

&lt;h2&gt;
  
  
  2. Cherry-pick - for when you need THAT specific commit
&lt;/h2&gt;

&lt;p&gt;This one's a lifesaver. You know when you fix a bug in one branch but need that same fix in another branch? Without merging the entire thing?&lt;/p&gt;

&lt;p&gt;Last week I was working on a big feature branch. Production went down because of some API timeout issue. I quickly switched to main, fixed it, committed. But now my feature branch has the same bug. Instead of merging everything or fixing it again, I just cherry-picked that one commit:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;git cherry-pick &amp;lt;commit-hash&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Saves so much time and keeps the history clean.&lt;/p&gt;

&lt;h2&gt;
  
  
  3. Git Stash - your work-in-progress safety net
&lt;/h2&gt;

&lt;p&gt;Okay this is probably the one I use most often. Picture this: you're halfway through implementing something, code's messy, nothing's working yet. Then your team lead pings you - "urgent bug in production, need you to check it out NOW."&lt;/p&gt;

&lt;p&gt;You can't commit half-baked code. But you also can't lose your work. That's where stash comes in:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;git stash              # saves your current mess
git checkout main      # switch branches safely
# fix the urgent stuff
git checkout feature   # back to your branch
git stash pop          # and your work is right there
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;I probably stash stuff 3-4 times a day. It's become muscle memory at this point.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Quick tip: If you're learning these, start with stash. It's the easiest and you'll use it constantly. Cherry-pick is next. Submodules are powerful but you might not need them unless you're dealing with shared code across multiple projects.&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>programming</category>
      <category>github</category>
      <category>git</category>
      <category>advance</category>
    </item>
  </channel>
</rss>
