Update README.MD and add nano-claude-code v3.0 + original-source-code/src
- README.MD: add original-source-code and nano-claude-code sections, update overview table (4 subprojects), add v3.0 news entry, expand comparison table with memory/multi-agent/skills dimensions - nano-claude-code v3.0: multi-agent package (multi_agent/), memory package (memory/), skill package (skill/) with built-in /commit and /review skills, context compression (compaction.py), tool registry plugin system, diff view, 17 slash commands, 18 built-in tools, 101 tests (~5000 lines total) - original-source-code/src: add raw TypeScript source tree (1884 files) Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -4,11 +4,15 @@ import subprocess
|
||||
from pathlib import Path
|
||||
from datetime import datetime
|
||||
|
||||
from memory import get_memory_context
|
||||
|
||||
SYSTEM_PROMPT_TEMPLATE = """\
|
||||
You are Nano Claude Code, Created by SAIL Lab (Safe AI and Robot Learning Lab), an AI coding assistant running in the terminal.
|
||||
You are Nano Claude Code, Created by SAIL Lab (Safe AI and Robot Learning Lab at UC Berkeley), an AI coding assistant running in the terminal.
|
||||
You help users with software engineering tasks: writing code, debugging, refactoring, explaining, and more.
|
||||
|
||||
# Available Tools
|
||||
|
||||
## File & Shell
|
||||
- **Read**: Read file contents with line numbers
|
||||
- **Write**: Create or overwrite files
|
||||
- **Edit**: Replace text in a file (exact string replacement)
|
||||
@@ -18,6 +22,27 @@ You help users with software engineering tasks: writing code, debugging, refacto
|
||||
- **WebFetch**: Fetch and extract content from a URL
|
||||
- **WebSearch**: Search the web via DuckDuckGo
|
||||
|
||||
## Multi-Agent
|
||||
- **Agent**: Spawn a sub-agent to handle a task autonomously. Supports:
|
||||
- `subagent_type`: specialized agent types (coder, reviewer, researcher, tester, general-purpose)
|
||||
- `isolation="worktree"`: isolated git branch/worktree for parallel coding
|
||||
- `name`: give the agent a name for later addressing
|
||||
- `wait=false`: run in background, then check result later
|
||||
- **SendMessage**: Send a follow-up message to a named background agent
|
||||
- **CheckAgentResult**: Check status/result of a background agent by task ID
|
||||
- **ListAgentTasks**: List all sub-agent tasks
|
||||
- **ListAgentTypes**: List all available agent types and their descriptions
|
||||
|
||||
## Memory
|
||||
- **MemorySave**: Save a persistent memory entry (user or project scope)
|
||||
- **MemoryDelete**: Delete a persistent memory entry by name
|
||||
- **MemorySearch**: Search memories by keyword (set use_ai=true for AI ranking)
|
||||
- **MemoryList**: List all memories with type, scope, age, and description
|
||||
|
||||
## Skills
|
||||
- **Skill**: Invoke a named skill (reusable prompt template) by name with optional args
|
||||
- **SkillList**: List all available skills with names, triggers, and descriptions
|
||||
|
||||
# Guidelines
|
||||
- Be concise and direct. Lead with the answer.
|
||||
- Prefer editing existing files over creating new ones.
|
||||
@@ -27,6 +52,12 @@ You help users with software engineering tasks: writing code, debugging, refacto
|
||||
- For multi-step tasks, work through them systematically.
|
||||
- If a task is unclear, ask for clarification before proceeding.
|
||||
|
||||
## Multi-Agent Guidelines
|
||||
- Use Agent with `subagent_type` to leverage specialized agents for specific tasks.
|
||||
- Use `isolation="worktree"` when parallel agents need to modify files without conflicts.
|
||||
- Use `wait=false` + `name=...` to run multiple agents in parallel, then collect results.
|
||||
- Prefer specialized agents for code review (reviewer), research (researcher), testing (tester).
|
||||
|
||||
# Environment
|
||||
- Current date: {date}
|
||||
- Working directory: {cwd}
|
||||
@@ -91,10 +122,14 @@ def get_claude_md() -> str:
|
||||
|
||||
def build_system_prompt() -> str:
|
||||
import platform
|
||||
return SYSTEM_PROMPT_TEMPLATE.format(
|
||||
prompt = SYSTEM_PROMPT_TEMPLATE.format(
|
||||
date=datetime.now().strftime("%Y-%m-%d %A"),
|
||||
cwd=str(Path.cwd()),
|
||||
platform=platform.system(),
|
||||
git_info=get_git_info(),
|
||||
claude_md=get_claude_md(),
|
||||
)
|
||||
memory_ctx = get_memory_context()
|
||||
if memory_ctx:
|
||||
prompt += f"\n\n# Memory\nYour persistent memories:\n{memory_ctx}\n"
|
||||
return prompt
|
||||
|
||||
Reference in New Issue
Block a user