@aramassa/ai-rules 0.8.1 → 0.9.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/artifact/agents/agent-creation.agent.md +2 -2
- package/artifact/agents/mcpdocs-git-config-generator.agent.md +302 -0
- package/artifact/instructions/package-management.md +29 -0
- package/artifact/instructions/rules/development/cli-design.md +286 -0
- package/artifact/instructions/rules/development/npm-package-rollup-build.md +883 -0
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +136 -18
- package/package.json +2 -1
- package/presets/README.md +268 -14
- package/presets/agents.yaml +5 -1
- package/presets/basic.yaml +37 -0
- package/presets/github-workflow.yaml +36 -0
- package/presets/mcp-docs-collector.yaml +17 -0
- package/presets/monorepo/typescript.yaml +12 -0
- package/presets/openai.yaml +17 -0
- package/presets/python.yaml +25 -0
- package/presets/test-best-practices.yaml +46 -0
- package/presets/typescript.yaml +27 -0
package/dist/cli.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";
|
|
1
|
+
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AAssBA;;GAEG;AACH,wBAAsB,wBAAwB,CAC5C,GAAG,EAAE,MAAM,EACX,OAAO,GAAE,MAAY,GACpB,OAAO,CAAC,MAAM,EAAE,CAAC,CA4BnB"}
|
package/dist/cli.js
CHANGED
|
@@ -9611,6 +9611,94 @@ const {
|
|
|
9611
9611
|
Help,
|
|
9612
9612
|
} = commander;
|
|
9613
9613
|
|
|
9614
|
+
var picocolors = {exports: {}};
|
|
9615
|
+
|
|
9616
|
+
var hasRequiredPicocolors;
|
|
9617
|
+
|
|
9618
|
+
function requirePicocolors () {
|
|
9619
|
+
if (hasRequiredPicocolors) return picocolors.exports;
|
|
9620
|
+
hasRequiredPicocolors = 1;
|
|
9621
|
+
let p = process || {}, argv = p.argv || [], env = p.env || {};
|
|
9622
|
+
let isColorSupported =
|
|
9623
|
+
!(!!env.NO_COLOR || argv.includes("--no-color")) &&
|
|
9624
|
+
(!!env.FORCE_COLOR || argv.includes("--color") || p.platform === "win32" || ((p.stdout || {}).isTTY && env.TERM !== "dumb") || !!env.CI);
|
|
9625
|
+
|
|
9626
|
+
let formatter = (open, close, replace = open) =>
|
|
9627
|
+
input => {
|
|
9628
|
+
let string = "" + input, index = string.indexOf(close, open.length);
|
|
9629
|
+
return ~index ? open + replaceClose(string, close, replace, index) + close : open + string + close
|
|
9630
|
+
};
|
|
9631
|
+
|
|
9632
|
+
let replaceClose = (string, close, replace, index) => {
|
|
9633
|
+
let result = "", cursor = 0;
|
|
9634
|
+
do {
|
|
9635
|
+
result += string.substring(cursor, index) + replace;
|
|
9636
|
+
cursor = index + close.length;
|
|
9637
|
+
index = string.indexOf(close, cursor);
|
|
9638
|
+
} while (~index)
|
|
9639
|
+
return result + string.substring(cursor)
|
|
9640
|
+
};
|
|
9641
|
+
|
|
9642
|
+
let createColors = (enabled = isColorSupported) => {
|
|
9643
|
+
let f = enabled ? formatter : () => String;
|
|
9644
|
+
return {
|
|
9645
|
+
isColorSupported: enabled,
|
|
9646
|
+
reset: f("\x1b[0m", "\x1b[0m"),
|
|
9647
|
+
bold: f("\x1b[1m", "\x1b[22m", "\x1b[22m\x1b[1m"),
|
|
9648
|
+
dim: f("\x1b[2m", "\x1b[22m", "\x1b[22m\x1b[2m"),
|
|
9649
|
+
italic: f("\x1b[3m", "\x1b[23m"),
|
|
9650
|
+
underline: f("\x1b[4m", "\x1b[24m"),
|
|
9651
|
+
inverse: f("\x1b[7m", "\x1b[27m"),
|
|
9652
|
+
hidden: f("\x1b[8m", "\x1b[28m"),
|
|
9653
|
+
strikethrough: f("\x1b[9m", "\x1b[29m"),
|
|
9654
|
+
|
|
9655
|
+
black: f("\x1b[30m", "\x1b[39m"),
|
|
9656
|
+
red: f("\x1b[31m", "\x1b[39m"),
|
|
9657
|
+
green: f("\x1b[32m", "\x1b[39m"),
|
|
9658
|
+
yellow: f("\x1b[33m", "\x1b[39m"),
|
|
9659
|
+
blue: f("\x1b[34m", "\x1b[39m"),
|
|
9660
|
+
magenta: f("\x1b[35m", "\x1b[39m"),
|
|
9661
|
+
cyan: f("\x1b[36m", "\x1b[39m"),
|
|
9662
|
+
white: f("\x1b[37m", "\x1b[39m"),
|
|
9663
|
+
gray: f("\x1b[90m", "\x1b[39m"),
|
|
9664
|
+
|
|
9665
|
+
bgBlack: f("\x1b[40m", "\x1b[49m"),
|
|
9666
|
+
bgRed: f("\x1b[41m", "\x1b[49m"),
|
|
9667
|
+
bgGreen: f("\x1b[42m", "\x1b[49m"),
|
|
9668
|
+
bgYellow: f("\x1b[43m", "\x1b[49m"),
|
|
9669
|
+
bgBlue: f("\x1b[44m", "\x1b[49m"),
|
|
9670
|
+
bgMagenta: f("\x1b[45m", "\x1b[49m"),
|
|
9671
|
+
bgCyan: f("\x1b[46m", "\x1b[49m"),
|
|
9672
|
+
bgWhite: f("\x1b[47m", "\x1b[49m"),
|
|
9673
|
+
|
|
9674
|
+
blackBright: f("\x1b[90m", "\x1b[39m"),
|
|
9675
|
+
redBright: f("\x1b[91m", "\x1b[39m"),
|
|
9676
|
+
greenBright: f("\x1b[92m", "\x1b[39m"),
|
|
9677
|
+
yellowBright: f("\x1b[93m", "\x1b[39m"),
|
|
9678
|
+
blueBright: f("\x1b[94m", "\x1b[39m"),
|
|
9679
|
+
magentaBright: f("\x1b[95m", "\x1b[39m"),
|
|
9680
|
+
cyanBright: f("\x1b[96m", "\x1b[39m"),
|
|
9681
|
+
whiteBright: f("\x1b[97m", "\x1b[39m"),
|
|
9682
|
+
|
|
9683
|
+
bgBlackBright: f("\x1b[100m", "\x1b[49m"),
|
|
9684
|
+
bgRedBright: f("\x1b[101m", "\x1b[49m"),
|
|
9685
|
+
bgGreenBright: f("\x1b[102m", "\x1b[49m"),
|
|
9686
|
+
bgYellowBright: f("\x1b[103m", "\x1b[49m"),
|
|
9687
|
+
bgBlueBright: f("\x1b[104m", "\x1b[49m"),
|
|
9688
|
+
bgMagentaBright: f("\x1b[105m", "\x1b[49m"),
|
|
9689
|
+
bgCyanBright: f("\x1b[106m", "\x1b[49m"),
|
|
9690
|
+
bgWhiteBright: f("\x1b[107m", "\x1b[49m"),
|
|
9691
|
+
}
|
|
9692
|
+
};
|
|
9693
|
+
|
|
9694
|
+
picocolors.exports = createColors();
|
|
9695
|
+
picocolors.exports.createColors = createColors;
|
|
9696
|
+
return picocolors.exports;
|
|
9697
|
+
}
|
|
9698
|
+
|
|
9699
|
+
var picocolorsExports = /*@__PURE__*/ requirePicocolors();
|
|
9700
|
+
var pc = /*@__PURE__*/getDefaultExportFromCjs(picocolorsExports);
|
|
9701
|
+
|
|
9614
9702
|
var WriteMode;
|
|
9615
9703
|
(function (WriteMode) {
|
|
9616
9704
|
WriteMode["APPEND"] = "append";
|
|
@@ -18427,8 +18515,9 @@ function setupProgram() {
|
|
|
18427
18515
|
program
|
|
18428
18516
|
.command("presets")
|
|
18429
18517
|
.description("List available package presets")
|
|
18430
|
-
.
|
|
18431
|
-
|
|
18518
|
+
.option("-d, --detail", "Show detailed information about presets")
|
|
18519
|
+
.action(async (options) => {
|
|
18520
|
+
await listPresets(options.detail);
|
|
18432
18521
|
});
|
|
18433
18522
|
return program;
|
|
18434
18523
|
}
|
|
@@ -18461,27 +18550,47 @@ async function findYamlFilesRecursively(dir, baseDir = dir) {
|
|
|
18461
18550
|
return yamlFiles;
|
|
18462
18551
|
}
|
|
18463
18552
|
/**
|
|
18464
|
-
* Extracts description from a preset YAML file
|
|
18465
|
-
* Reads the top-level 'description' field from the preset
|
|
18553
|
+
* Extracts description and recipe output files from a preset YAML file
|
|
18466
18554
|
*/
|
|
18467
|
-
async function
|
|
18555
|
+
async function extractPresetInfo(presetPath) {
|
|
18556
|
+
const result = {
|
|
18557
|
+
description: undefined,
|
|
18558
|
+
outputFiles: [],
|
|
18559
|
+
};
|
|
18468
18560
|
try {
|
|
18469
18561
|
const content = await fs.readFile(presetPath, "utf-8");
|
|
18470
18562
|
const data = YAML.parse(content);
|
|
18471
|
-
//
|
|
18563
|
+
// Extract description field if it exists
|
|
18472
18564
|
if (data?.description && typeof data.description === "string") {
|
|
18473
|
-
|
|
18565
|
+
result.description = data.description.trim();
|
|
18566
|
+
}
|
|
18567
|
+
// Extract output files from recipe items
|
|
18568
|
+
if (Array.isArray(data?.recipe)) {
|
|
18569
|
+
for (const item of data.recipe) {
|
|
18570
|
+
// Skip import items as they don't have output files directly
|
|
18571
|
+
if (item.import) {
|
|
18572
|
+
continue;
|
|
18573
|
+
}
|
|
18574
|
+
// Extract 'out' field if present
|
|
18575
|
+
if (item.out && typeof item.out === "string") {
|
|
18576
|
+
// Get just the filename from the path
|
|
18577
|
+
const filename = path.basename(item.out);
|
|
18578
|
+
if (!result.outputFiles.includes(filename)) {
|
|
18579
|
+
result.outputFiles.push(filename);
|
|
18580
|
+
}
|
|
18581
|
+
}
|
|
18582
|
+
}
|
|
18474
18583
|
}
|
|
18475
18584
|
}
|
|
18476
18585
|
catch {
|
|
18477
18586
|
// Ignore file reading or parsing errors
|
|
18478
18587
|
}
|
|
18479
|
-
return
|
|
18588
|
+
return result;
|
|
18480
18589
|
}
|
|
18481
18590
|
/**
|
|
18482
18591
|
* Lists available package presets with descriptions
|
|
18483
18592
|
*/
|
|
18484
|
-
async function listPresets() {
|
|
18593
|
+
async function listPresets(showDetail = false) {
|
|
18485
18594
|
const packageRoot = findPackageRoot();
|
|
18486
18595
|
const presetsDir = path.join(packageRoot, "presets");
|
|
18487
18596
|
try {
|
|
@@ -18496,18 +18605,19 @@ async function listPresets() {
|
|
|
18496
18605
|
for (const file of yamlFiles) {
|
|
18497
18606
|
const presetName = file.replace(/\.(yaml|yml)$/, "");
|
|
18498
18607
|
const presetPath = path.join(presetsDir, file);
|
|
18499
|
-
const
|
|
18608
|
+
const presetInfo = await extractPresetInfo(presetPath);
|
|
18609
|
+
// Print preset name in cyan color
|
|
18500
18610
|
// eslint-disable-next-line no-console
|
|
18501
|
-
console.log(` :${presetName}`);
|
|
18502
|
-
if (description) {
|
|
18503
|
-
// Indent and wrap description text
|
|
18611
|
+
console.log(pc.cyan(` :${presetName}`));
|
|
18612
|
+
if (presetInfo.description) {
|
|
18613
|
+
// Indent and wrap description text in dim color
|
|
18504
18614
|
const maxWidth = 70;
|
|
18505
|
-
const words = description.split(" ");
|
|
18615
|
+
const words = presetInfo.description.split(" ");
|
|
18506
18616
|
let currentLine = " ";
|
|
18507
18617
|
words.forEach((word) => {
|
|
18508
18618
|
if (currentLine.length + word.length + 1 > maxWidth) {
|
|
18509
18619
|
// eslint-disable-next-line no-console
|
|
18510
|
-
console.log(currentLine);
|
|
18620
|
+
console.log(pc.dim(currentLine));
|
|
18511
18621
|
currentLine = " " + word;
|
|
18512
18622
|
}
|
|
18513
18623
|
else {
|
|
@@ -18516,11 +18626,19 @@ async function listPresets() {
|
|
|
18516
18626
|
});
|
|
18517
18627
|
if (currentLine.trim()) {
|
|
18518
18628
|
// eslint-disable-next-line no-console
|
|
18519
|
-
console.log(currentLine);
|
|
18629
|
+
console.log(pc.dim(currentLine));
|
|
18520
18630
|
}
|
|
18521
|
-
// eslint-disable-next-line no-console
|
|
18522
|
-
console.log("");
|
|
18523
18631
|
}
|
|
18632
|
+
// Show output files if --detail flag is provided
|
|
18633
|
+
if (showDetail && presetInfo.outputFiles.length > 0) {
|
|
18634
|
+
for (const outputFile of presetInfo.outputFiles) {
|
|
18635
|
+
// eslint-disable-next-line no-console
|
|
18636
|
+
console.log(pc.gray(` → ${outputFile}`));
|
|
18637
|
+
}
|
|
18638
|
+
}
|
|
18639
|
+
// Add blank line between presets
|
|
18640
|
+
// eslint-disable-next-line no-console
|
|
18641
|
+
console.log("");
|
|
18524
18642
|
}
|
|
18525
18643
|
}
|
|
18526
18644
|
catch (error) {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@aramassa/ai-rules",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.9.2",
|
|
4
4
|
"description": "This repository collects guidelines and instructions for developing AI agents. It contains documents covering communication rules, coding standards, testing strategies, and general operational practices.",
|
|
5
5
|
"workspaces": [
|
|
6
6
|
"packages/extract",
|
|
@@ -70,6 +70,7 @@
|
|
|
70
70
|
"ajv-formats": "^3.0.1",
|
|
71
71
|
"commander": "^14.0.0",
|
|
72
72
|
"glob": "^11.0.3",
|
|
73
|
+
"picocolors": "^1.1.1",
|
|
73
74
|
"yaml": "^2.8.0"
|
|
74
75
|
}
|
|
75
76
|
}
|
package/presets/README.md
CHANGED
|
@@ -4,14 +4,21 @@
|
|
|
4
4
|
|
|
5
5
|
## 利用可能なプリセット
|
|
6
6
|
|
|
7
|
-
###
|
|
7
|
+
### Core Presets
|
|
8
|
+
|
|
9
|
+
#### `basic.yaml`
|
|
8
10
|
|
|
9
11
|
すべてのプロジェクトタイプで共通して必要となる基本的なinstruction構成です。
|
|
10
12
|
|
|
11
13
|
**含まれる内容:**
|
|
12
14
|
|
|
13
15
|
- Communication Rules
|
|
14
|
-
-
|
|
16
|
+
- Package Management Rules
|
|
17
|
+
- CLI Environment File Support Guidelines
|
|
18
|
+
- Git Branch Naming Rules
|
|
19
|
+
- Task Retrospective
|
|
20
|
+
- Skeleton Structure Management
|
|
21
|
+
- Plan Folder Organization
|
|
15
22
|
|
|
16
23
|
**使用方法:**
|
|
17
24
|
|
|
@@ -23,15 +30,21 @@ npx @aramassa/ai-rules extract --recipe presets/basic.yaml --src artifact/instru
|
|
|
23
30
|
|
|
24
31
|
- すべてのプロジェクトタイプ(言語・環境に依存しない共通ルール)
|
|
25
32
|
|
|
26
|
-
###
|
|
33
|
+
### Language-Specific Presets
|
|
34
|
+
|
|
35
|
+
#### `typescript.yaml`
|
|
27
36
|
|
|
28
37
|
TypeScriptプロジェクト向けの標準的なinstruction構成です。
|
|
29
38
|
|
|
30
39
|
**含まれる内容:**
|
|
31
40
|
|
|
32
|
-
- AI Document Generation
|
|
33
41
|
- TypeScript Coding Rules
|
|
42
|
+
- Node.js Coding Rules
|
|
34
43
|
- TypeScript / Vitest
|
|
44
|
+
- Node.js Test Restrictions
|
|
45
|
+
- Test Timeout Configuration
|
|
46
|
+
- Code Quality Tools
|
|
47
|
+
- `:basic` と `:docs-ai` をインポート
|
|
35
48
|
|
|
36
49
|
**使用方法:**
|
|
37
50
|
|
|
@@ -39,6 +52,32 @@ TypeScriptプロジェクト向けの標準的なinstruction構成です。
|
|
|
39
52
|
npx @aramassa/ai-rules extract --recipe presets/typescript.yaml --src artifact/instructions
|
|
40
53
|
```
|
|
41
54
|
|
|
55
|
+
**対象プロジェクト:**
|
|
56
|
+
|
|
57
|
+
- TypeScript/Node.js プロジェクト
|
|
58
|
+
- モダンな JavaScript/TypeScript 開発環境
|
|
59
|
+
|
|
60
|
+
#### `python.yaml`
|
|
61
|
+
|
|
62
|
+
Python プロジェクト向けの標準的な instruction 構成です。
|
|
63
|
+
|
|
64
|
+
**含まれる内容:**
|
|
65
|
+
|
|
66
|
+
- Python CLI Implementation Guidelines
|
|
67
|
+
- Python Workspace Management (uv)
|
|
68
|
+
- `:basic` と `:docs-ai` をインポート
|
|
69
|
+
|
|
70
|
+
**使用方法:**
|
|
71
|
+
|
|
72
|
+
```bash
|
|
73
|
+
npx @aramassa/ai-rules extract --recipe presets/python.yaml --src artifact/instructions
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
**対象プロジェクト:**
|
|
77
|
+
|
|
78
|
+
- Python CLI アプリケーション
|
|
79
|
+
- Python ワークスペース管理 (uv使用)
|
|
80
|
+
|
|
42
81
|
### `infrastructure-ansible.yaml`
|
|
43
82
|
|
|
44
83
|
インフラストラクチャ管理とAnsibleを使用したプロジェクト向けの設定です。
|
|
@@ -87,15 +126,78 @@ npx @aramassa/ai-rules extract --recipe presets/chrome-extension.yaml --src arti
|
|
|
87
126
|
- Webブラウザの機能拡張・自動化プロジェクト
|
|
88
127
|
- Service Worker、Content Scripts、Popup UIを含む複合アプリケーション
|
|
89
128
|
|
|
90
|
-
###
|
|
129
|
+
### Monorepo Presets
|
|
130
|
+
|
|
131
|
+
#### `monorepo/nodejs.yaml`
|
|
132
|
+
|
|
133
|
+
Node.js モノレポ環境でのワークスペース管理ルールです。
|
|
134
|
+
|
|
135
|
+
**含まれる内容:**
|
|
136
|
+
|
|
137
|
+
- Node.js Workspace Management Rules
|
|
138
|
+
|
|
139
|
+
**使用方法:**
|
|
140
|
+
|
|
141
|
+
```bash
|
|
142
|
+
npx @aramassa/ai-rules extract --recipe presets/monorepo/nodejs.yaml --src artifact/instructions
|
|
143
|
+
```
|
|
144
|
+
|
|
145
|
+
**対象プロジェクト:**
|
|
146
|
+
|
|
147
|
+
- npm workspaces を使用するモノレポプロジェクト
|
|
148
|
+
- パッケージ管理が複雑なプロジェクト
|
|
149
|
+
|
|
150
|
+
#### `monorepo/typescript.yaml`
|
|
151
|
+
|
|
152
|
+
TypeScript モノレポ環境での Project References 管理ルールです。
|
|
153
|
+
|
|
154
|
+
**含まれる内容:**
|
|
155
|
+
|
|
156
|
+
- TypeScript Workspace Management Rules
|
|
157
|
+
|
|
158
|
+
**使用方法:**
|
|
159
|
+
|
|
160
|
+
```bash
|
|
161
|
+
npx @aramassa/ai-rules extract --recipe presets/monorepo/typescript.yaml --src artifact/instructions
|
|
162
|
+
```
|
|
163
|
+
|
|
164
|
+
**対象プロジェクト:**
|
|
165
|
+
|
|
166
|
+
- TypeScript Project References を使用するモノレポ
|
|
167
|
+
- 複数パッケージ間の型共有が必要なプロジェクト
|
|
168
|
+
|
|
169
|
+
### Agent & Chatmode Presets
|
|
170
|
+
|
|
171
|
+
#### `agents.yaml`
|
|
172
|
+
|
|
173
|
+
GitHub Copilot custom agent 定義を統合するための設定です。
|
|
174
|
+
|
|
175
|
+
**含まれる内容:**
|
|
176
|
+
|
|
177
|
+
- Agent Creation Assistant
|
|
178
|
+
- E2E Test Executor
|
|
179
|
+
- Technical Writer
|
|
180
|
+
|
|
181
|
+
**使用方法:**
|
|
182
|
+
|
|
183
|
+
```bash
|
|
184
|
+
npx @aramassa/ai-rules extract --recipe presets/agents.yaml --src artifact/agents
|
|
185
|
+
```
|
|
186
|
+
|
|
187
|
+
**対象プロジェクト:**
|
|
188
|
+
|
|
189
|
+
- GitHub Copilot を使用する開発プロジェクト
|
|
190
|
+
- カスタム AI エージェントを活用したいプロジェクト
|
|
191
|
+
|
|
192
|
+
#### `chatmodes.yaml`
|
|
91
193
|
|
|
92
194
|
AI対話支援機能(chatmodes)をプロジェクトに統合するための設定です。
|
|
93
195
|
|
|
94
196
|
**含まれる内容:**
|
|
95
197
|
|
|
96
|
-
- Instruction Improve Chatmode
|
|
97
|
-
- Planning Chatmode
|
|
98
|
-
- Bug Reproduce Chatmode
|
|
198
|
+
- Instruction Improve Chatmode
|
|
199
|
+
- Planning Chatmode
|
|
200
|
+
- Bug Reproduce Chatmode
|
|
99
201
|
|
|
100
202
|
**使用方法:**
|
|
101
203
|
|
|
@@ -109,20 +211,153 @@ npx @aramassa/ai-rules extract --recipe presets/chatmodes.yaml --src artifact/ch
|
|
|
109
211
|
- 構造化されたプランニングプロセスが必要なプロジェクト
|
|
110
212
|
- 継続的なinstruction改善を行うプロジェクト
|
|
111
213
|
|
|
112
|
-
###
|
|
214
|
+
### Prompts Presets
|
|
215
|
+
|
|
216
|
+
#### `prompts/prompt-creation.yaml`
|
|
217
|
+
|
|
218
|
+
AI向けプロンプト作成のための包括的なルールとガイドラインです。
|
|
219
|
+
|
|
220
|
+
**含まれる内容:**
|
|
221
|
+
|
|
222
|
+
- Prompts 作成ルール
|
|
223
|
+
- Recipe ファイル作成ルール
|
|
224
|
+
|
|
225
|
+
**使用方法:**
|
|
226
|
+
|
|
227
|
+
```bash
|
|
228
|
+
npx @aramassa/ai-rules extract --recipe presets/prompts/prompt-creation.yaml --src artifact/prompts
|
|
229
|
+
```
|
|
230
|
+
|
|
231
|
+
**対象プロジェクト:**
|
|
232
|
+
|
|
233
|
+
- プロンプト工学を活用するプロジェクト
|
|
234
|
+
- AI-rules 自体のメンテナンス
|
|
235
|
+
|
|
236
|
+
#### `prompts/todo-planning.yaml`
|
|
237
|
+
|
|
238
|
+
プロジェクトのTODO計画を管理するためのワークフローとガイドラインです。
|
|
239
|
+
|
|
240
|
+
**使用方法:**
|
|
241
|
+
|
|
242
|
+
```bash
|
|
243
|
+
npx @aramassa/ai-rules extract --recipe presets/prompts/todo-planning.yaml --src artifact/prompts
|
|
244
|
+
```
|
|
245
|
+
|
|
246
|
+
#### `prompts/plan-fix.yaml`
|
|
247
|
+
|
|
248
|
+
VS Code Plan モードから Agent Coding への移行を自動化するワークフローです。
|
|
249
|
+
|
|
250
|
+
**使用方法:**
|
|
251
|
+
|
|
252
|
+
```bash
|
|
253
|
+
npx @aramassa/ai-rules extract --recipe presets/prompts/plan-fix.yaml --src artifact/prompts
|
|
254
|
+
```
|
|
255
|
+
|
|
256
|
+
### Documentation Presets
|
|
257
|
+
|
|
258
|
+
#### `docs-ai.yaml`
|
|
259
|
+
|
|
260
|
+
AI向けドキュメント生成のためのinstruction設定です。
|
|
261
|
+
|
|
262
|
+
**含まれる内容:**
|
|
263
|
+
|
|
264
|
+
- Documentation for AI
|
|
265
|
+
|
|
266
|
+
**使用方法:**
|
|
267
|
+
|
|
268
|
+
```bash
|
|
269
|
+
npx @aramassa/ai-rules extract --recipe presets/docs-ai.yaml --src artifact/instructions
|
|
270
|
+
```
|
|
271
|
+
|
|
272
|
+
**対象プロジェクト:**
|
|
273
|
+
|
|
274
|
+
- AI コーディングツールを活用するプロジェクト
|
|
275
|
+
- docs-ai/ ディレクトリでドキュメント管理を行うプロジェクト
|
|
276
|
+
|
|
277
|
+
### API-Specific Presets
|
|
278
|
+
|
|
279
|
+
#### `openai.yaml`
|
|
280
|
+
|
|
281
|
+
OpenAI API を使用するプロジェクト向けの instruction 構成です。
|
|
282
|
+
|
|
283
|
+
**含まれる内容:**
|
|
284
|
+
|
|
285
|
+
- OpenAI API Usage Guidelines
|
|
286
|
+
- `:typescript` をインポート(TypeScript関連ルール含む)
|
|
287
|
+
|
|
288
|
+
**使用方法:**
|
|
289
|
+
|
|
290
|
+
```bash
|
|
291
|
+
npx @aramassa/ai-rules extract --recipe presets/openai.yaml --src artifact/instructions
|
|
292
|
+
```
|
|
293
|
+
|
|
294
|
+
**対象プロジェクト:**
|
|
295
|
+
|
|
296
|
+
- OpenAI API を使用するアプリケーション
|
|
297
|
+
- AI 機能を統合するプロジェクト
|
|
298
|
+
|
|
299
|
+
### Testing Presets
|
|
300
|
+
|
|
301
|
+
#### `test-best-practices.yaml`
|
|
302
|
+
|
|
303
|
+
プロジェクト横断的なテストのベストプラクティスと E2E テストガイドラインです。
|
|
304
|
+
|
|
305
|
+
**含まれる内容:**
|
|
306
|
+
|
|
307
|
+
- E2E Test BDD Guidelines
|
|
308
|
+
- E2E CLI Execution Testing
|
|
309
|
+
- Environment Independent Path Testing
|
|
310
|
+
- GitHub Actions Testing Policy
|
|
311
|
+
|
|
312
|
+
**使用方法:**
|
|
313
|
+
|
|
314
|
+
```bash
|
|
315
|
+
npx @aramassa/ai-rules extract --recipe presets/test-best-practices.yaml --src artifact/instructions
|
|
316
|
+
```
|
|
317
|
+
|
|
318
|
+
**対象プロジェクト:**
|
|
319
|
+
|
|
320
|
+
- E2E テストを実装するプロジェクト
|
|
321
|
+
- CLI ツールのテストが必要なプロジェクト
|
|
322
|
+
- 環境非依存のテストを書くプロジェクト
|
|
323
|
+
|
|
324
|
+
### Workflow & CI/CD Presets
|
|
325
|
+
|
|
326
|
+
#### `github-workflow.yaml`
|
|
327
|
+
|
|
328
|
+
GitHub ワークフローと Issue 管理に関する instruction 構成です。
|
|
329
|
+
|
|
330
|
+
**含まれる内容:**
|
|
331
|
+
|
|
332
|
+
- GitHub Issue Templates
|
|
333
|
+
- Planning Workflow
|
|
334
|
+
- GitHub Actions NPM Publish Troubleshooting
|
|
335
|
+
|
|
336
|
+
**使用方法:**
|
|
337
|
+
|
|
338
|
+
```bash
|
|
339
|
+
npx @aramassa/ai-rules extract --recipe presets/github-workflow.yaml --src artifact/instructions
|
|
340
|
+
```
|
|
341
|
+
|
|
342
|
+
**対象プロジェクト:**
|
|
343
|
+
|
|
344
|
+
- GitHub を使用した開発プロジェクト
|
|
345
|
+
- Issue 駆動開発を行うプロジェクト
|
|
346
|
+
- GitHub Actions での CI/CD を実装するプロジェクト
|
|
347
|
+
|
|
348
|
+
#### `github-actions/npm-publish.yaml`
|
|
113
349
|
|
|
114
350
|
npmパッケージのGitHub Actions公開ワークフローを実装するための設定です。
|
|
115
351
|
|
|
116
352
|
**含まれる内容:**
|
|
117
353
|
|
|
118
|
-
- npm Package Publishing Workflow Rules
|
|
119
|
-
-
|
|
120
|
-
- Basic Communication Rules - 基本的なコミュニケーションルール
|
|
354
|
+
- npm Package Publishing Workflow Rules
|
|
355
|
+
- `:basic` をインポート
|
|
121
356
|
|
|
122
357
|
**使用方法:**
|
|
123
358
|
|
|
124
359
|
```bash
|
|
125
|
-
npx @aramassa/ai-rules extract --recipe presets/npm-publish.yaml --src artifact/instructions
|
|
360
|
+
npx @aramassa/ai-rules extract --recipe presets/github-actions/npm-publish.yaml --src artifact/instructions
|
|
126
361
|
```
|
|
127
362
|
|
|
128
363
|
**対象プロジェクト:**
|
|
@@ -130,7 +365,26 @@ npx @aramassa/ai-rules extract --recipe presets/npm-publish.yaml --src artifact/
|
|
|
130
365
|
- npm パッケージを公開するプロジェクト
|
|
131
366
|
- GitHub Packages と npmjs.org への Dual Registry 公開が必要なプロジェクト
|
|
132
367
|
- GitHub Actions を使用した自動パッケージ公開を行うプロジェクト
|
|
133
|
-
|
|
368
|
+
|
|
369
|
+
#### `github-actions/test.yaml`
|
|
370
|
+
|
|
371
|
+
GitHub Actions のテストワークフローを実装するための設定です。
|
|
372
|
+
|
|
373
|
+
**含まれる内容:**
|
|
374
|
+
|
|
375
|
+
- GitHub Actions Test Workflow Rules
|
|
376
|
+
- `:basic` をインポート
|
|
377
|
+
|
|
378
|
+
**使用方法:**
|
|
379
|
+
|
|
380
|
+
```bash
|
|
381
|
+
npx @aramassa/ai-rules extract --recipe presets/github-actions/test.yaml --src artifact/instructions
|
|
382
|
+
```
|
|
383
|
+
|
|
384
|
+
**対象プロジェクト:**
|
|
385
|
+
|
|
386
|
+
- GitHub Actions でテストを実行するプロジェクト
|
|
387
|
+
- Node.js プロジェクトの CI/CD パイプライン
|
|
134
388
|
|
|
135
389
|
## カスタムプリセットの作成
|
|
136
390
|
|
package/presets/agents.yaml
CHANGED
|
@@ -7,12 +7,14 @@ description: |
|
|
|
7
7
|
recipe:
|
|
8
8
|
- title: Agent Creation Assistant
|
|
9
9
|
frontmatter:
|
|
10
|
+
"@name": true
|
|
10
11
|
"@description": true
|
|
11
12
|
"@tools": true
|
|
12
13
|
"@target": true
|
|
13
14
|
out: agent-creation.agent.md
|
|
15
|
+
type: agent
|
|
14
16
|
filters:
|
|
15
|
-
name:
|
|
17
|
+
name: AgentCreation
|
|
16
18
|
target: github-copilot
|
|
17
19
|
|
|
18
20
|
- title: E2E Test Executor
|
|
@@ -21,6 +23,7 @@ recipe:
|
|
|
21
23
|
"@tools": true
|
|
22
24
|
"@target": true
|
|
23
25
|
out: e2e-test-executor.agent.md
|
|
26
|
+
type: agent
|
|
24
27
|
filters:
|
|
25
28
|
name: e2e-test-executor
|
|
26
29
|
target: github-copilot
|
|
@@ -31,6 +34,7 @@ recipe:
|
|
|
31
34
|
"@tools": true
|
|
32
35
|
"@target": true
|
|
33
36
|
out: technical-writer.agent.md
|
|
37
|
+
type: agent
|
|
34
38
|
filters:
|
|
35
39
|
name: TechnicalWriter
|
|
36
40
|
target: github-copilot
|
package/presets/basic.yaml
CHANGED
|
@@ -14,3 +14,40 @@ recipe:
|
|
|
14
14
|
out: ./.github/copilot-instructions.md
|
|
15
15
|
mode: append
|
|
16
16
|
type: package-management
|
|
17
|
+
- title: CLI Environment File Support Guidelines
|
|
18
|
+
frontmatter:
|
|
19
|
+
description: |
|
|
20
|
+
These rules are for implementing environment file support in CLI applications.
|
|
21
|
+
applyTo: "**/*"
|
|
22
|
+
out: ./.github/copilot-instructions.md
|
|
23
|
+
mode: append
|
|
24
|
+
type: development-rules
|
|
25
|
+
category: cli-design
|
|
26
|
+
- title: Git Branch Naming Rules
|
|
27
|
+
frontmatter:
|
|
28
|
+
description: |
|
|
29
|
+
These rules are for Git branch naming conventions and workflow management.
|
|
30
|
+
out: ./.github/copilot-instructions.md
|
|
31
|
+
mode: append
|
|
32
|
+
type: git-rules
|
|
33
|
+
- title: Task Retrospective
|
|
34
|
+
frontmatter:
|
|
35
|
+
description: |
|
|
36
|
+
Guidelines for reflecting on completed tasks and improving future work.
|
|
37
|
+
out: ./.github/copilot-instructions.md
|
|
38
|
+
mode: append
|
|
39
|
+
type: retrospective
|
|
40
|
+
- title: Skeleton Structure Management
|
|
41
|
+
frontmatter:
|
|
42
|
+
description: |
|
|
43
|
+
Rules for managing skeleton files in the skel/ directory.
|
|
44
|
+
out: ./.github/copilot-instructions.md
|
|
45
|
+
mode: append
|
|
46
|
+
type: skel
|
|
47
|
+
- title: Plan Folder Organization
|
|
48
|
+
frontmatter:
|
|
49
|
+
description: |
|
|
50
|
+
Guidelines for organizing todo_plans and change_plans directories.
|
|
51
|
+
out: ./.github/copilot-instructions.md
|
|
52
|
+
mode: append
|
|
53
|
+
type: tidying-up
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
description: GitHub ワークフローと Issue 管理に関する instruction 構成です。
|
|
2
|
+
|
|
3
|
+
config:
|
|
4
|
+
baseDir: .github/instructions
|
|
5
|
+
|
|
6
|
+
recipe:
|
|
7
|
+
- title: GitHub Issue Templates
|
|
8
|
+
frontmatter:
|
|
9
|
+
description: |
|
|
10
|
+
Guidelines for using GitHub Issue templates effectively.
|
|
11
|
+
applyTo: ".github/ISSUE_TEMPLATE/**/*"
|
|
12
|
+
out: github-workflow.instructions.md
|
|
13
|
+
type: development
|
|
14
|
+
category: github
|
|
15
|
+
focus: issue-templates
|
|
16
|
+
- title: Planning Workflow
|
|
17
|
+
frontmatter:
|
|
18
|
+
description: |
|
|
19
|
+
Comprehensive planning workflow from idea to implementation.
|
|
20
|
+
Covers issue creation, branch management, and agent coding integration.
|
|
21
|
+
applyTo: "**/*"
|
|
22
|
+
mode: append
|
|
23
|
+
out: github-workflow.instructions.md
|
|
24
|
+
type: development
|
|
25
|
+
category: workflow
|
|
26
|
+
focus: planning-and-issue-management
|
|
27
|
+
- title: GitHub Actions NPM Publish Troubleshooting
|
|
28
|
+
frontmatter:
|
|
29
|
+
description: |
|
|
30
|
+
Troubleshooting guide for GitHub Actions npm publish workflows.
|
|
31
|
+
applyTo: ".github/workflows/*.{yml,yaml}"
|
|
32
|
+
mode: append
|
|
33
|
+
out: github-workflow.instructions.md
|
|
34
|
+
type: development
|
|
35
|
+
category: cd
|
|
36
|
+
focus: npm-publish
|