Repository navigation
docs: CLAUDE.md facts from replor, and fix man hanging without a terminal - #373
Merged
Merged
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
変更理由
Closes #369
claude/CLAUDE.mdに反映する。候補 A〜F の扱いは次のとおり(判断基準はdocs/claude-code.mdの「CLAUDE.md の基準」)openpty: Operation not permittedでその場で失敗し、TUI を手で確かめる流れは「報告」節で足りるので書かないAGENTS.md: 「ツールが無ければ先にmise install」が、claude/CLAUDE.mdの「依存の取得(mise installなど)も!で頼む」と食い違っていたMANPAGER: agent の Bash でman gitが 120 秒のタイムアウトまで戻らなかったmanを実行すると止まる.zshrcがMANPAGER='nvim +Man!'を設定し、Claude Code の shell snapshot がそれを引き継ぐ。macOS の/usr/bin/manはシェルスクリプトで、stdout が端末でなくてもeval "… | $MANPAGER"で pager に流す。nvim は来ない UI を待ち続ける。ユーザーのターミナルでのman ls | rg …も同じ経路を通る変更内容
docs: add cross-repo facts from replor to CLAUDE.md.— 「開発」に F、「仕様の確認」に E を 1 行ずつ追加docs: ask the user to run mise install in AGENTS.md.—mise installはユーザーに頼む形に揃えたfix: fall back to cat when man output is not a terminal.—MANPAGERを、stdout が端末のときだけ nvim を起動し、それ以外はcatに流す形にした影響範囲
対象: claude / zsh
claude/CLAUDE.mdは全プロジェクトの Claude Code のセッションに効くMANPAGERの変更は、新しく起動する zsh と、次の Claude Code のセッションから効く。端末でmanを開いたときの挙動(nvim で開く)は変わらないレビューの着目点
MANPAGERの値は、macOS のmanがevalで展開する前提でsh -c "…"にしている。MANPAGERをシェルを通さずに単語分割して実行するプログラムでは動かない。このリポジトリの環境でMANPAGERを読むのは/usr/bin/manだけと見ているCLAUDECODEで agent のセッションだけ外す案は採らなかった。ユーザーのターミナルでのパイプも同じ原因で壊れるため確認手順
macOS(Darwin 25.6.0)、Claude Code 2.1.296 の Bash(sandbox 内、stdout は端末でない)で実行した。
stdout がパイプでも
manはMANPAGERを呼ぶ。変更後の値では、すぐに本文が返る(終了コード 0)。値は
.zshrcの nvim の節を zsh で source して取り出したもの。手動確認
sandbox では pty を開けないため、端末での挙動は確認していない。
echo $MANPAGERがsh -c "if [ -t 1 ]; then exec nvim +Man!; else exec cat; fi"になっていることを確かめるman lsを実行し、これまでどおり nvim で開くことを確かめるman ls | head -3を実行し、止まらずに先頭の 3 行が出ることを確かめる範囲外 / 既知の問題
nvim-pack-lock.jsonが"plugins": []に書き換わる。原因は Neovim 0.12.5 のvim.packで、入れられなかった plugin を lock から消してから書き込む(plugin 未取得の環境で Neovim を起動すると、nvim-pack-lock.json と違う rev の plugin が入る #368 のコメントに記録)。issue にするかは未定