@shinaps/skills 0.50.1 → 0.50.3
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/managed-agents/skills/dev-managed-cc/references/review.md +8 -4
- package/plugins/shinaps-claude/references/dev/workflow.md +1 -0
- 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/managed-agents/skills/dev-managed-cc/references/review.md +8 -4
- package/plugins/shinaps-codex/references/dev/workflow.md +1 -0
- 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.3
|
|
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.3",
|
|
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
|
},
|
|
@@ -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
|
+
固定した版、体制と担当、確認範囲と完了状態、全指摘の対象箇所・発生条件・影響・修正案と採否・根拠、既存箇所の指摘、機械検査の組の状態ごとの数と実行できなかった理由、未照合の規約、未確認の範囲、未解決の事項を報告する。推測と確認済みの事実、実施した検証と未実施を区別する。規約照合の種類を依頼せず、規約を照らす他の種類を依頼した場合は、規約をその種類の中で照らし、ファイルごとの完了一覧が無いことを書く。規約を照らす種類を依頼しなかった場合は、規約を照合していないと書く。
|
|
@@ -80,6 +80,7 @@ Issue・既存spec・調査記録・関連コード・検証方法を必要な
|
|
|
80
80
|
- 検証やレビューの指摘には原因を確認して対処する。期待値や受入条件を弱めて成功扱いにしない。
|
|
81
81
|
- 実装後、目的を保ったまま削除・統合できる処理を確かめ、不要な分岐・重複・互換層を減らしてからセルフレビューする。
|
|
82
82
|
- [テスト方針](../testing.md)に沿って、プロジェクトの規約・CI・変更の影響に応じた検証を行う。検証でSimulator等の仮想端末を使う場合は、[QAと証拠](../linear/qa.md) の「Simulatorの所有と再利用」に従う。
|
|
83
|
+
- Claude CodeでiOSの不具合の再現や原因の調査に実際の画面・操作の観測が必要な場合は、Apple公式のXcodeプラグインの `device-interaction` スキルを使える。使うのはこの目的の場合だけとし、同スキルがUI変更後の毎回の確認を勧めていても実装後の一律確認には使わない(動作QAは[QAと証拠](../linear/qa.md)の工程が担う)。操作とセッションの手順は同スキルに従う。端末は上の「Simulatorの所有と再利用」に従ってUDIDで指定し、同スキルのツールは指定に近い端末を選ぶことがあるため、開始したセッションの端末がそのUDIDと一致することを確かめる。未導入・未承認・その端末を選べない・一致しないなど使えない場合は、導入や権限の変更を手順に加えず、観測していない内容を未確認として扱う。観測は対象版・端末と合わせて `implementation.md`(Phase 7と修正サイクルでは `fix-log.md`)に残し、検証やQAの合格に読み替えない。
|
|
83
84
|
- 実装ミスによる検証失敗の自己修正は3回まで。超えた場合は根拠と未解決点を記録し、追加試行・差分のレビュー・計画への差し戻しの選択肢を人に確認する。
|
|
84
85
|
|
|
85
86
|
メインは `implementation.md` に、変更ファイルと変更内容、設計理由、確認した先例と慣習から外れる判断の理由、簡素化した点、計画からの変更と合意、検証コマンドと終了コード・証拠の所在、未実施事項・未解決点を書く。実行していない検証を成功と書かない。UIレビューはこの工程に含めず、linear-executeのAgent QA等で扱う。
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
|
|
5
5
|
## 検証CLIと契約版
|
|
6
6
|
|
|
7
|
-
利用中のskillとCLIの版を確認し、0.50.
|
|
7
|
+
利用中のskillとCLIの版を確認し、0.50.3のskillには同じ版のnpm CLIを導入する(`npm install -g @shinaps/skills@0.50.3`)。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
|
|
|
@@ -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
|
+
固定した版、体制と担当、確認範囲と完了状態、全指摘の対象箇所・発生条件・影響・修正案と採否・根拠、既存箇所の指摘、機械検査の組の状態ごとの数と実行できなかった理由、未照合の規約、未確認の範囲、未解決の事項を報告する。推測と確認済みの事実、実施した検証と未実施を区別する。規約照合の種類を依頼せず、規約を照らす他の種類を依頼した場合は、規約をその種類の中で照らし、ファイルごとの完了一覧が無いことを書く。規約を照らす種類を依頼しなかった場合は、規約を照合していないと書く。
|
|
@@ -80,6 +80,7 @@ Issue・既存spec・調査記録・関連コード・検証方法を必要な
|
|
|
80
80
|
- 検証やレビューの指摘には原因を確認して対処する。期待値や受入条件を弱めて成功扱いにしない。
|
|
81
81
|
- 実装後、目的を保ったまま削除・統合できる処理を確かめ、不要な分岐・重複・互換層を減らしてからセルフレビューする。
|
|
82
82
|
- [テスト方針](../testing.md)に沿って、プロジェクトの規約・CI・変更の影響に応じた検証を行う。検証でSimulator等の仮想端末を使う場合は、[QAと証拠](../linear/qa.md) の「Simulatorの所有と再利用」に従う。
|
|
83
|
+
- Claude CodeでiOSの不具合の再現や原因の調査に実際の画面・操作の観測が必要な場合は、Apple公式のXcodeプラグインの `device-interaction` スキルを使える。使うのはこの目的の場合だけとし、同スキルがUI変更後の毎回の確認を勧めていても実装後の一律確認には使わない(動作QAは[QAと証拠](../linear/qa.md)の工程が担う)。操作とセッションの手順は同スキルに従う。端末は上の「Simulatorの所有と再利用」に従ってUDIDで指定し、同スキルのツールは指定に近い端末を選ぶことがあるため、開始したセッションの端末がそのUDIDと一致することを確かめる。未導入・未承認・その端末を選べない・一致しないなど使えない場合は、導入や権限の変更を手順に加えず、観測していない内容を未確認として扱う。観測は対象版・端末と合わせて `implementation.md`(Phase 7と修正サイクルでは `fix-log.md`)に残し、検証やQAの合格に読み替えない。
|
|
83
84
|
- 実装ミスによる検証失敗の自己修正は3回まで。超えた場合は根拠と未解決点を記録し、追加試行・差分のレビュー・計画への差し戻しの選択肢を人に確認する。
|
|
84
85
|
|
|
85
86
|
メインは `implementation.md` に、変更ファイルと変更内容、設計理由、確認した先例と慣習から外れる判断の理由、簡素化した点、計画からの変更と合意、検証コマンドと終了コード・証拠の所在、未実施事項・未解決点を書く。実行していない検証を成功と書かない。UIレビューはこの工程に含めず、linear-executeのAgent QA等で扱う。
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
|
|
5
5
|
## 検証CLIと契約版
|
|
6
6
|
|
|
7
|
-
利用中のskillとCLIの版を確認し、0.50.
|
|
7
|
+
利用中のskillとCLIの版を確認し、0.50.3のskillには同じ版のnpm CLIを導入する(`npm install -g @shinaps/skills@0.50.3`)。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
|
|