Open
Conversation
New commands: - scope-discover, scope-decompose, scope-generate, scope-run, scope-status, scope-verify - batch-process, prd-complete, roadmap-generate - build-deployment, deploy New scripts: - batch-prd-complete.sh, prd-scope.sh, epic-sync.sh Updated epic-start.md with scope integration Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
New features: - /pm:ccpm-pull: Sync framework files from canonical repo to local .claude/ - /pm:ccpm-push: Push local customizations to canonical repo via PR (auto-merges to existing branch) - install/ccpm-claude: Wrapper script for auto-initializing .claude/ on first launch Configuration: Set CCPM_SOURCE_REPO env var to canonical repo path Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
New: 1, Modified: 0
New: 1, Modified: 1
[contrib] robert: test contribution
New: 1, Modified: 4
[contrib] robert
New: 5, Modified: 3
[contrib] robert
New: 0, Modified: 1
[contrib] gslr
New: 1, Modified: 0
Add setup-service.sh, setup-env-from-k8s.sh, and lib/ helpers for PostgreSQL and MinIO deployment via /pm:scaffold command. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
[contrib] ccpm
New: 3, Modified: 2
[contrib] ccpm
Syncs CCPM framework files to all projects with .claude/ directories. Searches PROJECTS_DIR, ~/projects, ~/code, ~/dev, or specified paths. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
New: 7, Modified: 10
[contrib] robert
* feat: contributions from robert New: 1, Modified: 2 * feat: contributions from robert New: 1, Modified: 1 --------- Co-authored-by: Ubuntu <ubuntu@ubuntu.desmana-truck.ts.net>
* feat: contributions from robert New: 5, Modified: 0 * feat: contributions from robert New: 0, Modified: 1 --------- Co-authored-by: Ubuntu <ubuntu@ubuntu.desmana-truck.ts.net>
New: 0, Modified: 1 Co-authored-by: Ubuntu <ubuntu@ubuntu.desmana-truck.ts.net>
New: 0, Modified: 1 Co-authored-by: Ubuntu <ubuntu@ubuntu.desmana-truck.ts.net>
…obert) (#12) New: 0, Modified: 1 Co-authored-by: Ubuntu <ubuntu@ubuntu.desmana-truck.ts.net>
New: 7, Modified: 1 Co-authored-by: Ubuntu <ubuntu@ubuntu.desmana-truck.ts.net>
New: 0, Modified: 3
[contrib] robert: E2E test harness and credentials schema
- [C] Continue → [R] Resume with existing progress - [R] Restart → [D] Delete and restart from scratch - Default action is now Resume (R) instead of Continue (C) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Schema: Add context columns (parent_context, codebase_context, decisions)
- Schema: Add gap analysis columns (gap_signals, slot_analysis, blocking_gaps)
- Schema: Add functions for gap analysis and context retrieval
- Script: ar-context.sh for managing .claude/ar/{session}/ context files
- Script: ar-implement.sh enhanced with gap analysis functions
- Agent: gap-analyzer.md with multi-signal detection (linguistic, slot, codebase, confidence)
- Agent: atomicity-checker.md with XML inputs and depth-adjusted leniency
- Agent: decomposition-coordinator.md for managing recursive loop
- Skill: implement.md with context preservation workflow and --resume support
Based on research from ai-gap-analysis: 5-category gap taxonomy,
blocking vs nice-to-know classification, INVEST mapping.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Create interrogator agent with 4-phase question hierarchy - Add Phase 0.5: Interrogation before research/decomposition - Track dialogue state slots (goal, scope, input_spec, etc.) - Golden Prompt pattern: one question at a time with labeled options - Add specification section to context.md for slot storage - Confidence thresholds determine when to proceed Research-based: 5-7 questions capture 80% of implementation-critical info Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Adopted files (copied from the working codebase) fail tsc in isolation because ambient types like vite-env.d.ts aren't loaded. This caused an infinite retry loop in Step 16: adopt → fail tsc → delete → re-adopt. Track adopted files via marker file, skip tsc for them in validation, and prevent their deletion during targeted retry. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Replace file-copy approach with git submodule + symlinks for better version tracking and simpler updates. The new system creates .claude/ccpm/ as a submodule and symlinks commands/, scripts/, etc. - ccpm-pull.sh: Now uses submodule mode by default - ccpm-pull-legacy.sh: Preserves file-copy for non-git environments - ccpm-commit.sh: Bidirectional commit helper for submodule workflow - ccpm-push.sh: Remove rsync to .claude/ (symlinks replace it) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Encodes actionable findings from research-report.md and prompt-compression-report.md into a rule file auto-loaded in every session: XML tag usage, instruction style for Claude 4.x, extended thinking guidance, example best practices, information density, compression techniques, security for untrusted input, and prompt change validation protocol. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Generates 10 cattle-industry personas with RBAC groups, registers test user accounts, and inserts persona data into DB. Enables downstream /pm:test-journey and /pm:generate-feedback skills. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
When called via $() command substitution, show_cursor, draw_message, move_cursor, and hide_cursor all wrote ANSI escape sequences to stdout which got captured as part of the return value. This caused session names to contain raw terminal control codes instead of user input. Redirect all terminal output to /dev/tty and read input from /dev/tty explicitly, matching the pattern already used by select_menu(). Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Avoids collision with existing 037_fix_feature_step_constraint.sql. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Step 18 no longer invokes or modifies build.sh. Instead it compiles the frontend (npm run build) and validates backend Python syntax (py_compile). build.sh is for environment setup (Docker + K8s deploy), not pipeline code verification. Removed ~270 lines of build.sh helpers (generate, review, research/fix). Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…0 session cleanup Root cause analysis of Step 20 test failures (8% pass rate) identified 4 issues: 1. Step 19 never granted privileges to persona groups — groups existed with users assigned but group_privileges had 0 rows. Added Phase G that seeds all 34 privilege codes into user_privileges and grants appropriate subsets to each of the 6 persona groups. 2. Step 17 sed-based App.tsx integration silently failed after first page — only OrganizationsPage was wired, ConnectionsPage/SharingPage/DealsPage had no import/route/nav. Added post-integration verification loop that detects missing components and retries insertion. 3. Step 20 workers reused browser profiles between persona tests — stale sessions caused every test to start logged in as wrong user. Added pw-data cleanup between iterations in both worker functions. 4. Step 20 had no pre-test validation that journey routes existed in App.tsx. Added route check that warns about unroutable paths before test execution begins. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Instead of generating a fresh session UUID for every test run, look up the most recent claude_session_id for the same persona+journey+mode combo and pass --resume to continue the conversation. Only generate a new UUID when no prior session exists. Retries within the same attempt also reuse the same session ID. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Create lib/test-lib.sh: 19 tl_-prefixed functions extracted from feature_interrogate.sh (workers, DB helpers, matrix builder, MCP configs, batch partitioner, result aggregation, prerequisites check) - Create test-runner.sh: standalone CLI for running journey tests with --retry, --journey, --mode, --workers, --skip-build flags - Refactor feature_interrogate.sh: source test-lib.sh, delete ~710 lines of inline worker functions, use library calls in persona_journey_test_step() - Fix test_run_id scoping bug: "already tested" SQL now includes AND test_run_id='$test_run_id' so retry runs don't skip old failures Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Add required_privileges to journey generation prompt and insert_journey() - Fix Phase B/F/G silent failures: capture errors, add explicit UUIDs, verify post-INSERT counts, set column defaults defensively - Fix NULL is_active on user_privileges causing grants to be skipped - Add Phase I: persona↔journey privilege coverage validation - Add Check 6 to test-lib.sh: fail if any persona has zero privileges Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Remove --resume logic: always use fresh --session-id to avoid reloading prior conversation history (accumulated Playwright snapshots doubled token cost on every re-test) - Add --image-responses omit to Playwright MCP config to prevent inline base64 image data in tool results - Move test instructions from -p prompt to --append-system-prompt (cached, doesn't double on retry) - Trim JSON output templates: remove unused null fields (failure_category, expected_outcome, actual_outcome, etc.) - Trim failures JSON for synthesis agent: drop claude_session_id, screenshot_path, page_url from step_details, truncate failure_reason to 200 chars Session IDs still stored in DB for future interrogation. Estimated ~50-60% reduction in per-iteration token consumption. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Test workers: default to sonnet (5x cheaper than opus), configurable via TEST_MODEL env var. Dynamic --max-turns = ceil((steps+2)*5.5) scales with journey complexity instead of fixed cap. Fix agents: static --max-turns (synthesis=5, fix=30, merge=15) to prevent runaway investigation. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Steps 12/15/16: Add data scoping, pagination, privilege gating, lazy tab loading, friendly errors, search UX, and dropdown fetching guidance. Step 17: Add route sorting pass (specific paths before dynamic :param). Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Privilege codes are now scanned from require_privilege() calls in backend routers instead of hardcoded in Step 19. Fix loop can apply data fixes (migrations, privilege grants, seed data) not just code fixes. - scan_privilege_codes(): scans all routers, produces privilege-codes.txt - Phase G: dynamic INSERT + catch-all group grants (auto-includes new entities) - Phase H: test data seed generation via Claude - Fix loop Phase 5.5: data fixes, Phase 7.5: syntax validation - Synthesis prompt: 403s classified as data_fixable instead of unfixable - generate-journeys.sh: dynamic privilege_map from privilege-codes.txt Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Was going up 2 levels (to ccpm submodule root), needs 4 levels to reach the actual project root. Also respects PROJECT_ROOT env var if set. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Default behavior: iteration 2+ passes --retry to test-runner.sh so only failed tests are re-executed. Use --retest-all to override and run all tests every iteration. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
5 turns was insufficient for 11+ failures across multiple clusters. Agent exhausted tool calls reading source files before producing JSON. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Use file-based prompt read via Read tool (avoids stdin >7K issue) - Capture agent stderr to log file for debugging - Preserve prompt file on failure for inspection Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary by CodeRabbit
New Features
Persona & Feedback
Schemas & Tests
Documentation
Chores / Infra
✏️ Tip: You can customize this high-level summary in your review settings.