user-request-gate
Use immediately when the user requests any implementation, code change, feature addition, fix, or modification. Gates code writing behind a backlog draft document. Read-only exploration is always permitted.
Best use case
user-request-gate is best used when you need a repeatable AI agent workflow instead of a one-off prompt.
Use immediately when the user requests any implementation, code change, feature addition, fix, or modification. Gates code writing behind a backlog draft document. Read-only exploration is always permitted.
Teams using user-request-gate should expect a more consistent output, faster repeated execution, less prompt rewriting.
When to use this skill
- You want a reusable workflow that can be run more than once with consistent structure.
When not to use this skill
- You only need a quick one-off answer and do not need a reusable workflow.
- You cannot install or maintain the underlying files, dependencies, or repository context.
Installation
Claude Code / Cursor / Codex
Manual Installation
- Download SKILL.md from GitHub
- Place it in
.claude/skills/user-request-gate/SKILL.mdinside your project - Restart your AI agent — it will auto-discover the skill
How user-request-gate Compares
| Feature / Agent | user-request-gate | Standard Approach |
|---|---|---|
| Platform Support | Not specified | Limited / Varies |
| Context Awareness | High | Baseline |
| Installation Complexity | Unknown | N/A |
Frequently Asked Questions
What does this skill do?
Use immediately when the user requests any implementation, code change, feature addition, fix, or modification. Gates code writing behind a backlog draft document. Read-only exploration is always permitted.
Where can I find the source code?
You can find the source code on GitHub using the link provided at the top of the page.
SKILL.md Source
## Rule Anchor
- "User Request Implementation Gate" in `.agents/rules/spec-workflow.md`
- "HARD GATE: No Immediate Implementation" in `.agents/rules/spec-workflow.md`
## When to Use
Invoke this skill for **every** user message that requests:
- Implementing a new feature or behavior
- Fixing a bug or error
- Modifying existing code
- Adding or removing functionality
- Refactoring code structure
- Creating a new file (source code)
Do NOT invoke for: read-only explorations, spec/doc writing requests, settings changes, git operations alone.
## Phase 1: Read-Only Exploration (always allowed immediately)
Before any code writing, explore freely:
- Read source files (`Read`, `grep`, `rg`, `find`)
- Run read-only Bash commands (`git log`, `git diff`, `cat`, `ls`)
- Ask clarifying questions
**Hard stop**: Do not call `Write` or `Edit` on `.ts`/`.tsx`/`.js`/`.mjs` files until Phase 3.
## Phase 2: Create Backlog Draft (mandatory before any code change)
1. Choose the spec-doc type from the prefix taxonomy:
- `BEHAVIOR` — system-internal logic, state transitions
- `API` — HTTP/WebSocket/MCP interface changes
- `DATA` — schema, type contract, data model
- `RULE` — business logic, validation, constraints
- `SCREEN` — UI/visual output changes
- `FLOW` — multi-step interaction sequences
- `INFRA` — build, deploy, CI/CD
- Others: `PERF`, `SECURITY`, `OBSERVABILITY`, `AGREEMENT`
2. Find the next number for the chosen prefix:
```bash
ls .agents/spec-docs/draft/ .agents/spec-docs/backlog/ .agents/spec-docs/todo/ \
.agents/spec-docs/active/ .agents/spec-docs/done/ 2>/dev/null \
| grep "^<TYPE>-" | sort | tail -1
```
3. Create `.agents/spec-docs/draft/<TYPE>-NNN-<kebab-slug>.md` using [`backlog-writer`](../backlog-writer/SKILL.md).
Required frontmatter:
```yaml
---
status: draft
type: <TYPE>
tags: [<env>, <protocol>]
---
```
## Phase 3: Gate Pipeline (run before implementing)
After the draft is written:
1. Run `backlog-pipeline` skill to advance through gates:
- GATE-WRITE: validates spec document completeness
- GATE-APPROVAL: requires explicit user sign-off
2. Only after GATE-APPROVAL passes, proceed to implementation.
## Phase 4: Implement
After GATE-APPROVAL:
1. Follow [`spec-first-development`](../spec-first-development/SKILL.md)
2. Update the governing `packages/<name>/docs/SPEC.md` (if package behavior changes)
3. Follow [`tdd-red-green-refactor`](../tdd-red-green-refactor/SKILL.md)
4. Follow [`repo-change-loop`](../repo-change-loop/SKILL.md)
## Waiver Protocol
If the user explicitly says "skip spec", "just fix it", "no spec needed", or similar:
1. Acknowledge the waiver in your response:
> "Proceeding without spec gate per user waiver."
2. Still update the governing `packages/<name>/docs/SPEC.md` if behavior changes.
3. Note the waiver in the PR description.
## Automated Enforcement
`.claude/hooks/spec-first-gate.sh` (UserPromptSubmit hook) automatically injects this reminder
when implementation-intent keywords are detected. The hook does not block — it injects context.
This skill is the procedural companion to that reminder.
## Orchestrated Skills
| Skill | Role |
| ------------------------ | -------------------------------------------- |
| `backlog-writer` | Author the spec draft document |
| `backlog-pipeline` | Gate pipeline orchestrator |
| `backlog-gate-guard` | Validate individual gates |
| `spec-first-development` | Update package SPEC.md before implementation |
| `tdd-red-green-refactor` | Implementation cycle |
| `repo-change-loop` | Build and verify after implementation |Related Skills
backlog-gate-guard
Validates a single named gate for a spec document and appends the result to the Evidence Log. Invoked as a subagent by backlog-pipeline. Does exactly one thing — check one gate and record the outcome.
web-design-guidelines
Review UI code for Web Interface Guidelines compliance. Use when asked to "review my UI", "check accessibility", "audit design", "review UX", or "check my site against best practices".
vitest-testing-strategy
Defines a practical testing strategy for TypeScript and JavaScript using Vitest across unit, integration, and type-level tests. Use when adding features, refactoring, or preventing regressions with fast feedback loops.
version-management
All packages must have the same version. Use changesets for coordinated version bumps. Never version packages independently.
vercel-react-native-skills
React Native and Expo best practices for building performant mobile apps. Use when building React Native components, optimizing list performance, implementing animations, or working with native modules. Triggers on tasks involving React Native, Expo, mobile performance, or native platform APIs.
vercel-react-best-practices
React and Next.js performance optimization guidelines from Vercel Engineering. This skill should be used when writing, reviewing, or refactoring React/Next.js code to ensure optimal performance patterns. Triggers on tasks involving React components, Next.js pages, data fetching, bundle optimization, or performance improvements.
vercel-composition-patterns
React composition patterns that scale. Use when refactoring components with boolean prop proliferation, building flexible component libraries, or designing reusable APIs. Triggers on tasks involving compound components, render props, context providers, or component architecture. Includes React 19 API changes.
type-boundary-and-ssot
Applies Robota's preferred workflow for trust-boundary validation, strict typing, quality gates, and owner-based SSOT reuse. Use when adding or reviewing type contracts, boundary parsing, shared contract ownership, or running quality checks.
tdd-red-green-refactor
Kent Beck's TDD workflow. Use when writing new code or modifying existing behavior. Enforces the Red-Green-Refactor cycle with small, verifiable steps.
task-tracking
Track work using task files in .agents/tasks/. Use when starting, progressing, or completing a task to maintain a persistent record of work.
tailwind-truncation
Provide Tailwind truncation patterns for single-line and multi-line text. Use when discussing text ellipsis, truncation, or line-clamp usage.
state-machine-design
Designs finite state machines as pure, declarative transition tables with guards and actions. Use when modeling lifecycle states, status flows, or any system with discrete states and controlled transitions.