Skip to content

chore(build): automate Speckit installation with Make targets#8

Merged
kimchanhyung98 merged 17 commits intomainfrom
copilot/automate-speckit-installation
Jan 2, 2026
Merged

chore(build): automate Speckit installation with Make targets#8
kimchanhyung98 merged 17 commits intomainfrom
copilot/automate-speckit-installation

Conversation

Copy link
Copy Markdown
Contributor

Copilot AI commented Jan 1, 2026

Standardize Speckit installation and usage with Makefile automation and documentation.

  • Tooling: New Makefile targets speckit-install, speckit-init, speckit-check, speckit-clean using a local venv; optional SPECKIT_VERSION with semver-like validation.
  • Docs: README updated (KR/EN) with install/init/check instructions, version pinning note, and CI usage example.

Example:

# Install latest or pinned version
make speckit-install
SPECKIT_VERSION=1.2.3 make speckit-install

# Initialize and run checks
make speckit-init
make speckit-check
Original prompt

This section details on the original issue you should resolve

<issue_title>Speckit 설치 및 Makefile 자동화 지원</issue_title>
<issue_description>base 레포에서 공통적인 speckit 도구 설치와 간편 실행을 Makefile로 자동화하는 작업입니다.

작업 내역

  • speckit 설치 방법 조사 및 표준화
  • Makefile에 speckit 관련 명령어(예: init, check) 추가
  • 설치 및 실행 예시 README.md에 문서화
  • 필요한 환경설정 및 워크플로우 예시(옵션)
    </issue_description>

Comments on the Issue (you are @copilot in this section)


✨ Let Copilot coding agent set things up for you — coding agent works faster and does higher quality work when set up for your repo.

Summary by CodeRabbit

  • Documentation

    • Added comprehensive Speckit quick-start guide with installation instructions, validation steps, cleanup procedures, and CI workflow examples
  • Chores

    • Introduced setup automation for environment initialization including Docker services, npm package installation, and database migrations

✏️ Tip: You can customize this high-level summary in your review settings.

@coderabbitai
Copy link
Copy Markdown
Contributor

coderabbitai bot commented Jan 1, 2026

Important

Review skipped

Bot user detected.

To trigger a single review, invoke the @coderabbitai review command.

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Note

Other AI code review bot(s) detected

CodeRabbit has detected other AI code review bot(s) in this pull request and will avoid duplicating their findings in the review comments. This may lead to a less comprehensive review.

📝 Walkthrough

Walkthrough

The pull request introduces a Makefile with public targets for spec-kit installation, agent-os configuration, and project initialization, alongside README.md documentation that provides Speckit quick-start instructions with multi-language support and command examples.

Changes

Cohort / File(s) Summary
Build Automation
Makefile
New targets: spec-kit (installs spec-kit with claude agent, validates specify), agent-os (configurable agent installation), init (Docker/Compose checks, .env setup, Docker services, npm install, Laravel migrations). Default goal set to help. PHONY declarations updated.
Documentation
README.md
Adds comprehensive Speckit quick-start guide with installation steps (latest and specific versions), validation, cleanup, and CI workflow examples. Includes multi-language content (Korean/English) and Makefile-based command examples.

Sequence Diagram(s)

sequenceDiagram
    participant User
    participant Make
    participant Docker
    participant npm
    participant Laravel

    User->>Make: make init
    activate Make
    
    Make->>Docker: Check Docker & Docker Compose
    Docker-->>Make: ✓ Present
    
    Make->>Make: Copy .env if missing
    
    Make->>Docker: Start Docker services
    Docker-->>Make: Services running
    
    Make->>npm: Install npm packages<br/>(in container)
    npm-->>Make: Dependencies installed
    
    Make->>Laravel: Run migrations<br/>with seeding
    Laravel-->>Make: Database initialized
    
    deactivate Make
    Make-->>User: Setup complete
Loading

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~10 minutes

Poem

🐰 Hoppy automations spring to life,
Makefile targets, free from strife!
Spec-kit hops, Docker starts with grace,
Init commands set the perfect pace.

Pre-merge checks

✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title accurately summarizes the main changes: adding Speckit make targets and documenting their setup in the README.
Linked Issues check ✅ Passed The PR implements all core requirements from issue #7: standardized speckit installation via Makefile targets (spec-kit, agent-os, init), documented setup in README, and environment configuration.
Out of Scope Changes check ✅ Passed All changes are scoped to the objectives: Makefile targets for speckit automation, README documentation, and supporting infrastructure (agent-os, Docker integration for init workflow).
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

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

Copilot AI and others added 13 commits January 1, 2026 06:34
Co-authored-by: kimchanhyung98 <60088641+kimchanhyung98@users.noreply.github.com>
Co-authored-by: kimchanhyung98 <60088641+kimchanhyung98@users.noreply.github.com>
Co-authored-by: kimchanhyung98 <60088641+kimchanhyung98@users.noreply.github.com>
Co-authored-by: kimchanhyung98 <60088641+kimchanhyung98@users.noreply.github.com>
Co-authored-by: kimchanhyung98 <60088641+kimchanhyung98@users.noreply.github.com>
Co-authored-by: kimchanhyung98 <60088641+kimchanhyung98@users.noreply.github.com>
Co-authored-by: kimchanhyung98 <60088641+kimchanhyung98@users.noreply.github.com>
Co-authored-by: kimchanhyung98 <60088641+kimchanhyung98@users.noreply.github.com>
Co-authored-by: kimchanhyung98 <60088641+kimchanhyung98@users.noreply.github.com>
Co-authored-by: kimchanhyung98 <60088641+kimchanhyung98@users.noreply.github.com>
Co-authored-by: kimchanhyung98 <60088641+kimchanhyung98@users.noreply.github.com>
Co-authored-by: kimchanhyung98 <60088641+kimchanhyung98@users.noreply.github.com>
Co-authored-by: kimchanhyung98 <60088641+kimchanhyung98@users.noreply.github.com>
Copilot AI changed the title [WIP] Add automation support for speckit installation in Makefile Add Speckit make targets with documented setup Jan 1, 2026
Copilot AI requested a review from kimchanhyung98 January 1, 2026 06:44
- Replace Python venv-based speckit with specify CLI (spec-kit target)
- Add agent-os installation with configurable agent selection
- Add Docker-based project initialization workflow (init target)
- Add interactive help system with color-coded command descriptions
- Remove semver validation logic in favor of simplified installation

BREAKING CHANGE: Removed speckit-install, speckit-init, speckit-check,
speckit-clean targets. Use 'make spec-kit' instead.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
@kimchanhyung98 kimchanhyung98 marked this pull request as ready for review January 1, 2026 10:07
Copilot AI review requested due to automatic review settings January 1, 2026 10:07
@kimchanhyung98
Copy link
Copy Markdown
Owner

@coderabbitai review
/gemini review

@coderabbitai
Copy link
Copy Markdown
Contributor

coderabbitai bot commented Jan 1, 2026

@kimchanhyung98: I'll review the changes in this PR now.

✅ Actions performed

Review triggered.

Note: CodeRabbit is an incremental review system and does not re-review already reviewed commits. This command is applicable only when automatic reviews are paused.

Copy link
Copy Markdown
Contributor

@gemini-code-assist gemini-code-assist bot left a comment

Choose a reason for hiding this comment

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

Code Review

This pull request introduces a Makefile to automate speckit workflows, which is a great idea. However, there's a significant mismatch between the implementation in the Makefile and the documentation in README.md. The Makefile contains targets like agent-os and a Laravel project init which seem unrelated to speckit, and it's missing the speckit-install, speckit-check, and speckit-clean targets documented in the README. Please synchronize the Makefile with the documentation to fulfill the PR's goal. I've left a few specific comments on the current Makefile content as well.

Comment thread Makefile
Comment on lines +1 to +63
.PHONY: spec-kit agent-os help init

.DEFAULT_GOAL := help

help: ## Show available commands
@awk 'BEGIN {FS = ":.*##"; printf "\nUsage:\n make \033[36m<target>\033[0m\n\nTargets:\n"} /^[a-zA-Z_-]+:.*?##/ { printf " \033[36m%-15s\033[0m %s\n", $$1, $$2 } /^##@/ { printf "\n\033[1m%s\033[0m\n", substr($$0, 5) } ' $(MAKEFILE_LIST)

spec-kit: ## Install spec-kit (default: claude)
@agent=$(word 2,$(MAKECMDGOALS)); \
if [ -z "$$agent" ]; then \
agent="claude"; \
echo "Using default agent: claude"; \
fi; \
if ! command -v specify >/dev/null 2>&1; then \
echo "[spec-kit] 'specify' not found."; \
echo "RUN: uv tool install specify-cli --from git+https://github.com/github/spec-kit.git"; \
exit 1; \
fi; \
yes | specify init --here --ai $$agent --script sh

agent-os: ## Install agent-os (default: claude)
@agent=$(word 2,$(MAKECMDGOALS)); \
script="$$HOME/agent-os/scripts/project-install.sh"; \
if [ -z "$$agent" ]; then \
agent="claude"; \
echo "Using default agent: claude"; \
fi; \
if [ ! -f "$$script" ]; then \
echo "[agent-os] 'agent-os' not found."; \
echo "RUN: curl -sSL https://raw.githubusercontent.com/buildermethods/agent-os/main/scripts/base-install.sh | bash"; \
exit 1; \
fi; \
echo "Installing agent-os with agent: $$agent"; \
if [ "$$agent" = "claude" ]; then \
yes | bash "$$script"; \
elif [ "$$agent" = "all" ]; then \
yes | bash "$$script" --agent-os-commands true --standards-as-claude-code-skills true; \
else \
yes | bash "$$script" --claude-code-commands false --use-claude-code-subagents false --standards-as-claude-code-skills true --agent-os-commands true; \
fi

init: ## Setup Project environment (Docker required)
@if ! command -v docker >/dev/null 2>&1; then \
echo "[init] 'docker' not found"; \
exit 1; \
fi; \
if ! docker compose version >/dev/null 2>&1; then \
echo "[init] 'docker compose' not found"; \
exit 1; \
fi; \
if [ ! -f .env ]; then \
echo "Copying .env.example to .env"; \
cp .env.example .env; \
fi; \
echo "Starting Docker containers"; \
docker compose up -d; \
echo "Installing npm packages"; \
docker run --rm -v $$(pwd):/app -w /app node:22-alpine npm install; \
echo "Running database migrations and seeders"; \
docker compose exec laravel.test php artisan migrate --seed

%:
@:
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

critical

This Makefile does not align with the functionality described in the pull request and documented in README.md. The README.md specifies speckit-install, speckit-init, speckit-check, and speckit-clean targets, but this file is missing most of them and contains unrelated targets (agent-os, init). The init target, for instance, appears to be for setting up a Laravel project. Please provide the correct Makefile that implements the documented speckit automation.

Comment thread Makefile
Comment on lines +9 to +13
@agent=$(word 2,$(MAKECMDGOALS)); \
if [ -z "$$agent" ]; then \
agent="claude"; \
echo "Using default agent: claude"; \
fi; \
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

medium

The method of parsing arguments using MAKECMDGOALS is unconventional for Makefiles and can be brittle. A more standard and robust approach is to use Makefile variables passed as environment variables. This allows users to run commands like make spec-kit agent=claude, which is more explicit than make spec-kit claude. You can then use shell parameter expansion to provide a default value.

	@agent=$${agent:-claude}; \
	echo "Using agent: $$agent";

Comment thread Makefile

agent-os: ## Install agent-os (default: claude)
@agent=$(word 2,$(MAKECMDGOALS)); \
script="$$HOME/agent-os/scripts/project-install.sh"; \
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

medium

The script path is hardcoded relative to $HOME. This makes the target less portable as it assumes agent-os is always installed in ~/agent-os. It would be more robust to either check for the script in the system's PATH (e.g., using command -v project-install.sh) or allow the path to be overridden via a Makefile variable.

Copy link
Copy Markdown
Contributor

@gemini-code-assist gemini-code-assist bot left a comment

Choose a reason for hiding this comment

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

Code Review

This pull request aims to standardize Speckit installation and usage through a Makefile, and the README has been updated accordingly. However, there is a major discrepancy between the implemented Makefile and the documentation. The Makefile contains targets (spec-kit, agent-os, init) that seem to belong to a different project and tool (spec-kit), while the README.md and PR description detail targets for speckit (speckit-install, speckit-init, speckit-check, and speckit-clean). This core inconsistency needs to be resolved for the PR to be effective.

Comment thread Makefile
Comment on lines +1 to +63
.PHONY: spec-kit agent-os help init

.DEFAULT_GOAL := help

help: ## Show available commands
@awk 'BEGIN {FS = ":.*##"; printf "\nUsage:\n make \033[36m<target>\033[0m\n\nTargets:\n"} /^[a-zA-Z_-]+:.*?##/ { printf " \033[36m%-15s\033[0m %s\n", $$1, $$2 } /^##@/ { printf "\n\033[1m%s\033[0m\n", substr($$0, 5) } ' $(MAKEFILE_LIST)

spec-kit: ## Install spec-kit (default: claude)
@agent=$(word 2,$(MAKECMDGOALS)); \
if [ -z "$$agent" ]; then \
agent="claude"; \
echo "Using default agent: claude"; \
fi; \
if ! command -v specify >/dev/null 2>&1; then \
echo "[spec-kit] 'specify' not found."; \
echo "RUN: uv tool install specify-cli --from git+https://github.com/github/spec-kit.git"; \
exit 1; \
fi; \
yes | specify init --here --ai $$agent --script sh

agent-os: ## Install agent-os (default: claude)
@agent=$(word 2,$(MAKECMDGOALS)); \
script="$$HOME/agent-os/scripts/project-install.sh"; \
if [ -z "$$agent" ]; then \
agent="claude"; \
echo "Using default agent: claude"; \
fi; \
if [ ! -f "$$script" ]; then \
echo "[agent-os] 'agent-os' not found."; \
echo "RUN: curl -sSL https://raw.githubusercontent.com/buildermethods/agent-os/main/scripts/base-install.sh | bash"; \
exit 1; \
fi; \
echo "Installing agent-os with agent: $$agent"; \
if [ "$$agent" = "claude" ]; then \
yes | bash "$$script"; \
elif [ "$$agent" = "all" ]; then \
yes | bash "$$script" --agent-os-commands true --standards-as-claude-code-skills true; \
else \
yes | bash "$$script" --claude-code-commands false --use-claude-code-subagents false --standards-as-claude-code-skills true --agent-os-commands true; \
fi

init: ## Setup Project environment (Docker required)
@if ! command -v docker >/dev/null 2>&1; then \
echo "[init] 'docker' not found"; \
exit 1; \
fi; \
if ! docker compose version >/dev/null 2>&1; then \
echo "[init] 'docker compose' not found"; \
exit 1; \
fi; \
if [ ! -f .env ]; then \
echo "Copying .env.example to .env"; \
cp .env.example .env; \
fi; \
echo "Starting Docker containers"; \
docker compose up -d; \
echo "Installing npm packages"; \
docker run --rm -v $$(pwd):/app -w /app node:22-alpine npm install; \
echo "Running database migrations and seeders"; \
docker compose exec laravel.test php artisan migrate --seed

%:
@:
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

critical

The content of this Makefile does not align with the stated goal of this pull request, which is to add automation for speckit. The targets defined here (spec-kit, agent-os, init) appear to be for a different tool (spec-kit) and project (involving agent-os and Laravel). They do not match the speckit-* targets (speckit-install, speckit-init, etc.) described in the README.md and the pull request description. Please replace this with the correct Makefile content that implements the speckit automation.

Comment thread README.md Outdated
Comment on lines +3 to +52
## Speckit 사용 방법 / Quick Guide

Speckit CLI를 프로젝트 내에서 동일하게 사용할 수 있도록 Makefile로 래핑했습니다. Python 3와 make만 있으면 됩니다.

Speckit commands are wrapped in the Makefile so you can install and run them consistently with only Python 3 and make.

### 설치

로컬 가상환경(`.venv`)에 Speckit을 설치합니다. 필요 시 버전을 고정해 사용할 수 있습니다.

```bash
# 최신 버전
make speckit-install

# 특정 버전 설치
SPECKIT_VERSION=0.2.0 make speckit-install

# 사용 가능한 버전 확인 (예시)
pip index versions speckit
```

### 초기화 및 검증

```bash
# 초기 설정 (예: 템플릿 생성)
make speckit-init

# 규칙 검증
make speckit-check
```

### 정리

```bash
make speckit-clean
```

### CI/워크플로우 예시 (옵션)

CI에서 동일한 명령을 재사용할 수 있습니다.

```yaml
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
with:
python-version: '3.x'
- run: make speckit-install
- run: make speckit-check
```
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

high

The instructions and examples in this README refer to make targets like speckit-install, speckit-init, and speckit-check. However, these targets are not defined in the Makefile included in this pull request. The documentation needs to be synchronized with the actual implementation in the Makefile.

Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

This PR aims to add Speckit automation to the repository with Makefile targets and documentation. However, there is a critical mismatch between the documented functionality and the actual implementation. The README documents targets like speckit-install, speckit-init, speckit-check, and speckit-clean that do not exist in the Makefile. Instead, the Makefile contains unrelated targets (spec-kit, agent-os, init) that serve different purposes and use different tools than documented.

Key Issues:

  • The documented Speckit targets are completely missing from the Makefile implementation
  • Prerequisites and installation methods documented in README don't match the actual Makefile requirements
  • Version pinning feature (SPECKIT_VERSION) is documented but not implemented

Reviewed changes

Copilot reviewed 2 out of 2 changed files in this pull request and generated 12 comments.

File Description
README.md Adds Korean and English documentation for Speckit usage, including installation, initialization, validation, and CI examples - but documents non-existent targets
Makefile Adds targets for spec-kit, agent-os, and Docker/Laravel initialization - but these don't match what's documented in the README

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread Makefile
@@ -0,0 +1,63 @@
.PHONY: spec-kit agent-os help init
Copy link

Copilot AI Jan 1, 2026

Choose a reason for hiding this comment

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

The .PHONY declaration lists spec-kit but the documented targets speckit-install, speckit-init, speckit-check, and speckit-clean are missing. The .PHONY declaration should include all phony targets to prevent conflicts with files of the same name.

Suggested change
.PHONY: spec-kit agent-os help init
.PHONY: spec-kit speckit-install speckit-init speckit-check speckit-clean agent-os help init

Copilot uses AI. Check for mistakes.
Comment thread Makefile
echo "Running database migrations and seeders"; \
docker compose exec laravel.test php artisan migrate --seed

%:
Copy link

Copilot AI Jan 1, 2026

Choose a reason for hiding this comment

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

The catch-all pattern rule at the end silently ignores unknown targets, which masks errors when users mistype target names. For example, if a user types make speckit-install (as documented), it will succeed silently without doing anything instead of showing an error. This catch-all should be removed or modified to show an error for undefined targets.

Suggested change
%:
%:
@if [ "$@" = "$(word 1,$(MAKECMDGOALS))" ]; then \
echo "make: *** No rule to make target '$@'."; \
exit 1; \
fi; \

Copilot uses AI. Check for mistakes.
Comment thread README.md Outdated
Comment on lines +20 to +21
# 사용 가능한 버전 확인 (예시)
pip index versions speckit
Copy link

Copilot AI Jan 1, 2026

Choose a reason for hiding this comment

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

The instruction to check available versions using pip index versions speckit is inconsistent with the actual installation method. The Makefile uses uv tool install from a GitHub repository, not pip from PyPI. This command won't help users find valid versions for the actual installation method being used.

Suggested change
# 사용 가능한 버전 확인 (예시)
pip index versions speckit
# 사용 가능한 버전 확인 (예시):
# Speckit GitHub 저장소의 Releases/Tags 페이지에서 사용할 버전을 확인하세요.

Copilot uses AI. Check for mistakes.
Comment thread README.md Outdated

```bash
# 최신 버전
make speckit-install
Copy link

Copilot AI Jan 1, 2026

Choose a reason for hiding this comment

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

The documented target speckit-install does not exist in the Makefile. The Makefile contains a target named spec-kit (with a hyphen) instead, which has completely different functionality (it runs specify init rather than installing speckit). The documented targets speckit-install, speckit-init, speckit-check, and speckit-clean need to be implemented in the Makefile to match this documentation.

Copilot uses AI. Check for mistakes.
Comment thread README.md Outdated
Comment on lines +5 to +7
Speckit CLI를 프로젝트 내에서 동일하게 사용할 수 있도록 Makefile로 래핑했습니다. Python 3와 make만 있으면 됩니다.

Speckit commands are wrapped in the Makefile so you can install and run them consistently with only Python 3 and make.
Copy link

Copilot AI Jan 1, 2026

Choose a reason for hiding this comment

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

The documentation states that only Python 3 and make are required, and mentions using a local virtual environment (.venv). However, the actual Makefile implementation requires uv and the specify CLI tool (installed via uv tool install), which is a different installation mechanism than what's documented here. The prerequisites and installation method need to be corrected to match the actual implementation.

Copilot uses AI. Check for mistakes.
Comment thread README.md Outdated
Comment on lines +34 to +39
### 정리

```bash
make speckit-clean
```

Copy link

Copilot AI Jan 1, 2026

Choose a reason for hiding this comment

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

The documented target speckit-clean does not exist in the Makefile. This target needs to be implemented to match the documentation.

Suggested change
### 정리
```bash
make speckit-clean
```

Copilot uses AI. Check for mistakes.
Comment thread Makefile
help: ## Show available commands
@awk 'BEGIN {FS = ":.*##"; printf "\nUsage:\n make \033[36m<target>\033[0m\n\nTargets:\n"} /^[a-zA-Z_-]+:.*?##/ { printf " \033[36m%-15s\033[0m %s\n", $$1, $$2 } /^##@/ { printf "\n\033[1m%s\033[0m\n", substr($$0, 5) } ' $(MAKEFILE_LIST)

spec-kit: ## Install spec-kit (default: claude)
Copy link

Copilot AI Jan 1, 2026

Choose a reason for hiding this comment

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

The target name uses an inconsistent naming convention with a hyphen spec-kit instead of following the pattern speckit-* documented in the README. This creates confusion as the documentation refers to speckit-install, speckit-init, etc., but the actual target is named spec-kit. Consider renaming to speckit or implementing the documented targets like speckit-install for consistency.

Copilot uses AI. Check for mistakes.
Comment thread Makefile
yes | bash "$$script" --claude-code-commands false --use-claude-code-subagents false --standards-as-claude-code-skills true --agent-os-commands true; \
fi

init: ## Setup Project environment (Docker required)
Copy link

Copilot AI Jan 1, 2026

Choose a reason for hiding this comment

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

The init target is documented as installing npm packages and running Laravel migrations, but it shares the same name as what appears to be a Speckit initialization command in the README (line 28 shows make speckit-init). This creates ambiguity. The Docker/Laravel init target should have a more specific name like docker-init or laravel-init to avoid confusion with Speckit initialization.

Copilot uses AI. Check for mistakes.
Comment thread README.md Outdated
Comment on lines +14 to +19
# 최신 버전
make speckit-install

# 특정 버전 설치
SPECKIT_VERSION=0.2.0 make speckit-install

Copy link

Copilot AI Jan 1, 2026

Choose a reason for hiding this comment

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

The documentation shows version pinning with SPECKIT_VERSION=0.2.0, but the Makefile does not support any version parameter. The spec-kit target in the Makefile does not accept or use a SPECKIT_VERSION environment variable, so this documented feature is not implemented.

Suggested change
# 최신 버전
make speckit-install
# 특정 버전 설치
SPECKIT_VERSION=0.2.0 make speckit-install
# 최신 버전 설치 (현재 Makefile은 항상 최신 버전을 설치합니다.)
make speckit-install

Copilot uses AI. Check for mistakes.
Comment thread README.md Outdated
Comment on lines +50 to +51
- run: make speckit-install
- run: make speckit-check
Copy link

Copilot AI Jan 1, 2026

Choose a reason for hiding this comment

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

The CI example uses make targets (speckit-install and speckit-check) that don't exist in the Makefile. This example will fail if users try to use it. The targets need to be implemented or the example needs to be updated to use the actual targets.

Suggested change
- run: make speckit-install
- run: make speckit-check
- run: make install
- run: make check

Copilot uses AI. Check for mistakes.
Copy link
Copy Markdown
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 1

🧹 Nitpick comments (2)
Makefile (2)

21-40: Document supported agents and flag usage for agent-os target.

The agent-os target supports three branches (claude, all, other) but there's no documentation of:

  • What agents are valid for the "other" case (line 39)
  • What each flag combination (--agent-os-commands, --standards-as-claude-code-skills, etc.) does
  • Whether the flag combinations are stable across agent-os versions

Consider adding inline comments or updating the README to clarify supported agents and usage.


62-63: Consider adding feedback to catch-all target to prevent silent typos.

The catch-all % target is necessary to support the $(word 2,$(MAKECMDGOALS)) pattern in spec-kit and agent-os. Currently it silently succeeds, which means typos like make spec-kit typo will not error.

Consider documenting this in code comments, or alternately, providing a warning when non-existent targets are invoked:

%:
	@echo "Warning: target '$@' not found"; true
📜 Review details

Configuration used: defaults

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between af441c2 and 5e8ce01.

📒 Files selected for processing (2)
  • Makefile
  • README.md
🧰 Additional context used
🪛 checkmake (0.2.2)
Makefile

[warning] 42-42: Target body for "init" exceeds allowed length of 5 (18).

(maxbodylength)


[warning] 1-1: Missing required phony target "all"

(minphony)


[warning] 1-1: Missing required phony target "clean"

(minphony)


[warning] 1-1: Missing required phony target "test"

(minphony)

🔇 Additional comments (3)
Makefile (3)

1-6: ✓ Help target and phony declarations look good.

The awk-based help formatter correctly parses target descriptions and the default goal routing is appropriate.


8-19: Clarify the $(word 2,$(MAKECMDGOALS)) pattern and consider documenting it.

The target relies on extracting the agent name via $(word 2,$(MAKECMDGOALS)) which requires the catch-all % target to prevent Make from trying to build invalid agent names as targets. While functional, this can silently ignore typos (e.g., make spec-kit typo will not error).

Consider documenting this pattern in a comment or the help target, or document expected usage (e.g., "make spec-kit claude" or "make spec-kit" for default).


42-60: Remove or replace the init target — it is incompatible with this repository.

This repository is a Speckit CLI template requiring only Python 3 and make (per README.md). The init target references Laravel, Docker Compose, npm, and a .env.example file that do not exist in this repository. Line 51 will immediately fail (cp .env.example .env fails when the file doesn't exist), and line 60 cannot work without a docker-compose.yml and laravel.test service.

This target appears to have been copy-pasted from a Laravel Docker project and should either be removed or the repository should be clarified if it is meant to serve a different purpose than documented.

Likely an incorrect or invalid review comment.

Comment thread README.md Outdated
Comment on lines +1 to +52
# base

## Speckit 사용 방법 / Quick Guide

Speckit CLI를 프로젝트 내에서 동일하게 사용할 수 있도록 Makefile로 래핑했습니다. Python 3와 make만 있으면 됩니다.

Speckit commands are wrapped in the Makefile so you can install and run them consistently with only Python 3 and make.

### 설치

로컬 가상환경(`.venv`)에 Speckit을 설치합니다. 필요 시 버전을 고정해 사용할 수 있습니다.

```bash
# 최신 버전
make speckit-install

# 특정 버전 설치
SPECKIT_VERSION=0.2.0 make speckit-install

# 사용 가능한 버전 확인 (예시)
pip index versions speckit
```

### 초기화 및 검증

```bash
# 초기 설정 (예: 템플릿 생성)
make speckit-init

# 규칙 검증
make speckit-check
```

### 정리

```bash
make speckit-clean
```

### CI/워크플로우 예시 (옵션)

CI에서 동일한 명령을 재사용할 수 있습니다.

```yaml
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
with:
python-version: '3.x'
- run: make speckit-install
- run: make speckit-check
```
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🔴 Critical

🧩 Analysis chain

🏁 Script executed:

# First, let's find and examine the Makefile
find . -name "Makefile" -o -name "makefile" | head -20

Repository: kimchanhyung98/base

Length of output: 73


🏁 Script executed:

# Also check the README structure
find . -name "README*" | head -20

Repository: kimchanhyung98/base

Length of output: 74


🏁 Script executed:

cat -n ./Makefile

Repository: kimchanhyung98/base

Length of output: 2808


🏁 Script executed:

head -52 ./README.md

Repository: kimchanhyung98/base

Length of output: 879


Update README to document actual Makefile targets.

The README documents make speckit-install, make speckit-init, make speckit-check, and make speckit-clean commands, but the Makefile implements only spec-kit, agent-os, init, and help targets. The README describes a Python venv-based Speckit workflow that no longer exists, while the actual Makefile implements a spec-kit and agent-os agent-based workflow with Docker initialization.

Following the README instructions will result in command not found errors. Update the README to document the actual targets and their usage.

🤖 Prompt for AI Agents
In README.md around lines 1 to 52, the docs list make targets (speckit-install,
speckit-init, speckit-check, speckit-clean) and a venv-based workflow that no
longer exist; update the README to match the actual Makefile targets (spec-kit,
agent-os, init, help) and the current Docker/agent-based initialization flow.
Replace the installation and init sections with brief usage examples for each
real target (how to run spec-kit, how to run agent-os, how to run init and
help), remove or rework the Python .venv instructions, and update the CI snippet
to invoke the correct make targets and any required Docker/setup steps; keep
bilingual (Korean/English) wording consistent and ensure examples use the actual
commands and environment variables required by the Makefile.

@kimchanhyung98 kimchanhyung98 changed the title Add Speckit make targets with documented setup chore(build): automate Speckit installation with Make targets Jan 1, 2026
Removed detailed usage instructions and examples from the README, leaving only the project title. This streamlines the README, possibly in preparation for new documentation or restructuring.
@kimchanhyung98 kimchanhyung98 merged commit c04345e into main Jan 2, 2026
4 checks passed
@kimchanhyung98 kimchanhyung98 deleted the copilot/automate-speckit-installation branch January 2, 2026 15:56
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Speckit 설치 및 Makefile 자동화 지원

3 participants