Skip to content

sync#1005

Open
elysenko wants to merge 157 commits intoautomazeio:mainfrom
elysenko:main
Open

sync#1005
elysenko wants to merge 157 commits intoautomazeio:mainfrom
elysenko:main

Conversation

@elysenko
Copy link

@elysenko elysenko commented Jan 16, 2026

Summary by CodeRabbit

  • New Features

    • Complete PM toolchain: guided interrogation → findings → scope → PRD/epic lifecycles, batch PRD processing, epic orchestration, roadmap and deploy/skeleton flows.
  • Persona & Feedback

    • Synthetic persona and feedback generation, automated remediation PRD creation, Playwright test scaffolds, feedback aggregation and reporting.
  • Schemas & Tests

    • Formal schemas for personas/feedback/interviews, reusable test scenarios, assertion and test-reporting tooling, scenario loader.
  • Documentation

    • Extensive user-facing guides for all PM commands and workflows.
  • Chores / Infra

    • Service provisioning, Kubernetes manifests, CI-friendly deploy helpers, repo sync/push/pull and pipeline orchestration utilities.

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

Ubuntu and others added 30 commits January 11, 2026 00:54
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
[contrib] robert: test contribution
New: 1, Modified: 4
New: 5, Modified: 3
New: 0, Modified: 1
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>
New: 3, Modified: 2
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
* 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
Ubuntu and others added 30 commits February 3, 2026 23:03
- [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>
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.

1 participant