reorder prompt sections: task-first with dynamic TOC (#513)
* reorder prompt sections: task-first with dynamic TOC put the actual task at the top of the prompt for primacy, add a dynamic table of contents, and push system/runtime metadata to the end. new section order: TOC → YOUR TASK → PROCEDURE → EVENT CONTEXT → SYSTEM → LEARNINGS → RUNTIME Made-with: Cursor * enforce clean working tree: continue session if agent leaves uncommitted changes after each agent run, check `git status --porcelain`. if dirty, resume the same session with instructions to commit on a new branch, push, and open a PR. retries up to 3 times before giving up. - claude code: capture session_id from result event, use --resume <id> - opencode: use --continue to resume the last session - remove --no-session-persistence from claude (needed for --resume) - update Task mode to clarify branch/push/PR is the default finalize step Made-with: Cursor * log full prompt in collapsible group for debugging Made-with: Cursor * fix: format tool refs in buildCommitPrompt via formatMcpToolRef * enforce clean git status: general instructions, stop hook, and Task mode Made-with: Cursor * fix: rename stale titleBody references after body leak fix Made-with: Cursor --------- Co-authored-by: pullfrog[bot] <226033991+pullfrog[bot]@users.noreply.github.com>
This commit is contained in:
committed by
pullfrog[bot]
parent
6b93e6b368
commit
b9b6503315
@@ -277,12 +277,14 @@ export async function main(): Promise<MainResult> {
|
||||
});
|
||||
timer.checkpoint("lifecycleHooks::setup");
|
||||
|
||||
const modes = [...computeModes(), ...runContext.repoSettings.modes];
|
||||
const agentId = agent.name;
|
||||
const modes = [...computeModes(agentId), ...runContext.repoSettings.modes];
|
||||
|
||||
const outputSchema = resolveOutputSchema();
|
||||
|
||||
// mcpServerUrl and tmpdir are set after server starts
|
||||
toolContext = {
|
||||
agentId,
|
||||
repo: runContext.repo,
|
||||
payload,
|
||||
octokit,
|
||||
@@ -314,6 +316,7 @@ export async function main(): Promise<MainResult> {
|
||||
payload,
|
||||
repo: runContext.repo,
|
||||
modes,
|
||||
agentId,
|
||||
outputSchema,
|
||||
learnings: runContext.repoSettings.learnings,
|
||||
});
|
||||
@@ -327,6 +330,9 @@ export async function main(): Promise<MainResult> {
|
||||
log.box(logParts.join("\n\n---\n\n"), {
|
||||
title: "Instructions",
|
||||
});
|
||||
log.group("View full prompt", () => {
|
||||
log.info(instructions.full);
|
||||
});
|
||||
|
||||
// run agent, optionally with timeout enforcement
|
||||
activityTimeout = createProcessOutputActivityTimeout({
|
||||
|
||||
Reference in New Issue
Block a user