con un clic
start
Start feature with branch and session tracking
Instalar con Codex o Claude Copia este prompt, pégalo en Codex, Claude u otro asistente, y deja que revise la página de la skill y la instale por ti.
Menú
Start feature with branch and session tracking
Instalar con Codex o Claude Copia este prompt, pégalo en Codex, Claude u otro asistente, y deja que revise la página de la skill y la instale por ti.
Basado en la clasificación ocupacional SOC
Finish feature with tests, commit, and session closure
Interactive wizard to configure the project
System-wide code audit with 8 modules
Environment-aware deployment with pre/post checks
Methodical codebase exploration and understanding
Bug fix workflow with 3-hypothesis debugging protocol
| name | start |
| description | Start feature with branch and session tracking |
| argument-hint | <feature-name> |
| allowed-tools | Bash(git:*), Read, Write, Edit, Glob, Grep, mcp__context7__resolve-library-id, mcp__context7__query-docs |
Read .claude/project.config.json to get project configuration.
Variables to use:
{branchPrefix} = config.git.branchPrefixes.feature (default: feature/){fixPrefix} = config.git.branchPrefixes.fix (default: fix/){mainBranch} = config.git.mainBranch (default: main){devBranch} = config.git.devBranch (default: "" → use mainBranch){baseBranch} = devBranch if set, otherwise mainBranch{syncTypes} = config.commands.syncTypes (default: ""){externalSkills} = config.quality.externalSkills (default: []){staleThreshold} = config.workflow.staleSessionThreshold (default: 24 hours){parallelEnabled} = config.parallel.enabled (default: true){sharedBranchEnabled} = config.parallel.sharedBranch.enabled (default: true){sharedBranchDirectory} = config.parallel.sharedBranch.directory (default: context/.parallel){atomicCommits} = config.parallel.sharedBranch.atomicCommits (default: true)Validation: If config.initialized === false, suggest running /setup first.
Verify required directories exist; create any that are missing:
Required:
- context/
- context/tmp/
- context/archive/
- context/auditorias/
- context/consolidated/
- .claude/plan/
- .claude/plan/completados/
For each: check existence, create if missing with mkdir -p.
Report: "Context structure verified" or "Created missing directories: {list}"
Read context/ROADMAP.md and try to auto-detect which module $ARGUMENTS belongs to:
$ARGUMENTS in ROADMAP module names and descriptions!git status --short
!git branch --show-current
IMPORTANT: If there are uncommitted changes, STOP and ask the user.
Invoke context-provider agent in quick mode:
context/README.md (active sessions)context/BACKLOG.md (pending items)context/ROADMAP.md (if exists - module progress)context/FIXES.md (if exists - pending fixes).claude/MEMORY.md (if exists - lessons learned)context/tmp/session-*.mdgit log --oneline -5Present a brief snapshot to the user before proceeding.
If context-provider reports active sessions, check for stale ones:
For each active session in context/tmp/session-*.md:
{staleThreshold} (default: 24h): flag as "STALE"For each stale session, ask user:
"Session {ID} has been active for {N}h without activity. Options: (a) Close it (mark COMPLETED with note 'closed as stale') (b) Keep it (it's still active work) (c) Pause it (mark PAUSED)"
Apply user's choice before proceeding.
Read context/BACKLOG.md to verify if "$ARGUMENTS" is in the pending list.
If $ARGUMENTS starts with "fix-" or branch prefix is {fixPrefix}:
context/FIXES.mdRead context/ROADMAP.md if it exists:
If ROADMAP doesn't exist, skip silently.
Before creating a new feature, verify it hasn't been implemented already:
Grep: {feature-related keywords} in src/
Glob: src/**/*{feature-name-parts}*
MANDATORY: Use Glob + Grep BEFORE creating branch. Never assume something doesn't exist.
If potential matches found, report to user:
3.1. Detect active sessions:
grep -rl "Status.*IN_PROGRESS" context/tmp/session-*.md 2>/dev/null | wc -l
3.2. Decide work mode:
| Active sessions | Action |
|---|---|
| 0 | Normal mode: create feature branch from {baseBranch} |
| ≥1 | Ask user if they want to work in parallel |
3.3a. Normal mode (0 active sessions):
git checkout {baseBranch}
git pull origin {baseBranch} 2>/dev/null || true
git checkout -b {branchPrefix}$ARGUMENTS
Branch format: {branchPrefix}descriptive-name (kebab-case)
3.3b. Parallel mode (≥1 active session, user accepts):
Get info from the active session:
# Get active sessions and their branches
grep -rl "Status.*IN_PROGRESS" context/tmp/session-*.md 2>/dev/null
# Read branch from each active session
grep "Branch" context/tmp/session-XXX.md
Inform user and ask:
"Active session detected: session-XXX ({name}) on branch
{branch}. Work in parallel on a shared branch?"
If user accepts — rename branch to reflect both features:
a. Determine combined name:
{feature-A} (from current branch or active session){feature-B} (from $ARGUMENTS){branchPrefix}{feature-A}--{feature-B}b. If active session is on a feature branch (common case):
# Rename existing branch to combined name
git branch -m {branchPrefix}{feature-A}--{feature-B}
IMPORTANT: Renaming a branch affects BOTH terminals (shared directory). User MUST inform Terminal 1 that the branch was renamed.
c. If on {baseBranch} (previous session worked directly on base):
# Create shared branch from base
git checkout -b {branchPrefix}{feature-A}--{feature-B}
Create coordination directory:
mkdir -p {sharedBranchDirectory} # default: context/.parallel
Register BOTH sessions in state.json:
{
"branch": "{branchPrefix}{feature-A}--{feature-B}",
"sessions": {
"session-XXX": {
"feature": "{existing-session-feature-name}",
"domain": ["{directory-existing-session-touches}"],
"status": "active",
"start": "{date-read-from-session-XXX.md, ISO format}"
},
"session-YYY": {
"feature": "{new-feature-name}",
"domain": ["{directory-new-session-touches}"],
"status": "active",
"start": "{current-date-ISO}"
}
}
}
session-XXX.md (name, feature, estimated domain by objective)state.json already exists (2+ sessions), only add the new one to the sessions objectstate.json is gitignored (lives in {sharedBranchDirectory}), NOT committedWrite initial message in channel.md:
### [HH:MM] session-YYY → all
Parallel mode activated. Branch renamed to `{branchPrefix}{A}--{B}`.
My domain: {directory}. Commits with scope: `feat({scope})`.
Read full channel.md to get context from the other session.
Inform user:
"Parallel mode activated. Branch:
{branchPrefix}{A}--{B}." "Atomic commits:git commit <files> -m "feat({scope}): ..."" "Communication channel:{sharedBranchDirectory}/channel.md" "Remember: Inform Terminal 1 that the branch was renamed."
3.3c. User declines parallel:
Create normal feature branch (as 3.3a). Warn:
"The other session is on branch
{branch}. Switching branches from that terminal will affect this directory."
Based on the feature type, suggest relevant agents:
| Feature Type | Relevant Agents |
|---|---|
| New API endpoint | feature-architect, test-engineer, api-documenter |
| Frontend component | frontend-integrator, test-engineer |
| Database changes | db-analyst, test-engineer |
| Full-stack feature | feature-architect, frontend-integrator, db-analyst, test-engineer |
| Bug fix | code-explorer, test-engineer |
| Refactoring | code-explorer, code-reviewer, test-engineer |
| Documentation | api-documenter, context-provider |
Present suggested agents to user as informational (not mandatory).
If this is a new feature (not a fix or refactor), invoke feature-architect:
If user approves, create the proposed structure.
If {parallelEnabled} is true:
./scripts/context-lock.sh acquire "{session-id}" "/start"
/start or /finish: retry up to 3 times every 5 secondsGenerate session ID: YYYYMMDD-HHMM-$ARGUMENTS
Create session file in context/tmp/session-{ID}.md:
# Session: {ID}
- **Branch**: {branchPrefix}$ARGUMENTS
- **Start**: {date and time}
- **Status**: IN_PROGRESS
- **ROADMAP Module**: {module name} ({current %}%) | N/A
## Objective
[Description based on BACKLOG or $ARGUMENTS]
## BACKLOG Items Addressed
| Item | Status | Notes |
|------|--------|-------|
| **[scope]** description | [ ] Pending | From BACKLOG |
## Initial Context
- Base branch: {baseBranch}
- ROADMAP module: {module name} ({current %}%) (if applicable)
- Relevant files: [to be determined]
## Quality Skills
- External skills to consult: {externalSkills list or "none configured"}
## Progress
<!-- Update during development -->
## Decisions
<!-- Document important technical decisions -->
## Session Pending Items
<!-- Items that arise during work -->
Read config.quality.externalSkills from project config:
["accessibility-checker", "performance-audit"] are configured, note bothAdd entry to "Active Sessions" table in context/README.md:
| {ID} | {branchPrefix}$ARGUMENTS | IN_PROGRESS | {date} | {description} |
If lock was acquired in step 3.9:
./scripts/context-lock.sh release
CRITICAL: Lock MUST be released after context writes are done, even if errors occur.
Present to user (informational, not blocking):
## Pre-Implementation Checklist
- [ ] Feature objective is clear
- [ ] BACKLOG item identified (or explicitly skipped)
- [ ] No duplicate implementation detected
- [ ] Architecture structure approved (if new feature)
- [ ] Relevant agents identified
- [ ] Quality skills identified (if configured)
- [ ] Session created and tracking active
If config.commands.syncTypes is defined and non-empty:
{syncTypes}
This ensures type definitions are up-to-date before starting development.
Detect main technologies from config.project.stack and package.json (if exists):
Tools: mcp__context7__resolve-library-id → mcp__context7__query-docs
Skip silently if Context7 is not available or stack is not configured.
context/tmp/| Problem | Recovery |
|---|---|
| Branch already exists | git checkout {branch} to resume, or git branch -D {branch} to restart |
| Session file already exists | Check if session is stale (>{staleThreshold}h), resume or close and recreate |
| Uncommitted changes block checkout | Stash: git stash, proceed, then git stash pop |
| BACKLOG inconsistent | Run context-provider to reconcile, or manually fix entries |
| Config not initialized | Run /setup first |
| FIXES.md not found | Create from template (copy structure from plan) |
| Context directories missing | Step 0.1 handles this automatically |
| Context lock held by another operation | Wait for lock timeout ({lockTimeoutSeconds}s) or retry |
| Lock script not found | Skip lock (parallel protection unavailable) |
| state.json already exists | Read it, add new session to existing sessions object |
| Branch rename fails | Fall back to creating a new feature branch (warn about parallel conflicts) |
| Other session editing same files | Verify domain in state.json before editing, ask user if overlap |
Confirm:
{branchPrefix}$ARGUMENTSsession-{ID}.md.claude/project.config.json