diff --git a/Docs/DESIGN.md b/Docs/DESIGN.md index 0b3becf..6f14759 100644 --- a/Docs/DESIGN.md +++ b/Docs/DESIGN.md @@ -1,4 +1,4 @@ -# AI–Human Collaboration System +# Cascading Development - AI–Human Collaboration System ## Process & Architecture Design Document (v2.0) - Feature ID: FR_2025-10-21_initial-feature-request - Status: Design Approved (Ready for Implementation) @@ -1882,6 +1882,7 @@ Newcomers can open {stage}.sum.md and immediately see the state. Humans keep tal ## Implementation Plan ### Milestone M0: Process Foundation Deliverables: +- setup_project.py (Initialize Cascading Development repo) - process/design.md (this document) - process/policies.md + process/policies.yml - process/templates/ (all four core templates) @@ -1996,6 +1997,54 @@ Process Overhead: - Mitigation: Configurable rule enabling/disabling - Flexibility: Bypass options for trivial changes +## Initial Setup & Bootstrapping +To streamline project onboarding and ensure every repository begins with a structured, traceable starting point, this system includes a one-time setup script that initializes the folder structure and guides the maintainer through creating the first feature request using the interactive dialog. + +### Steps Performed: +- Create the canonical folder structure under Docs/features/FR__initial-feature-request/, including the request.md template. +- Run the interactive dialog utility to guide the user (or team) through describing the project’s intent, motivation, and constraints in natural language. +- Initialize Git hooks, orchestration scripts, and default configuration files. +- Automatically generate the first Feature Request document from that conversation. + +Example Implementation +```python +#!/usr/bin/env python3 +""" +setup_project.py — Initialize AI–Human Collaboration repo +""" +import os, subprocess, datetime + +def run_ramble(): + """Launch Ramble dialog to collect initial feature request""" + subprocess.run(["python3", "ramble.py", "--prompt", "Describe your initial feature request"]) + +def main(): + today = datetime.date.today().isoformat() + feature_dir = f"Docs/features/FR_{today}_initial-feature-request" + os.makedirs(f"{feature_dir}/discussions", exist_ok=True) + print(f"Creating {feature_dir}/ ...") + + # Generate initial request file from template + request_md = os.path.join(feature_dir, "request.md") + if not os.path.exists(request_md): + with open(request_md, "w") as f: + f.write("# Feature Request: Initial Project Setup\n\n" + "**Intent:** Describe project goals and first milestone.\n" + "**Motivation / Problem:** Why this system is needed.\n" + "**Constraints / Non-Goals:** ...\n" + "**Open Questions:** ...\n") + + # Run Ramble dialog to fill in details interactively + print("Launching Ramble interactive prompt...") + run_ramble() + print("Setup complete — initial feature request created.") + +if __name__ == "__main__": + main() +``` +### Rationale +This setup process ensures that every repository starts with a consistent structure and a human-authored origin document, created in a conversational way. It also guarantees that the automation and templates are initialized before any feature work begins. + ### 14 Template Evolution #### 14.1 Versioning Strategy Template Location as Version: