Skip to content

[Extension]: Add SpecKit Companion Extension #2926

@alfredoperez

Description

@alfredoperez

Extension ID

companion

Extension Name

SpecKit Companion

Version

0.3.0

Description

Live spec-driven progress for SpecKit Companion — lifecycle capture, status, resume, plus a turbo pipeline profile.

Author

Alfredo Perez

Repository URL

https://github.com/alfredoperez/speckit-companion

Download URL

https://github.com/alfredoperez/speckit-companion/releases/download/speckit-ext-v0.3.0/companion-0.3.0.zip

License

MIT

Homepage (optional)

https://github.com/alfredoperez/speckit-companion/tree/main/speckit-extension

Documentation URL (optional)

https://github.com/alfredoperez/speckit-companion/blob/main/speckit-extension/docs/

Changelog URL (optional)

https://github.com/alfredoperez/speckit-companion/blob/main/speckit-extension/CHANGELOG.md

Required Spec Kit Version

=0.8.5

Required Tools (optional)

python3 (optional)

Number of Commands

10

Number of Hooks (optional)

4

Tags

tracking, companion, progress, vscode, lifecycle, resume

Key Features

  • Full lifecycle capture — after_specify/plan/tasks/implement hooks record every spec-kit step into .spec-context.json automatically; no new commands needed to get tracking.
  • Status + Resume — /speckit.companion.status reports where a spec stands (step, status, decisions, next action); /speckit.companion.resume continues the pipeline from the recorded step, dispatching the spec's own command family.
  • Per-task implement journaling — each task is recorded the moment it completes, so progress shows real cadence, not one end-of-run burst.
  • Template profiles (standard / turbo) — both always installed; switch the pipeline shape non-destructively per project or per spec. Turbo trims to no user-story section, a leaner plan, and files/dependencies tasks.
  • Complexity fast-path (beta) — small changes fold plan + tasks into the specify pass (three lean files), landing the spec ready-to-implement in one run; larger changes keep the full pipeline.
  • Honest state recovery — when a hook didn't fire, derive-from-files.py reconstructs state from the on-disk artifacts, so the GUI reflects reality.
  • Safe & agent-agnostic — stdlib-only Python, atomic append-only writes, never regresses a shipped spec, never fails the host command, and degrades gracefully when python3 is absent.

Testing Checklist

  • Extension installs successfully via download URL
  • All commands execute without errors
  • Documentation is complete and accurate
  • No security vulnerabilities identified
  • Tested on at least one real project

Submission Requirements

  • Valid extension.yml manifest included
  • README.md with installation and usage instructions
  • LICENSE file included
  • GitHub release created with version tag
  • All command files exist and are properly formatted
  • Extension ID follows naming conventions (lowercase-with-hyphens)

Testing Details

Tested on:

  • macOS (darwin) with Spec Kit v0.9.5.dev0
  • Clean scratch-dir install from the release download URL

Test project: alfredoperez/speckit-companion — dogfooded: features were built through the very turbo pipeline this extension provides.

Test scenarios:

  1. Installed from the release URL (specify extension add companion --from <url> --force) → specify extension list shows v0.3.0 with all 10 commands.
  2. Ran a full lifecycle (specify → plan → tasks → implement); the after_* hooks captured each step into .spec-context.json.
  3. Verified per-task implement journaling + the status/resume commands.
  4. Confirmed graceful degradation with python3 absent (capture skips, never fails the host command).

Example Usage

# Install
specify extension add companion --from https://github.com/alfredoperez/speckit-companion/releases/download/speckit-ext-v0.3.0/companion-0.3.0.zip

# Where does this spec stand right now?
/speckit.companion.status
  
# Resume the pipeline from the recorded step
/speckit.companion.resume

Proposed Catalog Entry

{ 
    "companion": {
      "name": "SpecKit Companion",
      "id": "companion",
      "description": "Live spec-driven progress for SpecKit Companion — lifecycle capture, status, resume, and a turbo pipeline profile.",
      "download_url": "https://github.com/alfredoperez/speckit-companion/releases/download/speckit-ext-v0.3.0/companion-0.3.0.zip",
      "repository": "https://github.com/alfredoperez/speckit-companion",
      "homepage": "https://github.com/alfredoperez/speckit-companion/tree/main/speckit-extension",
      "documentation": "https://github.com/alfredoperez/speckit-companion/blob/main/speckit-extension/docs/",
      "changelog": "https://github.com/alfredoperez/speckit-companion/blob/main/speckit-extension/CHANGELOG.md",
      "license": "MIT",
      "category": "visibility",
      "effect": "read-write",
      "requires": { "speckit_version": ">=0.8.5" },
      "provides": { "commands": 10, "hooks": 4 },
      "tags": ["spec-driven-development", "tracking", "companion"],
      "verified": false,
      "downloads": 0,
      "stars": 0,
      "created_at": "2026-06-10T00:00:00Z",
      "updated_at": "2026-06-10T00:00:00Z"
    }
  }

Additional Context

SpecKit Companion is the spec-kit-side half of the SpecKit Companion VS Code extension — it writes the canonical .spec-context.json that the GUI reads, but runs fully standalone (the JSON is useful to any tool). Built and dogfooded on its own repo: the features in this release were developed through the very turbo pipeline it provides

https://marketplace.visualstudio.com/items?itemName=alfredoperez.speckit-companion
https://open-vsx.org/extension/alfredoperez/speckit-companion

Metadata

Metadata

Assignees

Type

No type
No fields configured for issues without a type.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions