এমনটা ঘটছে → কী করবেন
শিরোনাম দিয়ে নয়, উপসর্গ দিয়ে খোঁজা হয় এখানে। "কী করবেন"-এর নিচের লিংকে ক্লিক করলে সেই সমাধানটি যেখানে লেখা আছে সেই অংশে চলে যাবেন। সব লেখার সূচি এই পাতার নিচে আছে।
এই টেবিলটি Claude Code (Anthropic-এর কোডিং এজেন্ট) ধরে নিয়ে লেখা। hook, CLAUDE.md, subagent ও auto memory হলো এর ফিচারের নাম।
| এমনটা ঘটছে | কী করবেন |
|---|---|
| AI যতবার টেস্ট চালায়, ততবার হাজার হাজার লাইনের আউটপুট context-এ ঢুকে পড়ে |
টেস্ট রান একটিমাত্র wrapper script-এ একত্র করুন, পুরো আউটপুট log file-এ লিখে রাখুন, আর AI-কে শুধু ব্যর্থতার সারাংশ ফেরত দিন। |
| AI যত বেশি জ্ঞাননোট (knowledge note) memory-তে সংরক্ষণ করে, পরবর্তী প্রতিটি session-কে তত বেশি পড়তে হয় |
memory-তে লেখার ঠিক আগে চলা একটি PreToolUse hook দিয়ে AI-কে একটি checklist পড়তে বাধ্য করুন, আর instruction file-এ (CLAUDE.md) শুধু "লেখার আগে পড়ো" এই এক লাইনটুকুই রাখুন। |
| টেস্ট pass করছে, কিন্তু সেগুলো আসলে কিছু রক্ষা করছে কিনা তা বোঝা যায় না |
mutation testing (কোড ইচ্ছাকৃতভাবে ভেঙে দেখা হয় টেস্ট ধরতে পারে কিনা) নীতিটিকে এক পাতার ডকুমেন্টে লিখে রাখুন, আর টেস্ট review করতে বলার সময় AI-কে সেটা পড়তে দিন। |
| নিবন্ধিত skill AI কখনো ব্যবহার করে, কখনো করে না |
কমান্ডটিকে সাধারণ script হিসেবেই রাখুন, ভুলভাবে call করলে PreToolUse hook দিয়ে থামান, আর কোন ডকুমেন্ট পড়া উচিত তা দেখিয়ে দিন। |
| sub-agent-কে দেওয়া কাজ শেষ না হওয়া পর্যন্ত ভেতরে কী ঘটছে বোঝা যায় না |
কোন কাজ sub-agent-কে দেওয়া যাবে এবং শুরুর আগে কোন input file দরকার তা YAML-এ সংজ্ঞায়িত করুন, আর শুরুর আগে hook দিয়ে সেটা যাচাই করুন। |
| instruction file-এ যত বেশি নিয়ম যোগ করা হয়, আগের নিয়মগুলো তত কম মানা হয় |
"এটা করবে না" ধরনের প্রতিটি নিয়মকে একটি একটি করে, লঙ্ঘন ধরতে পারে এমন automated test (Minitest)-এ রূপান্তর করুন। |
| সমান্তরালে চলা session-গুলো যে memory শেয়ার করে সেটা অগোছালো হয়ে যায়; নীতি পড়িয়েও কাজ হয় না |
একই নীতি ফাইলটিকে PostToolUse hook-এ সরিয়ে নিন, আর save হওয়ার পরের diff-এর সাথে সেটা দেখান। যা পড়ানো হচ্ছে তা বদলাবেন না, শুধু সময়টা বদলান। |
| একই ভুলের সমাধান লিখে রাখলেও, AI পরের বার আবার সেই একই ভুল করে |
retry-এর সময়কার নীতি কয়েক লাইনের একটি ফাইলে লিখে রাখুন, আর ব্যর্থতা শনাক্ত করা hook থেকে সেটা স্বয়ংক্রিয়ভাবে যোগ করুন। |
| handoff নোট আর completion report পড়েও দেখা যায়, অসুবিধাজনক অংশগুলো বাদ পড়ে গেছে |
প্রতিবার completion report-এর পাশে git diff --stat-এর মতো কমান্ড দিয়ে যান্ত্রিকভাবে বের করা সংখ্যাগুলো রাখুন। |
| মেশিন যে সংখ্যা গুনেছে, রিপোর্টে পৌঁছানোর আগেই সেটা অন্য সংখ্যায় বদলে যায় |
সংখ্যাসংবলিত লাইনে একটি নির্দিষ্ট prefix জুড়ে দিন, আর hook দিয়ে যাচাই করুন সেটা হুবহু কপি হয়েছে কিনা। |
| কাজ করার সময় AI-কে মাঝপথে থামালে, তারপরের কাজ এলোমেলো হয়ে যায় |
কাজের মাঝপথে মানুষ হস্তক্ষেপ না করে, save হওয়ার পরপরই নীতি ফেরত দেওয়া একটি PostToolUse hook আর ব্যর্থতা শনাক্ত করে কাজ ফেরত পাঠানো একটি hook-কে হস্তক্ষেপ করতে দিন। মানুষ কাজের একটি ধাপ শেষ হওয়া পর্যন্ত অপেক্ষা করে। |
| session-এর শেষে কী পড়তে হবে আর কী পড়া লাগবে না তা ঠিক করা নেই |
ডেলিভারেবল বা কাজের log কিছুই না পড়ে, শুধু test বা linter-এর exit code দিয়ে pass/fail ঠিক করুন। |
| একবার প্রত্যাখ্যান করা প্রস্তাব পরের session-এ আবার ফিরে আসে |
বাতিল করা প্রতিটি সিদ্ধান্তকে একটি নির্দিষ্ট format-এ একটিমাত্র ডকুমেন্টে জড়ো করুন। |
| নিষেধের এক লাইন লিখে দেওয়ার পরও সেটা কখনো বেশি, কখনো কম অর্থে ব্যাখ্যা করা হয় |
প্রত্যাখ্যাত সিদ্ধান্তগুলো জড়ো করা একটিমাত্র ডকুমেন্টে (যেমন non_goals.md) প্রতিটি নিষেধের পাশে একটি "কারণ" শিরোনাম যোগ করুন, আর সিদ্ধান্তের সাথেই সেটা লিখে রাখুন। |
| নিষেধটি ঠিকভাবে লেখা থাকলেও মানা হয় না, আর প্রতিবার এ নিয়ে জিজ্ঞাসা আসে |
প্রত্যাখ্যাত সিদ্ধান্তের ডকুমেন্টে প্রতিটি নিষেধের পাশে একটি "প্রযোজ্যতার সীমা" শিরোনাম যোগ করুন, আর সিদ্ধান্ত নিতে দ্বিধা হয় এমন সীমারেখার ঘটনাগুলো এক এক লাইনে লিখে রাখুন। |
| একই নির্দেশ একাধিক sub-agent-কে দিলে, প্রতিটি থেকে ফেরত আসা ফলাফলের আকার আলাদা হয় |
sub-agent-কে দেওয়া যায় এমন কাজের তালিকায়, শুরুর আগে কোন input file তৈরি রাখতে হবে তা স্পষ্টভাবে লিখে দিন। |
| যেসব নিষেধের কোনো automated test নেই, সেগুলো শুধু লেখা অবস্থাতেই জমতে থাকে |
প্রত্যাখ্যাত সিদ্ধান্তের ডকুমেন্টের তালিকায় একটি "machine-checked" শিরোনাম যোগ করুন, আর প্রতিটি আইটেমের জন্য সংশ্লিষ্ট automated test (Minitest) আছে কিনা তা স্পষ্ট করে দিন। |
| AI-এর কাজ প্রতিবার "স্ক্রিন খুলে দেখে নিন" বলে শেষ হয় |
Playwright দিয়ে একটি smoke test তৈরি করুন, আর pass/fail ঠিক করুন স্ক্রিনের চেহারা দিয়ে নয়, database-এ থাকা রেকর্ড দিয়ে। |
| AI যখনই একটু অসংগত কিছু বলে, তখনই ব্যাখ্যা দিয়ে সেটা ঠিক করতে হয় |
প্রতিটি বিচ্যুতি মানুষ ব্যাখ্যা করে ঠিক না করে, দোষ ধরিয়ে দেওয়ার কথাটা hook-এর stderr (exit 2) আর automated test-এর failure message-এ লিখে রাখুন, যাতে সেই পথেই তা AI-এর কাছে পৌঁছায়। |
| প্রত্যাখ্যাত সিদ্ধান্তের তালিকা ক্রমাগত বেড়ে চলেছে, একদিন হয়তো আর কেউ পড়বে না |
প্রত্যাখ্যাত সিদ্ধান্তের ডকুমেন্টের শেষে একটি "গৃহীত হয়নি" অংশ যোগ করুন, আর বাতিল হওয়া প্রস্তাবগুলো সেখানে লিখে রাখুন। |
| instruction file-এর "অবশ্যই চালান" নির্দেশগুলো কমছেই না |
instruction file-এ "অবশ্যই চালান" বলা প্রতিটি কমান্ড pre-commit hook-এও আছে কিনা, তা মিলিয়ে দেখার জন্য একটি automated test লিখুন। |
| পদ্ধতি পর্যন্ত লিখে দেওয়ার পরও, সেভাবে সমাধান হয়ে ফিরে আসে না |
পদ্ধতি নির্দেশ করার বদলে, প্রতিটি ব্যবহারের ক্ষেত্র (use case) অনুযায়ী sub-agent শুরুর আগে কোন input file অবশ্যই থাকতে হবে তা সংজ্ঞায়িত করুন। |
| বাগ জানাতে প্রতিবারই ধাপগুলো আর উপসর্গ নিজে হাতে লিখতে হয় |
একটি বাগ রিপোর্ট ফর্ম বসান, যেখানে মানুষ শুধু উপসর্গের এক বাক্য লিখবে, আর URL, action history, browser তথ্য JavaScript দিয়ে স্বয়ংক্রিয়ভাবে সংগ্রহ করা হবে। |
| প্রতিবারই "আগে একটা plan দাও" লিখতে হয়, এটাই এক বাড়তি ঝামেলা |
নতুন কিছু implement করার দরকার নেই। একটি design ডকুমেন্ট রেখে দিলে, AI বিদ্যমান ডকুমেন্ট পড়ে একই ধাঁচ অনুসরণ করবে। |
| যে লাইনগুলো মানানো সবচেয়ে জরুরি সেগুলোই সবচেয়ে জোর দিয়ে লেখা, কিন্তু তাতে কাজ হচ্ছে কিনা বোঝা যায় না |
প্রভাব মাপা বাদ দিয়ে, instruction file-এ জোর দেওয়া (emphasis) বাক্যাংশ থাকা লাইনের সংখ্যা গুনুন, আর একটা সীমা ছাড়ালে fail করে এমন একটি automated test (ratchet) বসান। |
| sub-agent-এর ডেলিভারেবল প্রত্যাশা করা আকারের চেয়ে ভিন্নভাবে ফিরে আসে |
sub-agent-এর প্রতিটি ব্যবহারের ক্ষেত্র অনুযায়ী, ডেলিভারেবলের acceptance criteria (ফাইলের নাম, format, আবশ্যক ফিল্ড) এক পাতার ডকুমেন্টে সংজ্ঞায়িত করুন। |
| ভুল খুঁজে পেলে "ঠিকমতো পড়েছিলে তো?" বলে জেরা করতে ইচ্ছা করে |
জেরা করার বদলে, প্রতিটি অনুরোধের দ্বিতীয় বাক্যটিকে "...এমন নয় কি?" ধরনের প্রশ্নবোধক টেমপ্লেটে স্থির করে রাখুন। |
| ফিরে আসা উত্তরে "এটা তো ঠিক না" বলে ফেরত পাঠালেও উন্নতি হয় না |
নিজে দোষ ধরিয়ে দেওয়ার বদলে, বিকল্পবিহীন নিষেধগুলো PostToolUse hook দিয়ে save হওয়ার সাথে সাথেই diff-এর পাশে দেখান। |
| AI যে ফাইল খোলেইনি, সেটার ভেতরের কথা যেন খুলে দেখেছে এমনভাবে বলে |
যে ডকুমেন্ট থেকে তথ্য নেওয়া হয়েছে সেটাতে এবং কোডে, দুই জায়গাতেই পরস্পরের সাথে মেলে এমন marker লিখতে বাধ্য করুন, আর automated test দিয়ে যাচাই করুন marker-গুলো সত্যিই আছে কিনা। |
| AI বারবার "A নাকি B, কোনটা নেব?" জিজ্ঞেস করতে থাকে, আর কাজ থেমে যায় |
সঙ্গে সঙ্গে উত্তর দেওয়া বন্ধ করুন, আর বিকল্প বাছাইয়ের সিদ্ধান্তটা automated test বা hook-এর দিক থেকে ঠিক হোক এমন ব্যবস্থা করুন। |
| AI-কে দিয়ে review করানো হচ্ছে, কিন্তু ও আসলে কী দেখছে না তা বোঝা যায় না |
ফাইল স্ক্যান করে অথচ সংখ্যার নিম্নসীমা (assert_operator ... :>=) নেই এমন automated test-গুলোকে, বাইরে থেকে গুনে দেখা আরেকটি automated test দিয়ে খুঁজে বের করুন। |
| screenshot জমতে থাকে, কিন্তু কোনটা কী যাচাই করার জন্য নেওয়া তা বোঝা যায় না |
স্ক্রিন যাচাইয়ের আগে "কী verify করা হচ্ছে" আর "সস্তা উপায়ে কেন হবে না" এই দুই প্রশ্নের উত্তর দিতে বলুন, আর unit test → integration test → E2E, এই ক্রমে সস্তা উপায় থেকে চেষ্টা করার একটি এক-পাতার নির্দেশিকা রাখুন। |
| লিখে জানানোর একটি ধাপ রাখা হয়েছে, তবুও না লিখেই চলে যাওয়া রানের সংখ্যা গোনা যায় না |
screenshot বা E2E-এর আগে "কী verify করা হচ্ছে" লেখা একটি declaration file (যেমন tmp/visual_verification.md) লিখতে বাধ্য করুন, সেটার অস্তিত্বকে PreToolUse hook চলার শর্ত বানান, যাতে সেটা না থাকলে screenshot বা E2E শুরুই না হয়। |
| কোড না বদলালেও একই টেস্ট আবার চলে, আর সেই সময়টা বসে থাকতে হয় |
টেস্টের wrapper script-এ একটি --last অপশন যোগ করুন, যেটা আগের log আবার দেখিয়ে দেয়, ফলে আবার চালানোর দরকার পড়ে না। |
| কিছুই না ভাঙার পরও, অচেনা এরর সারি সারি দেখা যায় |
টেস্টের wrapper script-এ একটি exclusive lock নিন (mkdir-এর atomicity ব্যবহার করে), আর সেটা না পেলে টেস্ট না চালানোর ব্যবস্থা করুন। |
| "টেস্ট pass করছে" রিপোর্টে, যেই অংশ চলেইনি সেটার কথা লেখা থাকে না |
ভারী E2E টেস্টগুলোতে এলাকার নাম দিয়ে tag লাগান, ডিফল্টভাবে সেগুলো skip করুন, আর প্রতিবার কোন এলাকা চলেনি তার তালিকা প্রিন্ট করুন। |
| কাজের পদ্ধতি বলে দেওয়া নির্দেশ আসলে মানা হয়েছে কিনা তা পরে বোঝার উপায় থাকে না |
পদ্ধতি মানাতে চাইলে নির্দেশের ভাষা আরও জোরালো না করে, সেই পদ্ধতি অনুসরণ করার প্রমাণ ডেলিভারেবলে থেকে যায় এমনভাবে বদলান (যেমন: প্রতিটি খোলা ফাইলের জন্য এক লাইন প্রিন্ট করানো)। |
| বসানো wrapper মাঝপথে আবার কাঁচা কমান্ডে ফিরে যাচ্ছে |
wrapper ব্যবহার করাতে চাইলে নির্দেশ জোরালো না করে, কাঁচা কমান্ডে ফিরে যাওয়ার কোনো প্রয়োজন এখনো আছে কিনা (অর্থাৎ wrapper-এর কোনো ক্ষমতা কম আছে কিনা) তা যাচাই করুন। |
| একই প্রশ্ন বারবার করলে প্রতিবার আলাদা উত্তর আসে, আর সেগুলো একত্র করলে কিছু একটা হারিয়ে যায় |
একাধিক উত্তরকে একটিতে মিলিয়ে ফেলার আগে, প্রতিটি ধরনের পর্যবেক্ষণ কতগুলো উত্তরে উঠে এসেছে (কতটার মধ্যে কতটায়) তা প্রিন্ট করুন। |
| "দরকার হলে ... করুন" লেখা লাইনটা আদৌ কার্যকর হয়েছিল কিনা বোঝা যায় না |
"দরকার হলে ... করুন" ধরনের শর্তসাপেক্ষ নির্দেশ না লিখে, সেই ধাপ পার না হলে পরের ধাপে যাওয়া যাবে না এমন একটি hook দিয়ে বাধ্য করুন। |
| "আরেকবার ভেবে দেখো" বললে উত্তর বদলায়, কিন্তু AI আসলে বুঝেছে কিনা তা বোঝা যায় না |
"আরেকবার ভেবে দেখো" বলে ফেরত না পাঠিয়ে, কোন premise ভুল তা নির্দিষ্টভাবে দেখিয়ে দিন। |
| "অনুমান করো না" লিখে দেওয়ার পর থেকে AI কিছুই না বানিয়েই ফিরে আসতে শুরু করেছে |
শুধু নিষেধ না দিয়ে, "প্রযোজ্য না হলে 'প্রযোজ্য নয়' লিখুন"-এর মতো একটা বিকল্প আউটপুট একসাথে লিখে দিন। |
| ভালোভাবে চলা কথোপকথন চালিয়ে গেলে, যাচাই করার কাজ ক্রমশ বেড়ে যায় |
কাজের একটি ধাপ শেষ হলে সেই session শেষ করুন, আর পরের কাজ শুরু করুন একটি নতুন session-এ। |
| সব ডেলিভারেবল ঠিকই আছে, কিন্তু সেগুলোতে দেখা না যাওয়া অপচয় জমতে থাকে |
ডেলিভারেবল প্রস্তুত হয়ে গেলে, কাজের log (transcript) একটি script দিয়ে একবার হিসাব করে দেখুন। |
| পরের মানুষের জন্য লিখে রাখা জ্ঞান বাস্তবের সাথে না মিলে পুরনো হয়ে যায় |
জ্ঞান ডকুমেন্টে না লিখে, সেটাকে automated test-এর failure message বা hook-এর stop message-এর ভেতর বসিয়ে দিন, যাতে দরকারের মুহূর্তেই সেটা বেরিয়ে আসে। |
| কারণ খুঁড়তে খুঁড়তে, উত্তর পাওয়ার পরও পড়া চালিয়ে যাওয়া হয় |
কাজের log থেকে "কিছু না বদলেই চলতে থাকা পড়ার ধারাবাহিকতা" গুনুন, আর খোঁড়া শুরু করার আগেই থামার শর্তটা এক লাইনে লিখে রাখুন। |
| যে model-এর দাম সবচেয়ে কম, সেটাকেই ব্যবহারের ক্ষেত্র না মেপে ডিফল্ট বানানো হয়েছে |
একই কাজ সস্তা ও দামি দুটো model-কেই দিন, আর শেষ হওয়া পর্যন্ত লাগা turn-এর সংখ্যা এবং নতুন পড়া, পুনর্ব্যবহৃত (cache read) ও লেখা পরিমাণ আলাদা আলাদাভাবে গুনে তারপর সিদ্ধান্ত নিন। |
| কাজ না হলে, mechanism ঠিক করার বদলে বড় model-এ যাওয়া হয় |
একই কাজ দামি ও সস্তা দুই model-কেই দিন, আর শুধু সস্তা model যেখানে ব্যর্থ হয়েছে সেই জায়গাগুলোকে স্থায়ী একটি check বানিয়ে রাখুন। |
| মূল session নিজেই শেষ করতে পারত এমন খোঁজাখুঁজিও, সাবধানতাবশত sub-agent-কে দেওয়া হচ্ছে |
দেওয়ার আগে দেখুন "সেই premise parent agent-এর কাছে আগে থেকেই আছে কিনা"। থাকলে parent agent-এই চালিয়ে যান, না থাকলে শুধু বিপুল পরিমাণ পড়ার কাজটুকু sub-agent-কে দিন। |
| ভাবনাচিন্তা ছাড়াই কাজটা চারভাগে ভেঙে একসাথে চালানো হচ্ছে |
একটি sub-agent-কে যতটা দেবেন, তা এক দফার উত্তরে ফেরত দেওয়া যায় এমন আকারের মধ্যে রাখুন। খরচ ঠিক করে সংখ্যা নয়, ভাগ করা প্রতিটি sub-agent-কে parent agent-এর সাথে কতবার আসা-যাওয়া করতে হচ্ছে সেটাই। |
| কাজের মাঝপথে বাইরে থেকে "এটাও দেখো" বলে ঢুকিয়ে দেওয়া হচ্ছে |
কাজের একটি ধাপ শেষ হওয়া পর্যন্ত অপেক্ষা করুন, তারপর পরিসর ছোট করে বাড়তি অনুরোধটা যোগ করুন। AI-কেই ঘাটতি সম্পর্কে জিজ্ঞেস করার সময় অবশ্যই যোগ করুন: "যথেষ্ট হলে যথেষ্ট বলেই লিখুন"। এতে ওর একটা বেরোনোর পথ (escape hatch) থাকে, ঘাটতি বানিয়ে বলতে হয় না। |
| কোন model ব্যবহার করা হবে তা তুলনা করে ঠিক করা হচ্ছে |
model তুলনা শুরু করার আগে, সেই তুলনাটা কয়টা hook বা automated test-এর সমান পরিশ্রম তা গুনুন। যদি সংখ্যাটার চেয়ে বেশি mechanism লিখে ফেলা যায়, তাহলে তুলনার আগে সেগুলোই বসিয়ে দিন। |
| "কোনো পার্থক্য পাওয়া যায়নি" বলে যাচাই-পর্ব গুটিয়ে ফেলা হচ্ছে |
"কোনো পার্থক্য পাওয়া যায়নি" বলে গুটিয়ে ফেলার আগে দুটো জিনিস গুনুন। হিসাব থেকে বাদ পড়া কোনো ফলাফল (যেমন ব্যর্থ sub-agent) থাকলে সেটা ফিরিয়ে নিয়ে আবার গুনুন, আর সব শর্তেই শূন্য এমন আইটেম অর্ধেকের বেশি হলে কাজটার বর্ণনা বদলে আবার মাপুন। |
সব লেখার সূচি
প্রতিটি সিরিজ অনুযায়ী, ভূমিকা থেকে শেষ পর্ব পর্যন্ত ক্রম অনুসারে সাজানো।
はじめに —— 3 つの連載を、1 冊に
バイブコーディングにおける読まない技術
- 読まない技術 序論 AIの出力を、もうほとんど読んでいない
- 読まない技術 第1回 テスト結果を読まない技術
- 読まない技術 第2回 メモリを読まない技術
- 読まない技術 第3回 単体テストを読まない技術
- 読まない技術 第4回 スキルを使わない技術
- 読まない技術 第5回 サブエージェントの出力だけは読め
- 読まない技術 第6回 ルールを読まない技術
- 読まない技術 第7回 共有メモリを整理しない技術
- 読まない技術 第8回 修正履歴を読まない技術
- 読まない技術 第9回 引き継ぎを読まない技術
- 読まない技術 第10回 AIに要約しろと言わない技術
- 読まない技術 第11回 口を挟まない技術
- 読まない技術 第12回 作業結果を読まない技術
- 読まない技術 最終回 AIの出力を、ほとんど読まなくなった
AIの意見を聞かない技術
言わない技術
- 言わない技術 序論 AI に指示することが、ほとんどなくなった
- 言わない技術 第1回 検証を指示しない技術
- 言わない技術 第2回 具体的な指示を出さない技術
- 言わない技術 第3回 不具合詳細を書かない技術
- 言わない技術 第4回 計画を書けと言わない技術
- 言わない技術 第5回 念を押さない技術
- 言わない技術 第6回 サブエージェントの出力だけは、細かく指示しろ
- 言わない技術 第7回 AI を問い詰めない技術
- 言わない技術 第8回 AI にダメ出ししない技術
- 言わない技術 第9回 AI に考えさせない技術
- 言わない技術 第10回 質問に答えない技術
- 言わない技術 第11回 AI にレビューをさせない技術
- 言わない技術 最終回 何もしない技術
付録
はじめに —— 前巻の続きを、もう 1 冊に
確かめない技術
動かさない技術
追わない技術
番外編
- 番外編 A-1 整理する技術 —— 記録が増えたときに、何が起きているか
- 番外編 A-2 指示を残す技術 —— 「調べるだけ」が通らなかった日
- 番外編 A-3 参照するタイミングを変える技術 —— 2,000 行の壁
- 番外編 A-4 導出を依頼者の言葉と分ける技術 —— 誰も言っていない条件が、memory に載った日
- 番外編 A-5 memory を要約しない技術 —— 整理から、要約を抜く
- 番外編 A-6 責務で線を引く技術 —— 仕組みが増えたときに、どれを消すか
- 番外編 A-7 読まれたかを確かめる技術 —— 確かめるのをやめて、読めていない形を止めた
- 番外編 A-8 面積で数える技術 —— 読ませた量で数えていたら、102 倍外していました
- 番外編 A-9 ルールを短くする技術 —— 読みに来るのは、止められた直後の人です
- 番外編 B-1 連載を本にする技術 —— 本単位のスイッチでは、足りなかった日
- 番外編 C-1 校正の方法に、先に本編を当てる技術 —— 方法を決める文が、本文と同じ地雷を踏んでいた日
- 番外編 C-2 仕組みと人を分ける技術 —— 検査を置いたその手で、検査の外側で 2 度転んだ日
- 番外編 C-3 要素ごとに観点を変える技術 —— 一様に当てた点検が、要素をまたいだところで数を落としていた
- 番外編 C-4 指示の揺れを、事故として残す技術 —— 事故を見て置いた仕組みは、まだ一度も鳴っていない
- 番外編 C-5 作業の流れを見る技術 —— 終わりにしたつもりの日に、まだ起きていたこと
- 番外編 C-6 作業を進める技術 —— 選ぶ場面が、1 つも残らなかった日
- 番外編 C-7 基準の出どころを見る技術 —— 2 分前に開いたページに、答えが書いてありました
- あとがき —— 本当の事実はどうでもいい話