Track work progress across multiple coding sessions.

Install

mkdir -p .claude/skills/gsd-thread && curl -L -o skill.zip "https://agentskills.codes/api/skills/download/12559" && unzip -o skill.zip -d .claude/skills/gsd-thread && rm skill.zip

Installs to .claude/skills/gsd-thread

Activation

This is the description your AI agent reads to decide when to run this skill — the better it matches your request, the more reliably it fires.

Manage persistent context threads for cross-session work
56 charsno explicit “when” trigger
Beginner

Key capabilities

  • List all existing persistent context threads.
  • Resume an existing thread by loading its context into the current session.
  • Create a new thread with a given description.
  • Generate a slug from the thread description.
  • Add relevant context from the current conversation to a new thread.
  • Commit the newly created thread file.

How it works

The skill parses `{{GSD_ARGS}}` to determine if it should list, resume, or create a thread. It lists threads by reading `.planning/threads/`, resumes by `cat`ing the file, and creates by generating a slug, writing a new file, and committing it.

Inputs & outputs

You give it
No arguments to list threads, an existing thread name to resume, or a new description to create a thread.
You get back
A list of active threads, the content of a resumed thread, or a newly created thread file in `.planning/threads/`.

When to use gsd-thread

  • Managing multi-session projects
  • Keeping conversation history
  • Tracking project context

About this skill

<codex_skill_adapter>

A. Skill Invocation

  • This skill is invoked by mentioning $gsd-thread.
  • Treat all user text after $gsd-thread as {{GSD_ARGS}}.
  • If no arguments are present, treat {{GSD_ARGS}} as empty.

B. AskUserQuestion → request_user_input Mapping

GSD workflows use AskUserQuestion (Claude Code syntax). Translate to Codex request_user_input:

Parameter mapping:

  • headerheader
  • questionquestion
  • Options formatted as "Label" — description{label: "Label", description: "description"}
  • Generate id from header: lowercase, replace spaces with underscores

Batched calls:

  • AskUserQuestion([q1, q2]) → single request_user_input with multiple entries in questions[]

Multi-select workaround:

  • Codex has no multiSelect. Use sequential single-selects, or present a numbered freeform list asking the user to enter comma-separated numbers.

Execute mode fallback:

  • When request_user_input is rejected (Execute mode), present a plain-text numbered list and pick a reasonable default.

C. Task() → spawn_agent Mapping

GSD workflows use Task(...) (Claude Code syntax). Translate to Codex collaboration tools:

Direct mapping:

  • Task(subagent_type="X", prompt="Y")spawn_agent(agent_type="X", message="Y")
  • Task(model="...") → omit (Codex uses per-role config, not inline model selection)
  • fork_context: false by default — GSD agents load their own context via <files_to_read> blocks

Parallel fan-out:

  • Spawn multiple agents → collect agent IDs → wait(ids) for all to complete

Result parsing:

  • Look for structured markers in agent output: CHECKPOINT, PLAN COMPLETE, SUMMARY, etc.
  • close_agent(id) after collecting results from each agent </codex_skill_adapter>
<objective> Create, list, or resume persistent context threads. Threads are lightweight cross-session knowledge stores for work that spans multiple sessions but doesn't belong to any specific phase. </objective> <process>

Parse {{GSD_ARGS}} to determine mode:

<mode_list> If no arguments or {{GSD_ARGS}} is empty:

List all threads:

ls .planning/threads/*.md 2>/dev/null

For each thread, read the first few lines to show title and status:

## Active Threads

| Thread | Status | Last Updated |
|--------|--------|-------------|
| fix-deploy-key-auth | OPEN | 2026-03-15 |
| pasta-tcp-timeout | RESOLVED | 2026-03-12 |
| perf-investigation | IN PROGRESS | 2026-03-17 |

If no threads exist, show:

No threads found. Create one with: /gsd-thread <description>

</mode_list>

<mode_resume> If {{GSD_ARGS}} matches an existing thread name (file exists):

Resume the thread — load its context into the current session:

cat ".planning/threads/${THREAD_NAME}.md"

Display the thread content and ask what the user wants to work on next. Update the thread's status to IN PROGRESS if it was OPEN. </mode_resume>

<mode_create> If {{GSD_ARGS}} is a new description (no matching thread file):

Create a new thread:

  1. Generate slug from description:

    SLUG=$(node "D:/Developer/Minecraft_bot/.codex/get-shit-done/bin/gsd-tools.cjs" generate-slug "{{GSD_ARGS}}" --raw)
    
  2. Create the threads directory if needed:

    mkdir -p .planning/threads
    
  3. Write the thread file:

    cat > ".planning/threads/${SLUG}.md" << 'EOF'
    # Thread: {description}
    
    ## Status: OPEN
    
    ## Goal
    
    {description}
    
    ## Context
    
    *Created from conversation on {today's date}.*
    
    ## References
    
    - *(add links, file paths, or issue numbers)*
    
    ## Next Steps
    
    - *(what the next session should do first)*
    EOF
    
  4. If there's relevant context in the current conversation (code snippets, error messages, investigation results), extract and add it to the Context section.

  5. Commit:

    node "D:/Developer/Minecraft_bot/.codex/get-shit-done/bin/gsd-tools.cjs" commit "docs: create thread — ${ARGUMENTS}" --files ".planning/threads/${SLUG}.md"
    
  6. Report:

    ## 🧵 Thread Created
    
    Thread: {slug}
    File: .planning/threads/{slug}.md
    
    Resume anytime with: /gsd-thread {slug}
    

</mode_create>

</process> <notes> - Threads are NOT phase-scoped — they exist independently of the roadmap - Lighter weight than /gsd-pause-work — no phase state, no plan context - The value is in Context and Next Steps — a cold-start session can pick up immediately - Threads can be promoted to phases or backlog items when they mature: /gsd-add-phase or /gsd-add-backlog with context from the thread - Thread files live in .planning/threads/ — no collision with phases or other GSD structures </notes>

When not to use it

  • When the work is phase-scoped.
  • When the user wants to pause work with phase state and plan context.
  • When the user wants to add a phase or backlog item directly.

Limitations

  • Threads are not phase-scoped.
  • It is lighter weight than `/gsd-pause-work`.
  • It does not automatically promote threads to phases or backlog items.

How it compares

This skill provides a lightweight, cross-session knowledge store for work that spans multiple sessions but doesn't fit into a specific phase, offering more flexibility than rigid phase-based tracking.

Compared to similar skills

gsd-thread side by side with the closest alternatives in the catalog.

SkillInstallsUpdatedSafetyDifficulty
gsd-thread (this skill)04moReviewBeginner
notion-meeting-intelligence66moNo flagsIntermediate
resume-handoff36moNo flagsIntermediate
meeting-briefing26moNo flagsIntermediate

Try saying

Example prompts that trigger this skill in your AI assistant.

You might also like

notion-meeting-intelligence

openai

Prepare meeting materials with Notion context and Codex research; use when gathering context, drafting agendas/pre-reads, and tailoring materials to attendees.

656

resume-handoff

parcadei

Resume work from handoff document with context analysis and validation

333

meeting-briefing

anthropics

Prepare structured briefings for meetings with legal relevance and track resulting action items. Use when preparing for contract negotiations, board meetings, compliance reviews, or any meeting where legal context, background research, or action tracking is needed.

213

personal-assistant

ailabs-393

This skill should be used whenever users request personal assistance tasks such as schedule management, task tracking, reminder setting, habit monitoring, productivity advice, time management, or any query requiring personalized responses based on user preferences and context. On first use, collects comprehensive user information including schedule, working habits, preferences, goals, and routines. Maintains an intelligent database that automatically organizes and prioritizes information, keeping relevant data and discarding outdated context.

36

digital-brain

muratcankoylan

This skill should be used when the user asks to "write a post", "check my voice", "look up contact", "prepare for meeting", "weekly review", "track goals", or mentions personal brand, content creation, network management, or voice consistency.

15

meeting-sync

amanaiproduct

Sync new Granola meetings to local Knowledge folder. Use during morning planning, when user asks "what should I do today", or asks to review/sync meetings.

13

Search skills

Search the agent skills registry