Claude-skill-registry capture-request
Capture user intent as structured work requests without executing. Use when user describes work to be done. Separates intent from execution. Writes to do-work/requests/ queue.
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/capture-request" ~/.claude/skills/majiayu000-claude-skill-registry-capture-request && rm -rf "$T"
skills/data/capture-request/SKILL.mdCapture Request
Captures user intent as structured work requests. Does not execute work.
This skill implements intent separation: capture what needs to be done, then hand off to the work-loop for execution.
Purpose
- Accept raw user input describing work
- Detect if input contains multiple disjoint ideas
- Split into separate requests when appropriate
- Group only when dependency exists
- Write structured request files to queue
Constraints
CRITICAL: This skill NEVER:
- Executes code
- Makes repository changes (beyond writing request files)
- Performs speculative planning
- Implements features
This skill ONLY:
- Captures intent
- Structures requests
- Writes to
do-work/requests/
Request Contract
Every request must follow this schema:
# Request: <short descriptive title> ## Intent What outcome is desired. Plain language. ## Context Relevant files, constraints, assumptions. Explicit exclusions. ## Tasks - Step 1 - Step 2 - Step 3 ## Done When Objective completion criteria.
Workflow
1. Parse User Input
When user provides work description:
- Identify the core intent(s)
- Check for multiple disjoint ideas
- Determine dependencies between ideas
2. Splitting Rules
Split into SEPARATE requests when:
- UI change AND database change (different domains)
- Unrelated features mentioned together
- No execution dependency between items
Keep as SINGLE request when:
- Sequential dependency exists (B requires A)
- Tightly coupled changes (model + its tests)
- User explicitly groups them
3. Handle Ambiguity
If input is ambiguous:
- Ask ONE clarification question
- Then proceed with best interpretation
- Do not over-clarify
4. Write Request Files
For each request:
- Generate filename:
YYYYMMDD-HHMMSS-slug.md - Write to
do-work/requests/ - Confirm to user what was captured
Directory Setup
If directories don't exist, create them:
do-work/ ├── requests/ # Pending work ├── in-progress/ # Currently executing ├── archive/ # Completed └── errors/ # Failed
Examples
Example 1: Single Request
User says:
"Add a dark mode toggle to the settings page"
Output:
do-work/requests/20260128-143022-dark-mode-toggle.md
# Request: Add dark mode toggle to settings ## Intent Add a user-facing toggle in the settings page that enables dark mode throughout the application. ## Context - Settings page exists at src/pages/Settings.tsx - No existing theme system - Should persist preference (localStorage acceptable) ## Tasks - Add theme context/state management - Create toggle component in Settings - Apply dark theme styles to existing components - Persist preference across sessions ## Done When - Toggle visible in settings - Clicking toggle switches between light/dark - Preference persists after page reload - All existing pages respect theme
Example 2: Split Requests
User says:
"Add user authentication and also fix that bug where the footer overlaps on mobile"
Output: TWO files
do-work/requests/20260128-143022-user-auth.md:
# Request: Add user authentication ## Intent Implement user login/logout functionality. ## Context - No existing auth system - Backend API exists at /api/* ## Tasks - Add login page - Add auth state management - Protect authenticated routes - Add logout functionality ## Done When - Users can log in with credentials - Protected routes redirect to login - Session persists across page loads - Users can log out
do-work/requests/20260128-143023-footer-mobile-fix.md:
# Request: Fix footer overlap on mobile ## Intent Fix visual bug where footer overlaps content on mobile viewports. ## Context - Bug reported on screens < 768px - Footer component at src/components/Footer.tsx ## Tasks - Identify CSS causing overlap - Fix positioning/spacing - Verify across mobile breakpoints ## Done When - Footer does not overlap content on any mobile size - Desktop layout unchanged
Example 3: Grouped Request (Dependency)
User says:
"Create a User model and then add an API endpoint to fetch users"
Output: SINGLE file (endpoint depends on model)
# Request: Create User model and fetch endpoint ## Intent Add User data model and API endpoint to retrieve users. ## Context - Database: PostgreSQL - ORM: Prisma - API framework: Express ## Tasks - Define User model in Prisma schema - Run migration - Create GET /api/users endpoint - Add basic error handling ## Done When - User table exists in database - GET /api/users returns list of users - Empty list returned when no users exist
Output Format
After capturing, respond:
Captured X request(s): 1. do-work/requests/20260128-143022-dark-mode-toggle.md Intent: Add dark mode toggle to settings 2. do-work/requests/20260128-143023-footer-fix.md Intent: Fix footer overlap on mobile Run `/work-loop` to begin processing.
Integration
This skill works with:
- Processes the request queue/work-loop
- Shows overall project status/thunderdome
Typical workflow:
- Capture what needs to be done/capture-request
- Execute the work/work-loop
- Verify and close session/thunderdome debrief