# 659 Description Skill 89da8c2e

> Start or complete a specific task inside a SAM task file. Updates task status to IN PROGRESS with Started timestamp, writes active-task context for hooks, and supports --complete to mark tasks complete.

- Skill: `tools-only/659-description-skill-89da8c2e` (Agent Skill, multi-file: 3 files)
- Install (CLI): `npx skillmds@latest add tools-only/659-description-skill-89da8c2e`
- Raw SKILL.md: https://api.skillmd.com/api/skills/tools-only/659-description-skill-89da8c2e/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Productivity
- Author: tools-only (https://skillmd.com/u/tools-only)
- Updated: 2026-09-22
- Page: https://skillmd.com/skills/tools-only/659-description-skill-89da8c2e

---


# Start Task (SAM Task Execution Helper)

You are implementing a specific task from a SAM task file.

<task_input>
$ARGUMENTS
</task_input>

---

## Parse Arguments

- `task_file_path` (required): path to a `plan/tasks-*.md` file
- `--task <id>` (optional): Task ID to start (defaults to first ready task)
- `--complete <id>` (optional): Task ID to mark COMPLETE

---

## Detect Task Format

Read the task file. Determine the format:

- **YAML frontmatter**: File starts with `---` and contains YAML fields like `task:`, `status:`, `title:`
- **Individual task file**: A single file with YAML frontmatter representing ONE task
- **Inline markdown**: File contains `## Task N:` headers with `**Status**:` bold fields

For individual task files (YAML frontmatter at top), the task IS the entire file.
For monolithic files (multiple tasks), find the specific task section.

---

## If `--complete <task-id>` Provided

1. Read the task file.
2. Update the selected task:

   **If YAML frontmatter format:**
   - Edit `status:` field to `complete`
   - Add `completed: {ISO timestamp}` field

   **If inline markdown format:**
   - Change `**Status**` to `✅ COMPLETE`
   - Add/update `**Completed**: {ISO timestamp}`

3. Output: `Task {ID} marked as complete`

---

## Starting a Task

1. Read the task file and the linked architecture spec.
2. Select the task:
   - If `--task` provided, use that ID
   - Else pick the first task where status is `not-started` (YAML) or `NOT STARTED` (markdown) and all dependencies are resolved
3. Update the task status:

   **If YAML frontmatter format:**
   - Edit the `status:` field in frontmatter to `in-progress`
   - Add `started: {ISO timestamp}` field to frontmatter

   **If inline markdown format:**
   - Set `**Status**: 🔄 IN PROGRESS`
   - Add `**Started**: {ISO timestamp}`

4. Write the active-task context file (required for hook-driven updates):

```bash
mkdir -p .claude/context
printf '%s' '{"task_file_path": "{task_file_path}", "task_id": "{task_id}"}' > ".claude/context/active-task-${CLAUDE_SESSION_ID}.json"
```

5. Implement against the task acceptance criteria and run its verification steps.

