@mindfoldhq/trellis 0.1.8 → 0.2.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/dist/cli/index.js +2 -0
- package/dist/cli/index.js.map +1 -1
- package/dist/commands/init.d.ts.map +1 -1
- package/dist/commands/init.js +12 -6
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/update.d.ts +1 -0
- package/dist/commands/update.d.ts.map +1 -1
- package/dist/commands/update.js +669 -38
- package/dist/commands/update.js.map +1 -1
- package/dist/configurators/opencode.js +1 -1
- package/dist/configurators/opencode.js.map +1 -1
- package/dist/configurators/workflow.d.ts +4 -3
- package/dist/configurators/workflow.d.ts.map +1 -1
- package/dist/configurators/workflow.js +23 -20
- package/dist/configurators/workflow.js.map +1 -1
- package/dist/constants/paths.d.ts +29 -30
- package/dist/constants/paths.d.ts.map +1 -1
- package/dist/constants/paths.js +32 -35
- package/dist/constants/paths.js.map +1 -1
- package/dist/migrations/index.d.ts +35 -0
- package/dist/migrations/index.d.ts.map +1 -0
- package/dist/migrations/index.js +124 -0
- package/dist/migrations/index.js.map +1 -0
- package/dist/migrations/manifests/0.1.9.json +30 -0
- package/dist/migrations/manifests/0.2.0.json +43 -0
- package/dist/templates/claude/agents/check.md +3 -3
- package/dist/templates/claude/agents/debug.md +1 -1
- package/dist/templates/claude/agents/dispatch.md +12 -12
- package/dist/templates/claude/agents/implement.md +6 -6
- package/dist/templates/claude/agents/plan.md +37 -37
- package/dist/templates/claude/agents/research.md +1 -1
- package/dist/templates/claude/commands/before-backend-dev.md +5 -5
- package/dist/templates/claude/commands/before-frontend-dev.md +5 -5
- package/dist/templates/claude/commands/break-loop.md +2 -2
- package/dist/templates/claude/commands/check-backend.md +6 -6
- package/dist/templates/claude/commands/check-cross-layer.md +5 -5
- package/dist/templates/claude/commands/check-frontend.md +6 -6
- package/dist/templates/claude/commands/create-command.md +3 -3
- package/dist/templates/claude/commands/finish-work.md +6 -6
- package/dist/templates/claude/commands/integrate-skill.md +11 -11
- package/dist/templates/claude/commands/{onboard-developer.md → onboard.md} +31 -28
- package/dist/templates/claude/commands/parallel.md +17 -17
- package/dist/templates/{cursor/commands/record-agent-flow.md → claude/commands/record-session.md} +7 -7
- package/dist/templates/claude/commands/start.md +184 -96
- package/dist/templates/claude/hooks/inject-subagent-context.py +77 -76
- package/dist/templates/claude/hooks/ralph-loop.py +18 -18
- package/dist/templates/claude/hooks/session-start.py +124 -0
- package/dist/templates/claude/settings.json +14 -1
- package/dist/templates/cursor/commands/before-backend-dev.md +5 -5
- package/dist/templates/cursor/commands/before-frontend-dev.md +5 -5
- package/dist/templates/cursor/commands/break-loop.md +2 -2
- package/dist/templates/cursor/commands/check-backend.md +6 -6
- package/dist/templates/cursor/commands/check-cross-layer.md +5 -5
- package/dist/templates/cursor/commands/check-frontend.md +6 -6
- package/dist/templates/cursor/commands/create-command.md +3 -3
- package/dist/templates/cursor/commands/finish-work.md +6 -6
- package/dist/templates/cursor/commands/integrate-skill.md +11 -11
- package/dist/templates/cursor/commands/{onboard-developer.md → onboard.md} +31 -28
- package/dist/templates/{claude/commands/record-agent-flow.md → cursor/commands/record-session.md} +7 -7
- package/dist/templates/cursor/commands/start.md +25 -25
- package/dist/templates/extract.d.ts +2 -2
- package/dist/templates/extract.js +2 -2
- package/dist/templates/markdown/agents.md +2 -2
- package/dist/templates/markdown/gitignore.txt +2 -2
- package/dist/templates/markdown/index.d.ts +1 -0
- package/dist/templates/markdown/index.d.ts.map +1 -1
- package/dist/templates/markdown/index.js +4 -2
- package/dist/templates/markdown/index.js.map +1 -1
- package/dist/templates/markdown/{agent-traces-index.md → workspace-index.md} +14 -14
- package/dist/templates/trellis/index.d.ts +7 -1
- package/dist/templates/trellis/index.d.ts.map +1 -1
- package/dist/templates/trellis/index.js +14 -2
- package/dist/templates/trellis/index.js.map +1 -1
- package/dist/templates/trellis/scripts/add-session.sh +26 -26
- package/dist/templates/trellis/scripts/common/developer.sh +20 -21
- package/dist/templates/trellis/scripts/common/git-context.sh +90 -115
- package/dist/templates/trellis/scripts/common/paths.sh +53 -63
- package/dist/templates/trellis/scripts/common/phase.sh +40 -40
- package/dist/templates/trellis/scripts/common/registry.sh +13 -13
- package/dist/templates/trellis/scripts/common/task-queue.sh +142 -0
- package/dist/templates/trellis/scripts/common/task-utils.sh +151 -0
- package/dist/templates/trellis/scripts/common/worktree.sh +3 -3
- package/dist/templates/trellis/scripts/create-bootstrap.sh +43 -42
- package/dist/templates/trellis/scripts/init-developer.sh +1 -1
- package/dist/templates/trellis/scripts/multi-agent/cleanup.sh +33 -33
- package/dist/templates/trellis/scripts/multi-agent/create-pr.sh +31 -31
- package/dist/templates/trellis/scripts/multi-agent/plan.sh +30 -56
- package/dist/templates/trellis/scripts/multi-agent/start.sh +59 -70
- package/dist/templates/trellis/scripts/multi-agent/status.sh +59 -59
- package/dist/templates/trellis/scripts/{feature.sh → task.sh} +236 -186
- package/dist/templates/trellis/workflow.md +71 -74
- package/dist/types/migration.d.ts +74 -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/template-hash.d.ts +78 -0
- package/dist/utils/template-hash.d.ts.map +1 -0
- package/dist/utils/template-hash.js +234 -0
- package/dist/utils/template-hash.js.map +1 -0
- package/package.json +1 -1
- package/README.md +0 -818
- package/dist/templates/trellis/scripts/common/backlog.sh +0 -220
- package/dist/templates/trellis/scripts/common/feature-utils.sh +0 -194
- /package/dist/templates/trellis/{backlog → tasks}/.gitkeep +0 -0
|
@@ -5,6 +5,7 @@
|
|
|
5
5
|
* Structure templates use .md.txt extension as they are generic templates.
|
|
6
6
|
*/
|
|
7
7
|
export declare const agentsMdContent: string;
|
|
8
|
+
export declare const workspaceIndexContent: string;
|
|
8
9
|
export declare const agentProgressIndexContent: string;
|
|
9
10
|
export declare const workflowGitignoreContent: string;
|
|
10
11
|
export declare const backendIndexContent: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/templates/markdown/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAqBH,eAAO,MAAM,eAAe,EAAE,MAAuC,CAAC;AAGtE,eAAO,MAAM,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/templates/markdown/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAqBH,eAAO,MAAM,eAAe,EAAE,MAAuC,CAAC;AAGtE,eAAO,MAAM,qBAAqB,EAAE,MAEnC,CAAC;AAGF,eAAO,MAAM,yBAAyB,QAAwB,CAAC;AAG/D,eAAO,MAAM,wBAAwB,EAAE,MACH,CAAC;AAQrC,eAAO,MAAM,mBAAmB,EAAE,MAEjC,CAAC;AACF,eAAO,MAAM,gCAAgC,EAAE,MAE9C,CAAC;AACF,eAAO,MAAM,gCAAgC,EAAE,MAE9C,CAAC;AACF,eAAO,MAAM,+BAA+B,EAAE,MAE7C,CAAC;AACF,eAAO,MAAM,+BAA+B,EAAE,MAE7C,CAAC;AACF,eAAO,MAAM,2BAA2B,EAAE,MAEzC,CAAC;AAGF,eAAO,MAAM,oBAAoB,EAAE,MAElC,CAAC;AACF,eAAO,MAAM,iCAAiC,EAAE,MAE/C,CAAC;AACF,eAAO,MAAM,yBAAyB,EAAE,MAEvC,CAAC;AACF,eAAO,MAAM,6BAA6B,EAAE,MAE3C,CAAC;AACF,eAAO,MAAM,kCAAkC,EAAE,MAEhD,CAAC;AACF,eAAO,MAAM,gCAAgC,EAAE,MAE9C,CAAC;AACF,eAAO,MAAM,8BAA8B,EAAE,MAE5C,CAAC;AAGF,eAAO,MAAM,kBAAkB,EAAE,MAEhC,CAAC;AACF,eAAO,MAAM,oCAAoC,EAAE,MAElD,CAAC;AACF,eAAO,MAAM,mCAAmC,EAAE,MAEjD,CAAC"}
|
|
@@ -20,8 +20,10 @@ function readLocalTemplate(filename) {
|
|
|
20
20
|
// Root files for new projects
|
|
21
21
|
// =============================================================================
|
|
22
22
|
export const agentsMdContent = readLocalTemplate("agents.md");
|
|
23
|
-
//
|
|
24
|
-
export const
|
|
23
|
+
// Workspace index template (developer work records)
|
|
24
|
+
export const workspaceIndexContent = readLocalTemplate("workspace-index.md");
|
|
25
|
+
// Backwards compatibility alias
|
|
26
|
+
export const agentProgressIndexContent = workspaceIndexContent;
|
|
25
27
|
// Gitignore (template file - .gitignore is ignored by npm)
|
|
26
28
|
export const workflowGitignoreContent = readLocalTemplate("gitignore.txt");
|
|
27
29
|
// =============================================================================
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/templates/markdown/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;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;;GAEG;AACH,SAAS,iBAAiB,CAAC,QAAgB;IACzC,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;IAC3C,OAAO,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;AACzC,CAAC;AAED,gFAAgF;AAChF,8BAA8B;AAC9B,gFAAgF;AAEhF,MAAM,CAAC,MAAM,eAAe,GAAW,iBAAiB,CAAC,WAAW,CAAC,CAAC;AAEtE,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/templates/markdown/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;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;;GAEG;AACH,SAAS,iBAAiB,CAAC,QAAgB;IACzC,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;IAC3C,OAAO,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;AACzC,CAAC;AAED,gFAAgF;AAChF,8BAA8B;AAC9B,gFAAgF;AAEhF,MAAM,CAAC,MAAM,eAAe,GAAW,iBAAiB,CAAC,WAAW,CAAC,CAAC;AAEtE,oDAAoD;AACpD,MAAM,CAAC,MAAM,qBAAqB,GAAW,iBAAiB,CAC5D,oBAAoB,CACrB,CAAC;AAEF,gCAAgC;AAChC,MAAM,CAAC,MAAM,yBAAyB,GAAG,qBAAqB,CAAC;AAE/D,2DAA2D;AAC3D,MAAM,CAAC,MAAM,wBAAwB,GACnC,iBAAiB,CAAC,eAAe,CAAC,CAAC;AAErC,gFAAgF;AAChF,0DAA0D;AAC1D,wEAAwE;AACxE,gFAAgF;AAEhF,uCAAuC;AACvC,MAAM,CAAC,MAAM,mBAAmB,GAAW,iBAAiB,CAC1D,gCAAgC,CACjC,CAAC;AACF,MAAM,CAAC,MAAM,gCAAgC,GAAW,iBAAiB,CACvE,8CAA8C,CAC/C,CAAC;AACF,MAAM,CAAC,MAAM,gCAAgC,GAAW,iBAAiB,CACvE,8CAA8C,CAC/C,CAAC;AACF,MAAM,CAAC,MAAM,+BAA+B,GAAW,iBAAiB,CACtE,6CAA6C,CAC9C,CAAC;AACF,MAAM,CAAC,MAAM,+BAA+B,GAAW,iBAAiB,CACtE,6CAA6C,CAC9C,CAAC;AACF,MAAM,CAAC,MAAM,2BAA2B,GAAW,iBAAiB,CAClE,yCAAyC,CAC1C,CAAC;AAEF,wCAAwC;AACxC,MAAM,CAAC,MAAM,oBAAoB,GAAW,iBAAiB,CAC3D,iCAAiC,CAClC,CAAC;AACF,MAAM,CAAC,MAAM,iCAAiC,GAAW,iBAAiB,CACxE,+CAA+C,CAChD,CAAC;AACF,MAAM,CAAC,MAAM,yBAAyB,GAAW,iBAAiB,CAChE,uCAAuC,CACxC,CAAC;AACF,MAAM,CAAC,MAAM,6BAA6B,GAAW,iBAAiB,CACpE,2CAA2C,CAC5C,CAAC;AACF,MAAM,CAAC,MAAM,kCAAkC,GAAW,iBAAiB,CACzE,gDAAgD,CACjD,CAAC;AACF,MAAM,CAAC,MAAM,gCAAgC,GAAW,iBAAiB,CACvE,8CAA8C,CAC/C,CAAC;AACF,MAAM,CAAC,MAAM,8BAA8B,GAAW,iBAAiB,CACrE,4CAA4C,CAC7C,CAAC;AAEF,mBAAmB;AACnB,MAAM,CAAC,MAAM,kBAAkB,GAAW,iBAAiB,CACzD,+BAA+B,CAChC,CAAC;AACF,MAAM,CAAC,MAAM,oCAAoC,GAAW,iBAAiB,CAC3E,oDAAoD,CACrD,CAAC;AACF,MAAM,CAAC,MAAM,mCAAmC,GAAW,iBAAiB,CAC1E,mDAAmD,CACpD,CAAC"}
|
|
@@ -1,24 +1,24 @@
|
|
|
1
|
-
#
|
|
1
|
+
# Workspace Index
|
|
2
2
|
|
|
3
|
-
> Records of all AI Agent work
|
|
3
|
+
> Records of all AI Agent work records across all developers
|
|
4
4
|
|
|
5
5
|
---
|
|
6
6
|
|
|
7
7
|
## Overview
|
|
8
8
|
|
|
9
|
-
This directory tracks
|
|
9
|
+
This directory tracks records for all developers working with AI Agents on this project.
|
|
10
10
|
|
|
11
11
|
### File Structure
|
|
12
12
|
|
|
13
13
|
```
|
|
14
|
-
|
|
14
|
+
workspace/
|
|
15
15
|
|-- index.md # This file - main index
|
|
16
16
|
\-- {developer}/ # Per-developer directory
|
|
17
17
|
|-- index.md # Personal index with session history
|
|
18
|
-
|--
|
|
19
|
-
| |-- *.json # Active
|
|
20
|
-
| \-- archive/ # Archived
|
|
21
|
-
\--
|
|
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
22
|
```
|
|
23
23
|
|
|
24
24
|
---
|
|
@@ -45,7 +45,7 @@ This will:
|
|
|
45
45
|
1. Create your identity file (gitignored)
|
|
46
46
|
2. Create your progress directory
|
|
47
47
|
3. Create your personal index
|
|
48
|
-
4. Create initial
|
|
48
|
+
4. Create initial journal file
|
|
49
49
|
|
|
50
50
|
### For Returning Developers
|
|
51
51
|
|
|
@@ -56,17 +56,17 @@ This will:
|
|
|
56
56
|
|
|
57
57
|
2. Read your personal index:
|
|
58
58
|
```bash
|
|
59
|
-
cat .trellis/
|
|
59
|
+
cat .trellis/workspace/$(./.trellis/scripts/get-developer.sh)/index.md
|
|
60
60
|
```
|
|
61
61
|
|
|
62
62
|
---
|
|
63
63
|
|
|
64
64
|
## Guidelines
|
|
65
65
|
|
|
66
|
-
###
|
|
66
|
+
### Journal File Rules
|
|
67
67
|
|
|
68
|
-
- **Max 2000 lines** per
|
|
69
|
-
- When limit is reached, create `
|
|
68
|
+
- **Max 2000 lines** per journal file
|
|
69
|
+
- When limit is reached, create `journal-{N+1}.md`
|
|
70
70
|
- Update your personal `index.md` when creating new files
|
|
71
71
|
|
|
72
72
|
### Session Record Format
|
|
@@ -87,7 +87,7 @@ Use this template when recording sessions:
|
|
|
87
87
|
## Session {N}: {Title}
|
|
88
88
|
|
|
89
89
|
**Date**: YYYY-MM-DD
|
|
90
|
-
**
|
|
90
|
+
**Task**: {task-name}
|
|
91
91
|
|
|
92
92
|
### Summary
|
|
93
93
|
|
|
@@ -18,12 +18,18 @@ export declare const commonPathsScript: string;
|
|
|
18
18
|
export declare const commonDeveloperScript: string;
|
|
19
19
|
export declare const commonGitContextScript: string;
|
|
20
20
|
export declare const commonWorktreeScript: string;
|
|
21
|
+
export declare const commonTaskQueueScript: string;
|
|
22
|
+
export declare const commonTaskUtilsScript: string;
|
|
23
|
+
export declare const commonPhaseScript: string;
|
|
24
|
+
export declare const commonRegistryScript: string;
|
|
21
25
|
export declare const multiAgentStartScript: string;
|
|
22
26
|
export declare const multiAgentCleanupScript: string;
|
|
23
27
|
export declare const multiAgentStatusScript: string;
|
|
28
|
+
export declare const multiAgentCreatePrScript: string;
|
|
29
|
+
export declare const multiAgentPlanScript: string;
|
|
24
30
|
export declare const initDeveloperScript: string;
|
|
25
31
|
export declare const getDeveloperScript: string;
|
|
26
|
-
export declare const
|
|
32
|
+
export declare const taskScript: string;
|
|
27
33
|
export declare const getContextScript: string;
|
|
28
34
|
export declare const addSessionScript: string;
|
|
29
35
|
export declare const createBootstrapScript: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/templates/trellis/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAcH,eAAO,MAAM,iBAAiB,QAA0C,CAAC;AACzE,eAAO,MAAM,qBAAqB,QAEjC,CAAC;AACF,eAAO,MAAM,sBAAsB,QAElC,CAAC;AACF,eAAO,MAAM,oBAAoB,QAEhC,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/templates/trellis/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAcH,eAAO,MAAM,iBAAiB,QAA0C,CAAC;AACzE,eAAO,MAAM,qBAAqB,QAEjC,CAAC;AACF,eAAO,MAAM,sBAAsB,QAElC,CAAC;AACF,eAAO,MAAM,oBAAoB,QAEhC,CAAC;AACF,eAAO,MAAM,qBAAqB,QAA+C,CAAC;AAClF,eAAO,MAAM,qBAAqB,QAEjC,CAAC;AACF,eAAO,MAAM,iBAAiB,QAA0C,CAAC;AACzE,eAAO,MAAM,oBAAoB,QAA6C,CAAC;AAG/E,eAAO,MAAM,qBAAqB,QAEjC,CAAC;AACF,eAAO,MAAM,uBAAuB,QAEnC,CAAC;AACF,eAAO,MAAM,sBAAsB,QAElC,CAAC;AACF,eAAO,MAAM,wBAAwB,QAEpC,CAAC;AACF,eAAO,MAAM,oBAAoB,QAEhC,CAAC;AAGF,eAAO,MAAM,mBAAmB,QAA4C,CAAC;AAC7E,eAAO,MAAM,kBAAkB,QAA2C,CAAC;AAC3E,eAAO,MAAM,UAAU,QAAkC,CAAC;AAC1D,eAAO,MAAM,gBAAgB,QAAyC,CAAC;AACvE,eAAO,MAAM,gBAAgB,QAAyC,CAAC;AACvE,eAAO,MAAM,qBAAqB,QAEjC,CAAC;AAGF,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,CA6BnD"}
|
|
@@ -27,14 +27,20 @@ export const commonPathsScript = readTemplate("scripts/common/paths.sh");
|
|
|
27
27
|
export const commonDeveloperScript = readTemplate("scripts/common/developer.sh");
|
|
28
28
|
export const commonGitContextScript = readTemplate("scripts/common/git-context.sh");
|
|
29
29
|
export const commonWorktreeScript = readTemplate("scripts/common/worktree.sh");
|
|
30
|
+
export const commonTaskQueueScript = readTemplate("scripts/common/task-queue.sh");
|
|
31
|
+
export const commonTaskUtilsScript = readTemplate("scripts/common/task-utils.sh");
|
|
32
|
+
export const commonPhaseScript = readTemplate("scripts/common/phase.sh");
|
|
33
|
+
export const commonRegistryScript = readTemplate("scripts/common/registry.sh");
|
|
30
34
|
// Multi-agent scripts
|
|
31
35
|
export const multiAgentStartScript = readTemplate("scripts/multi-agent/start.sh");
|
|
32
36
|
export const multiAgentCleanupScript = readTemplate("scripts/multi-agent/cleanup.sh");
|
|
33
37
|
export const multiAgentStatusScript = readTemplate("scripts/multi-agent/status.sh");
|
|
38
|
+
export const multiAgentCreatePrScript = readTemplate("scripts/multi-agent/create-pr.sh");
|
|
39
|
+
export const multiAgentPlanScript = readTemplate("scripts/multi-agent/plan.sh");
|
|
34
40
|
// Main scripts
|
|
35
41
|
export const initDeveloperScript = readTemplate("scripts/init-developer.sh");
|
|
36
42
|
export const getDeveloperScript = readTemplate("scripts/get-developer.sh");
|
|
37
|
-
export const
|
|
43
|
+
export const taskScript = readTemplate("scripts/task.sh");
|
|
38
44
|
export const getContextScript = readTemplate("scripts/get-context.sh");
|
|
39
45
|
export const addSessionScript = readTemplate("scripts/add-session.sh");
|
|
40
46
|
export const createBootstrapScript = readTemplate("scripts/create-bootstrap.sh");
|
|
@@ -52,14 +58,20 @@ export function getAllScripts() {
|
|
|
52
58
|
scripts.set("common/developer.sh", commonDeveloperScript);
|
|
53
59
|
scripts.set("common/git-context.sh", commonGitContextScript);
|
|
54
60
|
scripts.set("common/worktree.sh", commonWorktreeScript);
|
|
61
|
+
scripts.set("common/task-queue.sh", commonTaskQueueScript);
|
|
62
|
+
scripts.set("common/task-utils.sh", commonTaskUtilsScript);
|
|
63
|
+
scripts.set("common/phase.sh", commonPhaseScript);
|
|
64
|
+
scripts.set("common/registry.sh", commonRegistryScript);
|
|
55
65
|
// Multi-agent
|
|
56
66
|
scripts.set("multi-agent/start.sh", multiAgentStartScript);
|
|
57
67
|
scripts.set("multi-agent/cleanup.sh", multiAgentCleanupScript);
|
|
58
68
|
scripts.set("multi-agent/status.sh", multiAgentStatusScript);
|
|
69
|
+
scripts.set("multi-agent/create-pr.sh", multiAgentCreatePrScript);
|
|
70
|
+
scripts.set("multi-agent/plan.sh", multiAgentPlanScript);
|
|
59
71
|
// Main
|
|
60
72
|
scripts.set("init-developer.sh", initDeveloperScript);
|
|
61
73
|
scripts.set("get-developer.sh", getDeveloperScript);
|
|
62
|
-
scripts.set("
|
|
74
|
+
scripts.set("task.sh", taskScript);
|
|
63
75
|
scripts.set("get-context.sh", getContextScript);
|
|
64
76
|
scripts.set("add-session.sh", addSessionScript);
|
|
65
77
|
scripts.set("create-bootstrap.sh", createBootstrapScript);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/templates/trellis/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;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,mBAAmB;AACnB,MAAM,CAAC,MAAM,iBAAiB,GAAG,YAAY,CAAC,yBAAyB,CAAC,CAAC;AACzE,MAAM,CAAC,MAAM,qBAAqB,GAAG,YAAY,CAC/C,6BAA6B,CAC9B,CAAC;AACF,MAAM,CAAC,MAAM,sBAAsB,GAAG,YAAY,CAChD,+BAA+B,CAChC,CAAC;AACF,MAAM,CAAC,MAAM,oBAAoB,GAAG,YAAY,CAC9C,4BAA4B,CAC7B,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/templates/trellis/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
#!/bin/bash
|
|
2
|
-
# Add a new session to
|
|
2
|
+
# Add a new session to journal file and update index.md
|
|
3
3
|
#
|
|
4
4
|
# Usage:
|
|
5
5
|
# ./.trellis/scripts/add-session.sh --title "Title" --commit "hash" --summary "Summary"
|
|
@@ -19,20 +19,20 @@ ensure_developer
|
|
|
19
19
|
|
|
20
20
|
DEVELOPER=$(get_developer)
|
|
21
21
|
REPO_ROOT=$(get_repo_root)
|
|
22
|
-
DEV_DIR="$REPO_ROOT/$DIR_WORKFLOW/$
|
|
22
|
+
DEV_DIR="$REPO_ROOT/$DIR_WORKFLOW/$DIR_WORKSPACE/$DEVELOPER"
|
|
23
23
|
INDEX_FILE="$DEV_DIR/index.md"
|
|
24
24
|
|
|
25
25
|
# =============================================================================
|
|
26
26
|
# Helper Functions
|
|
27
27
|
# =============================================================================
|
|
28
28
|
|
|
29
|
-
|
|
29
|
+
get_latest_journal_info() {
|
|
30
30
|
local latest_file=""
|
|
31
31
|
local latest_num=0
|
|
32
32
|
|
|
33
|
-
for f in "$DEV_DIR"
|
|
33
|
+
for f in "$DEV_DIR"/${FILE_JOURNAL_PREFIX}*.md; do
|
|
34
34
|
if [[ -f "$f" ]]; then
|
|
35
|
-
local num=$(basename "$f" | sed
|
|
35
|
+
local num=$(basename "$f" | sed "s/${FILE_JOURNAL_PREFIX}\([0-9]*\)\.md/\1/")
|
|
36
36
|
if [[ "$num" -gt "$latest_num" ]]; then
|
|
37
37
|
latest_num=$num
|
|
38
38
|
latest_file="$f"
|
|
@@ -53,13 +53,13 @@ get_current_session() {
|
|
|
53
53
|
echo "$line" | sed 's/.*: //' | tr -d ' '
|
|
54
54
|
}
|
|
55
55
|
|
|
56
|
-
|
|
56
|
+
count_journal_files() {
|
|
57
57
|
local result=""
|
|
58
|
-
local
|
|
59
|
-
local active_num=$(echo "$
|
|
60
|
-
local active_file="
|
|
58
|
+
local journal_info=$(get_latest_journal_info)
|
|
59
|
+
local active_num=$(echo "$journal_info" | cut -d: -f2)
|
|
60
|
+
local active_file="${FILE_JOURNAL_PREFIX}$active_num.md"
|
|
61
61
|
|
|
62
|
-
for f in $(ls -v "$DEV_DIR"
|
|
62
|
+
for f in $(ls -v "$DEV_DIR"/${FILE_JOURNAL_PREFIX}*.md 2>/dev/null | sort -t- -k2 -n -r); do
|
|
63
63
|
if [[ -f "$f" ]]; then
|
|
64
64
|
local filename=$(basename "$f")
|
|
65
65
|
local lines=$(wc -l < "$f" | tr -d ' ')
|
|
@@ -76,15 +76,15 @@ count_progress_files() {
|
|
|
76
76
|
echo "$result" | sed '/^$/d'
|
|
77
77
|
}
|
|
78
78
|
|
|
79
|
-
|
|
79
|
+
create_new_journal_file() {
|
|
80
80
|
local num=$1
|
|
81
81
|
local prev_num=$((num - 1))
|
|
82
|
-
local new_file="$DEV_DIR
|
|
82
|
+
local new_file="$DEV_DIR/${FILE_JOURNAL_PREFIX}$num.md"
|
|
83
83
|
|
|
84
84
|
cat > "$new_file" << EOF
|
|
85
|
-
#
|
|
85
|
+
# Journal - $DEVELOPER (Part $num)
|
|
86
86
|
|
|
87
|
-
> Continuation from
|
|
87
|
+
> Continuation from \`${FILE_JOURNAL_PREFIX}$prev_num.md\` (archived at ~$MAX_LINES lines)
|
|
88
88
|
> Started: $TODAY
|
|
89
89
|
|
|
90
90
|
---
|
|
@@ -119,7 +119,7 @@ generate_session_content() {
|
|
|
119
119
|
## Session $session_num: $title
|
|
120
120
|
|
|
121
121
|
**Date**: $TODAY
|
|
122
|
-
**
|
|
122
|
+
**Task**: $title
|
|
123
123
|
|
|
124
124
|
### Summary
|
|
125
125
|
|
|
@@ -143,7 +143,7 @@ $commit_table
|
|
|
143
143
|
|
|
144
144
|
### Next Steps
|
|
145
145
|
|
|
146
|
-
- None -
|
|
146
|
+
- None - task complete
|
|
147
147
|
EOF
|
|
148
148
|
}
|
|
149
149
|
|
|
@@ -163,7 +163,7 @@ update_index() {
|
|
|
163
163
|
commit_display=$(echo "$commit" | sed 's/,/, /g' | sed 's/\([a-f0-9]\{7,\}\)/`\1`/g')
|
|
164
164
|
fi
|
|
165
165
|
|
|
166
|
-
local files_table=$(
|
|
166
|
+
local files_table=$(count_journal_files)
|
|
167
167
|
|
|
168
168
|
echo "Updating index.md for session $new_session..."
|
|
169
169
|
echo " Title: $title"
|
|
@@ -299,10 +299,10 @@ add_session() {
|
|
|
299
299
|
extra_content=$(cat)
|
|
300
300
|
fi
|
|
301
301
|
|
|
302
|
-
local
|
|
303
|
-
local current_file=$(echo "$
|
|
304
|
-
local current_num=$(echo "$
|
|
305
|
-
local current_lines=$(echo "$
|
|
302
|
+
local journal_info=$(get_latest_journal_info)
|
|
303
|
+
local current_file=$(echo "$journal_info" | cut -d: -f1)
|
|
304
|
+
local current_num=$(echo "$journal_info" | cut -d: -f2)
|
|
305
|
+
local current_lines=$(echo "$journal_info" | cut -d: -f3)
|
|
306
306
|
local current_session=$(get_current_session)
|
|
307
307
|
local new_session=$((current_session + 1))
|
|
308
308
|
|
|
@@ -317,7 +317,7 @@ add_session() {
|
|
|
317
317
|
echo "Title: $title" >&2
|
|
318
318
|
echo "Commit: $commit" >&2
|
|
319
319
|
echo "" >&2
|
|
320
|
-
echo "Current
|
|
320
|
+
echo "Current journal file: ${FILE_JOURNAL_PREFIX}$current_num.md" >&2
|
|
321
321
|
echo "Current lines: $current_lines" >&2
|
|
322
322
|
echo "New content lines: $content_lines" >&2
|
|
323
323
|
echo "Total after append: $((current_lines + content_lines))" >&2
|
|
@@ -328,8 +328,8 @@ add_session() {
|
|
|
328
328
|
|
|
329
329
|
if [[ $((current_lines + content_lines)) -gt $MAX_LINES ]]; then
|
|
330
330
|
target_num=$((current_num + 1))
|
|
331
|
-
echo "[!] Exceeds $MAX_LINES lines, creating
|
|
332
|
-
target_file=$(
|
|
331
|
+
echo "[!] Exceeds $MAX_LINES lines, creating ${FILE_JOURNAL_PREFIX}$target_num.md" >&2
|
|
332
|
+
target_file=$(create_new_journal_file "$target_num")
|
|
333
333
|
echo "Created: $target_file" >&2
|
|
334
334
|
fi
|
|
335
335
|
|
|
@@ -339,7 +339,7 @@ add_session() {
|
|
|
339
339
|
echo "" >&2
|
|
340
340
|
|
|
341
341
|
# Update index.md directly
|
|
342
|
-
local active_file="
|
|
342
|
+
local active_file="${FILE_JOURNAL_PREFIX}$target_num.md"
|
|
343
343
|
update_index "$title" "$commit" "$new_session" "$active_file"
|
|
344
344
|
|
|
345
345
|
echo "" >&2
|
|
@@ -355,7 +355,7 @@ add_session() {
|
|
|
355
355
|
show_help() {
|
|
356
356
|
echo "Usage: $0 --title \"Title\" [options]"
|
|
357
357
|
echo ""
|
|
358
|
-
echo "Add a new session to
|
|
358
|
+
echo "Add a new session to journal file and update index.md automatically."
|
|
359
359
|
echo ""
|
|
360
360
|
echo "Options:"
|
|
361
361
|
echo " --title TEXT Session title (required)"
|
|
@@ -28,7 +28,7 @@ init_developer() {
|
|
|
28
28
|
fi
|
|
29
29
|
|
|
30
30
|
local dev_file="$repo_root/$DIR_WORKFLOW/$FILE_DEVELOPER"
|
|
31
|
-
local
|
|
31
|
+
local workspace_dir="$repo_root/$DIR_WORKFLOW/$DIR_WORKSPACE/$name"
|
|
32
32
|
|
|
33
33
|
# Create .developer file
|
|
34
34
|
cat > "$dev_file" << EOF
|
|
@@ -36,38 +36,37 @@ name=$name
|
|
|
36
36
|
initialized_at=$(date -Iseconds)
|
|
37
37
|
EOF
|
|
38
38
|
|
|
39
|
-
# Create directory structure
|
|
40
|
-
mkdir -p "$
|
|
41
|
-
mkdir -p "$progress_dir/$DIR_FEATURES/$DIR_ARCHIVE"
|
|
39
|
+
# Create workspace directory structure
|
|
40
|
+
mkdir -p "$workspace_dir"
|
|
42
41
|
|
|
43
|
-
# Create initial
|
|
44
|
-
local
|
|
45
|
-
if [[ ! -f "$
|
|
46
|
-
cat > "$
|
|
47
|
-
#
|
|
42
|
+
# Create initial journal file
|
|
43
|
+
local journal_file="$workspace_dir/${FILE_JOURNAL_PREFIX}1.md"
|
|
44
|
+
if [[ ! -f "$journal_file" ]]; then
|
|
45
|
+
cat > "$journal_file" << JOURNAL_EOF
|
|
46
|
+
# Journal - $name (Part 1)
|
|
48
47
|
|
|
49
|
-
> AI development session
|
|
48
|
+
> AI development session journal
|
|
50
49
|
> Started: $(date +%Y-%m-%d)
|
|
51
50
|
|
|
52
51
|
---
|
|
53
52
|
|
|
54
|
-
|
|
53
|
+
JOURNAL_EOF
|
|
55
54
|
fi
|
|
56
55
|
|
|
57
56
|
# Create index.md with markers for auto-update
|
|
58
|
-
local index_file="$
|
|
57
|
+
local index_file="$workspace_dir/index.md"
|
|
59
58
|
if [[ ! -f "$index_file" ]]; then
|
|
60
59
|
cat > "$index_file" << INDEX_EOF
|
|
61
|
-
#
|
|
60
|
+
# Workspace Index - $name
|
|
62
61
|
|
|
63
|
-
>
|
|
62
|
+
> Journal tracking for AI development sessions.
|
|
64
63
|
|
|
65
64
|
---
|
|
66
65
|
|
|
67
66
|
## Current Status
|
|
68
67
|
|
|
69
68
|
<!-- @@@auto:current-status -->
|
|
70
|
-
- **Active File**: \`
|
|
69
|
+
- **Active File**: \`journal-1.md\`
|
|
71
70
|
- **Total Sessions**: 0
|
|
72
71
|
- **Last Active**: -
|
|
73
72
|
<!-- @@@/auto:current-status -->
|
|
@@ -79,7 +78,7 @@ TRACES_EOF
|
|
|
79
78
|
<!-- @@@auto:active-documents -->
|
|
80
79
|
| File | Lines | Status |
|
|
81
80
|
|------|-------|--------|
|
|
82
|
-
| \`
|
|
81
|
+
| \`journal-1.md\` | ~0 | Active |
|
|
83
82
|
<!-- @@@/auto:active-documents -->
|
|
84
83
|
|
|
85
84
|
---
|
|
@@ -95,15 +94,15 @@ TRACES_EOF
|
|
|
95
94
|
|
|
96
95
|
## Notes
|
|
97
96
|
|
|
98
|
-
- Sessions are appended to
|
|
99
|
-
- New
|
|
97
|
+
- Sessions are appended to journal files
|
|
98
|
+
- New journal file created when current exceeds 2000 lines
|
|
100
99
|
- Use \`add-session.sh\` to record sessions
|
|
101
100
|
INDEX_EOF
|
|
102
101
|
fi
|
|
103
102
|
|
|
104
103
|
echo "Developer initialized: $name"
|
|
105
104
|
echo " .developer file: $dev_file"
|
|
106
|
-
echo "
|
|
105
|
+
echo " Workspace dir: $workspace_dir"
|
|
107
106
|
}
|
|
108
107
|
|
|
109
108
|
ensure_developer() {
|
|
@@ -124,7 +123,7 @@ show_developer_info() {
|
|
|
124
123
|
echo "Developer: (not initialized)"
|
|
125
124
|
else
|
|
126
125
|
echo "Developer: $developer"
|
|
127
|
-
echo "
|
|
128
|
-
echo "
|
|
126
|
+
echo "Workspace: $DIR_WORKFLOW/$DIR_WORKSPACE/$developer/"
|
|
127
|
+
echo "Tasks: $DIR_WORKFLOW/$DIR_TASKS/"
|
|
129
128
|
fi
|
|
130
129
|
}
|