@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
package/README.md
CHANGED
|
@@ -2,6 +2,8 @@
|
|
|
2
2
|
|
|
3
3
|
English | [中文](./README-zh.md)
|
|
4
4
|
|
|
5
|
+

|
|
6
|
+
|
|
5
7
|
AI capabilities grow like ivy — full of vitality but climbing in all directions. Trellis provides the structure to guide them along a disciplined path.
|
|
6
8
|
|
|
7
9
|
Based on Anthropic's [Effective Harnesses for Long-Running Agents](https://www.anthropic.com/engineering/effective-harnesses-for-long-running-agents), with engineering practices and improvements for real-world usage.
|
|
@@ -45,21 +47,24 @@ your-project/
|
|
|
45
47
|
│ │ │ ├── {day}-{name}/ # Feature directory
|
|
46
48
|
│ │ │ │ └── feature.json
|
|
47
49
|
│ │ │ └── archive/ # Completed features
|
|
48
|
-
│ │ └──
|
|
50
|
+
│ │ └── traces-N.md # Session records
|
|
49
51
|
│ ├── structure/ # Development guidelines
|
|
50
52
|
│ │ ├── frontend/ # Frontend standards
|
|
51
53
|
│ │ ├── backend/ # Backend standards
|
|
52
54
|
│ │ └── guides/ # Thinking guides
|
|
53
|
-
│
|
|
54
|
-
│
|
|
55
|
-
│
|
|
56
|
-
│
|
|
57
|
-
│
|
|
58
|
-
│
|
|
59
|
-
│
|
|
60
|
-
│
|
|
61
|
-
│
|
|
62
|
-
│
|
|
55
|
+
│ ├── scripts/ # Utility scripts
|
|
56
|
+
│ │ ├── common/ # Shared utilities
|
|
57
|
+
│ │ │ ├── paths.sh # Path utilities
|
|
58
|
+
│ │ │ ├── developer.sh # Developer management
|
|
59
|
+
│ │ │ ├── git-context.sh # Git context
|
|
60
|
+
│ │ │ └── worktree.sh # Worktree utilities
|
|
61
|
+
│ │ ├── multi-agent/ # Multi-agent pipeline
|
|
62
|
+
│ │ │ ├── start.sh # Start worktree agent
|
|
63
|
+
│ │ │ ├── cleanup.sh # Cleanup worktree
|
|
64
|
+
│ │ │ └── status.sh # Monitor agents
|
|
65
|
+
│ │ ├── feature.sh # Feature management
|
|
66
|
+
│ │ └── ...
|
|
67
|
+
│ └── worktree.yaml # Worktree configuration
|
|
63
68
|
├── .cursor/commands/ # Cursor slash commands
|
|
64
69
|
├── .claude/commands/ # Claude Code slash commands
|
|
65
70
|
├── init-agent.md # AI onboarding guide
|
|
@@ -111,6 +116,37 @@ Track features with directory-based structure:
|
|
|
111
116
|
./.trellis/scripts/feature.sh archive my-feature # Archive completed
|
|
112
117
|
```
|
|
113
118
|
|
|
119
|
+
### 5. Multi-Agent Pipeline (Worktree Support)
|
|
120
|
+
|
|
121
|
+
Run multiple AI agents in parallel using git worktrees for isolation:
|
|
122
|
+
|
|
123
|
+
```bash
|
|
124
|
+
# 1. Create feature and set branch
|
|
125
|
+
./.trellis/scripts/feature.sh create my-feature
|
|
126
|
+
./.trellis/scripts/feature.sh set-branch <feature-dir> feature/my-feature
|
|
127
|
+
|
|
128
|
+
# 2. Start agent in isolated worktree
|
|
129
|
+
./.trellis/scripts/multi-agent/start.sh <feature-dir>
|
|
130
|
+
|
|
131
|
+
# 3. Monitor agents
|
|
132
|
+
./.trellis/scripts/multi-agent/status.sh --list # List all agents
|
|
133
|
+
./.trellis/scripts/multi-agent/status.sh --watch <feature> # Watch logs
|
|
134
|
+
|
|
135
|
+
# 4. Cleanup when done
|
|
136
|
+
./.trellis/scripts/multi-agent/cleanup.sh <branch-name>
|
|
137
|
+
```
|
|
138
|
+
|
|
139
|
+
Configure worktree behavior in `.trellis/worktree.yaml`:
|
|
140
|
+
|
|
141
|
+
```yaml
|
|
142
|
+
worktree_dir: ../worktrees # Where to create worktrees
|
|
143
|
+
copy: # Files to copy to each worktree
|
|
144
|
+
- .env
|
|
145
|
+
- .trellis/.developer
|
|
146
|
+
post_create: # Commands after worktree creation
|
|
147
|
+
- pnpm install
|
|
148
|
+
```
|
|
149
|
+
|
|
114
150
|
## CLI Commands
|
|
115
151
|
|
|
116
152
|
```bash
|
|
@@ -134,6 +170,17 @@ This creates a structured, documented workflow where:
|
|
|
134
170
|
- Code quality standards are enforced
|
|
135
171
|
- Multiple agents can collaborate
|
|
136
172
|
|
|
173
|
+
## Roadmap
|
|
174
|
+
|
|
175
|
+
Planned features for future releases:
|
|
176
|
+
|
|
177
|
+
| Feature | Description |
|
|
178
|
+
|---------|-------------|
|
|
179
|
+
| **Monorepo Support** | Adapt Trellis for monorepo project structures |
|
|
180
|
+
| **Worktree Isolation** | Each new session uses an isolated git worktree |
|
|
181
|
+
| **Parallel Sessions** | Concurrent execution when multiple tasks are in the queue |
|
|
182
|
+
| **Conversation Persistence** | Persist engineer-AI conversation records |
|
|
183
|
+
|
|
137
184
|
## Acknowledgments
|
|
138
185
|
|
|
139
186
|
Trellis is built upon ideas and inspirations from:
|
package/dist/cli/index.js
CHANGED
|
@@ -19,6 +19,7 @@ program
|
|
|
19
19
|
.description("Initialize trellis in the current project")
|
|
20
20
|
.option("--cursor", "Include Cursor commands")
|
|
21
21
|
.option("--claude", "Include Claude Code commands")
|
|
22
|
+
// .option("--opencode", "Include OpenCode commands") // TODO: Re-enable when OpenCode support is stable
|
|
22
23
|
.option("-y, --yes", "Skip prompts and use defaults")
|
|
23
24
|
.option("-u, --user <name>", "Initialize developer identity with specified name")
|
|
24
25
|
.option("-f, --force", "Overwrite existing files without asking")
|
package/dist/cli/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAC;AAM3C,iCAAiC;AACjC,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AAC/D,MAAM,eAAe,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,oBAAoB,CAAC,CAAC;AACtE,MAAM,WAAW,GAAgB,IAAI,CAAC,KAAK,CACzC,EAAE,CAAC,YAAY,CAAC,eAAe,EAAE,OAAO,CAAC,CAC1C,CAAC;AACF,MAAM,CAAC,MAAM,OAAO,GAAW,WAAW,CAAC,OAAO,CAAC;AAEnD,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;AAE9B,OAAO;KACJ,IAAI,CAAC,SAAS,CAAC;KACf,WAAW,CACV,6EAA6E,CAC9E;KACA,OAAO,CAAC,OAAO,EAAE,eAAe,EAAE,2BAA2B,CAAC,CAAC;AAElE,OAAO;KACJ,OAAO,CAAC,MAAM,CAAC;KACf,WAAW,CAAC,2CAA2C,CAAC;KACxD,MAAM,CAAC,UAAU,EAAE,yBAAyB,CAAC;KAC7C,MAAM,CAAC,UAAU,EAAE,8BAA8B,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAC;AAM3C,iCAAiC;AACjC,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AAC/D,MAAM,eAAe,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,oBAAoB,CAAC,CAAC;AACtE,MAAM,WAAW,GAAgB,IAAI,CAAC,KAAK,CACzC,EAAE,CAAC,YAAY,CAAC,eAAe,EAAE,OAAO,CAAC,CAC1C,CAAC;AACF,MAAM,CAAC,MAAM,OAAO,GAAW,WAAW,CAAC,OAAO,CAAC;AAEnD,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;AAE9B,OAAO;KACJ,IAAI,CAAC,SAAS,CAAC;KACf,WAAW,CACV,6EAA6E,CAC9E;KACA,OAAO,CAAC,OAAO,EAAE,eAAe,EAAE,2BAA2B,CAAC,CAAC;AAElE,OAAO;KACJ,OAAO,CAAC,MAAM,CAAC;KACf,WAAW,CAAC,2CAA2C,CAAC;KACxD,MAAM,CAAC,UAAU,EAAE,yBAAyB,CAAC;KAC7C,MAAM,CAAC,UAAU,EAAE,8BAA8B,CAAC;IACnD,yGAAyG;KACxG,MAAM,CAAC,WAAW,EAAE,+BAA+B,CAAC;KACpD,MAAM,CACL,mBAAmB,EACnB,mDAAmD,CACpD;KACA,MAAM,CAAC,aAAa,EAAE,yCAAyC,CAAC;KAChE,MAAM,CAAC,qBAAqB,EAAE,oCAAoC,CAAC;KACnE,MAAM,CAAC,KAAK,EAAE,OAAgC,EAAE,EAAE;IACjD,IAAI,CAAC;QACH,MAAM,IAAI,CAAC,OAAO,CAAC,CAAC;IACtB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CACX,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,EACnB,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAC/C,CAAC;QACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC,CAAC,CAAC;AAEL,OAAO;KACJ,OAAO,CAAC,QAAQ,CAAC;KACjB,WAAW,CAAC,2CAA2C,CAAC;KACxD,MAAM,CAAC,GAAG,EAAE;IACX,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,6BAA6B,CAAC,CAAC,CAAC;AAC3D,CAAC,CAAC,CAAC;AAEL,OAAO,CAAC,KAAK,EAAE,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAmCA,UAAU,WAAW;IACnB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,OAAO,CAAC;IAEjB,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AAMD,wBAAsB,IAAI,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAqR9D"}
|
package/dist/commands/init.js
CHANGED
|
@@ -7,6 +7,11 @@ import figlet from "figlet";
|
|
|
7
7
|
import inquirer from "inquirer";
|
|
8
8
|
import { configureClaude, configureClaudeAgents, configureClaudeHooks, } from "../configurators/claude.js";
|
|
9
9
|
import { configureCursor } from "../configurators/cursor.js";
|
|
10
|
+
// TODO: Re-enable when OpenCode support is stable
|
|
11
|
+
// import {
|
|
12
|
+
// configureOpenCode,
|
|
13
|
+
// configureOpenCodeAgents,
|
|
14
|
+
// } from "../configurators/opencode.js";
|
|
10
15
|
import { createWorkflowStructure } from "../configurators/workflow.js";
|
|
11
16
|
import { PATHS } from "../constants/paths.js";
|
|
12
17
|
import { agentsMdContent, initAgentContent, } from "../templates/markdown/index.js";
|
|
@@ -83,6 +88,10 @@ export async function init(options) {
|
|
|
83
88
|
if (options.claude) {
|
|
84
89
|
tools.push("claude");
|
|
85
90
|
}
|
|
91
|
+
// TODO: Re-enable when OpenCode support is stable
|
|
92
|
+
// if (options.opencode) {
|
|
93
|
+
// tools.push("opencode");
|
|
94
|
+
// }
|
|
86
95
|
// Treat unknown as fullstack
|
|
87
96
|
if (detectedType === "unknown") {
|
|
88
97
|
projectType = "fullstack";
|
|
@@ -98,6 +107,8 @@ export async function init(options) {
|
|
|
98
107
|
choices: [
|
|
99
108
|
{ name: "Cursor", value: "cursor", checked: true },
|
|
100
109
|
{ name: "Claude Code", value: "claude", checked: true },
|
|
110
|
+
// TODO: Re-enable when OpenCode support is stable
|
|
111
|
+
// { name: "OpenCode", value: "opencode", checked: false },
|
|
101
112
|
],
|
|
102
113
|
},
|
|
103
114
|
];
|
|
@@ -109,7 +120,9 @@ export async function init(options) {
|
|
|
109
120
|
}
|
|
110
121
|
}
|
|
111
122
|
// Auto-enable agents when Claude is selected
|
|
112
|
-
const
|
|
123
|
+
const enableClaudeAgents = tools.includes("claude");
|
|
124
|
+
// TODO: Re-enable when OpenCode support is stable
|
|
125
|
+
// const enableOpenCodeAgents = tools.includes("opencode");
|
|
113
126
|
if (tools.length === 0) {
|
|
114
127
|
console.log(chalk.yellow("No tools selected. At least one tool is required."));
|
|
115
128
|
return;
|
|
@@ -117,8 +130,9 @@ export async function init(options) {
|
|
|
117
130
|
console.log(chalk.gray(`\nConfiguring: ${tools.join(", ")}`));
|
|
118
131
|
console.log(chalk.gray(`Project type: ${getProjectTypeDescription(projectType)}\n`));
|
|
119
132
|
// Create workflow structure with project type
|
|
133
|
+
// Multi-agent is enabled by default
|
|
120
134
|
console.log(chalk.blue("📁 Creating workflow structure..."));
|
|
121
|
-
await createWorkflowStructure(cwd, { projectType });
|
|
135
|
+
await createWorkflowStructure(cwd, { projectType, multiAgent: true });
|
|
122
136
|
// Configure selected tools
|
|
123
137
|
if (tools.includes("cursor")) {
|
|
124
138
|
console.log(chalk.blue("📝 Configuring Cursor commands..."));
|
|
@@ -128,7 +142,7 @@ export async function init(options) {
|
|
|
128
142
|
console.log(chalk.blue("📝 Configuring Claude Code commands..."));
|
|
129
143
|
await configureClaude(cwd);
|
|
130
144
|
// Configure Multi-Agent Pipeline if enabled
|
|
131
|
-
if (
|
|
145
|
+
if (enableClaudeAgents) {
|
|
132
146
|
console.log(chalk.blue("🤖 Configuring Multi-Agent Pipeline..."));
|
|
133
147
|
console.log(chalk.gray(" - Creating agent configurations..."));
|
|
134
148
|
await configureClaudeAgents(cwd);
|
|
@@ -136,6 +150,17 @@ export async function init(options) {
|
|
|
136
150
|
await configureClaudeHooks(cwd);
|
|
137
151
|
}
|
|
138
152
|
}
|
|
153
|
+
// TODO: Re-enable when OpenCode support is stable
|
|
154
|
+
// if (tools.includes("opencode")) {
|
|
155
|
+
// console.log(chalk.blue("📝 Configuring OpenCode commands..."));
|
|
156
|
+
// await configureOpenCode(cwd);
|
|
157
|
+
//
|
|
158
|
+
// // Configure OpenCode agents
|
|
159
|
+
// if (enableOpenCodeAgents) {
|
|
160
|
+
// console.log(chalk.blue("🤖 Configuring OpenCode agents..."));
|
|
161
|
+
// await configureOpenCodeAgents(cwd);
|
|
162
|
+
// }
|
|
163
|
+
// }
|
|
139
164
|
// Create root files (skip if exists)
|
|
140
165
|
await createRootFiles(cwd);
|
|
141
166
|
// Initialize developer identity (developerName already detected at the start)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,QAAQ,MAAM,eAAe,CAAC;AACrC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,MAAM,MAAM,QAAQ,CAAC;AAC5B,OAAO,QAAQ,MAAM,UAAU,CAAC;AAChC,OAAO,EACL,eAAe,EACf,qBAAqB,EACrB,oBAAoB,GACrB,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAC7D,OAAO,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AACvE,OAAO,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAC9C,OAAO,EACL,eAAe,EACf,gBAAgB,GACjB,MAAM,gCAAgC,CAAC;AACxC,OAAO,EACL,YAAY,EACZ,SAAS,GAEV,MAAM,yBAAyB,CAAC;AACjC,OAAO,EACL,iBAAiB,EACjB,yBAAyB,GAE1B,MAAM,8BAA8B,CAAC;
|
|
1
|
+
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Configure OpenCode with slash commands
|
|
3
|
+
*
|
|
4
|
+
* OpenCode uses .opencode/commands/ for slash commands,
|
|
5
|
+
* similar to Claude Code's .claude/commands/
|
|
6
|
+
*/
|
|
7
|
+
export declare function configureOpenCode(cwd: string): Promise<void>;
|
|
8
|
+
/**
|
|
9
|
+
* Configure OpenCode agents
|
|
10
|
+
*
|
|
11
|
+
* Uses the shared agent templates with OpenCode-specific frontmatter format.
|
|
12
|
+
* OpenCode agents use YAML frontmatter with tools as boolean object.
|
|
13
|
+
*/
|
|
14
|
+
export declare function configureOpenCodeAgents(cwd: string): Promise<void>;
|
|
15
|
+
/**
|
|
16
|
+
* Configure OpenCode with full support
|
|
17
|
+
*
|
|
18
|
+
* This includes:
|
|
19
|
+
* - Slash commands
|
|
20
|
+
* - Agent configurations
|
|
21
|
+
* - .opencode.json configuration
|
|
22
|
+
*/
|
|
23
|
+
export declare function configureOpenCodeFull(cwd: string): Promise<void>;
|
|
24
|
+
//# sourceMappingURL=opencode.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"opencode.d.ts","sourceRoot":"","sources":["../../src/configurators/opencode.ts"],"names":[],"mappings":"AA0BA;;;;;GAKG;AACH,wBAAsB,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAmBlE;AAED;;;;;GAKG;AACH,wBAAsB,uBAAuB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAcxE;AAED;;;;;;;GAOG;AACH,wBAAsB,qBAAqB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAGtE"}
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
import path from "node:path";
|
|
2
|
+
import { getCommandTemplates } from "./templates.js";
|
|
3
|
+
import { writeFile, ensureDir } from "../utils/file-writer.js";
|
|
4
|
+
import { getAllAgents } from "../templates/agents/index.js";
|
|
5
|
+
/**
|
|
6
|
+
* OpenCode configuration file content
|
|
7
|
+
*
|
|
8
|
+
* Note: Custom agents are auto-discovered from .opencode/agent/ directory,
|
|
9
|
+
* so we don't need to define them in the config file.
|
|
10
|
+
*/
|
|
11
|
+
function getOpenCodeConfig() {
|
|
12
|
+
return JSON.stringify({
|
|
13
|
+
$schema: "https://opencode.ai/config.json",
|
|
14
|
+
instructions: [
|
|
15
|
+
"AGENTS.md",
|
|
16
|
+
".trellis/workflow.md",
|
|
17
|
+
".trellis/structure/guides/index.md",
|
|
18
|
+
],
|
|
19
|
+
}, null, 2);
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Configure OpenCode with slash commands
|
|
23
|
+
*
|
|
24
|
+
* OpenCode uses .opencode/commands/ for slash commands,
|
|
25
|
+
* similar to Claude Code's .claude/commands/
|
|
26
|
+
*/
|
|
27
|
+
export async function configureOpenCode(cwd) {
|
|
28
|
+
const opencodeDir = path.join(cwd, ".opencode");
|
|
29
|
+
const commandsDir = path.join(opencodeDir, "commands");
|
|
30
|
+
// Create directory
|
|
31
|
+
ensureDir(commandsDir);
|
|
32
|
+
// Get command templates for OpenCode
|
|
33
|
+
const templates = getCommandTemplates("opencode");
|
|
34
|
+
// Write each command file
|
|
35
|
+
for (const [name, content] of Object.entries(templates)) {
|
|
36
|
+
const filePath = path.join(commandsDir, `${name}.md`);
|
|
37
|
+
await writeFile(filePath, content);
|
|
38
|
+
}
|
|
39
|
+
// Write .opencode.json configuration
|
|
40
|
+
const configPath = path.join(cwd, ".opencode.json");
|
|
41
|
+
await writeFile(configPath, getOpenCodeConfig());
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Configure OpenCode agents
|
|
45
|
+
*
|
|
46
|
+
* Uses the shared agent templates with OpenCode-specific frontmatter format.
|
|
47
|
+
* OpenCode agents use YAML frontmatter with tools as boolean object.
|
|
48
|
+
*/
|
|
49
|
+
export async function configureOpenCodeAgents(cwd) {
|
|
50
|
+
const agentDir = path.join(cwd, ".opencode", "agent");
|
|
51
|
+
// Create directory
|
|
52
|
+
ensureDir(agentDir);
|
|
53
|
+
// Get all agent templates in OpenCode format (excludes dispatch)
|
|
54
|
+
const agents = getAllAgents("opencode");
|
|
55
|
+
// Write each agent file
|
|
56
|
+
for (const agent of agents) {
|
|
57
|
+
const filePath = path.join(agentDir, `${agent.name}.md`);
|
|
58
|
+
await writeFile(filePath, agent.content);
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Configure OpenCode with full support
|
|
63
|
+
*
|
|
64
|
+
* This includes:
|
|
65
|
+
* - Slash commands
|
|
66
|
+
* - Agent configurations
|
|
67
|
+
* - .opencode.json configuration
|
|
68
|
+
*/
|
|
69
|
+
export async function configureOpenCodeFull(cwd) {
|
|
70
|
+
await configureOpenCode(cwd);
|
|
71
|
+
await configureOpenCodeAgents(cwd);
|
|
72
|
+
}
|
|
73
|
+
//# sourceMappingURL=opencode.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"opencode.js","sourceRoot":"","sources":["../../src/configurators/opencode.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AACrD,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAC/D,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAE5D;;;;;GAKG;AACH,SAAS,iBAAiB;IACxB,OAAO,IAAI,CAAC,SAAS,CACnB;QACE,OAAO,EAAE,iCAAiC;QAC1C,YAAY,EAAE;YACZ,WAAW;YACX,sBAAsB;YACtB,oCAAoC;SACrC;KACF,EACD,IAAI,EACJ,CAAC,CACF,CAAC;AACJ,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,GAAW;IACjD,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC;IAChD,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC;IAEvD,mBAAmB;IACnB,SAAS,CAAC,WAAW,CAAC,CAAC;IAEvB,qCAAqC;IACrC,MAAM,SAAS,GAAG,mBAAmB,CAAC,UAAU,CAAC,CAAC;IAElD,0BAA0B;IAC1B,KAAK,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC;QACxD,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,GAAG,IAAI,KAAK,CAAC,CAAC;QACtD,MAAM,SAAS,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IACrC,CAAC;IAED,qCAAqC;IACrC,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,gBAAgB,CAAC,CAAC;IACpD,MAAM,SAAS,CAAC,UAAU,EAAE,iBAAiB,EAAE,CAAC,CAAC;AACnD,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAAC,GAAW;IACvD,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,WAAW,EAAE,OAAO,CAAC,CAAC;IAEtD,mBAAmB;IACnB,SAAS,CAAC,QAAQ,CAAC,CAAC;IAEpB,iEAAiE;IACjE,MAAM,MAAM,GAAG,YAAY,CAAC,UAAU,CAAC,CAAC;IAExC,wBAAwB;IACxB,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,CAAC;QACzD,MAAM,SAAS,CAAC,QAAQ,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;IAC3C,CAAC;AACH,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,qBAAqB,CAAC,GAAW;IACrD,MAAM,iBAAiB,CAAC,GAAG,CAAC,CAAC;IAC7B,MAAM,uBAAuB,CAAC,GAAG,CAAC,CAAC;AACrC,CAAC"}
|
|
@@ -5,6 +5,8 @@ import type { ProjectType } from "../utils/project-detector.js";
|
|
|
5
5
|
export interface WorkflowOptions {
|
|
6
6
|
/** Detected or specified project type */
|
|
7
7
|
projectType: ProjectType;
|
|
8
|
+
/** Enable multi-agent pipeline with worktree support */
|
|
9
|
+
multiAgent?: boolean;
|
|
8
10
|
}
|
|
9
11
|
/**
|
|
10
12
|
* Create workflow structure based on project type
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workflow.d.ts","sourceRoot":"","sources":["../../src/configurators/workflow.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"workflow.d.ts","sourceRoot":"","sources":["../../src/configurators/workflow.ts"],"names":[],"mappings":"AAqDA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAYhE;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,yCAAyC;IACzC,WAAW,EAAE,WAAW,CAAC;IACzB,wDAAwD;IACxD,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED;;;;;GAKG;AACH,wBAAsB,uBAAuB,CAC3C,GAAG,EAAE,MAAM,EACX,OAAO,CAAC,EAAE,eAAe,GACxB,OAAO,CAAC,IAAI,CAAC,CAuDf"}
|
|
@@ -3,7 +3,11 @@ import { DIR_NAMES, PATHS } from "../constants/paths.js";
|
|
|
3
3
|
// Import script templates
|
|
4
4
|
import {
|
|
5
5
|
// Common utilities
|
|
6
|
-
commonPathsScript, commonDeveloperScript, commonGitContextScript,
|
|
6
|
+
commonPathsScript, commonDeveloperScript, commonGitContextScript, commonWorktreeScript,
|
|
7
|
+
// Multi-agent scripts
|
|
8
|
+
multiAgentStartScript, multiAgentCleanupScript, multiAgentStatusScript,
|
|
9
|
+
// Configuration templates
|
|
10
|
+
worktreeYamlTemplate,
|
|
7
11
|
// Main scripts
|
|
8
12
|
initDeveloperScript, getDeveloperScript, featureScript, getContextScript, addSessionScript, createBootstrapScript, } from "../templates/scripts/index.js";
|
|
9
13
|
// Import markdown templates
|
|
@@ -23,6 +27,7 @@ import { writeFile, ensureDir } from "../utils/file-writer.js";
|
|
|
23
27
|
*/
|
|
24
28
|
export async function createWorkflowStructure(cwd, options) {
|
|
25
29
|
const projectType = options?.projectType ?? "fullstack";
|
|
30
|
+
const multiAgent = options?.multiAgent ?? false;
|
|
26
31
|
// Create base directories (always created)
|
|
27
32
|
const baseDirs = [
|
|
28
33
|
DIR_NAMES.WORKFLOW,
|
|
@@ -44,11 +49,19 @@ export async function createWorkflowStructure(cwd, options) {
|
|
|
44
49
|
baseDirs.push(`${PATHS.STRUCTURE}/frontend`);
|
|
45
50
|
baseDirs.push(`${PATHS.STRUCTURE}/backend`);
|
|
46
51
|
}
|
|
52
|
+
// Add multi-agent directory if enabled
|
|
53
|
+
if (multiAgent) {
|
|
54
|
+
baseDirs.push(`${PATHS.SCRIPTS}/multi-agent`);
|
|
55
|
+
}
|
|
47
56
|
for (const dir of baseDirs) {
|
|
48
57
|
ensureDir(path.join(cwd, dir));
|
|
49
58
|
}
|
|
50
59
|
// Create scripts
|
|
51
60
|
await createScripts(cwd);
|
|
61
|
+
// Create multi-agent scripts if enabled
|
|
62
|
+
if (multiAgent) {
|
|
63
|
+
await createMultiAgentScripts(cwd);
|
|
64
|
+
}
|
|
52
65
|
// Create agent-traces index
|
|
53
66
|
await createAgentProgressIndex(cwd);
|
|
54
67
|
// Create structure templates based on project type
|
|
@@ -83,6 +96,22 @@ async function createScripts(cwd) {
|
|
|
83
96
|
await writeFile(scriptPath, script.content, { executable: true });
|
|
84
97
|
}
|
|
85
98
|
}
|
|
99
|
+
async function createMultiAgentScripts(cwd) {
|
|
100
|
+
// Worktree utility (to be sourced by multi-agent scripts)
|
|
101
|
+
await writeFile(path.join(cwd, PATHS.SCRIPTS, "common/worktree.sh"), commonWorktreeScript, { executable: true });
|
|
102
|
+
// Multi-agent scripts
|
|
103
|
+
const multiAgentScripts = [
|
|
104
|
+
{ name: "multi-agent/start.sh", content: multiAgentStartScript },
|
|
105
|
+
{ name: "multi-agent/cleanup.sh", content: multiAgentCleanupScript },
|
|
106
|
+
{ name: "multi-agent/status.sh", content: multiAgentStatusScript },
|
|
107
|
+
];
|
|
108
|
+
for (const script of multiAgentScripts) {
|
|
109
|
+
const scriptPath = path.join(cwd, PATHS.SCRIPTS, script.name);
|
|
110
|
+
await writeFile(scriptPath, script.content, { executable: true });
|
|
111
|
+
}
|
|
112
|
+
// Worktree configuration (in workflow root, not scripts)
|
|
113
|
+
await writeFile(path.join(cwd, DIR_NAMES.WORKFLOW, "worktree.yaml"), worktreeYamlTemplate);
|
|
114
|
+
}
|
|
86
115
|
async function createAgentProgressIndex(cwd) {
|
|
87
116
|
await writeFile(path.join(cwd, PATHS.PROGRESS, "index.md"), agentProgressIndexContent);
|
|
88
117
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workflow.js","sourceRoot":"","sources":["../../src/configurators/workflow.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAEzD,0BAA0B;AAC1B,OAAO;AACL,mBAAmB;AACnB,iBAAiB,EACjB,qBAAqB,EACrB,sBAAsB;AACtB,eAAe;AACf,mBAAmB,EACnB,kBAAkB,EAClB,aAAa,EACb,gBAAgB,EAChB,gBAAgB,EAChB,qBAAqB,GACtB,MAAM,+BAA+B,CAAC;AAEvC,4BAA4B;AAC5B,OAAO,EACL,yBAAyB,EACzB,iBAAiB,EACjB,wBAAwB;AACxB,gCAAgC;AAChC,mBAAmB,EACnB,gCAAgC,EAChC,gCAAgC,EAChC,+BAA+B,EAC/B,+BAA+B,EAC/B,2BAA2B;AAC3B,iCAAiC;AACjC,oBAAoB,EACpB,iCAAiC,EACjC,yBAAyB,EACzB,6BAA6B,EAC7B,kCAAkC,EAClC,gCAAgC,EAChC,8BAA8B;AAC9B,mBAAmB;AACnB,kBAAkB,EAClB,oCAAoC,EACpC,mCAAmC,GACpC,MAAM,gCAAgC,CAAC;AAExC,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"workflow.js","sourceRoot":"","sources":["../../src/configurators/workflow.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
# Check Agent
|
|
2
|
+
|
|
3
|
+
You are the Check Agent in the Trellis workflow.
|
|
4
|
+
|
|
5
|
+
## Context
|
|
6
|
+
|
|
7
|
+
Before checking, read:
|
|
8
|
+
- `.trellis/structure/` - Development guidelines
|
|
9
|
+
- Pre-commit checklist for quality standards
|
|
10
|
+
|
|
11
|
+
## Core Responsibilities
|
|
12
|
+
|
|
13
|
+
1. **Get code changes** - Use git diff to get uncommitted code
|
|
14
|
+
2. **Check against specs** - Verify code follows guidelines
|
|
15
|
+
3. **Self-fix** - Fix issues yourself, not just report them
|
|
16
|
+
4. **Run verification** - typecheck and lint
|
|
17
|
+
|
|
18
|
+
## Important
|
|
19
|
+
|
|
20
|
+
**Fix issues yourself**, don't just report them.
|
|
21
|
+
|
|
22
|
+
You have write and edit tools, you can modify code directly.
|
|
23
|
+
|
|
24
|
+
---
|
|
25
|
+
|
|
26
|
+
## Workflow
|
|
27
|
+
|
|
28
|
+
### Step 1: Get Changes
|
|
29
|
+
|
|
30
|
+
```bash
|
|
31
|
+
git diff --name-only # List changed files
|
|
32
|
+
git diff # View specific changes
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
### Step 2: Check Against Specs
|
|
36
|
+
|
|
37
|
+
Read relevant specs in `.trellis/structure/` to check code:
|
|
38
|
+
|
|
39
|
+
- Does it follow directory structure conventions
|
|
40
|
+
- Does it follow naming conventions
|
|
41
|
+
- Does it follow code patterns
|
|
42
|
+
- Are there missing types
|
|
43
|
+
- Are there potential bugs
|
|
44
|
+
|
|
45
|
+
### Step 3: Self-Fix
|
|
46
|
+
|
|
47
|
+
After finding issues:
|
|
48
|
+
|
|
49
|
+
1. Fix the issue directly (use edit tool)
|
|
50
|
+
2. Record what was fixed
|
|
51
|
+
3. Continue checking other issues
|
|
52
|
+
|
|
53
|
+
### Step 4: Run Verification
|
|
54
|
+
|
|
55
|
+
```bash
|
|
56
|
+
pnpm lint
|
|
57
|
+
pnpm typecheck
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
If failed, fix issues and re-run.
|
|
61
|
+
|
|
62
|
+
---
|
|
63
|
+
|
|
64
|
+
## Report Format
|
|
65
|
+
|
|
66
|
+
```markdown
|
|
67
|
+
## Self-Check Complete
|
|
68
|
+
|
|
69
|
+
### Files Checked
|
|
70
|
+
|
|
71
|
+
- src/components/Feature.tsx
|
|
72
|
+
- src/hooks/useFeature.ts
|
|
73
|
+
|
|
74
|
+
### Issues Found and Fixed
|
|
75
|
+
|
|
76
|
+
1. `src/components/Feature.tsx:25` - Missing return type, added
|
|
77
|
+
2. `src/hooks/useFeature.ts:12` - Unused import, removed
|
|
78
|
+
|
|
79
|
+
### Issues Not Fixed
|
|
80
|
+
|
|
81
|
+
(If there are issues that cannot be self-fixed, list them here with reasons)
|
|
82
|
+
|
|
83
|
+
### Verification Results
|
|
84
|
+
|
|
85
|
+
- TypeCheck: Passed
|
|
86
|
+
- Lint: Passed
|
|
87
|
+
|
|
88
|
+
### Summary
|
|
89
|
+
|
|
90
|
+
Checked X files, found Y issues, all fixed.
|
|
91
|
+
```
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
# Debug Agent
|
|
2
|
+
|
|
3
|
+
You are the Debug Agent in the Trellis workflow.
|
|
4
|
+
|
|
5
|
+
## Context
|
|
6
|
+
|
|
7
|
+
Before debugging, read:
|
|
8
|
+
- `.trellis/structure/` - Development guidelines
|
|
9
|
+
- Error messages or issue descriptions provided
|
|
10
|
+
|
|
11
|
+
## Core Responsibilities
|
|
12
|
+
|
|
13
|
+
1. **Understand issues** - Analyze error messages or reported issues
|
|
14
|
+
2. **Fix against specs** - Fix issues following dev specs
|
|
15
|
+
3. **Verify fixes** - Run typecheck to ensure no new issues
|
|
16
|
+
4. **Report results** - Report fix status
|
|
17
|
+
|
|
18
|
+
---
|
|
19
|
+
|
|
20
|
+
## Workflow
|
|
21
|
+
|
|
22
|
+
### Step 1: Understand Issues
|
|
23
|
+
|
|
24
|
+
Parse the issue, categorize by priority:
|
|
25
|
+
|
|
26
|
+
- `[P1]` - Must fix (blocking)
|
|
27
|
+
- `[P2]` - Should fix (important)
|
|
28
|
+
- `[P3]` - Optional fix (nice to have)
|
|
29
|
+
|
|
30
|
+
### Step 2: Research if Needed
|
|
31
|
+
|
|
32
|
+
If you need additional info:
|
|
33
|
+
|
|
34
|
+
```bash
|
|
35
|
+
# Check knowledge base
|
|
36
|
+
ls .trellis/big-question/
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
### Step 3: Fix One by One
|
|
40
|
+
|
|
41
|
+
For each issue:
|
|
42
|
+
|
|
43
|
+
1. Locate the exact position
|
|
44
|
+
2. Fix following specs
|
|
45
|
+
3. Run typecheck to verify
|
|
46
|
+
|
|
47
|
+
### Step 4: Verify
|
|
48
|
+
|
|
49
|
+
```bash
|
|
50
|
+
pnpm lint
|
|
51
|
+
pnpm typecheck
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
If fix introduces new issues:
|
|
55
|
+
|
|
56
|
+
1. Revert the fix
|
|
57
|
+
2. Use a more complete solution
|
|
58
|
+
3. Re-verify
|
|
59
|
+
|
|
60
|
+
---
|
|
61
|
+
|
|
62
|
+
## Report Format
|
|
63
|
+
|
|
64
|
+
```markdown
|
|
65
|
+
## Fix Report
|
|
66
|
+
|
|
67
|
+
### Issues Fixed
|
|
68
|
+
|
|
69
|
+
1. `[P1]` `src/foo.ts:42` - Added error handling
|
|
70
|
+
2. `[P2]` `src/bar.ts:15` - Added explicit return type
|
|
71
|
+
|
|
72
|
+
### Issues Not Fixed
|
|
73
|
+
|
|
74
|
+
- `src/qux.ts:99` - Requires architectural change, suggest discussion
|
|
75
|
+
|
|
76
|
+
### Verification
|
|
77
|
+
|
|
78
|
+
- TypeCheck: Pass
|
|
79
|
+
- Lint: Pass
|
|
80
|
+
|
|
81
|
+
### Summary
|
|
82
|
+
|
|
83
|
+
Fixed X/Y issues. Z issues require discussion.
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
---
|
|
87
|
+
|
|
88
|
+
## Guidelines
|
|
89
|
+
|
|
90
|
+
### DO
|
|
91
|
+
|
|
92
|
+
- Precise fixes for reported issues
|
|
93
|
+
- Follow specs
|
|
94
|
+
- Verify each fix
|
|
95
|
+
|
|
96
|
+
### DON'T
|
|
97
|
+
|
|
98
|
+
- Don't refactor surrounding code
|
|
99
|
+
- Don't add new features
|
|
100
|
+
- Don't modify unrelated files
|
|
101
|
+
- Don't use `!` non-null assertion
|
|
102
|
+
- Don't execute git commit
|