* feat(ideas): upload-plan knop — short-circuit van Make-Plan AI-flow Voegt een 'Upload plan' knop toe in idea-row-actions (verschijnt in zowel list als idea-detail). Klik → file picker → kies .md → server-side parse + opslaan; idea-status springt naar PLAN_READY. Vandaaruit de bestaande 'Maak PBI' knop voor materialize. Server (uploadPlanMdAction): - Toegestaan vanuit DRAFT, GRILLED, PLAN_FAILED, PLAN_READY - DRAFT → skip-grill: status gaat direct naar PLAN_READY - PLAN_READY overschrijft het bestaande plan (consistent met updatePlanMdAction, geen confirmation) - Geblokkeerd in GRILLING/PLANNING (job loopt), PLANNED (al gematerialiseerd) - Parse-failure → 422 + details (NIET opslaan, zodat een onparseerbaar plan nooit in de DB belandt) - Empty / >100k chars → 422 - Schrijft IdeaLog NOTE met from_status + length - Rate-limit + demo-guard + ownership-check via loadOwnedIdea (zelfde patroon als updatePlanMdAction) UI (idea-row-actions.tsx): - Hidden <input type=file accept=".md,.markdown,text/markdown,text/plain"> - FileReader → text → action - Toast bij success + router.refresh() - Blocked-tooltip in andere statussen Tests: 10 nieuwe in __tests__/actions/ideas-crud.test.ts dekkend voor: happy paths (DRAFT/GRILLED/PLAN_READY-overwrite/PLAN_FAILED), blocks (PLANNED/GRILLING), validation (empty/oversized/parse-fail), 404. Full suite groen: 849/849. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> * Add reviews for Bootstrap-wizard plans v3.2 to v3.4 - Review v3.2: Addressed executor model, fire-and-forget issues, and PAT handling. - Review v3.3: Improved transaction handling, stale recovery, and ID generation. - Review v3.4: Finalized GitHub permissions, catalog versioning, and E2E verification queries. - Updated recommendations for each version to enhance implementation readiness. * docs(plans): M8 bootstrap-wizard upload-variant v1.4 — backtick-paden Upload-variant van het volledige technische plan (docs/plans/M8-bootstrap-wizard.md), bedoeld voor de "Upload plan"-functie. Genereert 1 PBI + 4 Stories + 22 Tasks via materializeIdeaPlanAction. v1.4-aanpassingen tov eerdere generatie-iteratie: - Alle bestandspaden in implementation_plan in backticks (path-extractor matchen) - Expliciete "Bestanden:" blok per task vóór de stappen - Alle tasks op verify_required: ALIGNED_OR_PARTIAL (was deels ALIGNED — te strict voor ADR-stubs en multi-file edits) Fixt forward-only: T-963 cancelled_by_self door DIVERGENT verifier-verdict. Re-upload van dit bestand produceert tasks die door verify_task_against_plan als ALIGNED of PARTIAL geclassificeerd kunnen worden. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> * PBI-67: Add review-plan support to Idea model and job config - Add plan_review_log and reviewed_at fields to Idea model - Add REVIEWING_PLAN, PLAN_REVIEW_FAILED, PLAN_REVIEWED to IdeaStatus enum - Add IDEA_REVIEW_PLAN to ClaudeJobKind enum - Add IDEA_REVIEW_PLAN config to job-config.ts with model=opus, thinking_budget=6000 - Create migration record for schema changes (applied via db push) Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com> * PBI-67 Phase 2: Add update-idea-plan-reviewed MCP tool - Create src/tools/update-idea-plan-reviewed.ts: saves review-log and transitions idea status to PLAN_REVIEWED - Add PLAN_REVIEW_RESULT to IdeaLogType enum (both repos) - Register tool in src/index.ts - Update Prisma schemas (both repos): add plan_review_log and reviewed_at fields to Idea model - Add REVIEWING_PLAN, PLAN_REVIEW_FAILED, PLAN_REVIEWED to IdeaStatus enum (MCP schema) - Add IDEA_REVIEW_PLAN to ClaudeJobKind enum (MCP schema) - Tool includes transaction safety and convergence metrics logging Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com> * feat(PBI-67): IDEA_REVIEW_PLAN Phases 3-6 — server actions, UI components, prompt & tests - Phase 3: startReviewPlanJobAction, cancelIdeaJobAction, status transitions (REVIEWING_PLAN / PLAN_REVIEWED / PLAN_REVIEW_FAILED), status colors, job-card/jobs-column filters, idea-list status tabs - Phase 4: review-plan-job.md prompt (multi-model orchestration with codex injection + active plan revision via update_idea_plan_md after each round), runbook, 13 unit tests - Phase 5: ReviewLogViewer component (rounds, convergence, approval, issues), idea-detail integration, proper ReviewLog TypeScript types exported from component - Phase 6.1: wait-for-job discriminator wired (IDEA_REVIEW_PLAN), plan-revision step made mandatory in prompt (was previously optional/missing) Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
93 lines
2.7 KiB
Bash
93 lines
2.7 KiB
Bash
#!/bin/bash
|
|
# Verification script for IDEA_REVIEW_PLAN implementation - File checks only
|
|
|
|
echo "🔍 IDEA_REVIEW_PLAN Implementation Verification (Files Only)"
|
|
echo "============================================================"
|
|
echo ""
|
|
|
|
PASSED=0
|
|
FAILED=0
|
|
|
|
# Function to check if file exists
|
|
check_file() {
|
|
local name=$1
|
|
local path=$2
|
|
|
|
if [ -f "$path" ]; then
|
|
local size=$(wc -c < "$path")
|
|
echo "✅ $name"
|
|
echo " Path: $path"
|
|
echo " Size: $size bytes"
|
|
((PASSED++))
|
|
else
|
|
echo "❌ $name"
|
|
echo " Path: $path"
|
|
echo " Missing!"
|
|
((FAILED++))
|
|
fi
|
|
echo ""
|
|
}
|
|
|
|
# Function to check if text appears in file
|
|
check_text_in_file() {
|
|
local name=$1
|
|
local path=$2
|
|
local text=$3
|
|
|
|
if [ -f "$path" ] && grep -q "$text" "$path"; then
|
|
echo "✅ $name"
|
|
echo " Found in: $path"
|
|
((PASSED++))
|
|
else
|
|
echo "❌ $name"
|
|
echo " Not found in: $path"
|
|
((FAILED++))
|
|
fi
|
|
echo ""
|
|
}
|
|
|
|
# Checks
|
|
|
|
# 1. Prompt files
|
|
check_file "Review Plan Prompt (Main)" "lib/idea-prompts/review-plan-job.md"
|
|
check_file "Review Plan Prompt (MCP)" "../scrum4me-mcp/src/prompts/idea/review-plan.md"
|
|
|
|
# 2. Components
|
|
check_file "ReviewLogViewer Component" "components/ideas/review-log-viewer.tsx"
|
|
|
|
# 3. Server Actions
|
|
check_file "Idea Actions" "actions/ideas.ts"
|
|
check_text_in_file "startReviewPlanJobAction in Idea Actions" "actions/ideas.ts" "startReviewPlanJobAction"
|
|
|
|
# 4. MCP Tools
|
|
check_file "MCP Update Plan Reviewed Tool" "../scrum4me-mcp/src/tools/update-idea-plan-reviewed.ts"
|
|
|
|
# 5. Kind Prompts Registration
|
|
check_text_in_file "IDEA_REVIEW_PLAN in kind-prompts.ts" "../scrum4me-mcp/src/lib/kind-prompts.ts" "IDEA_REVIEW_PLAN"
|
|
|
|
# 6. Wait-for-job Discriminator
|
|
check_text_in_file "IDEA_REVIEW_PLAN in wait-for-job.ts" "../scrum4me-mcp/src/tools/wait-for-job.ts" "IDEA_REVIEW_PLAN"
|
|
|
|
# 7. Documentation
|
|
check_file "Review Plan Job Runbook" "docs/runbooks/review-plan-job.md"
|
|
check_file "Phase 6 Test Plan" "docs/implementation-complete/PHASE6-END-TO-END-TEST-PLAN.md"
|
|
check_file "Implementation Summary" "docs/implementation-complete/IDEA_REVIEW_PLAN-implementation-summary.md"
|
|
|
|
# 8. Tests
|
|
check_file "Review Plan Job Tests" "__tests__/review-plan-job.test.ts"
|
|
|
|
# 9. Migrations
|
|
check_file "Migration SQL" "prisma/migrations/20260514000000_add_review_plan_support/migration.sql"
|
|
|
|
# Summary
|
|
echo "============================================================"
|
|
echo "Summary: $PASSED passed, $FAILED failed"
|
|
echo ""
|
|
|
|
if [ $FAILED -eq 0 ]; then
|
|
echo "✅ All file checks passed! Implementation is complete."
|
|
exit 0
|
|
else
|
|
echo "❌ Some files are missing. See above for details."
|
|
exit 1
|
|
fi
|