77 Commits

Author SHA1 Message Date
coji 9a78a42964 docs: optimize release notes HTML for mobile devices
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-04 20:45:42 +09:00
coji cecd53e98d docs: READMEの文体憲法初出箇所にファイルリンクを追加
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-04 16:09:08 +09:00
coji 71f006b5c7 docs: v1.5.0 ビジュアルリリースノートの追加とREADME等の更新
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-04 15:09:26 +09:00
Coji Mizoguchi 21e632661a Merge pull request #7 from coji/version-1.5.0
feat: 6軸推敲ルーブリックの導入とREADME刷新 (v1.5.0)
v1.5.0
2026-09-04 04:34:42 +00:00
coji 01802de30f feat: 6軸推敲ルーブリックの導入とREADME刷新 (v1.5.0)
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-04 13:33:47 +09:00
coji 0f1cc1c5a4 docs: README を初見レビューと読みやすさレビューで磨き込む
- 設計思想の長段落を「判定は目視」「指し示しは機械」の2段落に分割し、lint 節と重複していた詳細を削除
- 参考にした資料に meiseki への謝辞を追加
- 使い方の冒頭に Before/After の実例を追加(examples.md 事例1、lint の実検出3語つき)
- 英語 blockquote に English summary ラベル、インストール1と3の使い分け、PEP 723 の平文化、文体憲法の例示3つ
- 開発史・旧称の内輪情報を削除、リリース手順を開発者向け節へ移動
- 主述のねじれ2件、「の」の連鎖、時制の不揃いなど読みやすさレビューの指摘9件を修正

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-17 09:56:52 +09:00
coji 004e6ba849 docs: README を読みやすく改稿し、読解負荷レーン(--reading-load)を追記する
- 一文の長さ・括弧の割り込み・中点列挙の反復を整理し、参照パスはリンク化
- 「効きます」の根拠(AI臭は構造に染み込むため事後修正は書き直しに近い)を明記
- semantic.py を独立セクションに分離、lint セクションに --genre / --reading-load を追加
- 設計思想の「検出器を増やしません」を v1.4.0 の実態(判定はしない・指し示しは opt-in)に更新

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-17 09:42:01 +09:00
Coji Mizoguchi 0381a9eab9 Merge pull request #6 from coji/version-1.4.0
version 1.4.0
2026-08-16 16:54:57 +09:00
coji d42dc5ce15 version 1.4.0
- 読解負荷レーン `lint.py --reading-load` を追加(opt-in、severity info のみ)。
  検出器5本: sentence_too_long / buried_list / double_negative / kanji_run / no_chain。
  自然度スコアにも --baseline 比較にも入らない独立レーンで、既存の出力は不変。
- 悪文カタログ `readability-antipatterns.md` を読解負荷順の A→J 27項目に再編。
  各項目の「検出」欄をコーパス検証の結果と数値に置き換えた。
- `repeated_sentence_lead` / `repeated_syntax_template` が文頭の Markdown 記法
  (`**` `![`)を反復として数えていたバグを修正。実測で42%が記号由来だった。

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-16 16:47:52 +09:00
Coji Mizoguchi e7b24e48bd Merge pull request #5 from coji/reading-load-lane
読解負荷レーン(--reading-load)の追加、悪文カタログの A→J 再編、文頭反復の誤検知修正
2026-08-16 16:43:18 +09:00
coji c208e958ba feat: 読解負荷レーン(--reading-load)を追加する
AI臭さの検出とは別目的の、推敲用の指さしレーンを opt-in で追加した。検出器は5本
(sentence_too_long / buried_list / double_negative / kanji_run / no_chain)で、
出力は severity info のみ。判定もスコアも出さない。

## 既存レーンと混ぜない

run_reading_load() は run_lint() と独立した関数にしてある。findings にも stats にも
--baseline 比較にも入らない。混ぜた瞬間に「AI臭さの採点」と「読みやすさの推敲」という
別目的の指標が同じスコアに乗り、どちらの判断も濁るため。--reading-load を付けない
ときの出力は完全に不変(回帰確認済み)。

## なぜ readability-sweep.md の NO-GO と矛盾しないか

同レポートは文長・読点密度・二重否定・漢字比率を検証して実装推奨0件と結論しているが、
その判定基準は「AI か人間かを弁別できるか」であり分類器としての基準だった。文長の
AI検出率1.0%は「長い文はAIの証拠にならない」という意味であって「長い文は読みやすい」
という意味ではない。このレーンの採否基準は弁別力ではなく「指摘に従って直した文が、
原文より読みやすくなるか」に置く。

## 検出器を足す基準

読解負荷は AI に見える(142字の文は読めば長いと分かる)。それでも検出器が要るのは
網羅性のためで、15,000字の文書を読む AI は11本ある長文の何本かには気づいても全部には
気づかない。したがって足してよいのは「読み流すと見落とすもの」だけ。

## 校正

実文書241本(9,889文)+人間執筆10本(379文)で校正した。詳細は
corpus/reports/reading-load-calibration.md。校正で変えたのは4点。

- too_many_ten(読点4個以上)を buried_list に置き換え。文書の62%が発火し、中身は
  ほぼ全件が同格の列挙だった。読点の打ち方ではなく列挙の構造化の問題(B4 → F1)
- buried_list の項目3個は精度が落ちるため一文80字以上に限定(670→503件)
- kanji_run から固有名詞を除外(49→44件)。「東京地方裁判所」は分解できない名前で、
  書き手が直せる読みにくさではない
- double_negative から条件形「〜ないと動かない」を除外(73→49件)。必要条件を述べる
  標準的な言い方で、読み手が符号を計算することはない

doubled_conjunctive_ga は削除した。AI生成9,889文で1件、人間執筆379文で0件しか
発火しない。初版レポートに書いた「人間の草稿に効く想定」は、人間ベースラインが否定した。

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-16 16:27:09 +09:00
coji c14016cb36 docs: 悪文カタログを読解負荷順の A→J に再編し、検出欄に検証結果を書く
readability-antipatterns.md を「文・語彙・段落・表記の4層」から、読解負荷の大きい順に
並べた A→J の27項目へ組み替えた。旧25項目はすべて残し、C2(サ変名詞化と「の」の連鎖)と
F1(埋もれた列挙)を追加。各項目を 問題 / Before / After / 注意 / 検出 の定型に揃えた。

いちばんの変更は「検出」欄の中身で、従来の「未実装」「目視確認」という書き方を、
corpus/reports/readability-sweep.md の検証結果と数値に置き換えた。たとえば一文長は
「未実装」ではなく「候補1として検証済み。FP率3.6%、AI検出率1.0%でNO-GO。長文はAIの特徴
ではなく、むしろ人間の良文に出る」と書く。一度GOが出てから品質軸の再検証で撤回された
3項目(受動態率・連鎖が・こそあど密度)も、撤回の理由と数値ごと残した。

「未実装」としか書いていないと、同じ検出器の追加提案が繰り返し出て、そのたびに
コーパス検証をやり直すことになる。数値と判定基準が書いてあれば、そこで止まる。

A→H は meiseki(bamboo-nova/meiseki)の分類と互換に保ち、natural-japanese の守備範囲で
はみ出す表記層と構成・読者の層を I・J として足した。

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-16 16:26:37 +09:00
coji 08b537be54 fix: 文頭の Markdown 記法を文頭反復の検出対象から外す
repeated_sentence_lead / repeated_syntax_template は、文頭2形態素と品詞4-gram を
ts.morphemes の先頭からそのまま取っていた。mask_markdown_structure() が落とすのは
行単位の構造(見出し・リスト・引用・表)とインラインコード/URLだけで、インラインの
強調記法(`**強調**`)や画像記法(`![alt](url)`)のマーカーは文頭に残る。その結果
「文頭2形態素が **」という無意味な反復が量産されていた。

zenn-content 60本での実測: repeated_sentence_lead 236件のうち 100件(42%)が記号由来
(`**` 88件 / `![` 12件)。音楽レーベル記事1本では 8件すべてが記号由来で、修正後は 0件。

sudachi はこれらをいずれも「補助記号」として切り出すため、品詞で落とせる。
マスク処理そのものではなく検出器の中で落とすことで、他の検出器の較正には影響しない。

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-16 16:26:08 +09:00
Coji Mizoguchi b54954f8de Merge pull request #4 from coji/codex/improve-reader-friction-guidance
文章の認知負荷を抑える推敲指針を追加
v1.3.0
2026-07-22 23:56:35 +09:00
coji 4be2a20d1e version 1.3.0 2026-07-22 23:56:11 +09:00
coji 4d05443dd2 文章の認知負荷を抑える推敲指針を追加 2026-07-22 23:50:35 +09:00
coji c2ad5da4e4 chore: address skills.sh security audit triggers
- Replace the CLAUDE.md -> AGENTS.md symlink with a regular file using
  Claude Code's @AGENTS.md import syntax (Socket flagged the symlink as
  an "obfuscated file")
- Drop the curl|sh uv installer from README in favor of brew + a link
  to the official install guide (Snyk E005 flagged the curl|sh URL)

Both audits ran against the pre-restructure snapshot (fea5d78) where
the skill was the repo root; the skill folder itself already contains
no symlinks or URLs.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01FL3CeXpytxB1AKCd36rugR
2026-07-15 15:11:14 +09:00
coji 3583e264e3 refactor: consolidate skill sources into skills/natural-japanese/ (single copy)
npx skills add (Vercel skills CLI) treats a repo-root SKILL.md as a
single-file skill and installs SKILL.md alone, dropping scripts/,
references/ and assets/ — which broke lint.py for Codex users. Because
the root SKILL.md and skills/natural-japanese/SKILL.md share the same
frontmatter name, the CLI deduped them and the root always won, so the
complete nested copy was never installed.

Fix by making skills/natural-japanese/ the only copy:
- remove root SKILL.md / references/ / scripts/ / assets/
- drop scripts/sync-skill.sh and the pre-commit sync (no more dual copies)
- move check-fixtures.sh to dev/ and point it at the new script paths
- update corpus experiment loaders, release workflow, and docs accordingly

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01FL3CeXpytxB1AKCd36rugR
2026-07-15 15:04:45 +09:00
Coji Mizoguchi 9665ff1141 Merge pull request #2 from coji/codex/prose-rhythm-research
文章リズム検出の根拠を調査し読者実験基盤を追加
2026-07-14 21:47:32 +09:00
coji 2c369f41db record reader study deployment 2026-07-14 21:42:52 +09:00
coji dbc034b8e0 deploy reader study as TypeScript Worker 2026-07-14 21:42:30 +09:00
coji 535792c978 package reader study for deployment 2026-07-14 21:35:56 +09:00
coji e88a76906d complete reader study analysis pipeline 2026-07-14 21:35:19 +09:00
coji 9d42659861 add preregistered rhythm reader study 2026-07-14 21:32:02 +09:00
coji 516c5d45c6 research prose rhythm metrics 2026-07-14 21:01:18 +09:00
Coji Mizoguchi fea5d78860 Merge pull request #1 from coji/feature/heading-stats-and-corpus-2022
見出しAI臭の実測: コーパス見出し復元・2022年以前限定化と outline.py 見出し統計
2026-07-14 11:34:42 +09:00
coji c4b9523589 Revert "feat(lint): --genre tech 限定の heading_length_uniformity 検出器を追加"
This reverts commit a4d4a71767.
2026-07-14 11:29:24 +09:00
coji a4d4a71767 feat(lint): --genre tech 限定の heading_length_uniformity 検出器を追加
h2以下の見出しが5本以上あり、見出し長(文字数)の変動係数が
0.30 未満なら「見出しが等長すぎる」info を1件出す。AIは
「◯◯の設計」「◯◯の実装」のような等長見出しを量産しがちで、
人間の見出しは長さがバラつく。

実測(2022年以前公開の human tech 45本 vs AI tech 81本・7モデル):
閾値0.30で human FP 4.4%(2/45)・AI検出率32.1%(26/81)。
ジャンル横断では business(省庁系の定型見出し)の FP が高く
基準を超えるため、GENRE_PROFILES 経由の tech 限定 opt-in とした
(デフォルト閾値 None = 無効)。h1 はタイトルで実文書では
フロントマターに置かれ本文にないことが多いため、CV 計算から除外。

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01LRr7r9tH5G1AvQF4bqtK7a
2026-07-14 10:06:57 +09:00
coji b3cca51eeb feat(outline): 見出し統計を判断材料として追加
レベル別/全体の見出し本数・平均長・長さの変動係数・体言止め率・
品詞パターン一致率・テンプレ見出しヒット・構造パターン率
(連番/【】/「〜とは」型)をテキスト出力末尾と --json の
heading_stats キーに出す。severity 付き Finding は出さない
(検出は機械、判断はAI)。

共有ロジック(strip_trailing_symbols, NOUN_ENDING_POS,
TEMPLATE_HEADING_WORDS)は textcore.py に移動し lint.py と共用。

コーパス実測(human 51 vs AI 355)では、体言止め率は human の方が
高く(business 見出しは平均0.84)、テンプレ語彙は分離なし、
品詞パターン一致率はレベルで向きが逆転するため、いずれも
検出器化せず統計提示に留める。

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01LRr7r9tH5G1AvQF4bqtK7a
2026-07-14 10:06:57 +09:00
coji 9a8f46da9a feat(corpus): 見出し保存型抽出への修正と人間コーパスの2022年以前限定化
- fetch.py: strip_tags が h1-h6 をプレーンテキスト化していたのを修正し、
  Markdown見出し(# 〜 ######)として保存するようにした。これにより
  human/web の見出し3つ以上の文書が 2本 → 52本に回復(再取得68本)
- AIコンタミ回避のため、人間側コーパスを公開2022年12月以前に限定。
  2023年以降公開の57本(essay 30, tech 23, business 4)を sources.json と
  corpus/human/web/ から削除
- 見出し検出器校正のため human tech ソースを25本追加
  (Zenn/Qiita 13、企業テックブログ 12、いずれも2022年以前公開)

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01LRr7r9tH5G1AvQF4bqtK7a
2026-07-14 10:06:09 +09:00
coji 4d7877e9fb chore: bump version to 1.2.0
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Enq2F1nDrTv6bgtgrZjPNZ
v1.2.0
2026-07-13 15:13:06 +09:00
coji c4120ed022 style: restore sentence rhythm in diagnose.md (burstiness regression from review fixes)
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Enq2F1nDrTv6bgtgrZjPNZ
2026-07-13 15:09:53 +09:00
coji 55e0fc721c fix(skill): address Codex v1.2.0 review — score clamp, terminology, stale eval record
- diagnose.md: 最終スコアを 0〜100 に切り詰め(調整で100超が可能だった
  blocking)、空/100字未満は「診断対象として短すぎる」、文字数の定義を明記
- diagnose.md: 診断の quick/full は実行モードと同じ思想の深さ指定と明示し、
  矛盾時は診断節優先・収束ループは回さない、と用語衝突を解消
- スコアの向き(高いほど自然)を SKILL.md/README/diagnose.md で明示
- evals/RESULTS.md: p48 の記録に description 修正適用後の追記
  (68/68 100% に更新)

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Enq2F1nDrTv6bgtgrZjPNZ
2026-07-13 15:09:31 +09:00
coji 6667b13994 feat(skill): add write/score invocation modes — explicit from-scratch writing and AI-smell scoring
- write: 新規作成の明示的な呼び出し口(既存の設計→執筆→検査→収束の
  全工程をゼロから回す)。quick/full 対応
- score: 診断専用モード(書き換えない)。0〜100スコア=機械ベース(lint
  findings を文書長正規化で減点)+判断調整(±15、full/expのみ)の二層、
  バンド・理由トップ3〜5・直すなら何から、を references/diagnose.md で定義。
  quick(lintのみ30秒)/full(構造・読みやすさレビュー込み)/exp(semantic.py
  の深層検出込み)の3段
- 実測: score quick はAI文書に96/100+内訳+理由を24.7秒で返す。初回テスト
  で diagnose.md を読まず findings 転記で済ませる合理化を確認→「必ず読む」
  を命令形で明記(実測で従うことを確認)
- description に診断・採点とゼロから書き起こすトリガーを追加、
  evals 68ケース(診断系p43-48・対象外n19-20を追加)

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Enq2F1nDrTv6bgtgrZjPNZ
2026-07-13 14:29:36 +09:00
coji 4553fe4118 chore: bump version to 1.1.0
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Enq2F1nDrTv6bgtgrZjPNZ
v1.1.0
2026-07-13 14:17:09 +09:00
coji 9ee49174d3 fix(semantic): apply Codex review fixes — full-precision thresholds, concise error path
- 閾値の4桁丸めで境界上の文書1件が校正時と食い違っていた問題を修正
  (5閾値を生データ完全精度に)
- モデル取得・推論失敗時に traceback を露出せず簡潔な stderr + exit 1 に

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Enq2F1nDrTv6bgtgrZjPNZ
2026-07-13 14:16:54 +09:00
coji 012b1351c2 feat(scripts): add semantic.py — experimental opt-in topic-flatness detector
nn-detector-sweep で唯一生き残った coherence_flatness_range を製品化:
- scripts/semantic.py: 文埋め込み(cl-nagoya/ruri-v3-310m)で隣接文類似度の
  起伏を測り、話題の平板さ(磨いても残る深層のAI信号、実測AI85%/人間FP3.7%)
  を warn で指摘。言い換え反復・話題飛躍は info の参考出力
- ジャンル別閾値をコーパス校正(default 0.1612/essay 0.1581 FP3.3%/
  tech 0.1426 FP0%/business 0.1556 FP0%)。根拠はコード内コメントに記録
- 文分割は lint と同一パイプライン(textcore)。10文未満はスキップ
- 重量級(torch+初回1GB DL、stderr で明示警告)のため lint.py 本体・CI・
  fixtures には組み込まず、独立した opt-in エントリに
- SKILL.md §3・README・revision-guide カテゴリ表に接続

検証: 人間business文書0件、AI essayでwarn発火、exit code規約維持、
fixtures 25/33/0/0 不変

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Enq2F1nDrTv6bgtgrZjPNZ
2026-07-13 14:07:50 +09:00
coji 845090ba39 docs(corpus): NN/dependency-parsing detector sweep — 3 tracks rejected, topic-flatness promising
4トラックを FP<5% 規律で全数実験(corpus/reports/nn-detector-sweep.md):
- perplexity: 不採用確定(gpt-5.6系に無力9〜11%、白書FP10%)
- 教師あり分類器: 不採用(モデル外挿は無傷だがジャンル外挿で崩壊AUC0.70)
- GiNZA係り受け: 不採用(方向逆転——平易で整った文=読みやすさ自体を罰する。
  v5.2.0の依存ピン留めレシピは知見として保存)
- 埋め込み coherence_flatness_range: 有望——FP3.7%/AI検出85%、全7モデルで
  頑健。人手で磨いたAI文書も検出し(3/4+リライト3/3)、本物の人間のbusiness
  文書はFP0%。「磨いても残る深層のAI信号」。opt-in重量級として導入候補
  (ジャンル別再校正とFP基盤拡充が前提)

再現スクリプト4トラック分をコミット(PEP723)。教訓: コーパス上のhuman/AI
分離信号は文体・ジャンル次元を測りがちで良い書き手を罰する——「検出は
表層の決定論、意味・構造の判断はAI」の現行設計を実測で追認。

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Enq2F1nDrTv6bgtgrZjPNZ
2026-07-13 13:51:34 +09:00
coji 690180a2f0 docs(skill): add measured time estimates for quick/full modes
実測にもとづく目安を明記(クイック: 短文30秒前後/1万字級3分、フル: 短文
7分前後/1万字級15〜20分)。フル開始時はユーザーに目安を一言伝える。

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Enq2F1nDrTv6bgtgrZjPNZ
2026-07-13 12:22:07 +09:00
coji 4f53cead4d feat(skill): forbid fabricating author intent in rewrites
大文書での quick vs full ブラインド対決(フル4観点全勝・確信度高)で、
フル側にも再発の癖を確認: 元文書が未解決のまま置いた論点に「〜方向で
考えている」等の著者方針を書き足す捏造(svssの「本格化する」格上げと
同根)。スイープ改稿ガードに「著者の意図・方針を新設しない」を追加。

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Enq2F1nDrTv6bgtgrZjPNZ
2026-07-13 12:16:36 +09:00
coji cc67078533 style: fix antithesis regression in SKILL.md full-mode note
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Enq2F1nDrTv6bgtgrZjPNZ
2026-07-13 11:54:13 +09:00
coji 66b353697c feat(skill): imperative full-mode steps + effort guidance from measurements
実測(同一タスク6ラン):
- quick+low: 27.6s、全工程準拠(lint強制化後)
- full+low: 命令形にしても3並列レビュー・termsを削る(36〜55s)
- full+high: 完全準拠——3並列サブエージェントレビュー・収束ループ
  (--baseline再検査)・後片付けまで7.0分で実行

対応: フルの工程を許可形から命令形に(「委譲してよい」→「必ず行う」、
outline/terms明記、小さい文書でも省略しない)。過剰と感じたら間引かず
クイックへの切替をユーザーに提案。effort指針を明記(フル=high推奨、
クイック=lowで十分。lowはフル工程を合理化で削ると実測)。

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Enq2F1nDrTv6bgtgrZjPNZ
2026-07-13 11:53:40 +09:00
coji 2c3d67e0f0 fix(skill): make lint mandatory in quick mode
実測でクイック時に low effort の実行者が lint を省略する挙動を確認
(短文では統計系が沈黙するため合理化してしまう)。禁止語・翻訳調は文1つ
でも検出されるため、文書長に関わらず必ず1回実行と明文化。再実測で
lint 実行を確認、コストは約6秒(合計27.6秒、30秒以内を維持)。

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Enq2F1nDrTv6bgtgrZjPNZ
2026-07-13 11:41:26 +09:00
coji b59e5cbbf8 fix(skill): quick mode is tens of seconds of overhead, not minutes
クイックの追加コストを明確化: 読むのは doctype 1ファイルのみ(憲法は§2の
要約で足りる、他の references は finding で迷ったときだけ)。数十秒を超えて
references を読み始めたらフルの仕事をしている、というガードを明文化。

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Enq2F1nDrTv6bgtgrZjPNZ
2026-07-13 11:36:30 +09:00
coji 8f1b698e64 feat(skill): accept quick/full mode as slash-command argument
/natural-japanese full 議事録.md のように先頭引数でモード指定できる
(argument-hint 追加+実行モード節に解釈ルール)。未指定なら自動選択。

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Enq2F1nDrTv6bgtgrZjPNZ
2026-07-13 11:35:15 +09:00
coji 7eff4509e4 chore: bump version to 1.0.1
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Enq2F1nDrTv6bgtgrZjPNZ
v1.0.1
2026-07-13 11:12:23 +09:00
coji 5d789d9df1 feat(skill): add execution modes — quick (default, no subagents) and full (parallel reviews)
日常使いはクイック(この場で完結、lint1回+セルフスケルトン通読、収束1周)。
「しっかり」「時間をかけていい」指示・対外/経営向け・1万字超はフル
(全工程+検査3レビューを並列サブエージェント委譲。統合と判断は親、
執筆は分割しない——濃淡・比喩・接続は全体を見ないと守れないため)。

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Enq2F1nDrTv6bgtgrZjPNZ
2026-07-13 11:10:25 +09:00
coji eea744fb26 fix(eval): report sanitization round 3 — real-file resolution and heading verification
- safe_ref: 接頭辞検査を廃止し、REPO_ROOT 基準 resolve+配下検証+実在
  ファイル検証に(references//secret や references/../../ の迂回を遮断)
- section: 参照先実ファイルの見出し行と照合し、含まれる見出しのみ通す
- エスケープに \r とバッククォートを追加
- manifest 表記を固定文言化(ファイル名も出さない)
- バイパス4種の再現テストで遮断・正当参照の通過を確認

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Enq2F1nDrTv6bgtgrZjPNZ
2026-07-13 11:09:09 +09:00
coji 92280760f9 fix(eval): harden per Codex round-2 — real tool lockdown, top-level typing, '..' rejection, unified report sanitization
- 批評段: --tools(利用可能ツール自体のallow-list)+--strict-mcp-config で
  真にRead限定に。deny-list依存を廃止(実機で Bash 不可を確認)
- aggregate: tp/ss のトップレベル型と skill_cause.file/section の文字列型を
  検証(型攻撃の再現テストでクラッシュしないことを確認)
- run-label/item id: '.','..' を明示拒否+解決後パスの runs/ 配下検証
- レポート: safe_ref/エスケープを一元化し、クラスタ表と改善提案節の両方に
  適用。Markdown表を壊す文字も無害化(/secret 漏洩の再現テストで遮断確認)

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Enq2F1nDrTv6bgtgrZjPNZ
2026-07-13 11:05:24 +09:00
coji 5263aedbf2 fix(eval): address Codex review — path traversal guards, defensive JSON typing, report sanitization
- item id / --run-label を英数字と ._- に制限(runs/ 外への書き出しを遮断)
- --parallel の下限検証
- aggregate: 批評JSONのリスト要素・skill_causeの型を検証(不正JSONで
  プロセス全体が落ちるリスクを除去)
- コミット版レポート: manifest はファイル名のみ、クラスタ表の file は
  リポジトリ内参照(references/等)以外を伏せ字化
- critic の disallowedTools を拡張(NotebookEdit,Task,WebFetch,WebSearch)
- README の critic 既定モデル記載を実装(fable-5)に一致

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Enq2F1nDrTv6bgtgrZjPNZ
2026-07-13 10:59:48 +09:00