This commit is contained in:
2026-02-27 21:25:39 -05:00
parent 5608d8d6cd
commit fcd60c908b
7 changed files with 86 additions and 42 deletions

View File

@@ -5,16 +5,16 @@ model: gemini-3.1-pro-preview
tools:
- read_file
- list_directory
- search_files
- discovered_tool_search_files
- grep_search
- get_file_summary
- get_python_skeleton
- get_code_outline
- get_git_diff
- web_search
- fetch_url
- discovered_tool_get_file_summary
- discovered_tool_get_python_skeleton
- discovered_tool_get_code_outline
- discovered_tool_get_git_diff
- discovered_tool_web_search
- discovered_tool_fetch_url
- activate_skill
- run_powershell
- discovered_tool_run_powershell
---
STRICT SYSTEM DIRECTIVE: You are a Tier 1 Orchestrator.
Focused on product alignment, high-level planning, and track initialization.

View File

@@ -7,16 +7,16 @@ tools:
- write_file
- replace
- list_directory
- search_files
- discovered_tool_search_files
- grep_search
- get_file_summary
- get_python_skeleton
- get_code_outline
- get_git_diff
- web_search
- fetch_url
- discovered_tool_get_file_summary
- discovered_tool_get_python_skeleton
- discovered_tool_get_code_outline
- discovered_tool_get_git_diff
- discovered_tool_web_search
- discovered_tool_fetch_url
- activate_skill
- run_powershell
- discovered_tool_run_powershell
---
STRICT SYSTEM DIRECTIVE: You are a Tier 2 Tech Lead.
Focused on architectural design and track execution.

View File

@@ -7,19 +7,19 @@ tools:
- write_file
- replace
- list_directory
- search_files
- discovered_tool_search_files
- grep_search
- get_file_summary
- get_python_skeleton
- get_code_outline
- get_git_diff
- web_search
- fetch_url
- discovered_tool_get_file_summary
- discovered_tool_get_python_skeleton
- discovered_tool_get_code_outline
- discovered_tool_get_git_diff
- discovered_tool_web_search
- discovered_tool_fetch_url
- activate_skill
- run_powershell
- discovered_tool_run_powershell
---
STRICT SYSTEM DIRECTIVE: You are a stateless Tier 3 Worker (Contributor).
Your goal is to implement specific code changes or tests based on the provided task.
You have access to tools for reading and writing files, codebase investigation, and web tools.
You CAN execute PowerShell scripts or run shell commands via run_powershell for verification and testing.
You CAN execute PowerShell scripts or run shell commands via discovered_tool_run_powershell for verification and testing.
Follow TDD and return success status or code changes. No pleasantries, no conversational filler.

View File

@@ -5,19 +5,19 @@ model: gemini-2.5-flash-lite
tools:
- read_file
- list_directory
- search_files
- discovered_tool_search_files
- grep_search
- get_file_summary
- get_python_skeleton
- get_code_outline
- get_git_diff
- web_search
- fetch_url
- discovered_tool_get_file_summary
- discovered_tool_get_python_skeleton
- discovered_tool_get_code_outline
- discovered_tool_get_git_diff
- discovered_tool_web_search
- discovered_tool_fetch_url
- activate_skill
- run_powershell
- discovered_tool_run_powershell
---
STRICT SYSTEM DIRECTIVE: You are a stateless Tier 4 QA Agent.
Your goal is to analyze errors, summarize logs, or verify tests.
You have access to tools for reading files, exploring the codebase, and web tools.
You CAN execute PowerShell scripts or run shell commands via run_powershell for diagnostics.
You CAN execute PowerShell scripts or run shell commands via discovered_tool_run_powershell for diagnostics.
ONLY output the requested analysis. No pleasantries.

View File

@@ -6,7 +6,7 @@
"whitelist": [
"*"
],
"discoveryCommand": "type .gemini\\tools.json",
"discoveryCommand": "powershell.exe -NoProfile -Command \"Get-Content .gemini/tools.json -Raw\"",
"callCommand": "python scripts/tool_call.py"
},
"hooks": {

View File

@@ -177,16 +177,16 @@ def execute_agent(role: str, prompt: str, docs: list[str]) -> str:
system_directive = "STRICT SYSTEM DIRECTIVE: You are a stateless Tier 3 Worker (Contributor). " \
"Your goal is to implement specific code changes or tests based on the provided task. " \
"You have access to tools for reading and writing files (e.g., read_file, write_file, replace), " \
"codebase investigation (get_code_outline, get_python_skeleton), " \
"version control (get_git_diff), and web tools (web_search, fetch_url). " \
"You CAN execute PowerShell scripts via run_powershell for verification and testing. " \
"codebase investigation (discovered_tool_get_code_outline, discovered_tool_get_python_skeleton), " \
"version control (discovered_tool_get_git_diff), and web tools (discovered_tool_web_search, discovered_tool_fetch_url). " \
"You CAN execute PowerShell scripts via discovered_tool_run_powershell for verification and testing. " \
"Follow TDD and return success status or code changes. No pleasantries, no conversational filler."
elif role in ['tier4', 'tier4-qa']:
system_directive = "STRICT SYSTEM DIRECTIVE: You are a stateless Tier 4 QA Agent. " \
"Your goal is to analyze errors, summarize logs, or verify tests. " \
"You have access to tools for reading files, exploring the codebase (get_code_outline, get_python_skeleton), " \
"version control (get_git_diff), and web tools (web_search, fetch_url). " \
"You CAN execute PowerShell scripts via run_powershell for diagnostics. " \
"You have access to tools for reading files, exploring the codebase (discovered_tool_get_code_outline, discovered_tool_get_python_skeleton), " \
"version control (discovered_tool_get_git_diff), and web tools (discovered_tool_web_search, discovered_tool_fetch_url). " \
"You CAN execute PowerShell scripts via discovered_tool_run_powershell for diagnostics. " \
"ONLY output the requested analysis. No pleasantries."
else:
system_directive = f"STRICT SYSTEM DIRECTIVE: You are a stateless {role}. " \
@@ -209,7 +209,7 @@ def execute_agent(role: str, prompt: str, docs: list[str]) -> str:
# Use subprocess with input to pipe the prompt via stdin, avoiding WinError 206.
# We use -p 'mma_task' to ensure non-interactive (headless) mode and valid parsing.
# Whitelist tools to ensure they are available to the model in headless mode.
allowed_tools = "read_file,write_file,replace,list_directory,glob,grep_search,search_files,get_file_summary,get_python_skeleton,get_code_outline,get_git_diff,run_powershell,activate_skill,codebase_investigator,web_search,fetch_url"
allowed_tools = "read_file,write_file,replace,list_directory,glob,grep_search,discovered_tool_search_files,discovered_tool_get_file_summary,discovered_tool_get_python_skeleton,discovered_tool_get_code_outline,discovered_tool_get_git_diff,discovered_tool_run_powershell,activate_skill,codebase_investigator,discovered_tool_web_search,discovered_tool_fetch_url"
ps_command = (
f"if (Test-Path 'C:\\projects\\misc\\setup_gemini.ps1') {{ . 'C:\\projects\\misc\\setup_gemini.ps1' }}; "
f"gemini -p 'mma_task' --allowed-tools {allowed_tools} --output-format json --model {model}"

44
scripts/tool_discovery.py Normal file
View File

@@ -0,0 +1,44 @@
import json
import sys
import os
# Add project root to sys.path
sys.path.append(os.path.abspath(os.path.join(os.path.dirname(__file__), "..")))
try:
import mcp_client
except ImportError as e:
# Print the error to stderr to diagnose
print(f"ImportError in discovery: {e}", file=sys.stderr)
print("[]")
sys.exit(0)
def main():
specs = list(mcp_client.MCP_TOOL_SPECS)
# Add run_powershell (manually define to match ai_client.py)
specs.append({
"name": "run_powershell",
"description": (
"Run a PowerShell script within the project base_dir. "
"Use this to create, edit, rename, or delete files and directories. "
"The working directory is set to base_dir automatically. "
"stdout and stderr are returned to you as the result."
),
"parameters": {
"type": "object",
"properties": {
"script": {
"type": "string",
"description": "The PowerShell script to execute."
}
},
"required": ["script"]
}
})
# Output as JSON array of FunctionDeclarations
print(json.dumps(specs, indent=2))
if __name__ == "__main__":
main()