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 記法
(`**` ``)のマーカーは文頭に残る。その結果
「文頭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