You are an expert Java developer tasked with assessing whether the documentation in src/site/markdown/ adequately covers the functionality implemented in the Java SDK.
Analyze the Java SDK source code and compare it against the existing documentation to:
- Identify undocumented features - Functionality in code that lacks documentation
- Find outdated documentation - Docs that don't match current implementation
- Assess documentation quality - Are documented features explained with examples?
Extract all public classes, methods, and features from the SDK:
# List all public classes in core package
grep -l "public class\|public interface\|public enum" src/main/java/com/github/copilot/sdk/*.java
# List all public classes in json package (DTOs)
grep -l "public class" src/main/java/com/github/copilot/sdk/json/*.java
# List all event types
ls src/main/java/com/github/copilot/sdk/events/List all documentation files:
ls src/site/markdown/Read each documentation file to understand current coverage.
For each major feature area, determine if it's documented:
Examine CopilotClient.java for public methods:
grep "public.*(" src/main/java/com/github/copilot/sdk/CopilotClient.java | grep -v "@"| Method | Purpose | Documented In | Status |
|---|---|---|---|
start() |
Start the client | ? | ✅/❌ |
stop() |
Stop the client | ? | ✅/❌ |
createSession() |
Create a new session | ? | ✅/❌ |
resumeSession() |
Resume existing session | ? | ✅/❌ |
deleteSession() |
Delete a session | ? | ✅/❌ |
listSessions() |
List all sessions | ? | ✅/❌ |
listModels() |
List available models | ? | ✅/❌ |
getStatus() |
Get client status | ? | ✅/❌ |
getAuthStatus() |
Get auth status | ? | ✅/❌ |
ping() |
Ping the server | ? | ✅/❌ |
Examine CopilotSession.java for public methods:
grep "public.*(" src/main/java/com/github/copilot/sdk/CopilotSession.java | grep -v "@"| Method | Purpose | Documented In | Status |
|---|---|---|---|
send() |
Send a message | ? | ✅/❌ |
sendAndWait() |
Send and wait for response | ? | ✅/❌ |
on() |
Subscribe to events | ? | ✅/❌ |
registerTools() |
Register custom tools | ? | ✅/❌ |
getMessages() |
Get conversation history | ? | ✅/❌ |
abort() |
Abort current operation | ? | ✅/❌ |
Examine SessionConfig.java for configurable options:
grep "public.*set\|private.*;" src/main/java/com/github/copilot/sdk/json/SessionConfig.java| Option | Purpose | Documented | Example Provided |
|---|---|---|---|
model |
Model to use | ✅/❌ | ✅/❌ |
tools |
Custom tools | ✅/❌ | ✅/❌ |
systemMessage |
System prompt | ✅/❌ | ✅/❌ |
streaming |
Enable streaming | ✅/❌ | ✅/❌ |
mcpServers |
MCP integration | ✅/❌ | ✅/❌ |
hooks |
Session hooks | ✅/❌ | ✅/❌ |
infiniteSessions |
Long sessions | ✅/❌ | ✅/❌ |
skillDirectories |
Skills config | ✅/❌ | ✅/❌ |
customAgents |
Custom agents | ✅/❌ | ✅/❌ |
Check which events are documented:
grep "TYPE_MAP.put" src/main/java/com/github/copilot/sdk/events/SessionEventParser.java| Event Type | Event Class | Documented | Example |
|---|---|---|---|
session.start |
SessionStartEvent |
✅/❌ | ✅/❌ |
session.idle |
SessionIdleEvent |
✅/❌ | ✅/❌ |
assistant.message |
AssistantMessageEvent |
✅/❌ | ✅/❌ |
| ... | ... | ... | ... |
Check SessionHooks.java for hook types:
grep "private.*Handler" src/main/java/com/github/copilot/sdk/json/SessionHooks.java| Hook | Handler Interface | Documented | Example |
|---|---|---|---|
| Pre-tool use | PreToolUseHandler |
✅/❌ | ✅/❌ |
| Post-tool use | PostToolUseHandler |
✅/❌ | ✅/❌ |
| User prompt submitted | UserPromptSubmittedHandler |
✅/❌ | ✅/❌ |
| Session lifecycle | SessionLifecycleHandler |
✅/❌ | ✅/❌ |
For each documented feature, verify:
- Accurate description - Does it match current implementation?
- Code example - Is there a working code snippet?
- Complete coverage - Are all parameters/options explained?
- Up to date - Does it reflect the current API?
| Category | Total Features | Documented | Coverage |
|---|---|---|---|
| Client Methods | X | X | X% |
| Session Methods | X | X | X% |
| Config Options | X | X | X% |
| Events | X | X | X% |
| Hooks | X | X | X% |
| Overall | X | X | X% |
Features that exist in code but have no documentation:
| Feature | Location | Priority | Notes |
|---|---|---|---|
| Feature name | Class/method | High/Medium/Low | Why it matters |
Existing docs that need enhancement:
| Document | Gap | Recommendation |
|---|---|---|
getting-started.md |
Missing X | Add section on X |
advanced.md |
Outdated API | Update to match code |
Topics that warrant dedicated documentation:
| Topic | Why Needed | Suggested File |
|---|---|---|
| Hooks | Complex feature | hooks.md |
| Error Handling | Common need | error-handling.md |
- Document feature X - used frequently, no docs
- Update docs for Y - API changed
- Add examples for Z
- Improve explanation of W
- Add troubleshooting guide
- Add FAQ section
src/main/java/com/github/copilot/sdk/CopilotClient.javasrc/main/java/com/github/copilot/sdk/CopilotSession.javasrc/main/java/com/github/copilot/sdk/json/SessionConfig.javasrc/main/java/com/github/copilot/sdk/json/SessionHooks.javasrc/main/java/com/github/copilot/sdk/events/SessionEventParser.java
src/site/markdown/index.md- Landing pagesrc/site/markdown/getting-started.md- Quick start guidesrc/site/markdown/documentation.md- API referencesrc/site/markdown/advanced.md- Advanced topicssrc/site/markdown/mcp.md- MCP integration