Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Entry point for ALL work requests - triages scope from trivial to massive, asks clarifying questions, and routes to appropriate planning skills. Use this when receiving any new work request.
.claude/skills/nicepkg-work-intake/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-10 | ✗→✓ | ▲ Improved | 230% | 0% |
| case-11 | ✗→✓ | ▲ Improved | 319% | 0% |
| case-12 | ✗→✓ | ▲ Improved | 231% | 0% |
| case-13 | ✗→✓ | ▲ Improved | 291% | 0% |
| case-14 | ✗→✓ | ▲ Improved | 79% | 0% |
Every work request flows through intake. This skill determines scope, gathers requirements, and routes to the appropriate workflow.
Core principle: No work is too small to track, no work is too large to decompose.
Announce at start: "I'm using work-intake to understand and scope this request before beginning."
┌─────────────────────────────────────────────────────────────────────┐
│ REQUEST RECEIVED │
└─────────────────────────────┬───────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────────────────┐
│ STEP 0: PROJECT BOARD READINESS (GATE) │
│ Is GITHUB_PROJECT_NUM set? │
│ Is project board accessible? │
│ Are required fields configured? │
└─────────────────────────────┬───────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────────────────┐
│ CLARIFYING QUESTIONS │
│ What is the user trying to achieve? │
│ What does success look like? │
│ What constraints exist? │
└─────────────────────────────┬───────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────────────────┐
│ SCOPE ASSESSMENT │
│ How much investigation is needed? │
│ How many deliverables? │
│ How many unknowns? │
└─────────────────────────────┬───────────────────────────────────────┘
│
┌───────────────┼───────────────┬───────────────┐
▼ ▼ ▼ ▼
┌────────┐ ┌──────────┐ ┌──────────┐ ┌──────────┐
│TRIVIAL │ │ SMALL │ │ LARGE │ │ MASSIVE │
│ │ │ │ │ │ │ │
│1 issue │ │1-3 issues│ │1 epic │ │Initiative│
│no unkn.│ │few unkn. │ │research │ │multi-epic│
└───┬────┘ └────┬─────┘ └────┬─────┘ └────┬─────┘
│ │ │ │
▼ ▼ ▼ ▼
issue-prerequisite issue-prerequisite epic-management initiative-
+ project-board- + decomposition + research spikes architecture
enforcement + project-board- + project-board- + project-board-
enforcement enforcement enforcementBefore any work intake, verify project board infrastructure is ready.
This is a gate. Do not proceed to clarifying questions until this passes.
bash# Derive defaults from GITHUB_PROJECT if provided if [ -z "$GITHUB_PROJECT_NUM" ] && [ -n "$GITHUB_PROJECT" ]; then NUM_CANDIDATE=$(echo "$GITHUB_PROJECT" | sed -E 's#.*/projects/([0-9]+).*#\1#') if [ -n "$NUM_CANDIDATE" ] && [ "$NUM_CANDIDATE" != "$GITHUB_PROJECT" ]; then export GITHUB_PROJECT_NUM="$NUM_CANDIDATE" echo "Derived GITHUB_PROJECT_NUM=$GITHUB_PROJECT_NUM from GITHUB_PROJECT" fi fi if [ -z "$GH_PROJECT_OWNER" ] && [ -n "$GITHUB_OWNER" ]; then export GH_PROJECT_OWNER="$GITHUB_OWNER" echo "Derived GH_PROJECT_OWNER=$GH_PROJECT_OWNER from GITHUB_OWNER" fi if [ -z "$GH_PROJECT_OWNER" ] && [ -n "$GITHUB_PROJECT" ]; then OWNER_CANDIDATE=$(echo "$GITHUB_PROJECT" | sed -E 's#https://github.com/(orgs|users)/([^/]+)/projects/[0-9]+#\2#') if [ -n "$OWNER_CANDIDATE" ] && [ "$OWNER_CANDIDATE" != "$GITHUB_PROJECT" ]; then export GH_PROJECT_OWNER="$OWNER_CANDIDATE" echo "Derived GH_PROJECT_OWNER=$GH_PROJECT_OWNER from GITHUB_PROJECT" fi fi if [ -z "$GH_PROJECT_OWNER" ]; then REMOTE_URL=$(git remote get-url origin 2>/dev/null || true) OWNER_CANDIDATE=$(echo "$REMOTE_URL" | sed -E 's#(git@|https://)github.com[:/]+([^/]+)/[^/]+(\.git)?#\2#') if [ -n "$OWNER_CANDIDATE" ] && [ "$OWNER_CANDIDATE" != "$REMOTE_URL" ]; then export GH_PROJECT_OWNER="$OWNER_CANDIDATE" echo "Derived GH_PROJECT_OWNER=$GH_PROJECT_OWNER from git remote" fi fi # Verify environment variables are set if [ -z "$GITHUB_PROJECT_NUM" ]; then echo "BLOCKED: GITHUB_PROJECT_NUM not set" echo "Set with: export GITHUB_PROJECT_NUM=<number>" exit 1 fi if [ -z "$GH_PROJECT_OWNER" ]; then echo "BLOCKED: GH_PROJECT_OWNER not set" echo "Set with: export GH_PROJECT_OWNER=@me # or org name" exit 1 fi # Verify project is accessible if ! gh project view "$GITHUB_PROJECT_NUM" --owner "$GH_PROJECT_OWNER" --format json > /dev/null 2>&1; then echo "BLOCKED: Cannot access project $GITHUB_PROJECT_NUM" echo "Verify project exists and you have access" exit 1 fi # Verify required fields exist FIELDS=$(gh project field-list "$GITHUB_PROJECT_NUM" --owner "$GH_PROJECT_OWNER" --format json | jq -r '.fields[].name') for required in "Status" "Priority"; do if ! echo "$FIELDS" | grep -q "^$required$"; then echo "WARNING: Required field '$required' not found in project" echo "Consider adding this field for full tracking support" fi done if ! echo "$FIELDS" | grep -q "^Type$" && ! echo "$FIELDS" | grep -q "^Issue Type$"; then echo "WARNING: Required field 'Type' (or 'Issue Type') not found in project" echo "Consider adding this field for full tracking support" fi echo "Project board ready: $GITHUB_PROJECT_NUM"
If gate fails:
Skill: project-board-enforcement
Before scoping, understand the request.
Do not ask questions that can be answered from the repo. First inspect:
README.md, FEATURES.md, BRANDING.md, docs/, Storybook, and existing routes/pagesOnly ask the user for information that is still missing after reviewing the repo.
| Question | Purpose | |----------|---------| | "What are you trying to achieve?" | Understand the goal, not just the task | | "What does success look like?" | Define acceptance criteria | | "Who/what is affected?" | Identify scope of impact | | "Are there constraints I should know about?" | Time, tech, compatibility | | "Is this part of something larger?" | Link to existing initiatives |
| Question | Reveals | |----------|---------| | "Can you walk me through how this would be used?" | User journey, edge cases | | "What exists today?" | Starting point, migration needs | | "What have you already tried?" | Failed approaches, constraints | | "Is there prior art or examples?" | Design direction |
Evaluate the request against these criteria:
| Factor | Trivial | Small | Large | Massive | |--------|---------|-------|-------|---------| | Unknowns | None | Few, answerable | Many, need research | Extensive, need spikes | | Deliverables | 1 thing | 2-5 things | 6-20 things | 20+ things | | Code areas | 1-2 files | 3-10 files | 10+ files | Multiple systems | | Dependencies | None | Internal only | External services | New infrastructure | | Duration | < 1 session | 1-3 sessions | 1-2 weeks | Weeks to months | | Criteria | 1-2 | 3-5 | 6-15 | 15+ |
IF unknowns == none AND deliverables <= 2:
→ TRIVIAL: Use issue-prerequisite directly
IF unknowns == few AND deliverables <= 5:
→ SMALL: Use issue-prerequisite, maybe issue-decomposition
IF unknowns == many OR deliverables > 5:
→ LARGE: Use epic-management with research spikes
IF unknowns == extensive OR deliverables > 20 OR new_infrastructure:
→ MASSIVE: Use initiative-architecturemarkdown**Assessment:** This is a trivial request (single deliverable, no unknowns). **Next step:** Creating a single issue using `issue-prerequisite`.
Route to: issue-prerequisite
markdown**Assessment:** This is a small request (few deliverables, minimal unknowns). **Plan:** 1. Create parent issue for the request 2. If needed, decompose into 2-3 sub-issues 3. Begin implementation **Next step:** Creating issue structure using `issue-prerequisite`.
Route to: issue-prerequisite → maybe issue-decomposition
markdown**Assessment:** This is a large request requiring structured planning. **Unknowns identified:** - [ ] Unknown 1 - needs investigation - [ ] Unknown 2 - needs research spike **High-level deliverables:** 1. Deliverable A 2. Deliverable B ... **Next step:** Creating epic structure using `epic-management`.
Route to: epic-management (which will create research spikes as needed)
markdown**Assessment:** This is a massive request requiring full initiative architecture. **Why massive:** - [Reason: extensive unknowns / new infrastructure / multi-system / etc.] **Initial unknowns:** - [ ] Does X exist? - [ ] How does Y work? - [ ] What are constraints of Z? **Potential scope:** - Multiple epics likely - New capabilities needed - Significant research required **Next step:** Beginning initiative architecture using `initiative-architecture`.
Route to: initiative-architecture
Before routing, document the intake in memory:
bash# Store intake assessment mcp__memory__create_entities([{ "name": "Intake-[DATE]-[SHORT_DESC]", "entityType": "WorkIntake", "observations": [ "Request: [Original request]", "Scope: [Trivial/Small/Large/Massive]", "Unknowns: [List]", "Route: [Target skill]", "Status: [Routing/In Progress/Complete]" ] }])
Request: "Make the login page button a little lighter."
Intake:
→ Route to issue-prerequisite
Request: "Add dark mode to the application."
Intake:
→ Route to epic-management
Request: "Add the ability for users to log in by clicking on a popup in their phone."
Intake:
→ Route to initiative-architecture
Watch for these phrases that suggest the request is larger than it appears:
| Phrase | Likely Scope | |--------|--------------| | "Just add..." + new capability | Large (new capability = infrastructure) | | "Users should be able to..." | Large (user-facing = full stack) | | "Integrate with..." | Large (external = API, auth, error handling) | | "Like other product]..." | Massive (feature parity = extensive) | | "Mobile/app/notification" | Massive (unless app exists) | | "Real-time/sync/live" | Large (infrastructure) |
No matter how massive the request:
The path from "massive request" to "implementation" is:
Massive Request
→ Initiative Architecture (document unknowns, create research spikes)
→ Research Spikes (answer unknowns)
→ Epic Structure (group deliverables)
→ Issue Decomposition (create tractable tasks)
→ Implementation (one issue at a time)Skill: project-board-enforcement
Gate: Cannot proceed to any downstream skill without project board readiness verified.
| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-01 | fail→fail | 19,742 | 14,539 | -26% | 1 | 1 | 0% | 3,142 | 5,718 | +82% | 0 | 0 | — |
case-02 | fail→fail | 6,965 | 7,316 | +5% | 1 | 1 | 0% | 1,089 | 4,369 | +301% | 0 | 0 | — |
case-03 | fail→fail | 27,535 | 9,219 | -67% | 1 | 1 | 0% | 4,526 | 4,578 | +1% | 0 | 0 | — |
case-04 | fail→fail | 6,811 | 7,259 | +7% | 1 | 1 | 0% | 1,016 | 4,304 | +324% | 0 | 0 | — |
case-05 | pass→fail | 4,975 | 7,879 | +58% | 1 | 1 | 0% | 758 | 4,402 | +481% | 0 | 0 | — |
case-06 | fail→fail | 3,659 | 7,647 | +109% | 1 | 1 | 0% | 630 | 4,377 | +595% | 0 | 0 | — |
case-07 | fail→fail | 7,103 | 11,632 | +64% | 1 | 1 | 0% | 1,204 | 4,999 | +315% | 0 | 0 | — |
case-08 | fail→fail | 10,782 | 10,779 | -0% | 1 | 1 | 0% | 1,856 | 4,847 | +161% | 0 | 0 | — |
case-09 | pass→pass | 7,046 | 4,535 | -36% | 1 | 1 | 0% | 1,079 | 4,349 | +303% | 0 | 0 | — |
case-10 | fail→pass | 8,991 | 3,897 | -57% | 1 | 1 | 0% | 1,267 | 4,179 | +230% | 0 | 0 | — |
case-11 | fail→pass | 6,591 | 3,831 | -42% | 1 | 1 | 0% | 985 | 4,126 | +319% | 0 | 0 | — |
case-12 | fail→pass | 9,060 | 5,305 | -41% | 1 | 1 | 0% | 1,300 | 4,302 | +231% | 0 | 0 | — |
case-13 | fail→pass | 8,181 | 8,246 | +1% | 1 | 1 | 0% | 1,222 | 4,772 | +291% | 0 | 0 | — |
case-14 | fail→pass | 18,365 | 9,236 | -50% | 1 | 1 | 0% | 2,757 | 4,939 | +79% | 0 | 0 | — |
case-15 | fail→pass | 5,897 | 2,847 | -52% | 1 | 1 | 0% | 958 | 3,933 | +311% | 0 | 0 | — |
case-16 | pass→pass | 11,461 | 2,533 | -78% | 1 | 1 | 0% | 1,915 | 3,872 | +102% | 0 | 0 | — |
case-17 | pass→pass | 7,818 | 4,604 | -41% | 1 | 1 | 0% | 1,244 | 4,264 | +243% | 0 | 0 | — |
case-18 | fail→pass | 6,211 | 5,551 | -11% | 1 | 1 | 0% | 880 | 4,357 | +395% | 0 | 0 | — |
case-19 | pass→pass | 10,896 | 8,771 | -20% | 1 | 1 | 0% | 1,619 | 4,750 | +193% | 0 | 0 | — |
case-20 | pass→pass | 11,534 | 4,895 | -58% | 1 | 1 | 0% | 1,630 | 4,228 | +159% | 0 | 0 | — |
case-21 | pass→pass | 14,502 | 6,725 | -54% | 1 | 1 | 0% | 2,116 | 4,592 | +117% | 0 | 0 | — |
case-22 | pass→pass | 4,132 | 4,398 | +6% | 1 | 1 | 0% | 530 | 4,248 | +702% | 0 | 0 | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 22 cases were attempted. The headline lift of +27 percentage points is the difference between those two pass rates over the 22 comparable cases. 2 cases got worse with the skill loaded, and they are included in that figure.
Without the skill loaded, the model failed this case. With it loaded, the same prompt on the same model passed. This is one improved case from the latest verified run; every case, including any that regressed, is in the table above.
Other measured skills in the registry, with their headline benchmark lift.