Guard Claude converge skill against unsupported argument hints#3005
Closed
Copilot wants to merge 2 commits into
Closed
Guard Claude converge skill against unsupported argument hints#3005Copilot wants to merge 2 commits into
converge skill against unsupported argument hints#3005Copilot wants to merge 2 commits into
Conversation
Copilot
AI
changed the title
[WIP] Fix code as per review comment
Guard Claude Jun 16, 2026
converge skill against unsupported argument hints
BenBtg
added a commit
to BenBtg/spec-kit
that referenced
this pull request
Jun 17, 2026
- Add speckit.converge Copilot agent and prompt files (github#3003) - Add regression test for Claude argument hints (github#3005) - Remove invalid converge entry from Claude argument hints - Fix documentation removing branch-prefix fallback claims Supersedes: github#3003, github#3005 Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2 tasks
Contributor
|
Superseded by #3001 — Claude regression test and argument hint fix have been folded in. |
mnriem
pushed a commit
that referenced
this pull request
Jun 17, 2026
* Add /speckit.converge SDD artifacts and project scaffolding
Dogfood the converge feature through Spec Kit's own workflow:
- spec.md, plan.md, tasks.md, research, data-model, contracts, quickstart
- requirements checklist for the feature
- ratified constitution v1.0.0 (.specify/memory)
- Specify project scaffolding (.specify/, .github agent + prompt files)
Defines a built-in /speckit.converge command that assesses spec/plan/tasks
against the codebase and appends remaining work as new tasks (no git, no
change tracking, append-only). Implementation not yet started.
Excludes unrelated working-tree changes to agents.py, extensions.py,
test_extensions.py, catalog.community.json, and README.md.
* Implement /speckit.converge command
Add the built-in converge command that assesses the codebase against a
feature's spec.md, plan.md, and tasks.md and appends remaining unbuilt work
as new traceable tasks to tasks.md (append-only; no git, no change tracking).
- templates/commands/converge.md: full command body (load artifacts, assess
code, classify findings missing/partial/contradicts/unrequested, append
'## Phase N — Convergence' tasks with source-ref + gap-type, read-only
guardrails, converged branch, handoff, before/after_converge hooks)
- Register converge as a core command across all enumeration sites
(SKILL_DESCRIPTIONS, _FALLBACK_CORE_COMMAND_NAMES, ARGUMENT_HINTS, and the
integration test command lists incl. copilot/generic file inventories)
- init.py Next Steps panel + README Core Commands table
- tasks.md: T001-T024 complete (T025 manual quickstart pending)
Full suite green: 2343 passed.
* Record quickstart validation results for /speckit.converge (T025)
All six quickstart scenarios validated (GitHub Copilot agent, macOS/zsh):
S1 gap->appended traceable task, S2 implement+re-converge, S3 converged leaves
tasks.md unchanged, S4 read-only boundaries, S5 missing-prereq stop, S6 cross-
integration install (copilot + windsurf). Automated suite: 2343 passed.
* Record 2026-06-16 re-verification results for /speckit.converge (T025)
* Potential fix for pull request finding
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
* Potential fix for pull request finding
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
* Fix integration upgrade deleting settings.json and dropping script +x
Two upgrade-path bugs surfaced during converge E2E validation:
- copilot upgrade stale-deleted .vscode/settings.json because setup() only tracks the file when it creates it; on upgrade the pre-existing file is merged and left untracked, so Phase 2 stale cleanup removed it. Add an integration-level stale_cleanup_exclusions() hook (CopilotIntegration returns {.vscode/settings.json}) and subtract it from stale_keys.
- shared .specify/scripts/*.sh lost their execute bit because the managed refresh rewrites them with the bundled source mode (often 0o644) and nothing restored perms. Call ensure_executable_scripts() after the managed-refresh block (POSIX only).
Add regression tests in TestIntegrationUpgrade covering both fixes (validated to fail without the fixes).
* fix: resolve markdownlint errors in PR files
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* chore: clean up runtime state files from PR
Remove .specify state files that are per-project runtime artifacts:
- feature.json, init-options.json, integration.json
- manifest files, extension registry, bug artifacts
These are generated by 'specify init' and should not be committed.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* feat: fold converge artifacts from #3003 and #3005
- Add speckit.converge Copilot agent and prompt files (#3003)
- Add regression test for Claude argument hints (#3005)
- Remove invalid converge entry from Claude argument hints
- Fix documentation removing branch-prefix fallback claims
Supersedes: #3003, #3005
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* chore: remove non-converge specify scaffolding from PR
Remove .specify/ artifacts, non-converge .github/agents and prompts,
and copilot-instructions.md that were generated by 'specify init'
and are not part of the converge command feature.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* chore: remove SDD spec artifacts from PR
Remove specs/001-converge-command/ — the spec/plan/tasks/research SDD
artifacts produced while building this feature. spec-kit does not track
a specs/ directory on main (those are outputs of running the workflow on
the repo, not part of the shipped tool).
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* chore: remove generated Copilot converge command files
Remove .github/agents/speckit.converge.agent.md and
.github/prompts/speckit.converge.prompt.md — these are generated by
'specify init --integration copilot' from templates/commands/converge.md
(all __SPECKIT_COMMAND_*__/{SCRIPT} tokens are resolved). main tracks no
.github/agents or .github/prompts files; the template is the source of truth.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* chore: split out unrelated integration-upgrade fix
Move the stale_cleanup_exclusions / executable-bit upgrade fix
(base.py, copilot, _migrate_commands.py, test_integration_subcommand.py)
out of this PR into its own change. This PR is now scoped purely to the
/speckit.converge command.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* fix: add converge to core command template ordering
converge is a core command in SKILL_DESCRIPTIONS but was missing from
_CORE_COMMAND_TEMPLATE_ORDER, so it sorted with the fallback rank. Add it
after 'implement' to keep core-command ordering consistent across
integrations.
Addresses review feedback on #3001.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* docs: make converge findings example neutral
Replace the self-referential sample evidence text in the Convergence
Findings table with a neutral placeholder so agents are less likely to copy
nonsensical template-specific findings into real output.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* Potential fix for pull request finding
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
* docs: clarify converge scope and hook outcome wording
- Remove FR-specific parenthetical from code-scope rule so it doesn't imply
a hard FR-001 reference exists in every feature
- Replace unsupported 'pass outcome to hook context' instruction with explicit
in-session outcome reporting before hook listing
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* docs: align converge task example with tasks format
Use (no colon) in the convergence task example so it
matches tasks-template formatting and downstream expectations.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* Clarification of usage
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
* Potential fix for pull request finding
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
* docs: align converge phase/task-id format with tasks template
- Use (colon) for consistency with tasks template
- Clarify appended task IDs must be zero-padded ( style)
- Update checklist example to a concrete zero-padded ID ()
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* docs: standardize converge phase heading format
Use consistently in converge.md (including the
append-only contract section) to match Step 7 and tasks template style.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
---------
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.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.
The Claude integration should not suggest that
/speckit-convergeaccepts a feature-name argument.convergerelies on existing feature context, so advertising an argument here is misleading.Regression guard
convergeis not present inARGUMENT_HINTS.Scope