Claude-code-skills ln-130-tasks-docs-creator
Creates task management docs (kanban board, workflow rules) with Linear integration. Use when setting up task tracking for a project.
git clone https://github.com/levnikolaevich/claude-code-skills
T=$(mktemp -d) && git clone --depth=1 https://github.com/levnikolaevich/claude-code-skills "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills-catalog/ln-130-tasks-docs-creator" ~/.claude/skills/levnikolaevich-claude-code-skills-ln-130-tasks-docs-creator && rm -rf "$T"
skills-catalog/ln-130-tasks-docs-creator/SKILL.mdPaths: File paths (
,shared/,references/) are relative to skills repo root. If not found at CWD, locate this SKILL.md directory and go up one level for repo root. If../ln-*is missing, fetch files via WebFetch fromshared/.https://raw.githubusercontent.com/levnikolaevich/claude-code-skills/master/skills/{path}
Type: L2 Worker Category: 1XX Documentation Pipeline
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).
Purpose
Create and validate task management documentation (docs/tasks/). Generates README.md with workflow rules and kanban_board.md with Linear integration, including interactive setup for team UUID/Key configuration.
When to Use This Skill
This skill is a L2 WORKER invoked by ln-100-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-100-documents-pipeline → ln-110-project-docs-coordinator → ln-120-reference-docs-creator → ln-130-tasks-docs-creator → ln-140-test-docs-creator (optional)
Workflow
The skill follows a 3-phase workflow: CREATE → VALIDATE STRUCTURE → VALIDATE CONTENT.
MANDATORY READ: Load
shared/references/docs_quality_contract.md, shared/references/docs_quality_rules.json, and shared/references/markdown_read_protocol.md.
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). Raw placeholders are allowed only during setup for
docs/tasks/README.md and docs/tasks/kanban_board.md; published output must not leak unresolved markers into any other document.
Phase 1: Create tasks/README.md
Objective: Create task management system documentation from template.
When to execute: Always (first phase)
Process:
-
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
- Use Glob tool:
-
Create tasks directory:
- Create the
directory if it doesn't existdocs/tasks/
- Create the
-
Create tasks/README.md from template:
- MANDATORY READ: Load
references/tasks_readme_template.md - Copy template →
docs/tasks/README.md - Replace placeholders:
→ current date (YYYY-MM-DD){{DATE}}
- Template contains:
- Full shared header contract (
,SCOPE
,DOC_KIND
,DOC_ROLE
,READ_WHEN
,SKIP_WHEN
)PRIMARY_SOURCES - Story-Level Test Task Pattern
- Kanban Board Structure (Epic Grouping Pattern)
- Linear Integration (MCP methods)
- Quick Navigation, Agent Entry, and Maintenance sections
- Full shared header contract (
- MANDATORY READ: Load
-
Notify user:
- If created:
✓ Created docs/tasks/README.md with task management rules - If skipped:
✓ docs/tasks/README.md already exists (preserved)
- If created:
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:
- Read the opening block
- Check for
tag and metadata markers<!-- SCOPE: ... --> - Expected values:
- tasks/README.md:
<!-- SCOPE: Task tracking system workflow and rules ONLY --> - kanban_board.md:
<!-- SCOPE: Quick navigation to active tasks in Linear -->
- tasks/README.md:
- 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
MANDATORY READ: Load
references/questions.md for validation specs (section names, heuristics, special handling rules).
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 the section with minimal concrete guidance or an explicit empty-state note
- 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:
- Search for
header in last 20 lines## Maintenance - If missing:
- Use Edit tool to add at end of file:
## 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}
- Use Edit tool to add at end of file:
2.4 Validate POSIX line endings
Files to check: docs/tasks/README.md, docs/tasks/kanban_board.md (if exists)
For each file:
- Check if file ends with single newline character
- 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
MANDATORY READ: Load
references/questions.md — parse sections and extract validation heuristics.
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
- Log:
- If exists:
- Continue to Step 3.2.2
Step 3.2.2: Read Linear Configuration section:
- Read
docs/tasks/kanban_board.md - Locate
section## Linear Configuration - 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):
-
Prompt user for Team Name:
- Question: "What is your Linear Team Name?"
- Validation: Non-empty string
- Example: "My Project Team"
-
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"
-
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"
-
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]
(if placeholder exists)https://linear.app/{workspace_slug}
- Use Edit tool to replace in kanban_board.md:
-
Set initial counters (if table exists):
- Set "Next Epic Number" → 1
- Set "Next Story Number" → 1
-
Update Last Updated date:
- Replace
→[YYYY-MM-DD]
in Maintenance section{current_date}
- Replace
-
Save updated kanban_board.md
-
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):
-
Extract existing values:
- Extract Team UUID from line matching:
or in tableTeam UUID: {value} - Extract Team Key from line matching:
or in tableTeam Key: {value}
- Extract Team UUID from line matching:
-
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}$/
- UUID:
-
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)
-
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:
- "How is Linear integrated into the task management system?"
- "What are the task state transitions and review criteria?"
- "What task templates are available and how to use them?"
Validation process:
- Extract validation heuristics from questions.md
- Read corresponding section content from tasks/README.md
- Check if ANY heuristic passes:
- Contains keyword X → pass
- Has pattern Y → pass
- Length > N words → pass
- If ANY passes → Section valid
- 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:
- Read Epic Tracking or Epics Overview section
- Check if ANY heuristic passes
- If passes → valid
- 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-301-task-creator, ln-302-task-replanner, ln-400-story-executor (Epic Grouping logic).
Reference Files
— Task management system rules templatereferences/tasks_readme_template.md
— Linear integration + kanban templatereferences/kanban_board_template.md
— Validation questions, heuristics, special handling rulesreferences/questions.md
Critical Rules
- Idempotent: Checks file existence before creation; preserves existing files; safe to re-run
- Linear UUID validation: Team UUID must match
; Team Key must match/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$//^[A-Z]{2,4}$/ - Shared docs-quality contract: Follow
andshared/references/docs_quality_contract.md
for placeholder policy, SCOPE/Maintenance requirements, and allowed setup exceptionsshared/references/docs_quality_rules.json - Placeholder detection: If
,[TEAM_NAME]
, or[TEAM_UUID]
found in kanban_board.md, enter interactive setup mode and prompt user; do not leave unresolved markers outside the allowlisted task docs[TEAM_KEY] - Shared opening contract required: Both README.md and kanban_board.md must include
, metadata markers,SCOPE
,Quick Navigation
, andAgent EntryMaintenance - Story-Level Test Task Pattern: Tests consolidated in final Story task, not scattered across implementation tasks
Return Contract
Return a normalized summary so
ln-100 can run a centralized docs-quality gate without re-parsing worker prose:
{ "created_files": [ "docs/tasks/README.md", "docs/tasks/kanban_board.md" ], "skipped_files": [], "quality_inputs": { "doc_paths": [ "docs/tasks/README.md", "docs/tasks/kanban_board.md" ], "owners": { "docs/tasks/README.md": "ln-130-tasks-docs-creator", "docs/tasks/kanban_board.md": "ln-130-tasks-docs-creator" } }, "validation_status": "passed|passed_with_fixes|skipped" }
Runtime Summary Artifact
MANDATORY READ: Load
shared/references/docs_generation_summary_contract.md
Accept optional
summaryArtifactPath.
Summary kind:
docs-generation
Required payload semantics:
worker = "ln-130"statuscreated_filesskipped_filesquality_inputsvalidation_statuswarnings
Write the summary to the provided artifact path or return the same envelope in structured output.
Definition of Done
- Phase 1: tasks/README.md created from template (or preserved if exists); setup placeholders contained only within allowlisted task docs
- Phase 2: Structure valid — SCOPE tags, required sections, Maintenance, POSIX endings (auto-fixed if needed)
- Phase 3: Content valid — heuristics pass per questions.md, Linear Configuration set up (if placeholders found)
- Return contract emitted with
,created_files
,skipped_files
, andquality_inputsvalidation_status - Summary message displayed with auto-fix count and Linear Configuration status
Version: 7.1.0 Last Updated: 2025-01-12