Skip to content
Back to skills

Autospec Implement

ASecurity

Execute the implementation plan by processing tasks defined in tasks.yaml.

  • 144 stars
  • 0 votes
  • 0 copies
  • 1 view
  • Added September 26, 2026
developmentjavascripttypescriptpythonrustgojavarubyphpswiftkotlin

Works with

  • vscode
  • api

Security analysis

A100/100

Scanned September 26, 2026

npx -y skills add ariel-frischer/autospec --skill autospec-implement --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Autospec Implement?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Autospec Implement
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/ariel-frischer-autospec-implement/badge)](https://www.skillsdirectory.com/skills/ariel-frischer-autospec-implement)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: autospec-implement
description: "Execute the implementation plan by processing tasks defined in tasks.yaml."
---

# autospec-implement

This Agent Skill is generated from autospec.implement. When the user invokes "$autospec-implement" or "/autospec.implement",
load and follow these instructions directly. Treat the text after the skill or
command name as "$ARGUMENTS". Do not route back through "autospec implement"; this skill
is the prompt for the stage.

Project specs directory: ./specs

## User Input

```text
$ARGUMENTS
```

You **MUST** consider the user input before proceeding (if not empty).

## Execution Boundaries (CRITICAL)

| Flag | Behavior |
|------|----------|
| `--phase N` | Execute ONLY phase N tasks. After completion, output "Phase N complete." and TERMINATE. Do NOT proceed to other phases. |
| `--context-file` | Use bundled artifacts from context file. Do NOT separately read files listed in `_context_meta.skip_reads`. |
| (no flags) | Execute all phases sequentially. |

## Pre-computed Context

The following paths have been pre-computed and are available for use:

- **FEATURE_DIR**: `{{.FeatureDir}}`
- **TASKS_FILE**: `{{.TasksFile}}`
- **CONSTITUTION_FILE**: `{{if .ConstitutionFile}}{{.ConstitutionFile}}{{else}}not found{{end}}`
- **IS_GIT_REPO**: `{{.IsGitRepo}}`

## Outline

1. **Phase Context Metadata** (CRITICAL - Token Optimization):

   Check if `--context-file` was used. If so, parse the `_context_meta` section FIRST before any other file reads.

   **`_context_meta` Fields**:
   - `phase_artifacts_bundled: true` - Indicates that spec.yaml, plan.yaml, and tasks.yaml (phase-filtered) are already bundled in this context file
   - `bundled_artifacts` - Lists the artifacts included, such as `["spec.yaml", "plan.yaml", "tasks.yaml (phase-filtered)", "constitution.yaml"]`
   - `has_governance` - Boolean indicating whether project governance is bundled in the `governance:` section
     - If `true`: Use the bundled `governance:` data as the constitution/governance source of truth
     - If `false`: No constitution was bundled; do not search for a governance file during context-file execution
   - `governance_file` - Path to the constitution file when governance is bundled
   - `has_checklists` - Boolean indicating whether a `checklists/` directory exists for this feature
     - If `false`: **DO NOT** check for, scan, or read from the checklists directory - it doesn't exist, skip step 3 entirely
     - If `true`: Checklists directory exists, proceed to step 3
   - `skip_reads` - Explicit list of file paths that are already bundled and **MUST NOT** be read separately

   **CRITICAL INSTRUCTION**:
   ```
   DO NOT read files listed in skip_reads when _context_meta.phase_artifacts_bundled is true.
   DO NOT check for checklists directory when _context_meta.has_checklists is false.
   DO NOT separately read _context_meta.governance_file when it appears in skip_reads; use the bundled governance section instead.
   ```

   **Example `_context_meta` section**:
   ```yaml
   _context_meta:
     phase_artifacts_bundled: true
     bundled_artifacts:
       - spec.yaml
       - plan.yaml
       - tasks.yaml (phase-filtered)
       - constitution.yaml
     has_governance: true
     governance_file: .autospec/constitution.yaml
     has_checklists: false
     skip_reads:
       - specs/my-feature/spec.yaml
       - specs/my-feature/plan.yaml
       - specs/my-feature/tasks.yaml
       - .autospec/constitution.yaml
   ```

3. **Check checklists status** (SKIP if `_context_meta.has_checklists: false`):
   - Scan all `*.yaml` checklist files in the checklists/ directory
   - For each checklist YAML file, parse and count:
     - Total items: All items across all categories (`categories[].items[]`)
     - Passed items: Items where `status: "pass"`
     - Failed/Pending items: Items where `status: "fail"` or `status: "pending"`
   - Create a status table:

     ```text
     | Checklist     | Total | Passed | Not Passed | Status |
     |---------------|-------|--------|------------|--------|
     | ux.yaml       | 12    | 12     | 0          | PASS   |
     | api.yaml      | 8     | 5      | 3          | FAIL   |
     | security.yaml | 6     | 6      | 0          | PASS   |
     ```

   - Calculate overall status:
     - **PASS**: All checklists have 0 items with `status: "fail"` or `status: "pending"`
     - **FAIL**: One or more checklists have items not in `status: "pass"`

   - **If any checklist is incomplete**:
     - Display the table with incomplete item counts
     - **STOP** and ask: "Some checklists are incomplete. Do you want to proceed with implementation anyway? (yes/no)"
     - Wait for user response before continuing
     - If user says "no" or "wait" or "stop", halt execution
     - If user says "yes" or "proceed" or "continue", proceed to step 4

   - **If all checklists are complete**:
     - Display the table showing all checklists passed
     - Automatically proceed to step 4

4. **Load and analyze the implementation context** (if NOT using `--context-file`):

   **Note**: If you are using `--context-file`, the spec, plan, tasks, and possibly governance are already loaded from the context file. Skip reading files listed in `_context_meta.skip_reads` and use the bundled data from the `spec:`, `plan:`, `tasks:`, and `governance:` sections of the context file instead.

   {{if .ConstitutionFile}}- **REQUIRED GOVERNANCE**: Read `{{.ConstitutionFile}}` for project principles, non-negotiable constraints, quality standards, and validation requirements before modifying code. Treat these governance rules as binding during implementation.{{else}}- **GOVERNANCE**: No constitution file was detected in a supported path. Continue using spec, plan, tasks, and local agent instructions.{{end}}
   - **REQUIRED**: Read tasks.yaml for the complete task list and execution plan
   - **REQUIRED**: Read plan.yaml for:
     - `technical_context`: tech stack, dependencies, constraints
     - `data_model`: entities and relationships
     - `api_contracts`: API specifications
     - `research_findings`: technical decisions and rationale
     - `project_structure`: file organization
   - **REQUIRED**: Read spec.yaml for:
     - `user_stories`: acceptance scenarios
     - `requirements`: functional and non-functional
     - `success_criteria`: measurable outcomes

5. **Project Setup Verification**:
   - **REQUIRED**: Create/verify ignore files based on actual project setup:

   **Detection & Creation Logic**:
   - Use `{{.IsGitRepo}}` to determine if this is a git repository (create/verify .gitignore if true)
   - Check if Dockerfile* exists or Docker in plan.yaml technical_context → create/verify .dockerignore
   - Check if .eslintrc* exists → create/verify .eslintignore
   - Check if eslint.config.* exists → ensure the config's `ignores` entries cover required patterns
   - Check if .prettierrc* exists → create/verify .prettierignore
   - Check if .npmrc or package.json exists → create/verify .npmignore (if publishing)
   - Check if terraform files (*.tf) exist → create/verify .terraformignore
   - Check if .helmignore needed (helm charts present) → create/verify .helmignore

   **If ignore file already exists**: Verify it contains essential patterns, append missing critical patterns only
   **If ignore file missing**: Create with full pattern set for detected technology

   **Common Patterns by Technology** (from plan.yaml `technical_context`):
   - **Node.js/JavaScript/TypeScript**: `node_modules/`, `dist/`, `build/`, `*.log`, `.env*`
   - **Python**: `__pycache__/`, `*.pyc`, `.venv/`, `venv/`, `dist/`, `*.egg-info/`
   - **Java**: `target/`, `*.class`, `*.jar`, `.gradle/`, `build/`
   - **C#/.NET**: `bin/`, `obj/`, `*.user`, `*.suo`, `packages/`
   - **Go**: `*.exe`, `*.test`, `vendor/`, `*.out`
   - **Ruby**: `.bundle/`, `log/`, `tmp/`, `*.gem`, `vendor/bundle/`
   - **PHP**: `vendor/`, `*.log`, `*.cache`, `*.env`
   - **Rust**: `target/`, `debug/`, `release/`, `*.rs.bk`, `*.rlib`, `*.prof*`, `.idea/`, `*.log`, `.env*`
   - **Kotlin**: `build/`, `out/`, `.gradle/`, `.idea/`, `*.class`, `*.jar`, `*.iml`, `*.log`, `.env*`
   - **C++**: `build/`, `bin/`, `obj/`, `out/`, `*.o`, `*.so`, `*.a`, `*.exe`, `*.dll`, `.idea/`, `*.log`, `.env*`
   - **C**: `build/`, `bin/`, `obj/`, `out/`, `*.o`, `*.a`, `*.so`, `*.exe`, `Makefile`, `config.log`, `.idea/`, `*.log`, `.env*`
   - **Swift**: `.build/`, `DerivedData/`, `*.swiftpm/`, `Packages/`
   - **R**: `.Rproj.user/`, `.Rhistory`, `.RData`, `.Ruserdata`, `*.Rproj`, `packrat/`, `renv/`
   - **Universal**: `.DS_Store`, `Thumbs.db`, `*.tmp`, `*.swp`, `.vscode/`, `.idea/`

   **Tool-Specific Patterns**:
   - **Docker**: `node_modules/`, `.git/`, `Dockerfile*`, `.dockerignore`, `*.log*`, `.env*`, `coverage/`
   - **ESLint**: `node_modules/`, `dist/`, `build/`, `coverage/`, `*.min.js`
   - **Prettier**: `node_modules/`, `dist/`, `build/`, `coverage/`, `package-lock.json`, `yarn.lock`, `pnpm-lock.yaml`
   - **Terraform**: `.terraform/`, `*.tfstate*`, `*.tfvars`, `.terraform.lock.hcl`
   - **Kubernetes/k8s**: `*.secret.yaml`, `secrets/`, `.kube/`, `kubeconfig*`, `*.key`, `*.crt`

6. **Parse tasks.yaml structure** and extract:
   - **Phases**: Setup, Foundational, User Story phases, Polish
   - **Task dependencies**: Sequential vs parallel execution from `parallel` field
   - **Task details**: id, title, status, type, file_path, dependencies, acceptance_criteria
   - **Execution flow**: Phase order and task dependency requirements
   - **User story mapping**: Which tasks belong to which user stories

7. **Execute implementation following the task plan** (respect Execution Boundaries above):
   - **Respect dependencies**: Run sequential tasks in order, parallel tasks can run together
   - **Follow TDD approach**: Execute test tasks before their corresponding implementation tasks (if tests exist)
   - **File-based coordination**: Tasks affecting the same files must run sequentially
   - **Validation checkpoints**: Verify each phase completion before proceeding

8. **Implementation execution rules**:
   - **Governance first**: Apply constitution principles and governance constraints to all code, tests, docs, and validation decisions
   - **Setup first**: Initialize project structure, dependencies, configuration
   - **Foundational next**: Complete blocking prerequisites before user stories
   - **User stories in order**: Complete each story phase before the next
   - **Tests before code**: If test tasks exist, write tests before implementation
   - **Polish last**: Cross-cutting concerns and refactoring at the end

9. **Progress tracking and task status updates**:

   **CRITICAL**: You MUST update task status in tasks.yaml as you work. This is non-negotiable.

   Use the `autospec update-task` command to update task status:
   ```bash
   autospec update-task <task_id> <status>
   ```

   **When starting a task**:
   ```bash
   autospec update-task T001 InProgress
   ```

   **When completing a task**:
   ```bash
   autospec update-task T001 Completed
   ```

   **If a task is blocked**:
   ```bash
   autospec update-task T001 Blocked
   ```

   Valid status values: `Pending`, `InProgress`, `Completed`, `Blocked`

   **Blocking tasks with reasons** (preferred method for documenting blockers):
   ```bash
   # Block a task and document why it's blocked
   autospec task block T001 --reason "Waiting for API access from third-party team"

   # Update the reason for an already blocked task
   autospec task block T001 --reason "Updated: API approved, waiting for credentials"
   ```

   **Unblocking tasks**:
   ```bash
   # Unblock a task (defaults to Pending status)
   autospec task unblock T001

   # Unblock and immediately set to InProgress
   autospec task unblock T001 --status InProgress
   ```

   **Listing tasks by status**:
   ```bash
   # List all tasks
   autospec task list

   # List only blocked tasks (shows reasons)
   autospec task list --blocked

   # List pending tasks
   autospec task list --pending

   # List in-progress tasks
   autospec task list --in-progress

   # List completed tasks
   autospec task list --completed

   # Combine filters
   autospec task list --blocked --pending
   ```

   **Implementation workflow for each task**:
   1. Mark task as InProgress: `autospec update-task T00X InProgress`
   2. Implement the task
   3. Verify implementation meets acceptance criteria
   4. Mark task as Completed: `autospec update-task T00X Completed`
   5. Move to next task

   **Handling blocked tasks**:
   1. If blocked by external dependency: `autospec task block T00X --reason "Reason"`
   2. Document the blocker clearly so others understand what needs resolution
   3. When blocker is resolved: `autospec task unblock T00X [--status InProgress]`

   - Report progress after each completed task
   - Halt execution if any non-parallel task fails
   - For parallel tasks, continue with successful tasks, report failed ones
   - Provide clear error messages with context for debugging
   - Suggest next steps if implementation cannot proceed

10. **Validate tasks.yaml after updates**:
   ```bash
   autospec artifact {{.FeatureDir}}/tasks.yaml
   ```
   - Ensure artifact schema remains valid after status updates
   - Fix any schema errors (missing fields, invalid types, invalid dependencies) before proceeding

11. **Completion validation**:
    - Verify all required tasks have `status: "Completed"`
    - Check that implemented features match the original specification
    - Validate that tests pass (if tests were generated)
    - Confirm the implementation follows the technical plan
    - Report final status with summary of completed work

12. **Report**: Output:
    - Feature directory path
    - Total tasks completed vs total tasks
    - Tasks completed per phase
    - Tasks completed per user story
    - Any failed or skipped tasks with reasons
    - Final validation status
    - Suggested next steps (if any tasks remain)

Context for implementation: $ARGUMENTS

Note: This command assumes tasks.yaml exists with a complete task breakdown. If tasks are incomplete or missing, suggest running `$autospec-tasks` first to generate the task list.

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.