feat: improve session titles to include task descriptions#211
feat: improve session titles to include task descriptions#211marcusquinn merged 4 commits intomainfrom
Conversation
When using /full-loop, /ralph-task, or /ralph-loop with a task ID, the session title now includes the actual task description instead of just the task ID. Changes: - Add Step 0 to full-loop.md for task ID resolution and session naming - Update generate-opencode-commands.sh to include session title guidance - Add examples showing good vs bad session title formats Before: 'Full loop development for t061' After: 't061: Improve session title to include task description'
|
Warning Rate limit exceeded
⌛ How to resolve this issue?After the wait time has elapsed, a review can be triggered using the We recommend that you space out your commits to avoid hitting the rate limit. 🚦 How do rate limits work?CodeRabbit enforces hourly rate limits for each developer per organization. Our paid plans have higher rate limits than the trial, open-source and free plans. In all cases, we re-allow further reviews after a brief timeout. Please see our FAQ for further information. Note Other AI code review bot(s) detectedCodeRabbit has detected other AI code review bot(s) in this pull request and will avoid duplicating their findings in the review comments. This may lead to a less comprehensive review. WalkthroughAdds a Step 0 to full-loop: detect a leading task ID (t\d+) or treat the first arg as a description, look up descriptions in TODO.md when an ID is found, and set a concise session title via Changes
Sequence Diagram(s)sequenceDiagram
participant User
participant FullLoop as Full Loop Script
participant TodoMD as TODO.md
participant SessionMgr as Session Manager
participant RalphLoop as Ralph Loop
User->>FullLoop: Invoke /full-loop [task-id or description]
FullLoop->>FullLoop: Extract first positional arg (skip flags)
alt Matches t\d+
FullLoop->>TodoMD: Regex lookup for task description
alt Description found
TodoMD-->>FullLoop: Return full description
FullLoop->>SessionMgr: session-rename "t061: Full description"
else Not found
TodoMD-->>FullLoop: No match
FullLoop->>SessionMgr: session-rename "t061 (task not found in TODO.md)"
end
else First arg is description
FullLoop->>SessionMgr: session-rename "Truncated description (~60 chars)"
end
SessionMgr-->>FullLoop: Title set
FullLoop->>RalphLoop: Start Ralph loop with session context
RalphLoop-->>User: Run loop phases / iterations
Estimated code review effort🎯 2 (Simple) | ⏱️ ~10 minutes Possibly related PRs
Poem
🚥 Pre-merge checks | ✅ 3✅ Passed checks (3 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
Summary of ChangesHello @marcusquinn, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed! This pull request significantly improves the clarity and utility of session titles within the agent's development workflow. By integrating task descriptions directly into session titles for commands like Highlights
Using Gemini Code AssistThe full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips. Invoking Gemini You can request assistance from Gemini at any point by creating a comment using either
Customization To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a Limitations & Feedback Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for Github and other Google products, sign up here. You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension. Footnotes
|
🔍 Code Quality Report�[0;35m[MONITOR]�[0m Code Review Monitoring Report �[0;34m[INFO]�[0m Latest Quality Status: �[0;34m[INFO]�[0m Recent monitoring activity: 📈 Current Quality Metrics
Generated on: Sun Jan 25 15:08:29 UTC 2026 Generated by AI DevOps Framework Code Review Monitoring |
There was a problem hiding this comment.
Code Review
This pull request is a great improvement, making session titles more descriptive by including task details. The changes are clearly explained and implemented consistently across the affected commands. I've included a couple of suggestions to enhance the robustness of the task lookup logic and improve the long-term maintainability of the command documentation.
.agent/scripts/commands/full-loop.md
Outdated
|
|
||
| 1. Look up the task description from TODO.md: | ||
| ```bash | ||
| grep "^- \[ \] $ARGUMENTS " TODO.md 2>/dev/null | head -1 | sed 's/^- \[ \] [^ ]* //' |
There was a problem hiding this comment.
The current grep command only finds open tasks (- [ ]). This might be too restrictive if a user wants to re-run a loop on a completed (- [x]) or declined (- [-]) task. Using grep -E with an extended regular expression would make this more robust by matching any of these task states. The sed command should also be updated accordingly to handle these cases.
| grep "^- \[ \] $ARGUMENTS " TODO.md 2>/dev/null | head -1 | sed 's/^- \[ \] [^ ]* //' | |
| grep -E "^- \[( |x|-)\] $ARGUMENTS " TODO.md 2>/dev/null | head -1 | sed -E 's/^- \[( |x|-)\] [^ ]* //' |
|
|
||
| Start a full development loop for: $ARGUMENTS | ||
|
|
||
| **IMPORTANT - Session Title**: If the argument is a task ID (like `t061`), look up the task description from TODO.md and use it for the session title. Call `session-rename` with format: `"t061: Task description here"` instead of just `"Full loop development for t061"`. |
There was a problem hiding this comment.
This instruction about the session title duplicates the information recently added to .agent/scripts/commands/full-loop.md. To maintain a single source of truth and avoid potential inconsistencies in the future, it would be better to remove this summary. The existing instruction on line 1404 (Read ~/.aidevops/agents/scripts/commands/full-loop.md...) is sufficient to guide the agent.
🤖 Augment PR SummarySummary: Session titles for loop commands now incorporate TODO task descriptions when invoked with a 🤖 Was this summary useful? React with 👍 or 👎 |
.agent/scripts/commands/full-loop.md
Outdated
|
|
||
| ## Step 0: Resolve Task ID and Set Session Title | ||
|
|
||
| **IMPORTANT**: Before proceeding, check if the argument is a task ID (matches pattern `t\d+` like `t061`). |
There was a problem hiding this comment.
If users run /full-loop t061 --max-task-iterations 30, $ARGUMENTS may include flags, so the t\d+ check and TODO lookup could fail or produce a noisy session title. Consider clarifying that the check/lookup should use only the first positional token (the task ID) rather than the entire raw argument string.
🤖 Was this useful? React with 👍 or 👎
.agent/scripts/commands/full-loop.md
Outdated
|
|
||
| 1. Look up the task description from TODO.md: | ||
| ```bash | ||
| grep "^- \[ \] $ARGUMENTS " TODO.md 2>/dev/null | head -1 | sed 's/^- \[ \] [^ ]* //' |
There was a problem hiding this comment.
This grep will return empty if the task is marked complete (- [x]) or if the TODO line doesn’t match the exact spacing, which would leave the session title without a description. Consider documenting a fallback behavior when no description is found (e.g., keep the ID-only title) to avoid blank/incorrect titles.
🤖 Was this useful? React with 👍 or 👎
|
|
||
| Arguments: $ARGUMENTS | ||
|
|
||
| **Session Title**: Set a descriptive session title using `session-rename` tool. Use a concise version of the prompt (truncate to ~60 chars if needed). |
There was a problem hiding this comment.
Since /ralph-task already sets the session title to t042: …, this /ralph-loop instruction may overwrite that more specific title when the loop is started. Consider clarifying precedence (don’t rename if a task-prefixed title is already set) so task IDs remain visible.
🤖 Was this useful? React with 👍 or 👎
- Use extended regex to match completed/declined tasks (Gemini) - Remove duplicate session title instruction (Gemini) - Clarify to use first positional token, not full args (Augment) - Add fallback behavior when task not found in TODO.md (Augment) - Clarify ralph-loop precedence to not overwrite task titles (Augment)
🔍 Code Quality Report�[0;35m[MONITOR]�[0m Code Review Monitoring Report �[0;34m[INFO]�[0m Latest Quality Status: �[0;34m[INFO]�[0m Recent monitoring activity: 📈 Current Quality Metrics
Generated on: Sun Jan 25 17:24:56 UTC 2026 Generated by AI DevOps Framework Code Review Monitoring |
There was a problem hiding this comment.
Actionable comments posted: 1
🤖 Fix all issues with AI agents
In @.agent/scripts/commands/full-loop.md:
- Around line 17-20: Add a blank line before the fenced code block in
.agent/scripts/commands/full-loop.md so the grep command block renders
correctly; specifically insert an empty line immediately before the line
starting with ```bash that precedes the grep -E "^- \[( |x|-)\] $TASK_ID "
TODO.md ... | sed -E 's/^- \[( |x|-)\] [^ ]* //' snippet to ensure proper
Markdown parsing.
🔍 Code Quality Report�[0;35m[MONITOR]�[0m Code Review Monitoring Report �[0;34m[INFO]�[0m Latest Quality Status: �[0;34m[INFO]�[0m Recent monitoring activity: 📈 Current Quality Metrics
Generated on: Sun Jan 25 17:28:16 UTC 2026 Generated by AI DevOps Framework Code Review Monitoring |
|
@coderabbitai review - The markdown formatting issue has been fixed in commit 74e9df2. Please re-review. |
|
✅ Actions performedReview triggered.
|
There was a problem hiding this comment.
Actionable comments posted: 2
🤖 Fix all issues with AI agents
In @.agent/scripts/commands/full-loop.md:
- Around line 19-21: The grep invocation uses $TASK_ID but that variable is
never set; update the argument extraction logic that processes $ARGUMENTS to
parse and assign the task identifier into TASK_ID (reusing the same extraction
pattern suggested for lines 13-14) before the grep line, so TASK_ID holds the
extracted value and the grep -E "^- \[( |x|-)\] $TASK_ID " ... command can run
correctly.
- Around line 23-26: Add an explicit invocation pattern for the session-rename
tool: call session-rename with a single string argument that concatenates the
task ID, a colon and space, and the task description (i.e., "<TASK_ID>:
<TASK_DESC>"); document both forms: the shell form where you pass that string as
the single CLI argument and the MCP/tool form where you call session-rename with
a title parameter set to that same string. Reference the symbol session-rename
and the variables TASK_ID and TASK_DESC so agents know to build the title from
those values.
♻️ Duplicate comments (1)
.agent/scripts/commands/full-loop.md (1)
13-14: Provide the actual extraction logic for the first positional argument.The instruction states to extract the first positional argument while ignoring flags like
--max-task-iterations, but doesn't provide the bash code to perform this extraction. The AI agent needs concrete implementation guidance.🔧 Suggested implementation
Add the extraction logic before the task ID check:
**IMPORTANT**: Before proceeding, extract the first positional argument (ignoring flags like `--max-task-iterations`) and check if it's a task ID (matches pattern `t\d+` like `t061`). +Extract the first positional argument: + +```bash +# Extract first non-flag argument as potential task ID +TASK_ID="" +for arg in $ARGUMENTS; do + if [[ ! "$arg" =~ ^-- ]]; then + TASK_ID="$arg" + break + fi +done +``` + +Then check if it matches the task ID pattern: + +```bash +if [[ "$TASK_ID" =~ ^t[0-9]+$ ]]; then + # This is a task ID - proceed with lookup +else + # This is a description - use directly +fi +``` + If the first argument is a task ID:
🧹 Nitpick comments (2)
.agent/scripts/commands/full-loop.md (2)
31-34: Clarify the truncation logic for long descriptions.The instruction to "truncate to ~60 chars" is vague. The AI agent needs specific guidance on how to truncate: exact character limit, word-boundary breaking, ellipsis handling, etc.
✂️ Suggested truncation implementation
If the first argument is NOT a task ID (it's a description): - Use the description directly for the session title -- Call `session-rename` with a concise version if the description is very long (truncate to ~60 chars) +- If the description exceeds 60 characters, truncate it: + + ```bash + if [[ ${`#DESCRIPTION`} -gt 60 ]]; then + # Truncate at 57 chars and add ellipsis + TITLE="${DESCRIPTION:0:57}..." + else + TITLE="$DESCRIPTION" + fi + session-rename "$TITLE" + ```
29-30: Clarify how to store the task description for subsequent steps.Line 30 mentions storing "the full task description for use in subsequent steps" but doesn't show how to store it or which subsequent steps will use it.
💡 Suggested enhancement
-4. Store the full task description for use in subsequent steps. +4. Store the full task description for use in subsequent steps: + + ```bash + # Store in environment variable for the session + export FULL_LOOP_TASK_DESC="$TASK_DESC" + ``` + + This description can be referenced by later steps in the workflow (e.g., for commit messages, PR descriptions).
Address CodeRabbit review feedback: - Add explicit bash commands to extract TASK_ID from ARGUMENTS - Show exact session-rename MCP tool invocation syntax - Clarify fallback behavior when TASK_DESC is empty
|
🔍 Code Quality Report�[0;35m[MONITOR]�[0m Code Review Monitoring Report �[0;34m[INFO]�[0m Latest Quality Status: �[0;34m[INFO]�[0m Recent monitoring activity: 📈 Current Quality Metrics
Generated on: Sun Jan 25 17:35:52 UTC 2026 Generated by AI DevOps Framework Code Review Monitoring |
|
@coderabbitai resolve - All review comments have been addressed in commit f20223f. The TASK_ID extraction and session-rename syntax are now explicitly defined. |
|
I'll resolve all my review comments now. 🐰✨ If you found this review helpful, would you consider giving us a shout-out on X? Thank you for using CodeRabbit! ✅ Actions performedComments resolved and changes approved. |



Summary
When using
/full-loop,/ralph-task, or/ralph-loopwith a task ID (liket061), the session title now includes the actual task description instead of just the generic format.Before:
Full loop development for t061After:
t061: Improve session title to include task descriptionChanges
full-loop.mdcommandgenerate-opencode-commands.shto include session title guidance for:/full-loop- Look up task description from TODO.md when given a task ID/ralph-task- Set session title with task ID and description/ralph-loop- Set descriptive session title from promptHow It Works
t\d+), the AI looks up the task description from TODO.mdsession-renametool is called with format:"t061: Task description here"Testing
Run
./setup.shto regenerate commands, then use/full-loop t001(or any task ID from your TODO.md) to verify the session title is descriptive.Summary by CodeRabbit
✏️ Tip: You can customize this high-level summary in your review settings.