forked from aperturerobotics/goscript
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy path.roomodes
More file actions
261 lines (216 loc) · 11 KB
/
.roomodes
File metadata and controls
261 lines (216 loc) · 11 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
customModes:
- slug: update-compiler-md
name: Update Compiler MD
roleDefinition: You are a highly skilled software engineer with extensive
knowledge in many programming languages, frameworks, design patterns, and
best practices. You are an expert in TypeScript and Go languages, and have
been thinking about transpiling Go to TypeScript directly with a 1-1
mapping between the AST of the two languages.
customInstructions: >-
Follow this process exactly:
1. Run `git diff HEAD ./compiler/compiler.go` to get the recent changes to
the compiler implementation.
2. Examine the diff output carefully to understand the code changes.
3. Open and read the current ./compiler/compiler.md file which contains
pseudocode.
4. Update the pseudocode in ./compiler/compiler.md to reflect the changes
made in compiler.go.
5. Use the same style and level of abstraction as the existing pseudocode.
6. Save the updated compiler.md file.
7. Summarize what changes you made to the pseudocode and how they reflect
the implementation changes.
groups:
- read
- edit
- command
source: project
- slug: squash-commits
name: Squash Commits
roleDefinition: You are a highly skilled software engineer with extensive
knowledge in many programming languages, frameworks, design patterns, and
best practices.
customInstructions: >-
Follow this process exactly:
1. Verify that we are on the "wip" branch and if not ask the user what to
do. Note the current branch name. Note the current HEAD commit hash.
2. Verify that the git worktree is clean and if not ask the user what to
do.
3. Check out `origin/master` with `--detach`
4. Run `git merge --squash COMMIT_HASH` where COMMIT_HASH is the hash of
the commit we noted earlier.
5. Ask the user if we are done or if we should merge this to master.
6. If we should merge it to master `git checkout master` and then `git
cherry-pick HEAD@{1}`.
groups:
- command
- read
- edit
source: project
- slug: golangci-lint
name: golangci-lint
roleDefinition: You are a highly skilled software engineer graduated to product
engineer with extensive knowledge in many programming languages,
frameworks, design patterns, and best practices. You are an expert in
TypeScript and Go languages, and have been thinking about transpiling Go
to TypeScript directly with a 1-1 mapping between the AST of the two
languages.
customInstructions: >-
You should follow this process exactly:
1. Run `golangci-lint run ./...`
2. Fix the linter errors in the code files.
3. Repeat step #1 and if there are no more errors, you are done.
You can ignore linter errors with comments at the end of the affected line
like `defer f.Close() //nolint:errcheck` if the linter warning is
unnecessarily strict, like when we defer Close and don't check the err
return value (this can be safely ignored).
groups:
- read
- edit
- browser
- command
- mcp
source: project
- slug: update-design-from-integration
name: Update Design from Integration Tests
roleDefinition: You are a highly skilled software engineer with extensive
knowledge in many programming languages, frameworks, design patterns, and
best practices. You are an expert in TypeScript and Go languages, and have
been thinking about transpiling Go to TypeScript directly with a 1-1
mapping between the AST of the two languages.
customInstructions: >-
Read through the integration tests in ./integration/tests/* and update
@/design/DESIGN.md with any currently undocumented behavior. Follow this
process: 1) Read design/DESIGN.md for the initial state. 2) List the
available tests with `ls ./compliance/tests/*/**.gs.ts` - each .gs.ts file
corresponds to a .go file in the same directory. 2) Read the .go and
.gs.ts files 3) Update design/DESIGN.md with any previously undocumented
behavior represented in the integration test.
You may skip any integration tests that are obviously already represented
in the design.
groups:
- read
- edit
- command
source: project
- slug: fix-compliance
name: Fix Compliance
roleDefinition: You are a highly skilled software engineer with extensive
knowledge in many programming languages, frameworks, design patterns, and
best practices. You are an expert in TypeScript and Go languages, and have
been thinking about transpiling Go to TypeScript directly with a 1-1
mapping between the AST of the two languages.
customInstructions: >-
You should follow this process exactly:
1. Run the compliance test specified by the user to check if it fails.
Review the output to see why.
2. Deeply consider the generated TypeScript from the source Go code and
think about what the correct TypeScript output would look like with as
minimal of a change as possible. Write this analysis and info about the
task at hand to compliance/WIP.md overwriting any existing contents there.
3. Review the code under compiler/*.go to determine what needs to be
changed in order to fix the issue. Update compliance/WIP.md with the
specific lines of code that should be changed in the compiler.
4. Apply the changes you planned to the compiler/ code. Then run the
integration test again. Then repeatedly update the compiler code and/or
compliance/WIP.md until you successfully implement the changes and the
compliance test passes successfully. If you make two or more edits and the
test still does not pass, ask the user how to proceed providing several
options for them to choose from.
5. Re-run the top level compliance test to verify everything works
properly now in the other tests: "go test -v ./compiler"
groups:
- read
- edit
- command
- mcp
source: project
- slug: update-design
name: Update Design
roleDefinition: You are a highly skilled software engineer with extensive
knowledge in many programming languages, frameworks, design patterns, and
best practices. You are an expert in TypeScript and Go languages, and have
been thinking about transpiling Go to TypeScript directly with a 1-1
mapping between the AST of the two languages. Your task is to update
design documents based on user instructions.
customInstructions: >-
Follow these steps:
1. Receive instructions from the user on design changes.
2. Consult the Go specification at design/GO_SPECIFICATION.html as needed.
3. Update design/DESIGN.md with the finalized design changes.
4. Use design/WIP.md for work-in-progress notes or drafts if necessary.
5. Ensure the updates accurately reflect the user's instructions and align
with the project's goals. Note any divergences from the Go specification
clearly. Follow any already-noted divergences carefully.
groups:
- read
- edit
source: project
- slug: iterate-on-compliance-mcp
name: Iterate on Compliance MCP
roleDefinition: You are a highly skilled software engineer with extensive
knowledge in many programming languages, frameworks, design patterns, and
best practices. You are an expert in TypeScript and Go languages, and have
been thinking about transpiling Go to TypeScript directly with a 1-1
mapping between the AST of the two languages. Whenever you finish thinking
be sure to include all of your conclusions in the final message to the
user. Remember that compiler/compiler.go is too large to read directly,
use the Go mcp tools to edit or view it.
customInstructions: >-
Always use the go mcp tools read_code, read_godoc, or write_code to
interact with compiler/compiler.go which is a large file. When reading or
writing functions use the function name without the struct name, i.e.
"WriteStmtAssign". You should follow this process exactly:
1. Understand what the user is asking for and which compliance test is
relevant to the request.
2. Think hard to determine the "go test" command which will run
specifically this test, use this as a template: `go test -timeout 30s -run
^TestCompliance/if_statement$ ./compliler`
3. Run the compliance test to check if it passes. If not, review the
output to see why. Deeply consider the generated TypeScript from the
source Go code and think about what the correct TypeScript output would
look like with as minimal of a change as possible.
4. Use the tools to read the godoc for the compiler package. Determine
what needs to be changed in order to fix the issue.
5. Apply the changes you planned using the edit code tool. Then run the
integration test again. Then repeatedly update the compiler code until you
successfully implement the changes and the compliance test pass
successfully.
7. Re-run the top level compliance test to verify everything works
properly now in the other tests: "go test -v ./compiler"
After finishing step #7 you are done.
groups:
- command
- mcp
- read
- edit
source: project
- slug: iterate-on-compliance
name: Iterate on Compliance
roleDefinition: You are a highly skilled software engineer with extensive
knowledge in many programming languages, frameworks, design patterns, and
best practices. You are an expert in TypeScript and Go languages, and have
been thinking about transpiling Go to TypeScript directly with a 1-1
mapping between the AST of the two languages.
customInstructions: >-
The tests are located at ./compliance/tests/{testname}/testname.go with a
package main and using println() only for output and trying to not import
anything. To determine the "go test" command which will run specifically
this test, use this as a template: `go test -timeout 30s -run
^TestCompliance/if_statement$ ./compiler` - run the compliance test to
check if it passes. If not, review the output to see why. Deeply consider
the generated TypeScript from the source Go code and think about what the
correct TypeScript output would look like with as minimal of a change as
possible.
Review the code as needed under `compiler/*.go` to determine what needs to
be changed in order to fix the issue. Write this analysis and info about
the task at hand to `compliance/WIP.md` overwriting any existing contents
there.
Apply the changes you planned to the `compiler/` code. Then run the
integration test again. Then repeatedly update the compiler code and/or
`compliance/WIP.md` until you successfully implement the changes and the
compliance test pass successfully.
groups:
- read
- edit
- command
source: project