codewhale.history 2.11.19 → 2.12.0
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/CHANGELOG.md +255 -243
- package/README.md +42 -1
- package/package.json +1 -1
- package/skills/teach-me/SKILL.md +342 -10
package/CHANGELOG.md
CHANGED
|
@@ -1,243 +1,255 @@
|
|
|
1
|
-
# Changelog
|
|
2
|
-
|
|
3
|
-
All notable changes to the CodeWhale Tools Pack.
|
|
4
|
-
|
|
5
|
-
---
|
|
6
|
-
|
|
7
|
-
## [2.
|
|
8
|
-
|
|
9
|
-
### Added
|
|
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
|
-
## [2.11.
|
|
60
|
-
|
|
61
|
-
### Changed
|
|
62
|
-
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
-
|
|
77
|
-
|
|
78
|
-
## [2.11.
|
|
79
|
-
|
|
80
|
-
### Added
|
|
81
|
-
- README:
|
|
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
|
-
## [2.9.
|
|
132
|
-
|
|
133
|
-
###
|
|
134
|
-
- README: SOLID
|
|
135
|
-
|
|
136
|
-
## [2.9.
|
|
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
|
-
## [2.
|
|
215
|
-
|
|
216
|
-
###
|
|
217
|
-
- `//
|
|
218
|
-
|
|
219
|
-
## [2.
|
|
220
|
-
|
|
221
|
-
###
|
|
222
|
-
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
-
|
|
235
|
-
|
|
236
|
-
## [
|
|
237
|
-
|
|
238
|
-
### Added
|
|
239
|
-
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
All notable changes to the CodeWhale Tools Pack.
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## [2.12.0] — 2026-07-17
|
|
8
|
+
|
|
9
|
+
### Added
|
|
10
|
+
- teach-me: New Logic-Paths theme (`teach me logic-paths`) — execution-path tracing
|
|
11
|
+
from start to end across functions, modules, and systems. Levels 1–2: single-function
|
|
12
|
+
control flow (branch tracing, dead-code detection). Levels 3–5: cross-function call
|
|
13
|
+
chains from six start-point types (test, entry, thread, event, pubsub, random).
|
|
14
|
+
Supports both passive (describe the path) and interactive (fix a path-breaking bug)
|
|
15
|
+
modes.
|
|
16
|
+
- README: New Features section documenting Logic-Paths theme with level table,
|
|
17
|
+
start-point types, exercise shapes, and triggers.
|
|
18
|
+
|
|
19
|
+
## [2.11.19] — 2026-07-13
|
|
20
|
+
|
|
21
|
+
### Added
|
|
22
|
+
- README: Added the AGPL license info the npm page
|
|
23
|
+
|
|
24
|
+
## [2.11.17] — 2026-07-13
|
|
25
|
+
|
|
26
|
+
### Added
|
|
27
|
+
- README: "Looking for Copilot version" changed to level 2 header
|
|
28
|
+
|
|
29
|
+
## [2.11.16] — 2026-07-13
|
|
30
|
+
|
|
31
|
+
### Added
|
|
32
|
+
- README: "Looking for Copilot version" section with link to copilot.tools
|
|
33
|
+
|
|
34
|
+
## [2.11.15] — 2026-07-11
|
|
35
|
+
|
|
36
|
+
### Added
|
|
37
|
+
- README: requirements list now includes LLM API key prerequisite
|
|
38
|
+
|
|
39
|
+
## [2.11.14] — 2026-07-11
|
|
40
|
+
|
|
41
|
+
### Fixed
|
|
42
|
+
- README: trigger table and theme modifiers now show both spec↔code directions (was only showing spec→code)
|
|
43
|
+
|
|
44
|
+
## [2.11.13] — 2026-07-11
|
|
45
|
+
|
|
46
|
+
### Added
|
|
47
|
+
- README: "How to use" section — cd → codewhale → TAB → //trigger
|
|
48
|
+
|
|
49
|
+
## [2.11.12] — 2026-07-11
|
|
50
|
+
|
|
51
|
+
### Fixed
|
|
52
|
+
- README: moved AGPL notice to footer (was cluttering npm page header)
|
|
53
|
+
|
|
54
|
+
## [2.11.11] — 2026-07-11
|
|
55
|
+
|
|
56
|
+
### Added
|
|
57
|
+
- AGPL copyright headers to all source files (4 JS files, 4 SKILL.md files, instructions; README gets footer notice only)
|
|
58
|
+
|
|
59
|
+
## [2.11.10] — 2026-07-09
|
|
60
|
+
|
|
61
|
+
### Changed
|
|
62
|
+
- README: clarified install instructions — navigate to your project folder first
|
|
63
|
+
|
|
64
|
+
## [2.11.9] — 2026-07-07
|
|
65
|
+
|
|
66
|
+
### Removed
|
|
67
|
+
- README image (npm doesn't render local files)
|
|
68
|
+
- teach_me-overview.png from npm package (files array)
|
|
69
|
+
- tools-install.js: removed diagram copy step and verification
|
|
70
|
+
|
|
71
|
+
## [2.11.8] — 2026-07-07
|
|
72
|
+
|
|
73
|
+
### Changed
|
|
74
|
+
- Moved diagram to package root: teach_me-overview.png
|
|
75
|
+
- package.json: images/ → teach_me-overview.png in files array
|
|
76
|
+
- tools-install.js: copy diagram directly to ~/.codewhale/
|
|
77
|
+
|
|
78
|
+
## [2.11.7] — 2026-07-07
|
|
79
|
+
|
|
80
|
+
### Added
|
|
81
|
+
- README: teach-me workflow diagram (images/teach_me-overview.png)
|
|
82
|
+
- package.json: include images/ in "files" array for npm publish
|
|
83
|
+
- tools-install.js: copy images to ~/.codewhale/images/ on install
|
|
84
|
+
|
|
85
|
+
## [2.11.6] — 2026-07-06
|
|
86
|
+
|
|
87
|
+
### Added
|
|
88
|
+
- README: "Want to take this further" section — promotes //spec-analysis product
|
|
89
|
+
|
|
90
|
+
## [2.11.5] — 2026-07-06
|
|
91
|
+
|
|
92
|
+
### Added
|
|
93
|
+
- README: "Want to take this further" section — promotes //spec-analysis product
|
|
94
|
+
|
|
95
|
+
## [2.11.3] — 2026-06-24
|
|
96
|
+
|
|
97
|
+
### Added
|
|
98
|
+
- AGPLv3 license (repo root + package directory)
|
|
99
|
+
- DCO-based CONTRIBUTING.md with sign-off rules
|
|
100
|
+
|
|
101
|
+
### Changed
|
|
102
|
+
- README: AGPLv3 license badge
|
|
103
|
+
|
|
104
|
+
## [2.11.2] — 2026-06-24
|
|
105
|
+
|
|
106
|
+
### Fixed
|
|
107
|
+
- README: move update instructions after install command
|
|
108
|
+
|
|
109
|
+
## [2.11.1] — 2026-06-24
|
|
110
|
+
|
|
111
|
+
### Added
|
|
112
|
+
- README: update instructions for existing installations
|
|
113
|
+
|
|
114
|
+
## [2.11.0] — 2026-06-24
|
|
115
|
+
|
|
116
|
+
### Added
|
|
117
|
+
- **BA-Gates theme** — document quality analysis for business analysts
|
|
118
|
+
- Loop continuation fix in interactive mode
|
|
119
|
+
|
|
120
|
+
## [2.10.1] — 2026-06-23
|
|
121
|
+
|
|
122
|
+
### Added
|
|
123
|
+
- README: Spec theme description — spec-to-code correlation
|
|
124
|
+
|
|
125
|
+
## [2.10.0] — 2026-06-23
|
|
126
|
+
|
|
127
|
+
### Added
|
|
128
|
+
- **Spec theme** — spec-to-code traceability via Office documents
|
|
129
|
+
- `codewhale-doc-extract` global binary for Office document extraction
|
|
130
|
+
|
|
131
|
+
## [2.9.3] — 2026-06-23
|
|
132
|
+
|
|
133
|
+
### Changed
|
|
134
|
+
- README: removed redundant SOLID subsection (covered by trigger table)
|
|
135
|
+
|
|
136
|
+
## [2.9.2] — 2026-06-23
|
|
137
|
+
|
|
138
|
+
### Changed
|
|
139
|
+
- **Restructured `//teach-me`** into two orthogonal dimensions:
|
|
140
|
+
- **Response modes**: passive, interactive, SOLID
|
|
141
|
+
- **Content themes**: general, decorators, async, generators, SOLID, spec, ba-gates
|
|
142
|
+
|
|
143
|
+
## [2.9.1] — 2026-06-23
|
|
144
|
+
|
|
145
|
+
### Added
|
|
146
|
+
- README: SOLID mode trigger table and how-it-works section
|
|
147
|
+
|
|
148
|
+
## [2.9.0] — 2026-06-23
|
|
149
|
+
|
|
150
|
+
### Added
|
|
151
|
+
- **SOLID mode** — anti-pattern reconstruction for teaching design principles
|
|
152
|
+
|
|
153
|
+
## [2.8.13] — 2026-06-22
|
|
154
|
+
|
|
155
|
+
### Added
|
|
156
|
+
- README: Contact Developer section
|
|
157
|
+
|
|
158
|
+
## [2.8.12] — 2026-06-21
|
|
159
|
+
|
|
160
|
+
### Added
|
|
161
|
+
- README: CodeWhale URL link
|
|
162
|
+
|
|
163
|
+
## [2.8.11] — 2026-06-21
|
|
164
|
+
|
|
165
|
+
### Changed
|
|
166
|
+
- `//teach-me`: restore files with `git checkout` for byte-perfect reset after interactive rounds
|
|
167
|
+
|
|
168
|
+
## [2.8.10] — 2026-06-21
|
|
169
|
+
|
|
170
|
+
### Changed
|
|
171
|
+
- `//teach-me`: use Skip thinking depth in interactive selection
|
|
172
|
+
- Acknowledged `edit_file` transparency in interactive mode
|
|
173
|
+
|
|
174
|
+
## [2.8.9] — 2026-06-21
|
|
175
|
+
|
|
176
|
+
### Changed
|
|
177
|
+
- `//teach-me`: suppress thinking during interactive selection/removal to avoid spoilers
|
|
178
|
+
|
|
179
|
+
## [2.8.8] — 2026-06-21
|
|
180
|
+
|
|
181
|
+
### Added
|
|
182
|
+
- `//teach-me`: **interactive (reconstruction) mode** — user edits files live to reconstruct missing code, alongside existing passive quiz mode
|
|
183
|
+
|
|
184
|
+
## [2.8.7] — 2026-06-21
|
|
185
|
+
|
|
186
|
+
### Changed
|
|
187
|
+
- `//teach-me`: mandate file re-read before each round for ground-truth accuracy
|
|
188
|
+
|
|
189
|
+
## [2.8.6] — 2026-06-21
|
|
190
|
+
|
|
191
|
+
### Changed
|
|
192
|
+
- README: simplified install command — postinstall handles the second step
|
|
193
|
+
|
|
194
|
+
## [2.8.5] — 2026-06-21
|
|
195
|
+
|
|
196
|
+
### Fixed
|
|
197
|
+
- Postinstall: use `INIT_CWD` instead of `cwd` for correct workspace detection
|
|
198
|
+
|
|
199
|
+
## [2.8.4] — 2026-06-21
|
|
200
|
+
|
|
201
|
+
### Added
|
|
202
|
+
- `postinstall` script to auto-run `codewhale-tools-install`
|
|
203
|
+
|
|
204
|
+
## [2.8.3] — 2026-06-21
|
|
205
|
+
|
|
206
|
+
### Added
|
|
207
|
+
- `//tools` now displays README in-session as help text
|
|
208
|
+
|
|
209
|
+
## [2.8.2] — 2026-06-21
|
|
210
|
+
|
|
211
|
+
### Added
|
|
212
|
+
- README: expanded After Install section with `//history`, `//snapshot`, `//teach-me` details
|
|
213
|
+
|
|
214
|
+
## [2.8.1] — 2026-06-21
|
|
215
|
+
|
|
216
|
+
### Added
|
|
217
|
+
- `//teach-me`: targeted concept drills — `teach me decorators`, `teach me async`, `teach me generators`, etc.
|
|
218
|
+
|
|
219
|
+
## [2.8.0] — 2026-06-21
|
|
220
|
+
|
|
221
|
+
### Added
|
|
222
|
+
- **`//teach-me` command** — interactive code quiz that selects random snippets from the current project and quizzes on application logic, language semantics, and documentation quality
|
|
223
|
+
- Trigger configuration in instructions.md
|
|
224
|
+
- Skill installation wiring in tools-install.js
|
|
225
|
+
|
|
226
|
+
## [2.7.0] — 2026-06-20
|
|
227
|
+
|
|
228
|
+
### Fixed
|
|
229
|
+
- `//snapshot`: removed stale note overwrite step (notes are session-cached)
|
|
230
|
+
|
|
231
|
+
## [2.6.0] — 2026-06-20
|
|
232
|
+
|
|
233
|
+
### Changed
|
|
234
|
+
- `//snapshot on` now overwrites stale caching notes with timestamp convention
|
|
235
|
+
|
|
236
|
+
## [2.5.0] — 2026-06-20
|
|
237
|
+
|
|
238
|
+
### Added
|
|
239
|
+
- **`//snapshot` command** — pre-edit file backups with timestamp naming, cross-platform, with retry
|
|
240
|
+
|
|
241
|
+
## [2.0.0] — 2026-06-19
|
|
242
|
+
|
|
243
|
+
### Changed
|
|
244
|
+
- Cleaned up installer; code published to npmjs
|
|
245
|
+
- Installs into global npm `node_modules/`
|
|
246
|
+
- Instructions appended to existing `instructions.md` (no longer replaced)
|
|
247
|
+
|
|
248
|
+
## [1.0.0] — 2026-06-19
|
|
249
|
+
|
|
250
|
+
### Added
|
|
251
|
+
- Initial release
|
|
252
|
+
- `//tools` — lists all available CodeWhale tools
|
|
253
|
+
- `//history` — lists CodeWhale chat sessions with message count, tokens, and cost
|
|
254
|
+
- Cross-platform installer (`tools-install.js`)
|
|
255
|
+
- Global npm package `codewhale.history`
|
package/README.md
CHANGED
|
@@ -128,6 +128,7 @@ current project. Two independent dimensions across five difficulty levels:
|
|
|
128
128
|
- **SOLID** (`teach me solid`) — Anti-pattern detection and design restoration.
|
|
129
129
|
- **Spec** (`teach me spec`) — Spec-to-code traceability using office docs as source.
|
|
130
130
|
- **BA-Gates** (`teach me ba`) — BA documentation quality analysis (ambiguity, AC completeness, edge case coverage).
|
|
131
|
+
- **Logic-Paths** (`teach me logic-paths`) — Execution-path tracing across functions, modules, and systems.
|
|
131
132
|
|
|
132
133
|
| Trigger | Response | Theme | What happens |
|
|
133
134
|
|---------|----------|-------|-------------|
|
|
@@ -139,6 +140,8 @@ current project. Two independent dimensions across five difficulty levels:
|
|
|
139
140
|
| `teach me spec interactive` | interactive | spec | Two directions: spec→code (edit code to satisfy a spec) or code→spec (edit spec to match the code) |
|
|
140
141
|
| `teach me ba` | passive | ba-gates | BA doc fragment; you identify quality gate violations |
|
|
141
142
|
| `teach me ba interactive` | interactive | ba-gates | BA doc with issues; you edit to fix them |
|
|
143
|
+
| `teach me logic-paths` | passive | logic-paths | Start/end points; you trace the execution path |
|
|
144
|
+
| `teach me logic-paths interactive` | interactive | logic-paths | Path broken by a bug; you fix the code |
|
|
142
145
|
|
|
143
146
|
**Triggers:** `teach me` · `quiz me` · `test my knowledge` · `code quiz` ·
|
|
144
147
|
`drill me`
|
|
@@ -153,6 +156,7 @@ current project. Two independent dimensions across five difficulty levels:
|
|
|
153
156
|
| Theme | `teach me solid` | Anti-pattern detection — fix degraded design |
|
|
154
157
|
| Theme | `teach me spec` | Spec↔code traceability — either direction (show spec, find the code; or show code, name the requirement) |
|
|
155
158
|
| Theme | `teach me ba` | BA documentation quality analysis |
|
|
159
|
+
| Theme | `teach me logic-paths` | Execution-path tracing across modules and systems |
|
|
156
160
|
| Scope | `teach me services/` | Narrow to a specific file or folder |
|
|
157
161
|
| Concept | `teach me decorators` | Target: decorators, async, generators, context managers, comprehensions, error handling, type hints, threading |
|
|
158
162
|
|
|
@@ -168,7 +172,7 @@ current project. Two independent dimensions across five difficulty levels:
|
|
|
168
172
|
|
|
169
173
|
**Mid-round commands:** `hint` (get a nudge) · `skip` (see the answer) ·
|
|
170
174
|
`next` (draw a new snippet) · `level N` · `easier` · `harder` ·
|
|
171
|
-
`interactive` · `passive` · `solid` · `spec` · `ba` · `done` (verify work) · `stop`
|
|
175
|
+
`interactive` · `passive` · `solid` · `spec` · `ba` · `logic-paths` · `done` (verify work) · `stop`
|
|
172
176
|
|
|
173
177
|
**At the end** you get a session summary: rounds completed, mode, files covered,
|
|
174
178
|
what you're strong on, what to review, and a suggested next level.
|
|
@@ -196,6 +200,43 @@ options. You identify which gates a fragment triggers and describe the developer
|
|
|
196
200
|
impact. On skip or strike-3, the model presents 2–3 domain-specific rewrites per
|
|
197
201
|
issue with a best-fit recommendation.
|
|
198
202
|
|
|
203
|
+
## New Features
|
|
204
|
+
|
|
205
|
+
### Logic-Paths Theme (`teach me logic-paths`)
|
|
206
|
+
|
|
207
|
+
Execution-path tracing — how control flows through the code from a start point
|
|
208
|
+
to an end point. Levels 1–2 focus on single-function control flow; levels 3–5
|
|
209
|
+
trace cross-function / cross-object call chains.
|
|
210
|
+
|
|
211
|
+
| Level | Scope | What's quizzed |
|
|
212
|
+
|-------|-------|----------------|
|
|
213
|
+
| 1 | Single function, 5–15 lines, 2–3 branches | Simple if/else, early returns: which branch fires for given inputs? |
|
|
214
|
+
| 2 | Single function, 8–20 lines, nested conditions | Nested if/else, loops, try/except chains: trace the path, identify conditions for reaching specific lines |
|
|
215
|
+
| 3 | 2–4 functions within the same module | Direct call chain: given a start and one end point, trace the sequence |
|
|
216
|
+
| 4 | Cross-module, callbacks/registrations | Callbacks, state machines: sometimes given a start, asked to trace to its natural conclusion |
|
|
217
|
+
| 5 | Multi-file, cross-system dispatch | Threads, pub/sub, event loops, async dispatch across subsystems |
|
|
218
|
+
|
|
219
|
+
**Start-point types** (randomly selected from your project):
|
|
220
|
+
|
|
221
|
+
| Type | Example |
|
|
222
|
+
|------|---------|
|
|
223
|
+
| `test` | A test function that exercises the target code |
|
|
224
|
+
| `entry` | Main entry point (`main()`, CLI command) |
|
|
225
|
+
| `thread` | Code launched in a thread or executor |
|
|
226
|
+
| `event` | Event handler / signal callback |
|
|
227
|
+
| `pubsub` | A subscriber or message-queue consumer |
|
|
228
|
+
| `random` | Arbitrary function — "how does execution ever reach this point?" |
|
|
229
|
+
|
|
230
|
+
**Exercise shapes:** path trace with concrete inputs, condition finder ("what
|
|
231
|
+
must be true to reach line N?"), dead branch detection, start→end call chain,
|
|
232
|
+
and start→natural conclusion (levels 4–5, no end point given).
|
|
233
|
+
|
|
234
|
+
**Interactive mode:** The model introduces a path-breaking bug (wrong branch
|
|
235
|
+
order, removed call, broken registration, swapped comparison). The code still
|
|
236
|
+
compiles but the path is broken — you find and fix it.
|
|
237
|
+
|
|
238
|
+
**Triggers:** `teach me logic-paths` · `teach me paths` · `teach me flow`
|
|
239
|
+
|
|
199
240
|
## Want to take this further
|
|
200
241
|
If you've enjoyed using //teach-me and want to audit your entire specification repository and get a formatted report with readiness scores, band distributions, and ranked improvement recommendations, check out our licensed product //spec-analysis. Contact the developer for more info.
|
|
201
242
|
|
package/package.json
CHANGED
package/skills/teach-me/SKILL.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: teach-me
|
|
3
|
-
description: Interactive code-teaching quiz. Selects random snippets from the current project and quizzes the user on application logic, language semantics, or BA documentation quality. Triggered by 'teach me', 'quiz me', 'test my knowledge', 'code quiz', or 'drill me'. Supports difficulty levels 1–5 and
|
|
3
|
+
description: Interactive code-teaching quiz. Selects random snippets from the current project and quizzes the user on application logic, language semantics, or BA documentation quality. Triggered by 'teach me', 'quiz me', 'test my knowledge', 'code quiz', or 'drill me'. Supports difficulty levels 1–5 and six themes: passive (explain), interactive (reconstruct), solid (anti-pattern detection), spec (spec-to-code traceability), ba-gates (BA documentation quality analysis), and logic-paths (execution-flow tracing).
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
Copyright (C) 2026 Celestial Consulting Ltd
|
|
@@ -34,10 +34,14 @@ current project. Two independent dimensions combine to form each exercise:
|
|
|
34
34
|
spec → code (show a requirement, ask what code implements it) or code → spec
|
|
35
35
|
(show code, ask what requirement it satisfies).
|
|
36
36
|
- **`ba`** / **`ba-gates`** / **`requirements`** — BA documentation quality analysis.
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
37
|
+
Scans requirements documents (.docx, .pptx, .xlsx, .md, .feature, .txt) and
|
|
38
|
+
quizzes on three quality gates: ambiguity, acceptance criteria completeness,
|
|
39
|
+
and edge case coverage. Uses two-pass analysis: regex triage then LLM
|
|
40
|
+
interpretation per fragment. On skip, presents concrete improvement options.
|
|
41
|
+
- **`logic-paths`** / **`paths`** / **`flow`** — Execution-path tracing. Levels 1–2:
|
|
42
|
+
single-function control flow (branch tracing, dead-code detection). Levels 3–5:
|
|
43
|
+
cross-function / cross-object call chains from a start point (test, entry,
|
|
44
|
+
thread, event, pubsub, or random) to an end point.
|
|
41
45
|
|
|
42
46
|
| Trigger | Response | Theme | What happens |
|
|
43
47
|
|---------|----------|-------|-------------|
|
|
@@ -49,6 +53,8 @@ current project. Two independent dimensions combine to form each exercise:
|
|
|
49
53
|
| `teach me spec interactive` | interactive | spec | Spec-to-code traceability; you edit code to satisfy a spec, say `done` |
|
|
50
54
|
| `teach me ba` | passive | ba-gates | Present BA doc fragment; you identify quality gate violations |
|
|
51
55
|
| `teach me ba interactive` | interactive | ba-gates | BA doc with quality issues; you edit the doc to fix them, say `done` |
|
|
56
|
+
| `teach me logic-paths` | passive | logic-paths | Present start/end points; you trace the execution path between them |
|
|
57
|
+
| `teach me logic-paths interactive` | interactive | logic-paths | Path broken by a bug; you fix the code to restore correct flow, say `done` |
|
|
52
58
|
|
|
53
59
|
Level, scope, language, and concept modifiers combine freely with any
|
|
54
60
|
combination above.
|
|
@@ -78,6 +84,7 @@ Optionally followed by modifiers:
|
|
|
78
84
|
- `teach me spec` — spec-to-code traceability theme
|
|
79
85
|
- `teach me ba` / `teach me ba-gates` / `teach me requirements` — BA documentation quality analysis theme
|
|
80
86
|
- `quiz me on requirements` / `ba quality check` — alternative ba-gates triggers
|
|
87
|
+
- `teach me logic-paths` / `teach me paths` / `teach me flow` — execution-path tracing theme
|
|
81
88
|
|
|
82
89
|
Modifiers combine freely: `teach me decorators level 4`,
|
|
83
90
|
`teach me async services/`, `teach me generators l2`,
|
|
@@ -87,7 +94,9 @@ Modifiers combine freely: `teach me decorators level 4`,
|
|
|
87
94
|
`teach me spec`, `teach me spec interactive`,
|
|
88
95
|
`teach me ba`, `teach me ba level 3`,
|
|
89
96
|
`teach me ba interactive`, `teach me ba <file>`,
|
|
90
|
-
`teach me requirements level 4
|
|
97
|
+
`teach me requirements level 4`,
|
|
98
|
+
`teach me logic-paths`, `teach me logic-paths level 4`,
|
|
99
|
+
`teach me logic-paths interactive`
|
|
91
100
|
|
|
92
101
|
If no level is specified, default to **level 3** and adjust based on
|
|
93
102
|
performance across rounds.
|
|
@@ -782,13 +791,287 @@ The improvement options MUST be concrete and domain-specific. Prefer specific da
|
|
|
782
791
|
|
|
783
792
|
---
|
|
784
793
|
|
|
794
|
+
### 2f. Logic-Paths Theme — Execution-Path Tracing
|
|
795
|
+
|
|
796
|
+
When content theme is `logic-paths` (triggered by `teach me logic-paths`, `teach me paths`,
|
|
797
|
+
or `teach me flow`), the model quizzes the user on execution paths — how control
|
|
798
|
+
flows through the code from a start point to an end point. Levels 1–2 focus on
|
|
799
|
+
single-function control flow; levels 3–5 trace cross-function / cross-object call
|
|
800
|
+
chains.
|
|
801
|
+
|
|
802
|
+
Logic-paths theme supports both response modes:
|
|
803
|
+
- **passive + logic-paths** (`teach me logic-paths`): User describes the path in console.
|
|
804
|
+
- **interactive + logic-paths** (`teach me logic-paths interactive`): The model introduces
|
|
805
|
+
a bug that breaks the path; user fixes the code and says `done`.
|
|
806
|
+
|
|
807
|
+
#### Level Split
|
|
808
|
+
|
|
809
|
+
| Level | Scope | What's quizzed |
|
|
810
|
+
|-------|-------|----------------|
|
|
811
|
+
| 1 | Single function, 5–15 lines, 2–3 branches | Simple if/else, early returns: which branch fires for given inputs? What's the return value? |
|
|
812
|
+
| 2 | Single function, 8–20 lines, nested conditions | Nested if/else, loops with break/continue, try/except chains: trace the path, identify conditions for reaching specific lines |
|
|
813
|
+
| 3 | 2–4 functions within the same module | Direct call chain: given a start point and one end point, trace the sequence — which functions fire and in what order? |
|
|
814
|
+
| 4 | Cross-module, callbacks/registrations | Callbacks, state machines, registration patterns: sometimes given a start and asked "trace to its natural conclusion" (no end point provided) |
|
|
815
|
+
| 5 | Multi-file, cross-system dispatch | Threads, pub/sub, event loops, async dispatch: given a start trigger in one subsystem, trace to the observable outcome in another |
|
|
816
|
+
|
|
817
|
+
#### Exercise Shapes (Random Per Round)
|
|
818
|
+
|
|
819
|
+
**Levels 1–2:**
|
|
820
|
+
- **Path trace:** "Given these concrete inputs, which branches fire? What path does execution take? What is the final return value?"
|
|
821
|
+
- **Condition finder:** "What condition must be true for execution to reach line N?"
|
|
822
|
+
- **Dead branch:** "Is any code in this function unreachable? Which lines, and why?"
|
|
823
|
+
|
|
824
|
+
**Levels 3–5:**
|
|
825
|
+
- **Start → End:** Both start and end points given. Trace the exact call chain from A to B.
|
|
826
|
+
- **Start → Natural Conclusion:** Only a start point given. Trace to the natural end — the observable outcome (return, state change, side effect, DB write, log).
|
|
827
|
+
- **Start → End with Conditional Branches:** Trace the path, noting every conditional fork that could divert execution and what determines which branch is taken.
|
|
828
|
+
|
|
829
|
+
**Levels 4–5:** One or two end points. When the model provides only a start point, the
|
|
830
|
+
question becomes "trace this to its natural conclusion" — the user must identify the
|
|
831
|
+
end point themselves.
|
|
832
|
+
|
|
833
|
+
#### Start-Point Types
|
|
834
|
+
|
|
835
|
+
The model randomly selects a start-point type from those available in the project:
|
|
836
|
+
|
|
837
|
+
| Start type | How the model finds it | Example |
|
|
838
|
+
|---|---|---|
|
|
839
|
+
| `test` | A test function that exercises the target code | `test_calculate_shares_zero_risk()` |
|
|
840
|
+
| `entry` | Main entry point (`if __name__ == "__main__"`, `main()`, CLI command) | `main()` in `cli.py` |
|
|
841
|
+
| `thread` | Code launched in a thread or executor | `Thread(target=watchdog)` |
|
|
842
|
+
| `event` | Event handler / signal callback / listener registration | `button.clicked.connect(handler)` |
|
|
843
|
+
| `pubsub` | A subscriber or message-queue consumer | `@subscribe("order.created")` |
|
|
844
|
+
| `random` | Arbitrary function — "how does execution ever reach this point?" | Any function in the codebase |
|
|
845
|
+
|
|
846
|
+
#### Discovery (Logic-Paths) — Call-Graph Sketch
|
|
847
|
+
|
|
848
|
+
Logic-paths discovery is **slower than other themes** because the model must
|
|
849
|
+
understand how code connects — not just index it. The discovery message MUST
|
|
850
|
+
warn the user:
|
|
851
|
+
|
|
852
|
+
```
|
|
853
|
+
Mapping execution paths across the project. This takes longer than
|
|
854
|
+
standard discovery because I'm tracing call chains, event wiring,
|
|
855
|
+
and cross-module connections. Please wait…
|
|
856
|
+
|
|
857
|
+
Scanned N files → M functions. Building call-graph sketch…
|
|
858
|
+
Found X start-point candidates across Y types. Ready.
|
|
859
|
+
```
|
|
860
|
+
|
|
861
|
+
**Discovery steps:**
|
|
862
|
+
|
|
863
|
+
1. Run standard discovery (file → function index) as in section 1.
|
|
864
|
+
2. **Scan for start-point candidates.** Use `grep_files` for:
|
|
865
|
+
- Test functions: `def test_`, `it(`, `test(`, `describe(`
|
|
866
|
+
- Entry points: `if __name__`, `main()`, CLI registrations
|
|
867
|
+
- Thread spawns: `Thread(`, `threading.Thread`, `executor.submit`
|
|
868
|
+
- Event/signal wiring: `.connect(`, `.on(`, `.addEventListener`, `signal`
|
|
869
|
+
- Pub/sub subscriptions: `@subscribe`, `@topic`, `@queue`, `@consumer`
|
|
870
|
+
- Random: any non-trivial function at the user's level
|
|
871
|
+
3. **Walk each candidate.** For each start-point candidate, read enough of the
|
|
872
|
+
call chain to identify a meaningful end point — something the start
|
|
873
|
+
eventually reaches that produces an observable result (return value, state
|
|
874
|
+
change, side effect, log, DB write).
|
|
875
|
+
4. **Verify the path.** The model MUST walk the entire path itself before
|
|
876
|
+
presenting it to the user — the path must be real, traceable, and
|
|
877
|
+
appropriate for the current level.
|
|
878
|
+
5. **Build candidate pool:** `(start_type, start_location, end_location, path_length, level)`.
|
|
879
|
+
Discard candidates where the model cannot confidently trace the path.
|
|
880
|
+
|
|
881
|
+
#### Snippet Selection (Logic-Paths)
|
|
882
|
+
|
|
883
|
+
- **Levels 1–2:** Select functions with branching (if/elif/else, switch/match),
|
|
884
|
+
early returns, guard clauses, exception handlers, or loops with break/continue.
|
|
885
|
+
Avoid straight-line single-return functions.
|
|
886
|
+
- **Levels 3–5:** Select from the call-graph candidate pool. Prefer paths that
|
|
887
|
+
cross at least one meaningful boundary (function call, object handoff, module
|
|
888
|
+
boundary). For levels 4–5, prefer paths involving callbacks, event dispatch,
|
|
889
|
+
or async mechanisms.
|
|
890
|
+
|
|
891
|
+
#### Per-Round Flow (Logic-Paths)
|
|
892
|
+
|
|
893
|
+
0. **Snapshot git state.** Run `git status --porcelain` on the files the path
|
|
894
|
+
touches. Note any pre-existing changes.
|
|
895
|
+
1. **Select** a candidate from the pool matching the current level and mode.
|
|
896
|
+
2. **Walk and verify** the path. Re-read the involved files to ensure the
|
|
897
|
+
path is still accurate.
|
|
898
|
+
3. **Present** the start and end points with enough context for the user
|
|
899
|
+
to reason about the path.
|
|
900
|
+
4. **Wait** for the user's response.
|
|
901
|
+
5. **Evaluate** the user's trace against the model's verified path.
|
|
902
|
+
6. **Feedback** with targeted nudges (see Logic-Paths Evaluation).
|
|
903
|
+
7. **Restore** (interactive only). `git checkout -- <file>` for byte-perfect
|
|
904
|
+
reset. If pre-existing uncommitted changes, restore manually via `edit_file`.
|
|
905
|
+
|
|
906
|
+
#### Thinking Suppression (Logic-Paths)
|
|
907
|
+
|
|
908
|
+
During steps 1–3 (selection, verification, and presentation), use **Skip**
|
|
909
|
+
thinking — the reasoning block would reveal the correct path and spoil the
|
|
910
|
+
exercise. Resume normal thinking at step 4 (after presentation).
|
|
911
|
+
|
|
912
|
+
#### Logic-Paths Presentation Format
|
|
913
|
+
|
|
914
|
+
**Levels 1–2 (passive):**
|
|
915
|
+
|
|
916
|
+
```
|
|
917
|
+
---
|
|
918
|
+
## Round N — Level X · passive · logic-paths | `path/to/file.py` (lines A–B)
|
|
919
|
+
|
|
920
|
+
```python
|
|
921
|
+
42 risk_amount = capital * (risk_per_trade / 100)
|
|
922
|
+
43 price_risk = abs(entry_price - stop_loss)
|
|
923
|
+
44 if price_risk == 0:
|
|
924
|
+
45 return 0
|
|
925
|
+
46 if risk_amount <= 0:
|
|
926
|
+
47 return 0
|
|
927
|
+
48 shares = int(risk_amount / price_risk)
|
|
928
|
+
49 return max(shares, 0)
|
|
929
|
+
```
|
|
930
|
+
|
|
931
|
+
**Your turn:** (Passive) Trace the execution path for these inputs:
|
|
932
|
+
`capital=0, risk_per_trade=2, entry_price=100, stop_loss=100`.
|
|
933
|
+
Which line does execution reach first? What is the return value? What
|
|
934
|
+
condition caused the early exit?
|
|
935
|
+
|
|
936
|
+
Type `hint` for a clue, `skip` to see the answer, or `stop` to end.
|
|
937
|
+
---
|
|
938
|
+
```
|
|
939
|
+
|
|
940
|
+
**Levels 3–5 (passive — start → end):**
|
|
941
|
+
|
|
942
|
+
```
|
|
943
|
+
---
|
|
944
|
+
## Round N — Level 4 · passive · logic-paths | pubsub → side effect
|
|
945
|
+
|
|
946
|
+
**Start:** `services/order_handler.py` — `@subscribe("order.created")`
|
|
947
|
+
triggers `handle_new_order()`
|
|
948
|
+
|
|
949
|
+
**End:** `services/inventory.py::reserve_stock()` reduces `available_quantity`
|
|
950
|
+
by the ordered amount
|
|
951
|
+
|
|
952
|
+
**Your turn:** (Passive) Trace the path from the pub/sub event arrival to the
|
|
953
|
+
inventory update. Which functions fire, in what order? What objects mediate
|
|
954
|
+
the handoff? Are there any conditional branches along the way that could
|
|
955
|
+
divert execution?
|
|
956
|
+
|
|
957
|
+
Type `hint` for a clue, `skip` to see the answer, or `stop` to end.
|
|
958
|
+
---
|
|
959
|
+
```
|
|
960
|
+
|
|
961
|
+
**Levels 4–5 (passive — start only, trace to natural conclusion):**
|
|
962
|
+
|
|
963
|
+
```
|
|
964
|
+
---
|
|
965
|
+
## Round N — Level 5 · passive · logic-paths | thread → outcome
|
|
966
|
+
|
|
967
|
+
**Start:** `services/watchdog.py` — `Thread(target=health_check_loop)` is
|
|
968
|
+
spawned during application startup
|
|
969
|
+
|
|
970
|
+
**End:** Trace this to its natural conclusion. What is the observable outcome
|
|
971
|
+
of this thread's execution? Which functions, modules, and system boundaries
|
|
972
|
+
does it cross?
|
|
973
|
+
|
|
974
|
+
Type `hint` for a clue, `skip` to see the answer, or `stop` to end.
|
|
975
|
+
---
|
|
976
|
+
```
|
|
977
|
+
|
|
978
|
+
**Interactive mode (logic-paths):**
|
|
979
|
+
|
|
980
|
+
The model introduces a **path-breaking bug** — a change that breaks the execution
|
|
981
|
+
flow without making the code obviously wrong. Examples:
|
|
982
|
+
- Swap the order of two conditional branches (wrong branch fires first)
|
|
983
|
+
- Remove a critical function call from the chain
|
|
984
|
+
- Change a registration key so the handler is never wired
|
|
985
|
+
- Introduce a wrong comparison operator that diverts the path
|
|
986
|
+
- Remove a `yield` or `await` that a downstream call depends on
|
|
987
|
+
|
|
988
|
+
The bug MUST be subtle enough to require the user to trace the path, not just
|
|
989
|
+
spot a syntax error. The code must still parse/compile.
|
|
990
|
+
|
|
991
|
+
**Interactive presentation format:**
|
|
992
|
+
|
|
993
|
+
```
|
|
994
|
+
---
|
|
995
|
+
## Round N — Level 4 · interactive · logic-paths | `services/order_handler.py`
|
|
996
|
+
|
|
997
|
+
**Start:** `services/order_handler.py` — `@subscribe("order.created")`
|
|
998
|
+
triggers `handle_new_order()`
|
|
999
|
+
|
|
1000
|
+
**End:** `services/inventory.py::reserve_stock()` should reduce
|
|
1001
|
+
`available_quantity` by the ordered amount — but it never fires.
|
|
1002
|
+
|
|
1003
|
+
⚠️ **Interactive — Path Broken.** A bug has been introduced somewhere in the
|
|
1004
|
+
execution chain. The code still compiles but the path from start to end is
|
|
1005
|
+
broken. Find and fix the bug. When you're done, say **`done`** or
|
|
1006
|
+
**`check my work`**.
|
|
1007
|
+
|
|
1008
|
+
Type `hint` for a clue, `skip` to see the answer, or `stop` to end.
|
|
1009
|
+
---
|
|
1010
|
+
```
|
|
1011
|
+
|
|
1012
|
+
#### Logic-Paths Evaluation
|
|
1013
|
+
|
|
1014
|
+
Evaluate across dimensions scaled to the current level:
|
|
1015
|
+
|
|
1016
|
+
| Level | What's assessed |
|
|
1017
|
+
|-------|----------------|
|
|
1018
|
+
| 1 | Correct branch identification for given inputs; correct return value; awareness of which condition triggered |
|
|
1019
|
+
| 2 | Correct nested path; identified all relevant branches; awareness of fall-through and break/continue behavior |
|
|
1020
|
+
| 3 | Complete call chain (every function named in order); correct object handoffs; awareness of conditional diversions |
|
|
1021
|
+
| 4 | Complete cross-module chain; identified callbacks/registrations; noted where state is passed between modules; identified the logical end point |
|
|
1022
|
+
| 5 | Complete multi-system chain; identified dispatch mechanism (thread, pubsub, event loop); noted async synchronization points; understood the architectural flow |
|
|
1023
|
+
|
|
1024
|
+
**Outcome levels:**
|
|
1025
|
+
|
|
1026
|
+
| Outcome | Criteria | Feedback approach |
|
|
1027
|
+
|---------|----------|-------------------|
|
|
1028
|
+
| **Complete** | Traced the full path correctly at the current level with awareness of branches and handoffs | Highlight what they caught + 1–2 things to sharpen |
|
|
1029
|
+
| **Partial** | Traced some of the path, or missed significant branches/handoffs | Strike-1 or strike-2 nudge toward the missed part |
|
|
1030
|
+
| **Missed** | Did not identify the primary path or start/end connection | Strike-2 or strike-3 with full path reveal |
|
|
1031
|
+
|
|
1032
|
+
**Interactive mode evaluation** — compare the user's fix against the bug that was introduced:
|
|
1033
|
+
- Did they restore the correct path? (Yes — exact / close)
|
|
1034
|
+
- Does the path now reach the end point? (Yes / no)
|
|
1035
|
+
- Did they fix the right thing, or patch a symptom?
|
|
1036
|
+
|
|
1037
|
+
#### Strikes in Logic-Paths
|
|
1038
|
+
|
|
1039
|
+
**Strike 1** — Category nudge (don't reveal the answer, just steer):
|
|
1040
|
+
```
|
|
1041
|
+
Good start, but you're missing part of the chain. Look between [function A]
|
|
1042
|
+
and [function C] — what sits in the middle? Also, there's a conditional
|
|
1043
|
+
branch you haven't considered.
|
|
1044
|
+
```
|
|
1045
|
+
|
|
1046
|
+
**Strike 2** — Near-explicit hint (name a specific function or condition):
|
|
1047
|
+
```
|
|
1048
|
+
You're close. The path goes through `PaymentGateway.authorize()` before
|
|
1049
|
+
reaching `InventoryService`. And on line 47 of order_handler.py, there's
|
|
1050
|
+
an `if order.total <= 0` guard that short-circuits the path entirely.
|
|
1051
|
+
```
|
|
1052
|
+
|
|
1053
|
+
**Strike 3** — Reveal the full path and move to the next round:
|
|
1054
|
+
```
|
|
1055
|
+
Here's the complete execution path:
|
|
1056
|
+
|
|
1057
|
+
handle_new_order()
|
|
1058
|
+
→ OrderValidator.validate(order) # returns ValidationResult
|
|
1059
|
+
→ PaymentGateway.authorize(order) # if total > 0, else return
|
|
1060
|
+
→ InventoryService.reserve(items) # reduces available_quantity
|
|
1061
|
+
→ OrderNotifier.send_confirmation() # side effect: email
|
|
1062
|
+
```
|
|
1063
|
+
|
|
1064
|
+
After strike 3, proceed directly to the next round.
|
|
1065
|
+
|
|
1066
|
+
---
|
|
1067
|
+
|
|
785
1068
|
### 3. Presentation — Show the Snippet
|
|
786
1069
|
|
|
787
1070
|
For each round, present the snippet with its filename:
|
|
788
1071
|
|
|
789
1072
|
```
|
|
790
1073
|
---
|
|
791
|
-
## Round N — Level X · [passive|interactive] · [concept|solid|spec|ba-gates] | `path/to/file.py` (lines A–B)
|
|
1074
|
+
## Round N — Level X · [passive|interactive] · [concept|solid|spec|logic-paths|ba-gates] | `path/to/file.py` (lines A–B)
|
|
792
1075
|
|
|
793
1076
|
```python
|
|
794
1077
|
42 def calculate_position_size(
|
|
@@ -818,7 +1101,7 @@ Guidelines:
|
|
|
818
1101
|
- Show the function/class signature with its decorators
|
|
819
1102
|
- Show the filename and line range in the header
|
|
820
1103
|
- The response mode tag (`· passive` or `· interactive`) always appears in the header
|
|
821
|
-
- The theme/concept tag (`· solid` for SOLID theme, `· spec` for spec theme, `· ba-gates` for BA-Gates theme, or `· decorators` etc. for targeted concept) appears when applicable; omit during free-play standard rounds
|
|
1104
|
+
- The theme/concept tag (`· solid` for SOLID theme, `· spec` for spec theme, `· ba-gates` for BA-Gates theme, `· logic-paths` for logic-paths theme, or `· decorators` etc. for targeted concept) appears when applicable; omit during free-play standard rounds
|
|
822
1105
|
- If the snippet depends on one obvious external type or constant, include a
|
|
823
1106
|
brief inline note
|
|
824
1107
|
- **Before presenting, scan for secrets.** Redact API keys, tokens, passwords,
|
|
@@ -952,6 +1235,19 @@ documentation quality issues against the Pass 2 generated expected answer:
|
|
|
952
1235
|
|
|
953
1236
|
See section 2e (BA-Gates Theme) for the full strike system and improvement options format.
|
|
954
1237
|
|
|
1238
|
+
#### F. Logic-Paths Mode Evaluation
|
|
1239
|
+
|
|
1240
|
+
When theme is `logic-paths`, evaluate the user's ability to trace execution paths
|
|
1241
|
+
against the level-appropriate criteria in section 2f (Logic-Paths Theme).
|
|
1242
|
+
|
|
1243
|
+
| Outcome | Criteria | Feedback approach |
|
|
1244
|
+
|---------|----------|-------------------|
|
|
1245
|
+
| **Complete** | Traced the full path correctly with awareness of branches and handoffs | Highlight what they caught + 1–2 things to sharpen |
|
|
1246
|
+
| **Partial** | Traced some of the path, or missed significant branches/handoffs | Strike-1 or strike-2 nudge toward the missed part |
|
|
1247
|
+
| **Missed** | Did not identify the primary path or start/end connection | Strike-2 or strike-3 with full path reveal |
|
|
1248
|
+
|
|
1249
|
+
See section 2f (Logic-Paths Theme) for the full strike system and presentation format.
|
|
1250
|
+
|
|
955
1251
|
#### Weighted Evaluation for Targeted Concepts
|
|
956
1252
|
|
|
957
1253
|
When a concept is targeted (e.g., `teach me decorators`), bias the
|
|
@@ -1046,13 +1342,14 @@ explicitly says `stop`.**
|
|
|
1046
1342
|
| `solid` / `SOLID` | Switch to SOLID (anti-pattern reconstruction) theme for subsequent rounds. |
|
|
1047
1343
|
| `spec` | Switch to spec (spec-to-code traceability) theme for subsequent rounds. |
|
|
1048
1344
|
| `ba` / `ba-gates` / `requirements` | Switch to BA-Gates (BA documentation quality) theme for subsequent rounds. |
|
|
1049
|
-
| `
|
|
1345
|
+
| `logic-paths` / `paths` / `flow` | Switch to logic-paths (execution-path tracing) theme for subsequent rounds. |
|
|
1346
|
+
| `done` / `check my work` | (Interactive/SOLID/Spec/BA-Gates/Logic-Paths mode) Signal that work is complete. Triggers verification. |
|
|
1050
1347
|
| `stop` / `end` | End session. Deliver summary. |
|
|
1051
1348
|
|
|
1052
1349
|
### 5. Loop — Keep Going
|
|
1053
1350
|
|
|
1054
1351
|
After a successful evaluation or a `next` skip, ask:
|
|
1055
|
-
"Another round? (yes / no / level N / interactive / passive / solid / spec / ba / stop)"
|
|
1352
|
+
"Another round? (yes / no / level N / interactive / passive / solid / spec / ba / logic-paths / stop)"
|
|
1056
1353
|
|
|
1057
1354
|
After a strike-3 reveal, do **not** ask — proceed directly to the next
|
|
1058
1355
|
round with:
|
|
@@ -1094,6 +1391,24 @@ Gates to strengthen: Edge case coverage (rounds 2, 3)
|
|
|
1094
1391
|
Suggested next level: 3 → 4
|
|
1095
1392
|
```
|
|
1096
1393
|
|
|
1394
|
+
For Logic-Paths sessions, the summary covers paths and start-point types instead of gates:
|
|
1395
|
+
```
|
|
1396
|
+
## Session Summary
|
|
1397
|
+
|
|
1398
|
+
Rounds completed: 4
|
|
1399
|
+
Theme: logic-paths · Mode: passive · Level: 3
|
|
1400
|
+
Paths traced:
|
|
1401
|
+
- test_calculate_shares → PositionSizer.calculate() (round 1 — test start)
|
|
1402
|
+
- main() in cli.py → Database.record_sale() (round 2 — entry start)
|
|
1403
|
+
- @subscribe("order.created") → inventory reserve (round 3 — pubsub start)
|
|
1404
|
+
- Thread(health_check) → SystemMonitor.alert() (round 4 — thread → natural conclusion)
|
|
1405
|
+
|
|
1406
|
+
Start-point types covered: test, entry, pubsub, thread
|
|
1407
|
+
Paths mastered: Round 1, 3 ✓
|
|
1408
|
+
Paths to strengthen: Round 2 (missed validation step), Round 4 (missed timeout branch)
|
|
1409
|
+
Suggested next level: 3 → 4
|
|
1410
|
+
```
|
|
1411
|
+
|
|
1097
1412
|
## Multilingual Projects
|
|
1098
1413
|
|
|
1099
1414
|
If the project contains multiple languages, let the user's `teach me <lang>`
|
|
@@ -1146,6 +1461,11 @@ criteria for the Mechanics axis:
|
|
|
1146
1461
|
- **BA-Gates two-pass integrity.** Pass 1 regex results are filters only — do not present them as answers. Pass 2 LLM interpretation MUST run fresh per fragment at round time. If Pass 2 determines all regex flags are false positives, discard the fragment and select another. Do not fabricate issues.
|
|
1147
1462
|
- **BA-Gates extraction fallback.** If `codewhale-doc-extract` fails for any office file, note it and skip that file — do not attempt alternative extraction methods. Report skipped files in discovery.
|
|
1148
1463
|
- **BA-Gates thinking discipline.** Pass 2 analysis runs with Deep/High thinking. Once presentation begins, switch to Skip thinking — never include generated answers or gate locations in reasoning_content after the fragment is shown.
|
|
1464
|
+
- **Logic-paths start-point realism.** Only present start/end points that the model has actually verified by walking the path. Do not fabricate or approximate a call chain — if the model cannot confidently trace the path, discard the candidate and select another.
|
|
1465
|
+
- **Logic-paths interactive safety.** The path-breaking bug MUST keep the code compilable/parseable. The model MUST NOT introduce syntax errors, delete function signatures, or write code that would crash on import. The bug must be in the logic, not the grammar.
|
|
1466
|
+
- **Logic-paths verification before presentation.** The model MUST walk the full path using live file reads before presenting it — do not rely on discovery-stage analysis. Code may have changed between discovery and the current round.
|
|
1467
|
+
- **Logic-paths concurrent safety.** If the project uses multi-threading, multi-processing, or async, clearly explain which parts of the path execute sequentially and which may race or interleave. State the model's assumptions about scheduling.
|
|
1468
|
+
- **Logic-paths thinking discipline.** During selection and path verification (before presentation), use Skip thinking — never include the correct path, start/end points, or the bug location in reasoning_content after the round is presented.
|
|
1149
1469
|
|
|
1150
1470
|
## Verification
|
|
1151
1471
|
|
|
@@ -1184,3 +1504,15 @@ After each round, confirm:
|
|
|
1184
1504
|
- (BA-Gates theme) `//snapshot on/off` was used in interactive mode for non-git workspaces
|
|
1185
1505
|
- (BA-Gates theme) Extraction fallback was handled gracefully — skipped files were reported
|
|
1186
1506
|
- (BA-Gates theme) Thinking suppression was maintained — Pass 2 material was not leaked into reasoning after presentation
|
|
1507
|
+
- (Logic-paths theme) Discovery warned the user about longer startup time
|
|
1508
|
+
- (Logic-paths theme) Start-point candidates were scanned across test/entry/thread/event/pubsub/random types
|
|
1509
|
+
- (Logic-paths theme) The model walked and verified the full path using live file reads before presentation
|
|
1510
|
+
- (Logic-paths theme) The start-point type and end-point location were clearly stated in the presentation
|
|
1511
|
+
- (Logic-paths theme) For level 4–5 "natural conclusion" rounds, no end point was revealed before evaluation
|
|
1512
|
+
- (Logic-paths theme) Exercise shape (path trace, condition finder, dead branch, start→end, start→natural conclusion) was varied across rounds
|
|
1513
|
+
- (Logic-paths theme) Interactive mode bugs kept code compilable — no syntax errors introduced
|
|
1514
|
+
- (Logic-paths theme) Interactive mode bugs were in logic, not grammar — path-breaking but not crash-causing
|
|
1515
|
+
- (Logic-paths theme) Call chain was verified before presentation — no fabricated or approximated paths
|
|
1516
|
+
- (Logic-paths theme) The full path was revealed on skip or strike-3 with function names in order
|
|
1517
|
+
- (Logic-paths theme) Modified files were restored with `git checkout` on round end (or `edit_file` if pre-existing changes)
|
|
1518
|
+
- (Logic-paths theme) Thinking suppression was maintained — path, start/end points, and bug locations were not leaked into reasoning after presentation
|