@mindfoldhq/trellis 0.1.0 → 0.1.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/README.md +58 -11
- package/dist/cli/index.js +1 -0
- package/dist/cli/index.js.map +1 -1
- package/dist/commands/init.d.ts.map +1 -1
- package/dist/commands/init.js +28 -3
- package/dist/commands/init.js.map +1 -1
- package/dist/configurators/opencode.d.ts +24 -0
- package/dist/configurators/opencode.d.ts.map +1 -0
- package/dist/configurators/opencode.js +73 -0
- package/dist/configurators/opencode.js.map +1 -0
- package/dist/configurators/workflow.d.ts +2 -0
- package/dist/configurators/workflow.d.ts.map +1 -1
- package/dist/configurators/workflow.js +30 -1
- package/dist/configurators/workflow.js.map +1 -1
- package/dist/templates/agents/bodies/check.md +91 -0
- package/dist/templates/agents/bodies/debug.md +102 -0
- package/dist/templates/agents/{dispatch.txt → bodies/dispatch.md} +17 -12
- package/dist/templates/agents/bodies/implement.md +94 -0
- package/dist/templates/agents/bodies/research.md +113 -0
- package/dist/templates/agents/index.d.ts +22 -15
- package/dist/templates/agents/index.d.ts.map +1 -1
- package/dist/templates/agents/index.js +125 -48
- package/dist/templates/agents/index.js.map +1 -1
- package/dist/templates/agents/metadata.d.ts +48 -0
- package/dist/templates/agents/metadata.d.ts.map +1 -0
- package/dist/templates/agents/metadata.js +101 -0
- package/dist/templates/agents/metadata.js.map +1 -0
- package/dist/templates/commands/claude/parallel.md.txt +199 -0
- package/dist/templates/commands/claude/start.md.txt +120 -55
- package/dist/templates/commands/common/onboard-developer.txt +2 -2
- package/dist/templates/commands/common/record-agent-flow.txt +1 -1
- package/dist/templates/commands/cursor/start.md.txt +92 -29
- package/dist/templates/commands/index.d.ts +2 -0
- package/dist/templates/commands/index.d.ts.map +1 -1
- package/dist/templates/commands/index.js +16 -0
- package/dist/templates/commands/index.js.map +1 -1
- package/dist/templates/commands/opencode/start.md.txt +127 -0
- package/dist/templates/markdown/agent-traces-index.md.txt +8 -9
- package/dist/templates/markdown/agents.md.txt +1 -1
- package/dist/templates/markdown/init-agent.md.txt +8 -8
- package/dist/templates/markdown/workflow.md.txt +6 -6
- package/dist/templates/scripts/add-session.sh.txt +14 -14
- package/dist/templates/scripts/common/developer.sh.txt +13 -13
- package/dist/templates/scripts/common/git-context.sh.txt +8 -8
- package/dist/templates/scripts/common/paths.sh.txt +4 -4
- package/dist/templates/scripts/common/worktree.sh.txt +138 -0
- package/dist/templates/scripts/feature.sh.txt +292 -0
- package/dist/templates/scripts/index.d.ts +12 -1
- package/dist/templates/scripts/index.d.ts.map +1 -1
- package/dist/templates/scripts/index.js +14 -1
- package/dist/templates/scripts/index.js.map +1 -1
- package/dist/templates/scripts/multi-agent/cleanup.sh.txt +327 -0
- package/dist/templates/scripts/multi-agent/start.sh.txt +323 -0
- package/dist/templates/scripts/multi-agent/status.sh.txt +423 -0
- package/dist/templates/scripts/worktree.yaml.txt +49 -0
- package/dist/types/ai-tools.d.ts +2 -2
- package/dist/types/ai-tools.d.ts.map +1 -1
- package/dist/types/ai-tools.js +4 -0
- package/dist/types/ai-tools.js.map +1 -1
- package/package.json +1 -1
- package/dist/templates/agents/check.txt +0 -120
- package/dist/templates/agents/debug.txt +0 -121
- package/dist/templates/agents/implement.txt +0 -114
- package/dist/templates/agents/research.txt +0 -258
|
@@ -22,8 +22,11 @@ function readCommand(subdir, filename) {
|
|
|
22
22
|
// =============================================================================
|
|
23
23
|
// Claude-specific commands
|
|
24
24
|
export const claudeStartTemplate = readCommand("claude", "start.md.txt");
|
|
25
|
+
export const claudeParallelTemplate = readCommand("claude", "parallel.md.txt");
|
|
25
26
|
// Cursor-specific commands
|
|
26
27
|
export const cursorStartTemplate = readCommand("cursor", "start.md.txt");
|
|
28
|
+
// OpenCode-specific commands
|
|
29
|
+
export const opencodeStartTemplate = readCommand("opencode", "start.md.txt");
|
|
27
30
|
// =============================================================================
|
|
28
31
|
// Common Templates (work with all AI tools)
|
|
29
32
|
// =============================================================================
|
|
@@ -54,6 +57,12 @@ const ALL_TEMPLATES = [
|
|
|
54
57
|
description: "Initialize AI agent with project context",
|
|
55
58
|
category: "claude",
|
|
56
59
|
},
|
|
60
|
+
{
|
|
61
|
+
name: "parallel",
|
|
62
|
+
content: claudeParallelTemplate,
|
|
63
|
+
description: "Multi-agent pipeline in isolated worktrees",
|
|
64
|
+
category: "claude",
|
|
65
|
+
},
|
|
57
66
|
// Cursor-specific
|
|
58
67
|
{
|
|
59
68
|
name: "start",
|
|
@@ -61,6 +70,13 @@ const ALL_TEMPLATES = [
|
|
|
61
70
|
description: "Initialize AI agent with project context",
|
|
62
71
|
category: "cursor",
|
|
63
72
|
},
|
|
73
|
+
// OpenCode-specific
|
|
74
|
+
{
|
|
75
|
+
name: "start",
|
|
76
|
+
content: opencodeStartTemplate,
|
|
77
|
+
description: "Initialize AI agent with project context",
|
|
78
|
+
category: "opencode",
|
|
79
|
+
},
|
|
64
80
|
// Common
|
|
65
81
|
{
|
|
66
82
|
name: "record-agent-flow",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/templates/commands/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/templates/commands/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,IAAI,CAAC;AAClC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AACrC,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AAEpC,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAE1D,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,WAAW,CAAC,MAAc,EAAE,QAAgB;IACnD,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;IACnD,OAAO,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;AACzC,CAAC;AAED,gFAAgF;AAChF,0BAA0B;AAC1B,gFAAgF;AAEhF,2BAA2B;AAC3B,MAAM,CAAC,MAAM,mBAAmB,GAAW,WAAW,CACpD,QAAQ,EACR,cAAc,CACf,CAAC;AACF,MAAM,CAAC,MAAM,sBAAsB,GAAW,WAAW,CACvD,QAAQ,EACR,iBAAiB,CAClB,CAAC;AAEF,2BAA2B;AAC3B,MAAM,CAAC,MAAM,mBAAmB,GAAW,WAAW,CACpD,QAAQ,EACR,cAAc,CACf,CAAC;AAEF,6BAA6B;AAC7B,MAAM,CAAC,MAAM,qBAAqB,GAAW,WAAW,CACtD,UAAU,EACV,cAAc,CACf,CAAC;AAEF,gFAAgF;AAChF,4CAA4C;AAC5C,gFAAgF;AAEhF,yBAAyB;AACzB,MAAM,CAAC,MAAM,uBAAuB,GAAW,WAAW,CACxD,QAAQ,EACR,uBAAuB,CACxB,CAAC;AACF,MAAM,CAAC,MAAM,wBAAwB,GAAW,WAAW,CACzD,QAAQ,EACR,uBAAuB,CACxB,CAAC;AAEF,6BAA6B;AAC7B,MAAM,CAAC,MAAM,qBAAqB,GAAW,WAAW,CACtD,QAAQ,EACR,oBAAoB,CACrB,CAAC;AACF,MAAM,CAAC,MAAM,oBAAoB,GAAW,WAAW,CACrD,QAAQ,EACR,mBAAmB,CACpB,CAAC;AACF,MAAM,CAAC,MAAM,uBAAuB,GAAW,WAAW,CACxD,QAAQ,EACR,uBAAuB,CACxB,CAAC;AAEF,2BAA2B;AAC3B,MAAM,CAAC,MAAM,yBAAyB,GAAW,WAAW,CAC1D,QAAQ,EACR,yBAAyB,CAC1B,CAAC;AACF,MAAM,CAAC,MAAM,wBAAwB,GAAW,WAAW,CACzD,QAAQ,EACR,wBAAwB,CACzB,CAAC;AAEF,2BAA2B;AAC3B,MAAM,CAAC,MAAM,kBAAkB,GAAW,WAAW,CACnD,QAAQ,EACR,iBAAiB,CAClB,CAAC;AACF,MAAM,CAAC,MAAM,iBAAiB,GAAW,WAAW,CAClD,QAAQ,EACR,gBAAgB,CACjB,CAAC;AAEF,mBAAmB;AACnB,MAAM,CAAC,MAAM,qBAAqB,GAAW,WAAW,CACtD,QAAQ,EACR,oBAAoB,CACrB,CAAC;AACF,MAAM,CAAC,MAAM,sBAAsB,GAAW,WAAW,CACvD,QAAQ,EACR,qBAAqB,CACtB,CAAC;AAoBF;;GAEG;AACH,MAAM,aAAa,GAAsB;IACvC,kBAAkB;IAClB;QACE,IAAI,EAAE,OAAO;QACb,OAAO,EAAE,mBAAmB;QAC5B,WAAW,EAAE,0CAA0C;QACvD,QAAQ,EAAE,QAAQ;KACnB;IACD;QACE,IAAI,EAAE,UAAU;QAChB,OAAO,EAAE,sBAAsB;QAC/B,WAAW,EAAE,4CAA4C;QACzD,QAAQ,EAAE,QAAQ;KACnB;IACD,kBAAkB;IAClB;QACE,IAAI,EAAE,OAAO;QACb,OAAO,EAAE,mBAAmB;QAC5B,WAAW,EAAE,0CAA0C;QACvD,QAAQ,EAAE,QAAQ;KACnB;IACD,oBAAoB;IACpB;QACE,IAAI,EAAE,OAAO;QACb,OAAO,EAAE,qBAAqB;QAC9B,WAAW,EAAE,0CAA0C;QACvD,QAAQ,EAAE,UAAU;KACrB;IACD,SAAS;IACT;QACE,IAAI,EAAE,mBAAmB;QACzB,OAAO,EAAE,uBAAuB;QAChC,WAAW,EAAE,2CAA2C;QACxD,QAAQ,EAAE,QAAQ;KACnB;IACD;QACE,IAAI,EAAE,mBAAmB;QACzB,OAAO,EAAE,wBAAwB;QACjC,WAAW,EAAE,sCAAsC;QACnD,QAAQ,EAAE,QAAQ;KACnB;IACD;QACE,IAAI,EAAE,gBAAgB;QACtB,OAAO,EAAE,qBAAqB;QAC9B,WAAW,EAAE,6BAA6B;QAC1C,QAAQ,EAAE,QAAQ;KACnB;IACD;QACE,IAAI,EAAE,eAAe;QACrB,OAAO,EAAE,oBAAoB;QAC7B,WAAW,EAAE,4BAA4B;QACzC,QAAQ,EAAE,QAAQ;KACnB;IACD;QACE,IAAI,EAAE,mBAAmB;QACzB,OAAO,EAAE,uBAAuB;QAChC,WAAW,EAAE,+BAA+B;QAC5C,QAAQ,EAAE,QAAQ;KACnB;IACD;QACE,IAAI,EAAE,qBAAqB;QAC3B,OAAO,EAAE,yBAAyB;QAClC,WAAW,EAAE,8CAA8C;QAC3D,QAAQ,EAAE,QAAQ;KACnB;IACD;QACE,IAAI,EAAE,oBAAoB;QAC1B,OAAO,EAAE,wBAAwB;QACjC,WAAW,EAAE,6CAA6C;QAC1D,QAAQ,EAAE,QAAQ;KACnB;IACD;QACE,IAAI,EAAE,aAAa;QACnB,OAAO,EAAE,kBAAkB;QAC3B,WAAW,EAAE,oCAAoC;QACjD,QAAQ,EAAE,QAAQ;KACnB;IACD;QACE,IAAI,EAAE,YAAY;QAClB,OAAO,EAAE,iBAAiB;QAC1B,WAAW,EAAE,kCAAkC;QAC/C,QAAQ,EAAE,QAAQ;KACnB;IACD;QACE,IAAI,EAAE,gBAAgB;QACtB,OAAO,EAAE,qBAAqB;QAC9B,WAAW,EAAE,4BAA4B;QACzC,QAAQ,EAAE,QAAQ;KACnB;IACD;QACE,IAAI,EAAE,iBAAiB;QACvB,OAAO,EAAE,sBAAsB;QAC/B,WAAW,EACT,iEAAiE;QACnE,QAAQ,EAAE,QAAQ;KACnB;CACF,CAAC;AAEF;;GAEG;AACH,MAAM,UAAU,mBAAmB,CAAC,IAAY;IAC9C,MAAM,WAAW,GAAG,eAAe,CAAC,IAAI,CAAC,CAAC;IAC1C,OAAO,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;AACvE,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,eAAe;IAC7B,OAAO,aAAa,CAAC;AACvB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,iBAAiB,CAAC,IAAY;IAC5C,OAAO,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;AACpD,CAAC"}
|
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
# Start Session
|
|
2
|
+
|
|
3
|
+
Initialize your AI development session and begin working on tasks.
|
|
4
|
+
|
|
5
|
+
## Initialization
|
|
6
|
+
|
|
7
|
+
1. Get session context:
|
|
8
|
+
```bash
|
|
9
|
+
./.trellis/scripts/get-context.sh
|
|
10
|
+
```
|
|
11
|
+
|
|
12
|
+
2. Read `.trellis/structure/guides/index.md` for thinking guidelines
|
|
13
|
+
|
|
14
|
+
3. Report ready status and ask for task
|
|
15
|
+
|
|
16
|
+
---
|
|
17
|
+
|
|
18
|
+
## Working on Tasks
|
|
19
|
+
|
|
20
|
+
### For Simple Tasks
|
|
21
|
+
|
|
22
|
+
1. Read relevant guidelines based on task type:
|
|
23
|
+
- Frontend: `.trellis/structure/frontend/`
|
|
24
|
+
- Backend: `.trellis/structure/backend/`
|
|
25
|
+
|
|
26
|
+
2. Implement the task directly
|
|
27
|
+
|
|
28
|
+
3. Before committing, remind user to run `/finish-work`
|
|
29
|
+
|
|
30
|
+
### For Complex Tasks (Multi-Step Features)
|
|
31
|
+
|
|
32
|
+
Use feature tracking and delegate to specialized agents for better quality.
|
|
33
|
+
|
|
34
|
+
#### Step 1: Create Feature
|
|
35
|
+
|
|
36
|
+
```bash
|
|
37
|
+
./.trellis/scripts/feature.sh create <name>
|
|
38
|
+
# Example: ./.trellis/scripts/feature.sh create user-auth
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
#### Step 2: Initialize Context
|
|
42
|
+
|
|
43
|
+
```bash
|
|
44
|
+
FEATURE_DIR=".trellis/agent-traces/{developer}/features/{feature-name}"
|
|
45
|
+
./.trellis/scripts/feature.sh init-context "$FEATURE_DIR" <type>
|
|
46
|
+
# type: backend | frontend | fullstack
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
#### Step 3: Add Task-Specific Guidelines
|
|
50
|
+
|
|
51
|
+
Based on what the task involves, add relevant spec files:
|
|
52
|
+
|
|
53
|
+
```bash
|
|
54
|
+
# Example: adding database and API guidelines for a backend task
|
|
55
|
+
./.trellis/scripts/feature.sh add-context "$FEATURE_DIR" implement ".trellis/structure/backend/database-guidelines.md"
|
|
56
|
+
./.trellis/scripts/feature.sh add-context "$FEATURE_DIR" implement ".trellis/structure/backend/api-module.md"
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
Verify with:
|
|
60
|
+
```bash
|
|
61
|
+
./.trellis/scripts/feature.sh list-context "$FEATURE_DIR"
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
#### Step 4: Document Requirements
|
|
65
|
+
|
|
66
|
+
Create `prd.md` in the feature directory describing what needs to be done.
|
|
67
|
+
|
|
68
|
+
For complex tasks, also create `info.md` with technical approach.
|
|
69
|
+
|
|
70
|
+
#### Step 5: Start Feature
|
|
71
|
+
|
|
72
|
+
```bash
|
|
73
|
+
./.trellis/scripts/feature.sh start "$FEATURE_DIR"
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
#### Step 6: Delegate Work
|
|
77
|
+
|
|
78
|
+
Use specialized agents for implementation. In OpenCode, use the `@agent` syntax:
|
|
79
|
+
|
|
80
|
+
```
|
|
81
|
+
@implement Implement the feature described in prd.md
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
After implementation, verify quality:
|
|
85
|
+
|
|
86
|
+
```
|
|
87
|
+
@check Check code changes and fix any issues
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
#### Step 7: Complete
|
|
91
|
+
|
|
92
|
+
1. Verify typecheck and lint pass
|
|
93
|
+
2. Remind user to test
|
|
94
|
+
3. Remind user to commit
|
|
95
|
+
4. **Record session progress**: Ask user to run `/record-agent-flow`
|
|
96
|
+
5. Archive feature (if fully completed):
|
|
97
|
+
```bash
|
|
98
|
+
./.trellis/scripts/feature.sh archive <feature-name>
|
|
99
|
+
```
|
|
100
|
+
|
|
101
|
+
---
|
|
102
|
+
|
|
103
|
+
## Session End Reminder
|
|
104
|
+
|
|
105
|
+
**IMPORTANT**: When a task or session is completed, always remind the user:
|
|
106
|
+
|
|
107
|
+
> Before ending this session, please run `/record-agent-flow` to record what we accomplished.
|
|
108
|
+
> This helps maintain continuity across sessions.
|
|
109
|
+
|
|
110
|
+
---
|
|
111
|
+
|
|
112
|
+
## Quick Reference
|
|
113
|
+
|
|
114
|
+
| Task Size | Approach |
|
|
115
|
+
|-----------|----------|
|
|
116
|
+
| Small fix / simple change | Implement directly |
|
|
117
|
+
| New feature / multi-file change | Use feature tracking + delegation |
|
|
118
|
+
| Research / exploration | Use research agent |
|
|
119
|
+
|
|
120
|
+
| Command | Purpose |
|
|
121
|
+
|---------|---------|
|
|
122
|
+
| `feature.sh create <name>` | Create feature directory |
|
|
123
|
+
| `feature.sh start <dir>` | Set as current feature |
|
|
124
|
+
| `feature.sh finish` | Clear current feature |
|
|
125
|
+
| `feature.sh archive <name>` | Archive completed feature |
|
|
126
|
+
| `feature.sh list` | List all features |
|
|
127
|
+
| `/record-agent-flow` | **Record session progress (run at session end)** |
|
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
# Agent
|
|
1
|
+
# Agent Traces Index
|
|
2
2
|
|
|
3
|
-
> Records of all AI Agent work
|
|
3
|
+
> Records of all AI Agent work traces across all developers
|
|
4
4
|
|
|
5
5
|
---
|
|
6
6
|
|
|
7
7
|
## Overview
|
|
8
8
|
|
|
9
|
-
This directory tracks
|
|
9
|
+
This directory tracks traces for all developers working with AI Agents on this project.
|
|
10
10
|
|
|
11
11
|
### File Structure
|
|
12
12
|
|
|
@@ -18,7 +18,7 @@ agent-traces/
|
|
|
18
18
|
|-- features/ # Feature files
|
|
19
19
|
| |-- *.json # Active features
|
|
20
20
|
| \-- archive/ # Archived features by month
|
|
21
|
-
\--
|
|
21
|
+
\-- traces-N.md # Progress 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 traces file
|
|
49
49
|
|
|
50
50
|
### For Returning Developers
|
|
51
51
|
|
|
@@ -63,10 +63,10 @@ This will:
|
|
|
63
63
|
|
|
64
64
|
## Guidelines
|
|
65
65
|
|
|
66
|
-
###
|
|
66
|
+
### Traces File Rules
|
|
67
67
|
|
|
68
|
-
- **Max 2000 lines** per
|
|
69
|
-
- When limit is reached, create `
|
|
68
|
+
- **Max 2000 lines** per traces file
|
|
69
|
+
- When limit is reached, create `traces-{N+1}.md`
|
|
70
70
|
- Update your personal `index.md` when creating new files
|
|
71
71
|
|
|
72
72
|
### Session Record Format
|
|
@@ -121,4 +121,3 @@ Use this template when recording sessions:
|
|
|
121
121
|
---
|
|
122
122
|
|
|
123
123
|
**Language**: All documentation must be written in **English**.
|
|
124
|
-
|
|
@@ -11,7 +11,7 @@ Use the `/start` command when starting a new session to:
|
|
|
11
11
|
Use `@/.trellis/` to learn:
|
|
12
12
|
- Development workflow (`workflow.md`)
|
|
13
13
|
- Project structure guidelines (`structure/`)
|
|
14
|
-
-
|
|
14
|
+
- Session traces (`agent-traces/`)
|
|
15
15
|
|
|
16
16
|
Keep this managed block so 'trellis update' can refresh the instructions.
|
|
17
17
|
|
|
@@ -21,7 +21,7 @@
|
|
|
21
21
|
|
|
22
22
|
This creates:
|
|
23
23
|
- `.trellis/.developer` - Your identity file (gitignored, not committed)
|
|
24
|
-
- `.trellis/agent-traces/<your-name>/` - Your personal
|
|
24
|
+
- `.trellis/agent-traces/<your-name>/` - Your personal traces directory
|
|
25
25
|
|
|
26
26
|
**Naming suggestions**:
|
|
27
27
|
- Human developers: Use your name, e.g., `john-doe`
|
|
@@ -116,12 +116,12 @@ your-project/
|
|
|
116
116
|
│ │ ├── feature.sh # Feature management
|
|
117
117
|
│ │ ├── get-context.sh # Get session context
|
|
118
118
|
│ │ └── add-session.sh # Record session
|
|
119
|
-
│ ├── agent-traces/ # Work
|
|
119
|
+
│ ├── agent-traces/ # Work traces records
|
|
120
120
|
│ │ └── {developer}/ # Per-developer directories
|
|
121
121
|
│ │ ├── features/ # Feature directories
|
|
122
122
|
│ │ │ └── {day}-{name}/
|
|
123
123
|
│ │ │ └── feature.json
|
|
124
|
-
│ │ └──
|
|
124
|
+
│ │ └── traces-N.md
|
|
125
125
|
│ ├── structure/ # [!] Development guidelines (MUST READ)
|
|
126
126
|
│ │ ├── frontend/
|
|
127
127
|
│ │ │ ├── index.md # Frontend guidelines index
|
|
@@ -148,7 +148,7 @@ This project uses a structured workflow system based on [Anthropic's best practi
|
|
|
148
148
|
|------|---------|----------------|
|
|
149
149
|
| `.trellis/workflow.md` | Complete workflow guide | Read at session start |
|
|
150
150
|
| `.trellis/agent-traces/{developer}/features/` | Feature tracking | When creating/completing features |
|
|
151
|
-
| `.trellis/agent-traces/{developer}/
|
|
151
|
+
| `.trellis/agent-traces/{developer}/traces-N.md` | Session work records | After each session |
|
|
152
152
|
|
|
153
153
|
### Key Rules (CRITICAL - Must Follow)
|
|
154
154
|
|
|
@@ -158,9 +158,9 @@ This project uses a structured workflow system based on [Anthropic's best practi
|
|
|
158
158
|
- This is **mandatory**, not optional
|
|
159
159
|
|
|
160
160
|
**2. Document Limits** **CRITICAL RULE**
|
|
161
|
-
- `agent-traces/{developer}/
|
|
161
|
+
- `agent-traces/{developer}/traces-N.md` max 2000 lines
|
|
162
162
|
- **IMPORTANT: Only create new file when current file EXCEEDS 2000 lines**
|
|
163
|
-
- File naming: Use sequential numbers (`
|
|
163
|
+
- File naming: Use sequential numbers (`traces-1.md`, `traces-2.md`...)
|
|
164
164
|
|
|
165
165
|
**3. Update Tracking Files**
|
|
166
166
|
- After completing work: Update `agent-traces` (include commit hashes)
|
|
@@ -214,7 +214,7 @@ This project uses a structured workflow system based on [Anthropic's best practi
|
|
|
214
214
|
```
|
|
215
215
|
|
|
216
216
|
This automatically:
|
|
217
|
-
- Appends session to current
|
|
217
|
+
- Appends session to current traces file
|
|
218
218
|
- Creates new file if 2000-line limit exceeded
|
|
219
219
|
- Updates index.md
|
|
220
220
|
|
|
@@ -294,7 +294,7 @@ git diff main...HEAD
|
|
|
294
294
|
|
|
295
295
|
- [ ] Run lint and type-check - Must pass
|
|
296
296
|
- [ ] Commit with proper message format
|
|
297
|
-
- [ ] Run `add-session.sh` to record
|
|
297
|
+
- [ ] Run `add-session.sh` to record session
|
|
298
298
|
- [ ] Archive feature if completed with `feature.sh archive`
|
|
299
299
|
|
|
300
300
|
---
|
|
@@ -40,14 +40,14 @@
|
|
|
40
40
|
| |-- feature.sh # Manage features
|
|
41
41
|
| |-- get-context.sh # Get session context
|
|
42
42
|
| \-- add-session.sh # One-click session recording
|
|
43
|
-
|-- agent-traces/ # AI Agent work
|
|
44
|
-
| |-- index.md #
|
|
43
|
+
|-- agent-traces/ # AI Agent work traces records
|
|
44
|
+
| |-- index.md # Traces index + Session template
|
|
45
45
|
| \-- {developer}/ # Per-developer directories
|
|
46
46
|
| |-- index.md # Personal index (with @@@auto markers)
|
|
47
47
|
| |-- features/ # Feature directories
|
|
48
48
|
| | \-- {day}-{name}/
|
|
49
49
|
| | \-- feature.json
|
|
50
|
-
| \--
|
|
50
|
+
| \-- traces-N.md # Traces files (sequential numbering)
|
|
51
51
|
|-- structure/ # [!] MUST READ before coding
|
|
52
52
|
| |-- frontend/ # Frontend guidelines (if applicable)
|
|
53
53
|
| | |-- index.md # Start here - guidelines index
|
|
@@ -168,7 +168,7 @@ After code is committed, use:
|
|
|
168
168
|
```
|
|
169
169
|
|
|
170
170
|
This automatically:
|
|
171
|
-
1. Detects current
|
|
171
|
+
1. Detects current traces file
|
|
172
172
|
2. Creates new file if 2000-line limit exceeded
|
|
173
173
|
3. Appends session content
|
|
174
174
|
4. Updates index.md (sessions count, history table)
|
|
@@ -186,7 +186,7 @@ Use `/finish-work` command to run through:
|
|
|
186
186
|
|
|
187
187
|
## File Descriptions
|
|
188
188
|
|
|
189
|
-
### 1. agent-traces/ - Agent Work
|
|
189
|
+
### 1. agent-traces/ - Agent Work Traces
|
|
190
190
|
|
|
191
191
|
**Purpose**: Record each AI Agent session's work content
|
|
192
192
|
|
|
@@ -199,7 +199,7 @@ agent-traces/
|
|
|
199
199
|
|-- features/ # Feature directories
|
|
200
200
|
| \-- {day}-{name}/ # Each feature is a directory
|
|
201
201
|
| \-- feature.json
|
|
202
|
-
\--
|
|
202
|
+
\-- traces-N.md # Traces files (sequential: 1, 2, 3...)
|
|
203
203
|
```
|
|
204
204
|
|
|
205
205
|
**When to update**:
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
#!/bin/bash
|
|
2
|
-
# Add a new session to
|
|
2
|
+
# Add a new session to traces file and update index.md
|
|
3
3
|
#
|
|
4
4
|
# Usage:
|
|
5
5
|
# ./.trellis/scripts/add-session.sh --title "Title" --commit "hash" --summary "Summary"
|
|
@@ -30,9 +30,9 @@ get_latest_progress_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"/traces-*.md; do
|
|
34
34
|
if [[ -f "$f" ]]; then
|
|
35
|
-
local num=$(basename "$f" | sed 's/
|
|
35
|
+
local num=$(basename "$f" | sed 's/traces-\([0-9]*\)\.md/\1/')
|
|
36
36
|
if [[ "$num" -gt "$latest_num" ]]; then
|
|
37
37
|
latest_num=$num
|
|
38
38
|
latest_file="$f"
|
|
@@ -57,9 +57,9 @@ count_progress_files() {
|
|
|
57
57
|
local result=""
|
|
58
58
|
local progress_info=$(get_latest_progress_info)
|
|
59
59
|
local active_num=$(echo "$progress_info" | cut -d: -f2)
|
|
60
|
-
local active_file="
|
|
60
|
+
local active_file="traces-$active_num.md"
|
|
61
61
|
|
|
62
|
-
for f in $(ls -v "$DEV_DIR"/
|
|
62
|
+
for f in $(ls -v "$DEV_DIR"/traces-*.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_traces_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/traces-$num.md"
|
|
83
83
|
|
|
84
84
|
cat > "$new_file" << EOF
|
|
85
|
-
# Agent
|
|
85
|
+
# Agent Traces - $DEVELOPER (Part $num)
|
|
86
86
|
|
|
87
|
-
> Continuation from \`
|
|
87
|
+
> Continuation from \`traces-$prev_num.md\` (archived at ~$MAX_LINES lines)
|
|
88
88
|
> Started: $TODAY
|
|
89
89
|
|
|
90
90
|
---
|
|
@@ -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 traces file: traces-$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 traces-$target_num.md" >&2
|
|
332
|
+
target_file=$(create_new_traces_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="traces-$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 traces file and update index.md automatically."
|
|
359
359
|
echo ""
|
|
360
360
|
echo "Options:"
|
|
361
361
|
echo " --title TEXT Session title (required)"
|
|
@@ -40,34 +40,34 @@ EOF
|
|
|
40
40
|
mkdir -p "$progress_dir/$DIR_FEATURES"
|
|
41
41
|
mkdir -p "$progress_dir/$DIR_FEATURES/$DIR_ARCHIVE"
|
|
42
42
|
|
|
43
|
-
# Create initial
|
|
44
|
-
local
|
|
45
|
-
if [[ ! -f "$
|
|
46
|
-
cat > "$
|
|
47
|
-
# Agent
|
|
43
|
+
# Create initial traces file
|
|
44
|
+
local traces_file="$progress_dir/traces-1.md"
|
|
45
|
+
if [[ ! -f "$traces_file" ]]; then
|
|
46
|
+
cat > "$traces_file" << TRACES_EOF
|
|
47
|
+
# Agent Traces - $name (Part 1)
|
|
48
48
|
|
|
49
|
-
> AI development session
|
|
49
|
+
> AI development session traces
|
|
50
50
|
> Started: $(date +%Y-%m-%d)
|
|
51
51
|
|
|
52
52
|
---
|
|
53
53
|
|
|
54
|
-
|
|
54
|
+
TRACES_EOF
|
|
55
55
|
fi
|
|
56
56
|
|
|
57
57
|
# Create index.md with markers for auto-update
|
|
58
58
|
local index_file="$progress_dir/index.md"
|
|
59
59
|
if [[ ! -f "$index_file" ]]; then
|
|
60
60
|
cat > "$index_file" << INDEX_EOF
|
|
61
|
-
# Agent
|
|
61
|
+
# Agent Traces Index - $name
|
|
62
62
|
|
|
63
|
-
>
|
|
63
|
+
> Traces tracking for AI development sessions.
|
|
64
64
|
|
|
65
65
|
---
|
|
66
66
|
|
|
67
67
|
## Current Status
|
|
68
68
|
|
|
69
69
|
<!-- @@@auto:current-status -->
|
|
70
|
-
- **Active File**: \`
|
|
70
|
+
- **Active File**: \`traces-1.md\`
|
|
71
71
|
- **Total Sessions**: 0
|
|
72
72
|
- **Last Active**: -
|
|
73
73
|
<!-- @@@/auto:current-status -->
|
|
@@ -79,7 +79,7 @@ PROGRESS_EOF
|
|
|
79
79
|
<!-- @@@auto:active-documents -->
|
|
80
80
|
| File | Lines | Status |
|
|
81
81
|
|------|-------|--------|
|
|
82
|
-
| \`
|
|
82
|
+
| \`traces-1.md\` | ~0 | Active |
|
|
83
83
|
<!-- @@@/auto:active-documents -->
|
|
84
84
|
|
|
85
85
|
---
|
|
@@ -95,8 +95,8 @@ PROGRESS_EOF
|
|
|
95
95
|
|
|
96
96
|
## Notes
|
|
97
97
|
|
|
98
|
-
- Sessions are appended to
|
|
99
|
-
- New
|
|
98
|
+
- Sessions are appended to traces files
|
|
99
|
+
- New traces file created when current exceeds 2000 lines
|
|
100
100
|
- Use \`add-session.sh\` to record sessions
|
|
101
101
|
INDEX_EOF
|
|
102
102
|
fi
|
|
@@ -88,7 +88,7 @@ output_json() {
|
|
|
88
88
|
"active": $features_json,
|
|
89
89
|
"directory": "$DIR_WORKFLOW/$DIR_PROGRESS/$developer/$DIR_FEATURES"
|
|
90
90
|
},
|
|
91
|
-
"
|
|
91
|
+
"traces": {
|
|
92
92
|
"file": "$progress_relative",
|
|
93
93
|
"lines": $progress_lines,
|
|
94
94
|
"nearLimit": $([ "$progress_lines" -gt 1800 ] && echo "true" || echo "false")
|
|
@@ -190,23 +190,23 @@ output_text() {
|
|
|
190
190
|
echo "Total: $feature_count active feature(s)"
|
|
191
191
|
echo ""
|
|
192
192
|
|
|
193
|
-
echo "##
|
|
194
|
-
local
|
|
195
|
-
if [[ -n "$
|
|
196
|
-
local lines=$(count_lines "$
|
|
197
|
-
local relative="$DIR_WORKFLOW/$DIR_PROGRESS/$developer/$(basename "$
|
|
193
|
+
echo "## TRACES FILE"
|
|
194
|
+
local traces_file=$(get_active_progress_file "$repo_root")
|
|
195
|
+
if [[ -n "$traces_file" ]]; then
|
|
196
|
+
local lines=$(count_lines "$traces_file")
|
|
197
|
+
local relative="$DIR_WORKFLOW/$DIR_PROGRESS/$developer/$(basename "$traces_file")"
|
|
198
198
|
echo "Active file: $relative"
|
|
199
199
|
echo "Line count: $lines / 2000"
|
|
200
200
|
if [[ "$lines" -gt 1800 ]]; then
|
|
201
201
|
echo "[!] WARNING: Approaching 2000 line limit!"
|
|
202
202
|
fi
|
|
203
203
|
else
|
|
204
|
-
echo "No
|
|
204
|
+
echo "No traces file found"
|
|
205
205
|
fi
|
|
206
206
|
echo ""
|
|
207
207
|
|
|
208
208
|
echo "## PATHS"
|
|
209
|
-
echo "
|
|
209
|
+
echo "Traces dir: $DIR_WORKFLOW/$DIR_PROGRESS/$developer/"
|
|
210
210
|
echo "Features dir: $DIR_WORKFLOW/$DIR_PROGRESS/$developer/$DIR_FEATURES/"
|
|
211
211
|
echo "Index file: $DIR_WORKFLOW/$DIR_PROGRESS/$developer/index.md"
|
|
212
212
|
echo ""
|
|
@@ -8,8 +8,8 @@
|
|
|
8
8
|
# get_repo_root - Get repository root directory
|
|
9
9
|
# get_developer - Get developer name
|
|
10
10
|
# get_features_dir - Get features directory
|
|
11
|
-
# get_progress_dir - Get
|
|
12
|
-
# get_active_progress_file - Get current
|
|
11
|
+
# get_progress_dir - Get traces directory
|
|
12
|
+
# get_active_progress_file - Get current traces file
|
|
13
13
|
|
|
14
14
|
# =============================================================================
|
|
15
15
|
# Path Constants (change here to rename directories)
|
|
@@ -108,9 +108,9 @@ get_active_progress_file() {
|
|
|
108
108
|
|
|
109
109
|
local latest=""
|
|
110
110
|
local highest=0
|
|
111
|
-
for f in "$progress_dir"/
|
|
111
|
+
for f in "$progress_dir"/traces-*.md; do
|
|
112
112
|
if [[ -f "$f" ]]; then
|
|
113
|
-
local num=$(basename "$f" | sed 's/
|
|
113
|
+
local num=$(basename "$f" | sed 's/traces-//' | sed 's/\.md//')
|
|
114
114
|
if [[ "$num" =~ ^[0-9]+$ ]] && [[ "$num" -gt "$highest" ]]; then
|
|
115
115
|
highest=$num
|
|
116
116
|
latest="$f"
|