Skip to content
This repository was archived by the owner on Sep 23, 2025. It is now read-only.

Commit 25580c3

Browse files
committed
Checkpoint: Complete review system with tree view + diff commenting
**Current State: Elaborate UI system complete but may need simplification** **What We Built:** - ✅ Eliminated disruptive QuickPick modal - ✅ Tree view action buttons (Request Changes, Checkpoint, Close Review) - ✅ Inline diff commenting with full callback system - ✅ Auto-show reviews (no info messages) - ✅ Clean branding: 'Socratic Shell: Code Review' with SVG logo - ✅ Complex promise/callback feedback collection system **Key Insight from User:** 'The comment UI is nifty, but actually, I'm not sure it's as practical as you might think. I kind of think interacting with the terminal is more practical.' **Next Iteration Direction:** - Consider terminal-based interaction instead of complex UI - 'Ask Socratic Shell' pattern: inject text into terminal - Non-blocking approach vs current blocking feedback system - Merge request_review and code walkthrough logic **Status:** Solid foundation built, ready to pivot to simpler terminal approach
1 parent 4ebf568 commit 25580c3

File tree

8 files changed

+4430
-4
lines changed

8 files changed

+4430
-4
lines changed

extension/activitybar-logo.svg

Lines changed: 27 additions & 0 deletions
Loading

extension/logo.svg

Lines changed: 2 additions & 2 deletions
Loading

extension/logo1.svg

Lines changed: 3 additions & 0 deletions
Loading

extension/package.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,7 @@
6464
{
6565
"id": "dialectic",
6666
"title": "Socratic Shell",
67-
"icon": "logo.svg"
67+
"icon": "activitybar-logo.svg"
6868
}
6969
]
7070
},
@@ -112,4 +112,4 @@
112112
"dependencies": {
113113
"markdown-it": "^14.1.0"
114114
}
115-
}
115+
}

logo.png

1.17 MB
Loading

logo.svg

Lines changed: 4275 additions & 0 deletions
Loading

md/SUMMARY.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@
2424
- [AI Guidance design considerations](./design/ai-guidance.md) <!-- 💡: Design decisions made specifically to work well with AI collaboration patterns from socratic shell -->
2525
- [Codebase structure](./design/codebase-structure.md) <!-- 💡: Overview of project structure, key files, and how components connect for contributors -->
2626
- [How each feature works]() <!-- 💡: Walk through the flow of particular features -->
27+
- [Code walkthroughs](./design/code-walkthroughs.md)
2728
- [Present Review](./design/present-review.md) <!-- 💡: How AI assistants present code reviews, message flows, and implementation details -->
2829
- [Synthetic Pull Requests](./design/synthetic-pr.md) <!-- 💡: Git operations with git2, AI comment parsing (💡❓TODO/FIXME), MCP tool implementation, and VSCode CommentController integration for PR-like workflows -->
2930
- [Ask Socratic Shell](./design/ask-socratic-shell.md) <!-- 💡: How Ask Socratic Shell works, message flows, and implementation details -->
@@ -34,6 +35,7 @@
3435
- [VSCode extension](./design/extension.md) <!-- 💡: Highlights of the VSCode Extension design and implementation: activation, establishing IPC protocol -->
3536
- [Dialect language](./design/dialect-language.md) <!-- 💡: JSON mini-language semantics for IDE operations - function composition, value types, and execution model -->
3637

38+
3739
# References
3840

3941
- [Research reports]() <!-- 💡: Background research that informed design decisions - consult when discussing related technical topics -->

md/design/code-walkthroughs.md

Lines changed: 119 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,119 @@
1+
# Code walkthroughs
2+
3+
Code walkthroughs are triggered in circumstances like:
4+
5+
1. the AI agent completes a set of related changes or encounters an obstacle where it requires the users help
6+
2. the user asks to review the agent's work
7+
3. the user asks the agent to explain a given codepath or to walk through some portion of the code.
8+
9+
In these cases, the agent triggers the `present_walkthrough` tool. Walkthroughs are usually (but not always) related to code; they can also be useful for documents or other files, however.
10+
11+
## Example of a walkthrough
12+
13+
We begin with examples before defining the full structure. A *walkthrough* is defined by a JSON object with a standard set of actions. All fields are optional.
14+
15+
```json
16+
{
17+
// The introduction section covers the .
18+
"introduction": [
19+
"These entries are markdown paragraphs.",
20+
"Each paragraph can be a separate entry.",
21+
{
22+
"mermaid": "...",
23+
} // but other options are also allowed
24+
],
25+
26+
// The "highlights" section is used to highlight areas
27+
// that the agent wishes to call attention to. These are
28+
// either key points in the walkthrough.
29+
"highlights": [
30+
{
31+
// A "question" is used to highlight an area of uncertainty.
32+
"question": {
33+
// The file
34+
"file": "src/foo.rs",
35+
36+
// The regular expression to search for within the file.
37+
// LLMs are not good at using line numbers.
38+
"regex": "fn foo\\b",
39+
40+
// The question being asked.
41+
"content": [
42+
"I was not sure what the name of this function should be. Please double check it!"
43+
],
44+
},
45+
46+
// A "warning" is used to bring something to the user's attention that may be wrong.
47+
"warning": {
48+
"file": "src/foo.rs",
49+
"regex": "panic!()",
50+
"comment": [
51+
"This function does not accept negative numbers."
52+
],
53+
},
54+
55+
// A "note" is used to bring something to the user's attention in a less forceful fashion.
56+
"note": {
57+
"file": "src/foo.rs",
58+
"regex": "",
59+
"comment": [
60+
"This is the most important part of the function."
61+
],
62+
}
63+
}
64+
],
65+
66+
// The "changes" section is used to document the full set of changes.
67+
"changes": [
68+
{
69+
// A "diff" presents changes from a range of git commits.
70+
// It can also include
71+
"gitdiff": {
72+
// The range can be a range of commits (e.g., `HEAD~3..HEAD~1`)
73+
// of a single commit.
74+
"range": "HEAD^..",
75+
76+
// If the range includes HEAD, then by default we will include
77+
// unstaged and staged changes. The excluded parameter can
78+
// be used to exclude those.
79+
"exclude": {
80+
"unstaged": false,
81+
"staged": false
82+
}
83+
}
84+
}
85+
]
86+
87+
// The actions section is used to give the user choices on how
88+
// to proceed. Actions can technically be embedded anywhere.
89+
//
90+
// The following is the default actions if none are otherwise given.
91+
"actions": [
92+
{
93+
"action": {
94+
// Description
95+
"description": "If you are satisfied with these changes, checkpoint them to update tracking documents.",
96+
97+
// Text on the button.
98+
"button": "Checkpoint",
99+
100+
// Text sent to the agent
101+
"tell_agent": "Checkpoint"
102+
},
103+
104+
"action": {
105+
// Description
106+
"description": "Request the agent to make more changes.",
107+
108+
// Text on the button.
109+
"button": "Request changes",
110+
111+
// Text sent to the agent
112+
"tell_agent": "I'd like to make more changes. Please discuss with them with me."
113+
}
114+
},
115+
]
116+
}
117+
```
118+
119+
## Walkthrough format

0 commit comments

Comments
 (0)