Repository navigation
Conversation
Upstream archived its own OpenCode V2 migration; this fork-only plan is obsolete. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Projects choose their spec tool with `features.specs: openspec|speckit|false`; `true` is rejected. Spec Kit features under `specs/NNN-slug/` act as changes: active while tasks are pending, attached with the constitution as the run contract, exposed to steps through SPECIFY_FEATURE_DIRECTORY when exactly one is selected. Readers, spin, close, propose and publish follow the selected tool's descriptor; archive is refused under Spec Kit. Implements OpenSpec change add-speckit-backend. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
/speckit.plan may write contracts as OpenAPI, JSON Schema, GraphQL or protobuf instead of Markdown. The bundle, the board inventory and the specs reader now include every text file under a feature's contracts/, still skipping binary, hidden and symlinked files. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Problem
Convoy only reads OpenSpec: a run's contract, the specs reader, spin, archive, close, Propose and the scorer prompts all assume
openspec/changes/<id>/. Projects that plan with GitHub Spec Kit (specs/NNN-slug/withspec.md,plan.md,tasks.md, plus.specify/memory/constitution.md) get no contract and must run every pipeline with--manual.Change
Implements OpenSpec change
add-speckit-backend(proposal, design D1–D6, delta specs in the branch).features.specs: openspec | speckit | false. Each tool is one descriptor insrc/spec-tools.ts, modeled onsrc/runners/descriptors.ts; call sites read the descriptor instead of comparing tool names. No auto-detection, no fallback between layouts.src/speckit.ts): a feature is active while it has pending tasks or notasks.md; task counts come from the checkbox lines, nospecifyCLI needed. Readers skip dotfiles and symlinks.spec.md,plan.md,tasks.md, the optional/speckit.planoutputs (research.md,data-model.md,quickstart.md),contracts/**(Markdown plus text schemas such as OpenAPI YAML/JSON, GraphQL and protobuf) andchecklists/**. Binary, hidden and symlinked files are skipped. Onlyspec.mdis required for a feature to exist; the rest attach when present, as Spec Kit itself treats them. With exactly one feature selected, steps getSPECIFY_FEATURE_DIRECTORYandSPECIFY_FEATURE_NO_PERSIST=1; inheritedSPECIFY_*values are stripped.RunPlan.openspecbecomesRunPlan.specs({ tool, changeIds, specFiles }), frozen in metadata, so resume, titles and publication don't depend on later config changes.research.md,data-model.md,quickstart.md,contracts/**, merged with per-file headings) and Other (checklists); the constitution takes the canonical specs' place.featprefix.speckit.specify/speckit-specify, including Claude skills under.claude/skills/*/SKILL.md.README.md,docs/) and the agent skill (skills/convoy/SKILL.md,skills/commands/pipeline.md) updated.Breaking:
features.specs: trueis now rejected; useopenspec.The branch also carries
chore(openspec): drop deprecated migrate-opencode-v2 change, a separate cleanup commit.Tests
test/spec-tools.test.ts,test/speckit.test.ts; Spec Kit cases added across config, launch/review TUI, specs board/reader, spin, worktree commands, close, publish, runner env (test/runner-hosted.test.ts), Propose with Claude (test/conversation-resume.test.ts), and a CLI regression against a scratch Spec Kit repository.bun run typecheckclean;bun test4042 pass, 1 skip, 0 fail.specify init --integration …flow (task 6.1), since thespecifyCLI was not available; the scratch v1.2-layout fixture covers it instead.🤖 Generated with Claude Code