Initial commit
This commit is contained in:
509
skills/ln-113-tasks-docs-creator/SKILL.md
Normal file
509
skills/ln-113-tasks-docs-creator/SKILL.md
Normal file
@@ -0,0 +1,509 @@
|
||||
---
|
||||
name: ln-113-tasks-docs-creator
|
||||
description: Creates task management documentation (docs/tasks/README.md + kanban_board.md). Third worker in ln-110-documents-pipeline. Sets up Linear integration and task tracking rules.
|
||||
---
|
||||
|
||||
# Tasks Documentation Creator
|
||||
|
||||
This skill creates task management documentation: docs/tasks/README.md (task management system rules) and docs/tasks/kanban_board.md (Linear integration with Epic Story Counters).
|
||||
|
||||
## When to Use This Skill
|
||||
|
||||
**This skill is a WORKER** invoked by **ln-110-documents-pipeline** orchestrator OR used standalone.
|
||||
|
||||
Use this skill when:
|
||||
- Creating task management documentation (docs/tasks/)
|
||||
- Setting up Linear integration and kanban board
|
||||
- Validating existing task documentation structure and content
|
||||
- Configuring Linear team settings (Team Name, UUID, Key)
|
||||
|
||||
**Part of workflow**: ln-110-documents-pipeline → ln-111-root-docs-creator → ln-112-reference-docs-creator → **ln-113-tasks-docs-creator** → ln-114-project-docs-creator → ln-115-presentation-creator
|
||||
|
||||
## How It Works
|
||||
|
||||
The skill follows a **3-phase workflow**: CREATE → VALIDATE STRUCTURE → VALIDATE CONTENT.
|
||||
|
||||
**Phase 1: CREATE** - Create tasks/README.md from template with SCOPE tags, workflow rules, Linear integration
|
||||
**Phase 2: VALIDATE STRUCTURE** - Auto-fix structural violations (SCOPE tags, sections, Maintenance, POSIX)
|
||||
**Phase 3: VALIDATE CONTENT** - Validate semantic content + special Linear Configuration handling (placeholder detection, UUID/Team Key validation, interactive user prompts)
|
||||
|
||||
---
|
||||
|
||||
## Phase 1: Create tasks/README.md
|
||||
|
||||
**Objective**: Create task management system documentation from template.
|
||||
|
||||
**When to execute**: Always (first phase)
|
||||
|
||||
**Process**:
|
||||
|
||||
1. **Check if tasks/README.md exists**:
|
||||
- Use Glob tool: `pattern: "docs/tasks/README.md"`
|
||||
- If file exists:
|
||||
- Skip creation
|
||||
- Log: `✓ docs/tasks/README.md already exists (preserved)`
|
||||
- Proceed to Phase 2
|
||||
- If NOT exists:
|
||||
- Continue to step 2
|
||||
|
||||
2. **Create tasks directory**:
|
||||
- Create the `docs/tasks/` directory if it doesn't exist
|
||||
|
||||
3. **Create tasks/README.md from template**:
|
||||
- Copy template: `references/tasks_readme_template.md` (v2.0.0) → `docs/tasks/README.md`
|
||||
- Replace placeholders:
|
||||
- `{{DATE}}` → current date (YYYY-MM-DD)
|
||||
- Template contains:
|
||||
- SCOPE tags: `<!-- SCOPE: Task tracking system workflow and rules ONLY -->`
|
||||
- Story-Level Test Task Pattern
|
||||
- Kanban Board Structure (Epic Grouping Pattern)
|
||||
- Linear Integration (MCP methods)
|
||||
- Maintenance section
|
||||
|
||||
4. **Notify user**:
|
||||
- If created: `✓ Created docs/tasks/README.md with task management rules`
|
||||
- If skipped: `✓ docs/tasks/README.md already exists (preserved)`
|
||||
|
||||
**Output**: docs/tasks/README.md (created or existing)
|
||||
|
||||
---
|
||||
|
||||
## Phase 2: Validate Structure
|
||||
|
||||
**Objective**: Ensure tasks/README.md and kanban_board.md comply with structural requirements. Auto-fix violations.
|
||||
|
||||
**When to execute**: After Phase 1 completes (files exist or created)
|
||||
|
||||
**Process**:
|
||||
|
||||
### 2.1 Validate SCOPE tags
|
||||
|
||||
**Files to check**: docs/tasks/README.md, docs/tasks/kanban_board.md (if exists)
|
||||
|
||||
For each file:
|
||||
1. Read first 5 lines
|
||||
2. Check for `<!-- SCOPE: ... -->` tag
|
||||
3. Expected values:
|
||||
- tasks/README.md: `<!-- SCOPE: Task tracking system workflow and rules ONLY -->`
|
||||
- kanban_board.md: `<!-- SCOPE: Quick navigation to active tasks in Linear -->`
|
||||
4. **If missing:**
|
||||
- Use Edit tool to add SCOPE tag after first heading
|
||||
- Log: `⚠ Auto-fixed: Added missing SCOPE tag to {filename}`
|
||||
|
||||
### 2.2 Validate required sections
|
||||
|
||||
**Load validation spec**:
|
||||
- Read `references/questions.md`
|
||||
- Extract section names from questions
|
||||
|
||||
**For tasks/README.md**:
|
||||
- Required sections (from questions.md):
|
||||
- "Linear Integration" OR "Core Concepts" (Linear MCP methods)
|
||||
- "Task Workflow" OR "Critical Rules" (state transitions)
|
||||
- "Task Templates" (template references)
|
||||
- For each section:
|
||||
- Check if section header exists (case-insensitive)
|
||||
- **If missing:**
|
||||
- Use Edit tool to add section with placeholder content
|
||||
- Log: `⚠ Auto-fixed: Added missing section '{section}' to tasks/README.md`
|
||||
|
||||
**For kanban_board.md** (if exists):
|
||||
- Required sections:
|
||||
- "Linear Configuration" (Team Name, UUID, Key)
|
||||
- "Work in Progress" OR "Epic Tracking" (Kanban sections)
|
||||
- For each section:
|
||||
- Check if section header exists
|
||||
- **If missing:**
|
||||
- Use Edit tool to add section with placeholder
|
||||
- Log: `⚠ Auto-fixed: Added missing section '{section}' to kanban_board.md`
|
||||
|
||||
### 2.3 Validate Maintenance section
|
||||
|
||||
**Files to check**: docs/tasks/README.md, docs/tasks/kanban_board.md (if exists)
|
||||
|
||||
For each file:
|
||||
1. Search for `## Maintenance` header in last 20 lines
|
||||
2. **If missing:**
|
||||
- Use Edit tool to add at end of file:
|
||||
```markdown
|
||||
## Maintenance
|
||||
|
||||
**Update Triggers:**
|
||||
- When Linear workflow changes
|
||||
- When task templates are added/modified
|
||||
- When label taxonomy changes
|
||||
|
||||
**Last Updated:** {current_date}
|
||||
```
|
||||
- Log: `⚠ Auto-fixed: Added Maintenance section to {filename}`
|
||||
|
||||
### 2.4 Validate POSIX line endings
|
||||
|
||||
**Files to check**: docs/tasks/README.md, docs/tasks/kanban_board.md (if exists)
|
||||
|
||||
For each file:
|
||||
1. Check if file ends with single newline character
|
||||
2. **If missing:**
|
||||
- Use Edit tool to add final newline
|
||||
- Log: `⚠ Auto-fixed: Added POSIX newline to {filename}`
|
||||
|
||||
### 2.5 Report validation summary
|
||||
|
||||
Log summary:
|
||||
```
|
||||
✓ Structure validation completed:
|
||||
tasks/README.md:
|
||||
- SCOPE tag: [added/present]
|
||||
- Required sections: [count] sections [added/present]
|
||||
- Maintenance section: [added/present]
|
||||
- POSIX endings: [fixed/compliant]
|
||||
kanban_board.md:
|
||||
- SCOPE tag: [added/present/skipped - file not exists]
|
||||
- Required sections: [count] sections [added/present/skipped]
|
||||
- Maintenance section: [added/present/skipped]
|
||||
- POSIX endings: [fixed/compliant/skipped]
|
||||
```
|
||||
|
||||
If violations found: `⚠ Auto-fixed {total} structural violations`
|
||||
|
||||
**Output**: Structurally valid task management documentation
|
||||
|
||||
---
|
||||
|
||||
## Phase 3: Validate Content
|
||||
|
||||
**Objective**: Ensure each section answers its validation questions with meaningful content. Special handling for Linear Configuration (placeholder detection, user prompts, UUID/Team Key validation).
|
||||
|
||||
**When to execute**: After Phase 2 completes (structure valid, auto-fixes applied)
|
||||
|
||||
**Process**:
|
||||
|
||||
### 3.1 Load validation spec
|
||||
|
||||
1. Read `references/questions.md`
|
||||
2. Parse document sections and questions
|
||||
3. Extract validation heuristics for each section
|
||||
|
||||
### 3.2 Validate kanban_board.md → Linear Configuration (Special Handling)
|
||||
|
||||
**Question**: "What is the Linear team configuration?"
|
||||
|
||||
**Step 3.2.1: Check if kanban_board.md exists**:
|
||||
- Use Glob tool: `pattern: "docs/tasks/kanban_board.md"`
|
||||
- If NOT exists:
|
||||
- Log: `ℹ kanban_board.md not found - skipping Linear Configuration validation`
|
||||
- Skip to Step 3.3
|
||||
- If exists:
|
||||
- Continue to Step 3.2.2
|
||||
|
||||
**Step 3.2.2: Read Linear Configuration section**:
|
||||
- Read `docs/tasks/kanban_board.md`
|
||||
- Locate `## Linear Configuration` section
|
||||
- Extract Team Name, Team UUID, Team Key values
|
||||
|
||||
**Step 3.2.3: Placeholder Detection**:
|
||||
|
||||
Check for placeholders:
|
||||
```
|
||||
Pattern: [TEAM_NAME], [TEAM_UUID], [TEAM_KEY]
|
||||
If ANY placeholder present → Interactive Setup Mode
|
||||
If NO placeholders present → Validation Mode
|
||||
```
|
||||
|
||||
**Interactive Setup Mode** (if placeholders detected):
|
||||
|
||||
1. **Prompt user for Team Name**:
|
||||
- Question: "What is your Linear Team Name?"
|
||||
- Validation: Non-empty string
|
||||
- Example: "My Project Team"
|
||||
|
||||
2. **Prompt user for Team UUID**:
|
||||
- Question: "What is your Linear Team UUID?"
|
||||
- Format: `xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx`
|
||||
- Validation Regex: `/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/`
|
||||
- **If invalid:**
|
||||
- Show error: "Invalid UUID format. Expected: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx (lowercase hex)"
|
||||
- Re-prompt user
|
||||
- Example: "a1b2c3d4-e5f6-7890-abcd-ef1234567890"
|
||||
|
||||
3. **Prompt user for Team Key**:
|
||||
- Question: "What is your Linear Team Key (2-4 uppercase letters)?"
|
||||
- Format: 2-4 uppercase letters
|
||||
- Validation Regex: `/^[A-Z]{2,4}$/`
|
||||
- **If invalid:**
|
||||
- Show error: "Invalid Team Key format. Expected: 2-4 uppercase letters (e.g., PROJ, WEB, API)"
|
||||
- Re-prompt user
|
||||
- Example: "PROJ"
|
||||
|
||||
4. **Replace placeholders**:
|
||||
- Use Edit tool to replace in kanban_board.md:
|
||||
- `[TEAM_NAME]` → `{user_team_name}`
|
||||
- `[TEAM_UUID]` → `{user_team_uuid}`
|
||||
- `[TEAM_KEY]` → `{user_team_key}`
|
||||
- `[WORKSPACE_URL]` → `https://linear.app/{workspace_slug}` (if placeholder exists)
|
||||
|
||||
5. **Set initial counters** (if table exists):
|
||||
- Set "Next Epic Number" → 1
|
||||
- Set "Next Story Number" → 1
|
||||
|
||||
6. **Update Last Updated date**:
|
||||
- Replace `[YYYY-MM-DD]` → `{current_date}` in Maintenance section
|
||||
|
||||
7. **Save updated kanban_board.md**
|
||||
|
||||
8. **Log success**:
|
||||
```
|
||||
✓ Linear configuration updated:
|
||||
- Team Name: {user_team_name}
|
||||
- Team UUID: {user_team_uuid}
|
||||
- Team Key: {user_team_key}
|
||||
- Next Epic Number: 1
|
||||
- Next Story Number: 1
|
||||
```
|
||||
|
||||
**Validation Mode** (if real values present, no placeholders):
|
||||
|
||||
1. **Extract existing values**:
|
||||
- Extract Team UUID from line matching: `Team UUID: {value}` or in table
|
||||
- Extract Team Key from line matching: `Team Key: {value}` or in table
|
||||
|
||||
2. **Validate formats**:
|
||||
- UUID: `/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/`
|
||||
- Team Key: `/^[A-Z]{2,4}$/`
|
||||
|
||||
3. **If validation fails**:
|
||||
```
|
||||
⚠ Invalid format detected in Linear Configuration:
|
||||
- Team UUID: {uuid} (expected: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx)
|
||||
- Team Key: {key} (expected: 2-4 uppercase letters)
|
||||
|
||||
Fix manually or re-run skill to replace with correct values.
|
||||
```
|
||||
- Mark as invalid but continue (don't block)
|
||||
|
||||
4. **If validation passes**:
|
||||
```
|
||||
✓ Linear Configuration valid (Team: {name}, UUID: {uuid}, Key: {key})
|
||||
```
|
||||
|
||||
### 3.3 Validate tasks/README.md sections
|
||||
|
||||
**Parametric loop for 3 questions** (from questions.md):
|
||||
|
||||
For each question in:
|
||||
1. "How is Linear integrated into the task management system?"
|
||||
2. "What are the task state transitions and review criteria?"
|
||||
3. "What task templates are available and how to use them?"
|
||||
|
||||
**Validation process**:
|
||||
1. Extract validation heuristics from questions.md
|
||||
2. Read corresponding section content from tasks/README.md
|
||||
3. Check if **ANY** heuristic passes:
|
||||
- Contains keyword X → pass
|
||||
- Has pattern Y → pass
|
||||
- Length > N words → pass
|
||||
4. If ANY passes → Section valid
|
||||
5. If NONE passes → Log warning: `⚠ Section may be incomplete: {section_name}`
|
||||
|
||||
**Example validation (Question 1: Linear Integration)**:
|
||||
```
|
||||
Heuristics:
|
||||
- Contains "Linear" or "MCP" → pass
|
||||
- Mentions team ID or UUID → pass
|
||||
- Has workflow states (Backlog, Todo, In Progress) → pass
|
||||
- Length > 100 words → pass
|
||||
|
||||
Check content:
|
||||
- ✓ Contains "Linear" → PASS
|
||||
→ Section valid
|
||||
```
|
||||
|
||||
**No auto-discovery needed** (workflow is standardized in template)
|
||||
|
||||
### 3.4 Validate kanban_board.md → Epic Tracking
|
||||
|
||||
**Question**: "Are Epics being tracked in the board?"
|
||||
|
||||
**If kanban_board.md exists**:
|
||||
|
||||
**Validation heuristics**:
|
||||
```
|
||||
- Has "Epic" or "Epics Overview" section header → pass
|
||||
- Has table with columns: Epic, Name, Status, Progress → pass
|
||||
- OR has placeholder: "No active epics" → pass
|
||||
- Length > 20 words → pass
|
||||
```
|
||||
|
||||
**Action**:
|
||||
1. Read Epic Tracking or Epics Overview section
|
||||
2. Check if ANY heuristic passes
|
||||
3. If passes → valid
|
||||
4. If none pass → log warning: `⚠ Epic Tracking section may be incomplete`
|
||||
|
||||
**If kanban_board.md does NOT exist**:
|
||||
- Skip validation
|
||||
- Log: `ℹ Epic Tracking validation skipped (kanban_board.md not found)`
|
||||
|
||||
### 3.5 Report content validation summary
|
||||
|
||||
Log summary:
|
||||
```
|
||||
✓ Content validation completed:
|
||||
tasks/README.md:
|
||||
- ✓ Linear Integration: valid (contains "Linear", "MCP", workflow states)
|
||||
- ✓ Task Workflow: valid (contains state transitions)
|
||||
- ✓ Task Templates: valid (contains template references)
|
||||
kanban_board.md:
|
||||
- ✓ Linear Configuration: {status} (Team: {name}, UUID: {uuid}, Key: {key})
|
||||
- ✓ Epic Tracking: valid (table present or placeholder)
|
||||
```
|
||||
|
||||
**Output**: Validated and potentially updated task management documentation with Linear configuration
|
||||
|
||||
---
|
||||
|
||||
## Complete Output Structure
|
||||
|
||||
```
|
||||
docs/
|
||||
└── tasks/
|
||||
├── README.md # Task management system rules
|
||||
└── kanban_board.md # Linear integration (optional, created manually or by other skills)
|
||||
```
|
||||
|
||||
**Note**: Kanban board updated by ln-311-task-creator, ln-312-task-replanner, ln-330-story-executor (Epic Grouping logic).
|
||||
|
||||
---
|
||||
|
||||
## Reference Files Used
|
||||
|
||||
### Templates
|
||||
|
||||
**Tasks README Template**:
|
||||
- `references/tasks_readme_template.md` (v2.0.0) - Task management system rules with:
|
||||
- SCOPE tags (task management ONLY)
|
||||
- Story-Level Test Task Pattern (tests in final Story task, NOT scattered)
|
||||
- Kanban Board Structure (Epic Grouping Pattern with Status → Epic → Story → Tasks hierarchy)
|
||||
- Linear Integration (MCP methods: create_project, create_issue, update_issue, list_issues)
|
||||
- Maintenance section (Update Triggers, Verification, Last Updated)
|
||||
|
||||
**Kanban Board Template**:
|
||||
- `references/kanban_board_template.md` (v3.0.0) - Linear integration template with:
|
||||
- Linear Configuration table (Team Name, UUID, Key, Workspace URL)
|
||||
- Epic Story Counters table (Next Epic Number, Story counters per Epic)
|
||||
- Kanban sections: Backlog, Todo (✅ APPROVED), In Progress, To Review, To Rework, Done (Last 5 tasks), Postponed
|
||||
- Epic Grouping Pattern format (Epic header → 📖 Story → Task with indentation)
|
||||
- Placeholders for Epic/Story/Task entries
|
||||
|
||||
### Validation Specification
|
||||
|
||||
**questions.md**:
|
||||
- `references/questions.md` (v1.0) - Validation questions for task management documentation:
|
||||
- 5 sections (3 for tasks/README.md, 2 for kanban_board.md)
|
||||
- Question format: Question → Expected Content → Validation Heuristics → Auto-Discovery Hints → MCP Ref Hints
|
||||
- Special handling section for Linear Configuration (placeholder detection, UUID/Team Key validation)
|
||||
|
||||
---
|
||||
|
||||
## Best Practices
|
||||
|
||||
- **Story-Level Test Task Pattern**: Tests consolidated in final Story task, NOT scattered across implementation tasks
|
||||
- **Epic Grouping Pattern**: Epic context always visible, 0/2/4 space indentation (Epic → Story → Tasks)
|
||||
- **Linear MCP**: All task operations use Linear MCP methods (create_project, create_issue, update_issue)
|
||||
- **SCOPE Tags**: Include in first 3-5 lines of all documentation files
|
||||
- **Idempotent**: Can be invoked multiple times - checks file existence, preserves existing files, re-validates on each run
|
||||
|
||||
---
|
||||
|
||||
## Prerequisites
|
||||
|
||||
**Orchestrator**: ln-110-documents-pipeline (invokes this worker in Phase 3, Step 3.3)
|
||||
|
||||
**Standalone usage**: Can also be invoked directly for:
|
||||
- Creating only task management documentation
|
||||
- Re-validating existing task documentation
|
||||
- Setting up Linear Configuration interactively
|
||||
|
||||
**Idempotent**: Yes - can be invoked multiple times without side effects. The skill:
|
||||
- Checks file existence before creation (preserves existing files)
|
||||
- Re-validates structure and content on each run
|
||||
- Auto-fixes structural violations (SCOPE tags, sections, Maintenance, POSIX)
|
||||
- Updates Linear Configuration if placeholders detected
|
||||
|
||||
**Dependencies**: None (standalone worker)
|
||||
|
||||
---
|
||||
|
||||
## Definition of Done
|
||||
|
||||
Before completing work, verify ALL checkpoints:
|
||||
|
||||
### Phase 1: CREATE
|
||||
|
||||
**✅ tasks/README.md:**
|
||||
- [ ] `docs/tasks/` directory created (if didn't exist)
|
||||
- [ ] `docs/tasks/README.md` created from template (if didn't exist) OR preserved (if existed)
|
||||
- [ ] All `{{DATE}}` placeholders replaced with current date
|
||||
- [ ] Template contains SCOPE tags, Story-Level Test Task Pattern, Kanban Board Structure, Linear Integration, Maintenance section
|
||||
- [ ] User notified: created OR preserved
|
||||
|
||||
### Phase 2: VALIDATE STRUCTURE
|
||||
|
||||
**✅ tasks/README.md:**
|
||||
- [ ] SCOPE tag present in first 5 lines OR auto-fixed
|
||||
- [ ] Required sections present (Linear Integration/Core Concepts, Task Workflow/Critical Rules, Task Templates) OR auto-fixed
|
||||
- [ ] Maintenance section present at end OR auto-fixed
|
||||
- [ ] POSIX line ending present OR auto-fixed
|
||||
- [ ] Validation summary logged
|
||||
|
||||
**✅ kanban_board.md (if exists):**
|
||||
- [ ] SCOPE tag present OR auto-fixed
|
||||
- [ ] Required sections present (Linear Configuration, Work in Progress/Epic Tracking) OR auto-fixed
|
||||
- [ ] Maintenance section present OR auto-fixed
|
||||
- [ ] POSIX line ending present OR auto-fixed
|
||||
- [ ] Validation summary logged
|
||||
|
||||
### Phase 3: VALIDATE CONTENT
|
||||
|
||||
**✅ tasks/README.md:**
|
||||
- [ ] Linear Integration section validated (contains "Linear" OR "MCP" OR team ID OR workflow states OR length > 100 words)
|
||||
- [ ] Task Workflow section validated (contains workflow states OR review criteria OR length > 60 words)
|
||||
- [ ] Task Templates section validated (contains "template" OR Epic/Story/Task OR links OR length > 40 words)
|
||||
- [ ] Validation summary logged
|
||||
|
||||
**✅ kanban_board.md (if exists):**
|
||||
- [ ] Linear Configuration section validated:
|
||||
- [ ] If placeholders detected ([TEAM_NAME], [TEAM_UUID], [TEAM_KEY]):
|
||||
- [ ] User prompted for Team Name (non-empty validation)
|
||||
- [ ] User prompted for Team UUID (regex validation: `/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/`)
|
||||
- [ ] User prompted for Team Key (regex validation: `/^[A-Z]{2,4}$/`)
|
||||
- [ ] Placeholders replaced with user input
|
||||
- [ ] Next Epic Number set to 1
|
||||
- [ ] Next Story Number set to 1
|
||||
- [ ] Last Updated date updated
|
||||
- [ ] If real values present:
|
||||
- [ ] Team UUID format validated
|
||||
- [ ] Team Key format validated
|
||||
- [ ] Validation result logged (valid OR invalid with warning)
|
||||
- [ ] Epic Tracking section validated (has "Epic" header OR table OR placeholder OR length > 20 words)
|
||||
- [ ] Validation summary logged
|
||||
|
||||
**✅ Overall:**
|
||||
- [ ] Summary message displayed: "✓ Task management documentation validated (3-phase complete)"
|
||||
- [ ] User informed about any auto-fixes applied
|
||||
- [ ] User informed about Linear Configuration status (if applicable)
|
||||
|
||||
**Output:** docs/tasks/README.md + optionally kanban_board.md (validated, auto-fixed where needed, Linear Configuration set up if placeholders found)
|
||||
|
||||
---
|
||||
|
||||
## Technical Details
|
||||
|
||||
**Standards**: Story-Level Test Task Pattern, Epic Grouping Pattern (Status → Epic → Story → Tasks), Linear MCP integration
|
||||
|
||||
**Language**: English only
|
||||
|
||||
---
|
||||
|
||||
**Version:** 7.0.0 (MAJOR: Added Phase 2/3 validation. Merged CREATE+VALIDATE into unified worker. Special Linear Configuration handling with UUID/Team Key validation, user prompts for placeholders. Idempotent.)
|
||||
**Last Updated:** 2025-11-18
|
||||
123
skills/ln-113-tasks-docs-creator/diagram.html
Normal file
123
skills/ln-113-tasks-docs-creator/diagram.html
Normal file
@@ -0,0 +1,123 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>ln-113-tasks-docs-creator - State Diagram</title>
|
||||
<script src="https://cdn.jsdelivr.net/npm/mermaid@10/dist/mermaid.min.js"></script>
|
||||
<link rel="stylesheet" href="../shared/css/diagram.css">
|
||||
</head>
|
||||
<body>
|
||||
<div class="container">
|
||||
<header>
|
||||
<h1>📋 ln-113-tasks-docs-creator</h1>
|
||||
<p class="subtitle">Tasks Documentation Creator - State Diagram</p>
|
||||
</header>
|
||||
|
||||
<div class="info-box">
|
||||
<h3>📋 Workflow Overview</h3>
|
||||
<ul>
|
||||
<li><strong>Purpose:</strong> Create task management documentation (docs/tasks/README.md + kanban_board.md)</li>
|
||||
<li><strong>Worker for:</strong> ln-110-documents-pipeline orchestrator</li>
|
||||
<li><strong>Phases:</strong> 3 phases (Phase 1 CREATE → Phase 2 Structure Validation → Phase 3 Content Validation)</li>
|
||||
<li><strong>Linear Integration:</strong> Special handling for Linear Configuration (UUID/Team Key validation, placeholder detection)</li>
|
||||
<li><strong>Auto-Discovery:</strong> Epic Story Counters for automatic team configuration</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<div class="legend">
|
||||
<div class="legend-item">
|
||||
<div class="legend-color color-action"></div>
|
||||
<span>Creation Action</span>
|
||||
</div>
|
||||
<div class="legend-item">
|
||||
<div class="legend-color color-validation"></div>
|
||||
<span>Validation</span>
|
||||
</div>
|
||||
<div class="legend-item">
|
||||
<div class="legend-color color-decision"></div>
|
||||
<span>Conditional Check</span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="diagram-container">
|
||||
<div class="mermaid">
|
||||
graph TD
|
||||
Start([Start: Tasks Docs Creation]) --> Phase1[Phase 1: CREATE tasks/README.md]
|
||||
|
||||
Phase1 --> CheckExists{README.md<br/>exists?}
|
||||
CheckExists -->|Yes| Preserved[Preserve existing<br/>README.md]
|
||||
CheckExists -->|No| CreateReadme[Create from template<br/>+ replace DATE placeholder]
|
||||
|
||||
Preserved --> Phase2
|
||||
CreateReadme --> Phase2
|
||||
|
||||
Phase2[Phase 2: Structure Validation<br/>Auto-fix SCOPE tags, sections, Maintenance]
|
||||
|
||||
Phase2 --> AutoFix[Auto-fix violations:<br/>SCOPE tags, required sections,<br/>Maintenance, POSIX endings]
|
||||
|
||||
AutoFix --> Phase3[Phase 3: Content Validation<br/>Semantic validation + Linear Configuration]
|
||||
|
||||
Phase3 --> ValidateReadme[Validate tasks/README.md sections:<br/>Linear Integration, Task Workflow, Templates]
|
||||
|
||||
Phase3 --> CheckKanban{kanban_board.md<br/>exists?}
|
||||
CheckKanban -->|No| Summary
|
||||
CheckKanban -->|Yes| LinearConfig[Linear Configuration<br/>Special Handling]
|
||||
|
||||
LinearConfig --> PlaceholderCheck{Has placeholders<br/>[TEAM_NAME/UUID/KEY]?}
|
||||
|
||||
PlaceholderCheck -->|Yes| InteractiveSetup[Interactive Setup Mode<br/>User prompts + validation:<br/>UUID regex, Team Key regex]
|
||||
PlaceholderCheck -->|No| ValidationMode[Validation Mode<br/>Check UUID/Team Key formats]
|
||||
|
||||
InteractiveSetup --> UpdateConfig[Replace placeholders<br/>+ Set Epic/Story counters to 1]
|
||||
ValidationMode --> EpicTracking
|
||||
|
||||
UpdateConfig --> EpicTracking[Validate Epic Tracking section]
|
||||
EpicTracking --> Summary
|
||||
|
||||
ValidateReadme --> Summary[Notify: Task documentation<br/>validated (3-phase complete)]
|
||||
|
||||
Summary --> End([End: ✓ Tasks docs created + validated])
|
||||
|
||||
%% Styling
|
||||
classDef action fill:#C8E6C9,stroke:#388E3C,stroke-width:2px
|
||||
classDef validation fill:#FFF9C4,stroke:#F57C00,stroke-width:2px
|
||||
classDef decision fill:#FFE0B2,stroke:#E64A19,stroke-width:2px
|
||||
|
||||
class Phase1,CreateReadme,Preserved,AutoFix,InteractiveSetup,UpdateConfig,Summary action
|
||||
class Phase2,Phase3,ValidateReadme,LinearConfig,ValidationMode,EpicTracking validation
|
||||
class CheckExists,CheckKanban,PlaceholderCheck decision
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="info-box">
|
||||
<h3>🔑 Key Features</h3>
|
||||
<ul>
|
||||
<li><strong>Third Worker:</strong> Creates task management system after reference docs (ln-110 → ln-111 → ln-112 → ln-113)</li>
|
||||
<li><strong>Story-Level Test Task Pattern:</strong> Documents test consolidation approach (tests in final Story task)</li>
|
||||
<li><strong>Epic Grouping Pattern:</strong> Status → Epic → Story → Tasks hierarchy (0/2/4 space indentation)</li>
|
||||
<li><strong>Linear Configuration:</strong> UUID/Team Key validation with regex, Interactive Setup Mode for placeholders</li>
|
||||
<li><strong>Epic Story Counters:</strong> Auto-discovery integration (Next Epic Number, Story counters per Epic)</li>
|
||||
<li><strong>Idempotent:</strong> Can be invoked multiple times - preserves existing files, re-validates on each run</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<footer>
|
||||
<p>Generated for ln-113-tasks-docs-creator skill | Version 7.0.0</p>
|
||||
<p>Diagram format: Mermaid.js | Last updated: 2025-11-18</p>
|
||||
</footer>
|
||||
</div>
|
||||
|
||||
<script>
|
||||
mermaid.initialize({
|
||||
startOnLoad: true,
|
||||
theme: 'default',
|
||||
flowchart: {
|
||||
useMaxWidth: true,
|
||||
htmlLabels: true,
|
||||
curve: 'basis'
|
||||
}
|
||||
});
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,170 @@
|
||||
# Task Navigation
|
||||
|
||||
> **SCOPE:** Quick navigation to active tasks in Linear. Contains ONLY links and titles per Context Budget Rule. DO NOT add: task descriptions, implementation notes, or workflow rules (→ tasks/README.md).
|
||||
|
||||
> **Last Updated**: [YYYY-MM-DD] (Hierarchical format: Status → Epic → Story → Tasks)
|
||||
|
||||
---
|
||||
|
||||
## Linear Configuration (use MCP Linear)
|
||||
|
||||
**What is Linear:** Issue tracking and project management tool with workspace → initiative → project → issue hierarchy.
|
||||
|
||||
**Our Configuration:**
|
||||
- **Workspace**: [TEAM_NAME] ([WORKSPACE_URL])
|
||||
- **Team**: [TEAM_NAME] (Team Key: [TEAM_KEY])
|
||||
- **Initiative**: [Your Initiative Name]
|
||||
- **Projects**: Each Epic = separate Linear Project
|
||||
- **Issues**: User Stories (label:user-story, parentId=null) + Tasks (parentId=StoryId)
|
||||
|
||||
**Key Features:**
|
||||
- Custom views replicate kanban workflow (Backlog → Active → Review → Done)
|
||||
- Labels for technical categorization (db, api, service, testing)
|
||||
- Issue titles preserve Epic context (EP{N}_{XX}: Task Name)
|
||||
- Single source of truth for all task tracking
|
||||
|
||||
**Detailed Guide:** See [docs/guides/25-linear-task-management.md](../guides/25-linear-task-management.md) for:
|
||||
- Hierarchical structure and best practices
|
||||
- Custom views, labels, and workflow patterns
|
||||
- Team keyboard shortcuts and bulk actions
|
||||
|
||||
**Single Source of Truth for all Linear variables**
|
||||
|
||||
| Variable | Value | Description |
|
||||
|----------|-------|-------------|
|
||||
| **Team ID** | [TEAM_NAME] | Linear team name |
|
||||
| **Team UUID** | [TEAM_UUID] | Team UUID for API calls |
|
||||
| **Team Key** | [TEAM_KEY] | Short key for issues ([TEAM_KEY]-XX) |
|
||||
| **Workspace URL** | [WORKSPACE_URL] | Linear workspace |
|
||||
| **Next Epic Number** | 1 | Next available Epic number |
|
||||
|
||||
## Quick Access
|
||||
|
||||
**Views:**
|
||||
- [Backlog]([WORKSPACE_URL]/team/[TEAM_KEY]/backlog)
|
||||
- [Todo]([WORKSPACE_URL]/team/[TEAM_KEY])
|
||||
- [Active Sprint]([WORKSPACE_URL]/team/[TEAM_KEY]/active)
|
||||
- [All Issues]([WORKSPACE_URL]/team/[TEAM_KEY]/all)
|
||||
|
||||
---
|
||||
|
||||
### Epic Story Counters
|
||||
|
||||
| Epic | Last Story | Next Story | Last Task | Next Task |
|
||||
|------|------------|------------|-----------|-----------|
|
||||
| Epic 0 | - | US001 | - | EP0_01 |
|
||||
| Epic 1+ | - | US001 | - | EP1_01 |
|
||||
|
||||
> [!NOTE]
|
||||
|
||||
> User Story numbering starts at US001 for each new Epic. Task numbering starts at EP{N}_01 where N is the Epic number. [TEAM_KEY]-XX numbers are auto-generated by Linear.
|
||||
|
||||
---
|
||||
|
||||
## Work in Progress
|
||||
|
||||
**Format:** Each status section groups tasks by Epic → Story → Tasks hierarchy. Epic headers (`**Epic N: Title**`) have no indent. Stories have 2-space indent. Tasks have 4-space indent (2 base + 2 for dash).
|
||||
|
||||
**Important:** Stories without tasks are ONLY allowed in Backlog/Postponed statuses with note: `_(tasks not created yet)_`
|
||||
|
||||
### Backlog
|
||||
|
||||
**Epic 0: Common Tasks**
|
||||
|
||||
📖 [[TEAM_KEY]-XX: US001 Example Story Title](https://linear.app/[workspace]/issue/[TEAM_KEY]-XX)
|
||||
_( tasks not created yet)_
|
||||
|
||||
**Epic 1: Example Feature Area**
|
||||
|
||||
📖 [[TEAM_KEY]-XX: US001 Another Example Story](https://linear.app/[workspace]/issue/[TEAM_KEY]-XX)
|
||||
- [[TEAM_KEY]-XX: EP1_01 Example Task](https://linear.app/[workspace]/issue/[TEAM_KEY]-XX)
|
||||
|
||||
### Todo
|
||||
|
||||
**Epic 1: Example Feature Area**
|
||||
|
||||
📖 [[TEAM_KEY]-XX: US002 Approved Story Title](https://linear.app/[workspace]/issue/[TEAM_KEY]-XX) ✅ APPROVED
|
||||
- [[TEAM_KEY]-XX: EP1_02 Ready Task](https://linear.app/[workspace]/issue/[TEAM_KEY]-XX)
|
||||
- [[TEAM_KEY]-XX: EP1_03 Another Ready Task](https://linear.app/[workspace]/issue/[TEAM_KEY]-XX)
|
||||
|
||||
### In Progress
|
||||
|
||||
**Epic 1: Example Feature Area**
|
||||
|
||||
📖 [[TEAM_KEY]-XX: US002 Approved Story Title](https://linear.app/[workspace]/issue/[TEAM_KEY]-XX) ✅ APPROVED
|
||||
- [[TEAM_KEY]-XX: EP1_02 Active Task](https://linear.app/[workspace]/issue/[TEAM_KEY]-XX)
|
||||
|
||||
### To Review
|
||||
|
||||
**Epic 1: Example Feature Area**
|
||||
|
||||
📖 [[TEAM_KEY]-XX: US002 Approved Story Title](https://linear.app/[workspace]/issue/[TEAM_KEY]-XX) ✅ APPROVED
|
||||
- [[TEAM_KEY]-XX: EP1_02 Task Under Review](https://linear.app/[workspace]/issue/[TEAM_KEY]-XX)
|
||||
|
||||
### To Rework
|
||||
|
||||
**Epic 1: Example Feature Area**
|
||||
|
||||
📖 [[TEAM_KEY]-XX: US002 Approved Story Title](https://linear.app/[workspace]/issue/[TEAM_KEY]-XX) ✅ APPROVED
|
||||
- [[TEAM_KEY]-XX: EP1_02 Task Needing Fixes](https://linear.app/[workspace]/issue/[TEAM_KEY]-XX)
|
||||
|
||||
### Done (Last 5 tasks)
|
||||
|
||||
**Epic 0: Common Tasks**
|
||||
|
||||
📖 [[TEAM_KEY]-XX: US001 Completed Story](https://linear.app/[workspace]/issue/[TEAM_KEY]-XX) ✅ DONE
|
||||
- [[TEAM_KEY]-XX: EP0_01 Completed Task 1](https://linear.app/[workspace]/issue/[TEAM_KEY]-XX)
|
||||
- [[TEAM_KEY]-XX: EP0_02 Completed Task 2](https://linear.app/[workspace]/issue/[TEAM_KEY]-XX)
|
||||
|
||||
**Epic 1: Example Feature Area**
|
||||
|
||||
📖 [[TEAM_KEY]-XX: US002 Another Completed Story](https://linear.app/[workspace]/issue/[TEAM_KEY]-XX) ✅ DONE
|
||||
- [[TEAM_KEY]-XX: EP1_01 Completed Task](https://linear.app/[workspace]/issue/[TEAM_KEY]-XX)
|
||||
|
||||
### Postponed
|
||||
|
||||
**Epic 0: Common Tasks**
|
||||
|
||||
📖 [[TEAM_KEY]-XX: US003 Deferred Story](https://linear.app/[workspace]/issue/[TEAM_KEY]-XX)
|
||||
_(tasks not created yet)_
|
||||
|
||||
**Epic 2: Future Feature**
|
||||
|
||||
📖 [[TEAM_KEY]-XX: US001 Postponed Work](https://linear.app/[workspace]/issue/[TEAM_KEY]-XX)
|
||||
- [[TEAM_KEY]-XX: EP2_01 Postponed Task](https://linear.app/[workspace]/issue/[TEAM_KEY]-XX)
|
||||
|
||||
---
|
||||
|
||||
## Epics Overview
|
||||
|
||||
**Active:**
|
||||
_No active epics yet_
|
||||
|
||||
**Completed:**
|
||||
_No completed epics yet_
|
||||
|
||||
---
|
||||
|
||||
## Workflow Reference
|
||||
|
||||
| Status | Purpose |
|
||||
|--------|---------|
|
||||
| **Backlog** | New tasks requiring estimation and approval |
|
||||
| **Postponed** | Deferred tasks for future iterations |
|
||||
| **Todo** | Approved tasks ready for development |
|
||||
| **In Progress** | Active development |
|
||||
| **To Review** | Awaiting code review |
|
||||
| **To Rework** | Needs fixes, returns to In Progress |
|
||||
| **Done** | Completed and approved |
|
||||
|
||||
**Manual Statuses:** Canceled, Duplicate
|
||||
|
||||
---
|
||||
|
||||
## Related Documentation
|
||||
- [tasks/README.md](./README.md) - Task system workflow and rules
|
||||
|
||||
---
|
||||
|
||||
**Template Version:** 3.0.0 (Epic grouping in ALL Work in Progress sections with examples)
|
||||
**Last Updated:** 2025-11-15
|
||||
274
skills/ln-113-tasks-docs-creator/references/questions.md
Normal file
274
skills/ln-113-tasks-docs-creator/references/questions.md
Normal file
@@ -0,0 +1,274 @@
|
||||
# Task Management Documentation Questions
|
||||
|
||||
**Purpose:** Define validation questions for task management system (tasks/README.md, kanban_board.md). Used in CREATE mode (user answers questions) and VALIDATE mode (check document compliance).
|
||||
|
||||
**Format:** Document → Questions (with target sections) → Validation Heuristics → Auto-Discovery → Special Handling
|
||||
|
||||
---
|
||||
|
||||
## Table of Contents
|
||||
|
||||
| Document | Questions | Auto-Discovery | Priority | Line |
|
||||
|----------|-----------|----------------|----------|------|
|
||||
| [tasks/README.md](#tasksreadmemd) | 3 | None | High | L35 |
|
||||
| [kanban_board.md](#kanban_boardmd) | 2 | Placeholder Detection | Critical | L110 |
|
||||
|
||||
**Priority Legend:**
|
||||
- **Critical:** Must answer all questions (Linear Configuration required for workflow)
|
||||
- **High:** Strongly recommended (standard workflow content)
|
||||
|
||||
**Auto-Discovery Legend:**
|
||||
- **None:** No auto-discovery needed (workflow is standardized)
|
||||
- **Placeholder Detection:** Detect and replace placeholders with user input
|
||||
|
||||
---
|
||||
|
||||
<!-- DOCUMENT_START: tasks/README.md -->
|
||||
## tasks/README.md
|
||||
|
||||
**File:** docs/tasks/README.md
|
||||
**Target Sections:** Linear Integration, Task Workflow, Task Templates
|
||||
|
||||
**Rules for this document:**
|
||||
- Must have SCOPE tag in first 10 lines
|
||||
- Must explain Linear MCP integration
|
||||
- Must document state transitions and review criteria
|
||||
- Must list available task templates
|
||||
|
||||
---
|
||||
|
||||
<!-- QUESTION_START: 1 -->
|
||||
### Question 1: How is Linear integrated into the task management system?
|
||||
|
||||
**Expected Answer:** Team ID location, issue statuses (Backlog, Todo, In Progress, To Review, Done), label conventions, Linear MCP methods reference, workflow configuration
|
||||
|
||||
**Target Section:** ## Core Concepts, ## Critical Rules, ## Linear MCP Methods Reference
|
||||
|
||||
**Validation Heuristics:**
|
||||
- ✅ Contains "Linear" or "MCP" → pass
|
||||
- ✅ Mentions team ID or team UUID → pass
|
||||
- ✅ Has workflow states: Backlog, Todo, In Progress, To Review, Done → pass
|
||||
- ✅ Has "Linear MCP Methods" section with examples → pass
|
||||
- ✅ Length > 100 words → pass
|
||||
|
||||
**Auto-Discovery:**
|
||||
- None needed (standardized workflow provided by template)
|
||||
|
||||
**MCP Ref Hints:**
|
||||
- Research "Linear API MCP integration"
|
||||
- Search "Linear issue workflow states"
|
||||
<!-- QUESTION_END: 1 -->
|
||||
|
||||
---
|
||||
|
||||
<!-- QUESTION_START: 2 -->
|
||||
### Question 2: What are the task state transitions and review criteria?
|
||||
|
||||
**Expected Answer:** State transition rules (Backlog → Todo → In Progress → To Review → Done), review criteria, rework process, Epic Grouping Pattern
|
||||
|
||||
**Target Section:** ## Task Workflow, ## Core Concepts
|
||||
|
||||
**Validation Heuristics:**
|
||||
- ✅ Contains "Backlog" or "Todo" or "In Progress" → pass
|
||||
- ✅ Mentions "Review" or "To Review" → pass
|
||||
- ✅ Mentions "Done" or "Completed" → pass
|
||||
- ✅ Has workflow states diagram or table → pass
|
||||
- ✅ Mentions "Epic Grouping" → pass
|
||||
- ✅ Length > 60 words → pass
|
||||
|
||||
**Auto-Discovery:**
|
||||
- None needed (standard workflow states)
|
||||
|
||||
**MCP Ref Hints:**
|
||||
- None needed
|
||||
<!-- QUESTION_END: 2 -->
|
||||
|
||||
---
|
||||
|
||||
<!-- QUESTION_START: 3 -->
|
||||
### Question 3: What task templates are available and how to use them?
|
||||
|
||||
**Expected Answer:** List of templates (Epic, Story, Task, Test Task), usage guidelines, required sections, links to template files
|
||||
|
||||
**Target Section:** ## Task Workflow, ## Critical Rules
|
||||
|
||||
**Validation Heuristics:**
|
||||
- ✅ Contains "template" (case insensitive) → pass
|
||||
- ✅ Mentions "Epic" or "Story" or "Task" → pass
|
||||
- ✅ Has links to template files or references → pass
|
||||
- ✅ Mentions "Story-Level Test Strategy" or testing → pass
|
||||
- ✅ Length > 40 words → pass
|
||||
|
||||
**Auto-Discovery:**
|
||||
- None needed (templates provided by other skills)
|
||||
|
||||
**MCP Ref Hints:**
|
||||
- None needed
|
||||
<!-- QUESTION_END: 3 -->
|
||||
|
||||
---
|
||||
|
||||
**Overall File Validation:**
|
||||
- ✅ Has SCOPE tag in first 10 lines: `<!-- SCOPE: Task tracking system workflow and rules ONLY -->`
|
||||
- ✅ Total length > 200 words (meaningful content)
|
||||
- ✅ Has Maintenance section at end
|
||||
|
||||
<!-- DOCUMENT_END: tasks/README.md -->
|
||||
|
||||
---
|
||||
|
||||
<!-- DOCUMENT_START: kanban_board.md -->
|
||||
## kanban_board.md
|
||||
|
||||
**File:** docs/tasks/kanban_board.md
|
||||
**Target Sections:** Linear Configuration, Work in Progress (Epic Tracking)
|
||||
|
||||
**Rules for this document:**
|
||||
- Must have SCOPE tag in first 10 lines
|
||||
- Must have Linear Configuration section with Team Name, Team UUID, Team Key
|
||||
- Must have Epic tracking table or placeholder
|
||||
- Single Source of Truth for Next Epic/Story Numbers
|
||||
|
||||
---
|
||||
|
||||
<!-- QUESTION_START: 1 -->
|
||||
### Question 1: What is the Linear team configuration?
|
||||
|
||||
**Expected Answer:** Team Name, Team UUID (valid format), Team Key (2-4 uppercase letters), Workspace URL, Next Epic Number (≥1), Next Story Number (≥1)
|
||||
|
||||
**Target Section:** ## Linear Configuration, ## Epic Story Counters
|
||||
|
||||
**Validation Heuristics:**
|
||||
- ✅ Has Team Name (not placeholder `[TEAM_NAME]`) → pass
|
||||
- ✅ Has valid UUID format (xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx) → pass
|
||||
- ✅ Has Team Key (2-4 uppercase letters, e.g., PROJ, WEB, API) → pass
|
||||
- ✅ Has Next Epic Number (integer ≥ 1) → pass
|
||||
- ✅ Has Next Story Number (integer ≥ 1) → pass
|
||||
- ✅ Has Workspace URL or Team ID → pass
|
||||
|
||||
**Auto-Discovery:**
|
||||
- **Placeholder Detection Pattern:**
|
||||
- Check for: `[TEAM_NAME]`, `[TEAM_UUID]`, `[TEAM_KEY]`
|
||||
- If placeholders found → Trigger interactive user prompt (see Special Handling)
|
||||
- If real values present → Validate format only
|
||||
|
||||
**Special Handling (Phase 3 VALIDATE CONTENT):**
|
||||
|
||||
**Placeholder Detection:**
|
||||
```
|
||||
Pattern: [TEAM_NAME], [TEAM_UUID], [TEAM_KEY]
|
||||
If ANY placeholder present → Interactive Setup Mode
|
||||
If NO placeholders → Validation Mode
|
||||
```
|
||||
|
||||
**Interactive Setup Mode (if placeholders detected):**
|
||||
|
||||
1. **Prompt user for Team Name:**
|
||||
- Question: "What is your Linear Team Name?"
|
||||
- Validation: Non-empty string
|
||||
- Example: "My Project Team"
|
||||
|
||||
2. **Prompt user for Team UUID:**
|
||||
- Question: "What is your Linear Team UUID?"
|
||||
- Format: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
|
||||
- Validation Regex: `/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/`
|
||||
- If invalid → Re-prompt with error: "Invalid UUID format. Expected: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx (lowercase hex)"
|
||||
- Example: "a1b2c3d4-e5f6-7890-abcd-ef1234567890"
|
||||
|
||||
3. **Prompt user for Team Key:**
|
||||
- Question: "What is your Linear Team Key (2-4 uppercase letters)?"
|
||||
- Format: 2-4 uppercase letters
|
||||
- Validation Regex: `/^[A-Z]{2,4}$/`
|
||||
- If invalid → Re-prompt with error: "Invalid Team Key format. Expected: 2-4 uppercase letters (e.g., PROJ, WEB, API)"
|
||||
- Example: "PROJ"
|
||||
|
||||
4. **Replace placeholders:**
|
||||
- Replace `[TEAM_NAME]` → `{user_team_name}`
|
||||
- Replace `[TEAM_UUID]` → `{user_team_uuid}`
|
||||
- Replace `[TEAM_KEY]` → `{user_team_key}`
|
||||
- Replace `[WORKSPACE_URL]` → `https://linear.app/{workspace_slug}` (if placeholder exists)
|
||||
|
||||
5. **Set initial counters:**
|
||||
- Set "Next Epic Number" → 1
|
||||
- Set "Next Story Number" → 1
|
||||
|
||||
6. **Update Last Updated date:**
|
||||
- Replace `[YYYY-MM-DD]` → `{current_date}`
|
||||
|
||||
7. **Save updated kanban_board.md**
|
||||
|
||||
8. **Log success:**
|
||||
```
|
||||
✓ Linear configuration updated:
|
||||
- Team Name: {user_team_name}
|
||||
- Team UUID: {user_team_uuid}
|
||||
- Team Key: {user_team_key}
|
||||
- Next Epic Number: 1
|
||||
- Next Story Number: 1
|
||||
```
|
||||
|
||||
**Validation Mode (if real values present):**
|
||||
|
||||
1. **Extract existing values:**
|
||||
- Extract Team UUID from line matching: `Team UUID: {value}`
|
||||
- Extract Team Key from line matching: `Team Key: {value}`
|
||||
|
||||
2. **Validate formats:**
|
||||
- UUID: `/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/`
|
||||
- Team Key: `/^[A-Z]{2,4}$/`
|
||||
|
||||
3. **If validation fails:**
|
||||
```
|
||||
⚠ Invalid format detected in Linear Configuration:
|
||||
- Team UUID: {uuid} (expected: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx)
|
||||
- Team Key: {key} (expected: 2-4 uppercase letters)
|
||||
|
||||
Fix manually or re-run skill to replace with correct values.
|
||||
```
|
||||
|
||||
4. **If validation passes:**
|
||||
```
|
||||
✓ Linear Configuration valid (Team: {name}, UUID: {uuid}, Key: {key})
|
||||
```
|
||||
|
||||
**MCP Ref Hints:**
|
||||
- Research "Linear team UUID format"
|
||||
- Search "Linear workspace configuration"
|
||||
<!-- QUESTION_END: 1 -->
|
||||
|
||||
---
|
||||
|
||||
<!-- QUESTION_START: 2 -->
|
||||
### Question 2: Are Epics being tracked in the board?
|
||||
|
||||
**Expected Answer:** Table with Epic data (Epic ID, Name, Status, Progress) or placeholder ("No active epics")
|
||||
|
||||
**Target Section:** ## Work in Progress (Epics Overview subsection)
|
||||
|
||||
**Validation Heuristics:**
|
||||
- ✅ Has "Epic" or "Epics Overview" section header → pass
|
||||
- ✅ Has table with columns: Epic, Name, Status, Progress (or similar) → pass
|
||||
- ✅ OR has placeholder: "No active epics" or "No epics yet" → pass
|
||||
- ✅ Length > 20 words → pass
|
||||
|
||||
**Auto-Discovery:**
|
||||
- None needed (Epics are populated by workflow skills: ln-210, ln-220, ln-300)
|
||||
|
||||
**MCP Ref Hints:**
|
||||
- None needed
|
||||
<!-- QUESTION_END: 2 -->
|
||||
|
||||
---
|
||||
|
||||
**Overall File Validation:**
|
||||
- ✅ Has SCOPE tag in first 10 lines: `<!-- SCOPE: Quick navigation to active tasks in Linear -->`
|
||||
- ✅ Has Linear Configuration section with valid Team Name, UUID, Key
|
||||
- ✅ Has Epic Story Counters table
|
||||
- ✅ Has Maintenance section at end
|
||||
|
||||
<!-- DOCUMENT_END: kanban_board.md -->
|
||||
|
||||
---
|
||||
|
||||
**Version:** 1.0
|
||||
**Last Updated:** 2025-11-18
|
||||
@@ -0,0 +1,541 @@
|
||||
# Task Tracking System
|
||||
|
||||
> **SCOPE:** Task tracking system workflow and rules ONLY. Contains task lifecycle, naming conventions, and integration rules. DO NOT add: actual task details (→ task files), kanban status (→ kanban_board.md), or implementation guides (→ guides/).
|
||||
|
||||
---
|
||||
|
||||
## Overview
|
||||
|
||||
This folder contains the project's task management system, organizing all development work into trackable units with clear status progression.
|
||||
|
||||
### Folder Structure
|
||||
|
||||
```
|
||||
docs/tasks/
|
||||
├── README.md # This file - Task tracking workflow and rules
|
||||
└── kanban_board.md # Live navigation to active tasks in Linear
|
||||
```
|
||||
|
||||
> [!NOTE]
|
||||
|
||||
> All task tracking (Epics, User Stories, tasks) is handled in Linear. Linear is the single source of truth.
|
||||
|
||||
**Live Navigation**: [Kanban Board](kanban_board.md)
|
||||
|
||||
---
|
||||
|
||||
## Core Concepts
|
||||
|
||||
### Task Lifecycle
|
||||
|
||||
**Workflow:**
|
||||
```
|
||||
Backlog/Postponed → Todo → In Progress → To Review → Done
|
||||
↓
|
||||
To Rework → (back to In Progress)
|
||||
```
|
||||
|
||||
**Statuses:**
|
||||
- **Backlog:** New tasks requiring estimation and approval
|
||||
- **Postponed:** Deferred tasks for future iterations
|
||||
- **Todo:** Approved tasks ready for development
|
||||
- **In Progress:** Currently being developed
|
||||
- **To Review:** Awaiting code review and validation
|
||||
- **To Rework:** Needs fixes after review
|
||||
- **Done:** Completed, reviewed, tested, approved
|
||||
|
||||
**Manual Statuses** (not in workflow): Canceled, Duplicate
|
||||
|
||||
### Epic Structure
|
||||
|
||||
**Organization in Linear:**
|
||||
- **Epic** = Linear Project (contains all User Stories and tasks for epic)
|
||||
- **User Story** = Linear Issue with `label: user-story` and `parentId: null`
|
||||
- **Task** = Linear Issue with `parentId: <UserStoryId>`
|
||||
|
||||
**Epic Fields:** Name, description, start date, target date, project lead
|
||||
**User Story Format:** "As a... I want... So that..." + Given-When-Then acceptance criteria
|
||||
**Task Format:** Context, requirements, acceptance criteria, implementation notes
|
||||
|
||||
### Foundation-First Execution Order
|
||||
|
||||
**Critical Rule**: Foundation tasks are executed BEFORE consumer tasks (for testability).
|
||||
|
||||
**Definitions**:
|
||||
- **Foundation** = Database, Repository, core services
|
||||
- **Consumer** = API endpoints, Frontend components that USE foundation
|
||||
|
||||
**Rationale**: Each layer is testable when built (can't test API without working DB).
|
||||
|
||||
**Example**:
|
||||
```
|
||||
✅ CORRECT EXECUTION ORDER:
|
||||
Task 1: Database schema + Repository (foundation)
|
||||
Task 2: Service layer with business logic
|
||||
Task 3: API endpoint (consumer)
|
||||
Task 4: Frontend dashboard (consumer)
|
||||
|
||||
❌ WRONG (can't test):
|
||||
Task 1: Frontend dashboard calls /api/users
|
||||
Task 2: API endpoint (no DB to test against)
|
||||
```
|
||||
|
||||
> **Note:** Consumer-First is for API/interface DESIGN (think from consumer perspective), Foundation-First is for EXECUTION ORDER (build testable foundation first).
|
||||
|
||||
---
|
||||
|
||||
## Critical Rules
|
||||
|
||||
### Rule 1: Linear Integration (MCP Methods ONLY)
|
||||
|
||||
**CRITICAL**: Use ONLY `mcp__linear-server__*` methods for all Linear operations.
|
||||
|
||||
**PROHIBITED**:
|
||||
- `gh` command (GitHub CLI)
|
||||
- GitHub API calls
|
||||
- Direct Linear API calls
|
||||
- Manual task creation in Linear UI (for automated workflows)
|
||||
|
||||
**Rationale**:
|
||||
- MCP Linear provides type-safe, validated operations
|
||||
- Prevents data inconsistencies
|
||||
- Ensures proper error handling
|
||||
|
||||
**See**: [Linear MCP Methods Reference](#linear-mcp-methods-reference) below
|
||||
|
||||
---
|
||||
|
||||
### Rule 2: Integration Rules
|
||||
|
||||
#### Tests
|
||||
|
||||
**Rule**: Tests are created ONLY in the final Story task (Story Finalizer test task).
|
||||
|
||||
**NEVER** create:
|
||||
- Separate test tasks during implementation
|
||||
- Tests in implementation tasks (implementation tasks focus on feature code only)
|
||||
|
||||
**Process**:
|
||||
1. Implementation tasks (1-6 tasks) → To Review → Done
|
||||
2. ln-340-story-quality-gate Pass 1 → Manual testing
|
||||
3. ln-350-story-test-planner → Creates Story Finalizer test task
|
||||
4. ln-334-test-executor → Implements all tests (E2E, Integration, Unit)
|
||||
|
||||
**Rationale**: Atomic testing strategy, prevents test duplication, ensures comprehensive coverage.
|
||||
|
||||
#### Documentation
|
||||
|
||||
**Rule**: Documentation is ALWAYS integrated in feature tasks (same task as implementation).
|
||||
|
||||
**NEVER** create:
|
||||
- Separate documentation tasks
|
||||
- "Update README" tasks
|
||||
- "Write API docs" tasks
|
||||
|
||||
**Process**: Implementation task includes both code AND documentation updates in Definition of Done.
|
||||
|
||||
**Rationale**: Ensures documentation stays in sync with code, prevents documentation debt.
|
||||
|
||||
---
|
||||
|
||||
### Rule 3: Story-Level Test Strategy
|
||||
|
||||
**Value-Based Testing**: Test only scenarios with Priority ≥15 (calculated by Impact × Likelihood).
|
||||
|
||||
**Test Limits per Story**:
|
||||
|
||||
| Test Type | Min | Max | Purpose |
|
||||
|-----------|-----|-----|---------|
|
||||
| **E2E Tests** | 2 | 5 | End-to-end user workflows (Priority ≥15) |
|
||||
| **Integration Tests** | 3 | 8 | Component interactions, external APIs |
|
||||
| **Unit Tests** | 5 | 15 | Business logic, edge cases |
|
||||
| **Total** | 10 | 28 | Complete Story coverage |
|
||||
|
||||
**Example**:
|
||||
```
|
||||
Story: User Authentication
|
||||
- E2E: 3 tests (login success, login failure, session expiry)
|
||||
- Integration: 5 tests (OAuth flow, token refresh, database session storage, Redis cache, logout)
|
||||
- Unit: 8 tests (password validation, email validation, token generation, permission checks, etc.)
|
||||
Total: 16 tests (within 10-28 range)
|
||||
```
|
||||
|
||||
**Reference**: [Risk-Based Testing Guide](../reference/guides/risk-based-testing-guide.md) for Priority calculation.
|
||||
|
||||
---
|
||||
|
||||
### Rule 4: Context Budget Rule
|
||||
|
||||
- [ ] **CRITICAL: Minimize context pollution in kanban_board.md**
|
||||
|
||||
**Rule:** [kanban_board.md](./kanban_board.md) contains ONLY links and titles - no descriptions, no implementation notes.
|
||||
|
||||
**Board Structure:**
|
||||
|
||||
Single hierarchical view: **Status → Epic → User Story → Tasks**
|
||||
|
||||
**Sections:**
|
||||
1. **Work in Progress** - Hierarchical task tracking (Backlog → Todo → In Progress → To Review → To Rework → Done → Postponed)
|
||||
2. **Epics Overview** - Portfolio-level status (Active + Completed epics)
|
||||
|
||||
**Format Rules:**
|
||||
|
||||
**User Story:**
|
||||
- Format: `📖 [{{TEAM_KEY}}-XX: USYYY Title](link)` + optional `✅ APPROVED`
|
||||
- 2-space indent from Epic
|
||||
- Always shows parent epic context
|
||||
- Can exist without tasks ONLY in Backlog status (with note: `_(tasks not created yet)_`)
|
||||
|
||||
**Task:**
|
||||
- Format: ` - [{{TEAM_KEY}}-XX: EPYY_ZZ Title](link)` (2-space indent + dash)
|
||||
- 4-space total indent (2-space base from Story + 2-space for dash)
|
||||
- Always nested under parent User Story
|
||||
- Cannot exist without parent story
|
||||
|
||||
**Epic Grouping:**
|
||||
- Each status section grouped by: `**Epic N: Epic Name**` (bold header)
|
||||
- Stories listed under epic with 2-space indent
|
||||
- Tasks listed under stories with 4-space indent (2-space base + 2-space for dash)
|
||||
|
||||
**Status-Specific Limits:**
|
||||
- **Backlog:** All stories (tasks optional, use `_(tasks not created yet)_` if none)
|
||||
- **Todo/In Progress/To Review/To Rework:** All stories with all tasks
|
||||
- **Done:** Maximum 5 tasks total across all stories (show most recent)
|
||||
- **Postponed:** All stories with all tasks
|
||||
|
||||
**Rationale:**
|
||||
- Single view eliminates need to "jump" between sections
|
||||
- Natural hierarchy matches mental model: Status → Epic → Story → Task
|
||||
- Story context always visible with its tasks
|
||||
- Reduced cognitive load: one structure, not three
|
||||
- Minimize context size for AI agents
|
||||
- Fast navigation at all levels (status/epic/story/task)
|
||||
|
||||
---
|
||||
|
||||
## Task Workflow
|
||||
|
||||
### Planning Guidelines
|
||||
|
||||
**Optimal Task Size**: 3-5 hours per task
|
||||
|
||||
**Task Granularity**:
|
||||
- Too small (< 2 hours): Merge with related tasks
|
||||
- Too large (> 8 hours): Split into subtasks
|
||||
- Sweet spot (3-5 hours): Maximum productivity, clear acceptance criteria
|
||||
|
||||
**Story Limits**:
|
||||
- Implementation tasks: 1-6 tasks per Story
|
||||
- Test task: 1 Story Finalizer test task (created after implementation)
|
||||
- Total: Max 7 tasks per Story
|
||||
|
||||
### Workflow Skills
|
||||
|
||||
| Category | Skill | Purpose |
|
||||
|----------|-------|---------|
|
||||
| **Planning** | ln-210-epic-coordinator | Decompose scope → 3-7 Epics |
|
||||
| | ln-220-story-coordinator | Decompose Epic → 5-10 Stories (with Phase 3 Library Research) |
|
||||
| | ln-310-story-decomposer | Decompose Story → 1-6 Implementation Tasks |
|
||||
| | ln-350-story-test-planner | Plan Story Finalizer test task (after manual testing) |
|
||||
| **Validation** | ln-320-story-validator | Auto-fix Stories/Tasks → Approve (Backlog → Todo) |
|
||||
| **Execution** | ln-330-story-executor | Orchestrate Story execution (delegates to ln-31/ln-34/ln-32) |
|
||||
| | ln-331-task-executor | Execute implementation tasks (Todo → In Progress → To Review) |
|
||||
| | ln-334-test-executor | Execute Story Finalizer test tasks (11 sections) |
|
||||
| | ln-332-task-reviewer | Review tasks (To Review → Done/Rework) |
|
||||
| | ln-333-task-rework | Fix tasks after review (To Rework → To Review) |
|
||||
| **Quality** | ln-340-story-quality-gate | Two-pass review (Code Quality → Regression → Manual Testing) |
|
||||
| | ln-341-code-quality-checker | Analyze code for DRY/KISS/YAGNI violations |
|
||||
| | ln-342-regression-checker | Run existing test suite |
|
||||
| | ln-343-manual-tester | Perform manual testing via curl/puppeteer |
|
||||
| **Documentation** | ln-114-project-docs-creator | Create project docs (requirements, architecture, specs) |
|
||||
| | ln-322-adr-creator | Create ADRs (architecture decisions) |
|
||||
| | ln-321-guide-creator | Create guides (reusable patterns) |
|
||||
| | ln-323-manual-creator | Create manuals (API references) |
|
||||
|
||||
---
|
||||
|
||||
## Project Configuration
|
||||
|
||||
### Quality Commands
|
||||
|
||||
```bash
|
||||
# Docker development environment
|
||||
{{DOCKER_COMMAND}}
|
||||
|
||||
# Run tests
|
||||
{{TEST_COMMAND}}
|
||||
|
||||
# Run tests with coverage
|
||||
{{COVERAGE_COMMAND}}
|
||||
|
||||
# Type checking
|
||||
{{TYPE_CHECK_COMMAND}}
|
||||
|
||||
# Linting
|
||||
{{LINT_COMMAND}}
|
||||
```
|
||||
|
||||
### Documentation Structure
|
||||
|
||||
Core documentation:
|
||||
- [Requirements](../project/requirements.md) - Functional requirements (FR-XXX-NNN) with MoSCoW prioritization
|
||||
- [Architecture](../project/architecture.md) - System architecture (C4 Model, arc42)
|
||||
- [Technical Specification](../project/technical_specification.md) - Implementation details
|
||||
- [ADRs](../reference/adrs/) - Architecture Decision Records
|
||||
- [Guides](../reference/guides/) - Project patterns and best practices
|
||||
- [Manuals](../reference/manuals/) - Package API references
|
||||
|
||||
### Label Taxonomy
|
||||
|
||||
**Functional Labels**: `feature`, `bug`, `refactoring`, `documentation`, `testing`, `infrastructure`
|
||||
|
||||
**Type Labels**: `user-story`, `implementation-task`, `test-task`
|
||||
|
||||
**Status Labels** (auto-managed by Linear): `backlog`, `todo`, `in-progress`, `to-review`, `to-rework`, `done`, `canceled`
|
||||
|
||||
### Test Audit History (Optional)
|
||||
|
||||
**Test Audit:** Every +50 tests → review new files, delete framework tests. Last: {{AUDIT_DATE}} ({{OLD_COUNT}} → {{NEW_COUNT}})
|
||||
|
||||
---
|
||||
|
||||
## Linear MCP Methods Reference
|
||||
|
||||
### Core Operations
|
||||
|
||||
**Issues**:
|
||||
|
||||
```python
|
||||
# List issues
|
||||
mcp__linear-server__list_issues(
|
||||
team="TeamName", # Team name or ID
|
||||
state="In Progress", # State name or ID
|
||||
assignee="me", # User ID, name, email, or "me"
|
||||
limit=50 # Max 250
|
||||
)
|
||||
|
||||
# Get issue details
|
||||
mcp__linear-server__get_issue(
|
||||
id="PROJ-123" # Issue ID
|
||||
)
|
||||
|
||||
# Create issue
|
||||
mcp__linear-server__create_issue(
|
||||
team="TeamName", # Required: Team name or ID
|
||||
title="Task title", # Required: Issue title
|
||||
description="...", # Markdown description
|
||||
state="Todo", # State name or ID
|
||||
assignee="me", # User ID, name, email, or "me"
|
||||
parentId="parent-uuid", # For tasks (parent Story UUID)
|
||||
labels=["feature", "backend"] # Label names or IDs
|
||||
)
|
||||
|
||||
# Update issue
|
||||
mcp__linear-server__update_issue(
|
||||
id="PROJ-123", # Required: Issue ID
|
||||
state="Done", # State name or ID
|
||||
description="...", # Updated description
|
||||
assignee="me" # Reassign
|
||||
)
|
||||
```
|
||||
|
||||
**Projects** (Epics):
|
||||
|
||||
```python
|
||||
# List projects
|
||||
mcp__linear-server__list_projects(
|
||||
team="TeamName", # Filter by team
|
||||
state="started", # Filter by state
|
||||
limit=50
|
||||
)
|
||||
|
||||
# Get project
|
||||
mcp__linear-server__get_project(
|
||||
query="Epic 1" # ID or name
|
||||
)
|
||||
|
||||
# Create project (Epic)
|
||||
mcp__linear-server__create_project(
|
||||
team="TeamName", # Required
|
||||
name="Epic 1: Auth", # Required
|
||||
description="...", # Epic description
|
||||
state="planned" # Epic state
|
||||
)
|
||||
|
||||
# Update project
|
||||
mcp__linear-server__update_project(
|
||||
id="project-uuid", # Required
|
||||
state="started", # Update state
|
||||
description="..." # Update description
|
||||
)
|
||||
```
|
||||
|
||||
**Teams**:
|
||||
|
||||
```python
|
||||
# List teams
|
||||
mcp__linear-server__list_teams()
|
||||
|
||||
# Get team
|
||||
mcp__linear-server__get_team(
|
||||
query="TeamName" # UUID, key, or name
|
||||
)
|
||||
```
|
||||
|
||||
**Labels**:
|
||||
|
||||
```python
|
||||
# List labels
|
||||
mcp__linear-server__list_issue_labels(
|
||||
team="TeamName" # Optional: filter by team
|
||||
)
|
||||
|
||||
# Create label
|
||||
mcp__linear-server__create_issue_label(
|
||||
name="backend", # Required
|
||||
color="#FF5733", # Hex color
|
||||
teamId="team-uuid" # Optional: team-specific label
|
||||
)
|
||||
```
|
||||
|
||||
**Comments**:
|
||||
|
||||
```python
|
||||
# List comments
|
||||
mcp__linear-server__list_comments(
|
||||
issueId="issue-uuid" # Required
|
||||
)
|
||||
|
||||
# Create comment
|
||||
mcp__linear-server__create_comment(
|
||||
issueId="issue-uuid", # Required
|
||||
body="Comment text" # Required: Markdown
|
||||
)
|
||||
```
|
||||
|
||||
### Parameter Patterns
|
||||
|
||||
**Common Filters**:
|
||||
|
||||
```python
|
||||
# By assignee
|
||||
assignee="me" # Current user
|
||||
assignee="user@example.com" # By email
|
||||
assignee="user-uuid" # By UUID
|
||||
|
||||
# By state
|
||||
state="Todo" # By name
|
||||
state="state-uuid" # By UUID
|
||||
|
||||
# By team
|
||||
team="TeamName" # By name
|
||||
team="team-uuid" # By UUID
|
||||
|
||||
# By label
|
||||
label="feature" # By name
|
||||
label="label-uuid" # By UUID
|
||||
```
|
||||
|
||||
**Pagination**:
|
||||
|
||||
```python
|
||||
# Limit results
|
||||
limit=50 # Default: 50, Max: 250
|
||||
|
||||
# Pagination
|
||||
after="cursor-id" # Start from cursor
|
||||
before="cursor-id" # End at cursor
|
||||
```
|
||||
|
||||
**Date Filters**:
|
||||
|
||||
```python
|
||||
# ISO-8601 date-time
|
||||
createdAt="2025-01-01T00:00:00Z"
|
||||
|
||||
# Duration (relative)
|
||||
createdAt="-P1D" # Created in last 1 day
|
||||
updatedAt="-P7D" # Updated in last 7 days
|
||||
```
|
||||
|
||||
### Examples
|
||||
|
||||
**Example 1: Get all In Progress tasks for current user**
|
||||
|
||||
```python
|
||||
issues = mcp__linear-server__list_issues(
|
||||
team="ProjectTeam",
|
||||
state="In Progress",
|
||||
assignee="me",
|
||||
limit=100
|
||||
)
|
||||
```
|
||||
|
||||
**Example 2: Create Story (User Story)**
|
||||
|
||||
```python
|
||||
story = mcp__linear-server__create_issue(
|
||||
team="ProjectTeam",
|
||||
title="US001 User Login",
|
||||
description="User story description...",
|
||||
state="Backlog",
|
||||
labels=["user-story", "feature"]
|
||||
)
|
||||
```
|
||||
|
||||
**Example 3: Create Task (child of Story)**
|
||||
|
||||
```python
|
||||
task = mcp__linear-server__create_issue(
|
||||
team="ProjectTeam",
|
||||
title="EP1_01 Implement JWT tokens",
|
||||
description="Task description...",
|
||||
state="Todo",
|
||||
parentId="story-uuid", # Link to parent Story
|
||||
labels=["implementation-task", "backend"]
|
||||
)
|
||||
```
|
||||
|
||||
**Example 4: Move task to Done**
|
||||
|
||||
```python
|
||||
mcp__linear-server__update_issue(
|
||||
id="PROJ-123",
|
||||
state="Done"
|
||||
)
|
||||
```
|
||||
|
||||
**Example 5: Create Epic (Project)**
|
||||
|
||||
```python
|
||||
epic = mcp__linear-server__create_project(
|
||||
team="ProjectTeam",
|
||||
name="Epic 1: Authentication System",
|
||||
description="Epic description...",
|
||||
state="planned"
|
||||
)
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Maintenance
|
||||
|
||||
**Update Triggers**:
|
||||
- When adding new workflow skills
|
||||
- When changing task lifecycle statuses
|
||||
- When updating Critical Rules
|
||||
- When modifying Linear integration patterns
|
||||
- When changing test strategy limits
|
||||
|
||||
**Verification**:
|
||||
- All Linear MCP method examples are valid
|
||||
- Workflow skills table matches available skills
|
||||
- Critical Rules align with current development principles
|
||||
- Test limits match risk-based testing guide
|
||||
|
||||
**Last Updated**: {{DATE}}
|
||||
|
||||
---
|
||||
|
||||
**Template Version:** 1.0.0
|
||||
**Template Last Updated:** 2025-11-15
|
||||
Reference in New Issue
Block a user