Claude-skill-registry gather-session-goals
Collect and classify work items at the start of a collab session. Invoked by collab skill after creating a new session.
git clone https://github.com/majiayu000/claude-skill-registry
T=$(mktemp -d) && git clone --depth=1 https://github.com/majiayu000/claude-skill-registry "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/data/gather-session-goals" ~/.claude/skills/majiayu000-claude-skill-registry-gather-session-goals && rm -rf "$T"
skills/data/gather-session-goals/SKILL.mdGather Session Goals
Overview
Collect and classify work items at the start of a collab session through iterative questioning.
Invoked by: collab skill after creating a new session
Returns to: collab skill (which manages the work item loop)
Collab Session Required
Before proceeding, check for active collab session:
-
Check if
directory exists.collab/ -
Check if any session folders exist within
-
If no session found:
No active collab session found. Use /collab to start a session first.STOP - do not proceed with this skill.
-
If multiple sessions exist, check
env var or ask user which session.COLLAB_SESSION_PATH
The Process
Step 1: Open Question
Ask the user: "What do you want to accomplish this session?"
Store the initial response. Parse any items mentioned and add them to the work items list with type = "unknown".
Step 2: Anything Else Loop
After parsing the initial response:
-
Infer type for each item from context:
- Contains "setup", "install", "configure", "organize", "clean up", "docker", "deploy" → type = "task"
- Contains "fix", "bug", "broken", "error", "crash", "fail" → type = "bugfix"
- Contains "add", "new", "create", "implement", "build", "refactor", "clean", "simplify", "restructure", "investigate", "explore", "spike" → type = "code"
- Otherwise → type = "unknown"
-
Ask: "Anything else?"
-
If user provides more items:
- Parse and infer types
- Repeat from step 2
-
If user says no/done/that's it:
- Proceed to Step 3
Step 3: Classify Unknown Items
For each item still marked as type = "unknown":
Ask: "What type is '[item title]'?"
1. code 2. bugfix 3. task
Set the item type based on user response.
Step 4: Present Summary
Display the work items for confirmation:
Here are the work items for this session: 1. [bugfix] Fix login redirect issue 2. [code] Add user authentication 3. [code] Clean up database layer Does this list look correct? 1. Yes 2. Add more 3. Remove item 4. Edit item
Handle user responses:
- 1 (Yes) - Proceed to Step 5
- 2 (Add more) - Return to Step 2
- 3 (Remove) - Ask which item to remove, remove it, return to Step 4
- 4 (Edit) - Ask which item to edit, update it, return to Step 4
Step 5: Write Work Items
Before writing, output: "Writing work items..."
5a. Write to session state (source of truth for routing)
Build the workItems array and save to session state:
Tool: mcp__plugin_mermaid-collab_mermaid__update_session_state Args: { "project": "<cwd>", "session": "<session>", "workItems": [ { "number": 1, "title": "<title>", "type": "<code|bugfix|task>", "status": "pending" }, { "number": 2, "title": "<title>", "type": "<code|bugfix|task>", "status": "pending" }, ... ] }
5b. Create design doc with work items
- Build the design doc content with Work Items section:
# Session: <session-name> ## Session Context **Out of Scope:** (session-wide boundaries) **Shared Decisions:** (cross-cutting choices) --- ## Work Items ### Item 1: <title> **Type:** <type> **Status:** pending **Problem/Goal:** **Approach:** **Root Cause:** (only if type is bugfix) **Success Criteria:** **Decisions:** --- ### Item 2: <title> ... --- ## Diagrams (auto-synced)
-
Create the design doc: Tool: mcp__plugin_mermaid-collab_mermaid__create_document Args: { "project": "<cwd>", "session": "<session>", "name": "design", "content": "<full-content>" }
If document already exists, use update_document instead.
After writing, display:
Work items saved. Returning to collab workflow.
Return control to the collab skill.
Key Constraints
- One question at a time - Never batch multiple questions together
- Don't skip classification - Every item must have a type before proceeding
- Must get explicit confirmation - User must approve the list before writing to design doc
Contract
Preconditions:
- Collab session exists
Postconditions:
- Session state contains
array (source of truth for routing)workItems - Design doc contains
section (human-readable view)## Work Items - At least one work item defined
- All items have
status: pending - User has confirmed the list
Side effects:
- Writes
to session stateworkItems - Creates/updates design doc
Browser-Based Questions
When a collab session is active, prefer
render_ui for user interactions.
For item type classification:
Tool: mcp__plugin_mermaid-collab_mermaid__render_ui Args: { "project": "<absolute-path-to-cwd>", "session": "<session-name>", "ui": { "type": "Card", "props": { "title": "Classify item" }, "children": [ { "type": "Markdown", "props": { "content": "What type is **[item title]**?" } }, { "type": "RadioGroup", "props": { "name": "type", "options": [ { "value": "code", "label": "Code (feature, refactor, investigation)" }, { "value": "bugfix", "label": "Bugfix (fix, error, crash)" }, { "value": "task", "label": "Task (setup, config, organization)" } ] } } ], "actions": [{ "id": "classify", "label": "Continue", "primary": true }] }, "blocking": true }
For work items list confirmation:
Tool: mcp__plugin_mermaid-collab_mermaid__render_ui Args: { "project": "<absolute-path-to-cwd>", "session": "<session-name>", "ui": { "type": "Card", "props": { "title": "Confirm work items" }, "children": [ { "type": "Markdown", "props": { "content": "[markdown list of items]" } }, { "type": "RadioGroup", "props": { "name": "action", "options": [ { "value": "yes", "label": "Yes, this is correct" }, { "value": "add", "label": "Add more items" }, { "value": "remove", "label": "Remove an item" }, { "value": "edit", "label": "Edit an item" } ] } } ], "actions": [{ "id": "confirm", "label": "Continue", "primary": true }] }, "blocking": true }
Integration
Called by:
- collab skill - After session creation
Returns to:
- collab skill - To start the work item loop
Completion
At the end of this skill's work, call complete_skill:
Tool: mcp__plugin_mermaid-collab_mermaid__complete_skill Args: { "project": "<cwd>", "session": "<session>", "skill": "gather-session-goals" }
Handle response:
- If
: Invoke skill: collab-clearaction == "clear" - If
is not null: Invoke that skillnext_skill - If
is null: Workflow completenext_skill