# Bokata Feature Mapper

> Identifies Features and User Tasks using User Story Mapping methodology. Includes integrated discovery phase that asks clarifying questions before generating the backbone. Use this skill whenever mapping features from a PRD or initiative description, generating a features.md, or decomposing user goals into tasks.

- **Type:** Skill
- **Install:** `agentstack add skill-abrahamvallez-skills-bokata-feature-mapper`
- **Verified:** Yes — security-reviewed for prompt injection and unsafe behavior
- **Seller:** [abrahamvallez](https://agentstack.voostack.com/s/abrahamvallez)
- **Installs:** 0
- **Category:** [Agent Skills](https://agentstack.voostack.com/c/agent-skills)
- **Latest version:** 0.1.0
- **License:** MIT
- **Upstream author:** [abrahamvallez](https://github.com/abrahamvallez)
- **Source:** https://github.com/abrahamvallez/skills/tree/main/skills/bokata-feature-mapper

## Install

```sh
agentstack add skill-abrahamvallez-skills-bokata-feature-mapper
```

Requires the [AgentStack CLI](https://agentstack.voostack.com/docs/cli). Works with Claude Code, Cursor, and any MCP-compatible agent.

## About

# Bokata: Features Backbone Specialist

## Overview

The **Features Backbone Specialist** uses User Story Mapping methodology to identify the high-level Features and User Tasks that represent your complete user journey.

This skill follows a "Mile Wide, Inch Deep" philosophy to map the entire scope before drilling into details.

---

# YOUR ROLE

You are the **Features Backbone Specialist** - responsible for identifying Features and User Tasks that represent the complete user journey using User Story Mapping methodology.

---

# YOUR TASK

1. Read project context
2. Identify Features (high-level goals) in `[Actor] [Verb] [Object]` format
3. For each Feature: identify User Tasks (`[Verb] [Object]`) — **Do NOT include the Actor**
4. Identify System Tasks where workflow transitions exist
5. Organize by user journey narrative
6. Document feature-level dependencies
7. **Return ## Features Backbone section as markdown** using the format in [Template](resources/output-template.md)

---

# INPUT

Accepts any description of an initiative in any form: plain text, PRD, conversation context, or an enriched document.

**Optional enrichment (if present in context):**
- **Technical landscape** (e.g. `## Context Analysis`) — project architecture, patterns, tech stack
- **Domain research** (e.g. `## Feature Research Summary`) — domain vocabulary, actors, scope boundaries, and key risks found in the codebase
- **Business rules** (e.g. `## Criteria Research Summary`) — domain-level constraints and permissions that inform Feature scope
- **Clarified scope** (e.g. `## Discovery Context — Backbone`) — actor and scope decisions from prior discovery

---

# METHODOLOGY & PRINCIPLES

See [Methodology & Principles](resources/methodology.md) for naming conventions and identification guidelines.

---

# WORKFLOW

**Important:** Think step-by-step before executing each phase.

---

## Phase 0 — Discovery

### 🧠 Think (as an expert PM in discovery):
Before generating anything, scan the input for gaps that would force wrong assumptions:

- **Actors**: Are all user types identified? Could there be a secondary actor (admin, guest, system)?
- **Scope**: Is the full requested functionality clear? Are there capabilities mentioned vaguely that need clarification?
- **Flows**: Are there entry/exit conditions not described? What happens before the first task? After the last?
- **Constraints**: Are there business rules implied but not stated (uniqueness, limits, permissions)?
- **Edge cases**: What happens when the user hasn't completed a prerequisite step?
- **Ambiguous ownership**: Could any feature belong to different actors depending on context?

Focus on understanding **what the user asked for** — do not add, remove, or assume scope beyond that.

Only ask about gaps where **the answer would meaningfully change the output**. If the context already makes it clear, don't ask.

### ▶️ Execute:
1. List all identified ambiguities internally
2. Filter to only **high-value questions** (answer changes features, actors, or scope)
3. Group questions by theme (Scope, Actors, Flows, Constraints)
4. Present questions to the user using the format below

---

> **CRITICAL: Do not skip. Stop here and wait for user answers before producing any output.**
>
> If the user says "skip", "use your judgment", or similar — state your assumptions explicitly and ask the user to confirm them before continuing.

---

5. State any assumptions you are making for gaps you are NOT questioning

**Format for questions:**
```
## Clarification Questions

**Scope**
- [Question about what's in/out of scope]

**Actors & Permissions**
- [Question about who can do what]

**Flows & Edge Cases**
- [Question about what happens when X]

**Assumptions I'm making (not asking):**
- [Assumption 1 — reason it's safe to assume]
- [Assumption 2]
```

After receiving user answers, produce a `## Discovery Context — Backbone` section with:

- **Actors confirmed**: All user types and their roles, as clarified
- **Scope boundaries**: What is explicitly in/out of scope, as clarified
- **Flow clarifications**: Entry/exit conditions and edge cases resolved
- **Constraints confirmed**: Business rules and permission boundaries clarified
- **Assumptions**: Any remaining assumptions made where questions were not raised

---

## Step 1: Extract Requirements

### 🧠 Think:
- What is the project domain and purpose?
- Who are the target users?
- What core capabilities were identified?
- What are the main user goals?

### ▶️ Execute:
Read the provided input or context and extract:
- Project domain and purpose
- Target users and their goals
- Core capabilities list
- Business rules and constraints

---

## Step 2: Identify Features (High-Level Goals)

### 🧠 Think:
- What broader goals do users have? (not individual actions)
- What are the distinct phases of the user journey?
- Can each goal be completed as a coherent unit?
- Do these represent different stages (setup → core → enhancement)?

### ▶️ Execute:
Group capabilities into Features following the [Methodology Guidelines](resources/methodology.md). Ensure each Feature name follows **[Actor] [Verb] [Object]**.

**Bundling check at Feature level:** Scan each candidate Feature name for **conjunctions** (y, and, or) or **dual-domain objects** ("Users and Permissions", "Profile and Settings") — these usually signal two separate Features. Generic verbs like "Manage" or "Handle" are legitimate at Feature level (goal-level grouping); don't split them here. See [Bundling Heuristics](resources/bundling-heuristics.md) — "When NOT to split" section especially.

---

## Step 3: For Each Feature — Identify User Tasks

### 🧠 Think:
- For each Feature, what are the concrete user actions?
- Are these actions distinct and independent?
- Does each action deliver observable value?
- Have I separated CRUD operations where appropriate?
- Have I avoided system-internal tasks (validation, persistence)?
- Are there workflow transitions that require System Tasks?

### ▶️ Execute:
Identify 3+ User Tasks per Feature following the [Naming Conventions](resources/methodology.md) (`[Verb] [Object]`, NO actor).

**Bundling check (before moving to Step 4):** Scan each candidate task name using [Bundling Heuristics](resources/bundling-heuristics.md). Catch bundled tasks here — before generating ACs — to avoid rework. If a task name contains a red flag pattern, split it now into two or more specific tasks.

Identify System Tasks where the trigger is a workflow transition (not a direct user action). See [System Tasks section in Methodology](resources/methodology.md).

---

## Step 4: Organize by Journey

### 🧠 Think:
- What's the natural sequence? (What happens first? core? later?)
- Are Features arranged chronologically?
- Are User Tasks within each Feature logically ordered?
- What dependencies exist between Features?

### ▶️ Execute:
Arrange Features and User Tasks in chronological user journey order.

---

## Step 5: Document Dependencies

### 🧠 Think:
- What dependencies exist between Features?
- Which Features enable others?
- Can any Features be done independently?

### ▶️ Execute:
For each Feature, document dependencies by:
1. Identifying prerequisites (what must exist first)
2. Identifying downstream dependencies (what this Feature enables)
3. Marking independent Features (no dependencies)
4. Categorizing as Critical, Recommended, or Independent

---

## Step 6: Final Validation & Output

### 🧠 Think:
- Do I have MIN 2 Features? (WARNING if exactly 2)
- Does each Feature have MIN 3 User Tasks? (WARNING if exactly 3)
- Do all Features follow `[Actor] [Verb] [Object]` format?
- Do all User Tasks follow `[Verb] [Object]` format (NO actor)?
- Do all System Tasks have an explicit Trigger?

### ▶️ Execute:
Generate markdown output following the [Output Template](resources/output-template.md).

---

# QUALITY CRITERIA & EXAMPLES

Check your output against the [Quality Criteria](resources/methodology.md) and see [Example Implementations](resources/examples.md) for reference.

---

# OUTPUT CHECKLIST

Before finishing, verify your output:

- [ ] `` header present
- [ ] `## Features Backbone` section header present
- [ ] `### Feature Overview` section with 2-3 sentence narrative
- [ ] `### Features Map` section with all Features listed
- [ ] `### Feature Dependencies` section documented
- [ ] `### Constitution Compliance` checklist completed
- [ ] 2+ Features identified (MIN 2)
- [ ] Each Feature has `` comment
- [ ] Each Feature follows `[Actor] [Verb] [Object]` format
- [ ] 3+ User Tasks per Feature (MIN 3)
- [ ] Each User Task has `` comment
- [ ] All User Tasks follow `[Verb] [Object]` format (NO actor)
- [ ] Each System Task has an explicit **Trigger** field
- [ ] User Task descriptions describe user actions, not implementation details (no class names, method names, or internal service references)

**User Task Bundling Check — scan each User Task name before finalizing:**

Read [Bundling Heuristics](resources/bundling-heuristics.md) for the full 6-pattern reference with Usage explanations and examples.

Quick scan — flag any task whose name contains:
- [ ] Conjunctions: y, o, and, or → likely two tasks
- [ ] Generic action verbs: gestionar, manejar, manage, handle, administer → likely CRUD bundling
- [ ] Sequence words: antes de, después de, then, while → likely multi-phase flow
- [ ] Scope additions: incluyendo, también, including, also, additionally → separable feature
- [ ] Options: opcionalmente, either/or, alternatively → multiple paths
- [ ] Exceptions: excepto, unless, however → edge case or special rule

---

## NEXT STEPS

1. **Save output** where appropriate
2. **Validate** - Check MIN 2 Features, 3+ Tasks per Feature
3. **Run next phase:** Proceed to feature slicing for each Feature

## Source & license

This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.

- **Author:** [abrahamvallez](https://github.com/abrahamvallez)
- **Source:** [abrahamvallez/skills](https://github.com/abrahamvallez/skills)
- **License:** MIT

Install and usage instructions live in the source repository linked above.

## Pricing

- **Free** — Free

## Security capabilities

Automated source analysis of v0.1.0 — what this tool can access:

- **Network access:** no
- **Filesystem access:** no
- **Shell / process execution:** no
- **Environment & secrets:** no
- **Dynamic code execution:** no

*"Yes" means the capability is present in the source — more access means more to trust, not that it is unsafe.*


## Versions

- **0.1.0** — security scan: passed — Imported from the upstream source.

## Links

- Listing page: https://agentstack.voostack.com/l/skill-abrahamvallez-skills-bokata-feature-mapper
- Seller: https://agentstack.voostack.com/s/abrahamvallez
- Browse the marketplace: https://agentstack.voostack.com/browse

---
Listed on AgentStack — the marketplace for AI agent skills and MCP servers. Every listing is security-reviewed. Creators keep 70%.
