Cascading Development Framework
Go to file
rob f6ce763a49 fix: default missing status field to OPEN in question formatting
Fix question extraction bug where AI-generated questions were being
filtered out due to missing 'status' field.

**Root Cause:**
The AI agents module returns questions without a 'status' field:
  {'participant': 'Bob', 'question': 'text', 'line': 'original'}

But format_questions_section() filtered for status == "OPEN":
  open_questions = [q for q in questions if q.get("status") == "OPEN"]

Since AI questions had no status, q.get("status") returned None,
which didn't match "OPEN", so questions were filtered out.

**Fix:**
Default missing status to "OPEN" in the filter:
  open_questions = [q for q in questions if q.get("status", "OPEN") == "OPEN"]

This makes the function defensive - questions without explicit status
are treated as OPEN, which matches the basic extraction behavior.

**Impact:**
- Questions extracted by AI agents now appear in summaries
- Maintains backward compatibility with basic extraction (has status)
- All 18 tests now pass (was 17/18)

**Testing:**
- Verified with test_run_status_updates_summary_sections
- Question "What is the rollout plan?" now correctly appears in summary
- No regressions in other tests

Resolves test failure identified in comprehensive project review.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-01 21:58:32 -03:00
assets feat: add multi-provider AI system with model hint optimization 2025-11-01 21:43:13 -03:00
automation fix: default missing status field to OPEN in question formatting 2025-11-01 21:58:32 -03:00
config feat: add multi-provider AI system with model hint optimization 2025-11-01 21:43:13 -03:00
docs docs: comprehensive AI configuration documentation update 2025-11-01 21:48:25 -03:00
src build: bundle shared ai config into installer 2025-11-01 14:44:25 -03:00
tests feat: parse codex exec json output for fallbacks 2025-11-01 17:28:57 -03:00
tools feat: add multi-provider AI system with model hint optimization 2025-11-01 21:43:13 -03:00
.gitignore 1st commit 2025-10-27 20:17:35 -03:00
AGENTS.md fix: Add YAML syntax fix and mock AI script for testing 2025-10-31 09:18:59 -03:00
CLAUDE.md docs: comprehensive AI configuration documentation update 2025-11-01 21:48:25 -03:00
GEMINI.md uptodate agents 2025-10-30 13:17:58 -03:00
README.md docs: comprehensive AI configuration documentation update 2025-11-01 21:48:25 -03:00
VERSION 1st commit 2025-10-27 16:24:50 -03:00
pyproject.toml fix: Add YAML syntax fix and mock AI script for testing 2025-10-31 09:18:59 -03:00

README.md

CascadingDev (CDev)

CDev — short for Cascading Development — is a Git-native AIhuman collaboration framework that automates documentation, discussion summaries, and code review directly within your repository.
It lets you build self-documenting projects where AI assists in generating and maintaining feature discussions, design docs, and implementation plans — all version-controlled alongside your code.


Key Features

  • Git-Integrated Workflow — every discussion, decision, and artifact lives in Git.
  • Multi-Provider AI System — automatic fallback chains (Claude → Codex → Gemini) with intelligent model selection (fast/quality).
  • Cascading Rules System — nearest .ai-rules.yml defines how automation behaves.
  • Stage-Per-Discussion Model — separate files for feature, design, implementation, testing, and review.
  • Pre-commit Hook — automatically maintains summaries, diagrams, and vote tallies.
  • Ramble GUI — friendly PySide6/PyQt5 dialog for capturing structured feature requests.
  • Deterministic Builds — a reproducible installer bundle you can unzip and run anywhere.

🚀 Quick Start (Developers)

# 1. Create and activate a virtual environment
python3 -m venv .venv
source .venv/bin/activate
pip install --upgrade pip wheel PySide6

# 2. Build the installer bundle
python tools/build_installer.py

# 3. Test-install into a temporary folder
python install/cascadingdev-*/setup_cascadingdev.py --target /tmp/myproject --no-ramble