bama
BAMA: Build Any Mac App. Agent skills to research, clone, design, build, optimize, and test native macOS apps with Swift and SwiftUI.
翻譯準備中
以 Plan-Do-Check-Act 方法論結合 TDD 與重構,由人類監督的 AI 程式碼生成。可作為 Claude Code 技能或獨立提示使用。
AI 翻譯
Human-supervised AI code generation using Plan-Do-Check-Act methodology with TDD and refactoring. Works as Claude Code skill or standalone prompts.
技能Python · ShellGitHub @kenjudy自行安裝營運者未確認
試用過了嗎? 點一下就好,不需要登入。
正在確認登入狀態。
正在載入完整 README。 以下為已儲存的摘錄。
A Claude skill for human-supervised AI-assisted software development using Plan-Do-Check-Act methodology. Enforces explicit human-AI role separation, mandatory STOP gates, and TDD discipline.
Looking to build a custom AI workflow for any domain? See human-directed-ai-workflow-builder — generates a tailored PDCA skill for any complex repeatable task, with a built-in learning loop that sharpens it each cycle.檢視完整 README ↗A Claude skill for human-supervised AI-assisted software development using Plan-Do-Check-Act methodology. Enforces explicit human-AI role separation, mandatory STOP gates, and TDD discipline.
Looking to build a custom AI workflow for any domain? See human-directed-ai-workflow-builder — generates a tailored PDCA skill for any complex repeatable task, with a built-in learning loop that sharpens it each cycle.
Already know the framework and just need a reference? See CHEATSHEET.md — a one-page guide to running a PDCA session: what to say at each phase, and what only the human operator can catch.
Install once, auto-triggers when coding
📦 Get started with Standard Skill →
Standard skill + persistent task tracking across sessions
🎯 Get started with Beads Skill →
Copy/paste prompts as needed for each session
.claude/ directory📝 Get started with Manual Prompts →
| Use Case | Recommended Approach |
|---|---|
| Learning the framework | Start with Manual Prompts to understand each phase |
| Quick bug fix (single session) | Standard Skill for convenience |
| Regular coding sessions | Standard Skill for consistent workflow |
| Multi-day features | Beads Skill for cross-session continuity |
| Complex epics with dependencies | Beads Skill for task graph tracking |
| Team standardization | Standard Skill ensures consistency |
| Want searchable retrospectives | Beads Skill for git-backed learnings |
| Custom workflows | Manual Prompts for full flexibility |
| Non-Claude AI tools | Manual Prompts (skill is Claude-specific) |
You can mix and match! Many users:
If you installed the Standard Skill via the Claude Code plugin marketplace
(claude plugin install pdca), you already have this — it installs the skill and five
thin router commands (/pdca:plan, /pdca:do, /pdca:check, /pdca:act, plus
/pdca:cycle as an explicit full-cycle alias) together in one step.
If you installed the skill manually instead, this is an add-on: install-skill.sh
places five equivalent commands (/pdca-plan, /pdca-do, /pdca-check, /pdca-act,
/pdca) alongside it. Either form lets you invoke a single phase directly instead of
running the full cycle; /pdca:plan//pdca-plan sequences PLAN's own two sub-steps
(1a Analysis, then 1b Detailed Planning) rather than collapsing them.
📦 Get started with Per-Phase Commands →
Research shows AI code generation without human oversight leads to measurable quality degradation:
PDCA Framework keeps humans actively engaged, empowered, and accountable while using structured prompts to regulate agent behavior toward transparency and discipline.
Read the full framework paper: SOSA 2025 Notes — Presentation prepared for XP 2026
The PDCA workflow consists of four phases:
The rest of this document describes how to set up the manual prompt workflow in Claude Code using symlinked files.
For the installable skill setup (recommended), see skill/README.md instead.
Windows only: Windows 10/11 with Developer Mode enabled (for symlinks without admin rights)
After setup, your project should have:
your-project/
├── .claude/
│ ├── instructions.md # Main workflow instructions
│ ├── prompts/ # Symlinked phase templates
│ │ ├── 1a Analyze to determine approach for achieving the goal.md
│ │ ├── 1b Create a detailed implementation plan.md
│ │ ├── 2. Test Drive the Change.md
│ │ ├── 3. Completeness Check.md
│ │ └── 4. Retrospect for continuous improvement.md
│ └── validation.md # Pre-commit checklist
├── .claudeignore # Files for Claude to ignore
└── LinkPrompts.ps1 # Windows only: script to create symlinks
git config core.symlinks true
Windows only: Enable Developer Mode first:
macOS/Linux:
mkdir -p .claude/prompts
Windows (PowerShell):
New-Item -ItemType Directory -Path ".claude\prompts" -Force
macOS/Linux:
# Replace $TEMPLATES_PATH with your actual path to the PDCA templates
TEMPLATES_PATH="/path/to/pdca-templates"
ln -s "$TEMPLATES_PATH/1. Plan/1a Analyze to determine approach for achieving the goal.md" \
".claude/prompts/1a Analyze to determine approach for achieving the goal.md"
ln -s "$TEMPLATES_PATH/1. Plan/1b Create a detailed implementation plan.md" \
".claude/prompts/1b Create a detailed implementation plan.md"
ln -s "$TEMPLATES_PATH/2. Do/2. Test Drive the Change.md" \
".claude/prompts/2. Test Drive the Change.md"
ln -s "$TEMPLATES_PATH/3. Check/3. Completeness Check.md" \
".claude/prompts/3. Completeness Check.md"
ln -s "$TEMPLATES_PATH/4. Act/4. Retrospect for continuous improvement.md" \
".claude/prompts/4. Retrospect for continuous improvement.md"
Windows (PowerShell):
$TEMPLATES_PATH = "C:\path\to\pdca-templates"
New-Item -ItemType SymbolicLink -Path ".claude\prompts\1a Analyze to determine approach for achieving the goal.md" -Target "$TEMPLATES_PATH\1. Plan\1a Analyze to determine approach for achieving the goal.md"
New-Item -ItemType SymbolicLink -Path ".claude\prompts\1b Create a detailed implementation plan.md" -Target "$TEMPLATES_PATH\1. Plan\1b Create a detailed implementation plan.md"
New-Item -ItemType SymbolicLink -Path ".claude\prompts\2. Test Drive the Change.md" -Target "$TEMPLATES_PATH\2. Do\2. Test Drive the Change.md"
New-Item -ItemType SymbolicLink -Path ".claude\prompts\3. Completeness Check.md" -Target "$TEMPLATES_PATH\3. Check\3. Completeness Check.md"
New-Item -ItemType SymbolicLink -Path ".claude\prompts\4. Retrospect for continuous improvement.md" -Target "$TEMPLATES_PATH\4. Act\4. Retrospect for continuous improvement.md"
.claudeignoreCreate .claudeignore in your project root with patterns appropriate for your stack. Example:
# Build outputs
**/bin
**/obj
**/dist
**/build
node_modules/
# IDE and editor files
**/.vs
**/.idea
**/.vscode
# OS files
**/.DS_Store
**/Thumbs.db
# Test outputs
**/TestResults
**/*.trx
**/coverage/
# Logs
*.log
# Git
.git/
.claude/instructions.mdCreate the main instructions file that Claude Code will read automatically (see section below).
.claude/validation.md (Optional)Create a validation checklist for pre-commit checks (see section below).
.claude/instructions.md# Project Development Workflow
This project follows a strict PDCA (Plan-Do-Check-Act) development process with TDD discipline.
## Workflow Phases
### Phase 1a: Analysis (MANDATORY FIRST)
- Execute codebase_search to discover existing patterns
- Validate external system formats before making assumptions
- Document architectural constraints
- Assess delegation complexity
### Phase 1b: Planning
- Create numbered, atomic implementation steps
- Define testing strategy (TDD with red-green-refactor)
- Identify integration touch points
- Plan for incremental delivery
### Phase 2: Test-Driven Implementation
**CRITICAL RULES:**
- ❌ DON'T test interfaces - test concrete implementations
- ❌ DON'T use compilation errors as RED phase
- ✅ DO write failing behavioral tests FIRST
- ✅ DO use real components over mocks
- Max 3 iterations per red-green cycle
### Phase 3: Completeness Check
- Verify all objectives met
- Audit process discipline
- Confirm no TODOs remain
### Phase 4: Retrospection
- Analyze critical moments
- Extract actionable insights
- Update working agreements
## Process Checkpoints
Before proceeding with implementation:
- [ ] Have I searched for similar implementations?
- [ ] Have I validated external system formats?
- [ ] Have I written a FAILING test first?
- [ ] Am I implementing ONLY enough to pass the test?
## Detailed Phase Instructions
See `.claude/prompts/` directory for detailed instructions for each phase.
.claude/validation.md## Pre-Commit Validation Checklist
Before each commit, verify:
- [ ] Test was written and failed FIRST (true RED phase)
- [ ] Implementation makes test pass with minimal code
- [ ] No compilation-only reds (compilation errors don't count as RED)
- [ ] Using real components where possible (avoid unnecessary mocks)
- [ ] Following existing codebase patterns discovered in analysis
- [ ] TDD discipline maintained throughout (max 3 red-green iterations)
- [ ] Code is clean and refactored
- [ ] No TODOs or placeholder implementations remain
Always work through phases sequentially:
claude "Following .claude/prompts/1a: Analyze implementing [feature description].
Search codebase for similar patterns before proposing approach.
STOP after analysis and wait for approval."
Review the analysis before proceeding.
claude "Based on approved analysis, create detailed implementation plan
following .claude/prompts/1b. Break into atomic TDD steps."
Review the plan and approve specific steps.
# For each planned step:
claude "Test-drive step [N]: [specific requirement].
Follow .claude/prompts/2 TDD discipline strictly.
Write failing test FIRST, then minimal implementation."
Key points:
claude "Run completeness check per .claude/prompts/3.
Verify all planned steps complete and process followed."
claude "Retrospect on this implementation session following .claude/prompts/4.
Identify what worked well and what to improve."
Always mention .claude/prompts/[phase].md in your commands so Claude knows where to look.
Don't ask Claude to "implement feature X end-to-end". Break it into discrete phases.
Use explicit STOP instructions after analysis and planning phases for human review.
Use the same Claude Code conversation/task thread to maintain context across phases.
If Claude strays from TDD discipline:
Each implementation step should be:
macOS/Linux:
git config core.symlinks is trueWindows:
git config core.symlinks is true.claude/prompts/[phase].md in commands.claude/instructions.md - ensure it's clear and concise.claude/prompts/2 explicitly in implementation requests.claude/instructions.md concise so it's always in contextTo use these prompts across multiple projects:
macOS/Linux — shared script example:
#!/bin/bash
# link-prompts.sh — run from your project root
TEMPLATES_PATH="${1:-$HOME/pdca-templates}"
mkdir -p .claude/prompts
for f in "1a Analyze to determine approach for achieving the goal" \
"1b Create a detailed implementation plan"; do
ln -sf "$TEMPLATES_PATH/1. Plan/$f.md" ".claude/prompts/$f.md"
done
# ... remaining phases
Windows — shared script example:
# LinkPrompts.ps1 — run from your project root
param([string]$TemplatesPath = "C:\pdca-templates")
New-Item -ItemType Directory -Path ".claude\prompts" -Force
# ... symlink creation
This repository uses a dual license. Documentation and prompts — including all files in the phase directories and Human Working Agreements.md — are licensed under CC BY 4.0. Source code — including all files in skill/ — is licensed under the MIT License. See LICENSE for full terms.
Attribution: Ken Judy with Claude Anthropic
The TDD content in this framework draws from several foundational sources:
obra/superpowers and afb-tdd are MIT licensed; content adapted from them is used with attribution as required. Beck and Grenning are cited as intellectual influences; no copyrighted text is reproduced from their published works.
Last Updated: 2026