Skip to content

Commit 156b2cb

Browse files
jwaldripclaude
andcommitted
feat(plugin): add wireframe generation phase and move worktrees into project
Add Phase 6.25 to elaboration that generates low-fidelity HTML wireframes for frontend units with a product review gate. Update ticket description template and handoff summary to reference wireframe artifacts. Add wireframe context to the design provider. Move all worktree paths from /tmp/ai-dlc-* to .ai-dlc/worktrees/ within the project directory. All entry points (elaborate, construct, resume) now ensure the worktrees directory exists and is gitignored. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
1 parent b2e4a8d commit 156b2cb

File tree

7 files changed

+249
-23
lines changed

7 files changed

+249
-23
lines changed

.gitignore

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,3 +30,6 @@ coverage/
3030

3131
# Misc
3232
*.tsbuildinfo
33+
34+
# AI-DLC worktrees
35+
.ai-dlc/worktrees/

plugin/hooks/subagent-context.sh

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -203,7 +203,8 @@ echo ""
203203
echo "### Branch References"
204204
echo ""
205205
echo "- **Intent branch:** \`ai-dlc/${INTENT_SLUG}/main\`"
206-
echo "- **Intent worktree:** \`/tmp/ai-dlc-${INTENT_SLUG}/\`"
206+
PROJECT_ROOT=$(git rev-parse --show-toplevel 2>/dev/null || echo "")
207+
echo "- **Intent worktree:** \`${PROJECT_ROOT}/.ai-dlc/worktrees/${INTENT_SLUG}/\`"
207208
echo ""
208209
echo "To access intent-level state from a unit branch:"
209210
echo "\`\`\`bash"
@@ -233,7 +234,7 @@ echo "All bolt work MUST happen in an isolated worktree."
233234
echo "Working outside a worktree will cause conflicts with the parent session."
234235
echo ""
235236
echo "After entering your worktree, verify:"
236-
echo "1. You are in \`/tmp/ai-dlc-${INTENT_SLUG}-{unit-slug}/\`"
237+
echo "1. You are in \`${PROJECT_ROOT}/.ai-dlc/worktrees/${INTENT_SLUG}-{unit-slug}/\`"
237238
echo "2. You are on the correct unit branch (\`git branch --show-current\`)"
238239
echo "3. You loaded unit-scoped state (see Bootstrap above)"
239240
echo ""

plugin/providers/design.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ description: Default design provider behavior for AI-DLC
88
## During Elaboration
99
- Pull existing designs, components, and mockups relevant to the intent
1010
- Reference design files in unit Technical Specification sections
11+
- When generating wireframes (Phase 6.25), reference component names from the design system in HTML comments but maintain low-fidelity aesthetic
1112

1213
## During Building
1314
- Reference design specs for UI implementation

plugin/skills/advance/SKILL.md

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -98,6 +98,7 @@ After marking a unit as completed, merge behavior depends on `change_strategy`:
9898

9999
```bash
100100
# Load config for merge settings
101+
PROJECT_ROOT=$(git rev-parse --show-toplevel)
101102
source "${CLAUDE_PLUGIN_ROOT}/lib/config.sh"
102103
INTENT_DIR=".ai-dlc/${INTENT_SLUG}"
103104
CONFIG=$(get_ai_dlc_config "$INTENT_DIR")
@@ -137,7 +138,7 @@ EOF
137138
)" 2>/dev/null || echo "PR may already exist for $UNIT_BRANCH"
138139

139140
# Clean up unit worktree
140-
WORKTREE_PATH="/tmp/ai-dlc-${INTENT_SLUG}-${UNIT_SLUG}"
141+
WORKTREE_PATH="${PROJECT_ROOT}/.ai-dlc/worktrees/${INTENT_SLUG}-${UNIT_SLUG}"
141142
[ -d "$WORKTREE_PATH" ] && git worktree remove "$WORKTREE_PATH"
142143

143144
elif [ "$AUTO_MERGE" = "true" ]; then
@@ -154,7 +155,7 @@ elif [ "$AUTO_MERGE" = "true" ]; then
154155
fi
155156

156157
# Clean up unit worktree
157-
WORKTREE_PATH="/tmp/ai-dlc-${INTENT_SLUG}-${UNIT_SLUG}"
158+
WORKTREE_PATH="${PROJECT_ROOT}/.ai-dlc/worktrees/${INTENT_SLUG}-${UNIT_SLUG}"
158159
[ -d "$WORKTREE_PATH" ] && git worktree remove "$WORKTREE_PATH"
159160
fi
160161
```
@@ -268,11 +269,11 @@ Task({
268269
${HAT_INSTRUCTIONS}
269270
270271
## CRITICAL: Work on Intent Branch
271-
**Worktree path:** /tmp/ai-dlc-${intentSlug}/
272+
**Worktree path:** .ai-dlc/worktrees/${intentSlug}/
272273
**Branch:** ai-dlc/${intentSlug}/main
273274
274275
You MUST:
275-
1. cd /tmp/ai-dlc-${intentSlug}/
276+
1. cd .ai-dlc/worktrees/${intentSlug}/
276277
2. Verify you're on the intent branch (not a unit branch)
277278
3. This branch contains ALL merged unit work
278279
@@ -501,6 +502,6 @@ To create PR manually:
501502
gh pr create --base ${DEFAULT_BRANCH} --head ai-dlc/{intent-slug}/main
502503
503504
To clean up:
504-
git worktree remove /tmp/ai-dlc-{intent-slug}
505+
git worktree remove .ai-dlc/worktrees/{intent-slug}
505506
/reset
506507
```

plugin/skills/construct/SKILL.md

Lines changed: 16 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -121,8 +121,16 @@ elif [ ${#ACTIVE_INTENTS[@]} -gt 1 ]; then
121121
fi
122122

123123
# Ensure we're in the intent worktree
124+
PROJECT_ROOT=$(git rev-parse --show-toplevel)
124125
INTENT_BRANCH="ai-dlc/${INTENT_SLUG}/main"
125-
INTENT_WORKTREE="/tmp/ai-dlc-${INTENT_SLUG}"
126+
INTENT_WORKTREE="${PROJECT_ROOT}/.ai-dlc/worktrees/${INTENT_SLUG}"
127+
128+
mkdir -p "${PROJECT_ROOT}/.ai-dlc/worktrees"
129+
if ! grep -q '\.ai-dlc/worktrees/' "${PROJECT_ROOT}/.gitignore" 2>/dev/null; then
130+
echo '.ai-dlc/worktrees/' >> "${PROJECT_ROOT}/.gitignore"
131+
git add "${PROJECT_ROOT}/.gitignore"
132+
git commit -m "chore: gitignore .ai-dlc/worktrees"
133+
fi
126134

127135
if [ ! -d "$INTENT_WORKTREE" ]; then
128136
git worktree add -B "$INTENT_BRANCH" "$INTENT_WORKTREE"
@@ -131,7 +139,7 @@ fi
131139
cd "$INTENT_WORKTREE"
132140
```
133141

134-
**Important:** The orchestrator runs in `/tmp/ai-dlc-{intent-slug}/`, NOT the original repo directory. This keeps main clean and enables parallel intents.
142+
**Important:** The orchestrator runs in `.ai-dlc/worktrees/{intent-slug}/`, NOT the original repo directory. This keeps main clean and enables parallel intents.
135143

136144
### Step 0a: Parse Unit Target
137145

@@ -387,7 +395,7 @@ For EACH ready unit:
387395
UNIT_NAME=$(basename "$UNIT_FILE" .md)
388396
UNIT_SLUG="${UNIT_NAME#unit-}"
389397
UNIT_BRANCH="ai-dlc/${INTENT_SLUG}/${UNIT_SLUG}"
390-
WORKTREE_PATH="/tmp/ai-dlc-${INTENT_SLUG}-${UNIT_SLUG}"
398+
WORKTREE_PATH="${PROJECT_ROOT}/.ai-dlc/worktrees/${INTENT_SLUG}-${UNIT_SLUG}"
391399

392400
if [ ! -d "$WORKTREE_PATH" ]; then
393401
git worktree add -B "$UNIT_BRANCH" "$WORKTREE_PATH"
@@ -595,7 +603,7 @@ if [ "$AUTO_MERGE" = "true" ]; then
595603
git merge --no-ff "$UNIT_BRANCH" -m "Merge ${UNIT_NAME} into intent branch"
596604
fi
597605

598-
WORKTREE_PATH="/tmp/ai-dlc-${INTENT_SLUG}-${UNIT_SLUG}"
606+
WORKTREE_PATH="${PROJECT_ROOT}/.ai-dlc/worktrees/${INTENT_SLUG}-${UNIT_SLUG}"
599607
[ -d "$WORKTREE_PATH" ] && git worktree remove "$WORKTREE_PATH"
600608
fi
601609
```
@@ -692,11 +700,11 @@ Task({
692700
${HAT_INSTRUCTIONS}
693701
694702
## CRITICAL: Work on Intent Branch
695-
**Worktree path:** /tmp/ai-dlc-${intentSlug}/
703+
**Worktree path:** .ai-dlc/worktrees/${intentSlug}/
696704
**Branch:** ai-dlc/${intentSlug}/main
697705
698706
You MUST:
699-
1. cd /tmp/ai-dlc-${intentSlug}/
707+
1. cd .ai-dlc/worktrees/${intentSlug}/
700708
2. Verify you're on the intent branch (not a unit branch)
701709
3. This branch contains ALL merged unit work
702710
@@ -835,7 +843,7 @@ To create PR manually:
835843
gh pr create --base ${DEFAULT_BRANCH} --head ai-dlc/{intent-slug}/main
836844
837845
To clean up:
838-
git worktree remove /tmp/ai-dlc-{intent-slug}
846+
git worktree remove .ai-dlc/worktrees/{intent-slug}
839847
/reset
840848
```
841849

@@ -887,7 +895,7 @@ fi
887895
UNIT_NAME=$(basename "$UNIT_FILE" .md) # e.g., unit-01-core-backend
888896
UNIT_SLUG="${UNIT_NAME#unit-}" # e.g., 01-core-backend
889897
UNIT_BRANCH="ai-dlc/${intentSlug}/${UNIT_SLUG}"
890-
WORKTREE_PATH="/tmp/ai-dlc-${intentSlug}-${UNIT_SLUG}"
898+
WORKTREE_PATH="${PROJECT_ROOT}/.ai-dlc/worktrees/${intentSlug}-${UNIT_SLUG}"
891899

892900
# Create worktree if it doesn't exist
893901
if [ ! -d "$WORKTREE_PATH" ]; then

0 commit comments

Comments
 (0)