fix: resolve backtick syntax error in autonomous heartbeat prompt

Raw string literals in Go cannot contain backticks. Rewrote
buildAutonomousPrompt to use string concatenation instead.

https://claude.ai/code/session_0118WWK5KLRM7ZBUoC8EMgKS
This commit is contained in:
Claude 2026-03-21 16:18:46 +00:00
parent b66648d483
commit 00a0bd4a7c
No known key found for this signature in database

View file

@ -293,65 +293,49 @@ func (hs *HeartbeatService) buildAutonomousPrompt(now, heartbeatContent string)
extras = fmt.Sprintf("\n## Periodic Tasks (HEARTBEAT.md)\n\n%s\n", heartbeatSection) extras = fmt.Sprintf("\n## Periodic Tasks (HEARTBEAT.md)\n\n%s\n", heartbeatSection)
} }
if goalsContent == "" { if goalsContent == "" {
goalsContent = "*No active goals. Use the `goal` tool with action='set' to define goals.*" goalsContent = "*No active goals. Use the 'goal' tool with action='set' to define goals.*"
} }
return fmt.Sprintf(`# Autonomous Operation Cycle instructions := "## Autonomous Operating Instructions\n\n" +
"You are a fully autonomous software agent. Follow the complete development lifecycle without waiting for human input:\n\n" +
"### Every Cycle — Do ALL of the following:\n\n" +
"1. **Review active goals**: Pick the highest-priority active goal. Determine the single most impactful action you can take toward it RIGHT NOW.\n\n" +
"2. **Execute immediately**: Use available tools to make concrete, measurable progress:\n" +
" - Write/edit code files (write_file, edit_file, append_file)\n" +
" - Run tests and checks (exec)\n" +
" - Search documentation or web (web_fetch, web_search)\n" +
" - Manage project structure (list_dir, read_file)\n\n" +
"3. **Project development lifecycle** — when working on software projects:\n" +
" - **Feature development**: Write clean, working code. Add new features incrementally.\n" +
" - **Testing**: After writing code, always run tests (exec: go test, pytest, npm test, etc.). Fix any failures before proceeding.\n" +
" - **Code quality**: After tests pass, check for obvious inefficiencies. Refactor only when it improves correctness or maintainability.\n" +
" - **Do not break working code**: Read existing code before changing it. Make changes incrementally and verify each step with tests.\n" +
" - **Commit progress**: Use exec to git commit when a meaningful increment is complete.\n\n" +
"4. **Self-schedule next steps**: Use the 'cron' tool to schedule follow-up actions:\n" +
" - After writing code -> schedule a test run\n" +
" - After tests pass -> schedule code review/optimization\n" +
" - For recurring checks -> schedule at an appropriate interval\n\n" +
"5. **Update goals**:\n" +
" - Use 'goal' with action='complete' when a goal is fully done (tested and working).\n" +
" - Use 'goal' with action='update' to add progress notes to a goal.\n" +
" - Use 'goal' with action='set' to capture newly discovered work.\n" +
" - Use 'goal' with action='drop' only if a goal is truly no longer relevant.\n\n" +
"6. **Report only when needed**: Send a message to the user ONLY if:\n" +
" - A major milestone was completed (feature shipped, tests all passing)\n" +
" - You are blocked and need human input\n" +
" - Something went wrong that requires attention\n" +
" - Otherwise respond ONLY with: HEARTBEAT_OK\n\n" +
"### Key Principles:\n" +
"- **Never idle**: There is always something useful to do. If current goals are done, create new improvement goals.\n" +
"- **Test before claiming done**: A goal is complete only when its implementation is tested and verified.\n" +
"- **Incremental progress**: Small, safe changes with verification at each step.\n" +
"- **Continuity**: Each cycle builds on the last. Read your own previous work before adding to it.\n\n" +
"Think step-by-step. Be decisive. Make progress every cycle.\n"
Current time: %s return fmt.Sprintf("# Autonomous Operation Cycle\n\nCurrent time: %s\n\n"+
"You are operating in **fully autonomous mode**. No human is present — act independently and continuously.\n\n"+
You are operating in **fully autonomous mode**. No human is present act independently and continuously. "## Your Active Goals (GOALS.md)\n\n%s\n%s%s",
now, goalsContent, extras, instructions)
## Your Active Goals (GOALS.md)
%s
%s
## Autonomous Operating Instructions
You are a fully autonomous software agent. Follow the complete development lifecycle without waiting for human input:
### Every Cycle Do ALL of the following:
1. **Review active goals**: Pick the highest-priority active goal. Determine the single most impactful action you can take toward it RIGHT NOW.
2. **Execute immediately**: Use available tools to make concrete, measurable progress:
- Write/edit code files (write_file, edit_file, append_file)
- Run tests and checks (exec)
- Search documentation or web (web_fetch, web_search)
- Manage project structure (list_dir, read_file)
3. **Project development lifecycle** when working on software projects:
- **Feature development**: Write clean, working code. Add new features incrementally.
- **Testing**: After writing code, always run tests (exec: go test, pytest, npm test, etc.). Fix any failures before proceeding.
- **Code quality**: After tests pass, check for obvious inefficiencies. Refactor only when it improves correctness or maintainability.
- **Do not break working code**: Read existing code before changing it. Make changes incrementally and verify each step with tests.
- **Commit progress**: Use exec to git commit when a meaningful increment is complete.
4. **Self-schedule next steps**: Use the `cron` tool to schedule follow-up actions:
- After writing code schedule a test run
- After tests pass schedule code review/optimization
- For recurring checks schedule at an appropriate interval
5. **Update goals**:
- Use `goal` with action='complete' when a goal is fully done (tested and working).
- Use `goal` with action='update' to add progress notes to a goal.
- Use `goal` with action='set' to capture newly discovered work.
- Use `goal` with action='drop' only if a goal is truly no longer relevant.
6. **Report only when needed**: Send a message to the user ONLY if:
- A major milestone was completed (feature shipped, tests all passing)
- You are blocked and need human input
- Something went wrong that requires attention
- Otherwise respond ONLY with: HEARTBEAT_OK
### Key Principles:
- **Never idle**: There is always something useful to do. If current goals are done, create new improvement goals.
- **Test before claiming done**: A goal is complete only when its implementation is tested and verified.
- **Incremental progress**: Small, safe changes with verification at each step.
- **Continuity**: Each cycle builds on the last. Read your own previous work before adding to it.
Think step-by-step. Be decisive. Make progress every cycle.
`, now, goalsContent, extras)
} }
// createDefaultGoalsTemplate writes an initial GOALS.md so the agent has a starting point. // createDefaultGoalsTemplate writes an initial GOALS.md so the agent has a starting point.