@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
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
# Workspace Index
|
|
2
|
+
|
|
3
|
+
> Records of all AI Agent work records across all developers
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## Overview
|
|
8
|
+
|
|
9
|
+
This directory tracks records for all developers working with AI Agents on this project.
|
|
10
|
+
|
|
11
|
+
### File Structure
|
|
12
|
+
|
|
13
|
+
```
|
|
14
|
+
workspace/
|
|
15
|
+
|-- index.md # This file - main index
|
|
16
|
+
+-- {developer}/ # Per-developer directory
|
|
17
|
+
|-- index.md # Personal index with session history
|
|
18
|
+
|-- tasks/ # Task files
|
|
19
|
+
| |-- *.json # Active tasks
|
|
20
|
+
| +-- archive/ # Archived tasks by month
|
|
21
|
+
+-- journal-N.md # Journal files (sequential: 1, 2, 3...)
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
---
|
|
25
|
+
|
|
26
|
+
## Active Developers
|
|
27
|
+
|
|
28
|
+
| Developer | Last Active | Sessions | Active File |
|
|
29
|
+
|-----------|-------------|----------|-------------|
|
|
30
|
+
| (none yet) | - | - | - |
|
|
31
|
+
|
|
32
|
+
---
|
|
33
|
+
|
|
34
|
+
## Getting Started
|
|
35
|
+
|
|
36
|
+
### For New Developers
|
|
37
|
+
|
|
38
|
+
Run the initialization script:
|
|
39
|
+
|
|
40
|
+
```bash
|
|
41
|
+
python3 ./.aim-studio/scripts/init_developer.py <your-name>
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
This will:
|
|
45
|
+
1. Create your identity file (gitignored)
|
|
46
|
+
2. Create your progress directory
|
|
47
|
+
3. Create your personal index
|
|
48
|
+
4. Create initial journal file
|
|
49
|
+
|
|
50
|
+
### For Returning Developers
|
|
51
|
+
|
|
52
|
+
1. Get your developer name:
|
|
53
|
+
```bash
|
|
54
|
+
python3 ./.aim-studio/scripts/get_developer.py
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
2. Read your personal index:
|
|
58
|
+
```bash
|
|
59
|
+
cat .aim-studio/workspace/$(python3 ./.aim-studio/scripts/get_developer.py)/index.md
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
---
|
|
63
|
+
|
|
64
|
+
## Guidelines
|
|
65
|
+
|
|
66
|
+
### Journal File Rules
|
|
67
|
+
|
|
68
|
+
- **Max 2000 lines** per journal file
|
|
69
|
+
- When limit is reached, create `journal-{N+1}.md`
|
|
70
|
+
- Update your personal `index.md` when creating new files
|
|
71
|
+
|
|
72
|
+
### Session Record Format
|
|
73
|
+
|
|
74
|
+
Each session should include:
|
|
75
|
+
- Summary: One-line description
|
|
76
|
+
- Main Changes: What was modified
|
|
77
|
+
- Git Commits: Commit hashes and messages
|
|
78
|
+
- Next Steps: What to do next
|
|
79
|
+
|
|
80
|
+
---
|
|
81
|
+
|
|
82
|
+
## Session Template
|
|
83
|
+
|
|
84
|
+
Use this template when recording sessions:
|
|
85
|
+
|
|
86
|
+
```markdown
|
|
87
|
+
## Session {N}: {Title}
|
|
88
|
+
|
|
89
|
+
**Date**: YYYY-MM-DD
|
|
90
|
+
**Task**: {task-name}
|
|
91
|
+
|
|
92
|
+
### Summary
|
|
93
|
+
|
|
94
|
+
{One-line summary}
|
|
95
|
+
|
|
96
|
+
### Main Changes
|
|
97
|
+
|
|
98
|
+
- {Change 1}
|
|
99
|
+
- {Change 2}
|
|
100
|
+
|
|
101
|
+
### Git Commits
|
|
102
|
+
|
|
103
|
+
| Hash | Message |
|
|
104
|
+
|------|---------|
|
|
105
|
+
| `abc1234` | {commit message} |
|
|
106
|
+
|
|
107
|
+
### Testing
|
|
108
|
+
|
|
109
|
+
- [OK] {Test result}
|
|
110
|
+
|
|
111
|
+
### Status
|
|
112
|
+
|
|
113
|
+
[OK] **Completed** / # **In Progress** / [P] **Blocked**
|
|
114
|
+
|
|
115
|
+
### Next Steps
|
|
116
|
+
|
|
117
|
+
- {Next step 1}
|
|
118
|
+
- {Next step 2}
|
|
119
|
+
```
|
|
120
|
+
|
|
121
|
+
---
|
|
122
|
+
|
|
123
|
+
**Language**: All documentation must be written in **English**.
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
# Worktree Configuration for Multi-Agent Pipeline
|
|
2
|
+
# Used for worktree initialization in multi-agent workflows
|
|
3
|
+
#
|
|
4
|
+
# All paths are relative to project root
|
|
5
|
+
|
|
6
|
+
#-------------------------------------------------------------------------------
|
|
7
|
+
# Paths
|
|
8
|
+
#-------------------------------------------------------------------------------
|
|
9
|
+
|
|
10
|
+
# Worktree storage directory (relative to project root)
|
|
11
|
+
# Recommended: keep worktrees outside the main repo to avoid conflicts
|
|
12
|
+
worktree_dir: ../<project-name>-worktrees
|
|
13
|
+
|
|
14
|
+
#-------------------------------------------------------------------------------
|
|
15
|
+
# Files to Copy
|
|
16
|
+
#-------------------------------------------------------------------------------
|
|
17
|
+
|
|
18
|
+
# Files to copy to each worktree (each worktree needs independent copy)
|
|
19
|
+
# These files contain sensitive info or need worktree-independent config
|
|
20
|
+
copy:
|
|
21
|
+
# Environment variables (uncomment and customize as needed)
|
|
22
|
+
# - .env
|
|
23
|
+
# - .env.local
|
|
24
|
+
# Workflow config
|
|
25
|
+
- .aim-studio/.developer
|
|
26
|
+
|
|
27
|
+
#-------------------------------------------------------------------------------
|
|
28
|
+
# Post-Create Hooks
|
|
29
|
+
#-------------------------------------------------------------------------------
|
|
30
|
+
|
|
31
|
+
# Commands to run after creating worktree
|
|
32
|
+
# Executed in worktree directory, in order, abort on failure
|
|
33
|
+
post_create:
|
|
34
|
+
# Install dependencies (uncomment based on your package manager)
|
|
35
|
+
# - npm install
|
|
36
|
+
# - pnpm install --frozen-lockfile
|
|
37
|
+
# - yarn install --frozen-lockfile
|
|
38
|
+
# - pip install -r requirements.txt
|
|
39
|
+
# - bundle install
|
|
40
|
+
# - cargo build
|
|
41
|
+
|
|
42
|
+
#-------------------------------------------------------------------------------
|
|
43
|
+
# Pre-Merge Checks
|
|
44
|
+
#-------------------------------------------------------------------------------
|
|
45
|
+
|
|
46
|
+
# Pre-merge validation (used by create_pr.py)
|
|
47
|
+
pre_merge:
|
|
48
|
+
# Type checking (uncomment based on your setup)
|
|
49
|
+
# - npm run typecheck
|
|
50
|
+
# - pnpm typecheck
|
|
51
|
+
# - mypy .
|
|
52
|
+
# Linting
|
|
53
|
+
# - npm run lint
|
|
54
|
+
# - pnpm lint
|
|
55
|
+
# - ruff check .
|
|
56
|
+
# Testing
|
|
57
|
+
# - npm test
|
|
58
|
+
# - pytest
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
# Developer identity (local only)
|
|
2
|
+
.developer
|
|
3
|
+
|
|
4
|
+
# Current task pointer (each dev works on different task)
|
|
5
|
+
.current-task
|
|
6
|
+
|
|
7
|
+
# Ralph Loop state file
|
|
8
|
+
.ralph-state.json
|
|
9
|
+
|
|
10
|
+
# Agent runtime files
|
|
11
|
+
.agents/
|
|
12
|
+
.agent-log
|
|
13
|
+
.session-id
|
|
14
|
+
|
|
15
|
+
# Task directory runtime files
|
|
16
|
+
.plan-log
|
|
17
|
+
|
|
18
|
+
# Atomic update temp files
|
|
19
|
+
*.tmp
|
|
20
|
+
|
|
21
|
+
# Update backup directories
|
|
22
|
+
.backup-*
|
|
23
|
+
|
|
24
|
+
# Conflict resolution temp files
|
|
25
|
+
*.new
|
|
26
|
+
|
|
27
|
+
# Python cache
|
|
28
|
+
**/__pycache__/
|
|
29
|
+
**/*.pyc
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Trellis workflow templates
|
|
3
|
+
*
|
|
4
|
+
* These are GENERIC templates for user projects.
|
|
5
|
+
* Do NOT use Trellis project's own .trellis/ directory (which may be customized).
|
|
6
|
+
*
|
|
7
|
+
* Directory structure:
|
|
8
|
+
* trellis/
|
|
9
|
+
* ├── scripts/
|
|
10
|
+
* │ ├── __init__.py
|
|
11
|
+
* │ ├── common/ # Shared utilities (Python)
|
|
12
|
+
* │ ├── multi_agent/ # Multi-agent pipeline scripts (Python)
|
|
13
|
+
* │ └── *.py # Main scripts (Python)
|
|
14
|
+
* ├── scripts-shell-archive/ # Archived shell scripts (for reference)
|
|
15
|
+
* ├── workflow.md # Workflow guide
|
|
16
|
+
* ├── worktree.yaml # Worktree configuration
|
|
17
|
+
* └── gitignore.txt # .gitignore content
|
|
18
|
+
*/
|
|
19
|
+
export declare const scriptsInit: string;
|
|
20
|
+
export declare const commonInit: string;
|
|
21
|
+
export declare const commonPaths: string;
|
|
22
|
+
export declare const commonDeveloper: string;
|
|
23
|
+
export declare const commonGitContext: string;
|
|
24
|
+
export declare const commonWorktree: string;
|
|
25
|
+
export declare const commonTaskQueue: string;
|
|
26
|
+
export declare const commonTaskUtils: string;
|
|
27
|
+
export declare const commonPhase: string;
|
|
28
|
+
export declare const commonRegistry: string;
|
|
29
|
+
export declare const commonCliAdapter: string;
|
|
30
|
+
export declare const multiAgentInit: string;
|
|
31
|
+
export declare const multiAgentStart: string;
|
|
32
|
+
export declare const multiAgentCleanup: string;
|
|
33
|
+
export declare const multiAgentStatus: string;
|
|
34
|
+
export declare const multiAgentCreatePr: string;
|
|
35
|
+
export declare const multiAgentPlan: string;
|
|
36
|
+
export declare const getDeveloperScript: string;
|
|
37
|
+
export declare const initDeveloperScript: string;
|
|
38
|
+
export declare const taskScript: string;
|
|
39
|
+
export declare const getContextScript: string;
|
|
40
|
+
export declare const addSessionScript: string;
|
|
41
|
+
export declare const createBootstrapScript: string;
|
|
42
|
+
export declare const workflowMdTemplate: string;
|
|
43
|
+
export declare const worktreeYamlTemplate: string;
|
|
44
|
+
export declare const gitignoreTemplate: string;
|
|
45
|
+
/**
|
|
46
|
+
* Get all script templates as a map of relative path to content
|
|
47
|
+
*/
|
|
48
|
+
export declare function getAllScripts(): Map<string, string>;
|
|
49
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/templates/trellis/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,QAAmD,CAAC;AACnF,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,QAA8C,CAAC;AAGjF,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,CAmCnD"}
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Trellis workflow templates
|
|
3
|
+
*
|
|
4
|
+
* These are GENERIC templates for user projects.
|
|
5
|
+
* Do NOT use Trellis project's own .trellis/ directory (which may be customized).
|
|
6
|
+
*
|
|
7
|
+
* Directory structure:
|
|
8
|
+
* trellis/
|
|
9
|
+
* ├── scripts/
|
|
10
|
+
* │ ├── __init__.py
|
|
11
|
+
* │ ├── common/ # Shared utilities (Python)
|
|
12
|
+
* │ ├── multi_agent/ # Multi-agent pipeline scripts (Python)
|
|
13
|
+
* │ └── *.py # Main scripts (Python)
|
|
14
|
+
* ├── scripts-shell-archive/ # Archived shell scripts (for reference)
|
|
15
|
+
* ├── workflow.md # Workflow guide
|
|
16
|
+
* ├── worktree.yaml # Worktree configuration
|
|
17
|
+
* └── gitignore.txt # .gitignore content
|
|
18
|
+
*/
|
|
19
|
+
import { readFileSync } from "node:fs";
|
|
20
|
+
import { dirname, join } from "node:path";
|
|
21
|
+
import { fileURLToPath } from "node:url";
|
|
22
|
+
const __filename = fileURLToPath(import.meta.url);
|
|
23
|
+
const __dirname = dirname(__filename);
|
|
24
|
+
function readTemplate(relativePath) {
|
|
25
|
+
return readFileSync(join(__dirname, relativePath), "utf-8");
|
|
26
|
+
}
|
|
27
|
+
// Python scripts - package init
|
|
28
|
+
export const scriptsInit = readTemplate("scripts/__init__.py");
|
|
29
|
+
// Python scripts - common
|
|
30
|
+
export const commonInit = readTemplate("scripts/common/__init__.py");
|
|
31
|
+
export const commonPaths = readTemplate("scripts/common/paths.py");
|
|
32
|
+
export const commonDeveloper = readTemplate("scripts/common/developer.py");
|
|
33
|
+
export const commonGitContext = readTemplate("scripts/common/git_context.py");
|
|
34
|
+
export const commonWorktree = readTemplate("scripts/common/worktree.py");
|
|
35
|
+
export const commonTaskQueue = readTemplate("scripts/common/task_queue.py");
|
|
36
|
+
export const commonTaskUtils = readTemplate("scripts/common/task_utils.py");
|
|
37
|
+
export const commonPhase = readTemplate("scripts/common/phase.py");
|
|
38
|
+
export const commonRegistry = readTemplate("scripts/common/registry.py");
|
|
39
|
+
export const commonCliAdapter = readTemplate("scripts/common/cli_adapter.py");
|
|
40
|
+
// Python scripts - multi_agent
|
|
41
|
+
export const multiAgentInit = readTemplate("scripts/multi_agent/__init__.py");
|
|
42
|
+
export const multiAgentStart = readTemplate("scripts/multi_agent/start.py");
|
|
43
|
+
export const multiAgentCleanup = readTemplate("scripts/multi_agent/cleanup.py");
|
|
44
|
+
export const multiAgentStatus = readTemplate("scripts/multi_agent/status.py");
|
|
45
|
+
export const multiAgentCreatePr = readTemplate("scripts/multi_agent/create_pr.py");
|
|
46
|
+
export const multiAgentPlan = readTemplate("scripts/multi_agent/plan.py");
|
|
47
|
+
// Python scripts - main
|
|
48
|
+
export const getDeveloperScript = readTemplate("scripts/get_developer.py");
|
|
49
|
+
export const initDeveloperScript = readTemplate("scripts/init_developer.py");
|
|
50
|
+
export const taskScript = readTemplate("scripts/task.py");
|
|
51
|
+
export const getContextScript = readTemplate("scripts/get_context.py");
|
|
52
|
+
export const addSessionScript = readTemplate("scripts/add_session.py");
|
|
53
|
+
export const createBootstrapScript = readTemplate("scripts/create_bootstrap.py");
|
|
54
|
+
// Configuration files
|
|
55
|
+
export const workflowMdTemplate = readTemplate("workflow.md");
|
|
56
|
+
export const worktreeYamlTemplate = readTemplate("worktree.yaml");
|
|
57
|
+
export const gitignoreTemplate = readTemplate("gitignore.txt");
|
|
58
|
+
/**
|
|
59
|
+
* Get all script templates as a map of relative path to content
|
|
60
|
+
*/
|
|
61
|
+
export function getAllScripts() {
|
|
62
|
+
const scripts = new Map();
|
|
63
|
+
// Package init
|
|
64
|
+
scripts.set("__init__.py", scriptsInit);
|
|
65
|
+
// Common
|
|
66
|
+
scripts.set("common/__init__.py", commonInit);
|
|
67
|
+
scripts.set("common/paths.py", commonPaths);
|
|
68
|
+
scripts.set("common/developer.py", commonDeveloper);
|
|
69
|
+
scripts.set("common/git_context.py", commonGitContext);
|
|
70
|
+
scripts.set("common/worktree.py", commonWorktree);
|
|
71
|
+
scripts.set("common/task_queue.py", commonTaskQueue);
|
|
72
|
+
scripts.set("common/task_utils.py", commonTaskUtils);
|
|
73
|
+
scripts.set("common/phase.py", commonPhase);
|
|
74
|
+
scripts.set("common/registry.py", commonRegistry);
|
|
75
|
+
scripts.set("common/cli_adapter.py", commonCliAdapter);
|
|
76
|
+
// Multi-agent
|
|
77
|
+
scripts.set("multi_agent/__init__.py", multiAgentInit);
|
|
78
|
+
scripts.set("multi_agent/start.py", multiAgentStart);
|
|
79
|
+
scripts.set("multi_agent/cleanup.py", multiAgentCleanup);
|
|
80
|
+
scripts.set("multi_agent/status.py", multiAgentStatus);
|
|
81
|
+
scripts.set("multi_agent/create_pr.py", multiAgentCreatePr);
|
|
82
|
+
scripts.set("multi_agent/plan.py", multiAgentPlan);
|
|
83
|
+
// Main
|
|
84
|
+
scripts.set("get_developer.py", getDeveloperScript);
|
|
85
|
+
scripts.set("init_developer.py", initDeveloperScript);
|
|
86
|
+
scripts.set("task.py", taskScript);
|
|
87
|
+
scripts.set("get_context.py", getContextScript);
|
|
88
|
+
scripts.set("add_session.py", addSessionScript);
|
|
89
|
+
scripts.set("create_bootstrap.py", createBootstrapScript);
|
|
90
|
+
return scripts;
|
|
91
|
+
}
|
|
92
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/templates/trellis/index.ts"],"names":[],"mappings":"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"}
|