@fifine/aim-studio 0.0.1
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/LICENSE +21 -0
- package/README.md +159 -0
- package/bin/aim.js +3 -0
- package/dist/cli/index.d.ts +3 -0
- package/dist/cli/index.d.ts.map +1 -0
- package/dist/cli/index.js +89 -0
- package/dist/cli/index.js.map +1 -0
- package/dist/commands/init.d.ts +13 -0
- package/dist/commands/init.d.ts.map +1 -0
- package/dist/commands/init.js +513 -0
- package/dist/commands/init.js.map +1 -0
- package/dist/commands/update.d.ts +27 -0
- package/dist/commands/update.d.ts.map +1 -0
- package/dist/commands/update.js +1275 -0
- package/dist/commands/update.js.map +1 -0
- package/dist/configurators/claude.d.ts +32 -0
- package/dist/configurators/claude.d.ts.map +1 -0
- package/dist/configurators/claude.js +98 -0
- package/dist/configurators/claude.js.map +1 -0
- package/dist/configurators/index.d.ts +51 -0
- package/dist/configurators/index.d.ts.map +1 -0
- package/dist/configurators/index.js +113 -0
- package/dist/configurators/index.js.map +1 -0
- package/dist/configurators/shared.d.ts +12 -0
- package/dist/configurators/shared.d.ts.map +1 -0
- package/dist/configurators/shared.js +21 -0
- package/dist/configurators/shared.js.map +1 -0
- package/dist/configurators/workflow.d.ts +28 -0
- package/dist/configurators/workflow.d.ts.map +1 -0
- package/dist/configurators/workflow.js +147 -0
- package/dist/configurators/workflow.js.map +1 -0
- package/dist/constants/paths.d.ts +68 -0
- package/dist/constants/paths.d.ts.map +1 -0
- package/dist/constants/paths.js +77 -0
- package/dist/constants/paths.js.map +1 -0
- package/dist/constants/version.d.ts +9 -0
- package/dist/constants/version.d.ts.map +1 -0
- package/dist/constants/version.js +15 -0
- package/dist/constants/version.js.map +1 -0
- package/dist/index.d.ts +9 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +9 -0
- package/dist/index.js.map +1 -0
- package/dist/migrations/index.d.ts +54 -0
- package/dist/migrations/index.d.ts.map +1 -0
- package/dist/migrations/index.js +160 -0
- package/dist/migrations/index.js.map +1 -0
- package/dist/migrations/manifests/0.0.1.json +9 -0
- package/dist/migrations/manifests/0.1.9.json +30 -0
- package/dist/migrations/manifests/0.2.0.json +49 -0
- package/dist/migrations/manifests/0.2.12.json +9 -0
- package/dist/migrations/manifests/0.2.13.json +9 -0
- package/dist/migrations/manifests/0.2.14.json +175 -0
- package/dist/migrations/manifests/0.2.15.json +33 -0
- package/dist/migrations/manifests/0.3.0-beta.0.json +278 -0
- package/dist/migrations/manifests/0.3.0-beta.1.json +9 -0
- package/dist/migrations/manifests/0.3.0-beta.10.json +9 -0
- package/dist/migrations/manifests/0.3.0-beta.11.json +9 -0
- package/dist/migrations/manifests/0.3.0-beta.12.json +9 -0
- package/dist/migrations/manifests/0.3.0-beta.13.json +9 -0
- package/dist/migrations/manifests/0.3.0-beta.14.json +9 -0
- package/dist/migrations/manifests/0.3.0-beta.15.json +9 -0
- package/dist/migrations/manifests/0.3.0-beta.16.json +9 -0
- package/dist/migrations/manifests/0.3.0-beta.2.json +9 -0
- package/dist/migrations/manifests/0.3.0-beta.3.json +9 -0
- package/dist/migrations/manifests/0.3.0-beta.4.json +9 -0
- package/dist/migrations/manifests/0.3.0-beta.5.json +9 -0
- package/dist/migrations/manifests/0.3.0-beta.6.json +9 -0
- package/dist/migrations/manifests/0.3.0-beta.7.json +11 -0
- package/dist/migrations/manifests/0.3.0-beta.8.json +9 -0
- package/dist/migrations/manifests/0.3.0-beta.9.json +9 -0
- package/dist/migrations/manifests/0.3.0-rc.0.json +9 -0
- package/dist/migrations/manifests/0.3.0-rc.1.json +9 -0
- package/dist/migrations/manifests/0.3.0-rc.2.json +9 -0
- package/dist/templates/CLAUDE.md +71 -0
- package/dist/templates/aim/gitignore.txt +29 -0
- package/dist/templates/aim/index.d.ts +49 -0
- package/dist/templates/aim/index.d.ts.map +1 -0
- package/dist/templates/aim/index.js +92 -0
- package/dist/templates/aim/index.js.map +1 -0
- package/dist/templates/aim/scripts/__init__.py +5 -0
- package/dist/templates/aim/scripts/add_session.py +392 -0
- package/dist/templates/aim/scripts/common/__init__.py +80 -0
- package/dist/templates/aim/scripts/common/cli_adapter.py +435 -0
- package/dist/templates/aim/scripts/common/developer.py +190 -0
- package/dist/templates/aim/scripts/common/git_context.py +383 -0
- package/dist/templates/aim/scripts/common/paths.py +347 -0
- package/dist/templates/aim/scripts/common/phase.py +253 -0
- package/dist/templates/aim/scripts/common/registry.py +366 -0
- package/dist/templates/aim/scripts/common/task_queue.py +255 -0
- package/dist/templates/aim/scripts/common/task_utils.py +178 -0
- package/dist/templates/aim/scripts/common/worktree.py +219 -0
- package/dist/templates/aim/scripts/create_bootstrap.py +290 -0
- package/dist/templates/aim/scripts/get_context.py +16 -0
- package/dist/templates/aim/scripts/get_developer.py +26 -0
- package/dist/templates/aim/scripts/init_developer.py +51 -0
- package/dist/templates/aim/scripts/multi_agent/__init__.py +5 -0
- package/dist/templates/aim/scripts/multi_agent/cleanup.py +403 -0
- package/dist/templates/aim/scripts/multi_agent/create_pr.py +329 -0
- package/dist/templates/aim/scripts/multi_agent/plan.py +233 -0
- package/dist/templates/aim/scripts/multi_agent/start.py +461 -0
- package/dist/templates/aim/scripts/multi_agent/status.py +817 -0
- package/dist/templates/aim/scripts/task.py +1068 -0
- package/dist/templates/aim/scripts-shell-archive/add-session.sh +384 -0
- package/dist/templates/aim/scripts-shell-archive/common/developer.sh +129 -0
- package/dist/templates/aim/scripts-shell-archive/common/git-context.sh +263 -0
- package/dist/templates/aim/scripts-shell-archive/common/paths.sh +208 -0
- package/dist/templates/aim/scripts-shell-archive/common/phase.sh +150 -0
- package/dist/templates/aim/scripts-shell-archive/common/registry.sh +247 -0
- package/dist/templates/aim/scripts-shell-archive/common/task-queue.sh +142 -0
- package/dist/templates/aim/scripts-shell-archive/common/task-utils.sh +151 -0
- package/dist/templates/aim/scripts-shell-archive/common/worktree.sh +128 -0
- package/dist/templates/aim/scripts-shell-archive/create-bootstrap.sh +299 -0
- package/dist/templates/aim/scripts-shell-archive/get-context.sh +7 -0
- package/dist/templates/aim/scripts-shell-archive/get-developer.sh +15 -0
- package/dist/templates/aim/scripts-shell-archive/init-developer.sh +34 -0
- package/dist/templates/aim/scripts-shell-archive/multi-agent/cleanup.sh +396 -0
- package/dist/templates/aim/scripts-shell-archive/multi-agent/create-pr.sh +241 -0
- package/dist/templates/aim/scripts-shell-archive/multi-agent/plan.sh +207 -0
- package/dist/templates/aim/scripts-shell-archive/multi-agent/start.sh +317 -0
- package/dist/templates/aim/scripts-shell-archive/multi-agent/status.sh +828 -0
- package/dist/templates/aim/scripts-shell-archive/task.sh +1204 -0
- package/dist/templates/aim/tasks/.gitkeep +0 -0
- package/dist/templates/aim/workflow.md +258 -0
- package/dist/templates/aim/worktree.yaml +47 -0
- package/dist/templates/claude/agents/check.md +122 -0
- package/dist/templates/claude/agents/debug.md +106 -0
- package/dist/templates/claude/agents/dispatch.md +230 -0
- package/dist/templates/claude/agents/implement.md +96 -0
- package/dist/templates/claude/agents/plan.md +396 -0
- package/dist/templates/claude/agents/research.md +120 -0
- package/dist/templates/claude/agents/story.md +53 -0
- package/dist/templates/claude/commands/aim/before-backend-dev.md +13 -0
- package/dist/templates/claude/commands/aim/before-frontend-dev.md +13 -0
- package/dist/templates/claude/commands/aim/break-loop.md +153 -0
- package/dist/templates/claude/commands/aim/check-backend.md +13 -0
- package/dist/templates/claude/commands/aim/check-cross-layer.md +153 -0
- package/dist/templates/claude/commands/aim/check-frontend.md +13 -0
- package/dist/templates/claude/commands/aim/check-story.md +59 -0
- package/dist/templates/claude/commands/aim/create-command.md +154 -0
- package/dist/templates/claude/commands/aim/export.md +187 -0
- package/dist/templates/claude/commands/aim/finish-work.md +104 -0
- package/dist/templates/claude/commands/aim/integrate-skill.md +219 -0
- package/dist/templates/claude/commands/aim/onboard.md +358 -0
- package/dist/templates/claude/commands/aim/parallel.md +217 -0
- package/dist/templates/claude/commands/aim/portrait.md +170 -0
- package/dist/templates/claude/commands/aim/record-session.md +92 -0
- package/dist/templates/claude/commands/aim/start.md +112 -0
- package/dist/templates/claude/commands/aim/story.md +140 -0
- package/dist/templates/claude/commands/aim/update-spec.md +285 -0
- package/dist/templates/claude/commands/aim/visualize.md +182 -0
- package/dist/templates/claude/commands/trellis/before-backend-dev.md +13 -0
- package/dist/templates/claude/commands/trellis/before-frontend-dev.md +13 -0
- package/dist/templates/claude/commands/trellis/break-loop.md +125 -0
- package/dist/templates/claude/commands/trellis/check-backend.md +13 -0
- package/dist/templates/claude/commands/trellis/check-cross-layer.md +153 -0
- package/dist/templates/claude/commands/trellis/check-frontend.md +13 -0
- package/dist/templates/claude/commands/trellis/create-command.md +154 -0
- package/dist/templates/claude/commands/trellis/finish-work.md +129 -0
- package/dist/templates/claude/commands/trellis/integrate-skill.md +219 -0
- package/dist/templates/claude/commands/trellis/onboard.md +358 -0
- package/dist/templates/claude/commands/trellis/parallel.md +193 -0
- package/dist/templates/claude/commands/trellis/record-session.md +62 -0
- package/dist/templates/claude/commands/trellis/start.md +280 -0
- package/dist/templates/claude/commands/trellis/update-spec.md +285 -0
- package/dist/templates/claude/hooks/inject-subagent-context.py +772 -0
- package/dist/templates/claude/hooks/ralph-loop.py +388 -0
- package/dist/templates/claude/hooks/session-start.py +142 -0
- package/dist/templates/claude/index.d.ts +54 -0
- package/dist/templates/claude/index.d.ts.map +1 -0
- package/dist/templates/claude/index.js +85 -0
- package/dist/templates/claude/index.js.map +1 -0
- package/dist/templates/claude/settings.json +41 -0
- package/dist/templates/extract.d.ts +68 -0
- package/dist/templates/extract.d.ts.map +1 -0
- package/dist/templates/extract.js +128 -0
- package/dist/templates/extract.js.map +1 -0
- package/dist/templates/markdown/agents.md +25 -0
- package/dist/templates/markdown/gitignore.txt +12 -0
- package/dist/templates/markdown/index.d.ts +32 -0
- package/dist/templates/markdown/index.d.ts.map +1 -0
- package/dist/templates/markdown/index.js +58 -0
- package/dist/templates/markdown/index.js.map +1 -0
- package/dist/templates/markdown/spec/backend/database-guidelines.md.txt +51 -0
- package/dist/templates/markdown/spec/backend/directory-structure.md.txt +54 -0
- package/dist/templates/markdown/spec/backend/error-handling.md.txt +51 -0
- package/dist/templates/markdown/spec/backend/index.md +40 -0
- package/dist/templates/markdown/spec/backend/index.md.txt +38 -0
- package/dist/templates/markdown/spec/backend/logging-guidelines.md.txt +51 -0
- package/dist/templates/markdown/spec/backend/quality-guidelines.md.txt +51 -0
- package/dist/templates/markdown/spec/backend/script-conventions.md +467 -0
- package/dist/templates/markdown/spec/frontend/component-guidelines.md.txt +59 -0
- package/dist/templates/markdown/spec/frontend/directory-structure.md.txt +54 -0
- package/dist/templates/markdown/spec/frontend/hook-guidelines.md.txt +51 -0
- package/dist/templates/markdown/spec/frontend/index.md.txt +39 -0
- package/dist/templates/markdown/spec/frontend/quality-guidelines.md.txt +51 -0
- package/dist/templates/markdown/spec/frontend/state-management.md.txt +51 -0
- package/dist/templates/markdown/spec/frontend/type-safety.md.txt +51 -0
- package/dist/templates/markdown/spec/guides/code-reuse-thinking-guide.md +118 -0
- package/dist/templates/markdown/spec/guides/code-reuse-thinking-guide.md.txt +92 -0
- package/dist/templates/markdown/spec/guides/cross-layer-thinking-guide.md.txt +94 -0
- package/dist/templates/markdown/spec/guides/cross-platform-thinking-guide.md +394 -0
- package/dist/templates/markdown/spec/guides/cross-platform-thinking-guide.md.txt +319 -0
- package/dist/templates/markdown/spec/guides/index.md.txt +89 -0
- package/dist/templates/markdown/spec/story/character.md.txt +95 -0
- package/dist/templates/markdown/spec/story/index.md.txt +31 -0
- package/dist/templates/markdown/spec/story/script.md.txt +313 -0
- package/dist/templates/markdown/spec/story/world.md.txt +92 -0
- package/dist/templates/markdown/workspace-index.md +123 -0
- package/dist/templates/markdown/worktree.yaml.txt +58 -0
- package/dist/templates/trellis/gitignore.txt +29 -0
- package/dist/templates/trellis/index.d.ts +49 -0
- package/dist/templates/trellis/index.d.ts.map +1 -0
- package/dist/templates/trellis/index.js +92 -0
- package/dist/templates/trellis/index.js.map +1 -0
- package/dist/templates/trellis/scripts/__init__.py +5 -0
- package/dist/templates/trellis/scripts/add_session.py +392 -0
- package/dist/templates/trellis/scripts/common/__init__.py +80 -0
- package/dist/templates/trellis/scripts/common/cli_adapter.py +435 -0
- package/dist/templates/trellis/scripts/common/developer.py +190 -0
- package/dist/templates/trellis/scripts/common/git_context.py +383 -0
- package/dist/templates/trellis/scripts/common/paths.py +347 -0
- package/dist/templates/trellis/scripts/common/phase.py +253 -0
- package/dist/templates/trellis/scripts/common/registry.py +366 -0
- package/dist/templates/trellis/scripts/common/task_queue.py +255 -0
- package/dist/templates/trellis/scripts/common/task_utils.py +178 -0
- package/dist/templates/trellis/scripts/common/worktree.py +219 -0
- package/dist/templates/trellis/scripts/create_bootstrap.py +290 -0
- package/dist/templates/trellis/scripts/get_context.py +16 -0
- package/dist/templates/trellis/scripts/get_developer.py +26 -0
- package/dist/templates/trellis/scripts/init_developer.py +51 -0
- package/dist/templates/trellis/scripts/multi_agent/__init__.py +5 -0
- package/dist/templates/trellis/scripts/multi_agent/cleanup.py +403 -0
- package/dist/templates/trellis/scripts/multi_agent/create_pr.py +329 -0
- package/dist/templates/trellis/scripts/multi_agent/plan.py +233 -0
- package/dist/templates/trellis/scripts/multi_agent/start.py +461 -0
- package/dist/templates/trellis/scripts/multi_agent/status.py +817 -0
- package/dist/templates/trellis/scripts/task.py +1056 -0
- package/dist/templates/trellis/scripts-shell-archive/add-session.sh +384 -0
- package/dist/templates/trellis/scripts-shell-archive/common/developer.sh +129 -0
- package/dist/templates/trellis/scripts-shell-archive/common/git-context.sh +263 -0
- package/dist/templates/trellis/scripts-shell-archive/common/paths.sh +208 -0
- package/dist/templates/trellis/scripts-shell-archive/common/phase.sh +150 -0
- package/dist/templates/trellis/scripts-shell-archive/common/registry.sh +247 -0
- package/dist/templates/trellis/scripts-shell-archive/common/task-queue.sh +142 -0
- package/dist/templates/trellis/scripts-shell-archive/common/task-utils.sh +151 -0
- package/dist/templates/trellis/scripts-shell-archive/common/worktree.sh +128 -0
- package/dist/templates/trellis/scripts-shell-archive/create-bootstrap.sh +299 -0
- package/dist/templates/trellis/scripts-shell-archive/get-context.sh +7 -0
- package/dist/templates/trellis/scripts-shell-archive/get-developer.sh +15 -0
- package/dist/templates/trellis/scripts-shell-archive/init-developer.sh +34 -0
- package/dist/templates/trellis/scripts-shell-archive/multi-agent/cleanup.sh +396 -0
- package/dist/templates/trellis/scripts-shell-archive/multi-agent/create-pr.sh +241 -0
- package/dist/templates/trellis/scripts-shell-archive/multi-agent/plan.sh +207 -0
- package/dist/templates/trellis/scripts-shell-archive/multi-agent/start.sh +317 -0
- package/dist/templates/trellis/scripts-shell-archive/multi-agent/status.sh +828 -0
- package/dist/templates/trellis/scripts-shell-archive/task.sh +1204 -0
- package/dist/templates/trellis/tasks/.gitkeep +0 -0
- package/dist/templates/trellis/workflow.md +416 -0
- package/dist/templates/trellis/worktree.yaml +47 -0
- package/dist/types/ai-tools.d.ts +48 -0
- package/dist/types/ai-tools.d.ts.map +1 -0
- package/dist/types/ai-tools.js +32 -0
- package/dist/types/ai-tools.js.map +1 -0
- package/dist/types/migration.d.ts +86 -0
- package/dist/types/migration.d.ts.map +1 -0
- package/dist/types/migration.js +8 -0
- package/dist/types/migration.js.map +1 -0
- package/dist/utils/compare-versions.d.ts +12 -0
- package/dist/utils/compare-versions.d.ts.map +1 -0
- package/dist/utils/compare-versions.js +76 -0
- package/dist/utils/compare-versions.js.map +1 -0
- package/dist/utils/file-writer.d.ts +23 -0
- package/dist/utils/file-writer.d.ts.map +1 -0
- package/dist/utils/file-writer.js +140 -0
- package/dist/utils/file-writer.js.map +1 -0
- package/dist/utils/project-detector.d.ts +16 -0
- package/dist/utils/project-detector.d.ts.map +1 -0
- package/dist/utils/project-detector.js +188 -0
- package/dist/utils/project-detector.js.map +1 -0
- package/dist/utils/template-fetcher.d.ts +51 -0
- package/dist/utils/template-fetcher.d.ts.map +1 -0
- package/dist/utils/template-fetcher.js +174 -0
- package/dist/utils/template-fetcher.js.map +1 -0
- package/dist/utils/template-hash.d.ts +78 -0
- package/dist/utils/template-hash.d.ts.map +1 -0
- package/dist/utils/template-hash.js +239 -0
- package/dist/utils/template-hash.js.map +1 -0
- package/package.json +87 -0
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2024 Mindfold LLC
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
ADDED
|
@@ -0,0 +1,159 @@
|
|
|
1
|
+
<p align="center">
|
|
2
|
+
<img src="assets/trellis.png" alt="AIM Studio Logo" width="500" style="image-rendering: -webkit-optimize-contrast; image-rendering: crisp-edges;">
|
|
3
|
+
</p>
|
|
4
|
+
|
|
5
|
+
# AIM Studio (原 Trellis)
|
|
6
|
+
|
|
7
|
+
> **专注于 AI 漫剧与小说创作的智能 CLI 工作流工具**
|
|
8
|
+
>
|
|
9
|
+
> *让规范成为习惯,让创意无限延伸*
|
|
10
|
+
|
|
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
|
+
[](LICENSE)
|
|
14
|
+
|
|
15
|
+
---
|
|
16
|
+
|
|
17
|
+
## 📖 简介
|
|
18
|
+
|
|
19
|
+
**AIM Studio** 是一个专为 AI 辅助创作(漫剧、小说、剧本)设计的 CLI 工具。它继承了 Trellis 的核心能力——**全自动上下文注入**,并针对创作场景进行了专门优化。
|
|
20
|
+
|
|
21
|
+
无论你是使用 Claude Code、Cursor 还是其他 AI 助手,AIM Studio 都能确保 AI 始终遵循你设定的世界观、角色档案和剧本格式,彻底解决 AI "写着写着就忘了设定" 的痛点。
|
|
22
|
+
|
|
23
|
+
## ✨ 核心特性
|
|
24
|
+
|
|
25
|
+
| 特性 | 解决的问题 |
|
|
26
|
+
| --- | --- |
|
|
27
|
+
| **全自动设定注入 (Spec Injection)** | 角色、世界观、剧本格式自动注入 AI 上下文。写一次,永久生效。 |
|
|
28
|
+
| **AI 漫剧主笔 (Story Agent)** | 专用的 AI 代理,懂得先完善设定再写剧本,严格遵守分镜规范。 |
|
|
29
|
+
| **一键启动 (Quick Start)** | `/aim:story` 指令一键初始化创作项目,零门槛上手。 |
|
|
30
|
+
| **多任务并行 (Parallel Sessions)** | 同时推进多个故事线,互不干扰。 |
|
|
31
|
+
| **持久化记忆 (Session Persistence)** | 自动记录创作日志,AI 永远记得上一次的剧情进展。 |
|
|
32
|
+
|
|
33
|
+
## 🚀 快速开始
|
|
34
|
+
|
|
35
|
+
### 1. 安装
|
|
36
|
+
|
|
37
|
+
```bash
|
|
38
|
+
npm install -g @mindfoldhq/aim-studio
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
### 2. 初始化项目
|
|
42
|
+
|
|
43
|
+
在你的创作目录下:
|
|
44
|
+
|
|
45
|
+
```bash
|
|
46
|
+
aim init -u 你的笔名
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
### 3. 开始创作
|
|
50
|
+
|
|
51
|
+
使用专用指令启动漫剧创作模式:
|
|
52
|
+
|
|
53
|
+
```bash
|
|
54
|
+
# 创建并启动一个新故事
|
|
55
|
+
/aim:story "由AI统治的古代王朝"
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
或者手动启动:
|
|
59
|
+
|
|
60
|
+
```bash
|
|
61
|
+
aim task create "第一章:觉醒" --type story
|
|
62
|
+
aim start
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
## 📚 创作工作流
|
|
66
|
+
|
|
67
|
+
### 第一步:完善设定 (World Building)
|
|
68
|
+
|
|
69
|
+
AIM Studio 会并在 `.aim-studio/spec/story/` 目录下生成标准模板:
|
|
70
|
+
- `character.md` (角色档案)
|
|
71
|
+
- `world.md` (世界观)
|
|
72
|
+
- `script.md` (剧本规范)
|
|
73
|
+
|
|
74
|
+
**AI 会自动读取这些文件**。你只需要告诉 AI:"帮我完善主角'林风'的性格设定",它就会基于模板进行填充。
|
|
75
|
+
|
|
76
|
+
### 第二步:剧本生成 (Scripting)
|
|
77
|
+
|
|
78
|
+
AI 将严格按照 `script.md` 定义的格式输出剧本,支持直接导出为分镜描述:
|
|
79
|
+
|
|
80
|
+
> **场次 1:废弃仓库 - 深夜 - 紧张**
|
|
81
|
+
>
|
|
82
|
+
> 李明:(喘着粗气) 别过来!
|
|
83
|
+
|
|
84
|
+
### 第三步:AI 绘画对接 (Visualizing)
|
|
85
|
+
|
|
86
|
+
Story Agent 懂得将剧本描述转换为 Stable Diffusion 或 Midjourney 的提示词 (Prompts),助力漫剧视觉化。
|
|
87
|
+
|
|
88
|
+
## � 指令参考手册
|
|
89
|
+
|
|
90
|
+
### 1. 终端命令 (CLI)
|
|
91
|
+
这些命令在你的系统终端(Terminal/PowerShell)中运行:
|
|
92
|
+
|
|
93
|
+
| 命令 | 说明 | 示例 |
|
|
94
|
+
| --- | --- | --- |
|
|
95
|
+
| `aim init` | 初始化一个新的 AIM Studio 项目 | `aim init -u 笔名` |
|
|
96
|
+
| `aim update` | 更新当前项目的配置和脚本到最新版本 | `aim update` |
|
|
97
|
+
|
|
98
|
+
### 2. AI Slash 命令
|
|
99
|
+
这些命令在 AI 助手(如 Claude Code)的对话框中运行:
|
|
100
|
+
|
|
101
|
+
| 命令 | 说明 | 使用场景 |
|
|
102
|
+
| --- | --- | --- |
|
|
103
|
+
| `/aim:story` | **[核心]** 启动漫剧/小说创作模式 | 创作新故事、开始新章节 |
|
|
104
|
+
| `/aim:visualize` | **[创作]** 生成分镜提示词 | 将剧本转换为 AI 绘画指令 |
|
|
105
|
+
| `/aim:check-story` | **[质检]** 检查剧情逻辑 | 检查 OOC、逻辑漏洞、设定冲突 |
|
|
106
|
+
| `/aim:export` | **[发布]** 导出排版 | 生成适合发布的最终文本 |
|
|
107
|
+
| `/aim:start` | 启动通用开发任务 | 日常创作、维护 |
|
|
108
|
+
| `/aim:finish-work` | 结束当前任务并生成进度日志 | 每次结束工作前必做 |
|
|
109
|
+
| `/aim:record-session` | 记录当前会话摘要(不结束任务) | 长时间工作的中途存档 |
|
|
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
|
+
```
|
|
125
|
+
|
|
126
|
+
3. **下达指令**:
|
|
127
|
+
在 AI 会话中输入:
|
|
128
|
+
> "请读取 `.aim-studio/materials/wozhenmeixiangchongshengan.txt` 的第一章内容。
|
|
129
|
+
> 提取其中的核心冲突和陈汉升的性格特征,完善 `character.md`。
|
|
130
|
+
> 然后将第一章改编为分镜剧本。"
|
|
131
|
+
|
|
132
|
+
AI 将会自动分析原文,提取“渣男”陈汉升的性格关键词(腹黑、痞气),并生成第一话的分镜脚本。
|
|
133
|
+
|
|
134
|
+
## 🛠️ 高级用法
|
|
135
|
+
|
|
136
|
+
### 并行创作
|
|
137
|
+
|
|
138
|
+
```bash
|
|
139
|
+
aim parallel
|
|
140
|
+
```
|
|
141
|
+
同时开启多个 AI 会话(Git Worktree 隔离),一边写大纲,一边写细纲,互不阻塞。
|
|
142
|
+
|
|
143
|
+
### 进度保存
|
|
144
|
+
|
|
145
|
+
```bash
|
|
146
|
+
/aim:finish-work
|
|
147
|
+
```
|
|
148
|
+
自动生成本次创作的小结,并更新进度索引。下次启动时 AI 会自动回顾。
|
|
149
|
+
|
|
150
|
+
## 🤝 参与贡献
|
|
151
|
+
|
|
152
|
+
欢迎提交 Issue 或 PR!
|
|
153
|
+
|
|
154
|
+
- [GitHub 仓库](https://github.com/mindfold-ai/trellis)
|
|
155
|
+
- [开发指南](CLAUDE.md)
|
|
156
|
+
|
|
157
|
+
## 📄 许可证
|
|
158
|
+
|
|
159
|
+
MIT License. Made by [Mindfold LLC](https://github.com/mindfold-ai).
|
package/bin/aim.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAIhE,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,CAAC"}
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
import fs from "node:fs";
|
|
2
|
+
import path from "node:path";
|
|
3
|
+
import chalk from "chalk";
|
|
4
|
+
import { Command } from "commander";
|
|
5
|
+
import { init } from "../commands/init.js";
|
|
6
|
+
import { update } from "../commands/update.js";
|
|
7
|
+
import { DIR_NAMES } from "../constants/paths.js";
|
|
8
|
+
import { VERSION, PACKAGE_NAME } from "../constants/version.js";
|
|
9
|
+
import { compareVersions } from "../utils/compare-versions.js";
|
|
10
|
+
// Re-export for backwards compatibility (consumers should prefer constants/version.js)
|
|
11
|
+
export { VERSION, PACKAGE_NAME };
|
|
12
|
+
/**
|
|
13
|
+
* Check if a Trellis update is available (compare project version with CLI version)
|
|
14
|
+
*/
|
|
15
|
+
function checkForUpdates(cwd) {
|
|
16
|
+
const versionFile = path.join(cwd, DIR_NAMES.WORKFLOW, ".version");
|
|
17
|
+
if (!fs.existsSync(versionFile))
|
|
18
|
+
return;
|
|
19
|
+
const projectVersion = fs.readFileSync(versionFile, "utf-8").trim();
|
|
20
|
+
const cliVersion = VERSION;
|
|
21
|
+
const comparison = compareVersions(cliVersion, projectVersion);
|
|
22
|
+
if (comparison > 0) {
|
|
23
|
+
// CLI is newer than project - update available
|
|
24
|
+
console.log(chalk.yellow(`\n⚠️ Trellis update available: ${projectVersion} → ${cliVersion}`));
|
|
25
|
+
console.log(chalk.gray(` Run: trellis update\n`));
|
|
26
|
+
}
|
|
27
|
+
else if (comparison < 0) {
|
|
28
|
+
// CLI is older than project - CLI needs updating
|
|
29
|
+
console.log(chalk.yellow(`\n⚠️ Your CLI (${cliVersion}) is older than project (${projectVersion})`));
|
|
30
|
+
console.log(chalk.gray(` Run: npm install -g ${PACKAGE_NAME}\n`));
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
// Check for updates at CLI startup (only if .aim-studio exists)
|
|
34
|
+
const cwd = process.cwd();
|
|
35
|
+
if (fs.existsSync(path.join(cwd, DIR_NAMES.WORKFLOW))) {
|
|
36
|
+
checkForUpdates(cwd);
|
|
37
|
+
}
|
|
38
|
+
const program = new Command();
|
|
39
|
+
program
|
|
40
|
+
.name("trellis")
|
|
41
|
+
.description("AI-assisted development workflow framework for Cursor, Claude Code and more")
|
|
42
|
+
.version(VERSION, "-v, --version", "output the version number");
|
|
43
|
+
program
|
|
44
|
+
.command("init")
|
|
45
|
+
.description("Initialize trellis in the current project")
|
|
46
|
+
.option("--claude", "Include Claude Code commands")
|
|
47
|
+
.option("-y, --yes", "Skip prompts and use defaults")
|
|
48
|
+
.option("-u, --user <name>", "Initialize developer identity with specified name")
|
|
49
|
+
.option("-f, --force", "Overwrite existing files without asking")
|
|
50
|
+
.option("-s, --skip-existing", "Skip existing files without asking")
|
|
51
|
+
.option("-t, --template <name>", "Use a remote spec template (e.g., electron-fullstack)")
|
|
52
|
+
.option("--overwrite", "Overwrite existing spec directory when using template")
|
|
53
|
+
.option("--append", "Only add missing files when using template")
|
|
54
|
+
.action(async (options) => {
|
|
55
|
+
try {
|
|
56
|
+
await init(options);
|
|
57
|
+
}
|
|
58
|
+
catch (error) {
|
|
59
|
+
console.error(chalk.red("Error:"), error instanceof Error ? error.message : error);
|
|
60
|
+
process.exit(1);
|
|
61
|
+
}
|
|
62
|
+
});
|
|
63
|
+
program
|
|
64
|
+
.command("update")
|
|
65
|
+
.description("Update trellis configuration and commands to latest version")
|
|
66
|
+
.option("--dry-run", "Preview changes without applying them")
|
|
67
|
+
.option("-f, --force", "Overwrite all changed files without asking")
|
|
68
|
+
.option("-s, --skip-all", "Skip all changed files without asking")
|
|
69
|
+
.option("-n, --create-new", "Create .new copies for all changed files")
|
|
70
|
+
.option("--allow-downgrade", "Allow downgrading to an older version")
|
|
71
|
+
.option("--migrate", "Apply pending file migrations (renames/deletions)")
|
|
72
|
+
.action(async (options) => {
|
|
73
|
+
try {
|
|
74
|
+
await update({
|
|
75
|
+
dryRun: options.dryRun,
|
|
76
|
+
force: options.force,
|
|
77
|
+
skipAll: options.skipAll,
|
|
78
|
+
createNew: options.createNew,
|
|
79
|
+
allowDowngrade: options.allowDowngrade,
|
|
80
|
+
migrate: options.migrate,
|
|
81
|
+
});
|
|
82
|
+
}
|
|
83
|
+
catch (error) {
|
|
84
|
+
console.error(chalk.red("Error:"), error instanceof Error ? error.message : error);
|
|
85
|
+
process.exit(1);
|
|
86
|
+
}
|
|
87
|
+
});
|
|
88
|
+
program.parse();
|
|
89
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
interface InitOptions {
|
|
2
|
+
claude?: boolean;
|
|
3
|
+
yes?: boolean;
|
|
4
|
+
user?: string;
|
|
5
|
+
force?: boolean;
|
|
6
|
+
skipExisting?: boolean;
|
|
7
|
+
template?: string;
|
|
8
|
+
overwrite?: boolean;
|
|
9
|
+
append?: boolean;
|
|
10
|
+
}
|
|
11
|
+
export declare function init(options: InitOptions): Promise<void>;
|
|
12
|
+
export {};
|
|
13
|
+
//# sourceMappingURL=init.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAmSA,UAAU,WAAW;IACnB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAgBD,wBAAsB,IAAI,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAsR9D"}
|