Skip to content

feat: add spec-kit for spec-driven development with opencode#920

Closed
melatonin355 wants to merge 4 commits intoleits:masterfrom
melatonin355:feature/spec-kit-opencode
Closed

feat: add spec-kit for spec-driven development with opencode#920
melatonin355 wants to merge 4 commits intoleits:masterfrom
melatonin355:feature/spec-kit-opencode

Conversation

@melatonin355
Copy link
Copy Markdown

@melatonin355 melatonin355 commented Apr 23, 2026

Summary

  • Add GitHub Spec Kit for spec-driven development workflow
  • Configure OpenCode as the AI coding agent integration
  • Add project constitution with MeetingBar-specific principles
  • Update .gitignore to exclude speckitflow.md

Changes

  • specify CLI installed and project initialized
  • OpenCode integration configured (14 slash commands)
  • Constitution created with MeetingBar standards (SwiftLint, MVVM, privacy, etc.)
  • .specify/ committed for project governance
  • .opencode/ gitignored for agent data

Testing

  • Verified build still works
  • Spec-kit commands available in OpenCode

Notes

  • speckitflow.md kept local (gitignored) as personal reference
  • Constitution defines: Swift quality standards, architecture, menu-bar constraints, privacy, meeting service integration patterns

Summary by CodeRabbit

Release Notes

  • New Features

    • Added Git workflow extension with branch creation, validation, remote detection, and auto-commit capabilities
    • Added Spec Kit workflow configuration for specification-driven development
    • Added project templates and documentation for feature specification and implementation planning
  • Configuration

    • Extended .gitignore to exclude local session and temporary files
    • Configured code signing settings for the Xcode project
    • Added Spec Kit initialization and integration configuration

@dosubot dosubot Bot added size:XXL This PR changes 1000+ lines, ignoring generated files. feature New feature or request labels Apr 23, 2026
@coderabbitai
Copy link
Copy Markdown

coderabbitai Bot commented Apr 23, 2026

Caution

Review failed

The pull request is closed.

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Repository UI

Review profile: CHILL

Plan: Pro

Run ID: b6547b9d-569d-4d23-8ebc-8e310e6b2e26

📥 Commits

Reviewing files that changed from the base of the PR and between c4971f1 and e4309fc.

📒 Files selected for processing (40)
  • .gitignore
  • .specify/extensions.yml
  • .specify/extensions/.registry
  • .specify/extensions/git/README.md
  • .specify/extensions/git/commands/speckit.git.commit.md
  • .specify/extensions/git/commands/speckit.git.feature.md
  • .specify/extensions/git/commands/speckit.git.initialize.md
  • .specify/extensions/git/commands/speckit.git.remote.md
  • .specify/extensions/git/commands/speckit.git.validate.md
  • .specify/extensions/git/config-template.yml
  • .specify/extensions/git/extension.yml
  • .specify/extensions/git/git-config.yml
  • .specify/extensions/git/scripts/bash/auto-commit.sh
  • .specify/extensions/git/scripts/bash/create-new-feature.sh
  • .specify/extensions/git/scripts/bash/git-common.sh
  • .specify/extensions/git/scripts/bash/initialize-repo.sh
  • .specify/extensions/git/scripts/powershell/auto-commit.ps1
  • .specify/extensions/git/scripts/powershell/create-new-feature.ps1
  • .specify/extensions/git/scripts/powershell/git-common.ps1
  • .specify/extensions/git/scripts/powershell/initialize-repo.ps1
  • .specify/init-options.json
  • .specify/integration.json
  • .specify/integrations/opencode.manifest.json
  • .specify/integrations/speckit.manifest.json
  • .specify/memory/constitution.md
  • .specify/scripts/bash/check-prerequisites.sh
  • .specify/scripts/bash/common.sh
  • .specify/scripts/bash/create-new-feature.sh
  • .specify/scripts/bash/setup-plan.sh
  • .specify/templates/checklist-template.md
  • .specify/templates/constitution-template.md
  • .specify/templates/plan-template.md
  • .specify/templates/spec-template.md
  • .specify/templates/tasks-template.md
  • .specify/workflows/speckit/workflow.yml
  • .specify/workflows/workflow-registry.json
  • AGENTS.md
  • MeetingBar.xcodeproj/project.pbxproj
  • MeetingBar/Core/Managers/AGENTS.md
  • MeetingBar/Services/AGENTS.md

Walkthrough

This PR introduces a comprehensive Spec-Driven Development (SDD) framework for the MeetingBar project. It adds a .specify/ directory containing Git workflow automation, specification/task templates, configuration files, and execution scripts (Bash and PowerShell). Minor updates to .gitignore, Xcode project configuration, and project documentation (AGENTS.md files) are also included.

Changes

Cohort / File(s) Summary
Git Extension Infrastructure
.specify/extensions/git/extension.yml, .specify/extensions/git/config-template.yml, .specify/extensions/git/git-config.yml, .specify/extensions/git/README.md
Core extension definition, templates, and documentation for Git workflow integration with branch numbering, initialization, and auto-commit policies.
Git Extension Commands (Documentation)
.specify/extensions/git/commands/speckit.git.*
Five command specifications defining feature branch creation, validation, remote detection, repository initialization, and auto-commit behavior with expected inputs/outputs.
Bash Git Automation Scripts
.specify/extensions/git/scripts/bash/create-new-feature.sh, auto-commit.sh, initialize-repo.sh, git-common.sh
Cross-platform Bash implementations for Git operations including feature branch generation (sequential/timestamp modes), repository initialization, and intelligent auto-committing with configurable policies.
PowerShell Git Automation Scripts
.specify/extensions/git/scripts/powershell/create-new-feature.ps1, auto-commit.ps1, initialize-repo.ps1, git-common.ps1
Equivalent PowerShell implementations of Git automation scripts with UTF-8 branch-length enforcement and JSON output support.
Specification Workflow Scripts (Bash)
.specify/scripts/bash/common.sh, check-prerequisites.sh, create-new-feature.sh, setup-plan.sh
Core Bash utilities for feature path resolution, template composition, prerequisite validation, and feature/plan initialization supporting both human-readable and JSON output modes.
SDD Templates
.specify/templates/spec-template.md, plan-template.md, tasks-template.md, checklist-template.md, constitution-template.md
Markdown templates for specification documents, implementation plans, task lists, review checklists, and project constitution with structured sections and customization guidance.
Workflow & Integration Configuration
.specify/workflows/speckit/workflow.yml, .specify/workflows/workflow-registry.json, .specify/extensions/.registry, .specify/integration.json, .specify/integrations/*.manifest.json, .specify/init-options.json
YAML/JSON definitions registering the full SDD workflow cycle (specify→plan→tasks→implement with review gates), extension/integration manifests, and project initialization options.
Project Documentation & Constitution
AGENTS.md, .specify/memory/constitution.md, MeetingBar/Core/Managers/AGENTS.md, MeetingBar/Services/AGENTS.md
Project overview, architectural documentation, core manager/service layer descriptions, and enforceable quality/architectural rules (SwiftLint, MVVM-lite structure, EventKit patterns, macOS 10.15+ targeting).
Build Configuration & Exclusions
.gitignore, MeetingBar.xcodeproj/project.pbxproj
Excludes agent/LLM session data and personal docs; disables code signing across Debug/Release configurations, adds localization regions (zh-Hans, pt).

Estimated code review effort

🎯 4 (Complex) | ⏱️ ~60 minutes

Possibly related PRs

Suggested labels

size:XL, lgtm

Suggested reviewers

  • leits

Poem

🐰 A framework takes shape with scripts so grand,
Git branches dancing across the land,
Templates guide specs and tasks in line,
Workflows orchestrate—oh, how they shine!
From bash to PowerShell, cross-platform we go,
SDD infrastructure steals the show!

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@melatonin355
Copy link
Copy Markdown
Author

Sorry, i was developing locally and accidently created this. Great project!

@github-advanced-security
Copy link
Copy Markdown

You are seeing this message because GitHub Code Scanning has recently been set up for this repository, or this pull request contains the workflow file for the Code Scanning tool.

What Enabling Code Scanning Means:

  • The 'Security' tab will display more code scanning analysis results (e.g., for the default branch).
  • Depending on your configuration and choice of analysis tool, future pull requests will be annotated with code scanning analysis results.
  • You will be able to see the analysis results for the pull request's branch on this overview once the scans have completed and the checks have passed.

For more information about GitHub Code Scanning, check out the documentation.

Copy link
Copy Markdown

@github-advanced-security github-advanced-security AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Shellcheck (reported by Codacy) found more than 20 potential problems in the proposed changes. Check the Files changed tab for more details.

Copy link
Copy Markdown

@github-advanced-security github-advanced-security AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Remark-lint (reported by Codacy) found more than 20 potential problems in the proposed changes. Check the Files changed tab for more details.

}

if ($d1 -eq 0 -and $d2 -eq 0 -and -not $untracked) {
Write-Host "[specify] No changes to commit after $EventName" -ForegroundColor DarkGray
$ErrorActionPreference = $savedEAP
}

Write-Host "[OK] Changes committed $phase $commandName"
$ErrorActionPreference = 'Stop'

if ($Help) {
Write-Host "Usage: ./create-new-feature.ps1 [-Json] [-DryRun] [-AllowExistingBranch] [-ShortName <name>] [-Number N] [-Timestamp] <feature description>"

if ($Help) {
Write-Host "Usage: ./create-new-feature.ps1 [-Json] [-DryRun] [-AllowExistingBranch] [-ShortName <name>] [-Number N] [-Timestamp] <feature description>"
Write-Host ""
if ($Help) {
Write-Host "Usage: ./create-new-feature.ps1 [-Json] [-DryRun] [-AllowExistingBranch] [-ShortName <name>] [-Number N] [-Timestamp] <feature description>"
Write-Host ""
Write-Host "Options:"
Write-Host ""
Write-Host "Environment variables:"
Write-Host " GIT_BRANCH_NAME Use this exact branch name, bypassing all prefix/suffix generation"
Write-Host ""
} else {
try {
git fetch --all --prune 2>$null | Out-Null
} catch { }

if (-not $branchCreated) {
$currentBranch = ''
try { $currentBranch = (git rev-parse --abbrev-ref HEAD 2>$null).Trim() } catch {}
Write-Warning "[specify] Git repository already initialized; skipping"
exit 0
}
} catch { }
exit 1
}

Write-Host "✓ Git repository initialized"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

feature New feature or request size:XXL This PR changes 1000+ lines, ignoring generated files.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants