Skip to content

Instantly share code, notes, and snippets.

View hdknr's full-sized avatar
💭
I may be slow to respond.

hdknr hdknr

💭
I may be slow to respond.
View GitHub Profile
@hdknr
hdknr / sli-slo-sla.md
Created May 11, 2026 01:59
SLI / SLO / SLA — 提案書で使い分ける「サービスレベル」3 用語入門

SLI / SLO / SLA — 提案書で使い分ける「サービスレベル」3 用語入門

IoT システムや SaaS の提案書を書いていると、お客様から「このシステム、ちゃんと動くんですか?」と聞かれます。この質問にどう答えるか で、契約交渉の主導権が決まります。

「99.9% 動きます」と言い切れば SLA (契約) になり、下回ったら違約金。「目標値です」と言えば SLO (内部目標) で、超過しても返金義務はない。この 1 文字違いで法的拘束力が変わります

本記事では、SRE (Site Reliability Engineering) 業界で標準となっている SLI / SLO / SLA の 3 用語を、提案書を書く立場から整理します。

3 用語の違い (要点)

@hdknr
hdknr / django-mptt-blog.md
Created April 20, 2026 00:58
django-mptt はなぜ unmaintained なのか — そして django-tree-queries への移行

django-mptt はなぜ「unmaintained」と書かれているのか — そして django-tree-queries への移行

django-mptt の README を開くと、いきなり以下の文言が目に飛び込んでくる。

This project is currently unmaintained

You can find alternatives to django-mptt on Django Packages. Maybe you do not need MPTT, especially when using newer databases. See django-tree-queries for an implementation using recursive Common Table Expressions (CTE).

「単に飽きて投げ出した」のか、それとも「技術的に役目を終えた」のか。本稿では django-mptt のリポジトリ、CHANGELOG、ソースコードを実際に読んで、その背景と後継への移行可否を整理する。

@hdknr
hdknr / claude-code-silent-degradation.md
Created April 3, 2026 00:06
Claude Code 開発で機能が静かにデグレードする問題と対策

Claude Code 開発で機能が静かにデグレードする問題と対策

TL;DR

Claude Code でリファクタリングや新機能追加を行うと、既存機能の出力品質が意図せず劣化することがある。機能は正しく動いておりテストも通るが、ユーザーが期待する情報が出力から消えている。これは「新しいコードパス」に注力するあまり「既存パスの出力同等性」が見落とされるために起きる。

何が起きたか

経緯

Claude Code でのDB開発: ALTER TABLE が漏れる落とし穴

TL;DR

Claude Code(AIコーディングアシスタント)に SQLAlchemy モデルへのカラム追加を依頼すると、models.py の変更とテストは通るが、既存DBへのマイグレーション(ALTER TABLE)が漏れる。テストは毎回クリーンなDBで実行されるため、本番で初めてエラーが発覚する。

何が起きたか

経緯

Claude Code + Self-hosted Runner: 「Auto mode is unavailable for your plan」エラーの原因と対処

症状

GitHub Actions の self-hosted runner で claude --print を使った自動処理が突然動かなくなった。

claude CLI failed (rc=1): stdout=Auto mode is unavailable for your plan
@hdknr
hdknr / llm-prompt-hardcode-bug.md
Last active March 27, 2026 04:11
「値は計算されていた。ただ届いていなかっただけ」— LLMエージェントプロンプトのハードコード問題

「値は計算されていた。ただ届いていなかっただけ」— LLMエージェントプロンプトのハードコード問題

TL;DR

自立型トレーディングシステムで、投資目標の進捗に応じてリスクパラメータを動的に調整する機能を実装した。計算ロジックは正しく動いていたが、計算結果がエージェントのプロンプトに届いていなかった。プロンプト内の数値がプレーンテキストでハードコードされていたため、エージェントは常に保守的な固定値に従い続けていた。


背景

@hdknr
hdknr / 01-planning.md
Created March 26, 2026 08:39
Claude Code で Laravel→Django 全自動移行をやってみた(全3回)

Claude Code で Laravel→Django 全自動移行をやってみた(1/3)計画編

はじめに

業務管理システム(PHP/Laravel 6.20)を Python/Django 4.2 に移行するプロジェクトを、Claude Code の自律実行でほぼ全自動で完遂しました。

  • 移行元: Laravel 6.20 / PHP 8.0 / MySQL 5.7 / Blade テンプレート
  • 移行先: Django 4.2 LTS / Python 3.11+ / MySQL 8.0 / Django Templates
  • 所要時間: 約 5.5 時間(準備フェーズ除く)
  • 成果物: 17 モデル / 50+ テンプレート / 199 テスト / 15,000 行の Python コード

AWS DMS Serverless の OOM 障害と監視の盲点 — 検知漏れの根本原因と対策

はじめに

AWS DMS Serverless Replication(CDC モード)が OOM(Out of Memory)で failed 状態になり、自動再起動の仕組みが検知できずに長期間停止していた問題について、根本原因と対策をまとめます。

構成

RDS (MySQL) → DMS Serverless (CDC) → S3 (Parquet)

開発サーバーの Let's Encrypt 証明書が切れたので自動更新できるようにした

きっかけ

ある日、開発環境の Web アプリにアクセスしたら証明書の期限切れ警告が表示された。

確認してみると、ワイルドカード証明書 (*.dev.example.com) がちょうどその日に期限切れになっていた。さらにもう1つ古い証明書も半年前に失効済み。

Certificate Name: dev.example.com-0001
@hdknr
hdknr / chatgpt-voice-mode-14-day-english-speaking-golden-prompts.md
Created March 6, 2026 07:27
ChatGPT音声モード × 14日間英会話特訓 — 詰まった言葉がスラスラ出る4つの黄金プロンプト

ChatGPT 音声モード × 14 日間英会話特訓 — 詰まった言葉がスラスラ出る 4 つの黄金プロンプト

@technocrat_s 氏のポストで紹介された記事が話題になっています。

【検証】ChatGPTと14日間、ガチの「英会話」特訓。詰まった言葉がスラスラ出る黄金プロンプト4つ

ライフハッカー・ジャパンの記事(原文: MakeUseOf / Saikat Basu)は、在宅勤務でスピーキング力が錆びついたライターが ChatGPT の高度音声モード(Advanced Voice Mode)をコーチに見立て、14 日間の集中特訓を行った検証記事です。思考と発話の間の「0.5 秒の遅れ」を消すために設計された 4 つのプロンプトと、その結果を具体的に報告しています。

問題 — 「考えてから話す」0.5 秒の壁