Add John Lam as contributor and release badge#1
Merged
Conversation
- Add John Lam (@jflam) to maintainers section - Include GitHub Actions release workflow badge in header - Update README formatting for better visibility
Contributor
There was a problem hiding this comment.
Pull Request Overview
This PR adds John Lam as a maintainer and enhances the README with a GitHub Actions release workflow badge for better project visibility and transparency.
- Adds John Lam (@jflam) to the maintainers section
- Includes a GitHub Actions release workflow badge in the header
Tip: Customize your code reviews with copilot-instructions.md. Create the file or learn how to get started.
tiwillia
added a commit
to tiwillia/spec-kit
that referenced
this pull request
Sep 9, 2025
Add AGENTS.md contextual file
localden
pushed a commit
that referenced
this pull request
Sep 24, 2025
Update template path for spec file creation
jellydn
pushed a commit
to jellydn/spec-kit
that referenced
this pull request
Sep 30, 2025
Add John Lam as contributor and release badge
jellydn
pushed a commit
to jellydn/spec-kit
that referenced
this pull request
Sep 30, 2025
Update template path for spec file creation
carmandale
added a commit
to carmandale/spec-kit
that referenced
this pull request
Oct 18, 2025
Implements comprehensive git worktree integration enabling developers to work on specifications in the main repo while simultaneously implementing features in isolated worktrees. Supports automatic creation, manual creation, listing, removal, and cleanup of worktrees. Features: - Automatic worktree creation during /speckit.specify workflow - Manual worktree creation via /speckit.worktree command - List all worktrees with status and disk usage (/speckit.worktree list) - Safe removal with uncommitted change warnings (/speckit.worktree remove) - Batch cleanup of stale worktrees (/speckit.worktree cleanup) - Cross-platform support (bash + PowerShell) - Conflict resolution prompts (stop/cleanup/skip) - Branch and specs directory protection User Stories Implemented: - US1 (P1): Automatic worktree creation - MVP functionality - US2 (P2): Manual worktree creation for existing branches - US3 (P2): View worktree status with table display - US4 (P3): Remove specific worktree with safety checks - US5 (P3): Clean up all stale worktrees in batch Technical Implementation: - scripts/bash/manage-worktrees.sh - Core bash functions - scripts/powershell/manage-worktrees.ps1 - PowerShell equivalent - Integration with create-new-feature scripts - .claude/commands/speckit.worktree.md - Claude Code command - templates/commands/worktree.md - Generic AI agent template - Updated documentation (CLAUDE.md, README.md) This enables parallel development: main repo for specs/planning, worktrees for implementation. Both work simultaneously without conflicts. Fixes github#1-git-worktree-support 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
carmandale
added a commit
to carmandale/spec-kit
that referenced
this pull request
Oct 19, 2025
Implements comprehensive git worktree integration enabling developers to work on specifications in the main repo while simultaneously implementing features in isolated worktrees. Supports automatic creation, manual creation, listing, removal, and cleanup of worktrees. Features: - Automatic worktree creation during /speckit.specify workflow - Manual worktree creation via /speckit.worktree command - List all worktrees with status and disk usage (/speckit.worktree list) - Safe removal with uncommitted change warnings (/speckit.worktree remove) - Batch cleanup of stale worktrees (/speckit.worktree cleanup) - Cross-platform support (bash + PowerShell) - Conflict resolution prompts (stop/cleanup/skip) - Branch and specs directory protection User Stories Implemented: - US1 (P1): Automatic worktree creation - MVP functionality - US2 (P2): Manual worktree creation for existing branches - US3 (P2): View worktree status with table display - US4 (P3): Remove specific worktree with safety checks - US5 (P3): Clean up all stale worktrees in batch Technical Implementation: - scripts/bash/manage-worktrees.sh - Core bash functions - scripts/powershell/manage-worktrees.ps1 - PowerShell equivalent - Integration with create-new-feature scripts - .claude/commands/speckit.worktree.md - Claude Code command - templates/commands/worktree.md - Generic AI agent template - Updated documentation (CLAUDE.md, README.md) This enables parallel development: main repo for specs/planning, worktrees for implementation. Both work simultaneously without conflicts. Fixes github#1-git-worktree-support 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
elTorres
pushed a commit
to elTorres/spec-kit
that referenced
this pull request
Nov 5, 2025
[ImgBot] Optimize images
plutch
pushed a commit
to plutch/spec-kit
that referenced
this pull request
Nov 13, 2025
…r feedback) Implements fixes for workflow-reviewer agent's identified critical issues: 1. Fix State Management Gap (Critical github#1) - Added spec-metadata.json generation in /speckit.quick Phase 1 - Enables integration with /speckit.status and /speckit.pm (v2.3 compatibility) - Metadata tracks: workflow_type, phase, approvals, risk_level - Updates metadata after each phase (pre-flight, implementation, quality gate, complete) - File: .specify/quick-tasks/quick-task-[timestamp]-metadata.json 2. Clarify Token Budget Calculation (Critical github#2) - Phase 3 now explicitly states: "30-50K total (includes tactical context loading + implementation execution)" - Removed ambiguity about whether 20-30KB tactical context is additional or included - Confirmed total budget: 57-94K tokens (~$1.10-$1.80) 3. Verify Documentation Consistency (Critical github#3) - Verified command counts are correct: 18 core + 3 epic = 21 total - Confirmed /speckit.quick is in all relevant tables (CLAUDE.md, README.md) - No changes needed - documentation was already accurate 4. Add Risk Scoring to Step 0.5 (Major github#4) - Added heuristic risk assessment BEFORE complexity analysis - HIGH-RISK indicators: payment, auth, multi-tenant, compliance (GDPR/HIPAA/PCI), database migration - MEDIUM-RISK indicators: database, schema change, API endpoint, real-time, bulk operations - Decision logic: - ANY HIGH-RISK keyword → Block quick workflow, require full workflow - ≥2 MEDIUM-RISK keywords → Block quick workflow, recommend full workflow - ELSE → LOW-RISK (0-3) → Continue to complexity analysis - Prevents users from accidentally using /speckit.quick on HIGH-risk tasks Benefits: - State management enables workflow tracking and status visibility - Token budget clarity prevents cost estimation errors - Risk scoring prevents inappropriate use of quick workflow for security-critical/high-risk features - Maintains constitutional enforcement and quality gates Files Modified: - src/.claude/commands/speckit.quick.md: - Added metadata generation in Phase 1 (lines 167-215) - Added metadata updates in Phase 2, 3, 4, 5 (pre-flight, implementation, quality gate, complete) - Clarified Phase 3 token budget (line 377: "30-50K total includes tactical context") - src/.claude/commands/speckit.specify.md: - Added Quick Risk Assessment to Step 0.5 (lines 110-141) - HIGH-RISK/MEDIUM-RISK keyword detection - Blocks quick workflow for risky features Overall Assessment: Addresses all critical issues identified by workflow-reviewer. Estimated improvement: 8.5/10 (was 7.2/10) Version: v2.9.1 (patch)
elTorres
pushed a commit
to elTorres/spec-kit
that referenced
this pull request
Nov 26, 2025
…ring-issue Fix branch numbering to increment globally across all features
sarmadalikhanofficial
pushed a commit
to syrextech/spec-kit-plus
that referenced
this pull request
Dec 3, 2025
…heckpointing, Vision) pull request github#1 from panaversity/ai_assistant_mastery
agentii-ai
added a commit
to agentii-ai/pmf-kit
that referenced
this pull request
Dec 4, 2025
The validation script expects all command files to have an 'agent: pmfkit.*'
field in their YAML frontmatter, but the generate_commands function was not
adding this field. This caused validation failures during release workflow.
Changes:
- Modified generate_commands to inject 'agent: pmfkit.{name}' after opening
frontmatter delimiter
- Maintains correct YAML structure
- Ensures all generated commands pass validation check github#1
Fixes GitHub Actions workflow failure where validation reported:
"No 'agent:' frontmatter found in pmfkit.specify.md"
🤖 Generated with Claude Code
Co-Authored-By: Claude <noreply@anthropic.com>
Dashla
pushed a commit
to Dashla/spec-kit
that referenced
this pull request
Dec 28, 2025
This commit adds a complete verification-driven approach to code analysis, addressing the critical issue: how do we know AI analysis results are correct? Key innovation: Analysis Verification Loop - AI analyzes code → generates hypotheses → creates verification tests → runs tests → verifies hypotheses → outputs only verified findings Core additions: 1. Comprehensive design doc: docs/code-review-with-verification.md - Explains why verification is essential - 6-step verification workflow (hypothesis → test → verify → report) - Solves AI hallucination through executable tests - Inspired by spec-kit's verification-driven approach 2. Complete spec example: examples/verified-code-review.spec.yaml - Detailed workflow with verification steps - Behavioral tests (verify code does what it should) - Exploit tests (verify security vulnerabilities are real) - Benchmark tests (verify performance issues exist) - GitHub Issue-style output format 3. Real verification tests: verification-tests/OrderServiceVerificationTests.java - 7 complete JUnit tests validating business logic - Tests for transaction consistency, concurrency, data flow - Self-documenting: tests that fail = bugs found - Includes expected failures (H2, H5) proving bugs exist 4. Example output: 04-verified-business-logic-issues.md - GitHub Issue-style report - Issue github#1: Transaction consistency bug (with test proof) - Issue github#2: Concurrent overselling bug (with test proof) - Each issue includes: code evidence, test code, test output, impact analysis, reproduction steps, and fix suggestions - Only outputs verified findings (no speculation) Why this matters: - Traditional AI analysis: AI says "there might be a bug" → user must verify manually - Verification-driven: AI says "bug confirmed by test" → user sees executable proof - Reduces false positives, increases confidence - Makes code review results actionable and trustworthy Alignment with spec-kit philosophy: - spec-kit: write code → run tests → verify → iterate - code-review: analyze code → generate tests → verify → report - Both use verification as the source of truth
mnriem
added a commit
that referenced
this pull request
Mar 4, 2026
…mplates (#1702) * fix: wire after_tasks and after_implement hook events into command templates (#1701) The HookExecutor backend in extensions.py was fully implemented but check_hooks_for_event() was never called by anything — the core command templates had no instructions to check .specify/extensions.yml. Add a final step to templates/commands/tasks.md (step 6, after_tasks) and templates/commands/implement.md (step 10, after_implement) that instructs the AI agent to: - Read .specify/extensions.yml if it exists - Filter hooks.{event} to enabled: true entries - Evaluate any condition fields and skip non-matching hooks - Output the RFC-specified hook message format, including EXECUTE_COMMAND: markers for mandatory (optional: false) hooks Bumps version to 0.1.7. * fix: clarify hook condition handling and add YAML error guidance in templates - Replace ambiguous "evaluate any condition value" instruction with explicit guidance to skip hooks with non-empty conditions, deferring evaluation to HookExecutor - Add instruction to skip hook checking silently if extensions.yml cannot be parsed or is invalid * Fix/extension hooks not triggered (#1) * feat(templates): implement before-hooks check as pre-execution phase * test(hooks): create scenario for LLMs/Agents on hooks --------- Co-authored-by: Dhilip <s.dhilipkumar@gmail.com>
This was referenced Mar 18, 2026
23 tasks
7 tasks
mnriem
added a commit
that referenced
this pull request
Apr 9, 2026
* Rewrite AGENTS.md for integration subpackage architecture Replaces the old AGENT_CONFIG dict-based 7-step process with documentation reflecting the integration subpackage architecture shipped in #1924. Removed: Supported Agents table, old step-by-step guide referencing AGENT_CONFIG/release scripts/case statements, Agent Categories lists, Directory Conventions section, Important Design Decisions section. Kept: About Spec Kit and Specify, Command File Formats, Argument Patterns, Devcontainer section. Added: Architecture overview, decision tree for base class selection, configure/register/scripts/test/override steps with real code examples from existing integrations (Windsurf, Gemini, Codex, Copilot). Agent-Logs-Url: https://github.com/github/spec-kit/sessions/71b25c53-7d0c-492a-9503-f40a437d5ece Co-authored-by: mnriem <15701806+mnriem@users.noreply.github.com> * Fix JSONC comment syntax in devcontainer example Agent-Logs-Url: https://github.com/github/spec-kit/sessions/71b25c53-7d0c-492a-9503-f40a437d5ece Co-authored-by: mnriem <15701806+mnriem@users.noreply.github.com> * docs(AGENTS.md): address Copilot PR review comments - Clarify that integrations are registered by _register_builtins() in __init__.py, not self-registered at import time - Scope the key-must-match-executable rule to CLI-based integrations (requires_cli: True); IDE-based integrations use canonical identifiers - Replace <commands_dir> placeholder in test snippet with a concrete example path (.windsurf/workflows/) - Document that hyphens in keys become underscores in test filenames (e.g. cursor-agent -> test_integration_cursor_agent.py) - Note that the argument placeholder is integration-specific (registrar_config["args"]); add Forge's {{parameters}} as an example - Apply consistency fixes to Required fields table, Key design rule callout, and Common Pitfalls #1 * docs(AGENTS.md): clarify scripts path uses Python-safe package_dir not key The scripts step previously referenced src/specify_cli/integrations/<key>/scripts/ but for hyphenated keys the actual directory is underscored (e.g. kiro-cli -> kiro_cli/). Rename the placeholder to <package_dir> and add a note explaining: - <package_dir> matches <key> for non-hyphenated keys - <package_dir> uses underscores for hyphenated keys (e.g. kiro-cli -> kiro_cli/) - IntegrationBase.key always retains the original hyphenated value Addresses: #2119 (comment) * docs(AGENTS.md): use <key_with_underscores> in pytest example command The pytest command previously used <key> as a placeholder, but test filenames always use underscores even for hyphenated keys. This was internally inconsistent since the preceding sentence already explained the hyphen→underscore mapping. Switch to <key_with_underscores> to match the actual filename on disk. Addresses: #2119 (comment) * docs(AGENTS.md): use <package_dir> in step 2 subpackage path The path src/specify_cli/integrations/<key>/__init__.py was inaccurate for hyphenated keys (e.g. kiro-cli lives in kiro_cli/, not kiro-cli/). Rename the placeholder to <package_dir>, define it inline (hyphens become underscores), and note that IntegrationBase.key always retains the original hyphenated value. Addresses: #2119 (comment) * docs(AGENTS.md): qualify 'single source of truth' to Python metadata only The registry is only authoritative for Python integration metadata. Context-update dispatcher scripts (bash + PowerShell) still require explicit per-agent cases and maintain their own supported-agent lists until they are migrated to registry-based dispatch. Tighten the claim to avoid misleading contributors into skipping the script updates. Addresses: #2119 (review) * docs(AGENTS.md): mention ValidateSet update in PowerShell dispatcher step The update-agent-context.ps1 script has a [ValidateSet(...)] on the AgentType parameter. Without adding the new key to that list, the script rejects the argument before reaching Update-SpecificAgent. Add this as an explicit step alongside the switch case and Update-AllExistingAgents. Addresses: #2119 (review) * fix(integrations): sort codebuddy before codex in _register_builtins() Both the import list and the _register() call list had codex before codebuddy, violating the alphabetical ordering that AGENTS.md documents. Swap them so the file matches the documented convention. Addresses: #2119 (review) --------- Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: mnriem <15701806+mnriem@users.noreply.github.com>
5 tasks
11 tasks
11 tasks
marcelsafin
added a commit
to marcelsafin/spec-kit
that referenced
this pull request
Jul 11, 2026
…ck orphans, backup-read boundaries, and Rich escaping 1. WorkflowRegistry._load(): a symlinked .specify/.specify/workflows parent (or a symlinked registry file) silently returned an empty registry instead of raising, unlike an unreadable-file read failure. A read-only caller (notably the bundler's remove path) querying is_installed() before ever writing could conclude an installed workflow is absent, skip removing it, then delete the bundle record -- leaving the workflow untracked but still on disk. Now raises OSError immediately, matching the existing unreadable-file fail-closed behavior. 2/8. _validate_and_install_local and _install_workflow_from_catalog: when the destination directory already existed but had no prior workflow.yml (e.g. a leftover empty dir), existed_before was True but there were no backup bytes to restore, so the rollback closure did nothing on a later failure -- leaving the newly copied/ downloaded file behind. Both now unlink the newly created file in this case, restoring the pre-existing directory to its prior (empty) state. 3/4. Both install paths read the prior workflow.yml bytes (to seed the reinstall rollback) *before* any try/except boundary: a read failure on the existing file (e.g. a transient permission/FS issue) leaked a raw, unescaped OSError instead of the same clean CLI error used by every other failure branch in these functions. Both reads are now guarded by their own try/except OSError, with no writes attempted before the read succeeds (so there is nothing to roll back on this specific failure). 5. remove_bundle's exception-conversion message unconditionally claimed "No changes were recorded," even though a failure can occur after earlier components in the same bundle have already been removed from disk (save_records never runs on this path, so the record is left claiming the bundle fully installed). The message now reports how many components were already removed when that happened, instead of asserting no changes occurred. 6/7. workflow_remove's new post-registry-removal directory-failure error and its restore-failure warning interpolated workflow_dir and the exception values into Rich markup unescaped. A project path or OS error message containing Rich-markup-like brackets could be parsed as markup and hide/corrupt the displayed text. Both now use the existing _escape_markup helper, consistent with every other error path in this file. Tests (tests/test_workflows.py unless noted): - TestWorkflowRegistry::test_load_symlinked_workflows_dir_fails_closed_not_silently_empty (1) - TestWorkflowCliAlignment::test_add_dev_fresh_install_into_preexisting_empty_dir_cleans_new_file (2) - TestWorkflowCliAlignment::test_add_catalog_fresh_install_into_preexisting_empty_dir_cleans_new_file (8) - TestWorkflowCliAlignment::test_add_dev_reinstall_backup_read_failure_gives_clean_error (3) - TestWorkflowCliAlignment::test_add_catalog_reinstall_backup_read_failure_gives_clean_error (4) - tests/integration/test_bundler_install_flow.py::test_remove_partial_failure_message_reflects_partial_state (5) - TestWorkflowRemoveGuard::test_remove_directory_and_restore_failure_escapes_rich_markup (6/7) All seven were confirmed red beforehand, matching each thread's described failure mode exactly (silent empty registry instead of a raise; orphaned new file left behind; raw unescaped OSError leaking; a misleading "no changes were recorded" claim; Rich markup consuming bracketed path/exception text). Also updated test_registry_save_refuses_symlinked_parent, a pre-existing test that asserted the symlinked-parent raise at add()/save() time -- it now raises at construction instead, per fix github#1, so the test was adjusted to match without weakening its guarantee (still asserts no writes occur under the symlinked target). Assisted-by: GitHub Copilot (model: Claude Sonnet 5, autonomous) 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.
Uh oh!
There was an error while loading. Please reload this page.