@shinaps/skills 0.50.0 → 0.50.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/bin/skills.js +19 -4
- package/dist/lib/install.js +3 -21
- package/docs/development.md +1 -0
- package/docs/install.md +2 -2
- package/package.json +2 -1
- package/plugins/shinaps-claude/.claude-plugin/plugin.json +1 -1
- package/plugins/shinaps-claude/agents/shinaps-reviewer.md +7 -4
- package/plugins/shinaps-claude/managed-agents/agents/shinaps-reviewer.md +7 -4
- package/plugins/shinaps-claude/managed-agents/skills/dev-managed-cc/references/review.md +8 -4
- package/plugins/shinaps-claude/references/linear/configuration.md +1 -1
- package/plugins/shinaps-claude/references/review-standalone.md +2 -2
- package/plugins/shinaps-claude/references/review.md +8 -4
- package/plugins/shinaps-claude/references/rules.md +2 -2
- package/plugins/shinaps-codex/.codex-plugin/plugin.json +1 -1
- package/plugins/shinaps-codex/agents/shinaps-reviewer.toml +1 -1
- package/plugins/shinaps-codex/managed-agents/agents/shinaps-reviewer.md +7 -4
- package/plugins/shinaps-codex/managed-agents/skills/dev-managed-cc/references/review.md +8 -4
- package/plugins/shinaps-codex/references/linear/configuration.md +1 -1
- package/plugins/shinaps-codex/references/review-standalone.md +2 -2
- package/plugins/shinaps-codex/references/review.md +8 -4
- package/plugins/shinaps-codex/references/rules.md +2 -2
package/dist/bin/skills.js
CHANGED
|
@@ -5,15 +5,30 @@ import { packageRoot } from "../lib/layout.js";
|
|
|
5
5
|
import { LINEAR_CONFIG_VERSION, validateLinearConfig } from "../lib/linear-config.js";
|
|
6
6
|
import { validateManagedConfig } from "../lib/managed-config.js";
|
|
7
7
|
import { managed } from "../lib/managed.js";
|
|
8
|
-
import { run } from "../lib/install.js";
|
|
8
|
+
import { INSTALL_COMMAND, run } from "../lib/install.js";
|
|
9
9
|
import { autoUpdate } from "../lib/auto-update.js";
|
|
10
10
|
import { lint } from "../lib/lint.js";
|
|
11
|
-
import { ruleCoverage } from "../lib/rule-coverage.js";
|
|
12
|
-
import { ruleSnapshot } from "../lib/rule-snapshot.js";
|
|
11
|
+
import { RULE_COVERAGE_COMMAND, ruleCoverage } from "../lib/rule-coverage.js";
|
|
12
|
+
import { RULE_SNAPSHOT_COMMAND, ruleSnapshot } from "../lib/rule-snapshot.js";
|
|
13
13
|
import { errorMessage } from "../lib/fs.js";
|
|
14
|
+
const usage = [
|
|
15
|
+
`Usage: ${INSTALL_COMMAND}`,
|
|
16
|
+
' shinaps-skills validate-linear-config <file>',
|
|
17
|
+
' shinaps-skills validate-managed-config <file>',
|
|
18
|
+
' shinaps-skills managed <setup|run|status|reply|collect> (see managed --help)',
|
|
19
|
+
' shinaps-skills auto-update <enable|disable|status|check> codex',
|
|
20
|
+
' shinaps-skills lint --checks <checks.json> --root <project> --out <result.json> -- <files...>',
|
|
21
|
+
` ${RULE_SNAPSHOT_COMMAND}`,
|
|
22
|
+
` ${RULE_COVERAGE_COMMAND}`,
|
|
23
|
+
'Claude Code: /plugin marketplace add sh1n4ps/shinaps-skills',
|
|
24
|
+
' /plugin install shinaps@shinaps-skills',
|
|
25
|
+
].join('\n');
|
|
14
26
|
const [command, ...rest] = process.argv.slice(2);
|
|
15
27
|
try {
|
|
16
|
-
if (command === '--
|
|
28
|
+
if (!command || command === 'help' || command === '--help') {
|
|
29
|
+
console.log(usage);
|
|
30
|
+
}
|
|
31
|
+
else if (command === '--version') {
|
|
17
32
|
console.log(JSON.parse(await readFile(join(packageRoot, 'package.json'), 'utf8')).version);
|
|
18
33
|
}
|
|
19
34
|
else if (command === 'validate-linear-config') {
|
package/dist/lib/install.js
CHANGED
|
@@ -5,23 +5,10 @@ import { spawnSync } from 'node:child_process';
|
|
|
5
5
|
import { registerPlugin, replaceInstallation, restore, } from "./transaction.js";
|
|
6
6
|
import { withLock } from "./lock.js";
|
|
7
7
|
import { readTextIfExists, sha256, writeFileAtomic } from "./fs.js";
|
|
8
|
-
import { RULE_COVERAGE_COMMAND } from "./rule-coverage.js";
|
|
9
|
-
import { RULE_SNAPSHOT_COMMAND } from "./rule-snapshot.js";
|
|
10
8
|
import { codexHomeMismatch, codexHomeOf, isRecordedCodexHome, managedAgent, managedRoot, marketplaceName, packageRoot, payloadDir, payloadPaths, pluginDir, pluginId, statePath, } from "./layout.js";
|
|
11
9
|
const actions = ['install', 'update', 'uninstall', 'recover'];
|
|
12
10
|
const isAction = (value) => actions.includes(value);
|
|
13
|
-
const
|
|
14
|
-
'Usage: shinaps-skills <install|update|uninstall|recover> codex',
|
|
15
|
-
' shinaps-skills validate-linear-config <file>',
|
|
16
|
-
' shinaps-skills validate-managed-config <file>',
|
|
17
|
-
' shinaps-skills managed <setup|run|status|reply|collect> (see managed --help)',
|
|
18
|
-
' shinaps-skills auto-update <enable|disable|status|check> codex',
|
|
19
|
-
' shinaps-skills lint --checks <checks.json> --root <project> --out <result.json> -- <files...>',
|
|
20
|
-
` ${RULE_SNAPSHOT_COMMAND}`,
|
|
21
|
-
` ${RULE_COVERAGE_COMMAND}`,
|
|
22
|
-
'Claude Code: /plugin marketplace add sh1n4ps/shinaps-skills',
|
|
23
|
-
' /plugin install shinaps@shinaps-skills',
|
|
24
|
-
].join('\n');
|
|
11
|
+
export const INSTALL_COMMAND = 'shinaps-skills <install|update|uninstall|recover> codex';
|
|
25
12
|
const installGuidance = [
|
|
26
13
|
'No Shinaps AI account is required to install. For MCP features, create an account at https://app.shinaps.ai and use your client’s authentication flow.',
|
|
27
14
|
'MCP setup (only if not already configured): codex mcp add shinaps-ai --url https://app.shinaps.ai/mcp',
|
|
@@ -34,14 +21,9 @@ const installGuidance = [
|
|
|
34
21
|
* @param options 動作環境の指定。`auto-update check` とテストが使う。
|
|
35
22
|
*/
|
|
36
23
|
export async function run(args, options = {}) {
|
|
37
|
-
const log = options.log ?? console.log;
|
|
38
24
|
const [action, target, ...extra] = args;
|
|
39
|
-
if (!action || action
|
|
40
|
-
|
|
41
|
-
return;
|
|
42
|
-
}
|
|
43
|
-
if (!isAction(action) || target !== 'codex' || extra.length) {
|
|
44
|
-
throw new Error(`Unknown command: ${args.join(' ')}. ${usage.split('\n')[0]} (see --help).`);
|
|
25
|
+
if (!action || !isAction(action) || target !== 'codex' || extra.length) {
|
|
26
|
+
throw new Error(`Unknown command: ${args.join(' ')}. Usage: ${INSTALL_COMMAND} (see --help).`);
|
|
45
27
|
}
|
|
46
28
|
const installation = openInstallation(options);
|
|
47
29
|
switch (action) {
|
package/docs/development.md
CHANGED
|
@@ -16,6 +16,7 @@
|
|
|
16
16
|
- Managed の共通定義は `plugins/shinaps-claude/managed-agents/` を編集元として Codex 版へ複製し、テストで一致を確認する。Managed の skill の `staffing.md`・`workflow.md`・`launch.md` は Claude 版を写した適応版で一致はテストしないため(`review.md`・`design.md` は下の正本の複製でテストする)、Claude 版の工程・体制の基準を変えたら Managed への適用可否を判断する。
|
|
17
17
|
- レビューの共通契約は `references/review.md` を正本とし、本文を Managed の skill の `references/review.md` に複製してテストで一致を確認する。Codex の `shinaps-reviewer` は、Claude 版の「レビューの種類」以降の本文を同じ文で持ち、テストで一致を確認する。担当の構成・対象の固定・完了の判定・採否は契約に、種類ごとの作業手順は役割の定義に、単独起動の対象・体制・到達点は `references/review-standalone.md` に、担当の起動と修正の引き継ぎ先だけを両版の `review` の `SKILL.md` に書く。
|
|
18
18
|
- テスト方針は各版の `references/testing.md` を正本とし、その段落を役割定義と Managed の lead の定義に複製する。設計の観点は `references/dev/design.md` を正本とし、本文を独立設計担当(`shinaps-architect`)の定義と Managed の skill の `references/design.md` に複製する。どちらもテストで一致を確認する。
|
|
19
|
+
- 上の完全一致の複製(`references`・Managed の共通定義・Managed の skill の `review.md`・`design.md`)は、編集元を直した後に `npm run sync:copies` で依存の順に上書きできる(編集元で消したファイルは写しからも手で消す)。役割定義の本文やテスト方針の段落のような部分の写しは対象外で、手で揃える。
|
|
19
20
|
- 役割の定義は Claude 版が Markdown、Codex 版が TOML、Managed 版が `ant apply` 用の frontmatter を付けた Markdown。サブエージェント内では shinaps MCP を直接呼ばず、rule の全文はスキル側から渡すか、スキル側が機械保存した snapshot のファイルを読ませる(MCP の利用量が重複せず、全文をモデルに書き写させないため)。この原則を全ての役割定義に書く。
|
|
20
21
|
- `autonomous-commit-review` の役割は `commit` に統合した。旧 `linear` の入口は廃止し、`linear-plan`・`linear-execute` に分けた。規約照合と簡素化の独立した入口は `review` に統合し、規約の一括抽出の入口は廃止した(規約の登録は利用者がその場で依頼する)。個人用の別 AI 呼び出し・ブラウザ管理・ゴール管理・動画制作はこの plugin に含めない。Bridge 本体は同梱せず、導入済みの MCP と WebStorm プラグインを使う。
|
|
21
22
|
|
package/docs/install.md
CHANGED
|
@@ -13,7 +13,7 @@ npx @shinaps/skills@latest uninstall codex
|
|
|
13
13
|
npx @shinaps/skills@latest recover codex
|
|
14
14
|
```
|
|
15
15
|
|
|
16
|
-
`install` はスキルを Codex plugin として登録し、
|
|
16
|
+
`install` はスキルを Codex plugin として登録し、[サブエージェント](agents.md)を `${CODEX_HOME:-~/.codex}/agents/` へ配置します。新しいセッションから使えます。
|
|
17
17
|
|
|
18
18
|
- 配布物は `~/.local/share/shinaps-ai/skills/codex/` に保持し、一時的な npx のキャッシュに依存しません。同じ親ディレクトリの `state.json` に、配置したエージェントと内容のハッシュを記録します。
|
|
19
19
|
- 管理対象外の同名ファイルや、導入後に編集されたエージェントは上書き・削除せずに止まります。必要な変更を退避してから再実行してください。`CODEX_HOME` を変える場合は、元の配置先で先に `uninstall` します。
|
|
@@ -26,7 +26,7 @@ npx @shinaps/skills@latest recover codex
|
|
|
26
26
|
設定の検証(`validate-linear-config`・`validate-managed-config`)、Managed Agents の操作(`managed`)、規約の機械検査と受け渡し(`lint`・`rule-snapshot`・`rule-coverage`、[規約の機械検査](lint.md))には、配布 CLI `shinaps-skills` を使います。CLI は plugin に含まれないため、利用中のスキルと同じ版を導入します。
|
|
27
27
|
|
|
28
28
|
```sh
|
|
29
|
-
npm install -g @shinaps/skills@0.50.
|
|
29
|
+
npm install -g @shinaps/skills@0.50.2
|
|
30
30
|
shinaps-skills --version
|
|
31
31
|
```
|
|
32
32
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@shinaps/skills",
|
|
3
|
-
"version": "0.50.
|
|
3
|
+
"version": "0.50.2",
|
|
4
4
|
"description": "Install Shinaps AI workflows and custom agents for Codex",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|
|
@@ -23,6 +23,7 @@
|
|
|
23
23
|
"test": "node --test \"test/*.test.ts\"",
|
|
24
24
|
"check": "npm run format:check && tsc --noEmit",
|
|
25
25
|
"verify:package": "node scripts/verify-package.ts",
|
|
26
|
+
"sync:copies": "node scripts/sync-copies.ts",
|
|
26
27
|
"format": "biome format --write .",
|
|
27
28
|
"format:check": "biome format ."
|
|
28
29
|
},
|
|
@@ -63,11 +63,14 @@ color: red
|
|
|
63
63
|
渡された目的・受入条件・計画・規約と、対象の現在のコードや利用箇所を確認する。削減は、欠陥の確認より先に検討する。
|
|
64
64
|
|
|
65
65
|
- 目的と必要な外部契約を保ちながら削除・統合できる処理、重複、不要な分岐・互換層・抽象化を探す。行数だけを減らして責務を混ぜない。
|
|
66
|
-
-
|
|
66
|
+
- 「同じ理由で変わる箇所が一緒に変更でき、異なる理由で変わる箇所が互いを巻き込まないか」を見る。同期が必要なのに構造から分からない重複・暗黙の状態や呼び出し順序、内部実装への依存による不要な変更の波及、独自の責務を持たない中継や未使用の拡張点を確認する。配置やラッパーの存在だけでは欠陥とせず、責務・契約・全利用側から判断する。
|
|
67
|
+
- 構造の提案には、どんな変更でどの箇所を同時に直す必要があり、見落としや不要な波及がどう生じるかを、file:line と利用箇所で示す。変更履歴は必要に応じて補助の根拠にし、同時に編集された事実だけで共通化を求めない。共通の原因がある問題は一つの設計変更で解消できるか検討し、関連箇所と維持する責務を示す。
|
|
68
|
+
- 特殊な分岐・retry・待機などは、必要な要件や外部制約と、その実装方法を分けて評価する。例外数の削減を目標にせず、削除・統合で増える抽象化や理解の負担も比較する。
|
|
69
|
+
- コメントは成立条件・設計判断・外部制約を伝える価値で、テストは検出する回帰と守る仕様で評価する。コードと似ていることだけを削除理由にしない。統合・削除の提案では、必要な説明と保証がどこに残るかを示す。
|
|
70
|
+
- 各提案について対象、削除・統合・責務の再配置の内容、効果、維持する契約と挙動を保てる根拠、必要な検証、仕様判断の要否を返す。検証は変更前の基準と設計変更の単位に対応させる。仕様を変える提案は通常の簡素化と区別する。
|
|
67
71
|
- 同じ対象を確認する他の担当の結果を読まず、意見を交換しない。
|
|
68
|
-
-
|
|
69
|
-
-
|
|
70
|
-
- 簡素化の提案は下の Confidence 閾値の対象外とする。提案がなければ「なし」と確認範囲を書き、この節を必ず出力する。
|
|
72
|
+
- 対象全体を確認し、未確認のファイルと理由を明記する。分割して渡された場合は、続きと関連箇所の整合性も確認する。改善余地が尽きるまで対象を広げず、依頼された対象の確認と提案までに留める。
|
|
73
|
+
- 簡素化の提案は下の Confidence 閾値の対象外とするが、根拠のない将来予測や好みだけの案は出さない。提案がなければ「なし」と確認範囲を書き、この節を必ず出力する。
|
|
71
74
|
|
|
72
75
|
### 指摘の検証
|
|
73
76
|
|
|
@@ -71,11 +71,14 @@ tools:
|
|
|
71
71
|
渡された目的・受入条件・計画・規約と、対象の現在のコードや利用箇所を確認する。削減は、欠陥の確認より先に検討する。
|
|
72
72
|
|
|
73
73
|
- 目的と必要な外部契約を保ちながら削除・統合できる処理、重複、不要な分岐・互換層・抽象化を探す。行数だけを減らして責務を混ぜない。
|
|
74
|
-
-
|
|
74
|
+
- 「同じ理由で変わる箇所が一緒に変更でき、異なる理由で変わる箇所が互いを巻き込まないか」を見る。同期が必要なのに構造から分からない重複・暗黙の状態や呼び出し順序、内部実装への依存による不要な変更の波及、独自の責務を持たない中継や未使用の拡張点を確認する。配置やラッパーの存在だけでは欠陥とせず、責務・契約・全利用側から判断する。
|
|
75
|
+
- 構造の提案には、どんな変更でどの箇所を同時に直す必要があり、見落としや不要な波及がどう生じるかを、file:line と利用箇所で示す。変更履歴は必要に応じて補助の根拠にし、同時に編集された事実だけで共通化を求めない。共通の原因がある問題は一つの設計変更で解消できるか検討し、関連箇所と維持する責務を示す。
|
|
76
|
+
- 特殊な分岐・retry・待機などは、必要な要件や外部制約と、その実装方法を分けて評価する。例外数の削減を目標にせず、削除・統合で増える抽象化や理解の負担も比較する。
|
|
77
|
+
- コメントは成立条件・設計判断・外部制約を伝える価値で、テストは検出する回帰と守る仕様で評価する。コードと似ていることだけを削除理由にしない。統合・削除の提案では、必要な説明と保証がどこに残るかを示す。
|
|
78
|
+
- 各提案について対象、削除・統合・責務の再配置の内容、効果、維持する契約と挙動を保てる根拠、必要な検証、仕様判断の要否を返す。検証は変更前の基準と設計変更の単位に対応させる。仕様を変える提案は通常の簡素化と区別する。
|
|
75
79
|
- 同じ対象を確認する他の担当の結果を読まず、意見を交換しない。
|
|
76
|
-
-
|
|
77
|
-
-
|
|
78
|
-
- 簡素化の提案は下の Confidence 閾値の対象外とする。提案がなければ「なし」と確認範囲を書き、この節を必ず出力する。
|
|
80
|
+
- 対象全体を確認し、未確認のファイルと理由を明記する。分割して渡された場合は、続きと関連箇所の整合性も確認する。改善余地が尽きるまで対象を広げず、依頼された対象の確認と提案までに留める。
|
|
81
|
+
- 簡素化の提案は下の Confidence 閾値の対象外とするが、根拠のない将来予測や好みだけの案は出さない。提案がなければ「なし」と確認範囲を書き、この節を必ず出力する。
|
|
79
82
|
|
|
80
83
|
### 指摘の検証
|
|
81
84
|
|
|
@@ -14,6 +14,10 @@
|
|
|
14
14
|
|
|
15
15
|
依頼が種類を限定している場合(規約照合だけ、簡素化だけなど)は、限定された種類だけを依頼する。担当は1名とする。ただし ULTRA を同時に指定され、限定された種類に規約照合または可読性・慣習レビューが含まれるときは、その種類を技術領域ごとに1名へ依頼する。
|
|
16
16
|
|
|
17
|
+
指摘の検証の担当は、この構成の人数とは別に、呼び出す入口の手順が定める条件で加える(単独の `review` は単独レビューの手順、dev は体制の判断に従う)。
|
|
18
|
+
|
|
19
|
+
規約を照らす種類は、独立コードレビュー(rule 観点)・規約照合・可読性・慣習レビューとする。依頼する種類にこれらを含むときだけ、入口の手順で規約を取得し、機械検査と照合の範囲の報告を行う。実装の簡素化・指摘の検証だけのレビューでは規約の取得と機械検査を必須にせず、目的・維持する外部契約・コード・利用側・テストで判断する。ただし、規約を根拠にする指摘を検証するときは、その規約だけを(元のレビューの snapshot、または id からの全文の取得で)渡す。担当には渡した規約だけを読ませ、渡していない規約の読了を求めない。
|
|
20
|
+
|
|
17
21
|
技術領域は、Web・API・iOSのように技術や実装慣習が違う領域とする。配布先・写し・文書の分類は、別の技術領域に数えない。技術領域ごとに担当を置く場合は、全変更ファイルがちょうど1名の範囲に属するようにし、足りない技術領域があれば担当を足す。複数担当なら確認範囲を明記し、重大な契約の独立確認を分担だけで置き換えない。
|
|
18
22
|
|
|
19
23
|
## 対象の固定
|
|
@@ -25,12 +29,12 @@
|
|
|
25
29
|
|
|
26
30
|
## 担当へ渡すもの
|
|
27
31
|
|
|
28
|
-
- 共通: 目的、確認範囲、担当番号、固定した版と読む場所(一時worktree
|
|
32
|
+
- 共通: 目的、確認範囲、担当番号、固定した版と読む場所(一時worktreeのパスなど)、依頼する種類、合意済み仕様。規約を照らす種類では、規約全文または読むファイルの指定。入手できなかったもの(計画・受入条件など)はそのことを伝える。
|
|
29
33
|
- 独立コードレビュー: 対象コード、全差分、利用側、計画、検証結果。計画自体も誤りうるものとして確かめさせる。設計適合性は、計画・受入条件・責務・依存方向と実コードを照合させる。
|
|
30
34
|
- 規約照合: 対象ファイルの一覧と、変更範囲の確認コマンド。担当は対象ファイルの現状全文を読む。
|
|
31
35
|
- 可読性・慣習レビュー: 担当する範囲の差分と対象ファイルの現状全文、先例。
|
|
32
36
|
- 実装の簡素化: 目的、維持する外部契約、対象コード、計画。
|
|
33
|
-
- 指摘の検証:
|
|
37
|
+
- 指摘の検証: 元の対象、検証する指摘の全文(規約を根拠にする指摘はその規約の全文または読むファイル)、確認範囲、外部調査があればその結果。
|
|
34
38
|
|
|
35
39
|
## 独立性
|
|
36
40
|
|
|
@@ -38,7 +42,7 @@
|
|
|
38
42
|
|
|
39
43
|
## 機械検査
|
|
40
44
|
|
|
41
|
-
|
|
45
|
+
規約を照らす種類を依頼し、規約に機械検査(`checks`)があり入口の手順で実行できるときは、対象の固定後、担当へ渡す前に実行する。版が変わったら実行し直し、前回の結果を引き継がない。
|
|
42
46
|
|
|
43
47
|
- 全体を検査して違反が無いと確かめた組(規約×ファイル)と、違反を確かめた組は、そのファイルの rule 観点・規約照合から外す。外した規約の id をファイルごとに担当へ伝える。
|
|
44
48
|
- 一部だけを検査した組は担当の照合に残し、機械検査の指摘を添える。
|
|
@@ -67,4 +71,4 @@
|
|
|
67
71
|
|
|
68
72
|
## 報告
|
|
69
73
|
|
|
70
|
-
|
|
74
|
+
固定した版、体制と担当、確認範囲と完了状態、全指摘の対象箇所・発生条件・影響・修正案と採否・根拠、既存箇所の指摘、機械検査の組の状態ごとの数と実行できなかった理由、未照合の規約、未確認の範囲、未解決の事項を報告する。推測と確認済みの事実、実施した検証と未実施を区別する。規約照合の種類を依頼せず、規約を照らす他の種類を依頼した場合は、規約をその種類の中で照らし、ファイルごとの完了一覧が無いことを書く。規約を照らす種類を依頼しなかった場合は、規約を照合していないと書く。
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
|
|
5
5
|
## 検証CLIと契約版
|
|
6
6
|
|
|
7
|
-
利用中のskillとCLIの版を確認し、0.50.
|
|
7
|
+
利用中のskillとCLIの版を確認し、0.50.2のskillには同じ版のnpm CLIを導入する(`npm install -g @shinaps/skills@0.50.2`)。pluginだけにはCLIは含まれない。導入・更新は検証に必要な準備として行い、検証のたびに `npx latest` を取得しない。
|
|
8
8
|
|
|
9
9
|
0.48.0から `config_version: 3`(操作ごとの許可の一覧を廃止し `constraints` を必須にした契約)だけを受理する。0.47.x以前のCLIと `$schema` のURLはv3を拒否し、0.48.0以降はv2を拒否するため、skill・CLI・`$schema` の版を揃えてから下の[旧設定の移行](#旧設定の移行)を行う。
|
|
10
10
|
|
|
@@ -43,11 +43,11 @@
|
|
|
43
43
|
|
|
44
44
|
## 4. 規約と機械検査
|
|
45
45
|
|
|
46
|
-
[Shinaps規約の取得](rules.md)の「照合のために取得する」に従い、対象ファイルについて snapshot を作り、同じ手順の「照合結果に書くこと」を報告に含める。取得できなければ規約照合を未確認として報告し、照合済みとしない(コードのレビューは続ける)。`checks` を持つ規約があれば[規約の機械検査](lint.md)
|
|
46
|
+
依頼する種類が契約の「規約を照らす種類」を含むときは、[Shinaps規約の取得](rules.md)の「照合のために取得する」に従い、対象ファイルについて snapshot を作り、同じ手順の「照合結果に書くこと」を報告に含める。取得できなければ規約照合を未確認として報告し、照合済みとしない(コードのレビューは続ける)。`checks` を持つ規約があれば[規約の機械検査](lint.md)の「照合で使う」を行う。含まないときは、対象ファイルの snapshot と機械検査を行わない(指摘の検証の根拠の規約は契約のとおり渡す)。プロジェクトの `AGENTS.md`・`CLAUDE.md` と関連 docs は、どちらの場合も担当へ渡す。その後、スキルの「担当の起動」に従って担当を起動する。
|
|
47
47
|
|
|
48
48
|
## 5. 検証と報告
|
|
49
49
|
|
|
50
|
-
|
|
50
|
+
契約の「指摘の検証と統合」に従い、メインが全指摘を実コードで確かめて採否を決める。指摘の独立検証を依頼されたとき、メインと指摘元の根拠の対立が解消しないとき、または採否を誤ったときの影響が大きい簡素化の提案(公開契約や状態管理に触れる、影響が広範囲に及ぶなど)があるときは、別の担当1名に「指摘の検証」を依頼する。簡素化の提案はその提案だけを渡して、失う契約・増える複雑さ・変更範囲を確かめさせ、対象全体のレビューを繰り返さない。どの場合も、利用者が担当の人数を限っているときは追加せず、独立検証していない指摘として報告する(根拠の対立は未解決とする)。テストに関わる指摘は[テスト方針](testing.md)に従う。採否の確定後に[規約の適用結果](rules.md#適用結果を記録する)を既定で記録する(依頼でOFFにできる。失敗は未記録として報告する)。契約の「報告」と `findings.md` のパスを報告する。
|
|
51
51
|
|
|
52
52
|
## 6. 到達点
|
|
53
53
|
|
|
@@ -14,6 +14,10 @@
|
|
|
14
14
|
|
|
15
15
|
依頼が種類を限定している場合(規約照合だけ、簡素化だけなど)は、限定された種類だけを依頼する。担当は1名とする。ただし ULTRA を同時に指定され、限定された種類に規約照合または可読性・慣習レビューが含まれるときは、その種類を技術領域ごとに1名へ依頼する。
|
|
16
16
|
|
|
17
|
+
指摘の検証の担当は、この構成の人数とは別に、呼び出す入口の手順が定める条件で加える(単独の `review` は単独レビューの手順、dev は体制の判断に従う)。
|
|
18
|
+
|
|
19
|
+
規約を照らす種類は、独立コードレビュー(rule 観点)・規約照合・可読性・慣習レビューとする。依頼する種類にこれらを含むときだけ、入口の手順で規約を取得し、機械検査と照合の範囲の報告を行う。実装の簡素化・指摘の検証だけのレビューでは規約の取得と機械検査を必須にせず、目的・維持する外部契約・コード・利用側・テストで判断する。ただし、規約を根拠にする指摘を検証するときは、その規約だけを(元のレビューの snapshot、または id からの全文の取得で)渡す。担当には渡した規約だけを読ませ、渡していない規約の読了を求めない。
|
|
20
|
+
|
|
17
21
|
技術領域は、Web・API・iOSのように技術や実装慣習が違う領域とする。配布先・写し・文書の分類は、別の技術領域に数えない。技術領域ごとに担当を置く場合は、全変更ファイルがちょうど1名の範囲に属するようにし、足りない技術領域があれば担当を足す。複数担当なら確認範囲を明記し、重大な契約の独立確認を分担だけで置き換えない。
|
|
18
22
|
|
|
19
23
|
## 対象の固定
|
|
@@ -25,12 +29,12 @@
|
|
|
25
29
|
|
|
26
30
|
## 担当へ渡すもの
|
|
27
31
|
|
|
28
|
-
- 共通: 目的、確認範囲、担当番号、固定した版と読む場所(一時worktree
|
|
32
|
+
- 共通: 目的、確認範囲、担当番号、固定した版と読む場所(一時worktreeのパスなど)、依頼する種類、合意済み仕様。規約を照らす種類では、規約全文または読むファイルの指定。入手できなかったもの(計画・受入条件など)はそのことを伝える。
|
|
29
33
|
- 独立コードレビュー: 対象コード、全差分、利用側、計画、検証結果。計画自体も誤りうるものとして確かめさせる。設計適合性は、計画・受入条件・責務・依存方向と実コードを照合させる。
|
|
30
34
|
- 規約照合: 対象ファイルの一覧と、変更範囲の確認コマンド。担当は対象ファイルの現状全文を読む。
|
|
31
35
|
- 可読性・慣習レビュー: 担当する範囲の差分と対象ファイルの現状全文、先例。
|
|
32
36
|
- 実装の簡素化: 目的、維持する外部契約、対象コード、計画。
|
|
33
|
-
- 指摘の検証:
|
|
37
|
+
- 指摘の検証: 元の対象、検証する指摘の全文(規約を根拠にする指摘はその規約の全文または読むファイル)、確認範囲、外部調査があればその結果。
|
|
34
38
|
|
|
35
39
|
## 独立性
|
|
36
40
|
|
|
@@ -38,7 +42,7 @@
|
|
|
38
42
|
|
|
39
43
|
## 機械検査
|
|
40
44
|
|
|
41
|
-
|
|
45
|
+
規約を照らす種類を依頼し、規約に機械検査(`checks`)があり入口の手順で実行できるときは、対象の固定後、担当へ渡す前に実行する。版が変わったら実行し直し、前回の結果を引き継がない。
|
|
42
46
|
|
|
43
47
|
- 全体を検査して違反が無いと確かめた組(規約×ファイル)と、違反を確かめた組は、そのファイルの rule 観点・規約照合から外す。外した規約の id をファイルごとに担当へ伝える。
|
|
44
48
|
- 一部だけを検査した組は担当の照合に残し、機械検査の指摘を添える。
|
|
@@ -67,4 +71,4 @@
|
|
|
67
71
|
|
|
68
72
|
## 報告
|
|
69
73
|
|
|
70
|
-
|
|
74
|
+
固定した版、体制と担当、確認範囲と完了状態、全指摘の対象箇所・発生条件・影響・修正案と採否・根拠、既存箇所の指摘、機械検査の組の状態ごとの数と実行できなかった理由、未照合の規約、未確認の範囲、未解決の事項を報告する。推測と確認済みの事実、実施した検証と未実施を区別する。規約照合の種類を依頼せず、規約を照らす他の種類を依頼した場合は、規約をその種類の中で照らし、ファイルごとの完了一覧が無いことを書く。規約を照らす種類を依頼しなかった場合は、規約を照合していないと書く。
|
|
@@ -42,7 +42,7 @@ Shinaps AIのMCPから規約を取得する手順。取得は呼出し元(メ
|
|
|
42
42
|
|
|
43
43
|
## 照合のために取得する
|
|
44
44
|
|
|
45
|
-
対象ファイルが確定した照合の手順。応答をモデルが書き写すと本文や `checks` が欠けうるので、plugin の hook(PostToolUse)が応答をそのまま
|
|
45
|
+
対象ファイルが確定した照合の手順。応答をモデルが書き写すと本文や `checks` が欠けうるので、plugin の hook(PostToolUse)が応答をそのまま `<セッションの作業ディレクトリのGitのルート(無ければ作業ディレクトリ)>/.shinaps/work/rule-captures/` へ保存し、そこから `shinaps-skills rule-snapshot` が担当と機械検査の読むファイルを作る。保存先はGit管理の外のローカルで、サーバーへは送らない。
|
|
46
46
|
|
|
47
47
|
1. 取得の前の時刻を `date +%s000` で記録する。
|
|
48
48
|
2. 領域ごとに入力を作業記録の下(例: `rules/<領域>/input.json`)へ書く。「一覧を取る」と同じ条件で、`fields` だけ `"full"` にする。
|
|
@@ -53,7 +53,7 @@ Shinaps AIのMCPから規約を取得する手順。取得は呼出し元(メ
|
|
|
53
53
|
shinaps-skills rule-snapshot --since <時刻> --input <input.json> [--exclude-label <slug>] --out <作業記録>/rules/<領域>
|
|
54
54
|
```
|
|
55
55
|
|
|
56
|
-
取得と同じGit
|
|
56
|
+
取得と同じGitのルートで実行する。それと違う場所(プロジェクトを開かずに始めたチャットから対象のリポジトリで実行するときなど)では、捕捉はチャット側にあるので、その保存先を `--captures <dir>` で渡す。`rule-snapshot` が無いときは、利用中のスキルと同じ版のCLIを導入する。`--exclude-label` には、「全文を取る規約を選ぶ」の除外の条件に当たる軸のlabelだけを渡す(CLIはこの条件を判定しない)。除外した規約はidと理由が `manifest.json` に残る。
|
|
57
57
|
|
|
58
58
|
出力は `manifest.json`(`contentHash`、入力、`ruleIds`、除外、partのhash)、`parts/part-NNN.json`(全文)、`lint-checks.json`(全文の `checks` そのまま)。
|
|
59
59
|
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
name = "shinaps-reviewer"
|
|
2
2
|
description = "変更の正しさ、設計、セキュリティ、性能、提供されたShinapsルール、可読性・慣習、実装の簡素化と、渡された指摘の検証を読み取り専用で行う。"
|
|
3
3
|
sandbox_mode = "read-only"
|
|
4
|
-
developer_instructions = "依頼された範囲をレビューし、実装を変更しない。追加のエージェントへ委託しない。\n対象プロジェクトの指示と既存設計を読み、親から渡された差分・背景・ルール(読むよう指定されたルールのファイルを含む)を根拠にする。\nMCPルール取得は親に任せる。\n結果を親に返し、ファイル保存・コミット・外部投稿は行わない。\n以下の「呼び出し元」は親を指す。\n\n## レビューの種類\n\n呼び出し元が「独立コードレビュー」「可読性・慣習レビュー」「規約照合」「実装の簡素化」「指摘の検証」のうち1つ以上を指定する。指定が無ければ独立コードレビューとして動く。複数を指定されたら、各節の観点を1名で見て、一つのレポートで返す。指定された種類の節に従い、下の「可読性のレビュー」・Confidence 閾値・出力形式・動作原則はどの種類でも共通に使う。規約を根拠にする指摘(rule 観点・可読性・慣習・規約照合)は、今回の変更か既存箇所かを区別する。変更を対象にしたレビューでは、そのうち今回の変更と無関係な既存箇所のものを、どの種類でも「既存箇所の指摘」に分け、Critical にせず、完了を止める指摘にしない。この扱いは、下の重要度と「必ず Critical」の文より優先する。呼び出し元が「範囲判定なし」と指定した場合は、指定された対象全体を今回の対象とし、変更か既存かを区別せず、重要度も下げない。\n\n呼び出し元が設計適合性も依頼した場合は、design 観点で計画・受入条件・責務・依存方向と実コードを照合する。規約照合の種類が指定されなければ、規約は独立コードレビューの rule 観点で、渡された規約全文(読むファイルを指定されたときはそのファイル)に照らす。呼び出し元が機械検査で照合から外すと伝えた組(規約×ファイル)は、rule 観点でも規約照合でも照らさない。\n\n### 独立コードレビュー\n\n実装後の差分を **統合視点** で網羅的にレビューする。以下の観点を **1 agent で統合的に** 見る (観点別に分けて別々に報告しない):\n\n- **logic**: バグ・境界条件・null / undefined 扱い・エラーハンドリング\n- **design**: 責務分割・抽象化・依存方向・API 設計。計画自体も正しいと仮定せず、変更後の所有者・配置と全利用側のimport・状態・呼び出しを確認する。feature内部への不適切な依存、固有責務の混在、残存する旧経路・重複を根拠付きで指摘する。必要な移動・分割は変更量だけで否定せず、配置の好みや利用者数だけを根拠に共通化を要求しない。\n- **security**: 認証認可・入力検証・秘密情報漏洩・XSS / injection\n- **performance**: 計算量・DB round trip・N+1・キャッシュ・非同期\n- **maintainability**: 命名・重複・複雑度・型・可読性\n- **rule**: rule カタログとの適合性 (rule 違反は必ず Critical タグを付ける)\n\n### 可読性・慣習レビュー\n\n指定された範囲(技術領域ごとに担当を置く場合はその領域、置かない場合は全変更)の差分と対象ファイルの現状全文を、規約・計画に記した先例・合意済み仕様と照らして読む。\n\n- **観点**: 命名の一貫性、状態と責務の読みやすさ、構成と共通化、契約の説明と設計理由、テストの意図\n- 規約や先例から外れる箇所は、規約の該当文または先例の file:line を根拠に示す。\n- 合意済み仕様を変えない。仕様を変える提案は通常の指摘と分けて示す。\n- 正しさ・セキュリティ・性能の探索は独立コードレビューに任せる。確認中に直接見つけた問題だけ根拠付きで報告する。\n- 重要度: 規約の文に反するものは Critical、先例・慣習からのずれだけのものは Warning 以下にする。\n\n### 規約照合\n\n照らすのは diff の hunk ではなく、対象ファイルの現状全文とする。hunk だけでは関数全体の責務や周囲との命名の揃い方を判断できず、追加行だけ規約に沿って見えてファイル全体では外れている箇所を見落とすため。\n\n1. 渡された全ファイルについて、適用される規約を確認する。非該当・読み取り失敗・未完了は理由を明記する。\n2. 対象のファイルを現状全文で読む。\n3. 依頼に書かれた変更範囲の確認コマンド(`git diff HEAD -- <path>` など)を実行し、そのファイルのどの行が今回の変更かを把握する。未追跡のファイルは全行を今回の変更とする。「範囲判定なし」と指定された場合は、この手順と手順5を省き、範囲を分類しない。\n4. ファイル全体を、渡された規約と1件ずつ照らして指摘を分類する(変更行の周辺だけに絞らない)。\n5. 各指摘の範囲を決める。\n\n- **種類**: Violation(現状が規約に既に反している)、Improvement(違反ではないが改善の余地がある)、Question(規約が曖昧で判断を保留する)。\n- **範囲**: changed(指摘の箇所が今回の変更行に1行でも掛かっている)、pre-existing(今回の変更と無関係な、元からある箇所)。既存箇所を今回の変更と誤ると、無関係な差分が修正に入るので、迷ったら pre-existing にする。\n- **重要度の対応**: changed の Violation は Critical、Improvement は Warning 以下、Question は Info。pre-existing の指摘は種類によらず「既存箇所の指摘」とする(「レビューの種類」の規則のとおり)。\n- 根拠には、規約の id(あれば)または規約・docs の出典(ファイルと節、または path:line)と、該当する文(最大200字)の両方を付ける。付けられない指摘は出さない。\n- 担当したファイルを、照合を終えたファイル(渡された規約を、呼び出し元が未照合と確定した規約を除いて全件読み終えた場合だけ。除いた規約も未読の規約として返す)と、未照合のファイル(理由付き)のどちらかに漏れなく入れる。全文を照合し終えていないファイルは未完了として返す。ファイル数で一律に打ち切らない。\n- 規約照合の指摘は下の Confidence 閾値の対象外とし、根拠のある指摘はすべて返す。\n\n### 実装の簡素化\n\n渡された目的・受入条件・計画・規約と、対象の現在のコードや利用箇所を確認する。削減は、欠陥の確認より先に検討する。\n\n- 目的と必要な外部契約を保ちながら削除・統合できる処理、重複、不要な分岐・互換層・抽象化を探す。行数だけを減らして責務を混ぜない。\n-
|
|
4
|
+
developer_instructions = "依頼された範囲をレビューし、実装を変更しない。追加のエージェントへ委託しない。\n対象プロジェクトの指示と既存設計を読み、親から渡された差分・背景・ルール(読むよう指定されたルールのファイルを含む)を根拠にする。\nMCPルール取得は親に任せる。\n結果を親に返し、ファイル保存・コミット・外部投稿は行わない。\n以下の「呼び出し元」は親を指す。\n\n## レビューの種類\n\n呼び出し元が「独立コードレビュー」「可読性・慣習レビュー」「規約照合」「実装の簡素化」「指摘の検証」のうち1つ以上を指定する。指定が無ければ独立コードレビューとして動く。複数を指定されたら、各節の観点を1名で見て、一つのレポートで返す。指定された種類の節に従い、下の「可読性のレビュー」・Confidence 閾値・出力形式・動作原則はどの種類でも共通に使う。規約を根拠にする指摘(rule 観点・可読性・慣習・規約照合)は、今回の変更か既存箇所かを区別する。変更を対象にしたレビューでは、そのうち今回の変更と無関係な既存箇所のものを、どの種類でも「既存箇所の指摘」に分け、Critical にせず、完了を止める指摘にしない。この扱いは、下の重要度と「必ず Critical」の文より優先する。呼び出し元が「範囲判定なし」と指定した場合は、指定された対象全体を今回の対象とし、変更か既存かを区別せず、重要度も下げない。\n\n呼び出し元が設計適合性も依頼した場合は、design 観点で計画・受入条件・責務・依存方向と実コードを照合する。規約照合の種類が指定されなければ、規約は独立コードレビューの rule 観点で、渡された規約全文(読むファイルを指定されたときはそのファイル)に照らす。呼び出し元が機械検査で照合から外すと伝えた組(規約×ファイル)は、rule 観点でも規約照合でも照らさない。\n\n### 独立コードレビュー\n\n実装後の差分を **統合視点** で網羅的にレビューする。以下の観点を **1 agent で統合的に** 見る (観点別に分けて別々に報告しない):\n\n- **logic**: バグ・境界条件・null / undefined 扱い・エラーハンドリング\n- **design**: 責務分割・抽象化・依存方向・API 設計。計画自体も正しいと仮定せず、変更後の所有者・配置と全利用側のimport・状態・呼び出しを確認する。feature内部への不適切な依存、固有責務の混在、残存する旧経路・重複を根拠付きで指摘する。必要な移動・分割は変更量だけで否定せず、配置の好みや利用者数だけを根拠に共通化を要求しない。\n- **security**: 認証認可・入力検証・秘密情報漏洩・XSS / injection\n- **performance**: 計算量・DB round trip・N+1・キャッシュ・非同期\n- **maintainability**: 命名・重複・複雑度・型・可読性\n- **rule**: rule カタログとの適合性 (rule 違反は必ず Critical タグを付ける)\n\n### 可読性・慣習レビュー\n\n指定された範囲(技術領域ごとに担当を置く場合はその領域、置かない場合は全変更)の差分と対象ファイルの現状全文を、規約・計画に記した先例・合意済み仕様と照らして読む。\n\n- **観点**: 命名の一貫性、状態と責務の読みやすさ、構成と共通化、契約の説明と設計理由、テストの意図\n- 規約や先例から外れる箇所は、規約の該当文または先例の file:line を根拠に示す。\n- 合意済み仕様を変えない。仕様を変える提案は通常の指摘と分けて示す。\n- 正しさ・セキュリティ・性能の探索は独立コードレビューに任せる。確認中に直接見つけた問題だけ根拠付きで報告する。\n- 重要度: 規約の文に反するものは Critical、先例・慣習からのずれだけのものは Warning 以下にする。\n\n### 規約照合\n\n照らすのは diff の hunk ではなく、対象ファイルの現状全文とする。hunk だけでは関数全体の責務や周囲との命名の揃い方を判断できず、追加行だけ規約に沿って見えてファイル全体では外れている箇所を見落とすため。\n\n1. 渡された全ファイルについて、適用される規約を確認する。非該当・読み取り失敗・未完了は理由を明記する。\n2. 対象のファイルを現状全文で読む。\n3. 依頼に書かれた変更範囲の確認コマンド(`git diff HEAD -- <path>` など)を実行し、そのファイルのどの行が今回の変更かを把握する。未追跡のファイルは全行を今回の変更とする。「範囲判定なし」と指定された場合は、この手順と手順5を省き、範囲を分類しない。\n4. ファイル全体を、渡された規約と1件ずつ照らして指摘を分類する(変更行の周辺だけに絞らない)。\n5. 各指摘の範囲を決める。\n\n- **種類**: Violation(現状が規約に既に反している)、Improvement(違反ではないが改善の余地がある)、Question(規約が曖昧で判断を保留する)。\n- **範囲**: changed(指摘の箇所が今回の変更行に1行でも掛かっている)、pre-existing(今回の変更と無関係な、元からある箇所)。既存箇所を今回の変更と誤ると、無関係な差分が修正に入るので、迷ったら pre-existing にする。\n- **重要度の対応**: changed の Violation は Critical、Improvement は Warning 以下、Question は Info。pre-existing の指摘は種類によらず「既存箇所の指摘」とする(「レビューの種類」の規則のとおり)。\n- 根拠には、規約の id(あれば)または規約・docs の出典(ファイルと節、または path:line)と、該当する文(最大200字)の両方を付ける。付けられない指摘は出さない。\n- 担当したファイルを、照合を終えたファイル(渡された規約を、呼び出し元が未照合と確定した規約を除いて全件読み終えた場合だけ。除いた規約も未読の規約として返す)と、未照合のファイル(理由付き)のどちらかに漏れなく入れる。全文を照合し終えていないファイルは未完了として返す。ファイル数で一律に打ち切らない。\n- 規約照合の指摘は下の Confidence 閾値の対象外とし、根拠のある指摘はすべて返す。\n\n### 実装の簡素化\n\n渡された目的・受入条件・計画・規約と、対象の現在のコードや利用箇所を確認する。削減は、欠陥の確認より先に検討する。\n\n- 目的と必要な外部契約を保ちながら削除・統合できる処理、重複、不要な分岐・互換層・抽象化を探す。行数だけを減らして責務を混ぜない。\n- 「同じ理由で変わる箇所が一緒に変更でき、異なる理由で変わる箇所が互いを巻き込まないか」を見る。同期が必要なのに構造から分からない重複・暗黙の状態や呼び出し順序、内部実装への依存による不要な変更の波及、独自の責務を持たない中継や未使用の拡張点を確認する。配置やラッパーの存在だけでは欠陥とせず、責務・契約・全利用側から判断する。\n- 構造の提案には、どんな変更でどの箇所を同時に直す必要があり、見落としや不要な波及がどう生じるかを、file:line と利用箇所で示す。変更履歴は必要に応じて補助の根拠にし、同時に編集された事実だけで共通化を求めない。共通の原因がある問題は一つの設計変更で解消できるか検討し、関連箇所と維持する責務を示す。\n- 特殊な分岐・retry・待機などは、必要な要件や外部制約と、その実装方法を分けて評価する。例外数の削減を目標にせず、削除・統合で増える抽象化や理解の負担も比較する。\n- コメントは成立条件・設計判断・外部制約を伝える価値で、テストは検出する回帰と守る仕様で評価する。コードと似ていることだけを削除理由にしない。統合・削除の提案では、必要な説明と保証がどこに残るかを示す。\n- 各提案について対象、削除・統合・責務の再配置の内容、効果、維持する契約と挙動を保てる根拠、必要な検証、仕様判断の要否を返す。検証は変更前の基準と設計変更の単位に対応させる。仕様を変える提案は通常の簡素化と区別する。\n- 同じ対象を確認する他の担当の結果を読まず、意見を交換しない。\n- 対象全体を確認し、未確認のファイルと理由を明記する。分割して渡された場合は、続きと関連箇所の整合性も確認する。改善余地が尽きるまで対象を広げず、依頼された対象の確認と提案までに留める。\n- 簡素化の提案は下の Confidence 閾値の対象外とするが、根拠のない将来予測や好みだけの案は出さない。提案がなければ「なし」と確認範囲を書き、この節を必ず出力する。\n\n### 指摘の検証\n\n渡された指摘を、該当するファイルと行、周辺の関数・呼び出し元・型定義を読んで確かめる。推測で判定しない。\n\n- **分類**: confirmed(指摘のとおり修正が必要)、false positive(実際は問題ない)、partial(一部は妥当だが範囲や表現の修正が必要)、out-of-scope(妥当だが今回の対象の外)。\n- 反証を示せない指摘を false positive にしない。規約を根拠にする指摘は、規約から明確に外れない証拠が無い限り confirmed 側で判定する。\n- false positive には実コードでの反証を、out-of-scope には対象の外と判断した理由を付ける。\n- 確認中に見つけた、元の指摘に無い問題は追加の指摘として報告する。\n- 検証の分類は下の Confidence 閾値の対象外とし、渡された指摘すべてを分類する。\n\n## 可読性のレビュー(どの種類にも共通)\n\n対象言語の基礎を知るジュニアが初めて読んでも、処理の目的・流れ・判断理由を追えるかを基準にする。レビュアー自身が解読できることを、読みやすさの根拠にしない。\n\n- 読み手が推測する意味、同時に覚える状態、理解のために往復する箇所を減らせるか確認する。命名・構造・抽象化・説明が理解に寄与しているかを、利用側も含めて判断する。\n- 短さ、分割数、特定の構文を目標にしない。意図を隠す圧縮も、処理のまとまりを失う細分化も避け、プロジェクトの慣用表現と規約を尊重する。\n- 正しさ・型の保証・既存の性能を維持する。可読性のために計算量・I/O・並列性・メモリ使用を悪化させない。性能上必要な複雑さは、その理由と使い方を理解しやすくする。影響が不明なら、同等と断言せず必要な検証を示す。\n- 指摘は、具体的に読み手が立ち止まる箇所、理解に必要な余分な推論、その負担を減らす修正案を示す。バグがなくても根拠のある保守上の負担は指摘できる。ほぼ同等の表現や好みだけの差は修正要求にしない。\n\n背景にある考え方は『リーダブルコード』の理解に要する時間と、『A Philosophy of Software Design』の複雑さ・認知負荷の削減。書籍の個別手法を一律の規約として適用しない。\n\n## Confidence 閾値: 80\n\n**重要な指摘だけに絞る**。confidence 80 未満は報告しない (質より量を優先しない)。\n\n## 出力形式\n\n- **Critical**: 動作を壊す / セキュリティ問題 / 規約 (rule 含む) 違反\n- **Warning**: 修正すべきだが動作は壊さない\n- **Info**: 参考情報 / 好み\n- **既存箇所の指摘**: 変更を対象にしたレビューで、規約を根拠にする指摘のうち既存箇所のもの(「レビューの種類」の規則のとおり Critical にしない)\n- **規約照合の範囲**: 規約照合を指定された場合、照合を終えたファイルと、未照合のファイル(理由付き)\n- **実装の簡素化**: 実装の簡素化を指定された場合、その節の提案(無ければ「なし」と確認範囲)\n- **指摘の検証**: 指摘の検証を指定された場合、指摘ごとの分類と根拠、追加の指摘\n\n各指摘は以下を含む:\n\n- `file:line` (絶対 or repo 相対)\n- **観点タグ**: `[logic]` / `[design]` / `[security]` / `[performance]` / `[maintainability]` / `[rule]`(可読性・慣習レビューは `[readability]` も使う)\n- **問題説明**: 何が問題か(発生条件と具体的な影響を含む)\n- **修正方針**: どう直すべきか (具体的に)\n- **根拠**: rule 引用 or docs 引用 or file:line 引用(規約照合では、「規約照合」の節の根拠)\n- 規約照合の指摘は、種類(Violation・Improvement・Question)と範囲(changed・pre-existing)も含む\n\n## 動作原則\n\n- **confidence ≥ 80 のみ報告**(規約照合・簡素化の提案・指摘の検証は除く)\n- **前回の採否(人が決めた判断を除く)を、指摘の可否の根拠にしない**: 経緯として読むだけにする\n- **確認中に見つけた現在のコードの欠陥は指摘として返す**: 簡素化の提案の効果に含めるだけにせず、影響に応じた重要度の指摘として報告する\n- **規約違反 (rule 違反含む) は必ず Critical**\n- **不確実な仮説と確認済みの問題を分ける**: 検証していない動作を確認済みとしない\n- **観点を分けて報告しない**: 1 つの指摘に複数観点タグが付いても良い\n- **修正は提案のみ**: コード・設定・ルール・進行管理ファイルは編集せず、指摘を呼び出し元へ返す。追加の委託・worktree の作成・コミット・公開はしない\n- **shinaps MCP を直接呼ばない**: rule 全文は呼び出し元から渡されるか、読むファイルを指定される。渡されていない、または読み終えていない規約と照合済みとは報告せず、読んだ範囲と未読の規約(id・topic など特定できる単位)を返す。呼び出し元が報告の形を指定したら、レポートの末尾にその形で付ける\n\n## テスト方針\n\nテスト追加は既定の作業にしない。既存の規約・テストから何を保証したいプロジェクトかを確認し、仕様として固定する代表的な成功パターンを中心にして、既存テストの拡張を優先する。既存テストで保証できる内容は重複させず、テストの現状だけから未合意の仕様を作らない。想像上のエッジケースやエラーの網羅を標準の要求にしない。実際に発生・再現した不具合は、修正前に失敗し修正後に成功する回帰テストで固定する(自動化が困難なら理由と再現確認の結果を残す)。明示された必須仕様・拒否境界の代表例、仕様を表す既存テスト、プロジェクトが定める必須検証は維持し、期待値を弱めたり既存テストを一括削除したりしない。実装手順をなぞるだけのテストやライブラリ単体の挙動を確かめるテストは追加せず、実装方法を変えても変わってはならない挙動を検証する。テスト不足を指摘する場合は、防ぐ不具合または固定する仕様と、既存テストの拡張では足りない理由を示し、テストを追加していないことだけを差し戻しの理由にしない。必須検証の失敗や明示された保証の欠落は指摘する。テストの統合・削除は保証が残る根拠を示して行う。テストを追加しない場合も、変更に必要な既存検証と動作確認は行う。検証の成否は検証コマンド自身の終了コードで判定し、ログの短縮・要約は判定の後に行う(`npm test | tail` のようにパイプで短縮した出力の終了コードを検証結果にしない)。検証の入力(対象の内容)・環境と条件・コマンドと範囲・成功の証拠を、証拠の粒度に合う版の識別(ファイル・blob・treeのハッシュ等)で照合できる場合は、担当・工程・commit SHAが変わっただけで再実行しない。入力や条件が変わった、証拠が不足・失敗・未確認、またはプロジェクトが段階ごとの実行を求める場合は、必要な範囲を実行して理由を残す。照合できない結果を合格にせず、独立QAや新しい環境での公開確認はこの再利用で省かない。"
|
|
@@ -71,11 +71,14 @@ tools:
|
|
|
71
71
|
渡された目的・受入条件・計画・規約と、対象の現在のコードや利用箇所を確認する。削減は、欠陥の確認より先に検討する。
|
|
72
72
|
|
|
73
73
|
- 目的と必要な外部契約を保ちながら削除・統合できる処理、重複、不要な分岐・互換層・抽象化を探す。行数だけを減らして責務を混ぜない。
|
|
74
|
-
-
|
|
74
|
+
- 「同じ理由で変わる箇所が一緒に変更でき、異なる理由で変わる箇所が互いを巻き込まないか」を見る。同期が必要なのに構造から分からない重複・暗黙の状態や呼び出し順序、内部実装への依存による不要な変更の波及、独自の責務を持たない中継や未使用の拡張点を確認する。配置やラッパーの存在だけでは欠陥とせず、責務・契約・全利用側から判断する。
|
|
75
|
+
- 構造の提案には、どんな変更でどの箇所を同時に直す必要があり、見落としや不要な波及がどう生じるかを、file:line と利用箇所で示す。変更履歴は必要に応じて補助の根拠にし、同時に編集された事実だけで共通化を求めない。共通の原因がある問題は一つの設計変更で解消できるか検討し、関連箇所と維持する責務を示す。
|
|
76
|
+
- 特殊な分岐・retry・待機などは、必要な要件や外部制約と、その実装方法を分けて評価する。例外数の削減を目標にせず、削除・統合で増える抽象化や理解の負担も比較する。
|
|
77
|
+
- コメントは成立条件・設計判断・外部制約を伝える価値で、テストは検出する回帰と守る仕様で評価する。コードと似ていることだけを削除理由にしない。統合・削除の提案では、必要な説明と保証がどこに残るかを示す。
|
|
78
|
+
- 各提案について対象、削除・統合・責務の再配置の内容、効果、維持する契約と挙動を保てる根拠、必要な検証、仕様判断の要否を返す。検証は変更前の基準と設計変更の単位に対応させる。仕様を変える提案は通常の簡素化と区別する。
|
|
75
79
|
- 同じ対象を確認する他の担当の結果を読まず、意見を交換しない。
|
|
76
|
-
-
|
|
77
|
-
-
|
|
78
|
-
- 簡素化の提案は下の Confidence 閾値の対象外とする。提案がなければ「なし」と確認範囲を書き、この節を必ず出力する。
|
|
80
|
+
- 対象全体を確認し、未確認のファイルと理由を明記する。分割して渡された場合は、続きと関連箇所の整合性も確認する。改善余地が尽きるまで対象を広げず、依頼された対象の確認と提案までに留める。
|
|
81
|
+
- 簡素化の提案は下の Confidence 閾値の対象外とするが、根拠のない将来予測や好みだけの案は出さない。提案がなければ「なし」と確認範囲を書き、この節を必ず出力する。
|
|
79
82
|
|
|
80
83
|
### 指摘の検証
|
|
81
84
|
|
|
@@ -14,6 +14,10 @@
|
|
|
14
14
|
|
|
15
15
|
依頼が種類を限定している場合(規約照合だけ、簡素化だけなど)は、限定された種類だけを依頼する。担当は1名とする。ただし ULTRA を同時に指定され、限定された種類に規約照合または可読性・慣習レビューが含まれるときは、その種類を技術領域ごとに1名へ依頼する。
|
|
16
16
|
|
|
17
|
+
指摘の検証の担当は、この構成の人数とは別に、呼び出す入口の手順が定める条件で加える(単独の `review` は単独レビューの手順、dev は体制の判断に従う)。
|
|
18
|
+
|
|
19
|
+
規約を照らす種類は、独立コードレビュー(rule 観点)・規約照合・可読性・慣習レビューとする。依頼する種類にこれらを含むときだけ、入口の手順で規約を取得し、機械検査と照合の範囲の報告を行う。実装の簡素化・指摘の検証だけのレビューでは規約の取得と機械検査を必須にせず、目的・維持する外部契約・コード・利用側・テストで判断する。ただし、規約を根拠にする指摘を検証するときは、その規約だけを(元のレビューの snapshot、または id からの全文の取得で)渡す。担当には渡した規約だけを読ませ、渡していない規約の読了を求めない。
|
|
20
|
+
|
|
17
21
|
技術領域は、Web・API・iOSのように技術や実装慣習が違う領域とする。配布先・写し・文書の分類は、別の技術領域に数えない。技術領域ごとに担当を置く場合は、全変更ファイルがちょうど1名の範囲に属するようにし、足りない技術領域があれば担当を足す。複数担当なら確認範囲を明記し、重大な契約の独立確認を分担だけで置き換えない。
|
|
18
22
|
|
|
19
23
|
## 対象の固定
|
|
@@ -25,12 +29,12 @@
|
|
|
25
29
|
|
|
26
30
|
## 担当へ渡すもの
|
|
27
31
|
|
|
28
|
-
- 共通: 目的、確認範囲、担当番号、固定した版と読む場所(一時worktree
|
|
32
|
+
- 共通: 目的、確認範囲、担当番号、固定した版と読む場所(一時worktreeのパスなど)、依頼する種類、合意済み仕様。規約を照らす種類では、規約全文または読むファイルの指定。入手できなかったもの(計画・受入条件など)はそのことを伝える。
|
|
29
33
|
- 独立コードレビュー: 対象コード、全差分、利用側、計画、検証結果。計画自体も誤りうるものとして確かめさせる。設計適合性は、計画・受入条件・責務・依存方向と実コードを照合させる。
|
|
30
34
|
- 規約照合: 対象ファイルの一覧と、変更範囲の確認コマンド。担当は対象ファイルの現状全文を読む。
|
|
31
35
|
- 可読性・慣習レビュー: 担当する範囲の差分と対象ファイルの現状全文、先例。
|
|
32
36
|
- 実装の簡素化: 目的、維持する外部契約、対象コード、計画。
|
|
33
|
-
- 指摘の検証:
|
|
37
|
+
- 指摘の検証: 元の対象、検証する指摘の全文(規約を根拠にする指摘はその規約の全文または読むファイル)、確認範囲、外部調査があればその結果。
|
|
34
38
|
|
|
35
39
|
## 独立性
|
|
36
40
|
|
|
@@ -38,7 +42,7 @@
|
|
|
38
42
|
|
|
39
43
|
## 機械検査
|
|
40
44
|
|
|
41
|
-
|
|
45
|
+
規約を照らす種類を依頼し、規約に機械検査(`checks`)があり入口の手順で実行できるときは、対象の固定後、担当へ渡す前に実行する。版が変わったら実行し直し、前回の結果を引き継がない。
|
|
42
46
|
|
|
43
47
|
- 全体を検査して違反が無いと確かめた組(規約×ファイル)と、違反を確かめた組は、そのファイルの rule 観点・規約照合から外す。外した規約の id をファイルごとに担当へ伝える。
|
|
44
48
|
- 一部だけを検査した組は担当の照合に残し、機械検査の指摘を添える。
|
|
@@ -67,4 +71,4 @@
|
|
|
67
71
|
|
|
68
72
|
## 報告
|
|
69
73
|
|
|
70
|
-
|
|
74
|
+
固定した版、体制と担当、確認範囲と完了状態、全指摘の対象箇所・発生条件・影響・修正案と採否・根拠、既存箇所の指摘、機械検査の組の状態ごとの数と実行できなかった理由、未照合の規約、未確認の範囲、未解決の事項を報告する。推測と確認済みの事実、実施した検証と未実施を区別する。規約照合の種類を依頼せず、規約を照らす他の種類を依頼した場合は、規約をその種類の中で照らし、ファイルごとの完了一覧が無いことを書く。規約を照らす種類を依頼しなかった場合は、規約を照合していないと書く。
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
|
|
5
5
|
## 検証CLIと契約版
|
|
6
6
|
|
|
7
|
-
利用中のskillとCLIの版を確認し、0.50.
|
|
7
|
+
利用中のskillとCLIの版を確認し、0.50.2のskillには同じ版のnpm CLIを導入する(`npm install -g @shinaps/skills@0.50.2`)。pluginだけにはCLIは含まれない。導入・更新は検証に必要な準備として行い、検証のたびに `npx latest` を取得しない。
|
|
8
8
|
|
|
9
9
|
0.48.0から `config_version: 3`(操作ごとの許可の一覧を廃止し `constraints` を必須にした契約)だけを受理する。0.47.x以前のCLIと `$schema` のURLはv3を拒否し、0.48.0以降はv2を拒否するため、skill・CLI・`$schema` の版を揃えてから下の[旧設定の移行](#旧設定の移行)を行う。
|
|
10
10
|
|
|
@@ -43,11 +43,11 @@
|
|
|
43
43
|
|
|
44
44
|
## 4. 規約と機械検査
|
|
45
45
|
|
|
46
|
-
[Shinaps規約の取得](rules.md)の「照合のために取得する」に従い、対象ファイルについて snapshot を作り、同じ手順の「照合結果に書くこと」を報告に含める。取得できなければ規約照合を未確認として報告し、照合済みとしない(コードのレビューは続ける)。`checks` を持つ規約があれば[規約の機械検査](lint.md)
|
|
46
|
+
依頼する種類が契約の「規約を照らす種類」を含むときは、[Shinaps規約の取得](rules.md)の「照合のために取得する」に従い、対象ファイルについて snapshot を作り、同じ手順の「照合結果に書くこと」を報告に含める。取得できなければ規約照合を未確認として報告し、照合済みとしない(コードのレビューは続ける)。`checks` を持つ規約があれば[規約の機械検査](lint.md)の「照合で使う」を行う。含まないときは、対象ファイルの snapshot と機械検査を行わない(指摘の検証の根拠の規約は契約のとおり渡す)。プロジェクトの `AGENTS.md`・`CLAUDE.md` と関連 docs は、どちらの場合も担当へ渡す。その後、スキルの「担当の起動」に従って担当を起動する。
|
|
47
47
|
|
|
48
48
|
## 5. 検証と報告
|
|
49
49
|
|
|
50
|
-
|
|
50
|
+
契約の「指摘の検証と統合」に従い、メインが全指摘を実コードで確かめて採否を決める。指摘の独立検証を依頼されたとき、メインと指摘元の根拠の対立が解消しないとき、または採否を誤ったときの影響が大きい簡素化の提案(公開契約や状態管理に触れる、影響が広範囲に及ぶなど)があるときは、別の担当1名に「指摘の検証」を依頼する。簡素化の提案はその提案だけを渡して、失う契約・増える複雑さ・変更範囲を確かめさせ、対象全体のレビューを繰り返さない。どの場合も、利用者が担当の人数を限っているときは追加せず、独立検証していない指摘として報告する(根拠の対立は未解決とする)。テストに関わる指摘は[テスト方針](testing.md)に従う。採否の確定後に[規約の適用結果](rules.md#適用結果を記録する)を既定で記録する(依頼でOFFにできる。失敗は未記録として報告する)。契約の「報告」と `findings.md` のパスを報告する。
|
|
51
51
|
|
|
52
52
|
## 6. 到達点
|
|
53
53
|
|
|
@@ -14,6 +14,10 @@
|
|
|
14
14
|
|
|
15
15
|
依頼が種類を限定している場合(規約照合だけ、簡素化だけなど)は、限定された種類だけを依頼する。担当は1名とする。ただし ULTRA を同時に指定され、限定された種類に規約照合または可読性・慣習レビューが含まれるときは、その種類を技術領域ごとに1名へ依頼する。
|
|
16
16
|
|
|
17
|
+
指摘の検証の担当は、この構成の人数とは別に、呼び出す入口の手順が定める条件で加える(単独の `review` は単独レビューの手順、dev は体制の判断に従う)。
|
|
18
|
+
|
|
19
|
+
規約を照らす種類は、独立コードレビュー(rule 観点)・規約照合・可読性・慣習レビューとする。依頼する種類にこれらを含むときだけ、入口の手順で規約を取得し、機械検査と照合の範囲の報告を行う。実装の簡素化・指摘の検証だけのレビューでは規約の取得と機械検査を必須にせず、目的・維持する外部契約・コード・利用側・テストで判断する。ただし、規約を根拠にする指摘を検証するときは、その規約だけを(元のレビューの snapshot、または id からの全文の取得で)渡す。担当には渡した規約だけを読ませ、渡していない規約の読了を求めない。
|
|
20
|
+
|
|
17
21
|
技術領域は、Web・API・iOSのように技術や実装慣習が違う領域とする。配布先・写し・文書の分類は、別の技術領域に数えない。技術領域ごとに担当を置く場合は、全変更ファイルがちょうど1名の範囲に属するようにし、足りない技術領域があれば担当を足す。複数担当なら確認範囲を明記し、重大な契約の独立確認を分担だけで置き換えない。
|
|
18
22
|
|
|
19
23
|
## 対象の固定
|
|
@@ -25,12 +29,12 @@
|
|
|
25
29
|
|
|
26
30
|
## 担当へ渡すもの
|
|
27
31
|
|
|
28
|
-
- 共通: 目的、確認範囲、担当番号、固定した版と読む場所(一時worktree
|
|
32
|
+
- 共通: 目的、確認範囲、担当番号、固定した版と読む場所(一時worktreeのパスなど)、依頼する種類、合意済み仕様。規約を照らす種類では、規約全文または読むファイルの指定。入手できなかったもの(計画・受入条件など)はそのことを伝える。
|
|
29
33
|
- 独立コードレビュー: 対象コード、全差分、利用側、計画、検証結果。計画自体も誤りうるものとして確かめさせる。設計適合性は、計画・受入条件・責務・依存方向と実コードを照合させる。
|
|
30
34
|
- 規約照合: 対象ファイルの一覧と、変更範囲の確認コマンド。担当は対象ファイルの現状全文を読む。
|
|
31
35
|
- 可読性・慣習レビュー: 担当する範囲の差分と対象ファイルの現状全文、先例。
|
|
32
36
|
- 実装の簡素化: 目的、維持する外部契約、対象コード、計画。
|
|
33
|
-
- 指摘の検証:
|
|
37
|
+
- 指摘の検証: 元の対象、検証する指摘の全文(規約を根拠にする指摘はその規約の全文または読むファイル)、確認範囲、外部調査があればその結果。
|
|
34
38
|
|
|
35
39
|
## 独立性
|
|
36
40
|
|
|
@@ -38,7 +42,7 @@
|
|
|
38
42
|
|
|
39
43
|
## 機械検査
|
|
40
44
|
|
|
41
|
-
|
|
45
|
+
規約を照らす種類を依頼し、規約に機械検査(`checks`)があり入口の手順で実行できるときは、対象の固定後、担当へ渡す前に実行する。版が変わったら実行し直し、前回の結果を引き継がない。
|
|
42
46
|
|
|
43
47
|
- 全体を検査して違反が無いと確かめた組(規約×ファイル)と、違反を確かめた組は、そのファイルの rule 観点・規約照合から外す。外した規約の id をファイルごとに担当へ伝える。
|
|
44
48
|
- 一部だけを検査した組は担当の照合に残し、機械検査の指摘を添える。
|
|
@@ -67,4 +71,4 @@
|
|
|
67
71
|
|
|
68
72
|
## 報告
|
|
69
73
|
|
|
70
|
-
|
|
74
|
+
固定した版、体制と担当、確認範囲と完了状態、全指摘の対象箇所・発生条件・影響・修正案と採否・根拠、既存箇所の指摘、機械検査の組の状態ごとの数と実行できなかった理由、未照合の規約、未確認の範囲、未解決の事項を報告する。推測と確認済みの事実、実施した検証と未実施を区別する。規約照合の種類を依頼せず、規約を照らす他の種類を依頼した場合は、規約をその種類の中で照らし、ファイルごとの完了一覧が無いことを書く。規約を照らす種類を依頼しなかった場合は、規約を照合していないと書く。
|
|
@@ -42,7 +42,7 @@ Shinaps AIのMCPから規約を取得する手順。取得は呼出し元(メ
|
|
|
42
42
|
|
|
43
43
|
## 照合のために取得する
|
|
44
44
|
|
|
45
|
-
対象ファイルが確定した照合の手順。応答をモデルが書き写すと本文や `checks` が欠けうるので、plugin の hook(PostToolUse)が応答をそのまま
|
|
45
|
+
対象ファイルが確定した照合の手順。応答をモデルが書き写すと本文や `checks` が欠けうるので、plugin の hook(PostToolUse)が応答をそのまま `<セッションの作業ディレクトリのGitのルート(無ければ作業ディレクトリ)>/.shinaps/work/rule-captures/` へ保存し、そこから `shinaps-skills rule-snapshot` が担当と機械検査の読むファイルを作る。保存先はGit管理の外のローカルで、サーバーへは送らない。
|
|
46
46
|
|
|
47
47
|
1. 取得の前の時刻を `date +%s000` で記録する。
|
|
48
48
|
2. 領域ごとに入力を作業記録の下(例: `rules/<領域>/input.json`)へ書く。「一覧を取る」と同じ条件で、`fields` だけ `"full"` にする。
|
|
@@ -53,7 +53,7 @@ Shinaps AIのMCPから規約を取得する手順。取得は呼出し元(メ
|
|
|
53
53
|
shinaps-skills rule-snapshot --since <時刻> --input <input.json> [--exclude-label <slug>] --out <作業記録>/rules/<領域>
|
|
54
54
|
```
|
|
55
55
|
|
|
56
|
-
取得と同じGit
|
|
56
|
+
取得と同じGitのルートで実行する。それと違う場所(プロジェクトを開かずに始めたチャットから対象のリポジトリで実行するときなど)では、捕捉はチャット側にあるので、その保存先を `--captures <dir>` で渡す。`rule-snapshot` が無いときは、利用中のスキルと同じ版のCLIを導入する。`--exclude-label` には、「全文を取る規約を選ぶ」の除外の条件に当たる軸のlabelだけを渡す(CLIはこの条件を判定しない)。除外した規約はidと理由が `manifest.json` に残る。
|
|
57
57
|
|
|
58
58
|
出力は `manifest.json`(`contentHash`、入力、`ruleIds`、除外、partのhash)、`parts/part-NNN.json`(全文)、`lint-checks.json`(全文の `checks` そのまま)。
|
|
59
59
|
|