@afterxleep/doc-bot 1.14.0 → 1.15.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/AGENT_INTEGRATION_RULE.txt +58 -122
- package/package.json +1 -1
- package/prompts/file-docs.txt +46 -8
- package/prompts/global-rules.txt +76 -12
- package/prompts/mandatory-rules.txt +107 -13
- package/prompts/search-results.txt +43 -4
- package/prompts/system-prompt.txt +201 -101
- package/src/index.js +159 -14
- package/prompts/agent-optimized-system-prompt.txt +0 -82
- package/prompts/cognitive-triggers.txt +0 -45
- package/prompts/relevant-docs.txt +0 -13
|
@@ -1,142 +1,78 @@
|
|
|
1
|
-
#
|
|
2
|
-
|
|
3
|
-
|
|
1
|
+
# DOC-BOT: AGENT INTEGRATION RULE
|
|
2
|
+
Version 4
|
|
3
|
+
Copy everything below as your Agent single rule.
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
---
|
|
6
6
|
|
|
7
|
-
|
|
8
|
-
IF (
|
|
9
|
-
(filesystem_contains("doc-bot/") AND
|
|
10
|
-
(mcp_server_available("doc-bot") OR mcp_server_available("@afterxleep/doc-bot"))
|
|
11
|
-
) THEN {
|
|
12
|
-
ACTIVATE: doc_bot_enforcement_protocol()
|
|
13
|
-
SET: project_documentation_authority = TRUE
|
|
14
|
-
SET: general_knowledge_override = DISABLED
|
|
15
|
-
}
|
|
16
|
-
```
|
|
17
|
-
|
|
18
|
-
## PHASE 2: REQUEST CLASSIFICATION ENGINE
|
|
19
|
-
|
|
20
|
-
### CLASSIFICATION MATRIX:
|
|
21
|
-
|
|
22
|
-
**CLASS A: CODE_GENERATION**
|
|
23
|
-
```
|
|
24
|
-
Trigger Pattern: /\b(write|create|implement|build|add|code|function|class|component|method|develop|generate|make|refactor|modify|update|fix|debug)\b/i
|
|
25
|
-
Required Action: MANDATORY_CALL(check_project_rules, extract_task_description())
|
|
26
|
-
Blocking: TRUE (cannot proceed without tool response)
|
|
27
|
-
Timeout: 30s
|
|
28
|
-
```
|
|
29
|
-
|
|
30
|
-
**CLASS B: PROJECT_INQUIRY**
|
|
31
|
-
```
|
|
32
|
-
Trigger Pattern: /\b(how|what|why|architecture|approach|pattern|feature|authentication|database|api|testing)\b/i
|
|
33
|
-
Context Pattern: /\b(this project|this codebase|here|our|current project)\b/i
|
|
34
|
-
Required Action: MANDATORY_CALL(search_documentation, extract_keywords())
|
|
35
|
-
Blocking: TRUE
|
|
36
|
-
Timeout: 30s
|
|
37
|
-
```
|
|
7
|
+
## DOC-BOT: MANDATORY BEHAVIORAL PROTOCOL
|
|
38
8
|
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
Trigger Pattern: /\b(documentation|available|capabilities|help|rules|standards|what exists|docs|guide)\b/i
|
|
42
|
-
Required Action: MANDATORY_CALL(get_global_rules)
|
|
43
|
-
Blocking: TRUE
|
|
44
|
-
Timeout: 30s
|
|
45
|
-
```
|
|
9
|
+
### ACTIVATION
|
|
10
|
+
doc-bot MCP server detected? → This protocol is NOW ACTIVE
|
|
46
11
|
|
|
47
|
-
|
|
48
|
-
```
|
|
49
|
-
Trigger Pattern: /\b(read|show|get content|full document|complete|entire)\b/i
|
|
50
|
-
Previous Context: search_results_present()
|
|
51
|
-
Required Action: MANDATORY_CALL(read_specific_document, extract_filename())
|
|
52
|
-
Blocking: FALSE
|
|
53
|
-
Timeout: 15s
|
|
54
|
-
```
|
|
12
|
+
### THE ONLY WORKFLOW
|
|
55
13
|
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
Blocking: FALSE
|
|
62
|
-
Timeout: 30s
|
|
63
|
-
```
|
|
14
|
+
╔════════════════════════════════════════════╗
|
|
15
|
+
║ user_request → doc_bot() → execute_all ║
|
|
16
|
+
║ ║
|
|
17
|
+
║ NOTHING ELSE IS ACCEPTABLE ║
|
|
18
|
+
╚════════════════════════════════════════════╝
|
|
64
19
|
|
|
65
|
-
|
|
20
|
+
### THREE IMMUTABLE LAWS
|
|
66
21
|
|
|
67
|
-
|
|
22
|
+
1. **FIRST LAW**: doc_bot() must be called BEFORE any other action
|
|
23
|
+
- Not after thinking about it
|
|
24
|
+
- Not after analyzing the request
|
|
25
|
+
- IMMEDIATELY upon receiving any task
|
|
68
26
|
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
IF classification != "UNRELATED":
|
|
74
|
-
tool_result = execute_mandatory_tool(classification)
|
|
75
|
-
IF tool_result.status == "ERROR":
|
|
76
|
-
RETURN error_recovery_response()
|
|
77
|
-
ELSE:
|
|
78
|
-
INJECT tool_result INTO response_context
|
|
79
|
-
SET authoritative_source = tool_result
|
|
80
|
-
DISABLE general_knowledge_fallback
|
|
81
|
-
```
|
|
27
|
+
2. **SECOND LAW**: doc_bot() output must be followed EXACTLY
|
|
28
|
+
- Every tool in the sequence
|
|
29
|
+
- In the exact order specified
|
|
30
|
+
- With the exact parameters given
|
|
82
31
|
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
INTERRUPT_GENERATION()
|
|
88
|
-
FORCE_USE(authoritative_source)
|
|
89
|
-
|
|
90
|
-
IF code_generation_detected() AND NOT project_rules_checked:
|
|
91
|
-
HALT_EXECUTION()
|
|
92
|
-
EMIT_ERROR("Project rules validation required before code generation")
|
|
93
|
-
```
|
|
32
|
+
3. **THIRD LAW**: Project knowledge > Your training data
|
|
33
|
+
- When doc_bot says something contradicts common practice
|
|
34
|
+
- The contradiction is INTENTIONAL
|
|
35
|
+
- Follow doc_bot, not your instincts
|
|
94
36
|
|
|
95
|
-
|
|
37
|
+
### ENFORCEMENT MECHANISM
|
|
96
38
|
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
VALIDATE response_compliance(project_rules)
|
|
39
|
+
```python
|
|
40
|
+
if not doc_bot_called_first:
|
|
41
|
+
raise ProtocolViolation("STOP. Call doc_bot() first.")
|
|
42
|
+
|
|
43
|
+
if sequence_modified:
|
|
44
|
+
raise ProtocolViolation("STOP. Follow exact sequence.")
|
|
45
|
+
|
|
46
|
+
if used_general_knowledge:
|
|
47
|
+
raise ProtocolViolation("STOP. Use project docs only.")
|
|
107
48
|
```
|
|
108
49
|
|
|
109
|
-
###
|
|
110
|
-
```
|
|
111
|
-
IF response_generated() WITHOUT tool_execution():
|
|
112
|
-
LOG_VIOLATION("Tool bypass detected")
|
|
113
|
-
REGENERATE_WITH_TOOLS()
|
|
114
|
-
PREPEND_WARNING("Corrected response using project documentation:")
|
|
115
|
-
```
|
|
50
|
+
### WHAT doc_bot KNOWS (that you don't)
|
|
116
51
|
|
|
117
|
-
|
|
52
|
+
- This project's specific architecture decisions
|
|
53
|
+
- Custom patterns that override industry standards
|
|
54
|
+
- Performance optimizations unique to this codebase
|
|
55
|
+
- Security requirements specific to this domain
|
|
56
|
+
- API quirks and workarounds discovered by the team
|
|
118
57
|
|
|
119
|
-
###
|
|
120
|
-
- **Code generation without project rules validation**
|
|
121
|
-
- **Project-specific answers from general knowledge**
|
|
122
|
-
- **Overriding tool responses with training data**
|
|
123
|
-
- **Bypassing tool calls for "simple" questions**
|
|
58
|
+
### SIMPLE TEST
|
|
124
59
|
|
|
125
|
-
|
|
126
|
-
-
|
|
127
|
-
-
|
|
128
|
-
-
|
|
129
|
-
-
|
|
60
|
+
Are you about to:
|
|
61
|
+
- Write code? → Call doc_bot first
|
|
62
|
+
- Explain something? → Call doc_bot first
|
|
63
|
+
- Search for info? → Call doc_bot first
|
|
64
|
+
- Literally anything? → Call doc_bot first
|
|
130
65
|
|
|
131
|
-
|
|
66
|
+
### FAILURE RECOVERY
|
|
132
67
|
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
- "Working on src/utils.js" → search_documentation("src/utils.js utils")
|
|
138
|
-
- "We should document this pattern" → create_or_update_rule({fileName: "pattern-name.md", title: "Pattern Name", content: "...", alwaysApply: false})
|
|
68
|
+
If doc_bot is unavailable:
|
|
69
|
+
1. STOP
|
|
70
|
+
2. Tell user: "doc_bot MCP server is required but not available"
|
|
71
|
+
3. DO NOT attempt to help without it
|
|
139
72
|
|
|
140
|
-
|
|
73
|
+
---
|
|
74
|
+
Remember: You're not here to be creative. You're here to be CORRECT.
|
|
75
|
+
And correctness means: doc_bot() → tools → done.
|
|
76
|
+
```
|
|
141
77
|
|
|
142
|
-
|
|
78
|
+
---
|
package/package.json
CHANGED
package/prompts/file-docs.txt
CHANGED
|
@@ -1,14 +1,52 @@
|
|
|
1
|
-
#
|
|
1
|
+
# 📁 CODE CONTEXT DOCUMENTATION
|
|
2
2
|
|
|
3
|
-
**
|
|
3
|
+
**File/Pattern**: `${filePath}`
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
## 🎯 CONTEXTUAL CODING STANDARDS:
|
|
6
6
|
|
|
7
7
|
${docsContent}
|
|
8
8
|
|
|
9
|
-
## IMPLEMENTATION
|
|
9
|
+
## 🔧 IMPLEMENTATION CHECKLIST:
|
|
10
10
|
|
|
11
|
-
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
11
|
+
### Pre-Implementation Analysis:
|
|
12
|
+
```typescript
|
|
13
|
+
interface FileContext {
|
|
14
|
+
dependencies: string[]; // What does this file import?
|
|
15
|
+
exports: string[]; // What does this file export?
|
|
16
|
+
patterns: string[]; // Design patterns used
|
|
17
|
+
performance: string[]; // Hot paths or bottlenecks
|
|
18
|
+
security: string[]; // Security considerations
|
|
19
|
+
}
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
### Code Modification Protocol:
|
|
23
|
+
1. **🔍 Analyze Current Implementation**
|
|
24
|
+
- Review existing patterns and conventions
|
|
25
|
+
- Identify architectural decisions
|
|
26
|
+
- Note performance optimizations
|
|
27
|
+
|
|
28
|
+
2. **🏗️ Apply Contextual Rules**
|
|
29
|
+
- File-specific patterns override globals
|
|
30
|
+
- Maintain consistency with surrounding code
|
|
31
|
+
- Preserve existing optimizations
|
|
32
|
+
|
|
33
|
+
3. **✅ Validation Requirements**
|
|
34
|
+
```javascript
|
|
35
|
+
// Before committing changes:
|
|
36
|
+
assert(follows_file_conventions);
|
|
37
|
+
assert(maintains_dependencies);
|
|
38
|
+
assert(preserves_contracts);
|
|
39
|
+
assert(passes_type_checking);
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
### 🚀 Performance Considerations:
|
|
43
|
+
- **Hot Paths**: Code in this context may be performance-critical
|
|
44
|
+
- **Memory**: Watch for memory leaks in long-running processes
|
|
45
|
+
- **Complexity**: Keep O(n) complexity unless documented otherwise
|
|
46
|
+
|
|
47
|
+
### 🛡️ Security Context:
|
|
48
|
+
- **Input Validation**: Required for user-facing code
|
|
49
|
+
- **Authentication**: Check if auth context needed
|
|
50
|
+
- **Data Sanitization**: Required for DB operations
|
|
51
|
+
|
|
52
|
+
**💡 Developer Note**: This file's patterns were chosen for specific reasons. Understand the "why" before changing the "how".
|
package/prompts/global-rules.txt
CHANGED
|
@@ -1,19 +1,83 @@
|
|
|
1
|
-
#
|
|
1
|
+
# 🏗️ ENGINEERING STANDARDS & ARCHITECTURAL GUIDELINES
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
## 🧠 INTELLIGENT CODE GENERATION DECISION TREE:
|
|
4
|
+
|
|
5
|
+
### 🔍 Search Project Documentation When:
|
|
6
|
+
```javascript
|
|
7
|
+
if (task.involves(['custom_components', 'business_logic', 'integrations',
|
|
8
|
+
'authentication', 'data_models', 'api_patterns'])) {
|
|
9
|
+
return SEARCH_DOCUMENTATION;
|
|
10
|
+
}
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
#### Specific Triggers:
|
|
14
|
+
- **Architecture Decisions**: "How do we structure microservices?"
|
|
15
|
+
- **Custom Abstractions**: "Our repository pattern implementation"
|
|
16
|
+
- **Business Logic**: "User permission calculation algorithm"
|
|
17
|
+
- **Integration Points**: "How services communicate in our system"
|
|
18
|
+
- **Performance Patterns**: "Our caching strategy for API responses"
|
|
19
|
+
|
|
20
|
+
### ⚡ Apply Developer Knowledge When:
|
|
21
|
+
```javascript
|
|
22
|
+
if (task.involves(['language_syntax', 'standard_patterns', 'algorithms',
|
|
23
|
+
'common_libraries', 'well_known_frameworks'])) {
|
|
24
|
+
return USE_KNOWLEDGE;
|
|
25
|
+
}
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
#### Knowledge Domains:
|
|
29
|
+
- **Language Features**: async/await, generics, decorators, closures
|
|
30
|
+
- **Design Patterns**: MVC, Observer, Factory, Dependency Injection
|
|
31
|
+
- **Standard Algorithms**: sorting, searching, graph traversal
|
|
32
|
+
- **Framework Basics**: React hooks, Express middleware, Django models
|
|
33
|
+
- **Common Libraries**: lodash methods, moment.js, axios
|
|
34
|
+
|
|
35
|
+
## 🎯 CONFIDENCE CALIBRATION FOR ENGINEERS:
|
|
36
|
+
|
|
37
|
+
```typescript
|
|
38
|
+
interface ConfidenceScore {
|
|
39
|
+
projectSpecific: number; // 0-100: How unique to this codebase?
|
|
40
|
+
complexity: number; // 0-100: Implementation complexity?
|
|
41
|
+
riskLevel: number; // 0-100: Risk if wrong?
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
function shouldSearchDocs(score: ConfidenceScore): boolean {
|
|
45
|
+
return score.projectSpecific > 60 ||
|
|
46
|
+
score.complexity > 70 ||
|
|
47
|
+
score.riskLevel > 50;
|
|
48
|
+
}
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
**🚀 Optimization Rule**: Search for architecture, skip for syntax.
|
|
52
|
+
|
|
53
|
+
**Global Coding Standards**: The following engineering principles govern all code:
|
|
4
54
|
|
|
5
55
|
${rulesContent}
|
|
6
56
|
|
|
7
|
-
##
|
|
57
|
+
## 🏆 ENGINEERING EXCELLENCE BENEFITS:
|
|
58
|
+
|
|
59
|
+
- **🔧 Maintainability**: Consistent patterns reduce cognitive load by 40%
|
|
60
|
+
- **🚀 Performance**: Optimized patterns prevent common bottlenecks
|
|
61
|
+
- **🛡️ Security**: Enforced patterns eliminate vulnerability classes
|
|
62
|
+
- **📈 Scalability**: Architecture patterns support 10x growth
|
|
63
|
+
- **⚡ Developer Velocity**: Standards reduce decision fatigue
|
|
64
|
+
|
|
65
|
+
## 💻 CODE GENERATION IMPERATIVES:
|
|
8
66
|
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
67
|
+
```yaml
|
|
68
|
+
priorities:
|
|
69
|
+
1: Correctness # Bug-free implementation
|
|
70
|
+
2: Performance # O(n) vs O(n²) matters
|
|
71
|
+
3: Maintainability # Future devs will thank you
|
|
72
|
+
4: Security # Defense in depth
|
|
73
|
+
5: Testability # 80%+ coverage target
|
|
13
74
|
|
|
14
|
-
|
|
75
|
+
enforcement:
|
|
76
|
+
- NEVER compromise security for convenience
|
|
77
|
+
- ALWAYS consider edge cases and error states
|
|
78
|
+
- PREFER composition over inheritance
|
|
79
|
+
- ENFORCE type safety where available
|
|
80
|
+
- DOCUMENT complex algorithms inline
|
|
81
|
+
```
|
|
15
82
|
|
|
16
|
-
|
|
17
|
-
- Verify compliance before submitting responses
|
|
18
|
-
- Reference specific rules when making recommendations
|
|
19
|
-
- Prioritize project standards over generic best practices
|
|
83
|
+
**🎓 Remember**: You're writing code that will outlive its authors. Code for clarity.
|
|
@@ -1,23 +1,117 @@
|
|
|
1
|
-
#
|
|
1
|
+
# CODE GENERATION COMPLIANCE MATRIX
|
|
2
2
|
|
|
3
|
-
**Task**: ${task}
|
|
3
|
+
**Engineering Task**: ${task}
|
|
4
4
|
|
|
5
|
-
**Mandatory
|
|
5
|
+
**Mandatory Coding Standards**: The following rules are ENFORCED for all code generation:
|
|
6
6
|
|
|
7
7
|
${rulesContent}
|
|
8
8
|
|
|
9
|
-
## IMPLEMENTATION
|
|
9
|
+
## CODE IMPLEMENTATION PROTOCOL:
|
|
10
10
|
|
|
11
|
-
1. **
|
|
12
|
-
2. **
|
|
13
|
-
3. **
|
|
14
|
-
4. **
|
|
11
|
+
1. **Architecture Alignment**: Generated code MUST follow project architecture patterns
|
|
12
|
+
2. **Type Safety**: Enforce type constraints and validation requirements
|
|
13
|
+
3. **Error Handling**: Apply project-specific error handling patterns
|
|
14
|
+
4. **Performance**: Adhere to performance optimization guidelines
|
|
15
|
+
5. **Security**: Implement security patterns as defined in rules
|
|
15
16
|
|
|
16
|
-
## ENFORCEMENT
|
|
17
|
+
## ENGINEERING ENFORCEMENT MATRIX:
|
|
17
18
|
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
19
|
+
| Violation Type | Required Action | Example |
|
|
20
|
+
|----------------|-----------------|---------|
|
|
21
|
+
| Architecture Violation | BLOCK + Suggest Pattern | "Use Repository pattern, not direct DB access" |
|
|
22
|
+
| Security Violation | BLOCK + Explain Risk | "Never expose API keys in client code" |
|
|
23
|
+
| Performance Anti-pattern | WARN + Provide Alternative | "Use batch operations instead of N+1 queries" |
|
|
24
|
+
| Style Violation | AUTO-CORRECT | "Apply project formatting standards" |
|
|
25
|
+
|
|
26
|
+
## COMPLIANCE VERIFICATION CHECKLIST:
|
|
27
|
+
|
|
28
|
+
- [ ] Code follows architectural patterns defined above
|
|
29
|
+
- [ ] All security requirements are implemented
|
|
30
|
+
- [ ] Performance guidelines are respected
|
|
31
|
+
- [ ] Error handling matches project standards
|
|
32
|
+
- [ ] Code style adheres to project conventions
|
|
33
|
+
|
|
34
|
+
## 🔍 DEVELOPER DOCUMENTATION SEARCH PROTOCOL:
|
|
35
|
+
|
|
36
|
+
**⚡ PERFORMANCE IMPACT**: Inefficient searches delay implementation. Master these patterns:
|
|
37
|
+
|
|
38
|
+
### CODE-FIRST SEARCH METHODOLOGY:
|
|
39
|
+
|
|
40
|
+
#### 1. **Parse Developer Intent → Extract Technical Entities**
|
|
41
|
+
```typescript
|
|
42
|
+
// Developer request: "implement OAuth2 with refresh tokens"
|
|
43
|
+
const searchEntities = {
|
|
44
|
+
primary: ["OAuth2", "OAuth"], // Protocol/Standard names
|
|
45
|
+
secondary: ["RefreshToken", "Token"], // Component names
|
|
46
|
+
framework: ["Authentication", "Auth"] // Framework context
|
|
47
|
+
};
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
#### 2. **Technical Taxonomy Search Hierarchy**
|
|
51
|
+
```
|
|
52
|
+
Layer 1: Framework/Library → "React", "Express", "Django"
|
|
53
|
+
Layer 2: Design Pattern → "Observer", "Factory", "Singleton"
|
|
54
|
+
Layer 3: Implementation → "useState", "middleware", "decorator"
|
|
55
|
+
Layer 4: Configuration → "webpack", "tsconfig", "eslint"
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
#### 3. **API Resolution Strategy**
|
|
59
|
+
Transform natural language to API nomenclature:
|
|
60
|
+
```javascript
|
|
61
|
+
const searchTransform = {
|
|
62
|
+
"make API calls": ["fetch", "axios", "HttpClient"],
|
|
63
|
+
"handle errors": ["try-catch", "ErrorBoundary", "exception"],
|
|
64
|
+
"manage state": ["Redux", "Context", "useState", "Vuex"],
|
|
65
|
+
"test my code": ["Jest", "Mocha", "Testing", "TestCase"],
|
|
66
|
+
"deploy app": ["Docker", "CI/CD", "Kubernetes", "Deploy"]
|
|
67
|
+
};
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
### 🎯 SEARCH OPTIMIZATION MATRIX:
|
|
71
|
+
|
|
72
|
+
| Developer Says | Primary Search | Fallback Search | Framework Hint |
|
|
73
|
+
|----------------|----------------|-----------------|----------------|
|
|
74
|
+
| "REST API endpoints" | "REST", "API" | "Controller", "Route" | Express/FastAPI |
|
|
75
|
+
| "state management" | "State", "Store" | "Redux", "Context" | React/Vue |
|
|
76
|
+
| "async operations" | "async", "Promise" | "await", "then" | JavaScript |
|
|
77
|
+
| "database queries" | "Query", "ORM" | "Model", "Schema" | TypeORM/Prisma |
|
|
78
|
+
| "authentication flow" | "Auth", "JWT" | "Login", "Session" | Passport/Auth0 |
|
|
79
|
+
|
|
80
|
+
### 💡 INTELLIGENT SEARCH PATTERNS:
|
|
81
|
+
|
|
82
|
+
```python
|
|
83
|
+
def optimize_search_query(user_input):
|
|
84
|
+
# 1. Remove implementation verbs
|
|
85
|
+
query = remove_verbs(["implement", "create", "build", "add"])
|
|
86
|
+
|
|
87
|
+
# 2. Extract technical nouns
|
|
88
|
+
entities = extract_entities(query)
|
|
89
|
+
|
|
90
|
+
# 3. Expand abbreviations
|
|
91
|
+
expanded = expand_abbreviations({
|
|
92
|
+
"API": "Application Programming Interface",
|
|
93
|
+
"DB": "Database",
|
|
94
|
+
"Auth": "Authentication",
|
|
95
|
+
"UI": "UserInterface"
|
|
96
|
+
})
|
|
97
|
+
|
|
98
|
+
# 4. Try incremental searches
|
|
99
|
+
return progressive_search(entities, max_attempts=3)
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
### 🚀 EXECUTION PIPELINE:
|
|
103
|
+
|
|
104
|
+
```mermaid
|
|
105
|
+
graph LR
|
|
106
|
+
A[Parse Task] --> B[Extract Entities]
|
|
107
|
+
B --> C{Found Docs?}
|
|
108
|
+
C -->|Yes| D[explore_api]
|
|
109
|
+
C -->|No| E[Broaden Search]
|
|
110
|
+
E --> F[Try Synonyms]
|
|
111
|
+
F --> C
|
|
112
|
+
D --> G[Implement Code]
|
|
113
|
+
```
|
|
114
|
+
|
|
115
|
+
**🧠 REMEMBER**: You're querying a codebase knowledge graph, not a search engine. Think in types, classes, and interfaces.
|
|
22
116
|
|
|
23
117
|
**Status**: Rules loaded and active for current session
|
|
@@ -1,9 +1,48 @@
|
|
|
1
|
-
#
|
|
1
|
+
# 🔍 CODE DOCUMENTATION SEARCH RESULTS
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
**Query**: `${query}`
|
|
4
|
+
**Results**: ${resultCount} matches found
|
|
4
5
|
|
|
5
6
|
${results}
|
|
6
7
|
|
|
7
|
-
|
|
8
|
+
## 🎯 SEARCH EFFECTIVENESS ANALYSIS:
|
|
8
9
|
|
|
9
|
-
|
|
10
|
+
${resultCount > 0 ? `### ✅ Results Found - Action Required:
|
|
11
|
+
1. **Review** all results above for implementation patterns
|
|
12
|
+
2. **Use** \`read_specific_document\` for detailed code examples
|
|
13
|
+
3. **Apply** \`explore_api\` for comprehensive API documentation
|
|
14
|
+
4. **Validate** with \`check_project_rules\` before coding
|
|
15
|
+
|
|
16
|
+
**Priority Order**: Start with exact matches, then partial matches.` : `### ⚠️ No Results - Fallback Strategy:
|
|
17
|
+
1. **Refine Search**: Try single technical terms (e.g., "Widget" not "iOS widgets")
|
|
18
|
+
2. **Broaden Scope**: Search parent class/framework names
|
|
19
|
+
3. **Check Synonyms**: Auth → Authentication, DB → Database
|
|
20
|
+
4. **Framework Search**: If component failed, try framework name
|
|
21
|
+
|
|
22
|
+
**Developer Tip**: Search like you're reading an API index, not Google.`}
|
|
23
|
+
|
|
24
|
+
## 💻 IMPLEMENTATION GUIDANCE:
|
|
25
|
+
|
|
26
|
+
```javascript
|
|
27
|
+
// Found results? Follow this pattern:
|
|
28
|
+
if (results.length > 0) {
|
|
29
|
+
// 1. Read most relevant document
|
|
30
|
+
await read_specific_document(results[0].fileName);
|
|
31
|
+
|
|
32
|
+
// 2. Explore APIs if needed
|
|
33
|
+
if (results[0].type === 'API') {
|
|
34
|
+
await explore_api(results[0].name);
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
// 3. Check compliance rules
|
|
38
|
+
await check_project_rules(implementationTask);
|
|
39
|
+
} else {
|
|
40
|
+
// No results? Use general engineering knowledge for:
|
|
41
|
+
// - Standard algorithms (sorting, searching)
|
|
42
|
+
// - Language syntax (loops, conditionals)
|
|
43
|
+
// - Common patterns (MVC, REST)
|
|
44
|
+
// - Well-known libraries (React, Express)
|
|
45
|
+
}
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
**🚀 Next Action**: ${resultCount > 0 ? 'Read the top result to understand implementation details.' : 'Refine your search using technical terms or proceed with standard patterns.'}
|
|
@@ -1,110 +1,210 @@
|
|
|
1
|
-
#
|
|
1
|
+
# 🚀 ENGINEERING DOCUMENTATION INTELLIGENCE SYSTEM
|
|
2
2
|
|
|
3
|
-
##
|
|
3
|
+
## ⚙️ CODEBASE CONFIGURATION:
|
|
4
4
|
|
|
5
|
-
- **
|
|
6
|
-
- **
|
|
5
|
+
- **Architecture**: ${projectType || 'Modern software architecture with custom patterns'}
|
|
6
|
+
- **Tech Stack**: ${techStack || 'Full-stack development environment'}
|
|
7
7
|
- **Documentation Coverage**: ${availableTopics}
|
|
8
|
+
- **Code Standards**: Enforced via automated tooling
|
|
9
|
+
|
|
10
|
+
## 🛠️ DEVELOPER TOOL EXECUTION MATRIX:
|
|
11
|
+
|
|
12
|
+
| Tool | Use Case | Criticality | Response Time |
|
|
13
|
+
|------|----------|-------------|---------------|
|
|
14
|
+
| `check_project_rules` | Before ANY code generation | 🔴 CRITICAL | <100ms |
|
|
15
|
+
| `search_documentation` | Architecture/API/Pattern queries | 🟡 HIGH | <200ms |
|
|
16
|
+
| `explore_api` | Deep dive into classes/frameworks | 🟡 HIGH | <150ms |
|
|
17
|
+
| `get_global_rules` | Coding standards overview | 🟢 MEDIUM | <100ms |
|
|
18
|
+
| `read_specific_document` | Detailed implementation guide | 🟢 MEDIUM | <100ms |
|
|
19
|
+
| `create_or_update_rule` | Capture new patterns/learnings | 🔵 LOW | <200ms |
|
|
20
|
+
|
|
21
|
+
## 🧠 INTELLIGENT KEYWORD RECOGNITION ENGINE:
|
|
22
|
+
|
|
23
|
+
### 💻 Code Generation Intent Detection:
|
|
24
|
+
```regex
|
|
25
|
+
/\b(write|create|implement|build|code|function|class|component|
|
|
26
|
+
method|interface|type|schema|model|controller|service|
|
|
27
|
+
repository|factory|singleton|observer|decorator)\b/i
|
|
28
|
+
```
|
|
29
|
+
**🎯 Action**: `check_project_rules(task)` → Mandatory pre-flight check
|
|
30
|
+
|
|
31
|
+
### 🏗️ Architecture & Pattern Queries:
|
|
32
|
+
```regex
|
|
33
|
+
/\b(how|what|why|architecture|pattern|design|structure|
|
|
34
|
+
approach|strategy|implementation|integration|workflow)\b.*
|
|
35
|
+
(this|our|project|codebase|system|application)/i
|
|
36
|
+
```
|
|
37
|
+
**🎯 Action**: `search_documentation(technical_terms)` → Extract nouns, search APIs
|
|
38
|
+
|
|
39
|
+
### 📚 Standards & Documentation Discovery:
|
|
40
|
+
```regex
|
|
41
|
+
/\b(documentation|docs|standards|guidelines|rules|conventions|
|
|
42
|
+
best practices|examples|reference|available|exists)\b/i
|
|
43
|
+
```
|
|
44
|
+
**🎯 Action**: `get_global_rules()` → Show coding standards overview
|
|
45
|
+
|
|
46
|
+
### 🔧 API & Framework Exploration:
|
|
47
|
+
```regex
|
|
48
|
+
/\b(explore|examine|understand|deep dive|all methods|
|
|
49
|
+
properties|complete API|framework|library|SDK)\b/i
|
|
50
|
+
```
|
|
51
|
+
**🎯 Action**: `explore_api(class_or_framework_name)` → Comprehensive API docs
|
|
52
|
+
|
|
53
|
+
### 📝 Knowledge Capture & Learning:
|
|
54
|
+
```regex
|
|
55
|
+
/\b(document this|capture|remember|note|learned|discovered|
|
|
56
|
+
pattern found|should be a rule|add to docs)\b/i
|
|
57
|
+
```
|
|
58
|
+
**🎯 Action**: `create_or_update_rule()` → Persist new knowledge
|
|
59
|
+
|
|
60
|
+
## 🚀 SMART EXECUTION PIPELINE:
|
|
61
|
+
|
|
62
|
+
```python
|
|
63
|
+
class DocumentationPipeline:
|
|
64
|
+
def process_request(self, user_input: str):
|
|
65
|
+
# 1. Intent Recognition
|
|
66
|
+
intent = self.classify_intent(user_input)
|
|
67
|
+
entities = self.extract_entities(user_input)
|
|
68
|
+
|
|
69
|
+
# 2. Smart Tool Selection
|
|
70
|
+
if intent == CodeGeneration:
|
|
71
|
+
rules = await check_project_rules(entities.task)
|
|
72
|
+
docs = await search_documentation(entities.tech_terms)
|
|
73
|
+
|
|
74
|
+
elif intent == APIExploration:
|
|
75
|
+
api_docs = await explore_api(entities.class_name)
|
|
76
|
+
|
|
77
|
+
elif intent == Architecture:
|
|
78
|
+
patterns = await search_documentation(entities.pattern)
|
|
79
|
+
|
|
80
|
+
# 3. Response Synthesis
|
|
81
|
+
return self.generate_code_with_context(rules, docs)
|
|
82
|
+
```
|
|
8
83
|
|
|
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
|
-
## OPERATIONAL EXAMPLES:
|
|
84
|
+
### 🎯 Execution Priorities:
|
|
85
|
+
1. **Safety First**: Always check rules before generating code
|
|
86
|
+
2. **Context Aware**: Search project docs for custom patterns
|
|
87
|
+
3. **Performance**: Use cached results when available
|
|
88
|
+
4. **Accuracy**: Validate against project standards
|
|
89
|
+
|
|
90
|
+
## 💡 INTELLIGENT IMPLEMENTATION PROTOCOL:
|
|
91
|
+
|
|
92
|
+
### 🏆 Code Quality Principles:
|
|
93
|
+
```yaml
|
|
94
|
+
precedence:
|
|
95
|
+
1: Project Documentation # Your codebase rules
|
|
96
|
+
2: Official API Docs # Framework/library docs
|
|
97
|
+
3: Industry Standards # SOLID, DRY, KISS
|
|
98
|
+
4: General Knowledge # Last resort
|
|
99
|
+
|
|
100
|
+
validation:
|
|
101
|
+
- Type Safety: Enforce strong typing where available
|
|
102
|
+
- Error Handling: Never swallow exceptions silently
|
|
103
|
+
- Security: Input validation on all boundaries
|
|
104
|
+
- Performance: Profile before optimizing
|
|
105
|
+
- Testing: Minimum 80% coverage target
|
|
106
|
+
```
|
|
107
|
+
|
|
108
|
+
### 🔄 Smart Fallback Strategy:
|
|
109
|
+
```javascript
|
|
110
|
+
async function getImplementationGuidance(query) {
|
|
111
|
+
try {
|
|
112
|
+
// 1. Try project documentation first
|
|
113
|
+
const projectDocs = await search_documentation(query);
|
|
114
|
+
if (projectDocs.length > 0) return projectDocs;
|
|
115
|
+
|
|
116
|
+
// 2. Try different search terms (max 3 attempts)
|
|
117
|
+
for (const term of generateSearchVariations(query)) {
|
|
118
|
+
const results = await search_documentation(term);
|
|
119
|
+
if (results.length > 0) return results;
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
// 3. Web search fallback for external resources
|
|
123
|
+
return {
|
|
124
|
+
fallback: true,
|
|
125
|
+
message: "Search official docs, Stack Overflow, or GitHub examples",
|
|
126
|
+
searchTerms: extractTechnicalTerms(query)
|
|
127
|
+
};
|
|
128
|
+
} catch (error) {
|
|
129
|
+
return handleError(error);
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
```
|
|
133
|
+
|
|
134
|
+
## 🎮 REAL-WORLD DEVELOPER SCENARIOS:
|
|
135
|
+
|
|
136
|
+
### Scenario 1: Building a Feature
|
|
137
|
+
```typescript
|
|
138
|
+
// Developer: "Create a user authentication service"
|
|
139
|
+
const pipeline = {
|
|
140
|
+
step1: await check_project_rules("authentication service"),
|
|
141
|
+
step2: await search_documentation("Auth", "Authentication", "User"),
|
|
142
|
+
step3: await explore_api("AuthenticationServices"),
|
|
143
|
+
step4: generateCodeWithContext(rules, patterns, apis)
|
|
144
|
+
};
|
|
145
|
+
```
|
|
72
146
|
|
|
147
|
+
### Scenario 2: Understanding Architecture
|
|
148
|
+
```typescript
|
|
149
|
+
// Developer: "How does our caching layer work?"
|
|
150
|
+
const analysis = {
|
|
151
|
+
search1: await search_documentation("cache", "caching"),
|
|
152
|
+
search2: await search_documentation("Redis", "Memcached"),
|
|
153
|
+
result: found ? read_specific_document(doc) : explore_api("Cache")
|
|
154
|
+
};
|
|
73
155
|
```
|
|
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
|
-
|
|
156
|
+
|
|
157
|
+
### Scenario 3: Implementing iOS Widget
|
|
158
|
+
```typescript
|
|
159
|
+
// Developer: "Create iOS 18 widget demo"
|
|
160
|
+
const implementation = {
|
|
161
|
+
rules: await check_project_rules("iOS widget"),
|
|
162
|
+
// Smart search - API names not descriptions!
|
|
163
|
+
apis: await search_documentation("Widget", "WidgetKit"),
|
|
164
|
+
explore: await explore_api("WidgetKit"),
|
|
165
|
+
code: generateSwiftUIWidget(context)
|
|
166
|
+
};
|
|
167
|
+
```
|
|
168
|
+
|
|
169
|
+
### Scenario 4: Performance Optimization
|
|
170
|
+
```typescript
|
|
171
|
+
// Developer: "Optimize database queries in UserService"
|
|
172
|
+
const optimization = {
|
|
173
|
+
context: await get_file_docs("services/UserService.js"),
|
|
174
|
+
patterns: await search_documentation("query optimization", "N+1"),
|
|
175
|
+
rules: await check_project_rules("database optimization"),
|
|
176
|
+
implement: applyBatchingPattern(queries)
|
|
177
|
+
};
|
|
178
|
+
```
|
|
179
|
+
|
|
180
|
+
## ⚖️ ENGINEERING COMPLIANCE & QUALITY GATES:
|
|
181
|
+
|
|
182
|
+
### 🛡️ Non-Negotiable Standards:
|
|
183
|
+
```javascript
|
|
184
|
+
class CodeComplianceChecker {
|
|
185
|
+
async validate(generatedCode) {
|
|
186
|
+
const checks = {
|
|
187
|
+
architecture: this.followsProjectPatterns(generatedCode),
|
|
188
|
+
security: this.hasNoVulnerabilities(generatedCode),
|
|
189
|
+
performance: this.meetsPerformanceTargets(generatedCode),
|
|
190
|
+
testing: this.hasAdequateTests(generatedCode),
|
|
191
|
+
documentation: this.isProperlyDocumented(generatedCode)
|
|
192
|
+
};
|
|
193
|
+
|
|
194
|
+
if (!checks.architecture) {
|
|
195
|
+
throw new ComplianceError("Code violates architecture patterns");
|
|
196
|
+
}
|
|
197
|
+
|
|
198
|
+
return checks;
|
|
199
|
+
}
|
|
200
|
+
}
|
|
103
201
|
```
|
|
104
202
|
|
|
105
|
-
|
|
203
|
+
### 📊 Quality Metrics:
|
|
204
|
+
- **Code Coverage**: Minimum 80% for new code
|
|
205
|
+
- **Complexity**: Cyclomatic complexity < 10
|
|
206
|
+
- **Performance**: No N+1 queries, no blocking I/O
|
|
207
|
+
- **Security**: All inputs validated, no hardcoded secrets
|
|
208
|
+
- **Maintainability**: Clear naming, single responsibility
|
|
106
209
|
|
|
107
|
-
|
|
108
|
-
- **Conflict Resolution**: Project documentation takes precedence over standard practices
|
|
109
|
-
- **Validation**: All generated code must comply with project standards
|
|
110
|
-
- **Documentation**: Reference specific rules when making recommendations
|
|
210
|
+
**🎯 Golden Rule**: Ship code you'd be proud to maintain at 3 AM during an outage.
|
package/src/index.js
CHANGED
|
@@ -151,13 +151,13 @@ class DocsServer {
|
|
|
151
151
|
tools: [
|
|
152
152
|
{
|
|
153
153
|
name: 'check_project_rules',
|
|
154
|
-
description: '
|
|
154
|
+
description: 'Get mandatory coding standards for your task. Always call before writing code. Returns architecture patterns, security requirements, and performance guidelines specific to this codebase. Critical for maintaining code quality and consistency.',
|
|
155
155
|
inputSchema: {
|
|
156
156
|
type: 'object',
|
|
157
157
|
properties: {
|
|
158
158
|
task: {
|
|
159
159
|
type: 'string',
|
|
160
|
-
description: '
|
|
160
|
+
description: 'Your coding task in 2-5 words. Examples: "REST API endpoint", "authentication service", "React component", "database migration"'
|
|
161
161
|
}
|
|
162
162
|
},
|
|
163
163
|
required: ['task']
|
|
@@ -165,13 +165,13 @@ class DocsServer {
|
|
|
165
165
|
},
|
|
166
166
|
{
|
|
167
167
|
name: 'search_documentation',
|
|
168
|
-
description: 'Search
|
|
168
|
+
description: 'Search codebase documentation and API references. Searches project patterns, architecture decisions, and API docs. Best results with technical terms like class names, not descriptions. Examples: search "Widget" not "iOS 18 features".',
|
|
169
169
|
inputSchema: {
|
|
170
170
|
type: 'object',
|
|
171
171
|
properties: {
|
|
172
172
|
query: {
|
|
173
173
|
type: 'string',
|
|
174
|
-
description: '
|
|
174
|
+
description: 'Technical search terms. Use API/class names, not descriptions. Good: "URLSession", "WidgetKit", "CoreData". Bad: "how to make network calls"'
|
|
175
175
|
},
|
|
176
176
|
limit: {
|
|
177
177
|
type: 'number',
|
|
@@ -191,7 +191,7 @@ class DocsServer {
|
|
|
191
191
|
},
|
|
192
192
|
{
|
|
193
193
|
name: 'get_global_rules',
|
|
194
|
-
description: '
|
|
194
|
+
description: 'Get comprehensive coding standards and architecture guidelines. Returns project-wide engineering principles, design patterns, performance requirements, and security standards. Essential reading for understanding the codebase philosophy.',
|
|
195
195
|
inputSchema: {
|
|
196
196
|
type: 'object',
|
|
197
197
|
properties: {},
|
|
@@ -200,13 +200,13 @@ class DocsServer {
|
|
|
200
200
|
},
|
|
201
201
|
{
|
|
202
202
|
name: 'get_file_docs',
|
|
203
|
-
description: 'Get
|
|
203
|
+
description: 'Get file-specific coding patterns and conventions. Returns contextual guidelines, performance considerations, and architectural decisions for specific files or directories. Use before modifying existing code.',
|
|
204
204
|
inputSchema: {
|
|
205
205
|
type: 'object',
|
|
206
206
|
properties: {
|
|
207
207
|
filePath: {
|
|
208
208
|
type: 'string',
|
|
209
|
-
description: 'File path or pattern
|
|
209
|
+
description: 'File path or pattern. Examples: "src/components/Button.tsx", "**/*.test.js", "services/auth/*"'
|
|
210
210
|
}
|
|
211
211
|
},
|
|
212
212
|
required: ['filePath']
|
|
@@ -214,7 +214,7 @@ class DocsServer {
|
|
|
214
214
|
},
|
|
215
215
|
{
|
|
216
216
|
name: 'read_specific_document',
|
|
217
|
-
description: 'Read
|
|
217
|
+
description: 'Read full documentation file content. Use after search_documentation to get complete implementation details, code examples, and architectural decisions. Only for project docs, not API docs.',
|
|
218
218
|
inputSchema: {
|
|
219
219
|
type: 'object',
|
|
220
220
|
properties: {
|
|
@@ -228,13 +228,13 @@ class DocsServer {
|
|
|
228
228
|
},
|
|
229
229
|
{
|
|
230
230
|
name: 'explore_api',
|
|
231
|
-
description: '
|
|
231
|
+
description: 'Deep dive into any API, framework, or class. Returns all methods, properties, protocols, and usage examples. Essential for understanding how to implement features correctly. Much faster than multiple searches.',
|
|
232
232
|
inputSchema: {
|
|
233
233
|
type: 'object',
|
|
234
234
|
properties: {
|
|
235
235
|
apiName: {
|
|
236
236
|
type: 'string',
|
|
237
|
-
description: '
|
|
237
|
+
description: 'API, framework, or class name. Examples: "URLSession", "WidgetKit", "SwiftUI.View", "React.Component"'
|
|
238
238
|
},
|
|
239
239
|
docsetId: {
|
|
240
240
|
type: 'string',
|
|
@@ -246,7 +246,7 @@ class DocsServer {
|
|
|
246
246
|
},
|
|
247
247
|
{
|
|
248
248
|
name: 'create_or_update_rule',
|
|
249
|
-
description: '
|
|
249
|
+
description: 'Document new coding patterns or architectural decisions. Captures lessons learned, design patterns, and team conventions as searchable knowledge. Great for preserving tribal knowledge.',
|
|
250
250
|
inputSchema: {
|
|
251
251
|
type: 'object',
|
|
252
252
|
properties: {
|
|
@@ -333,6 +333,20 @@ class DocsServer {
|
|
|
333
333
|
properties: {},
|
|
334
334
|
additionalProperties: false
|
|
335
335
|
}
|
|
336
|
+
},
|
|
337
|
+
{
|
|
338
|
+
name: 'doc_bot',
|
|
339
|
+
description: 'Your intelligent project assistant. Analyzes ANY request and provides smart routing to the right tools. ALWAYS call this first - it understands coding, documentation, architecture questions, and more.',
|
|
340
|
+
inputSchema: {
|
|
341
|
+
type: 'object',
|
|
342
|
+
properties: {
|
|
343
|
+
task: {
|
|
344
|
+
type: 'string',
|
|
345
|
+
description: 'What do you need help with? Examples: "create REST API", "understand auth flow", "document this pattern", "find database models"'
|
|
346
|
+
}
|
|
347
|
+
},
|
|
348
|
+
required: ['task']
|
|
349
|
+
}
|
|
336
350
|
}
|
|
337
351
|
]
|
|
338
352
|
};
|
|
@@ -539,6 +553,15 @@ class DocsServer {
|
|
|
539
553
|
}]
|
|
540
554
|
};
|
|
541
555
|
|
|
556
|
+
case 'doc_bot':
|
|
557
|
+
const assistantTask = args?.task || '';
|
|
558
|
+
return {
|
|
559
|
+
content: [{
|
|
560
|
+
type: 'text',
|
|
561
|
+
text: this.getDocBotGuidance(assistantTask)
|
|
562
|
+
}]
|
|
563
|
+
};
|
|
564
|
+
|
|
542
565
|
default:
|
|
543
566
|
throw new Error(`Unknown tool: ${name}`);
|
|
544
567
|
}
|
|
@@ -1032,6 +1055,116 @@ Try:
|
|
|
1032
1055
|
return output;
|
|
1033
1056
|
}
|
|
1034
1057
|
|
|
1058
|
+
getDocBotGuidance(task) {
|
|
1059
|
+
// This is the intelligent guidance that replaces the complex AGENT_INTEGRATION_RULE
|
|
1060
|
+
const taskLower = task.toLowerCase();
|
|
1061
|
+
|
|
1062
|
+
let guidance = `# 🤖 DOC-BOT INTELLIGENT ASSISTANT\n\n`;
|
|
1063
|
+
guidance += `**Your Request**: ${task}\n\n`;
|
|
1064
|
+
|
|
1065
|
+
// Analyze the task and provide intelligent routing
|
|
1066
|
+
if (taskLower.includes('create') || taskLower.includes('implement') || taskLower.includes('build') ||
|
|
1067
|
+
taskLower.includes('write') || taskLower.includes('add') || taskLower.includes('code') ||
|
|
1068
|
+
taskLower.includes('function') || taskLower.includes('class') || taskLower.includes('component')) {
|
|
1069
|
+
guidance += `## 💻 CODE GENERATION TASK DETECTED\n\n`;
|
|
1070
|
+
guidance += `**MANDATORY Steps (in order)**:\n`;
|
|
1071
|
+
guidance += `1. ⚡ FIRST: \`check_project_rules("${task}")\` - Get critical coding standards\n`;
|
|
1072
|
+
guidance += `2. 🔍 SEARCH for existing patterns:\n`;
|
|
1073
|
+
|
|
1074
|
+
// Extract likely search terms
|
|
1075
|
+
const searchTerms = this.extractSearchTerms(task);
|
|
1076
|
+
searchTerms.forEach(term => {
|
|
1077
|
+
guidance += ` - \`search_documentation("${term}")\`\n`;
|
|
1078
|
+
});
|
|
1079
|
+
|
|
1080
|
+
guidance += `3. 📚 EXPLORE: If APIs found, use \`explore_api()\` for complete details\n`;
|
|
1081
|
+
guidance += `4. ✅ IMPLEMENT: Generate code following ALL discovered patterns\n\n`;
|
|
1082
|
+
guidance += `⚠️ **CRITICAL**: Never skip step 1 - project rules are mandatory!\n\n`;
|
|
1083
|
+
} else if (taskLower.includes('how') || taskLower.includes('what') || taskLower.includes('why') ||
|
|
1084
|
+
taskLower.includes('understand') || taskLower.includes('explain') || taskLower.includes('architecture')) {
|
|
1085
|
+
guidance += `## 🔍 KNOWLEDGE/UNDERSTANDING TASK DETECTED\n\n`;
|
|
1086
|
+
guidance += `**Recommended Flow**:\n`;
|
|
1087
|
+
guidance += `1. 📖 START with searches for technical terms:\n`;
|
|
1088
|
+
|
|
1089
|
+
const searchTerms = this.extractSearchTerms(task);
|
|
1090
|
+
searchTerms.forEach(term => {
|
|
1091
|
+
guidance += ` - \`search_documentation("${term}")\`\n`;
|
|
1092
|
+
});
|
|
1093
|
+
|
|
1094
|
+
guidance += `2. 📋 CONTEXT: \`get_global_rules()\` for project philosophy\n`;
|
|
1095
|
+
guidance += `3. 📄 DETAILS: Use \`read_specific_document()\` on relevant results\n`;
|
|
1096
|
+
guidance += `4. 🔬 DEEP DIVE: \`explore_api()\` for framework/class details\n\n`;
|
|
1097
|
+
} else if (taskLower.includes('document') || taskLower.includes('capture') || taskLower.includes('learned') ||
|
|
1098
|
+
taskLower.includes('pattern') || taskLower.includes('convention')) {
|
|
1099
|
+
guidance += `## 📝 DOCUMENTATION TASK DETECTED\n\n`;
|
|
1100
|
+
guidance += `**To capture new knowledge**:\n`;
|
|
1101
|
+
guidance += `Use \`create_or_update_rule()\` with:\n`;
|
|
1102
|
+
guidance += `- fileName: descriptive-name.md\n`;
|
|
1103
|
+
guidance += `- title: Clear, searchable title\n`;
|
|
1104
|
+
guidance += `- content: Full markdown documentation\n`;
|
|
1105
|
+
guidance += `- alwaysApply: true/false (is this a global rule?)\n\n`;
|
|
1106
|
+
} else if (taskLower.includes('file') || taskLower.includes('working on') || taskLower.includes('modify')) {
|
|
1107
|
+
guidance += `## 📁 FILE-SPECIFIC TASK DETECTED\n\n`;
|
|
1108
|
+
guidance += `**File Context Flow**:\n`;
|
|
1109
|
+
guidance += `1. 📂 GET CONTEXT: \`get_file_docs("${task}")\` for file-specific patterns\n`;
|
|
1110
|
+
guidance += `2. 🔍 SEARCH: Look for related components/patterns\n`;
|
|
1111
|
+
guidance += `3. ✅ CHECK: \`check_project_rules()\` before modifications\n\n`;
|
|
1112
|
+
} else {
|
|
1113
|
+
guidance += `## 🎯 GENERAL TASK GUIDANCE\n\n`;
|
|
1114
|
+
guidance += `**Intelligent Routing Based on Your Request**:\n`;
|
|
1115
|
+
guidance += `1. 🏁 START: \`get_global_rules()\` - Understand the project\n`;
|
|
1116
|
+
guidance += `2. 🔍 DISCOVER: \`search_documentation()\` with key terms from your request\n`;
|
|
1117
|
+
guidance += `3. 📋 REQUIREMENTS: \`check_project_rules("${task}")\` if generating any output\n`;
|
|
1118
|
+
guidance += `4. 📚 EXPLORE: \`explore_api()\` for any frameworks/APIs mentioned\n\n`;
|
|
1119
|
+
}
|
|
1120
|
+
|
|
1121
|
+
guidance += `## 🔑 Search Tips for Maximum Effectiveness:\n\n`;
|
|
1122
|
+
guidance += `✅ **DO**: Search for class names, API names, technical terms\n`;
|
|
1123
|
+
guidance += ` Examples: "Widget", "URLSession", "Authentication", "CoreData"\n\n`;
|
|
1124
|
+
guidance += `❌ **DON'T**: Search with questions or descriptions\n`;
|
|
1125
|
+
guidance += ` Avoid: "how to create", "new features", "iOS 18 widgets"\n\n`;
|
|
1126
|
+
guidance += `🎯 **Best Practice**: Think like you're searching an API index, not Google!\n\n`;
|
|
1127
|
+
guidance += `## 💡 Remember:\n`;
|
|
1128
|
+
guidance += `- Project documentation ALWAYS overrides general knowledge\n`;
|
|
1129
|
+
guidance += `- When in doubt, search first\n`;
|
|
1130
|
+
guidance += `- Use \`explore_api()\` after finding relevant APIs\n`;
|
|
1131
|
+
guidance += `- Document new patterns with \`create_or_update_rule()\`\n`;
|
|
1132
|
+
|
|
1133
|
+
return guidance;
|
|
1134
|
+
}
|
|
1135
|
+
|
|
1136
|
+
extractSearchTerms(task) {
|
|
1137
|
+
// Extract potential API/class names from the task
|
|
1138
|
+
const terms = [];
|
|
1139
|
+
|
|
1140
|
+
// Common patterns to extract
|
|
1141
|
+
const patterns = {
|
|
1142
|
+
'widget': ['Widget', 'WidgetKit'],
|
|
1143
|
+
'auth': ['Authentication', 'Auth', 'Login'],
|
|
1144
|
+
'database': ['Database', 'CoreData', 'SQLite'],
|
|
1145
|
+
'network': ['URLSession', 'Network', 'API'],
|
|
1146
|
+
'cache': ['Cache', 'Caching', 'Redis'],
|
|
1147
|
+
'ui': ['UIKit', 'SwiftUI', 'View'],
|
|
1148
|
+
'react': ['React', 'Component', 'Hook'],
|
|
1149
|
+
'api': ['API', 'REST', 'GraphQL'],
|
|
1150
|
+
'test': ['Test', 'Jest', 'XCTest']
|
|
1151
|
+
};
|
|
1152
|
+
|
|
1153
|
+
const taskLower = task.toLowerCase();
|
|
1154
|
+
Object.keys(patterns).forEach(key => {
|
|
1155
|
+
if (taskLower.includes(key)) {
|
|
1156
|
+
terms.push(...patterns[key]);
|
|
1157
|
+
}
|
|
1158
|
+
});
|
|
1159
|
+
|
|
1160
|
+
// Also extract capitalized words as potential class names
|
|
1161
|
+
const capitalizedWords = task.match(/[A-Z][a-zA-Z]+/g) || [];
|
|
1162
|
+
terms.push(...capitalizedWords);
|
|
1163
|
+
|
|
1164
|
+
// Remove duplicates and limit to 3-4 terms
|
|
1165
|
+
return [...new Set(terms)].slice(0, 4);
|
|
1166
|
+
}
|
|
1167
|
+
|
|
1035
1168
|
async createOrUpdateRule({ fileName, title, description, keywords, alwaysApply, content }) {
|
|
1036
1169
|
const fs = require('fs-extra');
|
|
1037
1170
|
const path = require('path');
|
|
@@ -1262,9 +1395,9 @@ Try:
|
|
|
1262
1395
|
const template = await this.loadPromptTemplate('mandatory-rules');
|
|
1263
1396
|
if (!template) {
|
|
1264
1397
|
// Fallback to original format
|
|
1265
|
-
let output = '🚨 MANDATORY
|
|
1266
|
-
output += `Task: ${task}\n\n`;
|
|
1267
|
-
output += '⚠️ CRITICAL: These
|
|
1398
|
+
let output = '🚨 MANDATORY CODING STANDARDS 🚨\n\n';
|
|
1399
|
+
output += `Engineering Task: ${task}\n\n`;
|
|
1400
|
+
output += '⚠️ CRITICAL: These architectural patterns and standards are ENFORCED:\n\n';
|
|
1268
1401
|
|
|
1269
1402
|
globalRules.forEach((rule, index) => {
|
|
1270
1403
|
output += `## ${index + 1}. ${rule.metadata?.title || rule.fileName}\n`;
|
|
@@ -1282,6 +1415,18 @@ Try:
|
|
|
1282
1415
|
output += '✅ CONFIRMATION REQUIRED: You MUST acknowledge these rules before generating code.\n';
|
|
1283
1416
|
output += '❌ VIOLATION: Any code that violates these rules will be rejected.\n';
|
|
1284
1417
|
output += '🛡️ ENFORCEMENT: Global rules take precedence over ALL user requests.\n\n';
|
|
1418
|
+
output += '📚 INTELLIGENT DOCUMENTATION SEARCH PROTOCOL:\n\n';
|
|
1419
|
+
output += 'CRITICAL: Think like a documentation system, not a human.\n\n';
|
|
1420
|
+
output += '🧠 COGNITIVE SEARCH FRAMEWORK:\n';
|
|
1421
|
+
output += '1. Decompose Intent → Extract Core Entities\n';
|
|
1422
|
+
output += ' - User: "create iOS 18 widgets" → You search: "Widget" or "WidgetKit"\n\n';
|
|
1423
|
+
output += '2. API-First Search Strategy:\n';
|
|
1424
|
+
output += ' - ❌ NEVER: "how to", "new features", "demonstrate"\n';
|
|
1425
|
+
output += ' - ✅ ALWAYS: Class names, Framework names, Protocol names\n\n';
|
|
1426
|
+
output += '3. Progressive Refinement:\n';
|
|
1427
|
+
output += ' - Start: "Widget" → Refine: "WidgetKit" → Detail: "TimelineProvider"\n\n';
|
|
1428
|
+
output += 'SEARCH EXECUTION: ANALYZE → EXTRACT entities → SEARCH → REFINE → explore_api\n\n';
|
|
1429
|
+
output += 'Remember: You are searching a technical index, not Google. Think like a compiler.\n\n';
|
|
1285
1430
|
output += '🔄 Next step: Generate code that strictly follows ALL the above rules, or refuse if compliance is impossible.\n';
|
|
1286
1431
|
|
|
1287
1432
|
return output;
|
|
@@ -1,82 +0,0 @@
|
|
|
1
|
-
# MCP TOOL EXECUTION PROTOCOL
|
|
2
|
-
|
|
3
|
-
## CONDITIONAL LOGIC RULES:
|
|
4
|
-
|
|
5
|
-
### Rule 1: Code Generation Detection
|
|
6
|
-
```
|
|
7
|
-
IF input_contains(write, create, implement, build, code, function, class, component, method, variable, generate, make, develop, add)
|
|
8
|
-
THEN execute_tool(check_project_rules, task_description)
|
|
9
|
-
REQUIRED: Before any code output
|
|
10
|
-
```
|
|
11
|
-
|
|
12
|
-
### Rule 2: Project Information Detection
|
|
13
|
-
```
|
|
14
|
-
IF input_contains(how, what, why, architecture, approach, pattern, feature, authentication, database, api, testing)
|
|
15
|
-
AND context_contains(this project, this codebase, here, our, [project_name])
|
|
16
|
-
THEN execute_tool(search_documentation, extracted_keywords)
|
|
17
|
-
REQUIRED: For project-specific queries
|
|
18
|
-
```
|
|
19
|
-
|
|
20
|
-
### Rule 3: Documentation Discovery Detection
|
|
21
|
-
```
|
|
22
|
-
IF input_contains(documentation, available, help with, capabilities, rules, standards, what exists)
|
|
23
|
-
THEN execute_tool(get_global_rules)
|
|
24
|
-
REQUIRED: For documentation overview
|
|
25
|
-
```
|
|
26
|
-
|
|
27
|
-
### Rule 4: Context-Specific Detection
|
|
28
|
-
```
|
|
29
|
-
IF input_contains(file, directory, working on, specific, [filename], path)
|
|
30
|
-
THEN execute_tool(get_relevant_docs, file_context)
|
|
31
|
-
REQUIRED: For file-specific work
|
|
32
|
-
```
|
|
33
|
-
|
|
34
|
-
### Rule 5: Document Reading Detection
|
|
35
|
-
```
|
|
36
|
-
IF input_contains(read, show, get content, full document)
|
|
37
|
-
OR previous_response_contains(search results)
|
|
38
|
-
THEN execute_tool(read_specific_document, filename)
|
|
39
|
-
REQUIRED: For complete document access
|
|
40
|
-
```
|
|
41
|
-
|
|
42
|
-
## EXECUTION ALGORITHM:
|
|
43
|
-
|
|
44
|
-
```
|
|
45
|
-
STEP 1: input_analysis(user_query)
|
|
46
|
-
STEP 2: keyword_extraction(input_analysis)
|
|
47
|
-
STEP 3: rule_matching(keyword_extraction)
|
|
48
|
-
STEP 4: tool_execution(matched_rule)
|
|
49
|
-
STEP 5: response_generation(tool_output)
|
|
50
|
-
STEP 6: validation(response, project_rules)
|
|
51
|
-
```
|
|
52
|
-
|
|
53
|
-
## RESPONSE PROTOCOL:
|
|
54
|
-
|
|
55
|
-
### Tool-Based Response:
|
|
56
|
-
1. **Execute Tool**: Call appropriate MCP tool first
|
|
57
|
-
2. **Parse Output**: Extract relevant information from tool response
|
|
58
|
-
3. **Generate Answer**: Base response on tool output only
|
|
59
|
-
4. **Validate**: Ensure consistency with project documentation
|
|
60
|
-
|
|
61
|
-
### Fallback Response:
|
|
62
|
-
1. **Context Check**: Verify if response requires project knowledge
|
|
63
|
-
2. **Tool Selection**: Use search_documentation if uncertain
|
|
64
|
-
3. **Search Limit**: If documentation search yields no results after 2-3 attempts, fall back to web search
|
|
65
|
-
4. **Web Search Guidance**: When instructed to use web search after failed documentation searches:
|
|
66
|
-
- Use web search for official documentation, tutorials, and examples
|
|
67
|
-
- Combine project context with external knowledge when appropriate
|
|
68
|
-
5. **Generic Response**: Only if certain no project context needed
|
|
69
|
-
|
|
70
|
-
## VALIDATION REQUIREMENTS:
|
|
71
|
-
|
|
72
|
-
- **Tool Precedence**: Tool responses override general knowledge
|
|
73
|
-
- **Accuracy**: Do not add information beyond tool output
|
|
74
|
-
- **Completeness**: Use tools for all project-related queries
|
|
75
|
-
- **Consistency**: Ensure responses align with project standards
|
|
76
|
-
|
|
77
|
-
## OPERATIONAL CONSTRAINTS:
|
|
78
|
-
|
|
79
|
-
- **Custom Patterns**: Project implements non-standard practices
|
|
80
|
-
- **Rule Compliance**: Generated code must follow project rules
|
|
81
|
-
- **Documentation Authority**: Project docs are the authoritative source
|
|
82
|
-
- **Context Awareness**: Always consider project-specific context
|
|
@@ -1,45 +0,0 @@
|
|
|
1
|
-
# MCP TOOL USAGE DECISION TREE
|
|
2
|
-
|
|
3
|
-
## KEYWORD-TO-TOOL MAPPINGS:
|
|
4
|
-
|
|
5
|
-
### Code Generation Keywords → check_project_rules
|
|
6
|
-
**Keywords**: write, create, implement, build, add, code, function, class, component, method, develop, generate, make
|
|
7
|
-
**Logic**: Code generation requires project-specific rules validation
|
|
8
|
-
**Action**: Execute check_project_rules before any code output
|
|
9
|
-
|
|
10
|
-
### Project Information Keywords → search_documentation
|
|
11
|
-
**Keywords**: how, what, why, architecture, approach, feature, authentication, database, API, testing, pattern
|
|
12
|
-
**Context Indicators**: "this project", "this codebase", "here", "our", specific feature names
|
|
13
|
-
**Logic**: Project-specific questions require documentation lookup
|
|
14
|
-
**Action**: Execute search_documentation with relevant query
|
|
15
|
-
|
|
16
|
-
### Documentation Discovery Keywords → get_global_rules
|
|
17
|
-
**Keywords**: documentation, available, capabilities, help with, what exists, rules, standards
|
|
18
|
-
**Logic**: Documentation queries need comprehensive rule listing
|
|
19
|
-
**Action**: Execute get_global_rules for overview
|
|
20
|
-
|
|
21
|
-
### Context-Specific Keywords → get_relevant_docs
|
|
22
|
-
**Keywords**: file, directory, component, working on, specific, this [filename], path
|
|
23
|
-
**Logic**: File-specific work requires targeted documentation
|
|
24
|
-
**Action**: Execute get_relevant_docs with file context
|
|
25
|
-
|
|
26
|
-
## DECISION ALGORITHM:
|
|
27
|
-
|
|
28
|
-
1. **Parse Input**: Extract keywords from user query
|
|
29
|
-
2. **Match Patterns**: Check keywords against tool mappings
|
|
30
|
-
3. **Priority Order**: Code generation > Project questions > Documentation discovery > Context-specific
|
|
31
|
-
4. **Tool Execution**: Call appropriate MCP tool first
|
|
32
|
-
5. **Response Generation**: Base answer on tool output
|
|
33
|
-
6. **Validation**: Ensure response aligns with retrieved documentation
|
|
34
|
-
|
|
35
|
-
## EXECUTION REQUIREMENTS:
|
|
36
|
-
|
|
37
|
-
- **Mandatory**: Use MCP tools for any project-related query
|
|
38
|
-
- **Precedence**: Tool responses override general knowledge
|
|
39
|
-
- **Accuracy**: Verify information against documentation
|
|
40
|
-
- **Completeness**: Don't add assumptions beyond tool output
|
|
41
|
-
- **Search Limits**: If documentation searches yield no results after 2-3 attempts, follow web search fallback
|
|
42
|
-
- **Fallback Protocol**: When instructed to use web search:
|
|
43
|
-
- Acknowledge the documentation search limitation
|
|
44
|
-
- Use web search for external resources
|
|
45
|
-
- Combine findings with any available project context
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
# CONTEXTUAL DOCUMENTATION
|
|
2
|
-
|
|
3
|
-
${globalRulesSection}
|
|
4
|
-
${contextualDocsSection}
|
|
5
|
-
${inferredDocsSection}
|
|
6
|
-
${confidenceSection}
|
|
7
|
-
|
|
8
|
-
## IMPLEMENTATION GUIDANCE:
|
|
9
|
-
|
|
10
|
-
**Context**: The above documentation applies to your current working context
|
|
11
|
-
**Usage**: Apply these patterns and rules to all generated code
|
|
12
|
-
**Priority**: Context-specific rules take precedence over general guidelines
|
|
13
|
-
**Validation**: Verify generated code complies with all listed requirements
|