Weave Code
Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message
speckit-companion-before-converge
speckit-companion-before-converge
monicahq/laravel-cloudflare
claude-code
php
laravel
cloudflare
proxies

Capture converge start (currentStep=converge, status unchanged) into .spec-context.json for the Companion GUI

Install
php artisan boost:add-skill monicahq/laravel-cloudflare

Save this content to: .claude/skills/speckit-companion-before-converge/SKILL.md

# Capture Converge Start

Record the start of the active feature's converge run into `.spec-context.json` so the SpecKit Companion GUI shows converge running. This command runs as the `before_converge` lifecycle hook and only writes state; the convergence check itself is the core `speckit.converge` workflow.

## Prerequisites

- Verify Python is available by running `python3 --version`.
- If `python3` is not available, warn the user and skip the capture: `[companion] Warning: python3 not detected; skipped .spec-context.json capture`. Do not fail the host command.

## Execution

Run the writer script from the repository root:

```bash
python3 .specify/extensions/companion/scripts/write-context.py --step converge --kind start --by extension
```

There is no `--status`: converge owns no status and never moves the spec's status. The start is idempotent, so a re-fired hook never records a second one.

The script resolves the active feature directory on its own, in this order: `--feature-dir`, `SPECIFY_FEATURE_DIRECTORY` env, `SPECIFY_FEATURE` env, `.specify/feature.json`, current git branch prefix.

If you already know the feature directory, pass it explicitly so resolution is unambiguous:

```bash
python3 .specify/extensions/companion/scripts/write-context.py --feature-dir specs/<NNN>-<slug> --step converge --kind start --by extension
```

## Graceful Degradation

The script is best-effort and never fails the host command:
- If `python3` is missing, skip with the warning above.
- If the active feature directory cannot be resolved, the script prints a warning to stderr and exits 0 without writing.
- If the spec is already `completed` or `archived`, nothing is written.

## Output

On success the script prints the path it updated and the values written, e.g. `[companion] Updated specs/<NNN>-<slug>/.spec-context.json (currentStep=converge, status=unchanged, kind=start, by=extension)`. The write is atomic and appends to `history[]` without rewriting existing entries.

Capture Converge Start

Record the start of the active feature's converge run into .spec-context.json so the SpecKit Companion GUI shows converge running. This command runs as the before_converge lifecycle hook and only writes state; the convergence check itself is the core speckit.converge workflow.

Prerequisites

  • Verify Python is available by running python3 --version.
  • If python3 is not available, warn the user and skip the capture: [companion] Warning: python3 not detected; skipped .spec-context.json capture. Do not fail the host command.

Execution

Run the writer script from the repository root:

python3 .specify/extensions/companion/scripts/write-context.py --step converge --kind start --by extension

There is no --status: converge owns no status and never moves the spec's status. The start is idempotent, so a re-fired hook never records a second one.

The script resolves the active feature directory on its own, in this order: --feature-dir, SPECIFY_FEATURE_DIRECTORY env, SPECIFY_FEATURE env, .specify/feature.json, current git branch prefix.

If you already know the feature directory, pass it explicitly so resolution is unambiguous:

python3 .specify/extensions/companion/scripts/write-context.py --feature-dir specs/<NNN>-<slug> --step converge --kind start --by extension

Graceful Degradation

The script is best-effort and never fails the host command:

  • If python3 is missing, skip with the warning above.
  • If the active feature directory cannot be resolved, the script prints a warning to stderr and exits 0 without writing.
  • If the spec is already completed or archived, nothing is written.

Output

On success the script prints the path it updated and the values written, e.g. [companion] Updated specs/<NNN>-<slug>/.spec-context.json (currentStep=converge, status=unchanged, kind=start, by=extension). The write is atomic and appends to history[] without rewriting existing entries.

Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
ippanelcom/laravel-sdk
adachsoft/changelog-linter
adachsoft/collection
payerurl/telegrambot-crypto-payment-instant-payout
dskripchenko/laravel-hybrid-search
riorizkyrainey/lara-ced
mehedimi/static-vel
zharp/zharp
nonsapiens/bigquery-model-sync
lgu-bayambang-ict-office/lgu-laravel-development-standards
andydefer/laravel-support
se7enxweb/flysystem
lampwick/laravel
jeslage/statamic-emojis
micahdshackelford/rmap-laravel
draftsmaninc/draftsman
square-bit/laravel-volition
himito/laravel-mailman
htinlynn/genius-helper
maco-studios/hephaestus