@fifine/aim-studio 0.0.3 → 0.0.4
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 +65 -99
- package/dist/constants/paths.d.ts +5 -5
- package/dist/constants/paths.d.ts.map +1 -1
- package/dist/constants/paths.js +5 -5
- package/dist/constants/paths.js.map +1 -1
- package/dist/templates/aim/index.d.ts +1 -0
- package/dist/templates/aim/index.d.ts.map +1 -1
- package/dist/templates/aim/index.js +2 -0
- package/dist/templates/aim/index.js.map +1 -1
- package/dist/templates/aim/scripts/common/developer.py +2 -1
- package/dist/templates/aim/scripts/export.py +304 -13
- package/dist/templates/aim/workflow.md +12 -13
- package/dist/templates/claude/commands/aim/export.md +208 -32
- package/dist/templates/claude/commands/aim/finish-work.md +23 -0
- package/dist/templates/claude/commands/aim/story.md +275 -67
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -1,151 +1,117 @@
|
|
|
1
1
|
<p align="center">
|
|
2
|
-
<img src="assets/
|
|
2
|
+
<img src="assets/aim-studio.png" alt="AIM Studio Logo" width="500" style="image-rendering: -webkit-optimize-contrast; image-rendering: crisp-edges;">
|
|
3
3
|
</p>
|
|
4
4
|
|
|
5
|
-
# AIM Studio
|
|
5
|
+
# AIM Studio
|
|
6
6
|
|
|
7
|
-
>
|
|
7
|
+
> **AI 驱动的智能开发工作流 CLI 工具**
|
|
8
8
|
>
|
|
9
|
-
>
|
|
9
|
+
> *让规范成为习惯,让开发更高效*
|
|
10
10
|
|
|
11
11
|
[](https://www.npmjs.com/package/@fifine/aim-studio)
|
|
12
|
-
> **Note**: This is a specialized CLI tool for AI-assisted comic and drama creation.
|
|
13
12
|
[](LICENSE)
|
|
14
13
|
|
|
15
14
|
---
|
|
16
15
|
|
|
17
16
|
## 📖 简介
|
|
18
17
|
|
|
19
|
-
**AIM Studio**
|
|
18
|
+
**AIM Studio** 是一个 AI 驱动的智能开发工作流 CLI 工具,专注于解决 AI 辅助开发中的核心痛点:
|
|
20
19
|
|
|
21
|
-
|
|
20
|
+
- **思考先于编码**:通过 Thinking Guides 和 Ralph Loop 避免"修 A 坏 B"的循环
|
|
21
|
+
- **上下文持久化**:通过 Spec Injection 将规则注入每个任务,而非依赖记忆
|
|
22
|
+
- **跨层思考**:通过 Cross-Layer Guide 梳理数据流和模块边界
|
|
23
|
+
|
|
24
|
+
无论你是使用 Claude Code、Cursor 还是其他 AI 助手,AIM Studio 都能确保 AI 始终遵循你项目的开发规范,彻底解决 AI "写着写着就忘了约定" 的痛点。
|
|
22
25
|
|
|
23
26
|
## ✨ 核心特性
|
|
24
27
|
|
|
25
28
|
| 特性 | 解决的问题 |
|
|
26
29
|
| --- | --- |
|
|
27
|
-
|
|
|
28
|
-
|
|
|
29
|
-
|
|
|
30
|
-
|
|
|
31
|
-
|
|
|
30
|
+
| **全自动规范注入 (Spec Injection)** | 项目规范自动注入 AI 上下文。写一次,永久生效。 |
|
|
31
|
+
| **多类型项目支持** | 支持 CLI、前端、后端、全栈、漫剧创作等多种项目类型 |
|
|
32
|
+
| **智能项目识别** | 自动检测项目类型,生成对应的规范模板 |
|
|
33
|
+
| **任务持久化** | 自动记录工作日志,AI 永远记得上一次的进度 |
|
|
34
|
+
| **多 Agent 协作** | 支持 Plan-Implement-Check 分离,复杂任务更可靠 |
|
|
32
35
|
|
|
33
36
|
## 🚀 快速开始
|
|
34
37
|
|
|
35
38
|
### 1. 安装
|
|
36
39
|
|
|
37
40
|
```bash
|
|
38
|
-
npm i @fifine/aim-studio
|
|
41
|
+
npm i @fifine/aim-studio -g
|
|
39
42
|
```
|
|
40
43
|
|
|
41
44
|
### 2. 初始化项目
|
|
42
45
|
|
|
43
|
-
在你的创作目录下:
|
|
44
|
-
|
|
45
46
|
```bash
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
### 3. 开始创作
|
|
47
|
+
# 进入你的项目目录
|
|
48
|
+
cd my-project
|
|
50
49
|
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
```bash
|
|
54
|
-
# 创建并启动一个新故事
|
|
55
|
-
/aim:story "由AI统治的古代王朝"
|
|
50
|
+
# 初始化 AIM Studio
|
|
51
|
+
aim init -u 你的名字
|
|
56
52
|
```
|
|
57
53
|
|
|
58
|
-
|
|
54
|
+
### 3. 开始工作
|
|
59
55
|
|
|
60
56
|
```bash
|
|
61
|
-
|
|
62
|
-
aim
|
|
57
|
+
# 在 Claude Code 中使用
|
|
58
|
+
/aim:start
|
|
63
59
|
```
|
|
64
60
|
|
|
65
|
-
##
|
|
66
|
-
|
|
67
|
-
### 第一步:完善设定 (World Building)
|
|
68
|
-
|
|
69
|
-
AIM Studio 会并在 `.aim-studio/spec/story/` 目录下生成标准模板:
|
|
70
|
-
- `character.md` (角色档案)
|
|
71
|
-
- `world.md` (世界观)
|
|
72
|
-
- `script.md` (剧本规范)
|
|
61
|
+
## 📁 项目结构
|
|
73
62
|
|
|
74
|
-
|
|
63
|
+
初始化后,项目目录结构如下:
|
|
75
64
|
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
### 1. 终端命令 (CLI)
|
|
91
|
-
这些命令在你的系统终端(Terminal/PowerShell)中运行:
|
|
65
|
+
```
|
|
66
|
+
项目根目录/
|
|
67
|
+
├── aim-workspace/ # 你的工作空间(创作内容存放处)
|
|
68
|
+
├── .aim-studio/ # 系统配置(自动生成)
|
|
69
|
+
│ ├── spec/ # 项目规范
|
|
70
|
+
│ │ ├── cli/ # CLI 开发规范
|
|
71
|
+
│ │ ├── frontend/ # 前端开发规范
|
|
72
|
+
│ │ ├── backend/ # 后端开发规范
|
|
73
|
+
│ │ └── story/ # 漫剧创作规范
|
|
74
|
+
│ ├── tasks/ # 任务追踪
|
|
75
|
+
│ ├── scripts/ # 自动化脚本
|
|
76
|
+
│ └── workflow.md # 工作流文档
|
|
77
|
+
└── ...
|
|
78
|
+
```
|
|
92
79
|
|
|
93
|
-
|
|
94
|
-
| --- | --- | --- |
|
|
95
|
-
| `aim init` | 初始化一个新的 AIM Studio 项目 | `aim init -u 笔名` |
|
|
96
|
-
| `aim update` | 更新当前项目的配置和脚本到最新版本 | `aim update` |
|
|
80
|
+
## 📚 工作流命令
|
|
97
81
|
|
|
98
|
-
###
|
|
99
|
-
这些命令在 AI 助手(如 Claude Code)的对话框中运行:
|
|
82
|
+
### Slash 命令(在 AI 对话框中使用)
|
|
100
83
|
|
|
101
|
-
| 命令 | 说明 |
|
|
84
|
+
| 命令 | 说明 | 适用场景 |
|
|
102
85
|
| --- | --- | --- |
|
|
103
|
-
| `/aim:
|
|
104
|
-
| `/aim:
|
|
105
|
-
| `/aim:
|
|
106
|
-
| `/aim:
|
|
107
|
-
| `/aim:
|
|
108
|
-
| `/aim:
|
|
109
|
-
| `/aim:
|
|
110
|
-
|
|
111
|
-
> **提示**: 所有 Slash 命令本质上都是在调用 `.aim-studio/scripts/` 下的 Python 脚本或 Agent 指令。
|
|
112
|
-
|
|
113
|
-
## �💡 最佳实践示例:小说改漫剧
|
|
114
|
-
|
|
115
|
-
假设你想将小说**《我真没想重生啊》**改编为漫剧:
|
|
116
|
-
|
|
117
|
-
1. **准备素材**:
|
|
118
|
-
将小说原文保存为 TXT 文件,建议存放在 `.aim-studio/materials/` 目录下。
|
|
119
|
-
> 例如:`.aim-studio/materials/wozhenmeixiangchongshengan.txt`
|
|
120
|
-
|
|
121
|
-
2. **启动项目**:
|
|
122
|
-
```bash
|
|
123
|
-
/aim:story "我真没想重生啊-漫剧版"
|
|
124
|
-
```
|
|
86
|
+
| `/aim:start` | 开始工作会话 | 日常开发、维护 |
|
|
87
|
+
| `/aim:story` | 漫剧创作模式 | 创作新故事(仅 story 项目) |
|
|
88
|
+
| `/aim:portrait` | 生成角色肖像 | 创建角色形象(仅 story 项目) |
|
|
89
|
+
| `/aim:visualize` | 生成图片提示词 | 分镜描述转 AI 绘画(仅 story 项目) |
|
|
90
|
+
| `/aim:check-story` | 检查剧情一致性 | 剧情审核(仅 story 项目) |
|
|
91
|
+
| `/aim:export` | 导出剧本 | 导出为 Seedance 格式(仅 story 项目) |
|
|
92
|
+
| `/aim:finish-work` | 完成工作并记录 | 每次结束工作前必做 |
|
|
125
93
|
|
|
126
|
-
|
|
127
|
-
在 AI 会话中输入:
|
|
128
|
-
> "请读取 `.aim-studio/materials/wozhenmeixiangchongshengan.txt` 的第一章内容。
|
|
129
|
-
> 提取其中的核心冲突和陈汉升的性格特征,完善 `character.md`。
|
|
130
|
-
> 然后将第一章改编为分镜剧本。"
|
|
94
|
+
> **注意**:漫剧相关命令(story/portrait/visualize/check-story/export)仅在 `story` 类型项目中可用。
|
|
131
95
|
|
|
132
|
-
|
|
96
|
+
## 🎯 项目类型
|
|
133
97
|
|
|
134
|
-
|
|
98
|
+
AIM Studio 支持自动检测以下项目类型:
|
|
135
99
|
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
100
|
+
| 类型 | 检测特征 | 规范目录 |
|
|
101
|
+
| --- | --- | --- |
|
|
102
|
+
| CLI | `bin/` 目录 | `spec/cli/` |
|
|
103
|
+
| 前端 | `package.json`、前端框架 | `spec/frontend/` |
|
|
104
|
+
| 后端 | `requirements.txt`、`go.mod` 等 | `spec/backend/` |
|
|
105
|
+
| 全栈 | 既有前端又有后端 | `spec/frontend/` + `spec/backend/` |
|
|
106
|
+
| 漫剧创作 | `spec/story/` | `spec/story/` |
|
|
142
107
|
|
|
143
|
-
|
|
108
|
+
## 🛠️ 终端命令
|
|
144
109
|
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
110
|
+
| 命令 | 说明 |
|
|
111
|
+
| --- | --- |
|
|
112
|
+
| `aim init` | 初始化 AIM Studio 项目 |
|
|
113
|
+
| `aim update` | 更新项目配置到最新版本 |
|
|
114
|
+
| `aim task create <name>` | 创建新任务 |
|
|
149
115
|
|
|
150
116
|
## 🤝 参与贡献
|
|
151
117
|
|
|
@@ -7,8 +7,8 @@
|
|
|
7
7
|
export declare const DIR_NAMES: {
|
|
8
8
|
/** Root workflow directory */
|
|
9
9
|
readonly WORKFLOW: ".aim-studio";
|
|
10
|
-
/** Workspace directory (under
|
|
11
|
-
readonly WORKSPACE: "workspace";
|
|
10
|
+
/** Workspace directory (directly under project root) - developer work areas */
|
|
11
|
+
readonly WORKSPACE: "aim-workspace";
|
|
12
12
|
/** Tasks directory (under .aim-studio/) - unified task storage */
|
|
13
13
|
readonly TASKS: "tasks";
|
|
14
14
|
/** Archive directory (under tasks/) */
|
|
@@ -35,8 +35,8 @@ export declare const FILE_NAMES: {
|
|
|
35
35
|
export declare const PATHS: {
|
|
36
36
|
/** .aim-studio/ */
|
|
37
37
|
readonly WORKFLOW: ".aim-studio";
|
|
38
|
-
/**
|
|
39
|
-
readonly WORKSPACE: "
|
|
38
|
+
/** aim-workspace/ (directly under project root) */
|
|
39
|
+
readonly WORKSPACE: "aim-workspace";
|
|
40
40
|
/** .aim-studio/tasks/ */
|
|
41
41
|
readonly TASKS: ".aim-studio/tasks";
|
|
42
42
|
/** .aim-studio/spec/ */
|
|
@@ -52,7 +52,7 @@ export declare const PATHS: {
|
|
|
52
52
|
};
|
|
53
53
|
/**
|
|
54
54
|
* Get developer's workspace directory path
|
|
55
|
-
* @example getWorkspaceDir("john") => "
|
|
55
|
+
* @example getWorkspaceDir("john") => "aim-workspace/john"
|
|
56
56
|
*/
|
|
57
57
|
export declare function getWorkspaceDir(developer: string): string;
|
|
58
58
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"paths.d.ts","sourceRoot":"","sources":["../../src/constants/paths.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,eAAO,MAAM,SAAS;IACpB,8BAA8B;;IAE9B
|
|
1
|
+
{"version":3,"file":"paths.d.ts","sourceRoot":"","sources":["../../src/constants/paths.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,eAAO,MAAM,SAAS;IACpB,8BAA8B;;IAE9B,+EAA+E;;IAE/E,kEAAkE;;IAElE,uCAAuC;;IAEvC,qDAAqD;;IAErD,6CAA6C;;CAErC,CAAC;AAGX,eAAO,MAAM,UAAU;IACrB,8BAA8B;;IAE9B,2BAA2B;;IAE3B,oBAAoB;;IAEpB,4BAA4B;;IAE5B,qBAAqB;;IAErB,0BAA0B;;CAElB,CAAC;AAGX,eAAO,MAAM,KAAK;IAChB,mBAAmB;;IAEnB,mDAAmD;;IAEnD,yBAAyB;;IAEzB,wBAAwB;;IAExB,2BAA2B;;IAE3B,6BAA6B;;IAE7B,gCAAgC;;IAEhC,8BAA8B;;CAEtB,CAAC;AAEX;;;GAGG;AACH,wBAAgB,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAEzD;AAED;;;GAGG;AACH,wBAAgB,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAEnD;AAED;;;GAGG;AACH,wBAAgB,aAAa,IAAI,MAAM,CAEtC"}
|
package/dist/constants/paths.js
CHANGED
|
@@ -8,8 +8,8 @@
|
|
|
8
8
|
export const DIR_NAMES = {
|
|
9
9
|
/** Root workflow directory */
|
|
10
10
|
WORKFLOW: ".aim-studio",
|
|
11
|
-
/** Workspace directory (under
|
|
12
|
-
WORKSPACE: "workspace",
|
|
11
|
+
/** Workspace directory (directly under project root) - developer work areas */
|
|
12
|
+
WORKSPACE: "aim-workspace",
|
|
13
13
|
/** Tasks directory (under .aim-studio/) - unified task storage */
|
|
14
14
|
TASKS: "tasks",
|
|
15
15
|
/** Archive directory (under tasks/) */
|
|
@@ -38,8 +38,8 @@ export const FILE_NAMES = {
|
|
|
38
38
|
export const PATHS = {
|
|
39
39
|
/** .aim-studio/ */
|
|
40
40
|
WORKFLOW: DIR_NAMES.WORKFLOW,
|
|
41
|
-
/**
|
|
42
|
-
WORKSPACE:
|
|
41
|
+
/** aim-workspace/ (directly under project root) */
|
|
42
|
+
WORKSPACE: DIR_NAMES.WORKSPACE,
|
|
43
43
|
/** .aim-studio/tasks/ */
|
|
44
44
|
TASKS: `${DIR_NAMES.WORKFLOW}/${DIR_NAMES.TASKS}`,
|
|
45
45
|
/** .aim-studio/spec/ */
|
|
@@ -55,7 +55,7 @@ export const PATHS = {
|
|
|
55
55
|
};
|
|
56
56
|
/**
|
|
57
57
|
* Get developer's workspace directory path
|
|
58
|
-
* @example getWorkspaceDir("john") => "
|
|
58
|
+
* @example getWorkspaceDir("john") => "aim-workspace/john"
|
|
59
59
|
*/
|
|
60
60
|
export function getWorkspaceDir(developer) {
|
|
61
61
|
return `${PATHS.WORKSPACE}/${developer}`;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"paths.js","sourceRoot":"","sources":["../../src/constants/paths.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,mCAAmC;AACnC,MAAM,CAAC,MAAM,SAAS,GAAG;IACvB,8BAA8B;IAC9B,QAAQ,EAAE,aAAa;IACvB
|
|
1
|
+
{"version":3,"file":"paths.js","sourceRoot":"","sources":["../../src/constants/paths.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,mCAAmC;AACnC,MAAM,CAAC,MAAM,SAAS,GAAG;IACvB,8BAA8B;IAC9B,QAAQ,EAAE,aAAa;IACvB,+EAA+E;IAC/E,SAAS,EAAE,eAAe;IAC1B,kEAAkE;IAClE,KAAK,EAAE,OAAO;IACd,uCAAuC;IACvC,OAAO,EAAE,SAAS;IAClB,qDAAqD;IACrD,IAAI,EAAE,MAAM;IACZ,6CAA6C;IAC7C,OAAO,EAAE,SAAS;CACV,CAAC;AAEX,aAAa;AACb,MAAM,CAAC,MAAM,UAAU,GAAG;IACxB,8BAA8B;IAC9B,SAAS,EAAE,YAAY;IACvB,2BAA2B;IAC3B,YAAY,EAAE,eAAe;IAC7B,oBAAoB;IACpB,SAAS,EAAE,WAAW;IACtB,4BAA4B;IAC5B,GAAG,EAAE,QAAQ;IACb,qBAAqB;IACrB,cAAc,EAAE,aAAa;IAC7B,0BAA0B;IAC1B,cAAc,EAAE,UAAU;CAClB,CAAC;AAEX,+CAA+C;AAC/C,MAAM,CAAC,MAAM,KAAK,GAAG;IACnB,mBAAmB;IACnB,QAAQ,EAAE,SAAS,CAAC,QAAQ;IAC5B,mDAAmD;IACnD,SAAS,EAAE,SAAS,CAAC,SAAS;IAC9B,yBAAyB;IACzB,KAAK,EAAE,GAAG,SAAS,CAAC,QAAQ,IAAI,SAAS,CAAC,KAAK,EAAE;IACjD,wBAAwB;IACxB,IAAI,EAAE,GAAG,SAAS,CAAC,QAAQ,IAAI,SAAS,CAAC,IAAI,EAAE;IAC/C,2BAA2B;IAC3B,OAAO,EAAE,GAAG,SAAS,CAAC,QAAQ,IAAI,SAAS,CAAC,OAAO,EAAE;IACrD,6BAA6B;IAC7B,cAAc,EAAE,GAAG,SAAS,CAAC,QAAQ,IAAI,UAAU,CAAC,SAAS,EAAE;IAC/D,gCAAgC;IAChC,iBAAiB,EAAE,GAAG,SAAS,CAAC,QAAQ,IAAI,UAAU,CAAC,YAAY,EAAE;IACrE,8BAA8B;IAC9B,mBAAmB,EAAE,GAAG,SAAS,CAAC,QAAQ,IAAI,UAAU,CAAC,cAAc,EAAE;CACjE,CAAC;AAEX;;;GAGG;AACH,MAAM,UAAU,eAAe,CAAC,SAAiB;IAC/C,OAAO,GAAG,KAAK,CAAC,SAAS,IAAI,SAAS,EAAE,CAAC;AAC3C,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,UAAU,CAAC,QAAgB;IACzC,OAAO,GAAG,KAAK,CAAC,KAAK,IAAI,QAAQ,EAAE,CAAC;AACtC,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,aAAa;IAC3B,OAAO,GAAG,KAAK,CAAC,KAAK,IAAI,SAAS,CAAC,OAAO,EAAE,CAAC;AAC/C,CAAC"}
|
|
@@ -39,6 +39,7 @@ export declare const taskScript: string;
|
|
|
39
39
|
export declare const getContextScript: string;
|
|
40
40
|
export declare const addSessionScript: string;
|
|
41
41
|
export declare const createBootstrapScript: string;
|
|
42
|
+
export declare const exportScript: string;
|
|
42
43
|
export declare const workflowMdTemplate: string;
|
|
43
44
|
export declare const worktreeYamlTemplate: string;
|
|
44
45
|
export declare const gitignoreTemplate: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/templates/aim/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAcH,eAAO,MAAM,WAAW,QAAsC,CAAC;AAG/D,eAAO,MAAM,UAAU,QAA6C,CAAC;AACrE,eAAO,MAAM,WAAW,QAA0C,CAAC;AACnE,eAAO,MAAM,eAAe,QAA8C,CAAC;AAC3E,eAAO,MAAM,gBAAgB,QAAgD,CAAC;AAC9E,eAAO,MAAM,cAAc,QAA6C,CAAC;AACzE,eAAO,MAAM,eAAe,QAA+C,CAAC;AAC5E,eAAO,MAAM,eAAe,QAA+C,CAAC;AAC5E,eAAO,MAAM,WAAW,QAA0C,CAAC;AACnE,eAAO,MAAM,cAAc,QAA6C,CAAC;AACzE,eAAO,MAAM,gBAAgB,QAAgD,CAAC;AAG9E,eAAO,MAAM,cAAc,QAAkD,CAAC;AAC9E,eAAO,MAAM,eAAe,QAA+C,CAAC;AAC5E,eAAO,MAAM,iBAAiB,QAAiD,CAAC;AAChF,eAAO,MAAM,gBAAgB,QAAgD,CAAC;AAC9E,eAAO,MAAM,kBAAkB,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/templates/aim/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAcH,eAAO,MAAM,WAAW,QAAsC,CAAC;AAG/D,eAAO,MAAM,UAAU,QAA6C,CAAC;AACrE,eAAO,MAAM,WAAW,QAA0C,CAAC;AACnE,eAAO,MAAM,eAAe,QAA8C,CAAC;AAC3E,eAAO,MAAM,gBAAgB,QAAgD,CAAC;AAC9E,eAAO,MAAM,cAAc,QAA6C,CAAC;AACzE,eAAO,MAAM,eAAe,QAA+C,CAAC;AAC5E,eAAO,MAAM,eAAe,QAA+C,CAAC;AAC5E,eAAO,MAAM,WAAW,QAA0C,CAAC;AACnE,eAAO,MAAM,cAAc,QAA6C,CAAC;AACzE,eAAO,MAAM,gBAAgB,QAAgD,CAAC;AAG9E,eAAO,MAAM,cAAc,QAAkD,CAAC;AAC9E,eAAO,MAAM,eAAe,QAA+C,CAAC;AAC5E,eAAO,MAAM,iBAAiB,QAAiD,CAAC;AAChF,eAAO,MAAM,gBAAgB,QAAgD,CAAC;AAC9E,eAAO,MAAM,kBAAkB,QAE9B,CAAC;AACF,eAAO,MAAM,cAAc,QAA8C,CAAC;AAG1E,eAAO,MAAM,kBAAkB,QAA2C,CAAC;AAC3E,eAAO,MAAM,mBAAmB,QAA4C,CAAC;AAC7E,eAAO,MAAM,UAAU,QAAkC,CAAC;AAC1D,eAAO,MAAM,gBAAgB,QAAyC,CAAC;AACvE,eAAO,MAAM,gBAAgB,QAAyC,CAAC;AACvE,eAAO,MAAM,qBAAqB,QAEjC,CAAC;AACF,eAAO,MAAM,YAAY,QAAoC,CAAC;AAG9D,eAAO,MAAM,kBAAkB,QAA8B,CAAC;AAC9D,eAAO,MAAM,oBAAoB,QAAgC,CAAC;AAClE,eAAO,MAAM,iBAAiB,QAAgC,CAAC;AAE/D;;GAEG;AACH,wBAAgB,aAAa,IAAI,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAoCnD"}
|
|
@@ -51,6 +51,7 @@ export const taskScript = readTemplate("scripts/task.py");
|
|
|
51
51
|
export const getContextScript = readTemplate("scripts/get_context.py");
|
|
52
52
|
export const addSessionScript = readTemplate("scripts/add_session.py");
|
|
53
53
|
export const createBootstrapScript = readTemplate("scripts/create_bootstrap.py");
|
|
54
|
+
export const exportScript = readTemplate("scripts/export.py");
|
|
54
55
|
// Configuration files
|
|
55
56
|
export const workflowMdTemplate = readTemplate("workflow.md");
|
|
56
57
|
export const worktreeYamlTemplate = readTemplate("worktree.yaml");
|
|
@@ -87,6 +88,7 @@ export function getAllScripts() {
|
|
|
87
88
|
scripts.set("get_context.py", getContextScript);
|
|
88
89
|
scripts.set("add_session.py", addSessionScript);
|
|
89
90
|
scripts.set("create_bootstrap.py", createBootstrapScript);
|
|
91
|
+
scripts.set("export.py", exportScript);
|
|
90
92
|
return scripts;
|
|
91
93
|
}
|
|
92
94
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/templates/aim/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAClD,MAAM,SAAS,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;AAEtC,SAAS,YAAY,CAAC,YAAoB;IACxC,OAAO,YAAY,CAAC,IAAI,CAAC,SAAS,EAAE,YAAY,CAAC,EAAE,OAAO,CAAC,CAAC;AAC9D,CAAC;AAED,gCAAgC;AAChC,MAAM,CAAC,MAAM,WAAW,GAAG,YAAY,CAAC,qBAAqB,CAAC,CAAC;AAE/D,0BAA0B;AAC1B,MAAM,CAAC,MAAM,UAAU,GAAG,YAAY,CAAC,4BAA4B,CAAC,CAAC;AACrE,MAAM,CAAC,MAAM,WAAW,GAAG,YAAY,CAAC,yBAAyB,CAAC,CAAC;AACnE,MAAM,CAAC,MAAM,eAAe,GAAG,YAAY,CAAC,6BAA6B,CAAC,CAAC;AAC3E,MAAM,CAAC,MAAM,gBAAgB,GAAG,YAAY,CAAC,+BAA+B,CAAC,CAAC;AAC9E,MAAM,CAAC,MAAM,cAAc,GAAG,YAAY,CAAC,4BAA4B,CAAC,CAAC;AACzE,MAAM,CAAC,MAAM,eAAe,GAAG,YAAY,CAAC,8BAA8B,CAAC,CAAC;AAC5E,MAAM,CAAC,MAAM,eAAe,GAAG,YAAY,CAAC,8BAA8B,CAAC,CAAC;AAC5E,MAAM,CAAC,MAAM,WAAW,GAAG,YAAY,CAAC,yBAAyB,CAAC,CAAC;AACnE,MAAM,CAAC,MAAM,cAAc,GAAG,YAAY,CAAC,4BAA4B,CAAC,CAAC;AACzE,MAAM,CAAC,MAAM,gBAAgB,GAAG,YAAY,CAAC,+BAA+B,CAAC,CAAC;AAE9E,+BAA+B;AAC/B,MAAM,CAAC,MAAM,cAAc,GAAG,YAAY,CAAC,iCAAiC,CAAC,CAAC;AAC9E,MAAM,CAAC,MAAM,eAAe,GAAG,YAAY,CAAC,8BAA8B,CAAC,CAAC;AAC5E,MAAM,CAAC,MAAM,iBAAiB,GAAG,YAAY,CAAC,gCAAgC,CAAC,CAAC;AAChF,MAAM,CAAC,MAAM,gBAAgB,GAAG,YAAY,CAAC,+BAA+B,CAAC,CAAC;AAC9E,MAAM,CAAC,MAAM,kBAAkB,GAAG,YAAY,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/templates/aim/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -53,7 +53,8 @@ def init_developer(name: str, repo_root: Path | None = None) -> bool:
|
|
|
53
53
|
repo_root = get_repo_root()
|
|
54
54
|
|
|
55
55
|
dev_file = repo_root / DIR_WORKFLOW / FILE_DEVELOPER
|
|
56
|
-
|
|
56
|
+
# workspace 目录直接在项目根目录下,不在 .aim-studio 中
|
|
57
|
+
workspace_dir = repo_root / DIR_WORKSPACE / name
|
|
57
58
|
|
|
58
59
|
# Create .developer file
|
|
59
60
|
initialized_at = datetime.now().isoformat()
|