@shinaps/skills 0.31.0 → 0.32.0
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/README.md +21 -9
- package/dist/bin/skills.js +14 -1
- package/dist/lib/install.js +1 -0
- package/dist/lib/linear-config.js +32 -0
- package/package.json +4 -1
- package/plugins/shinaps-claude/.claude-plugin/plugin.json +1 -1
- package/plugins/shinaps-claude/references/dev/workflow.md +1 -1
- package/plugins/shinaps-claude/references/human-review.md +8 -4
- package/plugins/shinaps-claude/references/linear/claude-cli.md +3 -3
- package/plugins/shinaps-claude/references/linear/configuration.md +99 -67
- package/plugins/shinaps-claude/references/linear/configuration.schema.json +305 -0
- package/plugins/shinaps-claude/references/linear/execution.md +1 -1
- package/plugins/shinaps-claude/references/linear/managed-session.md +1 -1
- package/plugins/shinaps-claude/references/linear/workflow.md +9 -32
- package/plugins/shinaps-claude/skills/commit/SKILL.md +3 -1
- package/plugins/shinaps-claude/skills/debug/SKILL.md +1 -1
- package/plugins/shinaps-claude/skills/explore/SKILL.md +1 -1
- package/plugins/shinaps-claude/skills/linear-execute/SKILL.md +7 -7
- package/plugins/shinaps-claude/skills/linear-plan/SKILL.md +1 -1
- package/plugins/shinaps-claude/skills/review/SKILL.md +1 -1
- package/plugins/shinaps-claude/skills/spec/SKILL.md +1 -1
- package/plugins/shinaps-codex/.codex-plugin/plugin.json +1 -1
- package/plugins/shinaps-codex/references/dev/workflow.md +1 -1
- package/plugins/shinaps-codex/references/human-review.md +8 -4
- package/plugins/shinaps-codex/references/linear/claude-cli.md +3 -3
- package/plugins/shinaps-codex/references/linear/configuration.md +99 -67
- package/plugins/shinaps-codex/references/linear/configuration.schema.json +305 -0
- package/plugins/shinaps-codex/references/linear/execution.md +1 -1
- package/plugins/shinaps-codex/references/linear/managed-session.md +1 -1
- package/plugins/shinaps-codex/references/linear/workflow.md +9 -32
- package/plugins/shinaps-codex/skills/commit/SKILL.md +3 -1
- package/plugins/shinaps-codex/skills/debug/SKILL.md +1 -1
- package/plugins/shinaps-codex/skills/explore/SKILL.md +1 -1
- package/plugins/shinaps-codex/skills/linear-execute/SKILL.md +3 -3
- package/plugins/shinaps-codex/skills/linear-plan/SKILL.md +1 -1
- package/plugins/shinaps-codex/skills/review/SKILL.md +1 -1
- package/plugins/shinaps-codex/skills/spec/SKILL.md +1 -1
package/README.md
CHANGED
|
@@ -6,12 +6,24 @@ Shinaps AIの利用者向け開発ワークフロー。Claude CodeとCodexには
|
|
|
6
6
|
|
|
7
7
|
共通スキルが持つのは判断手順。対象環境・必須検証・公開条件は、対象プロジェクトの `AGENTS.md` / `CLAUDE.md` と参照先、README、CI、既存スクリプトから読み取る。専用設定ファイルは必須にしない。
|
|
8
8
|
|
|
9
|
-
例外として `linear-execute` の開発進行とチーム設定の変更には、対象リポジトリの `.shinaps/linear.
|
|
9
|
+
例外として `linear-execute` の開発進行とチーム設定の変更には、対象リポジトリの `.shinaps/linear.json` を必須にする。操作の継続的な許可と終了地点を会話から推測せず、合意した範囲だけを続けて進めるためである。設定は `config_storage: shared` でGit共有、`local` でメインの作業ツリーだけに保存する。必須キーの欠落は設定不備として止め、旧設定は明示移行する。sharedは現在のcheckout、localはメインの設定と補足を正本とする。共有設定が欠けていても端末別のlocal設定では補わない。[共通設定](plugins/shinaps-claude/references/linear/configuration.md)の読取・保存手順に従う。設定がなくてもIssueの読み取り・整理はできる。設定が必要な実行で共通の読取手順により真に未設定と確認できた場合だけ、同じセッションで `linear-plan` の初期設定ヒアリングへ進み、合意した設定の保存・確認後に元の依頼を再開する。
|
|
10
10
|
|
|
11
|
-
sharedで採用する `instructions.md` は共有
|
|
11
|
+
sharedで採用する `instructions.md` は共有JSONの `references.specifications` に明記して開始・再開時に読み、他の必要補足は内容に対応する `references` に記載する。必要補足の欠落・読取不能は依存工程を止め、未採用とは扱わない。設定・採用補足・ignoreの個別例外を一緒に共有するか、共有済み資料への参照に置き換える。端末の絶対パスやsession/thread ID、進捗・QA結果は `.shinaps/work/` に分け、秘密値はどちらにも保存しない。保存方式の合意だけでstage・commit・push・追跡解除を許可しない。
|
|
12
12
|
|
|
13
13
|
例えばPCブラウザのみのプロジェクトには対応ブラウザと確認コマンドを書く。iOSプロジェクトにはSimulatorと実機の使い分けを記す。スキルは一律の端末数やOS数を追加しない。既存の情報で決まらず結果を左右する条件だけ確認し、保存を了承された方針をプロジェクト側に残す。
|
|
14
14
|
|
|
15
|
+
## JSON設定の検証
|
|
16
|
+
|
|
17
|
+
0.32.0から `.shinaps/linear.json`(`config_version: 1`)を使います。旧YAML・scalar review_flow・旧キーの共存は移行未完了として止め、[移行手順](plugins/shinaps-claude/references/linear/configuration.md#旧設定の移行)に従います。コメントの運用条件も補足へ移します。
|
|
18
|
+
|
|
19
|
+
CLIはpluginに含まれないため、利用中のskillと同じ `@shinaps/skills@0.32.0` を導入し、`shinaps-skills --version` で確認します。`shinaps-skills validate-linear-config <明示ファイル>` は同梱schemaだけで検証し、ネットワーク取得・正本探索・Git操作・入力変更は行いません。`$schema` は固定URLによるエディタ補助で、契約の正本は[同梱schema](plugins/shinaps-claude/references/linear/configuration.schema.json)です。
|
|
20
|
+
|
|
21
|
+
```sh
|
|
22
|
+
npm install -g @shinaps/skills@0.32.0
|
|
23
|
+
shinaps-skills --version
|
|
24
|
+
shinaps-skills validate-linear-config /absolute/repository/.shinaps/linear.json
|
|
25
|
+
```
|
|
26
|
+
|
|
15
27
|
## スキル
|
|
16
28
|
|
|
17
29
|
| 名前 | 用途 |
|
|
@@ -32,15 +44,15 @@ sharedで採用する `instructions.md` は共有YAMLの `references.specificati
|
|
|
32
44
|
|
|
33
45
|
コミット・PR・リリースは、利用者の依頼またはLinear進行で合意済みの継続許可に従う。[共通設定](plugins/shinaps-claude/references/linear/configuration.md)・[担当と工程](plugins/shinaps-claude/references/linear/workflow.md)・[終了と待機](plugins/shinaps-claude/references/linear/execution.md)を参照し、必要な前工程が揃えば再確認せずに進む。単独スキル利用にはLinear進行や新しいゴールを必須にしない。`autonomous-commit-review` の役割は `commit` に統合した。個人用の別AI呼び出し・ブラウザ管理・ゴール管理・動画制作はこのpluginに含めない。
|
|
34
46
|
|
|
35
|
-
`linear-execute` は初版では利用者本人の環境向けで、進行とAgent QAは会話側が担当する(Claude・Codexの入口ではCodex、Managedの入口では linear-execute を実行する Claude Code または Codex
|
|
47
|
+
`linear-execute` は初版では利用者本人の環境向けで、進行とAgent QAは会話側が担当する(Claude・Codexの入口ではCodex、Managedの入口では linear-execute を実行する Claude Code または Codex)。運用項目は明示必須で、未記載を既定値で補わない。実装の担当は作業先の `.shinaps/linear.json` の `implementation_skill` で選ぶ。`dev-claude` はauto/manualともCodexがローカル `claude -p` を起動し、同じsessionをresumeする。manualのレビューUIは `review_flow.tool` で選ぶ。[CLI手順](plugins/shinaps-claude/references/linear/claude-cli.md)に従い、CLIの既存権限・model・effort・pluginsを保持する。`dev-codex` を選ぶと、会話側はゴール・進行・Agent QAを担当し、Issueごとの別Codexタスクが実装・QA指摘の修正・許可されたコミットを行う。タスク作成・連絡には `codex_task` とツールが要求する明示依頼が必要。`dev-managed-cc` を選ぶと、Issueごとの Managed Agents セッションが実装し、進行役が差分を適用してQAとreview_flowに従ったコミット工程を行う。`managed_session:<USD>` と `dev_delegation` が必要で、Bridge は不要。どの入口でも `implementation_skill` は許可を増やさない。Bridge本体は同梱せず、導入済みのMCPとWebStormプラグインを使う。`SKILL.md` は担当ごとに両版で書き分け、共通の手順と書式は `references/linear/` に置く。`references/linear/` はClaude版を編集元としてCodex版とManaged Agents版へ同じ内容を複製し、テストで一致を確認する。
|
|
36
48
|
|
|
37
|
-
`review_flow: auto` はAIが自然な単位を決め、独立レビュー・QA後にstage・commitする。`manual` はAIが単位を計画し、単位外を安全にstashしてstage・提示し、人がレビュー・修正・commitする。両方のstage権限とautoのAI commit権限は利用者との明示合意に含まれ、未合意ファイルからは得ない。`path_policy_overrides` は `paths` と `review_flow` だけを持つ。全変更が一つのルールで覆われる単位だけ適用し、改名は旧新両パスを判定する。競合時は止める。旧 `human_code_review`・`commit_mode`・permissionsのstage/commit・パス別ai_commitは明示移行が必要。[共通設定](plugins/shinaps-claude/references/linear/configuration.md#パス別の方針)を参照する。
|
|
49
|
+
`review_flow: { "mode": "auto" }` はAIが自然な単位を決め、独立レビュー・QA後にstage・commitする。`review_flow: { "mode": "manual", "tool": "plasma" }`(toolは `webstorm` も可) はAIが単位を計画し、単位外を安全にstashしてstage・提示し、人がレビュー・修正・commitする。両方のstage権限とautoのAI commit権限は利用者との明示合意に含まれ、未合意ファイルからは得ない。`path_policy_overrides` は `paths` と `review_flow` だけを持つ。全変更が一つのルールで覆われる単位だけ適用し、改名は旧新両パスを判定する。競合時は止める。旧 `human_code_review`・`commit_mode`・permissionsのstage/commit・パス別ai_commitは明示移行が必要。[共通設定](plugins/shinaps-claude/references/linear/configuration.md#パス別の方針)を参照する。
|
|
38
50
|
|
|
39
|
-
0.29.0では旧 `document_only_changes: ai_commit` を廃止した。利用先では依存工程を止め、具体的なパス例外への移行または例外廃止を合意する。説明だけの変更の許可とは同値でないため自動変換しない。旧 `none`
|
|
51
|
+
0.29.0では旧 `document_only_changes: ai_commit` を廃止した。利用先では依存工程を止め、具体的なパス例外への移行または例外廃止を合意する。説明だけの変更の許可とは同値でないため自動変換しない。旧 `none` もJSONへ明示移行し、新規設定は `path_policy_overrides: []` にする。
|
|
40
52
|
|
|
41
53
|
`permissions` の `development_operations` を明示すると、既存アカウントのログイン・環境準備・依存導入・起動・テスト・QAを継続的に許可できる。コミット・公開・破壊的操作の許可や人レビューは別に扱う。
|
|
42
54
|
|
|
43
|
-
旧 `linear` の入口は廃止した。相談・Issue整理・設定変更は `linear-plan`、実行は `linear-execute`
|
|
55
|
+
旧 `linear` の入口は廃止した。相談・Issue整理・設定変更は `linear-plan`、実行は `linear-execute` を使う。設定は0.32.0からJSONへ移行する。実行範囲は毎回の依頼で確定し、バックログではブロッカー到達と報告を終了条件にできる。人レビュー・Human QA待ちは予定工程として待機する。
|
|
44
56
|
|
|
45
57
|
### dev の入口と体制
|
|
46
58
|
|
|
@@ -72,7 +84,7 @@ sharedで採用する `instructions.md` は共有YAMLの `references.specificati
|
|
|
72
84
|
|
|
73
85
|
## Codex
|
|
74
86
|
|
|
75
|
-
Node.js 22以上と、`plugin marketplace add` / `plugin add` に対応したCodex CLIを使う。Claude Codeのインストールは不要。ただし `linear-execute` の開発進行をClaude
|
|
87
|
+
Node.js 22以上と、`plugin marketplace add` / `plugin add` に対応したCodex CLIを使う。Claude Codeのインストールは不要。ただし `linear-execute` の開発進行をClaudeの入口で行う場合は、両modeともローカルClaude Codeが必要になる。Managedの入口で進める場合は `ant` CLI が必要になる。
|
|
76
88
|
|
|
77
89
|
導入・更新・削除:
|
|
78
90
|
|
|
@@ -249,7 +261,7 @@ npm pack --dry-run
|
|
|
249
261
|
|
|
250
262
|
### Codexでの人レビュー
|
|
251
263
|
|
|
252
|
-
manualでは対象checkout
|
|
264
|
+
manualでは対象checkoutと単位の差分を提示し、人のレビュー・修正・コミット完了を待ちます。実装runtimeによらず、実効 `review_flow.tool` でPlasmaまたはWebStormを選びます。Plasmaは別途導入するツールで、未導入時も人レビューを省略しません。変更の目的と確認点は会話に示し、人の完了通知後の実コミット照合と修正の検証は[共通手順](plugins/shinaps-codex/references/human-review.md)に従います。autoには人レビュー待ちを追加しません。
|
|
253
265
|
|
|
254
266
|
### CIとnpm自動公開
|
|
255
267
|
|
|
@@ -323,7 +335,7 @@ Claude版は全16エージェントが `opus / medium`。Codex版の役割定義
|
|
|
323
335
|
```text
|
|
324
336
|
.shinaps/
|
|
325
337
|
├── .gitignore # 保存方式に応じた除外・共有対象の例外
|
|
326
|
-
├── linear.
|
|
338
|
+
├── linear.json # linear のプロジェクト設定(任意)
|
|
327
339
|
├── linear/ # linear の補足(任意)
|
|
328
340
|
└── work/
|
|
329
341
|
├── {日時}-{作業名}/
|
package/dist/bin/skills.js
CHANGED
|
@@ -1,10 +1,23 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
+
import { readFile } from 'node:fs/promises';
|
|
3
|
+
import { join } from 'node:path';
|
|
4
|
+
import { packageRoot } from '../lib/layout.js';
|
|
5
|
+
import { validateLinearConfig } from '../lib/linear-config.js';
|
|
2
6
|
import { run } from '../lib/install.js';
|
|
3
7
|
import { autoUpdate } from '../lib/auto-update.js';
|
|
4
8
|
import { errorMessage } from '../lib/fs.js';
|
|
5
9
|
const [command, ...rest] = process.argv.slice(2);
|
|
6
10
|
try {
|
|
7
|
-
if (command === '
|
|
11
|
+
if (command === '--version') {
|
|
12
|
+
console.log(JSON.parse(await readFile(join(packageRoot, 'package.json'), 'utf8')).version);
|
|
13
|
+
}
|
|
14
|
+
else if (command === 'validate-linear-config') {
|
|
15
|
+
if (rest.length !== 1)
|
|
16
|
+
throw new Error('Usage: shinaps-skills validate-linear-config <file>');
|
|
17
|
+
await validateLinearConfig(rest[0]);
|
|
18
|
+
console.log('Linear configuration is valid (config_version: 1).');
|
|
19
|
+
}
|
|
20
|
+
else if (command === 'auto-update')
|
|
8
21
|
await autoUpdate(rest);
|
|
9
22
|
else
|
|
10
23
|
await run(process.argv.slice(2));
|
package/dist/lib/install.js
CHANGED
|
@@ -10,6 +10,7 @@ const actions = ['install', 'update', 'uninstall', 'recover'];
|
|
|
10
10
|
const isAction = (value) => actions.includes(value);
|
|
11
11
|
const usage = [
|
|
12
12
|
'Usage: shinaps-skills <install|update|uninstall|recover> codex',
|
|
13
|
+
' shinaps-skills validate-linear-config <file>',
|
|
13
14
|
' shinaps-skills auto-update <enable|disable|status|check> codex',
|
|
14
15
|
'Claude Code: /plugin marketplace add sh1n4ps/shinaps-skills',
|
|
15
16
|
' /plugin install shinaps@shinaps-skills',
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { readFile } from 'node:fs/promises';
|
|
2
|
+
import { join } from 'node:path';
|
|
3
|
+
import { Ajv } from 'ajv';
|
|
4
|
+
import { packageRoot } from './layout.js';
|
|
5
|
+
/** 明示されたファイルを同梱の契約で検証する。設定の探索・変更や外部取得は行わない。 */
|
|
6
|
+
export async function validateLinearConfig(path) {
|
|
7
|
+
const input = JSON.parse(await readFile(path, 'utf8'));
|
|
8
|
+
// 版の不一致は設定修正とskill更新で対処が異なるため、schema検証より先に案内する。
|
|
9
|
+
if (typeof input === 'object' && input !== null && !Array.isArray(input)) {
|
|
10
|
+
const version = 'config_version' in input ? input.config_version : undefined;
|
|
11
|
+
if (version === undefined || (Number.isInteger(version) && Number(version) < 1)) {
|
|
12
|
+
throw new Error('config_version is missing or old. Migrate with linear-plan to config_version: 1.');
|
|
13
|
+
}
|
|
14
|
+
if (Number.isInteger(version) && Number(version) > 1) {
|
|
15
|
+
throw new Error('Future config_version. Update the skill and matching CLI before continuing.');
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
const schema = JSON.parse(await readFile(join(packageRoot, 'plugins/shinaps-claude/references/linear/configuration.schema.json'), 'utf8'));
|
|
19
|
+
const validator = new Ajv({
|
|
20
|
+
allErrors: true,
|
|
21
|
+
coerceTypes: false,
|
|
22
|
+
useDefaults: false,
|
|
23
|
+
removeAdditional: false,
|
|
24
|
+
});
|
|
25
|
+
const validate = validator.compile(schema);
|
|
26
|
+
if (!validate(input)) {
|
|
27
|
+
const errors = validate.errors
|
|
28
|
+
?.map((error) => `${error.instancePath || '/'} ${error.message} ${JSON.stringify(error.params)}`)
|
|
29
|
+
.join('\n');
|
|
30
|
+
throw new Error(`Invalid Linear configuration. Correct the JSON to match configuration.schema.json:\n${errors}`);
|
|
31
|
+
}
|
|
32
|
+
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@shinaps/skills",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.32.0",
|
|
4
4
|
"description": "Install Shinaps AI workflows and custom agents for Codex",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|
|
@@ -39,5 +39,8 @@
|
|
|
39
39
|
"@biomejs/biome": "2.5.15",
|
|
40
40
|
"@types/node": "^26.6.4",
|
|
41
41
|
"typescript": "^7.0.2"
|
|
42
|
+
},
|
|
43
|
+
"dependencies": {
|
|
44
|
+
"ajv": "^8.20.0"
|
|
42
45
|
}
|
|
43
46
|
}
|
|
@@ -105,7 +105,7 @@ Issue・既存spec・調査記録・関連コード・検証方法を必要な
|
|
|
105
105
|
|
|
106
106
|
初期体制と変更理由、実際の担当・確認範囲、計画と実装後のレビュー回数、採否・修正、検証結果、未実施・未照合・未解決事項を報告する。
|
|
107
107
|
|
|
108
|
-
linear-executeから受けた作業は未コミットの差分と結果を進行役へ返す。devの完了はLocal Agent QAへの引き渡しであり、進行全体の終了ではない。[Linear共通設定](../linear/configuration.md)と[担当と工程](../linear/workflow.md)に従い、QA後のcommit工程の依頼を受け、autoはAIコミット、manualは人への提示準備を行う。Claudeのauto
|
|
108
|
+
linear-executeから受けた作業は未コミットの差分と結果を進行役へ返す。devの完了はLocal Agent QAへの引き渡しであり、進行全体の終了ではない。[Linear共通設定](../linear/configuration.md)と[担当と工程](../linear/workflow.md)に従い、QA後のcommit工程の依頼を受け、autoはAIコミット、manualは人への提示準備を行う。Claudeのauto/manual両modeは [Claude CLI](../linear/claude-cli.md) のresultへ報告し、同じsessionのresumeで質問・修正を受ける。manualの提示はprocess終了後に実効 `review_flow.tool` で行う。Codex・Managedはそれぞれの既存返却経路を使う。
|
|
109
109
|
|
|
110
110
|
単独のdevではコミットが許可されている場合だけ範囲とモードを `commit` へ渡す。許可がなければ未コミットで返し、形式的な許可確認を追加しない。PR・リリースも許可された範囲で各スキルへ渡す。単独devにLinear進行・新しいゴールを必須にしない。
|
|
111
111
|
|
|
@@ -2,22 +2,26 @@
|
|
|
2
2
|
|
|
3
3
|
manualで人がレビュー・修正・commitする場合に使う。review_flow・操作許可は、プロジェクト設定と今回の依頼に従う。この手順はそれらを変更しない。
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
実装runtimeによらず、実効 `review_flow.tool` が `plasma` ならPlasma、`webstorm` ならWebStormを使う。UIの指定がない場合は提示前に一問で確認する。設定のmanualでtoolが欠落していれば設定を修正する。CLIのprocess終了を確認してから提示し、人の操作と実装処理を並行しない。
|
|
6
6
|
|
|
7
7
|
## 対象の準備
|
|
8
8
|
|
|
9
9
|
レビュー対象のcheckoutの絶対パス、ブランチ、比較元のcommit、対象ファイルと完全な差分、検証結果を確定する。未追跡ファイルも対象に含める。stageは許可された範囲だけで行い、無関係な差分や既存のステージ境界を変更しない。対象差分と比較元は作業記録へ残し、後で承認対象と照合できるようにする。
|
|
10
10
|
|
|
11
|
-
##
|
|
11
|
+
## plasmaではPlasmaで開く
|
|
12
12
|
|
|
13
|
-
|
|
13
|
+
レビューを依頼する進行役の会話でPlasmaを開く。必要なツールが利用不能なら止め、runtimeから別UIを推測しない。
|
|
14
14
|
|
|
15
15
|
1. 利用可能なPlasmaの`open_workbench`ツールと現在の入力仕様を確認する。ファイルを開く`route`が使える場合は、対象checkoutの絶対パスとレビュー対象のファイルを指定する。現在の形式は`/open?project=ABSOLUTE_PATH&file=RELATIVE_PATH&line=START&endLine=END`で、各値をURLエンコードする。存在するファイルを使い、適切なファイルがない場合はプロジェクト選択画面から対象checkoutを選ぶ。
|
|
16
16
|
2. ファイルを開くことと差分を表示することを区別する。ファイル用routeに差分モードの未定義パラメーターを足さない。利用可能なUI操作ツールでPlasmaのGit画面を確認し、レビュー対象に合う比較を選ぶ。UI操作が使えない場合は、対象プロジェクト・比較方法・ファイル一覧を示して利用者に選択を依頼する。
|
|
17
17
|
3. 表示中のcheckout・比較元・対象範囲をGitで確定した差分と照合する。ステージ済みの単位なら`git diff --cached`を基準にする。作業ツリー全体や別ブランチの差分を、その単位の差分として提示しない。対象全体を表示できない場合は、未表示の範囲を明示し、完全な差分を確認できる方法を利用者と決める。
|
|
18
18
|
4. 会話に変更の目的、確認してほしい点、検証結果、対象単位を示し、レビュー・必要な修正・コミット完了を依頼する。Linear進行ではIssueも示す。Plasma内の注釈は指摘として扱い、画面を開いたことや操作の終了を承認とみなさない。
|
|
19
19
|
|
|
20
|
-
Plasma
|
|
20
|
+
Plasmaが未導入・起動失敗の場合は、その状態を伝えて止める。別UIを使う場合はtoolの変更を合意してから同じ対象を提示する。無断でインストールや設定変更を行わず、表示できていないレビューを完了扱いにしない。
|
|
21
|
+
|
|
22
|
+
## webstormではWebStormで開く
|
|
23
|
+
|
|
24
|
+
`webstorm <checkoutの絶対パス>` で対象を開く。checkout・branch・比較元を確認し、対象単位のstaged差分(`git diff --cached`)を提示する。単にファイルを開いたことを差分表示の完了と扱わない。会話に目的・確認点・検証結果・対象単位を示し、人のレビュー・修正・commit完了を待つ。ツールがない、起動できない、対象差分を確認できない場合は止め、無断fallbackしない。
|
|
21
25
|
|
|
22
26
|
## 人のレビュー・コミット完了後の照合
|
|
23
27
|
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
# ローカルClaude CLIによる実装
|
|
2
2
|
|
|
3
|
-
`dev-claude`
|
|
3
|
+
`dev-claude` はauto/manualとも、Codexが作業先でローカル `claude -p` を起動する。初回実装前に正確なcheckout・branch・HEAD・既存差分と `claude_cli` の許可(または今回の明示依頼)を確定する。CodexとManagedの既存経路は変更しない。
|
|
4
4
|
|
|
5
|
-
パス例外はコミット単位のreview_flow
|
|
5
|
+
パス例外はコミット単位のreview_flowを全体置換し、実装sessionを途中で切り替えない。manual単位ではstash・stageまで準備したCLIのprocess終了を確認し、進行役が同じcheckoutを実効 `review_flow.tool`(plasma / webstorm)で提示する。[人レビュー](../human-review.md)に従って人のレビュー・修正・commit完了を受け取り、単位差分・SHAと照合する。その後は変更後のHEADと差分を添えて同じCLI sessionをresumeする。人の操作中にCLIを並行実行しない。UI不足時は止め、別UIやBridgeへ無断で切り替えない。
|
|
6
6
|
|
|
7
7
|
## 起動と観測
|
|
8
8
|
|
|
@@ -32,6 +32,6 @@ resumeにも同じcwdと許可境界を指定し、外部で変化したHEAD・
|
|
|
32
32
|
|
|
33
33
|
## 操作権限
|
|
34
34
|
|
|
35
|
-
`review_flow: auto` はClaudeの `--permission-mode auto` を意味しない。非対話起動では `--permission-mode dontAsk` を明示し、既存設定がbypassでも継承しない。model・effort・pluginsは保持し、操作許可は既存の個別allow設定と今回の範囲に限定する。`--permission-prompts none` は対話できないpromptを拒否として返すためであり、許可を付与しない。permission_denialsがあれば操作と必要な権限を報告し、既存の明示許可が対象を満たすか確認する。満たす場合だけ必要なSkill/Agentや対象を限定した `--allowedTools` を明示し、同じsessionへ明示的に再依頼する。新しい権限が必要ならCodexが人へ確認する。`--allowedTools` を使う場合も対象・操作に限定し、無条件の `Bash(*)`、bypassPermissions、dangerously-skip-permissionsを使わない。拒否を隠すsilent retryをしない。会話上の許可はCLIの権限チェックを消さない。
|
|
35
|
+
`review_flow.mode: auto` はClaudeの `--permission-mode auto` を意味しない。非対話起動では `--permission-mode dontAsk` を明示し、既存設定がbypassでも継承しない。model・effort・pluginsは保持し、操作許可は既存の個別allow設定と今回の範囲に限定する。`--permission-prompts none` は対話できないpromptを拒否として返すためであり、許可を付与しない。permission_denialsがあれば操作と必要な権限を報告し、既存の明示許可が対象を満たすか確認する。満たす場合だけ必要なSkill/Agentや対象を限定した `--allowedTools` を明示し、同じsessionへ明示的に再依頼する。新しい権限が必要ならCodexが人へ確認する。`--allowedTools` を使う場合も対象・操作に限定し、無条件の `Bash(*)`、bypassPermissions、dangerously-skip-permissionsを使わない。拒否を隠すsilent retryをしない。会話上の許可はCLIの権限チェックを消さない。
|
|
36
36
|
|
|
37
37
|
CLI仕様の参照: [headless](https://code.claude.com/docs/en/headless)、[CLI reference](https://code.claude.com/docs/en/cli-reference)。利用版で必要なflagが非対応なら状態を報告して停止し、権限回避へ切り替えない。
|
|
@@ -1,13 +1,26 @@
|
|
|
1
1
|
# プロジェクト設定
|
|
2
2
|
|
|
3
|
-
設定は、運用上の決定と既存資料への参照を持つ。手順の全文は書かない。秘密値を保存しない。設定は
|
|
3
|
+
設定は、運用上の決定と既存資料への参照を持つ。手順の全文は書かない。秘密値を保存しない。設定は `config_version: 1` のJSONで、[JSON Schema](configuration.schema.json)を契約の正本とする。利用前に同梱CLIで構造を検証し、合意・参照先・工程の実在確認は各手順で行う。
|
|
4
|
+
|
|
5
|
+
## 検証CLIと契約版
|
|
6
|
+
|
|
7
|
+
利用中のskillとCLIの版を確認し、0.32.0のskillには同じ版のnpm CLIを導入する(`npm install -g @shinaps/skills@0.32.0`)。pluginだけにはCLIは含まれない。導入・更新が必要ならその権限を確認し、検証のたびに `npx latest` を取得しない。
|
|
8
|
+
|
|
9
|
+
```sh
|
|
10
|
+
shinaps-skills --version
|
|
11
|
+
shinaps-skills validate-linear-config /absolute/repository/.shinaps/linear.json
|
|
12
|
+
```
|
|
13
|
+
|
|
14
|
+
ローカル開発では `node bin/skills.ts validate-linear-config <file>` を使える。CLIは指定された一つのJSONを読み、同梱schemaで検証する。ネットワーク取得、正本探索、Git操作、入力変更、型変換、既定値の補完、未知キーの除去はしない。未知キーはroot・下位とも拒否する。成功は構造が有効なことだけを表し、許可の合意やLinearの状態・参照ファイルの存在は保証しない。
|
|
15
|
+
|
|
16
|
+
`config_version` が欠落または旧版なら移行、未来版ならskillとCLIの更新、不正型なら設定修正を案内する。JSONコメントは使わず、運用条件は補足へ書く。`$schema` は設定例の固定URLでエディタを補助し、CLIは外部のschemaを取得しない。
|
|
4
17
|
|
|
5
18
|
## 配置と保存方式
|
|
6
19
|
|
|
7
20
|
```text
|
|
8
21
|
.shinaps/
|
|
9
22
|
.gitignore # 保存方式に応じた除外と共有対象の例外
|
|
10
|
-
linear.
|
|
23
|
+
linear.json # 対象・工程・許可・終了地点・参照先・報告
|
|
11
24
|
linear/
|
|
12
25
|
instructions.md # 採用する場合だけ置くプロジェクト固有の指示
|
|
13
26
|
references/ # 必要な場合だけ分ける詳細資料
|
|
@@ -18,7 +31,7 @@
|
|
|
18
31
|
|
|
19
32
|
- `shared`: 設定と運用に必要な補足をGitで共有し、現在のcheckoutの設定を正本とする。
|
|
20
33
|
- `local`: メインの作業ツリーに設定と補足を保存し、Gitの対象外とする。
|
|
21
|
-
-
|
|
34
|
+
- `config_storage` と `path_policy_overrides` を含む必須項目の欠落は不正。旧設定は下の移行手順で明示的に移行する。
|
|
22
35
|
|
|
23
36
|
保存方式は共有範囲の選択であり、対象・操作許可・担当・終了地点・レビュー条件を変えない。必須でない空ファイルを作らない。補足にSKILL.mdや独立した呼び出し名を置かず、READMEなどが正本の内容は参照する。
|
|
24
37
|
|
|
@@ -26,17 +39,17 @@
|
|
|
26
39
|
|
|
27
40
|
開始時と再開時に次の順で正本を一つ決め、設定と補足を読み直す。「現在」は作業対象のcheckout、「メイン」は同じリポジトリの `git worktree list` の先頭を指す。同じcheckoutなら一つだけ読む。
|
|
28
41
|
|
|
29
|
-
1. 現在の `.shinaps/linear.yaml`
|
|
30
|
-
2. 現在が `local
|
|
31
|
-
3. メインが `local
|
|
42
|
+
1. 現在の `.shinaps/linear.json` を確認し、上記CLIで検証する。探索候補に旧 `.shinaps/linear.yaml` があれば移行対象として止める。JSON/YAMLの共存も移行未完了であり、一方を選んで続けない。読取不能・不正値なら止める。`shared` なら現在だけを採用し、メインの設定は調べない。
|
|
43
|
+
2. 現在が `local`、または設定が真に不在の場合だけ、メインを同じ検証と旧YAML確認で確認する。不在の場合は、そのcheckoutのindexとHEADに設定がないことも確かめる。どちらかにあれば削除・未展開による不備として止める。Git状態を確定できないときも、未設定とは扱わない。
|
|
44
|
+
3. メインが `local`ならメインだけを採用する。現在のコピーで上書き・統合しない。メインが `shared` なら現在との不整合または現在の共有設定不足として止める。メインが不正・読取不能なら止める。メインが不在の場合もindexとHEADを確認し、両方にないときだけ真の不在とする。現在が `local`なのにメインが不在なら正本不備で止める。両方が真に不在の場合だけ初期設定へ進む。
|
|
32
45
|
|
|
33
|
-
不在の確認には、そのcheckoutで `git ls-files -- .shinaps/linear.yaml`(index)と `git ls-tree HEAD -- .shinaps/linear.yaml`(HEAD)を使う。HEAD未作成なら、その状態が確定した場合に限りHEADに設定なしと扱う。追跡状態だけで保存方式を推測しない。未追跡の `shared` は準備中の設定として読めるが、共有済みとは報告しない。追跡済みの `local` は不整合として報告し、自動で追跡解除しない。
|
|
46
|
+
不在の確認には、そのcheckoutで `git ls-files -- .shinaps/linear.json .shinaps/linear.yaml`(index)と `git ls-tree HEAD -- .shinaps/linear.json .shinaps/linear.yaml`(HEAD)を使う。HEAD未作成なら、その状態が確定した場合に限りHEADに設定なしと扱う。追跡状態だけで保存方式を推測しない。未追跡の `shared` は準備中の設定として読めるが、共有済みとは報告しない。追跡済みの `local` は不整合として報告し、自動で追跡解除しない。
|
|
34
47
|
|
|
35
48
|
設定・`instructions.md`・必要な `references` は同じ正本から読む。補足の相対パスは正本のリポジトリルートを基準とし、コード・検証・配備などの操作対象の相対パスは現在の作業先を基準とする。共有設定の不足を別checkout・別端末のlocal設定や補足で補わない。`.shinaps/work/` の記録は証拠であり、設定を上書きしない。
|
|
36
49
|
|
|
37
|
-
- `shared` では、採用した補足を共有
|
|
50
|
+
- `shared` では、採用した補足を共有JSONの `references` に明示する。`instructions.md` は `references.specifications` に記載し、開始・再開時に必ず読む。存在するのに記載がなければ採用情報の不備として止め、無視や自動追記で続けない。
|
|
38
51
|
- その他の補足は内容に対応する既存の5分類へ記載し、担当する工程に必要なものを読む。参照された補足がない・読めない場合は未採用と解釈せず、依存する工程を止める。採用した `instructions.md` の欠落・読取不能は設定に依存する実行全体の開始・再開を止める。
|
|
39
|
-
- `local
|
|
52
|
+
- `local`では従来どおり、存在する `instructions.md` を開始・再開時に読み、その他の補足は工程に必要なものを読む。既存設定への参照の自動追記はしない。
|
|
40
53
|
- 採用していない任意の補足はなくてもよい。必要な補足を未採用扱いにして運用条件を減らさない。
|
|
41
54
|
- 補足ファイルは追加の条件と手順を表す。設定の決定(対象・許可・終了地点・工程の対応)と、人の完了・QAの証拠の要件は変えない。補足と設定が矛盾したら、設定に従って止め、どちらを直すか確認する。
|
|
42
55
|
- 不足や矛盾があれば、影響する工程の開始前に止めて一問ずつ確認する。影響しない工程は続ける。許可の追加やステータスの新設を推測で補わない。
|
|
@@ -47,10 +60,12 @@
|
|
|
47
60
|
|
|
48
61
|
## 項目
|
|
49
62
|
|
|
50
|
-
|
|
63
|
+
以下の項目は明示必須。`$schema` だけはエディタ補助として省略できる。省略・不正値を既定値で補わず、依存する工程を止めて設定を確認する。`null`・`none`・空の一覧は、以下で認めた箇所だけで「使用しない」を表す。
|
|
51
64
|
|
|
52
65
|
| キー | 内容 |
|
|
53
66
|
| --- | --- |
|
|
67
|
+
| `config_version` | 整数 `1`。パッケージ版とは独立した契約版 |
|
|
68
|
+
| `$schema` | 任意のエディタ補助。固定URLは下記。CLIはこのURLを取得しない |
|
|
54
69
|
| `config_storage` | `shared`(Git共有)または `local`(メインの作業ツリーだけに保存)。保存・読取規則は上記に従う |
|
|
55
70
|
| `target.workspace` | Linearのworkspace |
|
|
56
71
|
| `target.team` | チームのキー(例 `SHINAPS`) |
|
|
@@ -61,9 +76,9 @@
|
|
|
61
76
|
| `permissions` | 継続的に許可した操作の一覧(下の「許可」)。許可なしは `[]` |
|
|
62
77
|
| `references` | `specifications`・`validation`・`environments`・`deployment`・`publication` の5分類をすべて記載し、既存資料のパスまたはURLの一覧を指定する。該当資料なしは `[]` |
|
|
63
78
|
| `cycle_report` | Cycle報告の設定(下の「Cycle報告」)。報告を使わない場合は `null` |
|
|
64
|
-
| `implementation_skill` | Issueの実装・修正に使うruntimeの入口。担当数は固定せずメインが作業ごとに決める。`dev-claude
|
|
65
|
-
| `review_flow` | `auto`(AIが自然な単位を決め、独立レビュー・QA後にstage・commit)、`manual`(AIが単位を計画し、単位外を安全にstashしてstage・提示、人がレビュー・修正・commit) |
|
|
66
|
-
| `path_policy_overrides` | パス別に `review_flow` を上書きするルールの一覧。例外なしは `[]
|
|
79
|
+
| `implementation_skill` | Issueの実装・修正に使うruntimeの入口。担当数は固定せずメインが作業ごとに決める。`dev-claude`(auto/manualともCodexがローカルClaude CLIの同じsessionへ依頼する)、`dev-codex`(Issueごとの別Codexタスクがその入口を実行し、会話側は進行・Agent QAを担当する)、または `dev-managed-cc`(linear-executeを実行する会話が進行役になり、IssueごとのClaude Managed Agentsセッションのleadがその入口で実装する) |
|
|
80
|
+
| `review_flow` | `{ "mode": "auto" }`(AIが自然な単位を決め、独立レビュー・QA後にstage・commit)、`{ "mode": "manual", "tool": "plasma" }` または `{ "mode": "manual", "tool": "webstorm" }`(AIが単位を計画し、単位外を安全にstashしてstage・提示、人がレビュー・修正・commit) |
|
|
81
|
+
| `path_policy_overrides` | パス別に `review_flow` を上書きするルールの一覧。例外なしは `[]`(下の「パス別の方針」) |
|
|
67
82
|
|
|
68
83
|
- 利用者と合意した `review_flow` は両方とも対象のstageを許可し、`auto` だけAIのcommitも許可する。`manual` のcommitは人が行う。未合意の設定ファイルから許可を得ない。その場の明示指示が優先し、push・公開・履歴変更は別の許可に従う。
|
|
69
84
|
- `implementation_skill` が決めるのは、実装・修正の担当と実行方式だけである。`permissions`・`stop_after`・人レビュー・コミットの方針と、`dev_delegation`・worktreeの作成・別セッションの作成の許可を変えない。その場の明示的な指定は設定に優先する。既存の設定にキーがなくても、自動で書き加えない。担当と工程の対応は [workflow.md](workflow.md) の「担当と窓口」にある。
|
|
@@ -75,14 +90,16 @@
|
|
|
75
90
|
|
|
76
91
|
`path_policy_overrides` は、各予定コミットに入る全変更を対象に方針を適用する。Linear進行でも単独の `commit` でも同じ規則を使う。新規設定は `path_policy_overrides: []` とし、具体的なパスと上書き項目を利用者と合意した場合だけルールを追加する。
|
|
77
92
|
|
|
78
|
-
```
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
review_flow: auto
|
|
93
|
+
```json
|
|
94
|
+
{
|
|
95
|
+
"path_policy_overrides": [
|
|
96
|
+
{ "paths": ["docs/**", "README.md"], "review_flow": { "mode": "auto" } }
|
|
97
|
+
]
|
|
98
|
+
}
|
|
82
99
|
```
|
|
83
100
|
|
|
84
|
-
-
|
|
85
|
-
- パス別のflowもstageとcommit担当を上記のとおり決める。push・公開・終了地点・ツール権限・必要なQAは変更しない。実装開始時のClaude
|
|
101
|
+
- 上書きは `review_flow` オブジェクト全体を置換する。autoへ切り替える場合はtoolを引き継がない。各ルールは空でない `paths` と `review_flow` オブジェクト だけを必須とする。その他のキー、省略、不正値や構文は設定不備として依存工程を止める。
|
|
102
|
+
- パス別のflowもstageとcommit担当を上記のとおり決める。push・公開・終了地点・ツール権限・必要なQAは変更しない。実装開始時のClaude CLI sessionを保持し、パス例外では切り替えない([Claude CLI](claude-cli.md))。
|
|
86
103
|
- パス設定への合意は対象と工程の許可であり、変更内容に含まれる未合意仕様や権限拡張への承認ではない。内容や拡張子から例外許可を推定しない。
|
|
87
104
|
|
|
88
105
|
### パターンとコミット全体の照合
|
|
@@ -92,7 +109,7 @@ path_policy_overrides:
|
|
|
92
109
|
各予定コミットの全変更に現れる旧・新パスが、一つのルールのパターン一覧で覆われる場合だけ、そのルールをそのコミット全体へ適用できる。追加は新パス、削除は旧パス、改名・移動は両方を含め、modeだけの変更も対象にする。新パスだけの一覧や現在残っているファイルだけでは判定しない。
|
|
93
110
|
|
|
94
111
|
- コミット全体に適用できるルールがなければ、そのコミット全体を通常方針とする。複数ルールをファイル別・項目別に合成しない。
|
|
95
|
-
- コミット全体に適用できるルールが複数ある場合、`review_flow`
|
|
112
|
+
- コミット全体に適用できるルールが複数ある場合、`review_flow` のmodeとtoolが両方同じならその方針を採用し、適用した全ルールを記録する。同じmanualでもtoolが異なるなど、一つでも結果が異なれば依存工程を止めて競合の解消を求める。並び順やパターンの詳細度では優先しない。
|
|
96
113
|
- モードによらず自然な責務単位を先に決め、その予定コミットごとに判定する。同じ依頼に別の変更があっても、独立した範囲内コミットには例外を適用できる。例外取得だけを目的とした恣意的な分割はしない。依頼全体は網羅性と最終照合に使い、方針を固定する単位にはしない。
|
|
97
114
|
|
|
98
115
|
### 判定記録と変更時の扱い
|
|
@@ -103,9 +120,13 @@ path_policy_overrides:
|
|
|
103
120
|
|
|
104
121
|
### 旧設定の移行
|
|
105
122
|
|
|
106
|
-
|
|
123
|
+
0.32.0から `.shinaps/linear.yaml` とscalar `review_flow` は受け付けない。`linear-plan` で以下を行い、正本発見・検証・保存を完了してから再開する。CLIは移行しない。
|
|
107
124
|
|
|
108
|
-
|
|
125
|
+
1. 旧設定の正本と保存方式、既存の許可・終了地点・補足を確認する。JSONとYAMLが共存する場合は内容を比較し、移行未完了として扱う。
|
|
126
|
+
2. `config_version: 1`、必須の `config_storage` と `path_policy_overrides` を明記する。省略していた値も移行案で明示する。autoは `{ "mode": "auto" }`、manualは利用する `tool` を含むオブジェクトへ移す。既存のWebStorm等の合意は維持できるが、不明なUIをruntimeから推測しない。
|
|
127
|
+
3. Claudeの実装は両modeとも `claude_cli` を使う。旧Bridge経路からの権限変更は移行案へ明記し、許可なく追加しない。`bridge_request` 自体は有効で、他runtimeや別用途の既存許可を削除しない。
|
|
128
|
+
4. YAMLコメントの運用条件は `instructions.md` または対応する参照資料へ移し、sharedでは参照と共有対象に含める。旧 `human_code_review`・`commit_mode`・permissionsのstage/commit・`document_only_changes`・パス別ai_commitは除去する。旧noneは例外なしへの移行案、旧ai_commitは具体的パスへの移行または廃止を合意し、暗黙変換しない。
|
|
129
|
+
5. 合意済みのJSONを保存して検証し、旧YAMLを除き、ignore・参照・共有対象も更新する。追跡解除・stage・commitは既存の許可と安全手順に従う。新旧差分で許可・工程・保存方式・補足が保たれていることを確認する。
|
|
109
130
|
|
|
110
131
|
## 終了地点
|
|
111
132
|
|
|
@@ -127,8 +148,8 @@ path_policy_overrides:
|
|
|
127
148
|
| `issue_update` | 対象のteam・projectの中で、利用者が任せたIssue・Cycleの範囲に対する運用上の更新(本文・コメント・状態・依存・Linearへの添付、整理で必要になったIssueの作成・分割)と、利用者から任された目的の作業を着手前にIssueへ紐づけるための作成([issue.md](issue.md) の「着手前に作業をIssueへ紐づける」)。チーム設定の変更、未合意の範囲・期限の変更、Cycle外への進行、Issueの削除、外部への送信を含めない |
|
|
128
149
|
| `development_operations` | 任された対象の開発に必要な、既存アカウントへの通常のログイン、ローカル環境準備、プロジェクトの依存導入、開発サーバー・Simulatorの起動停止、ビルド・テスト・QA操作を継続的に許可する。下の範囲に従う |
|
|
129
150
|
| `codex_task` | 対象IssueごとのCodex実装タスクの新規作成・状態確認・実装や修正や許可済みコミットの依頼。アーカイブ、worktree作成、操作許可の追加、タスク側でのゴールや実装タスクの再作成は含めない。ツールの明示依頼要件も満たす。アーカイブの合意と手順は [完了後の整理](codex-task.md#完了後の整理) に従う |
|
|
130
|
-
| `claude_cli` | auto
|
|
131
|
-
| `bridge_request` | Bridge
|
|
151
|
+
| `claude_cli` | auto/manual共通のClaudeのローカルCLI起動、同じsessionの状態・結果取得、質問への回答・修正・許可済みコミットのresume。既存CLI設定と個別の操作権限を維持する([手順](claude-cli.md)) |
|
|
152
|
+
| `bridge_request` | Bridgeによる別会話との任意の進行の引き渡し・人の完了報告。報告は照合材料であり、CLIの実装経路・レビューUI・操作許可を変更しない([手順](workflow.md#bridgeでの任意の引き渡し・報告)) |
|
|
132
153
|
| `managed_session:<USD>` | 対象IssueごとにClaude Managed Agentsのセッションを作り、同じIssueのコミット前のQA修正には続けて使う(コミット後の修正は新しいセッションで行う。扱いは[Managedセッション](managed-session.md)の「QAと修正」に従う)。`<USD>` は1セッションの予算の上限で、正の整数のUSD(作成時にセントへ換算する)。値がない、または正の整数でない場合は設定不備として止める。含める操作: 作業先のコミット済みの内容(git bundle)と、あれば `~/.claude/CLAUDE.md` のFiles APIへのアップロード、上限内での予算の設定、一覧から名前で一件に特定したvaultの受け渡し、状態・イベント・出力の取得、回答と修正依頼の送信、取得した差分の作業先への適用と作業記録の展開。含めない操作: 上限を超える予算の引き上げ(その場で確認する)、セッションとファイルのアーカイブ・削除、定義のapply、vaultの作成・変更 |
|
|
133
154
|
| `push` | 対象Issueの作業ブランチの通常のpush |
|
|
134
155
|
| `pr_create` | 対象IssueのPRの作成と更新 |
|
|
@@ -138,7 +159,7 @@ path_policy_overrides:
|
|
|
138
159
|
| `dev_delegation` | `implementation_skill` で選んだdevの入口の中で、サブエージェントへ委託する。許可がない場合は、入口のメインが同じ観点を自分で確認し、独立確認とは報告しない。worktreeの作成は含まない |
|
|
139
160
|
| `evidence:<保存先>` | Linear以外の指定した保存先へQA素材を保存する(LinearのIssueへの添付は `issue_update` に含む) |
|
|
140
161
|
|
|
141
|
-
- 開発進行には `issue_update` が必要。Claude
|
|
162
|
+
- 開発進行には `issue_update` が必要。Claudeの入口はauto/manualとも `claude_cli` とローカルClaude CLIを使う。今回の明示依頼による同じ経路の許可も引き継ぐ。Codexの入口は `codex_task` とタスク操作ツール、Managedの入口は `managed_session:<USD>`・`dev_delegation` と認証済み `ant` CLIが必要。初期設定は `issue_update`・選んだ経路の許可・`dev_delegation` と `review_flow` を具体的に提案し、合意を得る。設定の存在だけでは許可を得ない。manualの提示UIは `review_flow.tool` で選び、利用不能なら止める。
|
|
142
163
|
- `development_operations` は、既存の認証手段と利用者が許可した既存アカウントを使い、対象の開発・検証環境と専用の検証データで行う操作に限る。本人の二要素認証・セキュリティキー・CAPTCHA等が必要なら具体的に依頼し、回避しない。ログイン成功を新しい権限への同意と扱わず、新規アカウント・OAuth権限の拡大・課金・新規クラウド資源・共有環境への破壊的変更・実利用者データの操作は含めない。秘密値をIssueや証拠へ記載しない。
|
|
143
164
|
- この包括許可は `stage`・`commit`・`push`・`pr_create`・`merge`・`deploy:*`・`publish:*`・外部への送信・履歴やデータの破壊的操作を含まない。テストや環境準備がこれらを伴うときも、stage・commitは合意済みflow、その他はそれぞれの許可が必要。人レビュー・Human QA・ツール側の承認条件を省略しない。`permissions` に明示された場合だけ適用し、既存設定に自動で追加しない。
|
|
144
165
|
- 一つの操作が別の操作を伴う場合は、伴う操作の許可も必要とする(マージで本番へ自動配備される場合は `merge` と `deploy:production`)。
|
|
@@ -163,44 +184,55 @@ path_policy_overrides:
|
|
|
163
184
|
|
|
164
185
|
shinaps-skills側の例。shinaps-aiも、自分のリポジトリの設定で同じprojectを指す。
|
|
165
186
|
|
|
166
|
-
```
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
187
|
+
```json
|
|
188
|
+
{
|
|
189
|
+
"$schema": "https://raw.githubusercontent.com/sh1n4ps/shinaps-skills/v0.32.0/plugins/shinaps-claude/references/linear/configuration.schema.json",
|
|
190
|
+
"config_version": 1,
|
|
191
|
+
"config_storage": "shared",
|
|
192
|
+
"target": {
|
|
193
|
+
"workspace": "shinaps",
|
|
194
|
+
"team": "SHINAPS",
|
|
195
|
+
"project": "https://linear.app/shinaps/project/shinaps-ai-76ed13db8314"
|
|
196
|
+
},
|
|
197
|
+
"team_settings": "existing_only",
|
|
198
|
+
"statuses": {
|
|
199
|
+
"todo": "Todo",
|
|
200
|
+
"refinement": "In Progress",
|
|
201
|
+
"ready": "Todo",
|
|
202
|
+
"coding": "In Progress",
|
|
203
|
+
"local_agent_qa": "In Progress",
|
|
204
|
+
"code_review": "In Review",
|
|
205
|
+
"post_commit": "In Review",
|
|
206
|
+
"human_input": "In Progress",
|
|
207
|
+
"done": "Done"
|
|
208
|
+
},
|
|
209
|
+
"stop_after": "pre_push_qa",
|
|
210
|
+
"implementation_skill": "dev-claude",
|
|
211
|
+
"review_flow": {
|
|
212
|
+
"mode": "manual",
|
|
213
|
+
"tool": "webstorm"
|
|
214
|
+
},
|
|
215
|
+
"path_policy_overrides": [],
|
|
216
|
+
"cycle_report": null,
|
|
217
|
+
"permissions": [
|
|
218
|
+
"development_operations",
|
|
219
|
+
"issue_update",
|
|
220
|
+
"claude_cli",
|
|
221
|
+
"dev_delegation"
|
|
222
|
+
],
|
|
223
|
+
"references": {
|
|
224
|
+
"specifications": [
|
|
225
|
+
"README.md",
|
|
226
|
+
".shinaps/linear/instructions.md"
|
|
227
|
+
],
|
|
228
|
+
"environments": [],
|
|
229
|
+
"deployment": [],
|
|
230
|
+
"validation": [
|
|
231
|
+
".shinaps/linear/references/qa.md"
|
|
232
|
+
],
|
|
233
|
+
"publication": []
|
|
234
|
+
}
|
|
235
|
+
}
|
|
204
236
|
```
|
|
205
237
|
|
|
206
238
|
この例では `instructions.md` と `qa.md` を採用して一緒に共有する。実際に必要な補足だけを選び、例に合わせた空ファイルは作らない。
|
|
@@ -217,7 +249,7 @@ Claudeもこの手順で初期設定を行える。合意した設定の保存
|
|
|
217
249
|
2. 作業先リポジトリのAGENTS.md・CLAUDE.md・README・CI・検証や配備のスクリプトを読み、`references` の候補を決める。
|
|
218
250
|
3. 設定案を一つ作る。チーム設定を管理できる場合だけ、FamilyStayを基にした工程の分離([workflow.md](workflow.md) の工程表に対応するステータス)を変更案として示す。利用者のプロジェクトらしいという推測で `manage_on_setup` にしない。
|
|
219
251
|
4. 既存の情報で決まらない運用上の決定(`config_storage`、`stop_after`、`permissions`、`review_flow`、`team_settings`、Cycle報告、`implementation_skill`)だけを一問ずつ確認する。終了地点は上の一覧から選んでもらう。パス別の例外が必要な場合は、具体的な対象パターンと上書き項目、通常設定からの変更を示して合意する。例外を使わない新規設定には `path_policy_overrides: []` を記載する。旧設定の移行は上の手順に従う。
|
|
220
|
-
5. 合意した方式の正本へ、下の保存手順に従って保存する。sharedでは採用する補足の `references` と共有対象を照合し、別checkout
|
|
252
|
+
5. 合意した方式の正本へ、下の保存手順に従って保存する。sharedでは採用する補足の `references` と共有対象を照合し、別checkoutでも同じ条件を読めるようにする。同梱CLIでJSONを検証し、正本と補足を読み直して確認する。
|
|
221
253
|
6. Linearのチーム設定の変更は、設定の保存とは別に扱う。対象チームと変更差分(追加・改名するステータスと順序)を示し、合意を得てから反映して読み戻す。反映後に `statuses` を実物に合わせて確定する。
|
|
222
254
|
|
|
223
255
|
## 設定変更
|
|
@@ -236,12 +268,12 @@ localでは設定と補足をメインへ保存し、Git対象外にする。新
|
|
|
236
268
|
*
|
|
237
269
|
```
|
|
238
270
|
|
|
239
|
-
sharedでは `.shinaps/.gitignore` 自身、`linear.
|
|
271
|
+
sharedでは `.shinaps/.gitignore` 自身、`linear.json`、採用した補足だけを共有する。新規の例は次のとおり。`qa.md` は採用した個別資料の例であり、不要なら例外も作らない。
|
|
240
272
|
|
|
241
273
|
```gitignore
|
|
242
274
|
*
|
|
243
275
|
!/.gitignore
|
|
244
|
-
!/linear.
|
|
276
|
+
!/linear.json
|
|
245
277
|
!/linear/
|
|
246
278
|
!/linear/instructions.md
|
|
247
279
|
!/linear/references/
|
|
@@ -255,7 +287,7 @@ sharedでは `.shinaps/.gitignore` 自身、`linear.yaml`、採用した補足
|
|
|
255
287
|
|
|
256
288
|
`git check-ignore --no-index -v <対象パス>` で有効な除外規則と例外を確認し、`git ls-files -- <対象パス>` で追跡状態、`git status --short --untracked-files=all` で実際の変更を確認する。ignoreだけでは追跡済みファイルは対象外にならない。追跡解除は自動で行わず、対象・影響と許可を確認する。
|
|
257
289
|
|
|
258
|
-
必要補足は
|
|
290
|
+
必要補足はJSONと一緒に共有するか、同じ内容を確認できる共有済み資料への参照に置き換える。元のPCだけに必要補足が残る状態は共有未完了。URLとアクセス条件も別PCで同じ運用を確認できるものにする。ignore例外やファイルの存在だけで採用の有無を決めず、共有JSONの `references` と実際の共有対象を揃える。cloneやworktreeでも、参照された補足の欠落を未採用と解釈しない。
|
|
259
291
|
|
|
260
292
|
作業記録の初期化と保全は [作業記録](../work-records.md) に従う。
|
|
261
293
|
|