AI-translated from English; not yet reviewed by a fluent editor.
# Claude Code সেশন শুরুতে সীমাবদ্ধ প্রকল্প-প্রসঙ্গ hook যোগ করুন
> ছোট একটি প্রকল্পভিত্তিক SessionStart hook বসান, যা বর্তমান Git শাখা Claude Code-এর প্রসঙ্গে যোগ করে। সরাসরি আউটপুট, শুরু, পুনরায় চালু ও ব্যর্থতার আচরণ পরীক্ষা করুন।
By BIG CHANGE Editorial
Published: 2026-10-20T00:22:54.831Z
Updated: 2026-10-20T00:22:54.831Z
Canonical: https://bigchange.ai/blog/claude-code-session-start-branch-context-hook-guide

AI-generated conceptual illustration by BIG CHANGE; no actual Claude Code interface, hook execution or model result is depicted.
Claude Code hook হলো সেশনের নির্দিষ্ট সময়ে অ্যাপ চালায় এমন একটি কমান্ড। এই নির্দেশিকায় প্রকল্পের পরিসরে একটি `SessionStart` hook যোগ করা হবে, যা বর্তমান Git শাখা পড়ে কথোপকথন শুরু বা পুনরায় চালুর সময় প্রসঙ্গের ছোট একটি লাইন দেয়। এর ভিত্তি [Anthropic-এর বর্তমান hook নির্দেশিকা](https://code.claude.com/docs/en/hooks), যা ১৯ অক্টোবর ২০২৬-এ পরীক্ষা করা হয়েছে। BIG CHANGE সরাসরি Node দিয়ে স্ক্রিপ্ট ও সেটিংস JSON পরীক্ষা করেছে; আমরা Claude Code hook চালাইনি বা মডেলের উত্তর পরীক্ষা করিনি।
## বড় পরিবর্তন
- **কী বদলেছে:** প্রকল্পের এই `SessionStart` hook Claude Code কথোপকথন শুরু বা পুনরায় চালু করলে Git শাখার ছোট একটি লাইন দেয়।
- **কেন গুরুত্বপূর্ণ:** প্রতিবার হাতে পেস্ট না করেও শুরু বা পুনরায় চালুর সময় বর্তমান শাখা সেশনের প্রসঙ্গে পৌঁছায়।
- **কী খেয়াল রাখবেন:** প্রসঙ্গ কোনো নিয়ম বাধ্যতামূলক করে না বা মডেলের উত্তর নিশ্চিত করে না। নিজের বিশ্বস্ত প্রকল্পে শুরু ও পুনরায় চালুর সময় আসল সরবরাহ যাচাই করুন।
## বসানোর আগে
যে Git প্রকল্প পরিবর্তনের অনুমতি আছে সেটি ব্যবহার করুন। একই টার্মিনালে Claude Code, Node.js ও Git থাকতে হবে এবং প্রকল্পের `.claude/settings.json` ফাইল বদলানোর অনুমতি লাগবে। পরীক্ষা করুন `node --version`, `git --version` এবং `claude --version`। প্রস্তুতির কম্পিউটারে Claude Code 2.1.301 ও Node 24.19.0 ছিল; দেখা এই সংস্করণগুলো ন্যূনতম চাহিদা নয়।
**মডেলে পাঠানোর আগে শাখার নাম দেখুন।** শাখার নামে গ্রাহক, টিকিট বা ঘটনার নাম থাকতে পারে। অক্ষর ছাঁকা ও লেখা ছোট করা সেই অর্থ দূর করে না। শাখার নাম মডেলের প্রসঙ্গে ব্যবহারের অনুমোদন থাকলেই উদাহরণটি বসান। নইলে স্ক্রিপ্ট বদলে অনুমোদিত অসংবেদনশীল অবস্থা দেখান এবং বসানোর আগে পরিবর্তন পর্যালোচনা করুন। [Anthropic-এর ডেটা ব্যবহারের নথি](https://code.claude.com/docs/en/data-usage) সেবার ডেটা ব্যবস্থাপনা ব্যাখ্যা করে; নিজের প্রকল্পের অনুমতিও প্রয়োগ করুন।
Hook কমান্ড আপনার ব্যবহারকারীর অধিকার নিয়ে চলে। চালু করার আগে বর্তমান প্রকল্প ও ব্যবহারকারীর hook, প্রতিষ্ঠানের নীতি ও পুরো স্ক্রিপ্ট দেখুন। প্রকল্পের সেটিংস রিপোজিটরিতে কমিট হতে পারে; `.claude/settings.local.json` স্থানীয় থাকে। এই উদাহরণ প্রকল্পের সেটিংস ফাইল ব্যবহার করে, যাতে কনফিগারেশন ওই প্রকল্পেই সীমিত থাকে।
## দুটি ফাইল বসান
1. প্রকল্পের ভেতরে `.claude/hooks/` তৈরি করুন। পুরো ব্লকটি `.claude/hooks/session-context.cjs` নামে সংরক্ষণ করুন।
```javascript
'use strict';
const { execFileSync } = require('node:child_process');
const project = process.env.CLAUDE_PROJECT_DIR;
if (!project) {
process.stderr.write('CLAUDE_PROJECT_DIR is unavailable\n');
process.exit(1);
}
try {
const raw = execFileSync('git', ['-C', project, 'branch', '--show-current'], {
encoding: 'utf8',
timeout: 1500,
maxBuffer: 4096,
stdio: ['ignore', 'pipe', 'pipe'],
}).trim();
const branch = raw ? raw.replace(/[^A-Za-z0-9._/-]/g, '_').slice(0, 80) : 'detached HEAD';
process.stdout.write(`Current project branch: ${branch}\n`);
} catch {
process.stderr.write('Could not read the project branch; check Git and project path\n');
process.exit(1);
}
```
Git-এর চাইল্ড প্রসেসে ১.৫ সেকেন্ড সময়সীমা ও ৪,০৯৬ বাইট আউটপুট বাফার আছে। detached HEAD-এর মতো অবস্থায় শাখার ফল ফাঁকা হলে তা হয় `detached HEAD`। প্রকল্পের পাথ না থাকলে বা Git ব্যর্থ হলে ছোট stderr বার্তা ও এক্সিট কোড 1 দেয়।
2. আপনার বর্তমান `.claude/settings.json` খুলুন। নিচের `hooks.SessionStart` এন্ট্রি অন্য সেটিংস ও hook গোষ্ঠীর সঙ্গে মেলান; আগের এন্ট্রি অক্ষুণ্ণ রাখুন। ব্লকটিতে পর্যালোচিত প্যাকেটের সম্পূর্ণ `settings.example.json` দেখানো হয়েছে। ফাইলে আগে থেকেই `SessionStart` এন্ট্রি থাকলে অ্যারে পাল্টে না দিয়ে তার মধ্যে এই গোষ্ঠী যোগ করুন।
```json
{
"hooks": {
"SessionStart": [
{
"matcher": "startup|resume",
"hooks": [
{
"type": "command",
"command": "node",
"args": ["${CLAUDE_PROJECT_DIR}/.claude/hooks/session-context.cjs"],
"timeout": 5
}
]
}
]
}
}
```
Matcher নতুন ও পুনরায় চালু করা সেশন ধরে। Anthropic `clear`, `compact` ও `fork` কেও `SessionStart` উৎস হিসেবে নথিভুক্ত করেছে; উদাহরণে সেগুলো ইচ্ছাকৃতভাবে বাদ। `args` ফিল্ড exec রূপ বেছে নেয়: Claude Code `node` চালায়, সমাধান করা প্রকল্প স্ক্রিপ্টের পাথ একটিমাত্র আর্গুমেন্ট হিসেবে দিয়ে; shell quoting বা parsing হয় না। Windows-এ `node.exe` কে বাস্তব executable হিসেবে পাওয়া যেতে হবে; `.cmd` shim exec রূপের জন্য উপযুক্ত নয়। কমান্ডের পাঁচ সেকেন্ডের hook সময়সীমা স্ক্রিপ্টের ১.৫ সেকেন্ডের Git সময়সীমা থেকে আলাদা।
## আগে স্ক্রিপ্ট, তারপর Claude Code পরীক্ষা করুন
3. Claude Code খোলার আগে প্রকল্পের টার্মিনালে স্ক্রিপ্ট চালিয়ে আউটপুটের সঙ্গে Git মিলিয়ে দেখুন। PowerShell-এ:
```powershell
$env:CLAUDE_PROJECT_DIR = (Get-Location).Path
node .claude/hooks/session-context.cjs
git branch --show-current
```
Bash-এ:
```bash
CLAUDE_PROJECT_DIR="$PWD" node .claude/hooks/session-context.cjs
git branch --show-current
```
স্ক্রিপ্টের stdout-এ ঠিক একটি লাইন আশা করুন, `Current project branch: BRANCH`, যেখানে `BRANCH` হলো স্ক্রিপ্টের অক্ষর ছাঁকনি ও ৮০-অক্ষরের সীমার পর Git-এর ফল। Detached HEAD ছাপে `Current project branch: detached HEAD`। সরাসরি পরীক্ষা শুধু এই টার্মিনালে স্থানীয় স্ক্রিপ্ট কাজ করা প্রমাণ করে। আমাদের প্রস্তুতির পরীক্ষায় সাধারণ শাখার ফল Git-এর সঙ্গে মিলেছে; অনুপস্থিত ও ভুল প্রকল্প পাথে ফাঁকা stdout, stderr বার্তা ও এক্সিট 1 এসেছে। লম্বা নামের সীমা ও detached HEAD-এর বিকল্প সোর্সে দেখেছি, তবে ওই পরিস্থিতি চালাইনি।
4. বিশ্বস্ত প্রকল্পে নতুন একটি **ইন্টারঅ্যাকটিভ** Claude Code প্রসেস `claude --debug-file STARTUP_PRIVATE_LOG` দিয়ে চালু করুন এবং নিজের নিয়ন্ত্রণে থাকা ব্যক্তিগত পাথ ব্যবহার করুন। workspace trust মেনে নেওয়ার আগে প্রকল্প ও ব্যবহারকারীর hook দেখুন। debug লগে `SessionStart` ইভেন্ট, উৎস `startup`, নির্বাচিত স্ক্রিপ্ট পাথ, এক্সিট অবস্থা ও আউটপুট ব্যবস্থাপনা দেখুন। কোনো টুল ব্যবহার বা নিজে Git পড়তে না দিয়ে Claude-কে জিজ্ঞেস করুন সে শাখার কী প্রসঙ্গ পেয়েছে। উত্তর ও debug রেকর্ড সরাসরি ফলের সঙ্গে তুলনা করুন। Hook stdout Claude-এর প্রসঙ্গে যায়; দৃশ্যমান UI-তে বার্তা হিসেবে দেখা যাবে এমন প্রতিশ্রুতি নেই।
5. ওই সেশন থেকে বের হন। আলাদা প্রসেসে `claude --debug-file RESUME_PRIVATE_LOG --resume` দিয়ে আবার চালু করুন, তারপর `SessionStart` `resume` ইভেন্ট দেখুন এবং টুল বা Git আবার না পড়ে প্রশ্নের পরীক্ষা পুনরাবৃত্তি করুন। দুই debug লগ ব্যক্তিগত রাখুন; প্রকল্পের তথ্য প্রকাশ পেতে পারে। নন-ইন্টারঅ্যাকটিভ `-p` বা SDK চালালে একই workspace-trust প্রশ্ন আসে না এবং রিপোজিটরির hook নিজে থেকে চলতে পারে, তাই এই পরীক্ষায় ইন্টারঅ্যাকটিভ পদ্ধতি নিন। Anthropic জানায় ফাইল পর্যবেক্ষক সাধারণত hook সেটিংসের পরিবর্তন ধরে, তবে নতুন প্রসেসে শুরু ও পুনরায় চালুর পরীক্ষা বেশি পরিষ্কার হয়।
পরে স্বাভাবিক প্রকল্পের কাজে শাখা বদলালে সরাসরি পরীক্ষা ও নতুন সেশন চালিয়ে দেখুন লাইন বদলায় কি না। শুধু এই নির্দেশিকা পরীক্ষা করা হয়েছে বলতে শাখা বদলাবেন না।
## না চললে
স্ক্রিপ্টের সরাসরি ফল থেকে শুরু করুন, তারপর JSON মেলানো, `SessionStart` বানান, `startup|resume` matcher, প্রকল্প-রুট পাথ, `node` ও `git` পাওয়া যায় কি না, workspace trust ও debug ত্রুটি দেখুন। `CLAUDE_PROJECT_DIR` না থাকলে `CLAUDE_PROJECT_DIR is unavailable` stderr-এ ছাপে। খারাপ প্রকল্প পাথ বা Git ব্যর্থতায় `Could not read the project branch; check Git and project path` ছাপে। উভয়ই এক্সিট 1 দেয়, কোনো প্রসঙ্গ লাইন নয়। `SessionStart` ব্যর্থতা ত্রুটি বোঝায়, কাজ আটকায় না; এটি কোনো পদক্ষেপের অনুমতির বাধা হতে পারে না। টুলের কাজ নিয়ন্ত্রণের জন্য Anthropic `PreToolUse` নথিভুক্ত করেছে; এটি আলাদা ইভেন্ট এবং আলাদাভাবে পর্যালোচিত নকশা দরকার।
স্ক্রিপ্ট শুধু স্থানীয় Git চালায়, নেটওয়ার্ক অনুরোধ বা মডেল কল করে না। Claude Code শুরু, পুনরায় চালু ও প্রশ্নের পরীক্ষা অ্যাকাউন্ট, প্রদানকারী বা মডেলের বরাদ্দ খরচ করতে পারে; [Anthropic-এর খরচ নির্দেশিকায়](https://code.claude.com/docs/en/costs) বর্তমান শর্ত আছে। এখানে নির্দিষ্ট দাম বা অর্থের বিনিময়ে সেশন পরীক্ষার দাবি নেই।
কথোপকথন শুরু হওয়ার পরের আলাদা কাজের জন্য আমাদের [Claude Code সেশনের প্রসঙ্গ দেখা ও চালিয়ে যাওয়ার নির্দেশিকা](https://bigchange.ai/blog/claude-code-session-context-continue-guide) প্রসঙ্গ পরীক্ষা ও চালিয়ে যাওয়া ব্যাখ্যা করে। এটি শুরুর এই hook সেট করে না।
## উৎস ও আরও পড়ুন
- [Anthropic, Claude Code hook নির্দেশিকা](https://code.claude.com/docs/en/hooks) — বর্তমান প্রাথমিক স্পেসিফিকেশন ১৯ অক্টোবর ২০২৬-এ পরীক্ষা করা হয়েছে। এতে `SessionStart` উৎস ও matcher, exec রূপ `args`, পাথ placeholder, stdout প্রসঙ্গ, সেটিংস আবার লোড, বিশ্বাস, debug লগ ও বাধাহীন ব্যর্থতা নথিভুক্ত আছে। এটি নথি, BIG CHANGE-এর hook চালানো নয়।
- [Anthropic, hook দিয়ে কাজ স্বয়ংক্রিয় করুন](https://code.claude.com/docs/en/hooks-guide) — hook বসানো ও পরীক্ষার আনুষ্ঠানিক নির্দেশনা। ওপরের নির্দিষ্ট স্ক্রিপ্ট ও সেটিংস এই নির্দেশিকার জন্য পর্যালোচিত সীমাবদ্ধ BIG CHANGE উদাহরণ; সরবরাহকারীর নকল পরীক্ষার ফল নয়।
- [Anthropic, Claude Code সেটআপ](https://code.claude.com/docs/en/setup) — ইনস্টলেশন ও পরিবেশের চাহিদা। উদাহরণ ব্যবহারের আগে প্ল্যাটফর্মের বর্তমান নির্দেশনা দেখুন।
- [Anthropic, Claude Code ডেটা ব্যবহার](https://code.claude.com/docs/en/data-usage) — শাখার তথ্য মডেলের প্রসঙ্গে পাঠানোর আগে দেখার জন্য প্রদানকারীর বর্তমান ডেটা ব্যবস্থাপনার শর্ত; প্রকল্পের অনুমতি আলাদা সিদ্ধান্ত।
- [Anthropic, কার্যকরভাবে খরচ নিয়ন্ত্রণ করুন](https://code.claude.com/docs/en/costs) — ইন্টারঅ্যাকটিভ পরীক্ষার বর্তমান অ্যাকাউন্ট ও ব্যবহার নির্দেশনা। স্থানীয় Git স্ক্রিপ্ট নিজে মডেল বা নেটওয়ার্কে অনুরোধ করে না।
## Sources
- [Claude Code hook নির্দেশিকা](https://code.claude.com/docs/en/hooks) — Anthropic-এর বর্তমান প্রাথমিক ম্যানুয়াল, ১৯ অক্টোবর ২০২৬-এর অনুমোদিত স্ন্যাপশটের সঙ্গে ও লেখার সময় আবার মিলিয়ে দেখা। SessionStart startup/resume উৎস ও matcher-এর অর্থ, exec রূপ command ও args, প্রকল্প-রুট placeholder, সাধারণ stdout প্রসঙ্গ, সেটিংস পর্যবেক্ষক, workspace trust, debug-file দেখা, Windows-এর বাস্তব executable নিয়ম ও বাধাহীন SessionStart ত্রুটি নির্ধারণ করে। এটি পণ্যের আচরণ ব্যাখ্যা করে; BIG CHANGE Claude দ্বারা চালু hook চালায়নি। ম্যানুয়ালের নির্দিষ্ট সংশোধন তারিখ ছিল না।
- [hook দিয়ে কাজ স্বয়ংক্রিয় করুন](https://code.claude.com/docs/en/hooks-guide) — Anthropic-এর আনুষ্ঠানিক সেটআপ ও পরীক্ষার ধাপ। পাঠকের hook কনফিগারেশন ও ত্রুটি শনাক্তকরণে ভিত্তি দেয়, BIG CHANGE Claude Code-এর মধ্যে উদাহরণ চালিয়েছে এমন দাবি নয়। লেখার নির্দিষ্ট সীমাবদ্ধ Node স্ক্রিপ্ট ও সেটিংস আলাদাভাবে পর্যালোচিত স্থানীয় বাস্তবায়ন প্যাকেট থেকে এসেছে।
- [Claude Code-এর উন্নত সেটআপ](https://code.claude.com/docs/en/setup) — স্থানীয় Claude Code সেটআপ দেখার আনুষ্ঠানিক ইনস্টলেশন ও পরিবেশ নির্দেশনা। প্রস্তুতিতে শুধু সংস্করণ 2.1.301 দেখা গেছে; এই উৎস সেটিকে ন্যূনতম চাহিদা করে না।
- [Claude Code ডেটা ব্যবহার](https://code.claude.com/docs/en/data-usage) — অ্যাকাউন্টভেদে আনুষ্ঠানিক ডেটা ব্যবস্থাপনার শর্ত। Git শাখার তথ্য মডেলের প্রসঙ্গে দেওয়ার আগে পাঠককে তা দেখতে বলা হয়েছে; ছাঁকনি ও ছোট করা শাখার নাম থেকে গোপন গ্রাহক বা ঘটনার তথ্য প্রকাশ আটকায় না। সার্বিক গোপনীয়তার নিশ্চয়তা ধরে নেওয়া হয়নি।
- [কার্যকরভাবে খরচ নিয়ন্ত্রণ করুন](https://code.claude.com/docs/en/costs) — ইন্টারঅ্যাকটিভ শুরু/পুনরায় চালুর প্রশ্ন পরীক্ষার আনুষ্ঠানিক অ্যাকাউন্ট ও মডেল ব্যবহার নির্দেশনা। স্থানীয় স্ক্রিপ্ট নিজে মডেল বা নেটওয়ার্কে অনুরোধ করে না; বাস্তব Claude সেশন প্ল্যান, প্রদানকারী বা API বরাদ্দ খরচ করতে পারে। নির্দিষ্ট মূল্য বা অর্থের বিনিময়ে পরীক্ষার দাবি নেই।
- [Claude Code সেশনের প্রসঙ্গ কীভাবে দেখবেন ও চালিয়ে যাবেন](https://bigchange.ai/blog/claude-code-session-context-continue-guide) — আগের BIG CHANGE নিবন্ধ 414, শুধু প্রাসঙ্গিক অভ্যন্তরীণ লিংক ও সম্পর্ক শ্রেণিবিন্যাসের জন্য। এটি বর্তমান কথোপকথন দেখা ও তার কাজ চালিয়ে যাওয়া বোঝায়; এই hook-এর বাস্তবায়নের প্রমাণ বা একই ঘটনার সরাসরি তারিখযুক্ত পূর্বসূরি নয়।
BIG CHANGE নিউজলেটার
বড় ছবিটা। আপনার গতিতে।
এআই ও রোবোটিক্স নিয়ে সাম্প্রতিক খবর, নজর রাখার মতো পরিবর্তন এবং কাজে লাগানোর ব্যবহারিক ধারণা। দৈনিক ব্রিফিং, সাপ্তাহিক সংকলন বা মাসিক দৃষ্টিভঙ্গি বেছে নিন।
পরবর্তী নির্ধারিত প্রেরণ (UTC): . আপনি নিশ্চিত করার পরে পরবর্তী নির্ধারিত প্রেরণের সময় প্রথম সংখ্যাটি পাবেন।
আপনার গোপনীয়তা, আপনার পছন্দ।
প্রয়োজনীয় স্টোরেজ সাইটের নিরাপত্তায় সাহায্য করে এবং আপনার পছন্দ মনে রাখে। আপনি অনুমতি না দেওয়া পর্যন্ত ঐচ্ছিক Google Analytics বন্ধ থাকবে। প্রয়োজনীয় স্টোরেজ ব্যবহার করেই প্রতিটি গল্প পড়তে পারেন। গোপনীয়তার বিবরণ