| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
feat(verification): Phase 134-137 — 検証チェーン配線修理 + writing lint + surface + ループ施策 Phase 134: 入口 (risk_flags→profile 自動昇格 + ratchet) / 中間 (PENDING_BROWSER fail-visible, pending_validations) / 出口 (accept-collect-evidence.sh による artifact 機械接続) の 3 継ぎ目を接続。scope leash 本配線 (warn 既定)、Playwright Screencast evidence、worker-report.v1 永続化、再調査ループ、検証の検証 (check-verification-chain-wiring.sh + 実効性契約テスト 3 本、RED→GREEN 実測)。 Phase 135: writinglint エンジン (辞書は個人層) + PostToolUse advisory + Stop 全体再検査 + 指摘→ルール自動ドラフト→人間承認ループ + config schema 正式化。 Phase 136: 3 surface スマホ viewport / 承認待ちキュー表示 / diagram-design 接続点。 Phase 137: 採点設計規律 (criteria 3 層翻訳) / blind 受け手検査 / 評価者 4 契約。 decisions.md D62-D68 に判断根拠を記録。worker 契約に NG-4 追加。 Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01TFcsXBG95kTdxPfDaP7Vuu | 1 个月前 | |
feat: adopt phase 58 permission updates | 4 个月前 | |
chore: release v3.4.2 | 6 个月前 | |
fix(tests,scripts): pipefail 下の producer|grep -q 34 箇所を herestring 化 (Phase 130.2) Phase 129 の検出器は producer を printf/echo/cat の 3 種に限定していたため、 jq/find/git/grep/head/シェル関数呼び出しなどを producer とする同型の欠陥が 検出網から漏れていた。tests/test-i18n-locale-resolver.sh:196 で実測したところ、 `jq -r '...' <<< "$x" | grep -q '応答言語: 日本語'` は 20/20 で「無い」と 誤判定された (探す文字列は先頭 4 byte 目に実在する)。 対象 14 ファイル 34 箇所を herestring/変数捕捉へ書き換えた: - producer が変数の場合はそのまま `grep -q P <<<"$x"` へ - producer がコマンド/関数呼び出しの場合は `X="$(producer)"; grep -q P <<<"$X"` へ分解 (task-completed.sh の _signal_exists、test-tool-first-onboarding.sh の section_for 呼び出しなど) - test-codex-loop-cli.sh の `&&` 連結 3 段判定、test-hermes-agent-candidate.sh の 3 段パイプライン (最終段のみ EPIPE リスクがあるため最終段だけ分解) も対応 producer 側の exit status が元々検証されていなかった箇所には `|| true` を 付けて capture したが、これは grep 側の判定を変えない (最終アサーションは そのまま維持され、producer 失敗時も従来どおりのフェイルメッセージへ落ちる)。 RED: tests/test-i18n-locale-resolver.sh を修正前で 20 回連続実行し 19/20 失敗 GREEN: 同テストを修正後で 20 回連続実行し 20/20 成功 影響した各テストファイル (test-codex-loop-cli.sh 42/42, test-codex-package.sh 25/25, test-harness-accept.sh 66/66, test-harness-plan-brief.sh 32/32, test-plan-brief-e2e.sh 30/30 など) は全て既存合格数を維持。 Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_012ZBxNEtYJbtHkZcsAn8nsv | 1 个月前 | |
Add async subagent support with realistic workflow integration - Add docs/ASYNC_SUBAGENTS.md with comprehensive guide - Add SubagentStop hook example in templates/default/.claude/settings.json - Add evaluate_subagent_output.sh script for hook automation - Update /review and /work commands with async workflow guidance - Update README.md with async subagent feature section - Focus on manual workflow (Ctrl+B) due to lack of programmatic API | 9 个月前 | |
fix(distribution): harden opencode mirror gates | 4 个月前 | |
feat(hosts): Phase 111.1 host registry SSOT and N+1 admission Add hosts/registry.json plus host-registry helpers; wire dist, model-routing, and release-preflight adapter gates to the registry; document admission checklist and registry/tier sync tests. | 2 个月前 | |
test: add /work --full sandbox test (Phase 34) - Add scripts/sandbox-test/greeting.ts with greet() and greetWithTime() - Add scripts/sandbox-test/greeting.test.ts with Vitest tests - Add scripts/sandbox-test/README.md documenting the test This validates the v2.9.0 /work --full parallel automation feature. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> | 8 个月前 | |
feat(verification): Phase 134-137 — 検証チェーン配線修理 + writing lint + surface + ループ施策 Phase 134: 入口 (risk_flags→profile 自動昇格 + ratchet) / 中間 (PENDING_BROWSER fail-visible, pending_validations) / 出口 (accept-collect-evidence.sh による artifact 機械接続) の 3 継ぎ目を接続。scope leash 本配線 (warn 既定)、Playwright Screencast evidence、worker-report.v1 永続化、再調査ループ、検証の検証 (check-verification-chain-wiring.sh + 実効性契約テスト 3 本、RED→GREEN 実測)。 Phase 135: writinglint エンジン (辞書は個人層) + PostToolUse advisory + Stop 全体再検査 + 指摘→ルール自動ドラフト→人間承認ループ + config schema 正式化。 Phase 136: 3 surface スマホ viewport / 承認待ちキュー表示 / diagram-design 接続点。 Phase 137: 採点設計規律 (criteria 3 層翻訳) / blind 受け手検査 / 評価者 4 契約。 decisions.md D62-D68 に判断根拠を記録。worker 契約に NG-4 追加。 Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01TFcsXBG95kTdxPfDaP7Vuu | 1 个月前 | |
feat: accept-past-issues.sh + 3-case test for past-issue.v1 (65.2.2) Add `scripts/accept-past-issues.sh` (about 130 lines) that builds a `past-issue.v1` JSON from harness-mem search results — the read-side counterpart to harness-accept skill (Phase 65.2.1). The script trims to the top 3 entries by relevance_score, fills defaults for missing fields, and propagates `verified_in_current_task` into the output. Why a separate bash step (and why bash, not the skill itself): - Same pattern as plan-brief-compile.sh (Phase 65.1.3): the skill calls `mcp__harness__harness_mem_search` in the host LLM context (project-only, strict_project: true), writes the results to a tmp file, then this script consumes it via `--issues-source <path>`. - This keeps the trim/sort/normalize logic mechanically testable without an MCP mock and lets the 3 DoD-mandated cases run as JSON fixtures. Project enforcement (DoD b): --project is required and the script exits 2 if missing, so the cross-project search path (Phase 65.3) can never be hit accidentally from the harness-accept flow. Test cases (DoD d): - case-zero-issues : items=[] => 0 items out - case-three-verified : 3 items, all verified=true => 3 items out, 3 verified - case-mixed-verified : 4 items input, mixed verified flags => top 3 by relevance (drops the 0.40 entry), 2 verified true / 1 verified false (~半数) Verified: - bash tests/test-accept-past-issues.sh => 29/29 PASS - bash tests/test-harness-accept.sh => 66/66 PASS (no regression) - bash tests/validate-plugin.sh => 50/50 PASS - bash scripts/ci/check-consistency.sh => 全合格 Phase 65.2.3 (`scripts/accept-record-decision.sh`) will close the write side by recording the user's ship/wait/reject judgment as `acceptance-decision.v1`, joined to Plan Brief side `personal-preference.v1` via the same `user_request_hash`. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> | 4 个月前 | |
feat: accept-record-decision.sh + 3-action test (65.2.3) Add `scripts/accept-record-decision.sh` that builds the `acceptance-decision.v1` payload to be ingested via `mcp__harness__harness_mem_ingest` after the user reacts to the Acceptance Demo's ship/wait/reject recommendation. Three action modes are recorded in `data.action`: accept - user took the recommendation as-is (whatever it was) => recommendation_taken = true override - user took a different decision than recommended => recommendation_taken = false; --override-reason required reject - user picked reject as the final action regardless of rec => recommendation_taken = (rec == "reject") The `data.user_request_hash` field uses the **same sha256 hashing as Phase 65.1.4** plan-brief-record-decision.sh, so a search by tag "personal-preference" returns both the plan-brief-approval record (personal-preference.v1) and the acceptance-decision record for the same user request. This is the mem-side join point that completes the plan→accept trace required by Phase 65.2.4 e2e (DoD c). Tags are fixed to ["personal-preference", "acceptance-decision"] for all three actions. The "personal-preference" tag is shared with the Plan Brief record (Phase 65.1.4), so a single tag search retrieves both ends of the trace; "acceptance-decision" lets searches narrow to just the accept-side. The action discriminator lives in `data.action` so the tag namespace stays fixed even if a fourth action is added later. verified_criteria_at_decision is normalized from an external `--verified-criteria-source <path>` JSON file (same pattern as Phase 65.1.3 / 65.2.2: bash cannot call MCP, so the skill writes results to a tmp file). post_launch_concerns is comma-split to a JSON array. Verified: - bash tests/test-accept-record.sh => 59/59 PASS Includes DoD c structural verification: independently re-derived sha256 of the same user_request_text via the Phase 65.1.4 script matches the hash this script produces. - bash tests/test-accept-past-issues.sh => 29/29 PASS (no regression) - bash tests/test-harness-accept.sh => 66/66 PASS (no regression) - bash tests/validate-plugin.sh => 50/50 PASS - bash scripts/ci/check-consistency.sh => 全合格 Phase 65.2.4 (e2e validation) will tie all three Phase B scripts (harness-accept skill / accept-past-issues / accept-record-decision) together with the Plan Brief side from Phase A, proving the full plan→accept trace round-trips with a shared user_request_hash. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> | 4 个月前 | |
fix(tests,scripts): pipefail 下の `producer | grep -q` 173 箇所を herestring へ一掃 (Phase 129) (#286) * fix(tests,scripts): pipefail 下の `producer | grep -q` 173 箇所を herestring へ一掃 PR #285 で実害 2 箇所を直したが、同じ書き方が 173 箇所残っていた。 `grep -q` は最初の一致で終了してパイプを閉じるため、分割書き込み中の producer が EPIPE で失敗する。`set -o pipefail` がその失敗をパイプライン 全体の結果へ昇格させるので、探す文字列が実在するのに「無い」と判定される。 一致が入力の前方にあるほど再現するため、合否が「探す文字列が何行目にあるか」 で決まる状態だった。 - tests/test-pipefail-grep-q-safety.sh を新設 (Phase 129.1)。 静的走査で該当箇所を検出し、fixture 8 件で除外条件を固定 (pipefail 無し / `|| true` / herestring / grep -c / コメント行 / 引用符内) - tests/ 39 ファイル 131 箇所、scripts/ 19 ファイル 42 箇所を変換 (Phase 129.2 / 129.3) - tests/validate-plugin.sh に節 19 を配線し、 tests/test-validate-plugin-wiring.sh の pin にも追加 (Phase 129.4)。 検査の除去には 2 つの独立したファイルの変更が必要になる 引用符認識を実装した過程で、旧パターンが取りこぼしていた 3 段パイプライン (`echo | jq | grep -qi`) を 1 件発見し、変数経由に分解した。 実測: - 検出件数 173 → 0 - 変換部分は追加 172 / 削除 172 の 1 対 1 (アサーション削除・期待値緩和ゼロ) - bash -n 全 58 ファイル OK (行末継続 `\` を壊した 4 箇所はここで検出し修正) - shellcheck warning は変換前後とも 29 件で同数、herestring 起因の新規指摘ゼロ - validate-plugin 132 合格 0 失敗 (131 + 新設 1 節) - check-consistency 全 24 通過 (変換対象に check-consistency.sh 自身を含む) - go test ./... 0 失敗、VERSION / plugin.json / harness.toml 非接触 Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> * docs(plan): Phase 129 完走 — 全 4 task を cc:done に更新 129.1 検出テスト新設 / 129.2 tests/ 131 箇所 / 129.3 scripts/ 42 箇所 / 129.4 配線 + closeout。各 task の Status に実測値を記録した。 Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> * fix(tests): 検出器の 2 件の欠陥を修正 (CodeRabbit 指摘) いずれも実測で再現を確認してから修正した。 - 行継続を跨ぐパイプラインの検出漏れ: `perl -ne` が物理行ごとに走査するため、 行末の `\` で分割された `printf ... \ | grep -q ...` を見落としていた。 物理行を論理行へ畳んでから走査する。行番号は論理行の開始位置を報告する - 引用符内のエスケープの誤解釈: 二重引用符の中の `\"` を閉じ引用符と解釈し、 後続の `| grep -q` が引用符の外に見えて誤検出していた。二重引用符の中でのみ `\` をエスケープとして扱う (単一引用符の中では shell の仕様どおり扱わない) fixture は 8 件 → 10 件。CHANGELOG に Before/After 表を追加した。 改良後の検出器を変更前ツリーへ適用すると 168 箇所 (旧実装は 173)。差の 5 件は 行継続の畳み込みによる数え方の違いで、検出漏れではない。物理行 782・783 を 2 件と数えていたものが論理行の開始 781 の 1 件になる。該当箇所は目視で 変換の正しさを確認済み。 検証: validate-plugin 132 合格 0 失敗、check-consistency 全 24 通過。 Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> --------- Co-authored-by: tachibanashuuta <tachibana@canai.jp> Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com> | 2 个月前 | |
fix(tests,scripts): pipefail 下の `producer | grep -q` 173 箇所を herestring へ一掃 (Phase 129) (#286) * fix(tests,scripts): pipefail 下の `producer | grep -q` 173 箇所を herestring へ一掃 PR #285 で実害 2 箇所を直したが、同じ書き方が 173 箇所残っていた。 `grep -q` は最初の一致で終了してパイプを閉じるため、分割書き込み中の producer が EPIPE で失敗する。`set -o pipefail` がその失敗をパイプライン 全体の結果へ昇格させるので、探す文字列が実在するのに「無い」と判定される。 一致が入力の前方にあるほど再現するため、合否が「探す文字列が何行目にあるか」 で決まる状態だった。 - tests/test-pipefail-grep-q-safety.sh を新設 (Phase 129.1)。 静的走査で該当箇所を検出し、fixture 8 件で除外条件を固定 (pipefail 無し / `|| true` / herestring / grep -c / コメント行 / 引用符内) - tests/ 39 ファイル 131 箇所、scripts/ 19 ファイル 42 箇所を変換 (Phase 129.2 / 129.3) - tests/validate-plugin.sh に節 19 を配線し、 tests/test-validate-plugin-wiring.sh の pin にも追加 (Phase 129.4)。 検査の除去には 2 つの独立したファイルの変更が必要になる 引用符認識を実装した過程で、旧パターンが取りこぼしていた 3 段パイプライン (`echo | jq | grep -qi`) を 1 件発見し、変数経由に分解した。 実測: - 検出件数 173 → 0 - 変換部分は追加 172 / 削除 172 の 1 対 1 (アサーション削除・期待値緩和ゼロ) - bash -n 全 58 ファイル OK (行末継続 `\` を壊した 4 箇所はここで検出し修正) - shellcheck warning は変換前後とも 29 件で同数、herestring 起因の新規指摘ゼロ - validate-plugin 132 合格 0 失敗 (131 + 新設 1 節) - check-consistency 全 24 通過 (変換対象に check-consistency.sh 自身を含む) - go test ./... 0 失敗、VERSION / plugin.json / harness.toml 非接触 Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> * docs(plan): Phase 129 完走 — 全 4 task を cc:done に更新 129.1 検出テスト新設 / 129.2 tests/ 131 箇所 / 129.3 scripts/ 42 箇所 / 129.4 配線 + closeout。各 task の Status に実測値を記録した。 Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> * fix(tests): 検出器の 2 件の欠陥を修正 (CodeRabbit 指摘) いずれも実測で再現を確認してから修正した。 - 行継続を跨ぐパイプラインの検出漏れ: `perl -ne` が物理行ごとに走査するため、 行末の `\` で分割された `printf ... \ | grep -q ...` を見落としていた。 物理行を論理行へ畳んでから走査する。行番号は論理行の開始位置を報告する - 引用符内のエスケープの誤解釈: 二重引用符の中の `\"` を閉じ引用符と解釈し、 後続の `| grep -q` が引用符の外に見えて誤検出していた。二重引用符の中でのみ `\` をエスケープとして扱う (単一引用符の中では shell の仕様どおり扱わない) fixture は 8 件 → 10 件。CHANGELOG に Before/After 表を追加した。 改良後の検出器を変更前ツリーへ適用すると 168 箇所 (旧実装は 173)。差の 5 件は 行継続の畳み込みによる数え方の違いで、検出漏れではない。物理行 782・783 を 2 件と数えていたものが論理行の開始 781 の 1 件になる。該当箇所は目視で 変換の正しさを確認済み。 検証: validate-plugin 132 合格 0 失敗、check-consistency 全 24 通過。 Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> --------- Co-authored-by: tachibanashuuta <tachibana@canai.jp> Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com> | 2 个月前 | |
fix(hooks): session-log の分割警告の上限を 600 行へ引き上げる session-log.md の分割警告は 500 行で出るが、`/maintenance` が実際に 退避できるのは「直近 30 日より古いエントリ」だけ。全エントリが 30 日 以内に収まっていると、警告は出るのに移動対象が 0 件という状態になる。 当リポジトリは 520 行 / 全 20 エントリが 30 日以内で、まさにその状態 だった。行数だけを見て退避すると保持ルール違反になるため、警告に従う と規約を破ることになる。 上限は読みやすさの目安であって、保持期間 30 日のような守りの強さを 持つ値ではない。よって噛み合わない箇所は上限側で解消する。保持期間は 直近の作業履歴を本体に残す下限として 30 日のまま維持する。 定義は 4 箇所にあり、すべて同時に更新した: - go/internal/hookhandler/auto_cleanup_hook.go (defaultSessionLogMaxLines) - scripts/auto-cleanup-hook.sh - templates/hooks/auto-cleanup-hook.sh - skills/maintenance/references/cleanup.md (閾値表 + 判断根拠の注記) 稼働している hook は Go 実装 (bin/harness hook auto-cleanup) のため、 drift gate と同一条件で 4 プラットフォームのバイナリを再生成した。 skill mirror (codex / opencode) も同期済み。 検証 (hook に stdin で payload を渡して判定を直接観測): - 新バイナリ 520 行 -> 警告なし / 601 行 -> 警告あり (limit: 600 と表示) - 旧バイナリ 520 行 -> 警告あり (limit: 500) - bash scripts/ci/check-binary-source-drift.sh -> OK - go test ./internal/hookhandler/... -> ok - bash tests/validate-plugin.sh -> 134 合格 0 失敗 - bash scripts/ci/check-consistency.sh -> 24/24 合格 - mirror verify -> in-sync (0 drift) - VERSION / plugin.json / harness.toml は非接触 Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_012ZBxNEtYJbtHkZcsAn8nsv | 1 个月前 | |
feat: Phase 13 まさおハーネス理論ベンチマーク改善 自動検証ループ強化、CLAUDE.md電報体最適化、Codex CLIルール注入、 動的オーケストレーション強化の4Phase・52タスクを完了。 - TaskCompleted品質ゲート(テスト結果参照+3回失敗エスカレーション) - テスト改ざん検知12+パターン追加 - auto-test-runner.sh非同期テスト実行モード - CI失敗自動検知+ci-cd-fixer推奨注入 - CLAUDE.md 116行に圧縮(docs/に移管) - Codex AGENTS.mdルール統合+sync-rules-to-agents.sh - codex-exec-wrapper.sh(メモリ永続化+シークレットフィルタ) - Codex execpolicy harness.rules(41パターン検証済) - breezing-signal-injector.sh(UserPromptSubmitシグナル注入) - Phase C APPROVEファストパス+review-result.json - Implementer数自動決定ロジック拡張 Reviewer: APPROVE (Grade A), Critical/Major = 0 Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> | 7 个月前 | |
feat(routing,breezing): retire Opus 4.8 (Claude 5 lineup) + codex review findings fixes Opus 5 リリース (2026-07-24) を受けた operator 裁定 (2026-07-25): - claude catalog: brain=claude-opus-5 / review=claude-fable-5 / worker=claude-sonnet-5 - cursor brain 系 tier: claude-opus-4-8-thinking-xhigh → claude-fable-5 (~/.cursor/cli-config.json で ID 実在確認) - HARNESS_BRAIN_MODEL: opus|opus5=claude-opus-5 (既定) / fable=claude-fable-5 codex second opinion (gpt-5.6-sol xhigh, retry 完走) の指摘 4 件反映: - [P1] Integrated Review Gate を Phase C 最終化前へ移動 + 未収束時 cc:WIP 差し戻し - [P1] --no-commit run の review target を working tree (未 commit + untracked) に - [P2] breezing-brief classifier に --no-review-gate 追加 + テスト - [P2] spec / model-routing-policy の HARNESS_BRAIN_MODEL 契約を実装と同期 follow-up: 123.4 (validate.go claude-opus-5 + 4 平台 rebuild) を Plans.md に起票 Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01W8XJBNKXBJmy6foSp7bGxz | 2 个月前 | |
fix(review): REQUEST_CHANGES 対応 — major 4 件 + minor 3 件 - Stop 全体再検査の cross-session 誤 block: changed-files.jsonl に session_id を記録し、 現 session の entry のみ検査 (旧形式 entry は保守的に skip)。DroppedScope も同修正 - writing-rule 昇格の regex 未検証: harness writing-rule-vet subcommand (RE2 compile + 型/列挙検証、fail-closed) を approve 経路に追加。ScanText は不正 rule を skip して 続行し invalidRuleIDs を診断で返す (1 件の誤承認で全体無効化しない) - browser-review-runner の stale .webm 混入: run 開始 marker より新しい録画のみ収集 - scope leash enforce 時の自己 deny: .claude/ 配下を exempt + 判定を role 登録後へ移動 - posttooluse_writing_lint の config path を resolveProjectRoot 基準に統一 (CWD 非依存) - worker.md の NG 参照を NG-1〜4 に更新 / Plans.md の Phase 138 重複ヘッダー解消 - skill manifest pin に japanese-writing-drafter を追加 (意図した新 skill の反映) 各修正に回帰テスト付き。binary 4 平台再ビルド + drift gate PASS。 Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01TFcsXBG95kTdxPfDaP7Vuu | 1 个月前 | |
fix(dist): grok パッケージを自己完結させる (CodeRabbit P1 指摘) hooks/ を同梱しただけでは guardrail は動かなかった。hooks.json の コマンドは valid_root bootstrap を通り、`$r/bin/harness` と claude-code-harness を名乗る `$r/.claude-plugin/plugin.json` の両方が 揃うディレクトリしか root として認めない。grok dist にはどちらも無い ため、grok だけを入れた利用者の環境では root が見つからず exit 0 で 黙って skip される。 「同梱した」は達成していたが「動く」は達成していなかった。Phase 133 自身の教訓 (配線 != 稼働、D58) を、また自分の変更に適用し損ねていた。 claude dist と同じ closure を grok dist にも入れる: - .claude-plugin/ (manifest) - hooks/hooks.json の script closure - bin/ の 4 プラットフォームバイナリ + shim 検証 (dist 内のものだけを使い、CLAUDE_PLUGIN_ROOT を dist に向けて実測): - valid_root の 3 条件をすべて満たす - 危険操作 -> deny、安全操作 -> allow - validate-plugin.sh 139 合格 0 失敗 / check-consistency.sh 25/25 Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_012ZBxNEtYJbtHkZcsAn8nsv | 1 个月前 | |
Implement Phase 70 Hokage Core gates | 4 个月前 | |
feat(calibration): record-review-calibration に critical_count/major_count/score_delta を追加 - record-review-calibration.sh: --review-result <path> オプションを追加し、 write-review-result.sh の normalization ルールと整合したカウントロジックを実装: critical_count = critical_issues[] + gaps[critical] + findings[critical] + observations[critical] major_count = major_issues[] + gaps[major] + findings[high] + observations[major] (companion raw の findings[severity:high] は major に射影 — write-review-result.sh と同じ規則) 前回同一タスクとの差分を score_delta として記録 - build-review-few-shot-bank.sh: 旧レコード(フィールド欠如)は // 0 default で読み出し、 score_delta は has("score_delta") で存在チェックしてから含める - tests/test-record-review-calibration.sh: smoke テスト 11 ケースを追加 (arg parsing 5 + dual-source critical 2 + findings[high] major 2 + mixed-major 1 + no-output 1) - 既存の jsonl レコード(2件)は一切書き換えない Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> | 5 个月前 | |
feat: add sandbagging-aware weak supervision | 4 个月前 | |
fix(tests,scripts): pipefail 下の `producer | grep -q` 173 箇所を herestring へ一掃 (Phase 129) (#286) * fix(tests,scripts): pipefail 下の `producer | grep -q` 173 箇所を herestring へ一掃 PR #285 で実害 2 箇所を直したが、同じ書き方が 173 箇所残っていた。 `grep -q` は最初の一致で終了してパイプを閉じるため、分割書き込み中の producer が EPIPE で失敗する。`set -o pipefail` がその失敗をパイプライン 全体の結果へ昇格させるので、探す文字列が実在するのに「無い」と判定される。 一致が入力の前方にあるほど再現するため、合否が「探す文字列が何行目にあるか」 で決まる状態だった。 - tests/test-pipefail-grep-q-safety.sh を新設 (Phase 129.1)。 静的走査で該当箇所を検出し、fixture 8 件で除外条件を固定 (pipefail 無し / `|| true` / herestring / grep -c / コメント行 / 引用符内) - tests/ 39 ファイル 131 箇所、scripts/ 19 ファイル 42 箇所を変換 (Phase 129.2 / 129.3) - tests/validate-plugin.sh に節 19 を配線し、 tests/test-validate-plugin-wiring.sh の pin にも追加 (Phase 129.4)。 検査の除去には 2 つの独立したファイルの変更が必要になる 引用符認識を実装した過程で、旧パターンが取りこぼしていた 3 段パイプライン (`echo | jq | grep -qi`) を 1 件発見し、変数経由に分解した。 実測: - 検出件数 173 → 0 - 変換部分は追加 172 / 削除 172 の 1 対 1 (アサーション削除・期待値緩和ゼロ) - bash -n 全 58 ファイル OK (行末継続 `\` を壊した 4 箇所はここで検出し修正) - shellcheck warning は変換前後とも 29 件で同数、herestring 起因の新規指摘ゼロ - validate-plugin 132 合格 0 失敗 (131 + 新設 1 節) - check-consistency 全 24 通過 (変換対象に check-consistency.sh 自身を含む) - go test ./... 0 失敗、VERSION / plugin.json / harness.toml 非接触 Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> * docs(plan): Phase 129 完走 — 全 4 task を cc:done に更新 129.1 検出テスト新設 / 129.2 tests/ 131 箇所 / 129.3 scripts/ 42 箇所 / 129.4 配線 + closeout。各 task の Status に実測値を記録した。 Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> * fix(tests): 検出器の 2 件の欠陥を修正 (CodeRabbit 指摘) いずれも実測で再現を確認してから修正した。 - 行継続を跨ぐパイプラインの検出漏れ: `perl -ne` が物理行ごとに走査するため、 行末の `\` で分割された `printf ... \ | grep -q ...` を見落としていた。 物理行を論理行へ畳んでから走査する。行番号は論理行の開始位置を報告する - 引用符内のエスケープの誤解釈: 二重引用符の中の `\"` を閉じ引用符と解釈し、 後続の `| grep -q` が引用符の外に見えて誤検出していた。二重引用符の中でのみ `\` をエスケープとして扱う (単一引用符の中では shell の仕様どおり扱わない) fixture は 8 件 → 10 件。CHANGELOG に Before/After 表を追加した。 改良後の検出器を変更前ツリーへ適用すると 168 箇所 (旧実装は 173)。差の 5 件は 行継続の畳み込みによる数え方の違いで、検出漏れではない。物理行 782・783 を 2 件と数えていたものが論理行の開始 781 の 1 件になる。該当箇所は目視で 変換の正しさを確認済み。 検証: validate-plugin 132 合格 0 失敗、check-consistency 全 24 通過。 Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> --------- Co-authored-by: tachibanashuuta <tachibana@canai.jp> Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com> | 2 个月前 | |
feat(channels-wake): Phase 98.2 — Bridge channel auto-recovery layer Bridge Daemon 通信チャネル (live-messaging/delivery/inbox) の健全性監視 + opt-in wake。auto-approve 既定 OFF、Risk Gate 5-category floor 不変。 - go/internal/channelswake/ (D40 tri-state health: not-configured/ daemon-unreachable/corrupted, bridge socket probe + mailbox stale check) - templates/schemas/channel-wake-event.v1.json (additionalProperties:false) - bin/harness channels-wake check CLI (exit 0 healthy/not-configured, 1 else) - Session Monitor 統合 (not-configured で警告抑止) - scripts/channels-wake-probe.sh (AUTO_APPROVE_DEFAULT=false, opt-in wake) - Risk Gate 5-category floor 不変テスト + spec.md Channels-Wake 章 wake trigger 範囲 (Lead 決定、stop_point 98.2.4): hook 再注入の提案に留め daemon restart 自動実行はしない、opt-in 既定 OFF。 go test channelswake/session/cmd 全 PASS。 Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> | 3 个月前 | |
fix: accept app-scoped required checks | 4 个月前 | |
fix: remediate scorecard alerts | 4 个月前 | |
fix(gates): cursor 総点検の findings 反映 — version-sync checker 拡張 + coverage-shrink pin + stale 修正 Lens 3 (coherence): - scripts/check-release-version-sync.py に .grok-plugin/plugin.json と harness.toml surface を追加 (CHANGELOG の '7 strings / 6 files' 主張を 機械 gate が実際に検証するように) - 発掘: tests/test-release-version-sync.sh は cursor-plugin 追加時から 期待値 stale で恒常 FAIL、かつどこにも未配線だった (今回の『未配線 test 問題』の既存実例)。期待値 2 箇所修正 + validate-plugin へ配線 - CHANGELOG [5.1.0] 'is being ticketed' → '§158 filed' (115.4 完了済み) - validate-plugin.sh の stale '39項目' comment / workflow-test-wiring.md に HG-3 解消注記 Lens 2 (red-team) P0: - tests/test-validate-plugin-wiring.sh 新設: validate-plugin.sh の必須 test 呼び出し 12 本を pin (coverage shrink を別 CI gate で検知) - scripts/ci/check-consistency.sh §24 に配線 (validate job と独立) - Plans.md 116.1 DoD 強化 (schema 列挙値 / prompt SHA pin / rule 適用 対象追記) + 116.2 起票 (edit-time shrink warn hook) 裁定 (変更なし): matrix Grok 行の pre_use_guard 'not claimed' は structural (hookcodec) と live guard の意図された境界であり矛盾ではない。 Plans.md 114.6 row の '6 文字列/5 ファイル' は完了 task の歴史記録として 保持 (living SSOT は versioning.md が正)。 Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01KBF1xmCMXGKNVagzvUzL6A | 2 个月前 | |
feat: CLAUDE_CODE_SIMPLE mode detection and graceful degradation Add automatic detection and user warning for SIMPLE mode (CC v2.1.50+) where skills/agents/memory are stripped. Prevents silent failures by showing clear warnings at session start and setup. - scripts/check-simple-mode.sh: detection utility with is_simple_mode() - session-init.sh: SIMPLE mode warning in stderr + additionalContext - setup-hook.sh: SIMPLE mode warning during init/maintenance - docs/SIMPLE_MODE_COMPATIBILITY.md: full impact guide (37 skills, 11 agents) - CLAUDE_CODE_COMPATIBILITY.md: updated SIMPLE mode status to "対応済み" https://claude.ai/code/session_01Aug6fEQMx5AvJR2iAh67Sg | 7 个月前 | |
feat(hotl): Phase 101 U0-U7 検証 spike 完了 (verification-first) HOTL Governance 検証フェーズ U0-U7 を完走。executor/judiciary 基盤は既存で 成熟しており、欠けていた in-run leash と層間機械リンクを新規 spike で実証。 既存ルール定義 (rules.go, human-only per spec invariant 6) は無改変。 - U0 (101.1): go/internal/scopeleash — plan から scope 自動推論 (人手ゼロ) + 圏外 write 検知 + dropped scope。決定性のみ。 - U2 (101.3): go/internal/enforcelink — rule↔doc↔test の機械リンク検証 (3 脚欠落 red-team)。既存 selfaudit tamper-evidence を補完。 - U3 (101.4): go/internal/rulecoverage — rule↔check matrix scanner (14/4/9/14 lock + orphan/ineffective 検知)。OPA でなく自前 scanner 採用。 - U5 (101.6): go/internal/blastradius — 4 axis 機械検知 (delete/irreversible/ cross-repo/file-count)。意味判定なし、runtimefloor と同方式。 - U6 (101.7): scripts/check-writing-norms.sh + test — §7 禁止フレーズ JP 面 gate。rule↔check↔exec を通す最初の Authority Provenance Graph 実例。 baseline 0 hit を regression guard 化 (RED→GREEN 実証)。 - U1/U4/U7: investigation 完了 (evidence は docs/research/, gitignore)。 U1=5 サブシステム dev-only / U4=LLM verdict 非 gate / U7=register 分離推奨。 検証: go build ./... OK / go test ./... 全 PASS (新規4pkg + 回帰) / test-writing-norms-gate.sh PASS / check-consistency.sh 19/19。 Plans.md 101.1-101.8 を cc:done。VERSION 不変 (通常 planning)。 Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> | 3 个月前 | |
feat: announce next session commands after planning | 5 个月前 | |
fix(tests,scripts): pipefail 下の `producer | grep -q` 173 箇所を herestring へ一掃 (Phase 129) (#286) * fix(tests,scripts): pipefail 下の `producer | grep -q` 173 箇所を herestring へ一掃 PR #285 で実害 2 箇所を直したが、同じ書き方が 173 箇所残っていた。 `grep -q` は最初の一致で終了してパイプを閉じるため、分割書き込み中の producer が EPIPE で失敗する。`set -o pipefail` がその失敗をパイプライン 全体の結果へ昇格させるので、探す文字列が実在するのに「無い」と判定される。 一致が入力の前方にあるほど再現するため、合否が「探す文字列が何行目にあるか」 で決まる状態だった。 - tests/test-pipefail-grep-q-safety.sh を新設 (Phase 129.1)。 静的走査で該当箇所を検出し、fixture 8 件で除外条件を固定 (pipefail 無し / `|| true` / herestring / grep -c / コメント行 / 引用符内) - tests/ 39 ファイル 131 箇所、scripts/ 19 ファイル 42 箇所を変換 (Phase 129.2 / 129.3) - tests/validate-plugin.sh に節 19 を配線し、 tests/test-validate-plugin-wiring.sh の pin にも追加 (Phase 129.4)。 検査の除去には 2 つの独立したファイルの変更が必要になる 引用符認識を実装した過程で、旧パターンが取りこぼしていた 3 段パイプライン (`echo | jq | grep -qi`) を 1 件発見し、変数経由に分解した。 実測: - 検出件数 173 → 0 - 変換部分は追加 172 / 削除 172 の 1 対 1 (アサーション削除・期待値緩和ゼロ) - bash -n 全 58 ファイル OK (行末継続 `\` を壊した 4 箇所はここで検出し修正) - shellcheck warning は変換前後とも 29 件で同数、herestring 起因の新規指摘ゼロ - validate-plugin 132 合格 0 失敗 (131 + 新設 1 節) - check-consistency 全 24 通過 (変換対象に check-consistency.sh 自身を含む) - go test ./... 0 失敗、VERSION / plugin.json / harness.toml 非接触 Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> * docs(plan): Phase 129 完走 — 全 4 task を cc:done に更新 129.1 検出テスト新設 / 129.2 tests/ 131 箇所 / 129.3 scripts/ 42 箇所 / 129.4 配線 + closeout。各 task の Status に実測値を記録した。 Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> * fix(tests): 検出器の 2 件の欠陥を修正 (CodeRabbit 指摘) いずれも実測で再現を確認してから修正した。 - 行継続を跨ぐパイプラインの検出漏れ: `perl -ne` が物理行ごとに走査するため、 行末の `\` で分割された `printf ... \ | grep -q ...` を見落としていた。 物理行を論理行へ畳んでから走査する。行番号は論理行の開始位置を報告する - 引用符内のエスケープの誤解釈: 二重引用符の中の `\"` を閉じ引用符と解釈し、 後続の `| grep -q` が引用符の外に見えて誤検出していた。二重引用符の中でのみ `\` をエスケープとして扱う (単一引用符の中では shell の仕様どおり扱わない) fixture は 8 件 → 10 件。CHANGELOG に Before/After 表を追加した。 改良後の検出器を変更前ツリーへ適用すると 168 箇所 (旧実装は 173)。差の 5 件は 行継続の畳み込みによる数え方の違いで、検出漏れではない。物理行 782・783 を 2 件と数えていたものが論理行の開始 781 の 1 件になる。該当箇所は目視で 変換の正しさを確認済み。 検証: validate-plugin 132 合格 0 失敗、check-consistency 全 24 通過。 Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> --------- Co-authored-by: tachibanashuuta <tachibana@canai.jp> Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com> | 2 个月前 | |
fix(tests,scripts): pipefail 下の `producer | grep -q` 173 箇所を herestring へ一掃 (Phase 129) (#286) * fix(tests,scripts): pipefail 下の `producer | grep -q` 173 箇所を herestring へ一掃 PR #285 で実害 2 箇所を直したが、同じ書き方が 173 箇所残っていた。 `grep -q` は最初の一致で終了してパイプを閉じるため、分割書き込み中の producer が EPIPE で失敗する。`set -o pipefail` がその失敗をパイプライン 全体の結果へ昇格させるので、探す文字列が実在するのに「無い」と判定される。 一致が入力の前方にあるほど再現するため、合否が「探す文字列が何行目にあるか」 で決まる状態だった。 - tests/test-pipefail-grep-q-safety.sh を新設 (Phase 129.1)。 静的走査で該当箇所を検出し、fixture 8 件で除外条件を固定 (pipefail 無し / `|| true` / herestring / grep -c / コメント行 / 引用符内) - tests/ 39 ファイル 131 箇所、scripts/ 19 ファイル 42 箇所を変換 (Phase 129.2 / 129.3) - tests/validate-plugin.sh に節 19 を配線し、 tests/test-validate-plugin-wiring.sh の pin にも追加 (Phase 129.4)。 検査の除去には 2 つの独立したファイルの変更が必要になる 引用符認識を実装した過程で、旧パターンが取りこぼしていた 3 段パイプライン (`echo | jq | grep -qi`) を 1 件発見し、変数経由に分解した。 実測: - 検出件数 173 → 0 - 変換部分は追加 172 / 削除 172 の 1 対 1 (アサーション削除・期待値緩和ゼロ) - bash -n 全 58 ファイル OK (行末継続 `\` を壊した 4 箇所はここで検出し修正) - shellcheck warning は変換前後とも 29 件で同数、herestring 起因の新規指摘ゼロ - validate-plugin 132 合格 0 失敗 (131 + 新設 1 節) - check-consistency 全 24 通過 (変換対象に check-consistency.sh 自身を含む) - go test ./... 0 失敗、VERSION / plugin.json / harness.toml 非接触 Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> * docs(plan): Phase 129 完走 — 全 4 task を cc:done に更新 129.1 検出テスト新設 / 129.2 tests/ 131 箇所 / 129.3 scripts/ 42 箇所 / 129.4 配線 + closeout。各 task の Status に実測値を記録した。 Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> * fix(tests): 検出器の 2 件の欠陥を修正 (CodeRabbit 指摘) いずれも実測で再現を確認してから修正した。 - 行継続を跨ぐパイプラインの検出漏れ: `perl -ne` が物理行ごとに走査するため、 行末の `\` で分割された `printf ... \ | grep -q ...` を見落としていた。 物理行を論理行へ畳んでから走査する。行番号は論理行の開始位置を報告する - 引用符内のエスケープの誤解釈: 二重引用符の中の `\"` を閉じ引用符と解釈し、 後続の `| grep -q` が引用符の外に見えて誤検出していた。二重引用符の中でのみ `\` をエスケープとして扱う (単一引用符の中では shell の仕様どおり扱わない) fixture は 8 件 → 10 件。CHANGELOG に Before/After 表を追加した。 改良後の検出器を変更前ツリーへ適用すると 168 箇所 (旧実装は 173)。差の 5 件は 行継続の畳み込みによる数え方の違いで、検出漏れではない。物理行 782・783 を 2 件と数えていたものが論理行の開始 781 の 1 件になる。該当箇所は目視で 変換の正しさを確認済み。 検証: validate-plugin 132 合格 0 失敗、check-consistency 全 24 通過。 Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> --------- Co-authored-by: tachibanashuuta <tachibana@canai.jp> Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com> | 2 个月前 | |
fix: complete phase 56 codex follow-ups (#116) * docs: align repo structure and skill summary docs * fix: complete phase 56 codex follow-ups * fix: make statusline cache mtime portable | 5 个月前 | |
fix(tests,scripts): pipefail 下の `producer | grep -q` 173 箇所を herestring へ一掃 (Phase 129) (#286) * fix(tests,scripts): pipefail 下の `producer | grep -q` 173 箇所を herestring へ一掃 PR #285 で実害 2 箇所を直したが、同じ書き方が 173 箇所残っていた。 `grep -q` は最初の一致で終了してパイプを閉じるため、分割書き込み中の producer が EPIPE で失敗する。`set -o pipefail` がその失敗をパイプライン 全体の結果へ昇格させるので、探す文字列が実在するのに「無い」と判定される。 一致が入力の前方にあるほど再現するため、合否が「探す文字列が何行目にあるか」 で決まる状態だった。 - tests/test-pipefail-grep-q-safety.sh を新設 (Phase 129.1)。 静的走査で該当箇所を検出し、fixture 8 件で除外条件を固定 (pipefail 無し / `|| true` / herestring / grep -c / コメント行 / 引用符内) - tests/ 39 ファイル 131 箇所、scripts/ 19 ファイル 42 箇所を変換 (Phase 129.2 / 129.3) - tests/validate-plugin.sh に節 19 を配線し、 tests/test-validate-plugin-wiring.sh の pin にも追加 (Phase 129.4)。 検査の除去には 2 つの独立したファイルの変更が必要になる 引用符認識を実装した過程で、旧パターンが取りこぼしていた 3 段パイプライン (`echo | jq | grep -qi`) を 1 件発見し、変数経由に分解した。 実測: - 検出件数 173 → 0 - 変換部分は追加 172 / 削除 172 の 1 対 1 (アサーション削除・期待値緩和ゼロ) - bash -n 全 58 ファイル OK (行末継続 `\` を壊した 4 箇所はここで検出し修正) - shellcheck warning は変換前後とも 29 件で同数、herestring 起因の新規指摘ゼロ - validate-plugin 132 合格 0 失敗 (131 + 新設 1 節) - check-consistency 全 24 通過 (変換対象に check-consistency.sh 自身を含む) - go test ./... 0 失敗、VERSION / plugin.json / harness.toml 非接触 Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> * docs(plan): Phase 129 完走 — 全 4 task を cc:done に更新 129.1 検出テスト新設 / 129.2 tests/ 131 箇所 / 129.3 scripts/ 42 箇所 / 129.4 配線 + closeout。各 task の Status に実測値を記録した。 Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> * fix(tests): 検出器の 2 件の欠陥を修正 (CodeRabbit 指摘) いずれも実測で再現を確認してから修正した。 - 行継続を跨ぐパイプラインの検出漏れ: `perl -ne` が物理行ごとに走査するため、 行末の `\` で分割された `printf ... \ | grep -q ...` を見落としていた。 物理行を論理行へ畳んでから走査する。行番号は論理行の開始位置を報告する - 引用符内のエスケープの誤解釈: 二重引用符の中の `\"` を閉じ引用符と解釈し、 後続の `| grep -q` が引用符の外に見えて誤検出していた。二重引用符の中でのみ `\` をエスケープとして扱う (単一引用符の中では shell の仕様どおり扱わない) fixture は 8 件 → 10 件。CHANGELOG に Before/After 表を追加した。 改良後の検出器を変更前ツリーへ適用すると 168 箇所 (旧実装は 173)。差の 5 件は 行継続の畳み込みによる数え方の違いで、検出漏れではない。物理行 782・783 を 2 件と数えていたものが論理行の開始 781 の 1 件になる。該当箇所は目視で 変換の正しさを確認済み。 検証: validate-plugin 132 合格 0 失敗、check-consistency 全 24 通過。 Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> --------- Co-authored-by: tachibanashuuta <tachibana@canai.jp> Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com> | 2 个月前 | |
feat(config): add advisor config helpers | 5 个月前 | |
chore: release v2.17.2 - Codex Worker Plans.md auto-update Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> | 7 个月前 | |
Fix Plans status marker output and issue closeout evidence - Standardize newly written Plans status markers on cc:done while keeping legacy 完了 readable.\n- Filter Plans summary/handoff extraction to real task rows across checklist, table, and heading styles.\n- Add regression coverage for custom Plans directories, marker legends, and Japanese session outputs. | 4 个月前 | |
fix(tests,scripts): pipefail 下の `producer | grep -q` 173 箇所を herestring へ一掃 (Phase 129) (#286) * fix(tests,scripts): pipefail 下の `producer | grep -q` 173 箇所を herestring へ一掃 PR #285 で実害 2 箇所を直したが、同じ書き方が 173 箇所残っていた。 `grep -q` は最初の一致で終了してパイプを閉じるため、分割書き込み中の producer が EPIPE で失敗する。`set -o pipefail` がその失敗をパイプライン 全体の結果へ昇格させるので、探す文字列が実在するのに「無い」と判定される。 一致が入力の前方にあるほど再現するため、合否が「探す文字列が何行目にあるか」 で決まる状態だった。 - tests/test-pipefail-grep-q-safety.sh を新設 (Phase 129.1)。 静的走査で該当箇所を検出し、fixture 8 件で除外条件を固定 (pipefail 無し / `|| true` / herestring / grep -c / コメント行 / 引用符内) - tests/ 39 ファイル 131 箇所、scripts/ 19 ファイル 42 箇所を変換 (Phase 129.2 / 129.3) - tests/validate-plugin.sh に節 19 を配線し、 tests/test-validate-plugin-wiring.sh の pin にも追加 (Phase 129.4)。 検査の除去には 2 つの独立したファイルの変更が必要になる 引用符認識を実装した過程で、旧パターンが取りこぼしていた 3 段パイプライン (`echo | jq | grep -qi`) を 1 件発見し、変数経由に分解した。 実測: - 検出件数 173 → 0 - 変換部分は追加 172 / 削除 172 の 1 対 1 (アサーション削除・期待値緩和ゼロ) - bash -n 全 58 ファイル OK (行末継続 `\` を壊した 4 箇所はここで検出し修正) - shellcheck warning は変換前後とも 29 件で同数、herestring 起因の新規指摘ゼロ - validate-plugin 132 合格 0 失敗 (131 + 新設 1 節) - check-consistency 全 24 通過 (変換対象に check-consistency.sh 自身を含む) - go test ./... 0 失敗、VERSION / plugin.json / harness.toml 非接触 Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> * docs(plan): Phase 129 完走 — 全 4 task を cc:done に更新 129.1 検出テスト新設 / 129.2 tests/ 131 箇所 / 129.3 scripts/ 42 箇所 / 129.4 配線 + closeout。各 task の Status に実測値を記録した。 Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> * fix(tests): 検出器の 2 件の欠陥を修正 (CodeRabbit 指摘) いずれも実測で再現を確認してから修正した。 - 行継続を跨ぐパイプラインの検出漏れ: `perl -ne` が物理行ごとに走査するため、 行末の `\` で分割された `printf ... \ | grep -q ...` を見落としていた。 物理行を論理行へ畳んでから走査する。行番号は論理行の開始位置を報告する - 引用符内のエスケープの誤解釈: 二重引用符の中の `\"` を閉じ引用符と解釈し、 後続の `| grep -q` が引用符の外に見えて誤検出していた。二重引用符の中でのみ `\` をエスケープとして扱う (単一引用符の中では shell の仕様どおり扱わない) fixture は 8 件 → 10 件。CHANGELOG に Before/After 表を追加した。 改良後の検出器を変更前ツリーへ適用すると 168 箇所 (旧実装は 173)。差の 5 件は 行継続の畳み込みによる数え方の違いで、検出漏れではない。物理行 782・783 を 2 件と数えていたものが論理行の開始 781 の 1 件になる。該当箇所は目視で 変換の正しさを確認済み。 検証: validate-plugin 132 合格 0 失敗、check-consistency 全 24 通過。 Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> --------- Co-authored-by: tachibanashuuta <tachibana@canai.jp> Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com> | 2 个月前 | |
feat: Codex CLI 0.110.0 compatibility updates - Update config.toml template with 0.110.0 memory settings - Document memory config key renames, polluted memories, workspace-scoped writes - Bump MIN_CODEX_VERSION from 0.92.0 to 0.107.0 Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> | 6 个月前 | |
Fix Plans status marker output and issue closeout evidence - Standardize newly written Plans status markers on cc:done while keeping legacy 完了 readable.\n- Filter Plans summary/handoff extraction to real task rows across checklist, table, and heading styles.\n- Add regression coverage for custom Plans directories, marker legends, and Japanese session outputs. | 4 个月前 | |
Phase 66: close open issue set (#129) * docs(plans): add phase 66 issue closeout plan * fix(worktree): reject hook decision json cwd * docs(plans): mark worktree json cwd fix complete * fix(loop): fail fast on codex runner startup death * docs(plans): mark codex loop startup fix complete * fix(session): stop stale broadcast inbox repeats * docs(plans): mark broadcast inbox fix complete * fix(release): gate mirror drift before tags * docs(plans): mark release mirror preflight complete * feat(plans): add named plan registry * docs(plans): mark named plans complete * docs(changelog): summarize phase 66 closeout * ci: use setup-go v6 runtime * fix(plan-brief): make confidence locale-stable * fix(codex): include html surface skills * docs(plans): mark phase 66 closeout complete | 4 个月前 | |
feat(phase-65.3.6): cross-project-audit.v1 audit log + HTML 監査サマリ Phase C cycle 6/7。Cross-project search が走ったときの監査ログと、 生成 HTML 末尾への redaction サマリ表示を追加。プライバシー保護のため クエリ文字列は sha256 hash のみ記録。 Changes: - scripts/cross-project-audit-log.sh: 新規 schema_version: cross-project-audit.v1 fields: timestamp / group_name / member_projects[] / query_hash (sha256) / redaction_count.{dict, ner} / output_passed_final_scan --query-hash は 64 chars hex 強制 (生クエリ漏れ防止) default 出力先: .claude/state/audit/cross-project-search.jsonl (gitignored) append-only (>>) で 1 行ずつ追加 - scripts/render-html.sh: 拡張 --audit-group <name> / --audit-members <csv> / --audit-query-hash <hex> (3 つ揃って初めて audit log を append) Layer 2a/2b の stderr ("redacted: N tokens/entities") から件数を parse HTML 最下部に <div class="audit-summary"> で「redacted: dict X 件 + NER Y 件」を表示 (template 著者の他コードを傷つけないよう </body> 直前に挿入、無ければ末尾 append) final scan 失敗時も audit log に passed_final_scan: false で記録 してから exit 1 (Plans.md DoD e の Case 3 対応) - tests/test-cross-project-audit.sh: 21 PASS / 0 FAIL Plans.md DoD (e) の 3 ケース (redaction 0 / 複数 / final scan 失敗) + audit-log.sh 単体検証 + クエリ生記録なし検証 + append-only 検証 + --audit-group なしなら append しない検証 + schema validation - tests/validate-plugin.sh: 新テスト登録 (56 → 57 件) Validation: - bash tests/test-cross-project-audit.sh: 21 PASS / 0 FAIL - ./tests/validate-plugin.sh: 57 PASS / 0 FAIL - bash scripts/ci/check-consistency.sh: 全合格 Refs: Plans.md §65.3.6, D43 (decisions.md) | 4 个月前 | |
feat(phase-133): 外部ツール最新仕様への追随 5 件を完了する Phase 133.1 / 133.2 / 133.4 / 133.5 / 133.6 を実装し、Phase D の 独立レビュー 2 系統 (デグレ観点 / 正当性観点) の指摘 6 件を修正した。 ## 133.1 cursor CLI binary 名の追随 公式 docs が全例を `agent` 表記に統一し `cursor-agent` を legacy alias としたため、`agent` → `cursor-agent` の順に probe する。`agent` は汎用名 なので、symlink 解決後の実パス「成分」が厳密に `cursor-agent` の場合だけ 採用する identity check を併設した。判定のために未知のバイナリを実行し ない (実行こそが避けたいリスクのため)。解決サイトは 5 系統に適用。 レビュー指摘: 当初は部分文字列一致で、`/x/cursor-agent-not-really/agent` で突破できた。成分の完全一致へ修正し、衝突ケースの回帰テスト A3c を追加。 ## 133.2 grok execution backend 起票時の前提が実測で覆った。hosts.toml の根拠は grok-cli v1.1.7 (TypeScript) だったが、実機の grok は 0.2.118 "Grok Build TUI" (Rust) で 別系統。`grok inspect` は claude 互換で hooks on を報告し、 `hook pre-tool --host grok` は `--host claude` と byte 一致の判定を返す。 欠けていたのは CCH 側の配布 (`build_grok()` が hooks を同梱しない)。 裁定は (b) hook なし execution backend + CCH 側封じ込め (decisions.md D58)。 `scripts/grok-companion.sh` + テストを追加し、hosts.toml の evidence を訂正。 ## 133.4 repair loop の状態外部化 反復状態を `.claude/state/repair-loop/<task>.json` へ外部化し、 MAX_REVIEWS 上限を `check` の終了コードで機械判定する。 レビュー指摘 3 件を修正: (a) record の read-modify-write を lock で直列化 (並行 10 プロセスで 9 件消失していた)、(b) findings を schema と同じ制約で 検証 (schema ファイルが飾りになっていた)、(c) `check` の exit 1 が「上限 到達」と「判定不能」の両方を意味していたため 4 を分離 (init 忘れが 「レビュー上限到達」として誤報されるのを防ぐ)。 ## 133.5 blind judge rubric を見せない第二審を opt-in で追加。judge は plain な fresh sub-agent で spawn し `context: fork` は使わない (fork は親文脈を継承 しうるため rubric が漏れる)。乖離は advisory finding に留め、verdict を 書き換えない。 ## 133.6 CC CLI 新機能の一次ソース検証 raw CHANGELOG を直読して 4 件を確証 (2.1.217 / 2.1.219 / 2.1.224)。 credential-masking は macOS で deny にフォールバックするため、denyRead 回避策の置き換えは提案に留め未採用。 ## 検証 - tests/validate-plugin.sh 139 合格 / 0 失敗 / 0 警告 - scripts/ci/check-consistency.sh 全合格 - 新規テスト 3 本を validate-plugin.sh へ配線 - 変異検査で新規アサーション 5 件が実装の違いを検出することを確認 Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01PCi5GLAfya9aWYnDc7cmhs | 1 个月前 | |
fix(loop): count plateau entries with jq | 5 个月前 | |
fix(tests,scripts): pipefail 下の `producer | grep -q` 173 箇所を herestring へ一掃 (Phase 129) (#286) * fix(tests,scripts): pipefail 下の `producer | grep -q` 173 箇所を herestring へ一掃 PR #285 で実害 2 箇所を直したが、同じ書き方が 173 箇所残っていた。 `grep -q` は最初の一致で終了してパイプを閉じるため、分割書き込み中の producer が EPIPE で失敗する。`set -o pipefail` がその失敗をパイプライン 全体の結果へ昇格させるので、探す文字列が実在するのに「無い」と判定される。 一致が入力の前方にあるほど再現するため、合否が「探す文字列が何行目にあるか」 で決まる状態だった。 - tests/test-pipefail-grep-q-safety.sh を新設 (Phase 129.1)。 静的走査で該当箇所を検出し、fixture 8 件で除外条件を固定 (pipefail 無し / `|| true` / herestring / grep -c / コメント行 / 引用符内) - tests/ 39 ファイル 131 箇所、scripts/ 19 ファイル 42 箇所を変換 (Phase 129.2 / 129.3) - tests/validate-plugin.sh に節 19 を配線し、 tests/test-validate-plugin-wiring.sh の pin にも追加 (Phase 129.4)。 検査の除去には 2 つの独立したファイルの変更が必要になる 引用符認識を実装した過程で、旧パターンが取りこぼしていた 3 段パイプライン (`echo | jq | grep -qi`) を 1 件発見し、変数経由に分解した。 実測: - 検出件数 173 → 0 - 変換部分は追加 172 / 削除 172 の 1 対 1 (アサーション削除・期待値緩和ゼロ) - bash -n 全 58 ファイル OK (行末継続 `\` を壊した 4 箇所はここで検出し修正) - shellcheck warning は変換前後とも 29 件で同数、herestring 起因の新規指摘ゼロ - validate-plugin 132 合格 0 失敗 (131 + 新設 1 節) - check-consistency 全 24 通過 (変換対象に check-consistency.sh 自身を含む) - go test ./... 0 失敗、VERSION / plugin.json / harness.toml 非接触 Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> * docs(plan): Phase 129 完走 — 全 4 task を cc:done に更新 129.1 検出テスト新設 / 129.2 tests/ 131 箇所 / 129.3 scripts/ 42 箇所 / 129.4 配線 + closeout。各 task の Status に実測値を記録した。 Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> * fix(tests): 検出器の 2 件の欠陥を修正 (CodeRabbit 指摘) いずれも実測で再現を確認してから修正した。 - 行継続を跨ぐパイプラインの検出漏れ: `perl -ne` が物理行ごとに走査するため、 行末の `\` で分割された `printf ... \ | grep -q ...` を見落としていた。 物理行を論理行へ畳んでから走査する。行番号は論理行の開始位置を報告する - 引用符内のエスケープの誤解釈: 二重引用符の中の `\"` を閉じ引用符と解釈し、 後続の `| grep -q` が引用符の外に見えて誤検出していた。二重引用符の中でのみ `\` をエスケープとして扱う (単一引用符の中では shell の仕様どおり扱わない) fixture は 8 件 → 10 件。CHANGELOG に Before/After 表を追加した。 改良後の検出器を変更前ツリーへ適用すると 168 箇所 (旧実装は 173)。差の 5 件は 行継続の畳み込みによる数え方の違いで、検出漏れではない。物理行 782・783 を 2 件と数えていたものが論理行の開始 781 の 1 件になる。該当箇所は目視で 変換の正しさを確認済み。 検証: validate-plugin 132 合格 0 失敗、check-consistency 全 24 通過。 Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> --------- Co-authored-by: tachibanashuuta <tachibana@canai.jp> Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com> | 2 个月前 | |
feat(cursor): host-specific dist cleanup and internal-compatible promotion (#174) Add host-specific plugin dist builder, Cursor real-directory install via setup-cursor.sh, and promote Cursor to internal-compatible with aligned docs, onboarding, tests, and release-preflight gates. Co-authored-by: Cursor <cursoragent@cursor.com> Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com> | 4 个月前 | |
feat(go): migrate sprint contract and hook hot paths | 5 个月前 | |
fix(p2): export ENABLE_PROMPT_CACHING_1H so subprocess inherits (Codex review #7) Phase 44.6.1 で env.local に書く形式が `KEY=VALUE` だったため、 `source env.local` しても shell-local 変数のままで claude (subprocess) に 継承されず、1h cache opt-in が実質機能していなかった。 修正: - enable-1h-cache.sh: `export KEY=VALUE` 形式で書き出す - test-prompt-cache-1h.sh: grep pattern を `^export ` 付きに更新 - test-prompt-cache-1h.sh Test 6: subprocess 継承テストを追加 (`bash -c "source env.local; bash -c 'echo $KEY'"` で子 bash に伝播確認) 合格ライン #4 (CC 機能の主張に裏付け) 抵触の修正。 | 5 个月前 | |
feat(verification): Phase 134-137 — 検証チェーン配線修理 + writing lint + surface + ループ施策 Phase 134: 入口 (risk_flags→profile 自動昇格 + ratchet) / 中間 (PENDING_BROWSER fail-visible, pending_validations) / 出口 (accept-collect-evidence.sh による artifact 機械接続) の 3 継ぎ目を接続。scope leash 本配線 (warn 既定)、Playwright Screencast evidence、worker-report.v1 永続化、再調査ループ、検証の検証 (check-verification-chain-wiring.sh + 実効性契約テスト 3 本、RED→GREEN 実測)。 Phase 135: writinglint エンジン (辞書は個人層) + PostToolUse advisory + Stop 全体再検査 + 指摘→ルール自動ドラフト→人間承認ループ + config schema 正式化。 Phase 136: 3 surface スマホ viewport / 承認待ちキュー表示 / diagram-design 接続点。 Phase 137: 採点設計規律 (criteria 3 層翻訳) / blind 受け手検査 / 評価者 4 契約。 decisions.md D62-D68 に判断根拠を記録。worker 契約に NG-4 追加。 Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01TFcsXBG95kTdxPfDaP7Vuu | 1 个月前 | |
feat(verification): Phase 134-137 — 検証チェーン配線修理 + writing lint + surface + ループ施策 Phase 134: 入口 (risk_flags→profile 自動昇格 + ratchet) / 中間 (PENDING_BROWSER fail-visible, pending_validations) / 出口 (accept-collect-evidence.sh による artifact 機械接続) の 3 継ぎ目を接続。scope leash 本配線 (warn 既定)、Playwright Screencast evidence、worker-report.v1 永続化、再調査ループ、検証の検証 (check-verification-chain-wiring.sh + 実効性契約テスト 3 本、RED→GREEN 実測)。 Phase 135: writinglint エンジン (辞書は個人層) + PostToolUse advisory + Stop 全体再検査 + 指摘→ルール自動ドラフト→人間承認ループ + config schema 正式化。 Phase 136: 3 surface スマホ viewport / 承認待ちキュー表示 / diagram-design 接続点。 Phase 137: 採点設計規律 (criteria 3 層翻訳) / blind 受け手検査 / 評価者 4 契約。 decisions.md D62-D68 に判断根拠を記録。worker 契約に NG-4 追加。 Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01TFcsXBG95kTdxPfDaP7Vuu | 1 个月前 | |
refactor(failure-codifier): standalone cmd → bin/harness failure-codifier subcommand go run ./cmd/failure-codifier-propose は実行時 Go toolchain 必須で単一バイナリ 配布規約に反するため bin/harness failure-codifier propose subcommand に統合。 --dry-run 必須 (auto-promotion forbidden = exit 2) を subcommand 層でも維持。 go/cmd/failure-codifier-propose/ を削除。 Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> | 3 个月前 | |
feat(phase-65.3.4): render-html.sh --with-redaction (Layer 3 final scan) Phase C cycle 4/7。HTML 生成直前に dict → NER → final-scan の 3 段防御を 実行。Layer 3 (final-scan) で残骸検出時は HTML を**生成せず exit 1**。 Changes: - scripts/render-html.sh: --with-redaction flag 追加 (default: false、後方互換) --client-dict <path> flag 追加 (test 容易性、default は SSOT) flag 有効時、template render 後・write 前に 3 段順次: Layer 2a: redact-by-dictionary.sh --stdin (literal proper noun) Layer 2b: redact-by-ner.sh --stdin (fugashi tokenizer) Layer 3 : final-scan-redaction.py (カタカナ 5+ 連続検出) Layer 3 で残骸検出時: stderr に "detected: <token>, source: <line>", HTML 未生成、exit 1 (fail-safe) - scripts/final-scan-redaction.py: 新規 HTML/CSS/JS chrome (<!-- --> / /* */ / <style>... / <script>...) を scan 対象から除外 (template 著者の意図的な branding を false positive にしないため) Sentinel mark ([Entity] / [REDACTED_*] / [Client_*] / [Person_*] / [Domain_*]) も除外 カタカナ 5+ 連続を検出 → exit 1 (residue あり) / 0 (clean) detection ロジックを別ファイル化した理由: render-html.sh の bash heredoc + pipe で stdin 衝突する (heredoc が pipe 入力を 上書きする bash 仕様) ため - tests/test-render-html-redaction.sh: 新規 16 PASS Plans.md DoD (d) の 4 ケース (全 clean / dict / NER / final scan) + --with-redaction なしの後方互換 1 ケース - tests/validate-plugin.sh: 新テスト登録 (54 → 55 件) Validation: - bash tests/test-render-html-redaction.sh: 16 PASS / 0 FAIL - ./tests/validate-plugin.sh: 55 PASS / 0 FAIL - bash scripts/ci/check-consistency.sh: 全合格 Refs: Plans.md §65.3.4, D43 (decisions.md), .claude/rules/cross-repo-handoff.md | 4 个月前 | |
refactor: unify SSOT to skills/, harden settings, rename Go packages Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> | 5 个月前 | |
feat: フロントマターベースのメタデータ統合システム実装 ## 追加 - scripts/frontmatter-utils.sh: メタデータ抽出ユーティリティ(5関数) - has_frontmatter(), get_frontmatter_version(), get_frontmatter_template() - Markdown/JSON/YAML の3形式に対応 - tests/test-frontmatter-integration.sh: 統合テストスイート(5シナリオ) - docs/PLAN_RULES_IMPROVEMENT.md: Rules活用による改善計画 ## 変更 - scripts/template-tracker.sh: フロントマター優先取得、[FM]/[GF]ソース表示追加 - 全15テンプレートに _harness_template と _harness_version を追加 ## 技術詳細 - Phase A(非破壊)+ Phase B(並行サポート)を完了 - 後方互換性: generated-files.json へのフォールバック機能搭載 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> | 9 个月前 | |
feat: harden long-running review and release workflows | 5 个月前 | |
feat: harden long-running review and release workflows | 5 个月前 | |
Implement Phase 70 Hokage Core gates | 4 个月前 | |
Phase 66: close open issue set (#129) * docs(plans): add phase 66 issue closeout plan * fix(worktree): reject hook decision json cwd * docs(plans): mark worktree json cwd fix complete * fix(loop): fail fast on codex runner startup death * docs(plans): mark codex loop startup fix complete * fix(session): stop stale broadcast inbox repeats * docs(plans): mark broadcast inbox fix complete * fix(release): gate mirror drift before tags * docs(plans): mark release mirror preflight complete * feat(plans): add named plan registry * docs(plans): mark named plans complete * docs(changelog): summarize phase 66 closeout * ci: use setup-go v6 runtime * fix(plan-brief): make confidence locale-stable * fix(codex): include html surface skills * docs(plans): mark phase 66 closeout complete | 4 个月前 | |
chore: release v3.17.0 Feature Table 整合性回復 + CC 2.1.87-2.1.90 統合 + Claude/Codex parity 強化 Phase 33: PermissionDenied handler, defer docs, Feature Table v2.1.84-2.1.90 Phase 34: Feature Table 誇張修正(7件), PostCompact WIP復元, webhook通知, security review profile, Codex effort伝播, OTel Span送信, dual review, harness-release全面改訂 Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> | 5 个月前 | |
feat(phase-133): 外部ツール最新仕様への追随 5 件を完了する Phase 133.1 / 133.2 / 133.4 / 133.5 / 133.6 を実装し、Phase D の 独立レビュー 2 系統 (デグレ観点 / 正当性観点) の指摘 6 件を修正した。 ## 133.1 cursor CLI binary 名の追随 公式 docs が全例を `agent` 表記に統一し `cursor-agent` を legacy alias としたため、`agent` → `cursor-agent` の順に probe する。`agent` は汎用名 なので、symlink 解決後の実パス「成分」が厳密に `cursor-agent` の場合だけ 採用する identity check を併設した。判定のために未知のバイナリを実行し ない (実行こそが避けたいリスクのため)。解決サイトは 5 系統に適用。 レビュー指摘: 当初は部分文字列一致で、`/x/cursor-agent-not-really/agent` で突破できた。成分の完全一致へ修正し、衝突ケースの回帰テスト A3c を追加。 ## 133.2 grok execution backend 起票時の前提が実測で覆った。hosts.toml の根拠は grok-cli v1.1.7 (TypeScript) だったが、実機の grok は 0.2.118 "Grok Build TUI" (Rust) で 別系統。`grok inspect` は claude 互換で hooks on を報告し、 `hook pre-tool --host grok` は `--host claude` と byte 一致の判定を返す。 欠けていたのは CCH 側の配布 (`build_grok()` が hooks を同梱しない)。 裁定は (b) hook なし execution backend + CCH 側封じ込め (decisions.md D58)。 `scripts/grok-companion.sh` + テストを追加し、hosts.toml の evidence を訂正。 ## 133.4 repair loop の状態外部化 反復状態を `.claude/state/repair-loop/<task>.json` へ外部化し、 MAX_REVIEWS 上限を `check` の終了コードで機械判定する。 レビュー指摘 3 件を修正: (a) record の read-modify-write を lock で直列化 (並行 10 プロセスで 9 件消失していた)、(b) findings を schema と同じ制約で 検証 (schema ファイルが飾りになっていた)、(c) `check` の exit 1 が「上限 到達」と「判定不能」の両方を意味していたため 4 を分離 (init 忘れが 「レビュー上限到達」として誤報されるのを防ぐ)。 ## 133.5 blind judge rubric を見せない第二審を opt-in で追加。judge は plain な fresh sub-agent で spawn し `context: fork` は使わない (fork は親文脈を継承 しうるため rubric が漏れる)。乖離は advisory finding に留め、verdict を 書き換えない。 ## 133.6 CC CLI 新機能の一次ソース検証 raw CHANGELOG を直読して 4 件を確証 (2.1.217 / 2.1.219 / 2.1.224)。 credential-masking は macOS で deny にフォールバックするため、denyRead 回避策の置き換えは提案に留め未採用。 ## 検証 - tests/validate-plugin.sh 139 合格 / 0 失敗 / 0 警告 - scripts/ci/check-consistency.sh 全合格 - 新規テスト 3 本を validate-plugin.sh へ配線 - 変異検査で新規アサーション 5 件が実装の違いを検出することを確認 Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01PCi5GLAfya9aWYnDc7cmhs | 1 个月前 | |
feat(pr-closeout): evidence-pack-driven PR build + dry-run default + explicit push gate (Phase 72.1.5) | 3 个月前 | |
fix(harness-review): address shell-scripts compliance and dispatcher mode decision - Change scripts/harness-review-closeout.sh shebang to #!/bin/bash and add required header (script-name / one-line description / Usage) per .claude/rules/shell-scripts.md - Drop top-level `cd "$ROOT_DIR"` in harness-review-closeout.sh and route all git / codex-companion invocations through `git -C "$ROOT_DIR"` or absolute paths so the script no longer mutates caller cwd - Reorder skills/harness-review/SKILL.md (+ codex / opencode mirrors) so ## Mode Decision carries the actual mode-to-reference table instead of being an empty heading immediately followed by ## Quick Reference Addresses PR #138 code-review Critical findings (C1: cd violation, C2: empty Mode Decision section) and Major M4 (shebang / header). | 4 个月前 | |
fix: rescue PR61 under release-only versioning policy | 6 个月前 | |
refactor(engine): Phase 104.4 — remove dead bridge/mailbox subsystem, unify impact_score to Go binary 到達不能の bridge/bridgedelivery/mailbox/triaddispatcher (~2100 行) を削除、 設計知見は spec.md L3 節へ翻訳記録。impact_score は bin/harness impact-score subcommand に 統一し judgment-card.sh を薄ラッパー化。judgment card 系は wired:no 注記で S3 配線待ち。 Implemented-by: Codex (gpt-5.5) via codex-companion, Lead-reviewed. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> | 2 个月前 | |
feat(judgment-ledger): Phase 98.1 — append-only learning ledger v1 judgment-card.v1 を append-only JSONL ledger 化し過去判断を検索・recall 可能に。 - templates/schemas/judgment-ledger.v1.json (record schema, additionalProperties:false) - go/internal/judgmentledger/ (ledger + schema + index + recall, fail-open) - scripts/judgment-ledger.sh append/search/recall (fail-open on write) - scripts/judgment-card.sh record-answer → ledger append 配線 + recall subcommand - judgment-card.v1.similar_past_decisions を recall layer で max 3 埋める - docs/judgment-ledger.md SSOT (7 章) + CHANGELOG [Unreleased] 既定値: ledger=.claude/state/judgment-ledger.jsonl (HARNESS_JUDGMENT_LEDGER で上書き), ranking=string-match (Lead 決定、stop_point 98.1.5), search/recall max 3。 go test ./internal/judgmentledger/... 全 PASS。 Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> | 3 个月前 | |
feat(phase-65.3.1): cross-project-group.v1 schema + yaml loader (Phase C kickoff) Phase C: Cross-Project Group + 3-Layer Redaction の最初のタスク。 横断プロジェクト検索を opt-in で有効化するためのグループ定義 SSOT スキーマと、yaml → JSON parser/validator を追加する。 Changes: - .claude/rules/cross-project-groups.yaml: 新規 SSOT、初期 groups: [] (default 横断検索無効、明示的 opt-in 設計) - docs/cross-project-groups-schema.md: cross-project-group.v1 schema 仕様 (制約、バリデーション、CLI 利用例、D43 Option α flow) - scripts/load-cross-project-groups.sh: bash → python3 launcher (deleted-concepts.yaml と同じパターン、PyYAML 依存) --group <name> で member 配列出力、不正 schema は exit 1 - tests/test-cross-project-groups-schema.sh: 21 assertion 機械検証 Plans.md DoD (d) の 4 ケース (空 / 1 group / member 重複 / 不正 schema) に加え、name 空文字 / schema_version mismatch / file not found / group not found を網羅 - tests/validate-plugin.sh: 新テスト登録 (51 → 52 件) Validation: - bash tests/test-cross-project-groups-schema.sh: 21 PASS / 0 FAIL - ./tests/validate-plugin.sh: 52 PASS / 0 FAIL - bash scripts/ci/check-consistency.sh: 全合格 Plans.md §65.3.1 → cc:WIP (commit 完了後 cc:完了 で別 commit) Refs: Plans.md §65.3.1, D43 (decisions.md), .claude/rules/cross-repo-handoff.md | 4 个月前 | |
Integrate Claude 2.1.80-2.1.86 upstream improvements | 6 个月前 | |
feat(tdd): add signal source files for Phase 68 TDD enforcement (local trial) Phase A.1 of Phase 68 TDD enforcement (local trial only, not released). Adds the single signal source that all 4 enforcement layers (L1 worker self_review / L2 reviewer critical / L3 R14 hook / L4 validate-plugin compliance) will share once the rest of Phase A and B land. These 3 files have no readers yet — existing behavior is unchanged. Files: - .claude/rules/tdd-paths.yaml (new, ~140 lines) Language-specific src↔test mapping SSOT (node / go / python / rust). Schema: tdd-paths.v1. - scripts/log-tdd-red.sh (new, ~150 lines) Records Red-phase test failure as JSONL under .claude/state/tdd-red-log/<task-id>.jsonl. Idempotent, rotates at 500 lines. jq / python3 fallback. - scripts/detect-test-framework.sh (new, ~170 lines) Detects framework (vitest / jest / pytest / go / cargo) by walking from --target-file (or project root) toward the project root. Emits single-line JSON with {framework, command, language, test_pattern, detected_via}. Verification: - bash -n on both scripts: PASS - log-tdd-red.sh: 3-scenario test (initial append / idempotent retry / new entry with different exit_code) PASS - detect-test-framework.sh: harness's go/ subproject returns {"framework":"go","command":"go test ./...",...} via both --project-root and --target-file - tests/validate-plugin.sh: 68 pass / 0 warn / 0 fail (no regression) Not released: - VERSION, .claude-plugin/plugin.json, harness.toml version line intentionally untouched (per local-trial policy) - CHANGELOG.md will be updated in Phase A.5 with the [Unreleased] note Plan reference: /Users/tachibanashuuta/.claude/plans/1-delegated-piglet.md Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> | 4 个月前 | |
fix(routing): grok のモデル pin を実カタログへ訂正する (Phase 133.7) operator 承認 (2026-08-13)。 ## 何が壊れていたか `scripts/model-routing.sh` の grok pin 5 種は **1 つも実在しなかった**。 grok へ委譲を始めた瞬間に全 tier が失敗する状態だった。 原因は 2 世代連続で同じ取り違えをしたこと。根拠にしていた `grok-cli` (TypeScript, LocalWork/Code/grok-cli) は、実際に動く `grok 0.2.118` ("Grok Build TUI", Rust) とは**同名の別プロダクト**だった。 皮肉なことに 2 世代前の `grok-4.5` は実在した。当時のコメントは `observed 2026-07-09 on CLI 0.2.93` — 実バイナリでの観測だった。 source tree を読んで「訂正」したことで、正しい値が誤った値になっていた。 ## 実カタログ `grok 0.2.118` が cli-chat-proxy.grok.com/v1/models から取得した アカウントカタログは 2 つだけ: - grok-4.6 既定 / frontier / 500k ctx / effort xhigh|high|medium|low - grok-4.5 500k ctx / effort high|medium|low tier 割当: lite,standard=grok-4.5 / deep,advisor,review=grok-4.6 xhigh / release,long-context=grok-4.6 high ## 4 層すべてへ降下 scripts/model-routing.sh (正本) / hosts.toml / docs/model-routing-policy.md (tier 表 + role 表 + 注記) / docs/research/grok-adapter-candidate.md ## 回帰網の強化 effort 検査を平坦な許可リストから **モデル別** に変更した。grok-4.5 は xhigh を受け付けないため、平坦なリストでは不正な組み合わせを取りこぼす。 昨日追加した docs<->SSOT ゲートが 3 回ドリフトを検出し、その都度潰した。 ゲートが実働していることの確認にもなった。 Plans.md 133.7 / decisions.md D58 Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01PCi5GLAfya9aWYnDc7cmhs | 1 个月前 | |
feat(night-watch): Phase 99.1 — nightly patrol monitoring layer 未解決ループ/停滞タスク/古い open decision を夜間巡回。D40 tri-state health、 opt-in 既定 OFF。 - templates/schemas/night-watch-report.v1.json (additionalProperties:false) - go/internal/nightwatch/ (tri-state: not-configured/daemon-unreachable/corrupted) - templates/night-watch-config.yaml (stale_task_hours:72 / open_decision_hours:168) - scripts/night-watch-report.sh --dry-run + night-watch-install.sh (opt-in) - Session Monitor 統合 (not-configured で警告抑止) + cron template (default OFF) - check-consistency + validate-plugin section + CHANGELOG (Phase 99 owner) 注: go/cmd/night-watch-report (go run 方式) は Lead が trunk で bin/harness night-watch subcommand にリファクタする (単一バイナリ配布規約)。 go test nightwatch/session 全 PASS。 Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> | 3 个月前 | |
fix(night-watch): complete subcommand refactor — add night_watch.go + main.go wiring + script 先行 commit 9cbba99a は git add の pathspec エラーで standalone cmd 削除のみ反映され、 subcommand 実体 (night_watch.go) / main.go 登録 / script 更新が未コミットだった (binary は working-tree からビルド済みで source/binary 不一致)。本 commit で整合。 Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> | 3 个月前 | |
feat: add New Harness V2 host adapters Add tool-first onboarding, support-tier boundaries, Codex CLI plugin smoke, OpenCode bootstrap validation, migration reporting, and Phase 74 repo-health gates. | 4 个月前 | |
fix: reconcile orchestration rollup by delta to fix mid-session undercount (#199) orchestration-rollup.sh skipped any session already in rolled_up_sessions, so a rollup that ran mid-session locked the session's lifetime contribution at its count-so-far and dropped every later same-session delegation (observed live: session cursor=144 but lifetime cursor=117 — rollup ran once at 117 and the session kept delegating). Track each session's previously-counted per-backend amounts in a new session_counts field and, on every rollup, add only the delta (current ledger count − previously counted) per backend, then overwrite the snapshot. This keeps the no-double-count guarantee (re-rollup with no new delegations is a no-op) and fixes the gap (re-rollup after more delegations adds only the tail). Migration-safe: old totals files lack session_counts; a session already in rolled_up_sessions is then treated as fully counted (delta 0) so a legacy file is never double-counted on its next rollup. session_counts is an additive v1 field; old files are read as {}. - scripts/orchestration-rollup.sh: delta reconciliation + migration fallback - orchestration-totals.v1 schema (+ codex/opencode mirrors): session_counts field - tests/test-orchestration-totals.sh: delta-reconciliation + migration-safe cases - CHANGELOG [Unreleased] Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com> | 3 个月前 | |
feat(phase-133): 外部ツール最新仕様への追随 5 件を完了する Phase 133.1 / 133.2 / 133.4 / 133.5 / 133.6 を実装し、Phase D の 独立レビュー 2 系統 (デグレ観点 / 正当性観点) の指摘 6 件を修正した。 ## 133.1 cursor CLI binary 名の追随 公式 docs が全例を `agent` 表記に統一し `cursor-agent` を legacy alias としたため、`agent` → `cursor-agent` の順に probe する。`agent` は汎用名 なので、symlink 解決後の実パス「成分」が厳密に `cursor-agent` の場合だけ 採用する identity check を併設した。判定のために未知のバイナリを実行し ない (実行こそが避けたいリスクのため)。解決サイトは 5 系統に適用。 レビュー指摘: 当初は部分文字列一致で、`/x/cursor-agent-not-really/agent` で突破できた。成分の完全一致へ修正し、衝突ケースの回帰テスト A3c を追加。 ## 133.2 grok execution backend 起票時の前提が実測で覆った。hosts.toml の根拠は grok-cli v1.1.7 (TypeScript) だったが、実機の grok は 0.2.118 "Grok Build TUI" (Rust) で 別系統。`grok inspect` は claude 互換で hooks on を報告し、 `hook pre-tool --host grok` は `--host claude` と byte 一致の判定を返す。 欠けていたのは CCH 側の配布 (`build_grok()` が hooks を同梱しない)。 裁定は (b) hook なし execution backend + CCH 側封じ込め (decisions.md D58)。 `scripts/grok-companion.sh` + テストを追加し、hosts.toml の evidence を訂正。 ## 133.4 repair loop の状態外部化 反復状態を `.claude/state/repair-loop/<task>.json` へ外部化し、 MAX_REVIEWS 上限を `check` の終了コードで機械判定する。 レビュー指摘 3 件を修正: (a) record の read-modify-write を lock で直列化 (並行 10 プロセスで 9 件消失していた)、(b) findings を schema と同じ制約で 検証 (schema ファイルが飾りになっていた)、(c) `check` の exit 1 が「上限 到達」と「判定不能」の両方を意味していたため 4 を分離 (init 忘れが 「レビュー上限到達」として誤報されるのを防ぐ)。 ## 133.5 blind judge rubric を見せない第二審を opt-in で追加。judge は plain な fresh sub-agent で spawn し `context: fork` は使わない (fork は親文脈を継承 しうるため rubric が漏れる)。乖離は advisory finding に留め、verdict を 書き換えない。 ## 133.6 CC CLI 新機能の一次ソース検証 raw CHANGELOG を直読して 4 件を確証 (2.1.217 / 2.1.219 / 2.1.224)。 credential-masking は macOS で deny にフォールバックするため、denyRead 回避策の置き換えは提案に留め未採用。 ## 検証 - tests/validate-plugin.sh 139 合格 / 0 失敗 / 0 警告 - scripts/ci/check-consistency.sh 全合格 - 新規テスト 3 本を validate-plugin.sh へ配線 - 変異検査で新規アサーション 5 件が実装の違いを検出することを確認 Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01PCi5GLAfya9aWYnDc7cmhs | 1 个月前 | |
feat: Windows/Mac/Linux クロスプラットフォームパス対応 - scripts/path-utils.sh を新規作成(OS検出、パス正規化、比較機能) - pretooluse-guard.sh: Windows絶対パス(C:/、C:\)判定を追加 - setup-existing-project.sh: cdエラーハンドリング追加 - sync-plugin-cache.sh: ハードコードパス削除、引数渡しに改善 - analyze-project.sh: 一時ファイルクリーンアップ追加 - track-changes.sh: パス正規化を追加 - tests/test-path-compatibility.sh: 32テストケース追加 パフォーマンス最適化: - detect_os() にキャッシング追加 - normalize_path() の文字ループを tr -s に置換 - is_path_under フォールバック関数の重複正規化を削除 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> | 8 个月前 | |
fix: resolve PostToolUse hook syntax error and improve python3 fallback (#40) - Fix bash parser error in posttooluse-tampering-detector.sh caused by `|| true` after heredoc inside command substitution - Change `set -euo pipefail` to `set +e` to match all other PostToolUse scripts - Replace `echo | grep -qE` with `[[ =~ ]]` for 6 pattern checks (with word boundaries) - Replace heredoc python3 fallback with `python3 -c` in all 10 hook scripts to fix stdin conflict (heredoc overrides pipe) - Replace `echo` with `printf '%s'` for safe input piping to jq/python3 - Replace `echo -e` with `printf '%b'` for POSIX compliance - Add bilingual warning messages (English + Japanese) Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> | 7 个月前 | |
fix(plan-brief): Phase 105.3 — confidence→plan_readiness (DoD 60 + deps 40), populate options/risks/acceptance_criteria 無関係 3 指標合算をやめ計画準備度の単一軸に。HTML ラベルを確信度→Plan readiness。3 配列の生成手順を SKILL.md に明記し空配列を解消。 Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> | 2 个月前 | |
feat: harness-plan-brief skill scaffolding for Phase 65 Plan Brief MVP (65.1.2) Add `harness-plan-brief` skill that generates a single-file HTML artifact summarizing Claude's understanding before implementation, targeted at non-engineer vibecoders. The skill reads project-only harness-mem (with strict_project: true) and never crosses project boundaries — cross-project opt-in is reserved for Phase 65.3. Skill responsibilities (from SKILL.md): (i) Resolve project name via `basename "$(git rev-parse --show-toplevel)"` (ii) Search harness-mem with project enforcement; cross-project is forbidden (iii) Build a `plan-brief-context.v1` JSON (compile logic delegated to 65.1.3) (iv) Render HTML via existing `scripts/render-html.sh` (Phase 65.1.1) (v) Auto-open in default browser via OS-specific dispatch New artifacts: - skills/harness-plan-brief/SKILL.md (frontmatter follows skill-editing.md; description / description-en exact match for i18n gate; description-ja routes Japanese trigger phrases) - skills/harness-plan-brief/schemas/plan-brief-context.v1.schema.json (Draft 2020-12 JSON Schema; required fields enforced; confidence is integer 0-100; confidence_evidence_items declared as optional rendering helper for the mustache template) - templates/html/plan-brief.html.template (Claude Harness brand palette #FAFAFA / #0F0F0F / #F58A4A; iterates options / risks / acceptance_criteria / related_decisions / similar_past_plans via {{#section}} blocks) - scripts/plan-brief-open.sh (Darwin `open` / Linux `xdg-open` / Windows `start` dispatch; BROWSER=true and PLAN_BRIEF_NO_OPEN=1 skip for CI; exit 2 on missing file) - tests/fixtures/plan-brief-e2e/sample-context.json (canonical sample that validates against the schema and renders cleanly) - tests/test-harness-plan-brief.sh (31 assertions covering DoD a-f; Python jsonschema preferred with jq structural fallback) Verified: - bash tests/test-harness-plan-brief.sh => 31/31 PASS - bash tests/validate-plugin.sh => 49/49 PASS - bash scripts/ci/check-consistency.sh => 全合格 (i18n gate, 102/102 files) Phase 65.1.3 (plan-brief-compile.sh) will populate confidence + evidence and transform confidence_evidence string[] into confidence_evidence_items [{text}] objects so the template can iterate them. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> | 4 个月前 | |
feat: plan-brief-record-decision.sh + 3-action test (65.1.4) Add `scripts/plan-brief-record-decision.sh` that builds the `personal-preference.v1` payload to be ingested via `mcp__harness__harness_mem_ingest` after the user reacts to a Plan Brief. Three action modes are supported and recorded in `data.action`: approve - user approved with a chosen_option (and optional rejected_options) revise - user wants a revision (reasoning explains what to change) question - user has a clarifying question (reasoning carries the question) The user request is hashed with sha256 before recording — the raw request text is never persisted, only its hash. This lets future searches join records that share the same request without exposing sensitive request bodies. Both `sha256sum` (Linux) and `shasum -a 256` (macOS) are accepted. Tags are fixed to `["personal-preference", "plan-brief-approval"]` for all three actions, per Plans.md DoD (b). The action discriminator lives in `data.action` so search filters do not have to switch on tag, and so adding a fourth action later does not balloon the tag namespace. The output is a payload for the LLM-side ingest call (the bash script itself cannot invoke the MCP). The skill (Phase 65.1.2) pipes this JSON to `mcp__harness__harness_mem_ingest` after user interaction. Verified: - bash tests/test-plan-brief-record.sh => 41/41 PASS (3 action cases × full payload checks + hash determinism + hash-different-on-different-input + invalid-action exit 2) - bash tests/test-render-html.sh => 26/26 PASS (no regression) - bash tests/test-harness-plan-brief.sh => 31/31 PASS (no regression) - bash tests/test-plan-brief-compile.sh => 31/31 PASS (no regression) - bash tests/validate-plugin.sh => 49/49 PASS - bash scripts/ci/check-consistency.sh => 全合格 Phase 65.1.5 (e2e validation) will tie all four pieces together — SKILL.md → mem search → compile → render → record — into one fixture project run that proves the round-trip works end to end. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> | 4 个月前 | |
feat(guardrail): 計画時の事前承認を R12 の確認抑制に接続する (126.5) 事前承認は「計画確定時に 1 回だけ確認し、実行中は同じことで再確認しない」設計だが、 実装は片肺だった。secret-read の承認だけが静的に project config へ焼き込まれ、 external-send と destructive の承認は skill の散文にしか存在せず、Go 側の判定に 一切接続されていなかった。承認済みの push でも R12 が毎回確認を出していた。 既存の焼き込み経路には、scope を検証せず無期限にマージする欠陥もあった。 ## plan-preapproval.v2 templates/schemas/plan-preapproval.v2.json を新設。各承認に expires_at (必須)、 max_uses (既定 10)、uses を持たせた。v1 は additionalProperties: false のため フィールドを後付けできず、別 schema とした。v1 は読み取り互換に限る。 「一度使ったら失効」ではなく回数上限にした。PR closeout は CI 修正後に再 push する ことがあり、単発消費だと 2 回目で確認が復活して当初の目的を壊すため。恒久緩和を 防ぐ性質は、有効期限とスコープ一致と回数上限の 3 つで担保する。 ## スコープ解決 hook 実行時に現在の phase/task を知る経路が無かったため、 .claude/state/active-task.json を新設し、harness-work / breezing がタスク開始時に 書く手順を追記した。env の HARNESS_ACTIVE_PHASE / HARNESS_ACTIVE_TASK も参照する。 どちらも解決できない場合は承認なし扱いで確認を維持する。 ## R12 への接続 保護ブランチへの直接 push で ask を返す分岐の手前に、有効な承認があれば規則を 発火させない判定を挿入した。deny 設定の分岐は抑制しない。設定で明示的に禁止された ものを承認で覆せてはならない。 コマンド照合は正規化後の完全一致で、<...> のプレースホルダのみ空白を含まない 1 トークンとして一致させる。前方一致や部分一致にすると承認範囲が意図せず広がるため。 ## runtime floor は対象外 floor の 5 カテゴリには接続していない。floor は「どの設定でも上書きできない 最終防波堤」であり、例外は operator が明示宣言する 2 つに限ると spec が 数え上げている。本変更が触るのは guardrail 規則の R12 のみで、 この境界をコードコメントと docs に明記した。 ## 実測 (12 項目すべて期待どおり) 承認済み+scope一致+期限内 -> 抑制 (approve) 期限切れ / 回数超過 / denied -> ask に復帰 scope 不一致 / 解決不能 -> ask 承認記録なし / JSON 破損 -> ask (fail-safe) v1 記録 -> ask (互換読取のみ) 承認と完全一致 -> 抑制 余分な引数 / 承認外の remote -> ask 別ブランチ (placeholder) -> 抑制 floor 対象コマンド -> deny (承認は floor を上書きしない) 抑制適用後 -> uses が 1 増えて記録される ## スクリプト scripts/plan-preapproval.sh を v2 対応にし、apply-secret-allow が scope を 検証せずマージする既知欠陥も直した。現在の phase/task と一致する承認だけを反映する。 このスクリプトは shellcheck の検査対象リストに入っていなかったため追加した。 検証: go test ./... は既存の負荷依存テスト 1 件を除き PASS (TestLeaseReclaim_ConcurrentSlowPath は単独実行で 0.4 秒で通り、変更を含まない メイン checkout でも同様。全体実行時の高負荷で 89 秒かかって落ちる既存の不安定さ)。 gofmt clean、go vet clean、shellcheck PASS、 test-plan-preapproval / test-shell-lint / test-3cli-hook-floor / test-runtimefloor-secret-allowlist-e2e すべて PASS。 126.1-126.4 の回帰確認 10 項目も不一致ゼロ。 Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Implemented-by: Codex (gpt-5.6-sol, xhigh) via codex-companion, Lead-verified | 2 个月前 | |
Phase 66: close open issue set (#129) * docs(plans): add phase 66 issue closeout plan * fix(worktree): reject hook decision json cwd * docs(plans): mark worktree json cwd fix complete * fix(loop): fail fast on codex runner startup death * docs(plans): mark codex loop startup fix complete * fix(session): stop stale broadcast inbox repeats * docs(plans): mark broadcast inbox fix complete * fix(release): gate mirror drift before tags * docs(plans): mark release mirror preflight complete * feat(plans): add named plan registry * docs(plans): mark named plans complete * docs(changelog): summarize phase 66 closeout * ci: use setup-go v6 runtime * fix(plan-brief): make confidence locale-stable * fix(codex): include html surface skills * docs(plans): mark phase 66 closeout complete | 4 个月前 | |
Fix Plans status marker output and issue closeout evidence - Standardize newly written Plans status markers on cc:done while keeping legacy 完了 readable.\n- Filter Plans summary/handoff extraction to real task rows across checklist, table, and heading styles.\n- Add regression coverage for custom Plans directories, marker legends, and Japanese session outputs. | 4 个月前 | |
feat(harness-ui): UIフォーマット統一と品質改善 ## 主な変更 ### UIフォーマット統一 - Skills, Rules, Commands, Usage各ページをHooksフォーマットに統一 - カテゴリメタデータ、カードUI、モーダル詳細表示を統一 - UsageページはHooksモーダル形式を維持しつつ水平タブレイアウトに復元 ### 新規コンポーネント追加 - HooksManager.tsx: 17個のフックに目的別分類とメタデータ - CommandsManager.tsx: コマンド一覧ページ - shared/: LoadingState, ErrorState共通コンポーネント - dateUtils.ts, tokenStatus.ts: ユーティリティ関数 ### バグ修正 - CommandsManagerの無限ループ修正(アロー関数→直接参照) - UsageManagerの総数計算修正(使用履歴→利用可能数) ### スキルファイル - 重複説明文を修正(9ファイル) 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> | 8 个月前 | |
Phase 66: close open issue set (#129) * docs(plans): add phase 66 issue closeout plan * fix(worktree): reject hook decision json cwd * docs(plans): mark worktree json cwd fix complete * fix(loop): fail fast on codex runner startup death * docs(plans): mark codex loop startup fix complete * fix(session): stop stale broadcast inbox repeats * docs(plans): mark broadcast inbox fix complete * fix(release): gate mirror drift before tags * docs(plans): mark release mirror preflight complete * feat(plans): add named plan registry * docs(plans): mark named plans complete * docs(changelog): summarize phase 66 closeout * ci: use setup-go v6 runtime * fix(plan-brief): make confidence locale-stable * fix(codex): include html surface skills * docs(plans): mark phase 66 closeout complete | 4 个月前 | |
fix: count Plans.md markers from Status cells in shell consumers Add scripts/plans-marker-count.sh (awk helpers aligned with go/internal/plans) and rewire session-monitor, session-summary, plans-watcher, and session-init to stop naive grep from counting legend rows and DoD prose mentions. bash tests/test-plans-marker-count.sh PASS bash tests/validate-plugin.sh: 126 passed, 0 failed Co-authored-by: Cursor <cursoragent@cursor.com> | 2 个月前 | |
fix: count Plans.md markers from Status cells in shell consumers Add scripts/plans-marker-count.sh (awk helpers aligned with go/internal/plans) and rewire session-monitor, session-summary, plans-watcher, and session-init to stop naive grep from counting legend rows and DoD prose mentions. bash tests/test-plans-marker-count.sh PASS bash tests/validate-plugin.sh: 126 passed, 0 failed Co-authored-by: Cursor <cursoragent@cursor.com> | 2 个月前 | |
feat(hooks): Usage Tracking 信頼性強化(フェーズ12) - UserPromptSubmit: /xxx コマンド検知→usage記録→pending作成 - PostToolUse(Skill): pending 自動クリア - Stop: 未解消 pending の人間向け警告 - .gitignore: /.orphaned_at を除外 - README.md: 5分で始めるセクション改善 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> | 8 个月前 | |
feat: harden long-running review and release workflows | 5 个月前 | |
fix: resolve PostToolUse hook syntax error and improve python3 fallback (#40) - Fix bash parser error in posttooluse-tampering-detector.sh caused by `|| true` after heredoc inside command substitution - Change `set -euo pipefail` to `set +e` to match all other PostToolUse scripts - Replace `echo | grep -qE` with `[[ =~ ]]` for 6 pattern checks (with word boundaries) - Replace heredoc python3 fallback with `python3 -c` in all 10 hook scripts to fix stdin conflict (heredoc overrides pipe) - Replace `echo` with `printf '%s'` for safe input piping to jq/python3 - Replace `echo -e` with `printf '%b'` for POSIX compliance - Add bilingual warning messages (English + Japanese) Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> | 7 个月前 | |
feat: add skill orchestration contracts | 4 个月前 | |
fix: resolve PostToolUse hook syntax error and improve python3 fallback (#40) - Fix bash parser error in posttooluse-tampering-detector.sh caused by `|| true` after heredoc inside command substitution - Change `set -euo pipefail` to `set +e` to match all other PostToolUse scripts - Replace `echo | grep -qE` with `[[ =~ ]]` for 6 pattern checks (with word boundaries) - Replace heredoc python3 fallback with `python3 -c` in all 10 hook scripts to fix stdin conflict (heredoc overrides pipe) - Replace `echo` with `printf '%s'` for safe input piping to jq/python3 - Replace `echo -e` with `printf '%b'` for POSIX compliance - Add bilingual warning messages (English + Japanese) Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> | 7 个月前 | |
feat: Phase 13 まさおハーネス理論ベンチマーク改善 自動検証ループ強化、CLAUDE.md電報体最適化、Codex CLIルール注入、 動的オーケストレーション強化の4Phase・52タスクを完了。 - TaskCompleted品質ゲート(テスト結果参照+3回失敗エスカレーション) - テスト改ざん検知12+パターン追加 - auto-test-runner.sh非同期テスト実行モード - CI失敗自動検知+ci-cd-fixer推奨注入 - CLAUDE.md 116行に圧縮(docs/に移管) - Codex AGENTS.mdルール統合+sync-rules-to-agents.sh - codex-exec-wrapper.sh(メモリ永続化+シークレットフィルタ) - Codex execpolicy harness.rules(41パターン検証済) - breezing-signal-injector.sh(UserPromptSubmitシグナル注入) - Phase C APPROVEファストパス+review-result.json - Implementer数自動決定ロジック拡張 Reviewer: APPROVE (Grade A), Critical/Major = 0 Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> | 7 个月前 | |
feat(review): cursor advisory pre-review wiring — read-only fresh-context pass before brain verdict (Phase 93.3.4) Co-authored-by: Cursor <cursoragent@cursor.com> | 3 个月前 | |
feat: agent-browser 優先使用の仕組み(Phase 26) - vercel-labs/agent-browser を UI デバッグの第一選択肢として位置づけ - dev-browser スキル新規追加(AI スナップショットワークフロー) - PreToolUse フックで MCP ブラウザツール使用時に agent-browser を推奨 - Codex レビュー指摘を修正(hookSpecificOutput 形式、matcher パターン) 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> | 8 个月前 | |
fix(guardrails): allow public env templates | 2 个月前 | |
Phase 66: close open issue set (#129) * docs(plans): add phase 66 issue closeout plan * fix(worktree): reject hook decision json cwd * docs(plans): mark worktree json cwd fix complete * fix(loop): fail fast on codex runner startup death * docs(plans): mark codex loop startup fix complete * fix(session): stop stale broadcast inbox repeats * docs(plans): mark broadcast inbox fix complete * fix(release): gate mirror drift before tags * docs(plans): mark release mirror preflight complete * feat(plans): add named plan registry * docs(plans): mark named plans complete * docs(changelog): summarize phase 66 closeout * ci: use setup-go v6 runtime * fix(plan-brief): make confidence locale-stable * fix(codex): include html surface skills * docs(plans): mark phase 66 closeout complete | 4 个月前 | |
docs(hosts): simplify live CLI smoke to paste-only prompts per host Rewrite the operator runbook so opening each CLI and pasting one prompt is enough; print-live-cli-smoke.sh emits only that prompt. | 2 个月前 | |
feat(phase-65.4.3): progress-alert.v1 drift detection (5 kinds) + HTML 色分け Phase D cycle 3/5。Progress Tracker の drift detection を実装。 5 種類の alert kind それぞれを検出し、severity (info/warn/critical) で HTML 表示時に色分け (青/黄/赤) する。 Changes: - scripts/progress-detect-drift.sh: 新規 detection script 入力 (CLI args) → 5 alert kind 判定 → progress-alert.v1 配列で stdout 出力 - scope-creep: Plans.md にない file 編集 → warn - time-overrun: elapsed > estimate × 1.5 → warn / 2.0× → critical - repeated-failure: fail count >= 3 → critical - cost-warning: cost ratio >= 80% → warn / 100%+ → critical - high-risk-file: harness.toml deny path matching → critical 全 input 空なら空配列を返す (no-op) - templates/html/progress.html.template: alert 色分け CSS + section 追加 alert-info (青) / alert-warn (黄) / alert-critical (赤) {{#alerts}} block で kind / message / suggested_action を render - tests/test-progress-drift.sh: 17 PASS / 0 FAIL Plans.md DoD (c) の 5 alert kind 各検出 + threshold 境界 (under) + 全 5 同時発火 + (d) HTML 色分け CSS 存在 + render 統合 - tests/validate-plugin.sh: 新テスト登録 (60 → 61 件) Validation: - bash tests/test-progress-drift.sh: 17 PASS / 0 FAIL - ./tests/validate-plugin.sh: 61 PASS / 0 FAIL Refs: Plans.md §65.4.3 | 4 个月前 | |
feat(phase-65.4.4): progress-past-judgments.sh + cross-project default OFF Phase D cycle 4/5。Progress Tracker の「過去の判断パターン」表示 (read side)。 alert kind と project name で過去 judgment 履歴を集計し、rejection_rate_pct と top 3 を JSON 出力する。Phase 65.3.5 と同じ flag mechanism で cross-project default OFF。 Changes: - scripts/progress-past-judgments.sh: 新規 --alert-kind <kind> --project <name> --records-file <jsonl-path> + optional --cross-project-group <name> records-file は alert-judgment.v1 形式の JSONL を受け取る (本来は skill が MCP search 結果を file 経由で渡す) output: {alert_kind, project, cross_project_used, total_count, rejected_count, rejection_rate_pct, top_3_judgments} top 3 は timestamp 降順 (新しい順) - tests/test-progress-past-judgments.sh: 11 PASS / 0 FAIL Plans.md DoD (d) の 4 ケース (0 件 / 3 件 mixed / 全 reject / 全 follow) + (c) cross-project default OFF (project filter 一致のみ集計、ON で解除) + alert kind enum 検証 + records-file not found / required args - tests/validate-plugin.sh: 新テスト登録 (61 → 62 件) Validation: - bash tests/test-progress-past-judgments.sh: 11 PASS / 0 FAIL - ./tests/validate-plugin.sh: 62 PASS / 0 FAIL Refs: Plans.md §65.4.4 | 4 个月前 | |
feat(verification): Phase 134-137 — 検証チェーン配線修理 + writing lint + surface + ループ施策 Phase 134: 入口 (risk_flags→profile 自動昇格 + ratchet) / 中間 (PENDING_BROWSER fail-visible, pending_validations) / 出口 (accept-collect-evidence.sh による artifact 機械接続) の 3 継ぎ目を接続。scope leash 本配線 (warn 既定)、Playwright Screencast evidence、worker-report.v1 永続化、再調査ループ、検証の検証 (check-verification-chain-wiring.sh + 実効性契約テスト 3 本、RED→GREEN 実測)。 Phase 135: writinglint エンジン (辞書は個人層) + PostToolUse advisory + Stop 全体再検査 + 指摘→ルール自動ドラフト→人間承認ループ + config schema 正式化。 Phase 136: 3 surface スマホ viewport / 承認待ちキュー表示 / diagram-design 接続点。 Phase 137: 採点設計規律 (criteria 3 層翻訳) / blind 受け手検査 / 評価者 4 契約。 decisions.md D62-D68 に判断根拠を記録。worker 契約に NG-4 追加。 Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01TFcsXBG95kTdxPfDaP7Vuu | 1 个月前 | |
fix: remediate scorecard alerts | 4 个月前 | |
feat(breezing): reap-worktrees.sh — harness worktree 掃除 (Phase 92.1.2) - scripts/reap-worktrees.sh: .harness-worktrees/ prefix 限定で worktree 削除 + reap 成功した task/* branch のみ -D + git worktree prune (canonical_path で macOS /private 正規化、CWD 内実行は fail-fast、 dirty worktree は default skip / --force でのみ削除、0 件 no-op 安全) - tests/test-reap-worktrees.sh: mktemp fixture 自己完結 contract test (3-worktree reap / 0 件 no-op / .harness-worktrees/ 外 worktree 生存 / dirty skip + --force 削除) 既知限界 (v1): clean だが未統合 commit を持つ task/* branch も削除される (cherry-pick 統合は patch-id 等価でしか判別不能)。reap は Lead が統合完了後に 明示実行する契約で運用。必要になれば git cherry による保護を follow-up。 TDD red evidence: missing executable → green で test-reap-worktrees: ok。 Lead 独立再実行で PASS 確認済み。 Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> | 3 个月前 | |
feat(calibration): record-review-calibration に critical_count/major_count/score_delta を追加 - record-review-calibration.sh: --review-result <path> オプションを追加し、 write-review-result.sh の normalization ルールと整合したカウントロジックを実装: critical_count = critical_issues[] + gaps[critical] + findings[critical] + observations[critical] major_count = major_issues[] + gaps[major] + findings[high] + observations[major] (companion raw の findings[severity:high] は major に射影 — write-review-result.sh と同じ規則) 前回同一タスクとの差分を score_delta として記録 - build-review-few-shot-bank.sh: 旧レコード(フィールド欠如)は // 0 default で読み出し、 score_delta は has("score_delta") で存在チェックしてから含める - tests/test-record-review-calibration.sh: smoke テスト 11 ケースを追加 (arg parsing 5 + dual-source critical 2 + findings[high] major 2 + mixed-major 1 + no-output 1) - 既存の jsonl レコード(2件)は一切書き換えない Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> | 5 个月前 | |
feat: harden long-running review and release workflows | 5 个月前 | |
feat(phase-65.3.2): client-redaction.v1 dict + redact-by-dictionary.sh (Layer 2a) Phase C cycle 2/7。Layer 2a 辞書ベース固有名詞 redaction の SSOT schema と実装。D43 判断 3 (PiiRule 互換) + 判断 4 (二重置換ガード) を 両方織り込む。 Changes: - .claude/rules/client-redaction.yaml: 新規 SSOT schema_version: client-redaction.v1 clients: [], people: [], domains: [] (default 全 redact 無効) rule_id / name / aliases / replace_with の field 名は pii-filter.ts の PiiRule[] と互換 (D43 判断 3) - scripts/redact-by-dictionary.sh: bash → python3 launcher --input <text> または --stdin で受取、ヒット時 stderr に件数記録 D43 判断 4: [REDACTED_*] / [Entity] / [Client_*] / [Person_*] / [Domain_*] sentinel mark を退避 → redact → 復元の 3 段で 二重置換を防止 alias の長さ DESC sort で「田中太郎」が「田中」より先に処理される - tests/test-redact-by-dictionary.sh: 26 assertion Plans.md DoD (d) の 5 ケース (ヒット 0 / 1 / 複数 / aliases / 重複 redact_as) + D43 判断 4 の sentinel ガード 3 ケース + stdin / default dict / file not found / schema mismatch / duplicate rule_id - tests/validate-plugin.sh: 新テスト登録 (52 → 53 件) Validation: - bash tests/test-redact-by-dictionary.sh: 26 PASS / 0 FAIL - ./tests/validate-plugin.sh: 53 PASS / 0 FAIL - bash scripts/ci/check-consistency.sh: 全合格 Refs: Plans.md §65.3.2, D43 (decisions.md), .claude/rules/cross-repo-handoff.md | 4 个月前 | |
feat(phase-65.3.3): Layer 2b NER redaction (fugashi + fail-open + sentinel guard) Phase C cycle 3/7。Japanese tokenizer (fugashi + UniDic-lite) を使った 固有名詞 (人名 / 地名 / 一般固有名詞) の自動 redact 層。Plans.md DoD (b) が「kuromoji 等の lightweight Japanese tokenizer」を要求するが、 fugashi は同等以上の品質で既に環境に存在する Python tokenizer のため これを採用 (kuromoji-js より tooling の重複が少ない)。 Changes: - scripts/redact-by-ner.sh: bash → python3 launcher fugashi で形態素解析、pos2="固有名詞" のトークンを [Entity] に置換 white_space attribute で原文の空白配置を保持 連続する固有名詞 token は 1 [Entity] にマージ (e.g., 田中太郎 → 1 件) fail-open: fugashi 不在 / import 失敗 / tokenize 失敗 → exit 0、原文 そのまま、stderr に warning (Plans.md DoD d) D43 判断 4: sentinel mark ([REDACTED_*] / [Entity] / [Client_*] / [Person_*] / [Domain_*]) は退避 → NER → 復元の 3 段で二重置換防止 --input <text> または --stdin で受取 CCH_NER_DISABLE_TOKENIZER=1 env で fail-open path を test 可能に - tests/test-redact-by-ner.sh: 22 PASS / 0 FAIL Plans.md DoD (c) の 4 ケース (人名 / 会社名 / 地名 / 0 件) に加え、 fail-open / sentinel guard 3 種 / 隣接マージ / stdin / usage error - tests/validate-plugin.sh: 新テスト登録 (53 → 54 件) Validation: - bash tests/test-redact-by-ner.sh: 22 PASS / 0 FAIL - ./tests/validate-plugin.sh: 54 PASS / 0 FAIL - bash scripts/ci/check-consistency.sh: 全合格 Refs: Plans.md §65.3.3, D43 (decisions.md), .claude/rules/cross-repo-handoff.md | 4 个月前 | |
fix(p2-p3): consumer claude-longrun + monitor worktree + reenter stdout (Codex review #8) Codex review #8 で指摘された 3 件を Codex CLI に委託実装、Lead 独立検証で APPROVE → cherry-pick (out-of-scope な hookhandler test 修正は revert)。 1. P2: skills/harness-plan/SKILL.md が `bash scripts/claude-longrun.sh` を 推奨していたが、これは plugin install 後の consumer 環境には配布されない 開発補助スクリプト。`ENABLE_PROMPT_CACHING_1H=1 claude` の 1 行コマンド に変更し、開発リポジトリ内での代替 (claude-longrun.sh) を補足セクション で残す。codex/opencode mirror も同期。 2. P2: go/internal/session/monitor.go が .git/HEAD と .git/refs を直接 読んでいたため、worktree 内 (.git は file で gitdir: ... を含む) で branch=unknown, last_commit=none になっていた。git rev-parse 経由に 切り替え、worktree でも main repo でも同じ結果が取れるよう修正。 regression test を monitor_test.go に追加。 3. P3: scripts/reenter-worktree.sh が Markdown 説明を stdout に出力していた ため "Output (JSON)" 契約に違反。print_guidance() を stderr 出力に 切り替え、JSON は stdout 単体に。canonicalize_path ヘルパーで macOS の /private prefix にも対応。tests/test-reenter-worktree-json.sh (新設) で stdout JSON-only を回帰テスト化。validate-plugin.sh から呼び出し。 Codex 委託フロー: codex-companion.sh task --write → Lead が git diff で 独立検証 → out-of-scope (hookhandler IPv6 sandbox test 暴走) は revert → in-scope のみ commit。 | 5 个月前 | |
feat(phase-133): 外部ツール最新仕様への追随 5 件を完了する Phase 133.1 / 133.2 / 133.4 / 133.5 / 133.6 を実装し、Phase D の 独立レビュー 2 系統 (デグレ観点 / 正当性観点) の指摘 6 件を修正した。 ## 133.1 cursor CLI binary 名の追随 公式 docs が全例を `agent` 表記に統一し `cursor-agent` を legacy alias としたため、`agent` → `cursor-agent` の順に probe する。`agent` は汎用名 なので、symlink 解決後の実パス「成分」が厳密に `cursor-agent` の場合だけ 採用する identity check を併設した。判定のために未知のバイナリを実行し ない (実行こそが避けたいリスクのため)。解決サイトは 5 系統に適用。 レビュー指摘: 当初は部分文字列一致で、`/x/cursor-agent-not-really/agent` で突破できた。成分の完全一致へ修正し、衝突ケースの回帰テスト A3c を追加。 ## 133.2 grok execution backend 起票時の前提が実測で覆った。hosts.toml の根拠は grok-cli v1.1.7 (TypeScript) だったが、実機の grok は 0.2.118 "Grok Build TUI" (Rust) で 別系統。`grok inspect` は claude 互換で hooks on を報告し、 `hook pre-tool --host grok` は `--host claude` と byte 一致の判定を返す。 欠けていたのは CCH 側の配布 (`build_grok()` が hooks を同梱しない)。 裁定は (b) hook なし execution backend + CCH 側封じ込め (decisions.md D58)。 `scripts/grok-companion.sh` + テストを追加し、hosts.toml の evidence を訂正。 ## 133.4 repair loop の状態外部化 反復状態を `.claude/state/repair-loop/<task>.json` へ外部化し、 MAX_REVIEWS 上限を `check` の終了コードで機械判定する。 レビュー指摘 3 件を修正: (a) record の read-modify-write を lock で直列化 (並行 10 プロセスで 9 件消失していた)、(b) findings を schema と同じ制約で 検証 (schema ファイルが飾りになっていた)、(c) `check` の exit 1 が「上限 到達」と「判定不能」の両方を意味していたため 4 を分離 (init 忘れが 「レビュー上限到達」として誤報されるのを防ぐ)。 ## 133.5 blind judge rubric を見せない第二審を opt-in で追加。judge は plain な fresh sub-agent で spawn し `context: fork` は使わない (fork は親文脈を継承 しうるため rubric が漏れる)。乖離は advisory finding に留め、verdict を 書き換えない。 ## 133.6 CC CLI 新機能の一次ソース検証 raw CHANGELOG を直読して 4 件を確証 (2.1.217 / 2.1.219 / 2.1.224)。 credential-masking は macOS で deny にフォールバックするため、denyRead 回避策の置き換えは提案に留め未採用。 ## 検証 - tests/validate-plugin.sh 139 合格 / 0 失敗 / 0 警告 - scripts/ci/check-consistency.sh 全合格 - 新規テスト 3 本を validate-plugin.sh へ配線 - 変異検査で新規アサーション 5 件が実装の違いを検出することを確認 Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01PCi5GLAfya9aWYnDc7cmhs | 1 个月前 | |
fix(tests,scripts): pipefail 下の `producer | grep -q` 173 箇所を herestring へ一掃 (Phase 129) (#286) * fix(tests,scripts): pipefail 下の `producer | grep -q` 173 箇所を herestring へ一掃 PR #285 で実害 2 箇所を直したが、同じ書き方が 173 箇所残っていた。 `grep -q` は最初の一致で終了してパイプを閉じるため、分割書き込み中の producer が EPIPE で失敗する。`set -o pipefail` がその失敗をパイプライン 全体の結果へ昇格させるので、探す文字列が実在するのに「無い」と判定される。 一致が入力の前方にあるほど再現するため、合否が「探す文字列が何行目にあるか」 で決まる状態だった。 - tests/test-pipefail-grep-q-safety.sh を新設 (Phase 129.1)。 静的走査で該当箇所を検出し、fixture 8 件で除外条件を固定 (pipefail 無し / `|| true` / herestring / grep -c / コメント行 / 引用符内) - tests/ 39 ファイル 131 箇所、scripts/ 19 ファイル 42 箇所を変換 (Phase 129.2 / 129.3) - tests/validate-plugin.sh に節 19 を配線し、 tests/test-validate-plugin-wiring.sh の pin にも追加 (Phase 129.4)。 検査の除去には 2 つの独立したファイルの変更が必要になる 引用符認識を実装した過程で、旧パターンが取りこぼしていた 3 段パイプライン (`echo | jq | grep -qi`) を 1 件発見し、変数経由に分解した。 実測: - 検出件数 173 → 0 - 変換部分は追加 172 / 削除 172 の 1 対 1 (アサーション削除・期待値緩和ゼロ) - bash -n 全 58 ファイル OK (行末継続 `\` を壊した 4 箇所はここで検出し修正) - shellcheck warning は変換前後とも 29 件で同数、herestring 起因の新規指摘ゼロ - validate-plugin 132 合格 0 失敗 (131 + 新設 1 節) - check-consistency 全 24 通過 (変換対象に check-consistency.sh 自身を含む) - go test ./... 0 失敗、VERSION / plugin.json / harness.toml 非接触 Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> * docs(plan): Phase 129 完走 — 全 4 task を cc:done に更新 129.1 検出テスト新設 / 129.2 tests/ 131 箇所 / 129.3 scripts/ 42 箇所 / 129.4 配線 + closeout。各 task の Status に実測値を記録した。 Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> * fix(tests): 検出器の 2 件の欠陥を修正 (CodeRabbit 指摘) いずれも実測で再現を確認してから修正した。 - 行継続を跨ぐパイプラインの検出漏れ: `perl -ne` が物理行ごとに走査するため、 行末の `\` で分割された `printf ... \ | grep -q ...` を見落としていた。 物理行を論理行へ畳んでから走査する。行番号は論理行の開始位置を報告する - 引用符内のエスケープの誤解釈: 二重引用符の中の `\"` を閉じ引用符と解釈し、 後続の `| grep -q` が引用符の外に見えて誤検出していた。二重引用符の中でのみ `\` をエスケープとして扱う (単一引用符の中では shell の仕様どおり扱わない) fixture は 8 件 → 10 件。CHANGELOG に Before/After 表を追加した。 改良後の検出器を変更前ツリーへ適用すると 168 箇所 (旧実装は 173)。差の 5 件は 行継続の畳み込みによる数え方の違いで、検出漏れではない。物理行 782・783 を 2 件と数えていたものが論理行の開始 781 の 1 件になる。該当箇所は目視で 変換の正しさを確認済み。 検証: validate-plugin 132 合格 0 失敗、check-consistency 全 24 通過。 Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> --------- Co-authored-by: tachibanashuuta <tachibana@canai.jp> Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com> | 2 个月前 | |
fix(tests,scripts): pipefail 下の `producer | grep -q` 173 箇所を herestring へ一掃 (Phase 129) (#286) * fix(tests,scripts): pipefail 下の `producer | grep -q` 173 箇所を herestring へ一掃 PR #285 で実害 2 箇所を直したが、同じ書き方が 173 箇所残っていた。 `grep -q` は最初の一致で終了してパイプを閉じるため、分割書き込み中の producer が EPIPE で失敗する。`set -o pipefail` がその失敗をパイプライン 全体の結果へ昇格させるので、探す文字列が実在するのに「無い」と判定される。 一致が入力の前方にあるほど再現するため、合否が「探す文字列が何行目にあるか」 で決まる状態だった。 - tests/test-pipefail-grep-q-safety.sh を新設 (Phase 129.1)。 静的走査で該当箇所を検出し、fixture 8 件で除外条件を固定 (pipefail 無し / `|| true` / herestring / grep -c / コメント行 / 引用符内) - tests/ 39 ファイル 131 箇所、scripts/ 19 ファイル 42 箇所を変換 (Phase 129.2 / 129.3) - tests/validate-plugin.sh に節 19 を配線し、 tests/test-validate-plugin-wiring.sh の pin にも追加 (Phase 129.4)。 検査の除去には 2 つの独立したファイルの変更が必要になる 引用符認識を実装した過程で、旧パターンが取りこぼしていた 3 段パイプライン (`echo | jq | grep -qi`) を 1 件発見し、変数経由に分解した。 実測: - 検出件数 173 → 0 - 変換部分は追加 172 / 削除 172 の 1 対 1 (アサーション削除・期待値緩和ゼロ) - bash -n 全 58 ファイル OK (行末継続 `\` を壊した 4 箇所はここで検出し修正) - shellcheck warning は変換前後とも 29 件で同数、herestring 起因の新規指摘ゼロ - validate-plugin 132 合格 0 失敗 (131 + 新設 1 節) - check-consistency 全 24 通過 (変換対象に check-consistency.sh 自身を含む) - go test ./... 0 失敗、VERSION / plugin.json / harness.toml 非接触 Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> * docs(plan): Phase 129 完走 — 全 4 task を cc:done に更新 129.1 検出テスト新設 / 129.2 tests/ 131 箇所 / 129.3 scripts/ 42 箇所 / 129.4 配線 + closeout。各 task の Status に実測値を記録した。 Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> * fix(tests): 検出器の 2 件の欠陥を修正 (CodeRabbit 指摘) いずれも実測で再現を確認してから修正した。 - 行継続を跨ぐパイプラインの検出漏れ: `perl -ne` が物理行ごとに走査するため、 行末の `\` で分割された `printf ... \ | grep -q ...` を見落としていた。 物理行を論理行へ畳んでから走査する。行番号は論理行の開始位置を報告する - 引用符内のエスケープの誤解釈: 二重引用符の中の `\"` を閉じ引用符と解釈し、 後続の `| grep -q` が引用符の外に見えて誤検出していた。二重引用符の中でのみ `\` をエスケープとして扱う (単一引用符の中では shell の仕様どおり扱わない) fixture は 8 件 → 10 件。CHANGELOG に Before/After 表を追加した。 改良後の検出器を変更前ツリーへ適用すると 168 箇所 (旧実装は 173)。差の 5 件は 行継続の畳み込みによる数え方の違いで、検出漏れではない。物理行 782・783 を 2 件と数えていたものが論理行の開始 781 の 1 件になる。該当箇所は目視で 変換の正しさを確認済み。 検証: validate-plugin 132 合格 0 失敗、check-consistency 全 24 通過。 Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> --------- Co-authored-by: tachibanashuuta <tachibana@canai.jp> Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com> | 2 个月前 | |
fix(tests): pipefail 下の `printf | grep -q` による偽の不一致を解消 (#285) * fix(tests): pipefail 下の `printf | grep -q` による偽の不一致を解消 `grep -q` は最初の一致で終了してパイプを閉じるため、分割書き込み中の `printf` が EPIPE で失敗する。`set -o pipefail` がその失敗をパイプライン 全体の結果へ昇格させるので、探す文字列が実在するのに「無い」と判定される。 一致が入力の前方にあるほど再現する。 - tests/test-harness-accept.sh: frontmatter 7 項目の検査をパイプから herestring へ変更。2019 バイトの入力に対し 2-4 行目の 3 項目が誤判定 されていた (63 合格 3 失敗 → 66 合格 0 失敗)。アサーションは不変 - scripts/render-html.sh: 同じ書き方の `</body>` 検出を herestring へ。 現時点では対象が末尾のため顕在化しないが、前方に現れると footer の 追記位置が黙って変わる 実測 (実 frontmatter, 200 回試行): 修正前は 2 行目 200/200 誤判定、 3 行目 200/200 誤判定、8 行目 0/200。修正後は 3 項目とも 0/200。 検証: validate-plugin 131 合格 0 失敗、check-consistency 全 24 通過、 skill mirror in-sync、VERSION 系非接触。 Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> * docs(plan): Phase 129 起票 — pipefail 下の grep -q 構文の一掃と機械検出 PR #285 で実害 2 箇所を修正したが、同じ構文が 175 箇所 / 約 60 ファイル (pipefail 有効なもの) に残る。現時点で通っているのは入力が小さいか一致が 末尾にあるためで、入力が育つと同じ形で壊れる。 Phase 127 の BSD mktemp と同じ構造 (静的 lint が検出しない・環境依存で 再現しない・失敗が沈黙する) のため、同じ手当てを行う 4 task を起票: 検出テスト新設 → tests/ 変換 → scripts/hooks 変換 → 配線 + closeout。 Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> --------- Co-authored-by: tachibanashuuta <tachibana@canai.jp> Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com> | 2 个月前 | |
feat(judgment-card-render): static HTML render with options/recommendation/impact/past-decisions (Phase 95.2.1) Co-authored-by: Cursor <cursoragent@cursor.com> | 3 个月前 | |
fix(guardrail): 削除確認を「何を消すか」で判断する (R05, Phase 133.10) operator 指摘: 「一律的に禁止するのではなく、何を削除しようとしているかで 判断すべき。サブエージェントの worktree での作業内での削除まで確認が入るのは 有益とは思えない」 ## 実測した非対称 R04 (プロジェクト外への書き込み) は IsAllowlistedTempPath を見て scratchpad への書き込みを無言で通すのに、R05 は同じ判定を持たなかった。つまり同じ場所へ 「書く」のは無言で、「消す」だけ確認される状態だった。 ## 設計 判断は対象のみで行う。確認せず通すのは次の 2 つだけを消す場合: 1. プロジェクトルート配下 (task worktree を含む) 2. このセッション自身の scratch (OS 一時領域の下で、パス成分にセッション ID を持つもの) サブエージェントか否か・worktree 内か否かでは変えない。身分に latitude を 与えると、身分を偽れる相手に権限が渡る。 ## 設計を一度誤り、落ちたテストが教えた 最初は「OS の一時領域なら通す」としたが、既存ガードテスト 2 件が落ちた。 原因は /tmp が共有であること — 他セッションの scratchpad も他ツールの一時 状態も同じ場所にある。「一時領域だから消してよい」は自分のものと他人のものを 区別していなかった。セッション ID をパス成分として要求する形に絞り直したら、 既存テストは 1 行も変更せず全て通った。 除外したもの: - 一時領域のルート自体 (rm -rf /tmp) — 他の全員を巻き添えにする - ~/.cache 系 — 観測された問題の解決に不要。緩和は最小集合から始める - IsAgentStatePath (~/.claude/projects/<slug>/memory) — R04 は書き込みを 通すが、再帰削除は蓄積した知識の喪失で blast radius が違う ## 併せて解除した 2 つの過剰保守 (どちらも実測つき) - パイプ: 対象がすべて絶対パスなら判定不能にしない。パイプ両側の削除対象は 元々両方抽出できており (rm A | rm B -> [A B])、真に危険な xargs 系は独立に 検出される (実験で確認)。相対パス時は基準ディレクトリが動きうるので従来どおり - 変数: 同一コマンド内で一度だけリテラル代入された変数を解決する。エージェント は F="$S/x" の形で対象を組み立てるため、解決しないと実質すべての削除が確認に なる。二重代入・コマンド置換・空白を含む値・未定義参照は解決しない ## 検証 - work-mode off の control つき 15 ケース行列で 0 不一致 (work-mode on だと R04/R05 が丸ごと skip され allow の主張が空振りになる。 一度これで自作自演の測定をしたため control を必須にした) - 既存の Go テストは 1 行も変更していない (go test ./... 全 green) - 回帰網: go/internal/policy/r05_session_scratch_test.go - 変異検査で「広すぎた初期設計」を検出することを確認 - validate-plugin 139/0、check-consistency 全合格、binary drift OK decisions.md D59 / Plans.md 133.10 Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01PCi5GLAfya9aWYnDc7cmhs | 1 个月前 | |
feat(cursor): enable Codex-hosted Cursor delegation | 4 个月前 | |
feat: add sandbagging-aware weak supervision | 4 个月前 | |
feat: add sandbagging-aware weak supervision | 4 个月前 | |
feat: add sandbagging-aware weak supervision | 4 个月前 | |
fix: add browser verdict fallback handling | 5 个月前 | |
Phase 66: close open issue set (#129) * docs(plans): add phase 66 issue closeout plan * fix(worktree): reject hook decision json cwd * docs(plans): mark worktree json cwd fix complete * fix(loop): fail fast on codex runner startup death * docs(plans): mark codex loop startup fix complete * fix(session): stop stale broadcast inbox repeats * docs(plans): mark broadcast inbox fix complete * fix(release): gate mirror drift before tags * docs(plans): mark release mirror preflight complete * feat(plans): add named plan registry * docs(plans): mark named plans complete * docs(changelog): summarize phase 66 closeout * ci: use setup-go v6 runtime * fix(plan-brief): make confidence locale-stable * fix(codex): include html surface skills * docs(plans): mark phase 66 closeout complete | 4 个月前 | |
feat: add skill orchestration contracts | 4 个月前 | |
feat: Claude Code Permissions ドキュメント対応 - PreCompact/SessionEnd フック追加(セッション状態保存・クリーンアップ) - AgentTrace v0.2.0: Attribution フィールド追加(プラグイン帰属情報) - context: fork を deploy/generate-video/memory/verify スキルに追加 - Sandbox 設定テンプレート追加 - release → release-harness にリネーム(コマンド名衝突回避) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> | 7 个月前 | |
feat: add session resume and fork controls Wire /work flags to session-control, archive sessions for resume, and add a minimal test for resume/fork behavior. | 8 个月前 | |
Phase 66: close open issue set (#129) * docs(plans): add phase 66 issue closeout plan * fix(worktree): reject hook decision json cwd * docs(plans): mark worktree json cwd fix complete * fix(loop): fail fast on codex runner startup death * docs(plans): mark codex loop startup fix complete * fix(session): stop stale broadcast inbox repeats * docs(plans): mark broadcast inbox fix complete * fix(release): gate mirror drift before tags * docs(plans): mark release mirror preflight complete * feat(plans): add named plan registry * docs(plans): mark named plans complete * docs(changelog): summarize phase 66 closeout * ci: use setup-go v6 runtime * fix(plan-brief): make confidence locale-stable * fix(codex): include html surface skills * docs(plans): mark phase 66 closeout complete | 4 个月前 | |
fix(tests,scripts): pipefail 下の `producer | grep -q` 173 箇所を herestring へ一掃 (Phase 129) (#286) * fix(tests,scripts): pipefail 下の `producer | grep -q` 173 箇所を herestring へ一掃 PR #285 で実害 2 箇所を直したが、同じ書き方が 173 箇所残っていた。 `grep -q` は最初の一致で終了してパイプを閉じるため、分割書き込み中の producer が EPIPE で失敗する。`set -o pipefail` がその失敗をパイプライン 全体の結果へ昇格させるので、探す文字列が実在するのに「無い」と判定される。 一致が入力の前方にあるほど再現するため、合否が「探す文字列が何行目にあるか」 で決まる状態だった。 - tests/test-pipefail-grep-q-safety.sh を新設 (Phase 129.1)。 静的走査で該当箇所を検出し、fixture 8 件で除外条件を固定 (pipefail 無し / `|| true` / herestring / grep -c / コメント行 / 引用符内) - tests/ 39 ファイル 131 箇所、scripts/ 19 ファイル 42 箇所を変換 (Phase 129.2 / 129.3) - tests/validate-plugin.sh に節 19 を配線し、 tests/test-validate-plugin-wiring.sh の pin にも追加 (Phase 129.4)。 検査の除去には 2 つの独立したファイルの変更が必要になる 引用符認識を実装した過程で、旧パターンが取りこぼしていた 3 段パイプライン (`echo | jq | grep -qi`) を 1 件発見し、変数経由に分解した。 実測: - 検出件数 173 → 0 - 変換部分は追加 172 / 削除 172 の 1 対 1 (アサーション削除・期待値緩和ゼロ) - bash -n 全 58 ファイル OK (行末継続 `\` を壊した 4 箇所はここで検出し修正) - shellcheck warning は変換前後とも 29 件で同数、herestring 起因の新規指摘ゼロ - validate-plugin 132 合格 0 失敗 (131 + 新設 1 節) - check-consistency 全 24 通過 (変換対象に check-consistency.sh 自身を含む) - go test ./... 0 失敗、VERSION / plugin.json / harness.toml 非接触 Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> * docs(plan): Phase 129 完走 — 全 4 task を cc:done に更新 129.1 検出テスト新設 / 129.2 tests/ 131 箇所 / 129.3 scripts/ 42 箇所 / 129.4 配線 + closeout。各 task の Status に実測値を記録した。 Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> * fix(tests): 検出器の 2 件の欠陥を修正 (CodeRabbit 指摘) いずれも実測で再現を確認してから修正した。 - 行継続を跨ぐパイプラインの検出漏れ: `perl -ne` が物理行ごとに走査するため、 行末の `\` で分割された `printf ... \ | grep -q ...` を見落としていた。 物理行を論理行へ畳んでから走査する。行番号は論理行の開始位置を報告する - 引用符内のエスケープの誤解釈: 二重引用符の中の `\"` を閉じ引用符と解釈し、 後続の `| grep -q` が引用符の外に見えて誤検出していた。二重引用符の中でのみ `\` をエスケープとして扱う (単一引用符の中では shell の仕様どおり扱わない) fixture は 8 件 → 10 件。CHANGELOG に Before/After 表を追加した。 改良後の検出器を変更前ツリーへ適用すると 168 箇所 (旧実装は 173)。差の 5 件は 行継続の畳み込みによる数え方の違いで、検出漏れではない。物理行 782・783 を 2 件と数えていたものが論理行の開始 781 の 1 件になる。該当箇所は目視で 変換の正しさを確認済み。 検証: validate-plugin 132 合格 0 失敗、check-consistency 全 24 通過。 Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> --------- Co-authored-by: tachibanashuuta <tachibana@canai.jp> Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com> | 2 个月前 | |
feat(session): label + task declaration + team view on shared presence cards (Task 121.4) Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> | 2 个月前 | |
fix: count Plans.md markers from Status cells in shell consumers Add scripts/plans-marker-count.sh (awk helpers aligned with go/internal/plans) and rewire session-monitor, session-summary, plans-watcher, and session-init to stop naive grep from counting legend rows and DoD prose mentions. bash tests/test-plans-marker-count.sh PASS bash tests/validate-plugin.sh: 126 passed, 0 failed Co-authored-by: Cursor <cursoragent@cursor.com> | 2 个月前 | |
chore: release v2.10.5 - Inter-session communication fixes - Fix session-init.sh/session-resume.sh not registering to active.json - Add session-register.sh for automatic session registration - Unify CLI/MCP communication format to broadcast.md - Enable OpenCode.ai integration via MCP Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> | 8 个月前 | |
Fix Plans status marker output and issue closeout evidence - Standardize newly written Plans status markers on cc:done while keeping legacy 完了 readable.\n- Filter Plans summary/handoff extraction to real task rows across checklist, table, and heading styles.\n- Add regression coverage for custom Plans directories, marker legends, and Japanese session outputs. | 4 个月前 | |
feat(session-state): add state machine enforcement for session orchestration Phase 1 implementation of SESSION_ORCHESTRATION.md spec: - Add scripts/session-state.sh for deterministic state transitions - Validate transitions against allowed rules (idle→initialized→planning→...) - Lock mechanism to prevent concurrent state changes - Event log append with unified schema (id, type, ts, state, data) - Config integration for max_state_retries and retry_backoff_seconds - Add skills/session-state/ skill for internal use - SKILL.md with metadata (description, allowed-tools) - references/state-transition.md documenting the script usage - Update scripts/posttooluse-log-toolname.sh to include current_state field - Aligns event log format with SESSION_ORCHESTRATION.md unified schema Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> | 8 个月前 | |
fix: count Plans.md markers from Status cells in shell consumers Add scripts/plans-marker-count.sh (awk helpers aligned with go/internal/plans) and rewire session-monitor, session-summary, plans-watcher, and session-init to stop naive grep from counting legend rows and DoD prose mentions. bash tests/test-plans-marker-count.sh PASS bash tests/validate-plugin.sh: 126 passed, 0 failed Co-authored-by: Cursor <cursoragent@cursor.com> | 2 个月前 | |
fix(backend): shellcheck SC2295/SC2005 in impl-backend scripts (84.2) Quote inner ${KEY} in parameter expansion (SC2295); remove redundant echo in REPO_ROOT fallback (SC2005). No behavior change (KEY is a literal); pure hygiene. test-impl-backend.sh PASS incl user-scope (i)-(l). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> | 4 个月前 | |
fix(tests,scripts): pipefail 下の `producer | grep -q` 173 箇所を herestring へ一掃 (Phase 129) (#286) * fix(tests,scripts): pipefail 下の `producer | grep -q` 173 箇所を herestring へ一掃 PR #285 で実害 2 箇所を直したが、同じ書き方が 173 箇所残っていた。 `grep -q` は最初の一致で終了してパイプを閉じるため、分割書き込み中の producer が EPIPE で失敗する。`set -o pipefail` がその失敗をパイプライン 全体の結果へ昇格させるので、探す文字列が実在するのに「無い」と判定される。 一致が入力の前方にあるほど再現するため、合否が「探す文字列が何行目にあるか」 で決まる状態だった。 - tests/test-pipefail-grep-q-safety.sh を新設 (Phase 129.1)。 静的走査で該当箇所を検出し、fixture 8 件で除外条件を固定 (pipefail 無し / `|| true` / herestring / grep -c / コメント行 / 引用符内) - tests/ 39 ファイル 131 箇所、scripts/ 19 ファイル 42 箇所を変換 (Phase 129.2 / 129.3) - tests/validate-plugin.sh に節 19 を配線し、 tests/test-validate-plugin-wiring.sh の pin にも追加 (Phase 129.4)。 検査の除去には 2 つの独立したファイルの変更が必要になる 引用符認識を実装した過程で、旧パターンが取りこぼしていた 3 段パイプライン (`echo | jq | grep -qi`) を 1 件発見し、変数経由に分解した。 実測: - 検出件数 173 → 0 - 変換部分は追加 172 / 削除 172 の 1 対 1 (アサーション削除・期待値緩和ゼロ) - bash -n 全 58 ファイル OK (行末継続 `\` を壊した 4 箇所はここで検出し修正) - shellcheck warning は変換前後とも 29 件で同数、herestring 起因の新規指摘ゼロ - validate-plugin 132 合格 0 失敗 (131 + 新設 1 節) - check-consistency 全 24 通過 (変換対象に check-consistency.sh 自身を含む) - go test ./... 0 失敗、VERSION / plugin.json / harness.toml 非接触 Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> * docs(plan): Phase 129 完走 — 全 4 task を cc:done に更新 129.1 検出テスト新設 / 129.2 tests/ 131 箇所 / 129.3 scripts/ 42 箇所 / 129.4 配線 + closeout。各 task の Status に実測値を記録した。 Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> * fix(tests): 検出器の 2 件の欠陥を修正 (CodeRabbit 指摘) いずれも実測で再現を確認してから修正した。 - 行継続を跨ぐパイプラインの検出漏れ: `perl -ne` が物理行ごとに走査するため、 行末の `\` で分割された `printf ... \ | grep -q ...` を見落としていた。 物理行を論理行へ畳んでから走査する。行番号は論理行の開始位置を報告する - 引用符内のエスケープの誤解釈: 二重引用符の中の `\"` を閉じ引用符と解釈し、 後続の `| grep -q` が引用符の外に見えて誤検出していた。二重引用符の中でのみ `\` をエスケープとして扱う (単一引用符の中では shell の仕様どおり扱わない) fixture は 8 件 → 10 件。CHANGELOG に Before/After 表を追加した。 改良後の検出器を変更前ツリーへ適用すると 168 箇所 (旧実装は 173)。差の 5 件は 行継続の畳み込みによる数え方の違いで、検出漏れではない。物理行 782・783 を 2 件と数えていたものが論理行の開始 781 の 1 件になる。該当箇所は目視で 変換の正しさを確認済み。 検証: validate-plugin 132 合格 0 失敗、check-consistency 全 24 通過。 Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> --------- Co-authored-by: tachibanashuuta <tachibana@canai.jp> Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com> | 2 个月前 | |
feat(cursor): enable Codex-hosted Cursor delegation | 4 个月前 | |
feat: add English setup templates with Japanese opt-in | 5 个月前 | |
feat(hosts): add Grok candidate adapter with setup, routing, and tests Enable Claude Code Harness workflows under Grok for other projects via setup-grok package install, host dist build without parent-path manifests, model-routing --host grok, and honest candidate-tier docs/tests. | 2 个月前 | |
feat: add skill orchestration contracts | 4 个月前 | |
feat: add New Harness V2 host adapters Add tool-first onboarding, support-tier boundaries, Codex CLI plugin smoke, OpenCode bootstrap validation, migration reporting, and Phase 74 repo-health gates. | 4 个月前 | |
chore: release v3.11.0 Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> | 6 个月前 | |
fix: resolve PostToolUse hook syntax error and improve python3 fallback (#40) - Fix bash parser error in posttooluse-tampering-detector.sh caused by `|| true` after heredoc inside command substitution - Change `set -euo pipefail` to `set +e` to match all other PostToolUse scripts - Replace `echo | grep -qE` with `[[ =~ ]]` for 6 pattern checks (with word boundaries) - Replace heredoc python3 fallback with `python3 -c` in all 10 hook scripts to fix stdin conflict (heredoc overrides pipe) - Replace `echo` with `printf '%s'` for safe input piping to jq/python3 - Replace `echo -e` with `printf '%b'` for POSIX compliance - Add bilingual warning messages (English + Japanese) Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> | 7 个月前 | |
feat: Phase 62.2.1-62.2.5 — Tier 2 governance/telemetry/policy 実装 5 つの Tier 2 タスクを実装: 62.2.1 (PostToolUse.updatedToolOutput governance): - scripts/hook-handlers/posttool-output-normalize.sh (新規) opt-in handler HARNESS_OUTPUT_GOVERNANCE_ENABLE=1 で有効化、API key redaction を allowlist 方式で - .claude/state/output-audit.jsonl に before/after を append-only 記録 - JSON 契約 tool (Read/Grep/Bash/TodoWrite) は skip - tests/test-output-governance.sh (新規) 6 ケース PASS (改ざん用途は実装に存在しないことを source 検査で固定) 62.2.2 (--agent permissionMode reaffirmation): - tests/test-agent-permission-mode.sh (新規) 5 観点 PASS - worker/reviewer/scaffolder/advisor の frontmatter に permissionMode が無いことを固定 (Phase 59.2.3 方針) - Reviewer の Read-only enforcement は tools/disallowedTools の組み合わせで担保 - CC 2.1.119+ で permissionMode が reactivate された場合の gate として機能 62.2.3 (skill_activated.invocation_trigger telemetry): - docs/skill-telemetry-policy.md (新規) privacy/retention/opt-out - scripts/skill-trigger-telemetry.sh (新規) JSON Lines append-only ledger writer session_id を 12 文字に truncate (privacy minimization) - tests/test-skill-trigger-telemetry.sh (新規) 5 観点 PASS (3 trigger 区別 / opt-out / exclude / append-only / session_id truncation) - Phase 58.2.3 の「telemetry sink 設計が先」判断を local-only sink で実装 62.2.4 (CLAUDE_CODE_SESSION_ID env policy): - docs/session-id-env-policy.md (新規) 4 経路の使い分け (1) hook handler は stdin JSON が SSOT (2) Bash 子プロセスは env var (CC 2.1.132+) (3) long-running watcher は state file (4) CLAUDE_TRANSCRIPT_PATH regex は使わない (legacy) - tests/test-hook-handler-session-id.sh (新規) 6 観点 PASS hook handlers が stdin JSON 経由で session_id を取得することを固定 62.2.5 (skillOverrides 3 mode governance): - docs/skill-overrides-policy.md (新規) off / user-invocable-only / name-only の使い分け - 推奨: 個人=未設定、enterprise=name-only、education=user-invocable-only - harness-init は default を入れない (CC default 尊重) - Phase 59.1.2 skill manifest との関係を明記 横断: - tests/test-settings-baseline.sh (新規) 62.1.4 + 62.2.5 共通の baseline 検証 template canonical (9 件) を強制、.claude-plugin/settings.json 不一致は WARN として記録 (self-protection guardrail で edit 不可のため user 手動同期が必要) User 手動操作 follow-up (cycle 1 から継続): - .claude-plugin/settings.json の deniedDomains を template に合わせて 6 件追加 (pastebin.com, transfer.sh, 0x0.st, paste.ee, termbin.com, ix.io) Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> | 4 个月前 | |
feat(breezing): spawn-parallel.sh + Worktree Root Discipline (Phase 92.1.1) - scripts/spawn-parallel.sh: git fetch origin + 単一 BASE SHA から .harness-worktrees/task-<name> を idempotent に作成 (same-base no-op / diff-base fail-fast / branch 再利用 edge case 対応) + git config rerere.enabled true - tests/test-spawn-parallel.sh: mktemp temp repo + bare origin の自己完結 contract test (同一 base SHA / rerere / idempotent / fail-fast) - go/internal/breezing: HarnessWorktreesRoot 定数 + ParallelWorktreePath / ManagerWorktreePath helper、Create() を helper 経由に統一 - spec.md: Worktree Root Discipline 節 (.harness-worktrees/ = parallel task 単一 root、.claude/worktrees/ = CC live agent 専用、混同禁止 invariant) - docs/team-composition.md: parallel worktree root の spec 相互参照 TDD red evidence: worktree_test.go undefined symbols (build failed) → green で全 PASS。go test ./... -count=1 全パッケージ PASS (Lead 独立再検証)。 Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> | 3 个月前 | |
fix(tests,scripts): pipefail 下の `producer | grep -q` 173 箇所を herestring へ一掃 (Phase 129) (#286) * fix(tests,scripts): pipefail 下の `producer | grep -q` 173 箇所を herestring へ一掃 PR #285 で実害 2 箇所を直したが、同じ書き方が 173 箇所残っていた。 `grep -q` は最初の一致で終了してパイプを閉じるため、分割書き込み中の producer が EPIPE で失敗する。`set -o pipefail` がその失敗をパイプライン 全体の結果へ昇格させるので、探す文字列が実在するのに「無い」と判定される。 一致が入力の前方にあるほど再現するため、合否が「探す文字列が何行目にあるか」 で決まる状態だった。 - tests/test-pipefail-grep-q-safety.sh を新設 (Phase 129.1)。 静的走査で該当箇所を検出し、fixture 8 件で除外条件を固定 (pipefail 無し / `|| true` / herestring / grep -c / コメント行 / 引用符内) - tests/ 39 ファイル 131 箇所、scripts/ 19 ファイル 42 箇所を変換 (Phase 129.2 / 129.3) - tests/validate-plugin.sh に節 19 を配線し、 tests/test-validate-plugin-wiring.sh の pin にも追加 (Phase 129.4)。 検査の除去には 2 つの独立したファイルの変更が必要になる 引用符認識を実装した過程で、旧パターンが取りこぼしていた 3 段パイプライン (`echo | jq | grep -qi`) を 1 件発見し、変数経由に分解した。 実測: - 検出件数 173 → 0 - 変換部分は追加 172 / 削除 172 の 1 対 1 (アサーション削除・期待値緩和ゼロ) - bash -n 全 58 ファイル OK (行末継続 `\` を壊した 4 箇所はここで検出し修正) - shellcheck warning は変換前後とも 29 件で同数、herestring 起因の新規指摘ゼロ - validate-plugin 132 合格 0 失敗 (131 + 新設 1 節) - check-consistency 全 24 通過 (変換対象に check-consistency.sh 自身を含む) - go test ./... 0 失敗、VERSION / plugin.json / harness.toml 非接触 Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> * docs(plan): Phase 129 完走 — 全 4 task を cc:done に更新 129.1 検出テスト新設 / 129.2 tests/ 131 箇所 / 129.3 scripts/ 42 箇所 / 129.4 配線 + closeout。各 task の Status に実測値を記録した。 Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> * fix(tests): 検出器の 2 件の欠陥を修正 (CodeRabbit 指摘) いずれも実測で再現を確認してから修正した。 - 行継続を跨ぐパイプラインの検出漏れ: `perl -ne` が物理行ごとに走査するため、 行末の `\` で分割された `printf ... \ | grep -q ...` を見落としていた。 物理行を論理行へ畳んでから走査する。行番号は論理行の開始位置を報告する - 引用符内のエスケープの誤解釈: 二重引用符の中の `\"` を閉じ引用符と解釈し、 後続の `| grep -q` が引用符の外に見えて誤検出していた。二重引用符の中でのみ `\` をエスケープとして扱う (単一引用符の中では shell の仕様どおり扱わない) fixture は 8 件 → 10 件。CHANGELOG に Before/After 表を追加した。 改良後の検出器を変更前ツリーへ適用すると 168 箇所 (旧実装は 173)。差の 5 件は 行継続の畳み込みによる数え方の違いで、検出漏れではない。物理行 782・783 を 2 件と数えていたものが論理行の開始 781 の 1 件になる。該当箇所は目視で 変換の正しさを確認済み。 検証: validate-plugin 132 合格 0 失敗、check-consistency 全 24 通過。 Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> --------- Co-authored-by: tachibanashuuta <tachibana@canai.jp> Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com> | 2 个月前 | |
feat(hooks): Usage Tracking 信頼性強化(フェーズ12) - UserPromptSubmit: /xxx コマンド検知→usage記録→pending作成 - PostToolUse(Skill): pending 自動クリア - Stop: 未解消 pending の人間向け警告 - .gitignore: /.orphaned_at を除外 - README.md: 5分で始めるセクション改善 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> | 8 个月前 | |
Fix Plans status marker output and issue closeout evidence - Standardize newly written Plans status markers on cc:done while keeping legacy 完了 readable.\n- Filter Plans summary/handoff extraction to real task rows across checklist, table, and heading styles.\n- Add regression coverage for custom Plans directories, marker legends, and Japanese session outputs. | 4 个月前 | |
Fix Plans status marker output and issue closeout evidence - Standardize newly written Plans status markers on cc:done while keeping legacy 完了 readable.\n- Filter Plans summary/handoff extraction to real task rows across checklist, table, and heading styles.\n- Add regression coverage for custom Plans directories, marker legends, and Japanese session outputs. | 4 个月前 | |
feat: Claude Code 2.1.0 対応 - 新機能・セキュリティ強化 ## 新機能 ### フックシステム拡張 - SubagentStart/SubagentStop フック追加 - once: true を SessionStart フックに適用 - subagent-tracker.sh スクリプト追加 ### エージェント強化 - 6エージェントに skills フィールド追加(自動スキル読み込み) - disallowedTools フィールド追加(安全性強化) - ci-cd-fixer にインラインフック(PreToolUse)追加 ### 設定テンプレート更新 - language: "japanese" をデフォルト設定 - ワイルドカード権限パターン追加(Bash(npm *) 等) ### context: fork 対応 - review スキルと /harness-review に適用 - 重い処理を分離コンテキストで実行 ### ドキュメント - /skill-list にホットリロード対応の説明追加 - CHANGELOG.md に v2.7.0 エントリ追加 ## 変更 - 8個の内部スキルに user-invocable: false 設定 - 4個の重複コマンド削除(validate, cleanup, remember, refactor) - スラッシュメニュー: 48 → 36 エントリ(25%削減) 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> | 8 个月前 | |
feat(port): plugin cache guards, Windows companion, harness.toml bootstrap, test fix (109.1b infra) branch-alignment ledger の conflict-review port 群 (infra/安全): 1. hooks.json (dual) direct-script hook wrapper に file-existence guard + identity check 追加 / codex-companion.sh MODEL_ARGS unbound 修正 4 site / sync-plugin-cache.sh・build-host-plugin-dist.sh に hook-script-closure logic (main 7dd175c5 の fix 部分、version bump は除外) 2. harnessmem/companion.go に Windows shebang-sniff + node/bun wrap 再移植 (main 0e3d5ab6/c8706db8、#207) 3. setup_hook.go runSetupInit に harness.toml bootstrap step + scaffold pkg 抽出 (main 8097802e、#201) 4. runtimefloor_test.go の t.TempDir() home を allowlist 外の固定 path へ (main 631ed798 の test fix、Linux CI 誤 fail 回避) Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_0184cS3XYLitPZkhHp5KgYeq | 2 个月前 | |
fix(integration): Phase 104 wave-1 統合ゲート修正 — cc-update-review 保持へ訂正 + stale test lock 3 件更新 統合ゲートが検出した 4 件を修正: (1) cc-update-review は Upstream Tracking Contract の実働部品 (upstream-integration test が pin) のため削除を撤回し保持。 (2) rulecoverage lock を R15 追加に追従 (14→15 rules, selfaudit pin 9→10)。 (3) test-generate-skill-manifest の stale lock 2 件を現状に整合 (ci の P27 flag 除去未追従 + model-invocable 一覧が cursor 系/3 画面系の追加前で凍結)。この test は CI 未配線だったため腐敗が見逃されていた — B2 で validate-plugin へ配線する。 (4) gogcli-ops / cc-cursor-cc を retired-alias registry へ登録 (migration-policy ルール 1)。 Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> | 2 个月前 | |
fix(release): 互換性 doc の同期漏れを黙って成功扱いにしない (CodeRabbit 指摘) `|| true` が `Plugin version` 行の読み取り失敗を握り潰していたため、行の書式が 変わると「何も同期しないまま ✅ 同期完了」と表示していた。bump したのに doc だけ旧版のまま公開される経路になる。行が見つからない場合は exit 1 で落とす。 実測: `- Plugin version:` を別の書式に崩した状態で `sync` を実行すると、 修正前は exit 0 で「✅ 同期完了: 5.6.0」、修正後は exit 1 でエラー文言を出す。 書式が正しい場合の挙動は不変。 検証: check-consistency 全通過 (2 回連続)、validate-plugin 132 合格 0 失敗。 Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> | 2 个月前 | |
feat: TDD-by-default with auto-skip (opt-in → opt-out) TDD をデフォルト有効に反転。[feature:tdd] opt-in → [skip:tdd] opt-out 方式に変更。 Worker フローと Solo モードに TDD フェーズを追加。--no-tdd オプション追加。 Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> | 6 个月前 | |
i18n: エラーメッセージの日本語化(主要フロー) 対象ファイル: - scripts/install-git-hooks.sh: エラー/説明文 - scripts/template-tracker.sh: Usage/エラー/結果メッセージ - scripts/claude-mem-mcp: MCP 起動関連 - tests/test-path-compatibility.sh: サマリー - tests/test-frontmatter-integration.sh: エラー/サマリー 検証結果: - validate-plugin.sh: 42 passed - check-consistency.sh: all passed 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> | 8 个月前 | |
feat(116.1): independent test-wiring auditor — agent + deterministic core + SHA pin Deliverables: - agents/test-wiring-auditor.md (fixed prompt, read-only, no memory key) - scripts/test-wiring-audit-core.sh (deterministic mechanical floor) - templates/schemas/test-wiring-audit.v1.json (draft-07, verdict enum pinned) - tests/test-test-wiring-auditor.sh GREEN + real SHA pin - wiring: validate-plugin.sh invocation + REQUIRED_INVOCATIONS pin - docs: opus-4-7-prompt-audit.md scope + workflow-test-wiring.md 実装 note Verification (run by Lead in this worktree): - bash tests/test-test-wiring-auditor.sh: ok - bash tests/validate-plugin.sh: 失敗 0 - bash scripts/ci/check-consistency.sh: すべてのチェックに合格 - bash tests/test-support-claim-wording.sh: PASS Note: implementation by cursor composer-2.5-fast; commit proxied by Lead after companion stalled 46min post-completion (documented stall pattern). Co-authored-by: Cursor <cursoragent@cursor.com> | 2 个月前 | |
Fix Plans status marker output and issue closeout evidence - Standardize newly written Plans status markers on cc:done while keeping legacy 完了 readable.\n- Filter Plans summary/handoff extraction to real task rows across checklist, table, and heading styles.\n- Add regression coverage for custom Plans directories, marker legends, and Japanese session outputs. | 4 个月前 | |
fix: resolve PostToolUse hook syntax error and improve python3 fallback (#40) - Fix bash parser error in posttooluse-tampering-detector.sh caused by `|| true` after heredoc inside command substitution - Change `set -euo pipefail` to `set +e` to match all other PostToolUse scripts - Replace `echo | grep -qE` with `[[ =~ ]]` for 6 pattern checks (with word boundaries) - Replace heredoc python3 fallback with `python3 -c` in all 10 hook scripts to fix stdin conflict (heredoc overrides pipe) - Replace `echo` with `printf '%s'` for safe input piping to jq/python3 - Replace `echo -e` with `printf '%b'` for POSIX compliance - Add bilingual warning messages (English + Japanese) Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> | 7 个月前 | |
chore: release v3.7.2 | 6 个月前 | |
fix(i18n): 出力言語の設定を毎ターン実効化 (PR #247 統合 + Plans.md 整理) (#281) * fix: enforce configured output language on every turn The harness resolved a locale but only used it for hook messages, so responses drifted to Japanese despite an English selection. Inject a per-turn response-language directive (en/ja) via the UserPromptSubmit hook, resolved from i18n.language > CLAUDE_CODE_HARNESS_LANG > en. Also make the config option discoverable: add an i18n.language block to .claude-code-harness.config.yaml (the file the runtime reads) and fix docs/i18n.md, which pointed at harness.toml. Adds regression coverage in tests/test-i18n-locale-resolver.sh. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> * docs: align i18n precedence docs with implementation; fix heading spacing Address CodeRabbit review on PR #247. - docs/i18n.md claimed env overrides project config ("later overrides earlier"), but both resolvers (get_harness_locale and resolveHarnessLocale) and test-i18n-locale-resolver.sh enforce config > env. Rewrite the precedence section and env example to match the implemented, test-pinned behavior instead of flipping the resolver. - .claude-code-harness.config.yaml: spell out that i18n.language wins over the CLAUDE_CODE_HARNESS_LANG fallback. - scripts/userprompt-inject-policy.sh: insert a blank line before the work-mode warning heading, since command substitution strips trailing newlines. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> * chore(plans): Phase 119-124 を archive へ退避 (254 → 143 行) 全 task cc:done の Phase 119-124 を .claude/memory/archive/Plans-2026-07-30-phase119-124.md へ移し、 本体に Archived Phases 参照節を置いた。内容の変更はない (119 行が完全に移動)。 Plans.md 本体の 200 行上限 (PostToolUse hook の警告閾値) を回復するための整理。 Phase 125-127 は直近のため本体に残す。 検証: tests/validate-plugin.sh 131 pass / 0 fail、未完了タスク 0 件 (変化なし)。 Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> * fix(i18n): 言語指示にセッション指定の優先を明記 PR #247 の言語指示を実運用で受け取ったところ、セッション開始時に 別言語を指定している環境で優先関係が曖昧だった。 docs/i18n.md:15 の優先順位 1 位は「per-message session instruction (その場で切り替えを指示)」だが、実際にはセッション開始時の output style / system prompt で言語を指定する運用が一般的で、 これが 1 位に含まれるかが注入文からは読み取れなかった。 注入文は「毎ターン強制」「ユーザーのメッセージがどの言語であっても」 と書いており、セッション開始時の継続的指示を上書きしうる。 実地の観測: i18n.language: en の本リポジトリで、日本語を指定した セッションが英語指示を受け取った。docs を読んで日本語を選べたが、 読まなければ切り替わっていた。 両言語版に 1 段落追加し、明示的なユーザー指示 (その場の依頼 + セッション開始時の継続的指示の両方) がプロジェクト設定より 優先されることを literal に書いた。 検証 (floor 免除 env を export したまま実行): - 英語版 704 バイト / 日本語版 376 文字、いずれも JSON 妥当を実測 - 一時的に config を ja に切り替えて日本語版も実測、config は復元済み - i18n テスト 3 本 PASS (locale-resolver / japanese-ux-regression / default-language) - tests/validate-plugin.sh 131 pass / 0 fail Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> --------- Co-authored-by: Piotr Chabros <piotr.chabros@upvanta.com> Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> Co-authored-by: tachibanashuuta <tachibana@canai.jp> Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com> Co-authored-by: piotrchabros <piotrchabros@users.noreply.github.com> | 2 个月前 | |
chore: release v3.7.2 | 6 个月前 | |
feat: add New Harness V2 host adapters Add tool-first onboarding, support-tier boundaries, Codex CLI plugin smoke, OpenCode bootstrap validation, migration reporting, and Phase 74 repo-health gates. | 4 个月前 | |
fix(docs): gate public claims on current evidence | 2 个月前 | |
fix: remove Clawdbot references and add release notes validation - Remove all Clawdbot references from CHANGELOG.md, CHANGELOG_ja.md, and docs/ - Add scripts/validate-release-notes.sh for format validation - Add Step 9 to /release command for mandatory validation - Ensure consistent Japanese format for release notes 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> | 8 个月前 | |
fix(release): close candidate publication gaps | 2 个月前 | |
feat(verification): Phase 134-137 — 検証チェーン配線修理 + writing lint + surface + ループ施策 Phase 134: 入口 (risk_flags→profile 自動昇格 + ratchet) / 中間 (PENDING_BROWSER fail-visible, pending_validations) / 出口 (accept-collect-evidence.sh による artifact 機械接続) の 3 継ぎ目を接続。scope leash 本配線 (warn 既定)、Playwright Screencast evidence、worker-report.v1 永続化、再調査ループ、検証の検証 (check-verification-chain-wiring.sh + 実効性契約テスト 3 本、RED→GREEN 実測)。 Phase 135: writinglint エンジン (辞書は個人層) + PostToolUse advisory + Stop 全体再検査 + 指摘→ルール自動ドラフト→人間承認ループ + config schema 正式化。 Phase 136: 3 surface スマホ viewport / 承認待ちキュー表示 / diagram-design 接続点。 Phase 137: 採点設計規律 (criteria 3 層翻訳) / blind 受け手検査 / 評価者 4 契約。 decisions.md D62-D68 に判断根拠を記録。worker 契約に NG-4 追加。 Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01TFcsXBG95kTdxPfDaP7Vuu | 1 个月前 | |
fix(review): vet gate を proposals.jsonl 永続化より前に移動 (再レビュー major 1 件) vet reject された proposal が status: approved のまま固まり、同一 id を 再承認できない詰み状態を解消。rule 導出 + schema validate + writing-rule-vet を status 更新より先に実行し、失敗時は pending のまま残す。 回帰テスト 2 本追加 (vet-reject 後に pending 維持 / pattern 修正後の再承認成功)。 RED 実測: 修正前 script で FAIL=2 → 修正後 PASS=21。 Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01TFcsXBG95kTdxPfDaP7Vuu | 1 个月前 | |
feat(verification): Phase 134-137 — 検証チェーン配線修理 + writing lint + surface + ループ施策 Phase 134: 入口 (risk_flags→profile 自動昇格 + ratchet) / 中間 (PENDING_BROWSER fail-visible, pending_validations) / 出口 (accept-collect-evidence.sh による artifact 機械接続) の 3 継ぎ目を接続。scope leash 本配線 (warn 既定)、Playwright Screencast evidence、worker-report.v1 永続化、再調査ループ、検証の検証 (check-verification-chain-wiring.sh + 実効性契約テスト 3 本、RED→GREEN 実測)。 Phase 135: writinglint エンジン (辞書は個人層) + PostToolUse advisory + Stop 全体再検査 + 指摘→ルール自動ドラフト→人間承認ループ + config schema 正式化。 Phase 136: 3 surface スマホ viewport / 承認待ちキュー表示 / diagram-design 接続点。 Phase 137: 採点設計規律 (criteria 3 層翻訳) / blind 受け手検査 / 評価者 4 契約。 decisions.md D62-D68 に判断根拠を記録。worker 契約に NG-4 追加。 Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01TFcsXBG95kTdxPfDaP7Vuu | 1 个月前 |
| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
| 1 个月前 | ||
| 4 个月前 | ||
| 6 个月前 | ||
| 1 个月前 | ||
| 9 个月前 | ||
| 4 个月前 | ||
| 2 个月前 | ||
| 8 个月前 | ||
| 1 个月前 | ||
| 4 个月前 | ||
| 4 个月前 | ||
| 2 个月前 | ||
| 2 个月前 | ||
| 1 个月前 | ||
| 7 个月前 | ||
| 2 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 4 个月前 | ||
| 5 个月前 | ||
| 4 个月前 | ||
| 2 个月前 | ||
| 3 个月前 | ||
| 4 个月前 | ||
| 4 个月前 | ||
| 2 个月前 | ||
| 7 个月前 | ||
| 3 个月前 | ||
| 5 个月前 | ||
| 2 个月前 | ||
| 2 个月前 | ||
| 5 个月前 | ||
| 2 个月前 | ||
| 5 个月前 | ||
| 7 个月前 | ||
| 4 个月前 | ||
| 2 个月前 | ||
| 6 个月前 | ||
| 4 个月前 | ||
| 4 个月前 | ||
| 4 个月前 | ||
| 1 个月前 | ||
| 5 个月前 | ||
| 2 个月前 | ||
| 4 个月前 | ||
| 5 个月前 | ||
| 5 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 3 个月前 | ||
| 4 个月前 | ||
| 5 个月前 | ||
| 9 个月前 | ||
| 5 个月前 | ||
| 5 个月前 | ||
| 4 个月前 | ||
| 4 个月前 | ||
| 5 个月前 | ||
| 1 个月前 | ||
| 3 个月前 | ||
| 4 个月前 | ||
| 6 个月前 | ||
| 2 个月前 | ||
| 3 个月前 | ||
| 4 个月前 | ||
| 6 个月前 | ||
| 4 个月前 | ||
| 1 个月前 | ||
| 3 个月前 | ||
| 3 个月前 | ||
| 4 个月前 | ||
| 3 个月前 | ||
| 1 个月前 | ||
| 8 个月前 | ||
| 7 个月前 | ||
| 2 个月前 | ||
| 4 个月前 | ||
| 4 个月前 | ||
| 2 个月前 | ||
| 4 个月前 | ||
| 4 个月前 | ||
| 8 个月前 | ||
| 4 个月前 | ||
| 2 个月前 | ||
| 2 个月前 | ||
| 8 个月前 | ||
| 5 个月前 | ||
| 7 个月前 | ||
| 4 个月前 | ||
| 7 个月前 | ||
| 7 个月前 | ||
| 3 个月前 | ||
| 8 个月前 | ||
| 2 个月前 | ||
| 4 个月前 | ||
| 2 个月前 | ||
| 4 个月前 | ||
| 4 个月前 | ||
| 1 个月前 | ||
| 4 个月前 | ||
| 3 个月前 | ||
| 5 个月前 | ||
| 5 个月前 | ||
| 4 个月前 | ||
| 4 个月前 | ||
| 5 个月前 | ||
| 1 个月前 | ||
| 2 个月前 | ||
| 2 个月前 | ||
| 2 个月前 | ||
| 3 个月前 | ||
| 1 个月前 | ||
| 4 个月前 | ||
| 4 个月前 | ||
| 4 个月前 | ||
| 4 个月前 | ||
| 5 个月前 | ||
| 4 个月前 | ||
| 4 个月前 | ||
| 7 个月前 | ||
| 8 个月前 | ||
| 4 个月前 | ||
| 2 个月前 | ||
| 2 个月前 | ||
| 2 个月前 | ||
| 8 个月前 | ||
| 4 个月前 | ||
| 8 个月前 | ||
| 2 个月前 | ||
| 4 个月前 | ||
| 2 个月前 | ||
| 4 个月前 | ||
| 5 个月前 | ||
| 2 个月前 | ||
| 4 个月前 | ||
| 4 个月前 | ||
| 6 个月前 | ||
| 7 个月前 | ||
| 4 个月前 | ||
| 3 个月前 | ||
| 2 个月前 | ||
| 8 个月前 | ||
| 4 个月前 | ||
| 4 个月前 | ||
| 8 个月前 | ||
| 2 个月前 | ||
| 2 个月前 | ||
| 2 个月前 | ||
| 6 个月前 | ||
| 8 个月前 | ||
| 2 个月前 | ||
| 4 个月前 | ||
| 7 个月前 | ||
| 6 个月前 | ||
| 2 个月前 | ||
| 6 个月前 | ||
| 4 个月前 | ||
| 2 个月前 | ||
| 8 个月前 | ||
| 2 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 |