[ { "type": "heading_open", "tag": "h1", "attrs": {}, "map": [ 0, 1 ], "nesting": 1, "level": 0, "content": "", "markup": "#", "info": "", "meta": {}, "block": true, "hidden": false }, { "type": "inline", "tag": "", "attrs": {}, "map": [ 0, 1 ], "nesting": 0, "level": 1, "children": [ { "type": "text", "tag": "", "attrs": {}, "nesting": 0, "level": 0, "content": "TDDAi Configuration Management", "markup": "", "info": "", "meta": {}, "block": false, "hidden": false } ], "content": "TDDAi Configuration Management", "markup": "", "info": "", "meta": {}, "block": true, "hidden": false }, { "type": "heading_close", "tag": "h1", "attrs": {}, "nesting": -1, "level": 0, "content": "", "markup": "#", "info": "", "meta": {}, "block": true, "hidden": false }, { "type": "paragraph_open", "tag": "p", "attrs": {}, "map": [ 2, 3 ], "nesting": 1, "level": 0, "content": "", "markup": "", "info": "", "meta": {}, "block": true, "hidden": false }, { "type": "inline", "tag": "", "attrs": {}, "map": [ 2, 3 ], "nesting": 0, "level": 1, "children": [ { "type": "text", "tag": "", "attrs": {}, "nesting": 0, "level": 0, "content": "The tddai framework uses a flexible, hierarchical configuration system designed for project-agnostic deployment while supporting per-project customization.", "markup": "", "info": "", "meta": {}, "block": false, "hidden": false } ], "content": "The tddai framework uses a flexible, hierarchical configuration system designed for project-agnostic deployment while supporting per-project customization.", "markup": "", "info": "", "meta": {}, "block": true, "hidden": false }, { "type": "paragraph_close", "tag": "p", "attrs": {}, "nesting": -1, "level": 0, "content": "", "markup": "", "info": "", "meta": {}, "block": true, "hidden": false }, { "type": "heading_open", "tag": "h2", "attrs": {}, "map": [ 4, 5 ], "nesting": 1, "level": 0, "content": "", "markup": "##", "info": "", "meta": {}, "block": true, "hidden": false }, { "type": "inline", "tag": "", "attrs": {}, "map": [ 4, 5 ], "nesting": 0, "level": 1, "children": [ { "type": "text", "tag": "", "attrs": {}, "nesting": 0, "level": 0, "content": "Configuration Hierarchy", "markup": "", "info": "", "meta": {}, "block": false, "hidden": false } ], "content": "Configuration Hierarchy", "markup": "", "info": "", "meta": {}, "block": true, "hidden": false }, { "type": "heading_close", "tag": "h2", "attrs": {}, "nesting": -1, "level": 0, "content": "", "markup": "##", "info": "", "meta": {}, "block": true, "hidden": false }, { "type": "paragraph_open", "tag": "p", "attrs": {}, "map": [ 6, 7 ], "nesting": 1, "level": 0, "content": "", "markup": "", "info": "", "meta": {}, "block": true, "hidden": false }, { "type": "inline", "tag": "", "attrs": {}, "map": [ 6, 7 ], "nesting": 0, "level": 1, "children": [ { "type": "text", "tag": "", "attrs": {}, "nesting": 0, "level": 0, "content": "Configuration values are loaded in the following priority order (highest to lowest):", "markup": "", "info": "", "meta": {}, "block": false, "hidden": false } ], "content": "Configuration values are loaded in the following priority order (highest to lowest):", "markup": "", "info": "", "meta": {}, "block": true, "hidden": false }, { "type": "paragraph_close", "tag": "p", "attrs": {}, "nesting": -1, "level": 0, "content": "", "markup": "", "info": "", "meta": {}, "block": true, "hidden": false }, { "type": "ordered_list_open", "tag": "ol", "attrs": {}, "map": [ 8, 12 ], "nesting": 1, "level": 0, "content": "", "markup": ".", "info": "", "meta": {}, "block": true, "hidden": false }, { "type": "list_item_open", "tag": "li", "attrs": {}, "map": [ 8, 9 ], "nesting": 1, "level": 1, "content": "", "markup": ".", "info": "1", "meta": {}, "block": true, "hidden": false }, { "type": "paragraph_open", "tag": "p", "attrs": {}, "map": [ 8, 9 ], "nesting": 1, "level": 2, "content": "", "markup": "", "info": "", "meta": {}, "block": true, "hidden": true }, { "type": "inline", "tag": "", "attrs": {}, "map": [ 8, 9 ], "nesting": 0, "level": 3, "children": [ { "type": "text", "tag": "", "attrs": {}, "nesting": 0, "level": 0, "content": "", "markup": "", "info": "", "meta": {}, "block": false, "hidden": false }, { "type": "strong_open", "tag": "strong", "attrs": {}, "nesting": 1, "level": 0, "content": "", "markup": "**", "info": "", "meta": {}, "block": false, "hidden": false }, { "type": "text", "tag": "", "attrs": {}, "nesting": 0, "level": 1, "content": "Environment Variables", "markup": "", "info": "", "meta": {}, "block": false, "hidden": false }, { "type": "strong_close", "tag": "strong", "attrs": {}, "nesting": -1, "level": 0, "content": "", "markup": "**", "info": "", "meta": {}, "block": false, "hidden": false }, { "type": "text", "tag": "", "attrs": {}, "nesting": 0, "level": 0, "content": " - Runtime overrides (highest priority)", "markup": "", "info": "", "meta": {}, "block": false, "hidden": false } ], "content": "**Environment Variables** - Runtime overrides (highest priority)", "markup": "", "info": "", "meta": {}, "block": true, "hidden": false }, { "type": "paragraph_close", "tag": "p", "attrs": {}, "nesting": -1, "level": 2, "content": "", "markup": "", "info": "", "meta": {}, "block": true, "hidden": true }, { "type": "list_item_close", "tag": "li", "attrs": {}, "nesting": -1, "level": 1, "content": "", "markup": ".", "info": "", "meta": {}, "block": true, "hidden": false }, { "type": "list_item_open", "tag": "li", "attrs": {}, "map": [ 9, 10 ], "nesting": 1, "level": 1, "content": "", "markup": ".", "info": "2", "meta": {}, "block": true, "hidden": false }, { "type": "paragraph_open", "tag": "p", "attrs": {}, "map": [ 9, 10 ], "nesting": 1, "level": 2, "content": "", "markup": "", "info": "", "meta": {}, "block": true, "hidden": true }, { "type": "inline", "tag": "", "attrs": {}, "map": [ 9, 10 ], "nesting": 0, "level": 3, "children": [ { "type": "text", "tag": "", "attrs": {}, "nesting": 0, "level": 0, "content": "", "markup": "", "info": "", "meta": {}, "block": false, "hidden": false }, { "type": "strong_open", "tag": "strong", "attrs": {}, "nesting": 1, "level": 0, "content": "", "markup": "**", "info": "", "meta": {}, "block": false, "hidden": false }, { "type": "code_inline", "tag": "code", "attrs": {}, "nesting": 0, "level": 1, "content": ".env.tddai", "markup": "`", "info": "", "meta": {}, "block": false, "hidden": false }, { "type": "text", "tag": "", "attrs": {}, "nesting": 0, "level": 1, "content": " File", "markup": "", "info": "", "meta": {}, "block": false, "hidden": false }, { "type": "strong_close", "tag": "strong", "attrs": {}, "nesting": -1, "level": 0, "content": "", "markup": "**", "info": "", "meta": {}, "block": false, "hidden": false }, { "type": "text", "tag": "", "attrs": {}, "nesting": 0, "level": 0, "content": " - Project-specific configuration (auto-loaded)", "markup": "", "info": "", "meta": {}, "block": false, "hidden": false } ], "content": "**`.env.tddai` File** - Project-specific configuration (auto-loaded)", "markup": "", "info": "", "meta": {}, "block": true, "hidden": false }, { "type": "paragraph_close", "tag": "p", "attrs": {}, "nesting": -1, "level": 2, "content": "", "markup": "", "info": "", "meta": {}, "block": true, "hidden": true }, { "type": "list_item_close", "tag": "li", "attrs": {}, "nesting": -1, "level": 1, "content": "", "markup": ".", "info": "", "meta": {}, "block": true, "hidden": false }, { "type": "list_item_open", "tag": "li", "attrs": {}, "map": [ 10, 12 ], "nesting": 1, "level": 1, "content": "", "markup": ".", "info": "3", "meta": {}, "block": true, "hidden": false }, { "type": "paragraph_open", "tag": "p", "attrs": {}, "map": [ 10, 11 ], "nesting": 1, "level": 2, "content": "", "markup": "", "info": "", "meta": {}, "block": true, "hidden": true }, { "type": "inline", "tag": "", "attrs": {}, "map": [ 10, 11 ], "nesting": 0, "level": 3, "children": [ { "type": "text", "tag": "", "attrs": {}, "nesting": 0, "level": 0, "content": "", "markup": "", "info": "", "meta": {}, "block": false, "hidden": false }, { "type": "strong_open", "tag": "strong", "attrs": {}, "nesting": 1, "level": 0, "content": "", "markup": "**", "info": "", "meta": {}, "block": false, "hidden": false }, { "type": "text", "tag": "", "attrs": {}, "nesting": 0, "level": 1, "content": "Default Values", "markup": "", "info": "", "meta": {}, "block": false, "hidden": false }, { "type": "strong_close", "tag": "strong", "attrs": {}, "nesting": -1, "level": 0, "content": "", "markup": "**", "info": "", "meta": {}, "block": false, "hidden": false }, { "type": "text", "tag": "", "attrs": {}, "nesting": 0, "level": 0, "content": " - Framework defaults (fallback)", "markup": "", "info": "", "meta": {}, "block": false, "hidden": false } ], "content": "**Default Values** - Framework defaults (fallback)", "markup": "", "info": "", "meta": {}, "block": true, "hidden": false }, { "type": "paragraph_close", "tag": "p", "attrs": {}, "nesting": -1, "level": 2, "content": "", "markup": "", "info": "", "meta": {}, "block": true, "hidden": true }, { "type": "list_item_close", "tag": "li", "attrs": {}, "nesting": -1, "level": 1, "content": "", "markup": ".", "info": "", "meta": {}, "block": true, "hidden": false }, { "type": "ordered_list_close", "tag": "ol", "attrs": {}, "nesting": -1, "level": 0, "content": "", "markup": ".", "info": "", "meta": {}, "block": true, "hidden": false }, { "type": "heading_open", "tag": "h2", "attrs": {}, "map": [ 12, 13 ], "nesting": 1, "level": 0, "content": "", "markup": "##", "info": "", "meta": {}, "block": true, "hidden": false }, { "type": "inline", "tag": "", "attrs": {}, "map": [ 12, 13 ], "nesting": 0, "level": 1, "children": [ { "type": "text", "tag": "", "attrs": {}, "nesting": 0, "level": 0, "content": "Quick Start", "markup": "", "info": "", "meta": {}, "block": false, "hidden": false } ], "content": "Quick Start", "markup": "", "info": "", "meta": {}, "block": true, "hidden": false }, { "type": "heading_close", "tag": "h2", "attrs": {}, "nesting": -1, "level": 0, "content": "", "markup": "##", "info": "", "meta": {}, "block": true, "hidden": false }, { "type": "heading_open", "tag": "h3", "attrs": {}, "map": [ 14, 15 ], "nesting": 1, "level": 0, "content": "", "markup": "###", "info": "", "meta": {}, "block": true, "hidden": false }, { "type": "inline", "tag": "", "attrs": {}, "map": [ 14, 15 ], "nesting": 0, "level": 1, "children": [ { "type": "text", "tag": "", "attrs": {}, "nesting": 0, "level": 0, "content": "Automatic Configuration (Recommended)", "markup": "", "info": "", "meta": {}, "block": false, "hidden": false } ], "content": "Automatic Configuration (Recommended)", "markup": "", "info": "", "meta": {}, "block": true, "hidden": false }, { "type": "heading_close", "tag": "h3", "attrs": {}, "nesting": -1, "level": 0, "content": "", "markup": "###", "info": "", "meta": {}, "block": true, "hidden": false }, { "type": "paragraph_open", "tag": "p", "attrs": {}, "map": [ 15, 16 ], "nesting": 1, "level": 0, "content": "", "markup": "", "info": "", "meta": {}, "block": true, "hidden": false }, { "type": "inline", "tag": "", "attrs": {}, "map": [ 15, 16 ], "nesting": 0, "level": 1, "children": [ { "type": "text", "tag": "", "attrs": {}, "nesting": 0, "level": 0, "content": "The framework automatically loads ", "markup": "", "info": "", "meta": {}, "block": false, "hidden": false }, { "type": "code_inline", "tag": "code", "attrs": {}, "nesting": 0, "level": 0, "content": ".env.tddai", "markup": "`", "info": "", "meta": {}, "block": false, "hidden": false }, { "type": "text", "tag": "", "attrs": {}, "nesting": 0, "level": 0, "content": " from the current directory:", "markup": "", "info": "", "meta": {}, "block": false, "hidden": false } ], "content": "The framework automatically loads `.env.tddai` from the current directory:", "markup": "", "info": "", "meta": {}, "block": true, "hidden": false }, { "type": "paragraph_close", "tag": "p", "attrs": {}, "nesting": -1, "level": 0, "content": "", "markup": "", "info": "", "meta": {}, "block": true, "hidden": false }, { "type": "fence", "tag": "code", "attrs": {}, "map": [ 17, 22 ], "nesting": 0, "level": 0, "content": "# Configuration loaded automatically\nmake tdd-status\nmake tdd-start NUM=5\n", "markup": "```", "info": "bash", "meta": {}, "block": true, "hidden": false }, { "type": "heading_open", "tag": "h3", "attrs": {}, "map": [ 23, 24 ], "nesting": 1, "level": 0, "content": "", "markup": "###", "info": "", "meta": {}, "block": true, "hidden": false }, { "type": "inline", "tag": "", "attrs": {}, "map": [ 23, 24 ], "nesting": 0, "level": 1, "children": [ { "type": "text", "tag": "", "attrs": {}, "nesting": 0, "level": 0, "content": "Manual Configuration", "markup": "", "info": "", "meta": {}, "block": false, "hidden": false } ], "content": "Manual Configuration", "markup": "", "info": "", "meta": {}, "block": true, "hidden": false }, { "type": "heading_close", "tag": "h3", "attrs": {}, "nesting": -1, "level": 0, "content": "", "markup": "###", "info": "", "meta": {}, "block": true, "hidden": false }, { "type": "paragraph_open", "tag": "p", "attrs": {}, "map": [ 24, 25 ], "nesting": 1, "level": 0, "content": "", "markup": "", "info": "", "meta": {}, "block": true, "hidden": false }, { "type": "inline", "tag": "", "attrs": {}, "map": [ 24, 25 ], "nesting": 0, "level": 1, "children": [ { "type": "text", "tag": "", "attrs": {}, "nesting": 0, "level": 0, "content": "You can also source the setup script manually:", "markup": "", "info": "", "meta": {}, "block": false, "hidden": false } ], "content": "You can also source the setup script manually:", "markup": "", "info": "", "meta": {}, "block": true, "hidden": false }, { "type": "paragraph_close", "tag": "p", "attrs": {}, "nesting": -1, "level": 0, "content": "", "markup": "", "info": "", "meta": {}, "block": true, "hidden": false }, { "type": "fence", "tag": "code", "attrs": {}, "map": [ 26, 30 ], "nesting": 0, "level": 0, "content": "source tddai-setup.sh\nmake tdd-status\n", "markup": "```", "info": "bash", "meta": {}, "block": true, "hidden": false }, { "type": "heading_open", "tag": "h2", "attrs": {}, "map": [ 31, 32 ], "nesting": 1, "level": 0, "content": "", "markup": "##", "info": "", "meta": {}, "block": true, "hidden": false }, { "type": "inline", "tag": "", "attrs": {}, "map": [ 31, 32 ], "nesting": 0, "level": 1, "children": [ { "type": "text", "tag": "", "attrs": {}, "nesting": 0, "level": 0, "content": "Configuration Options", "markup": "", "info": "", "meta": {}, "block": false, "hidden": false } ], "content": "Configuration Options", "markup": "", "info": "", "meta": {}, "block": true, "hidden": false }, { "type": "heading_close", "tag": "h2", "attrs": {}, "nesting": -1, "level": 0, "content": "", "markup": "##", "info": "", "meta": {}, "block": true, "hidden": false }, { "type": "heading_open", "tag": "h3", "attrs": {}, "map": [ 33, 34 ], "nesting": 1, "level": 0, "content": "", "markup": "###", "info": "", "meta": {}, "block": true, "hidden": false }, { "type": "inline", "tag": "", "attrs": {}, "map": [ 33, 34 ], "nesting": 0, "level": 1, "children": [ { "type": "text", "tag": "", "attrs": {}, "nesting": 0, "level": 0, "content": "Repository Settings (Required)", "markup": "", "info": "", "meta": {}, "block": false, "hidden": false } ], "content": "Repository Settings (Required)", "markup": "", "info": "", "meta": {}, "block": true, "hidden": false }, { "type": "heading_close", "tag": "h3", "attrs": {}, "nesting": -1, "level": 0, "content": "", "markup": "###", "info": "", "meta": {}, "block": true, "hidden": false }, { "type": "paragraph_open", "tag": "p", "attrs": {}, "map": [ 35, 40 ], "nesting": 1, "level": 0, "content": "", "markup": "", "info": "", "meta": {}, "block": true, "hidden": false }, { "type": "inline", "tag": "", "attrs": {}, "map": [ 35, 40 ], "nesting": 0, "level": 1, "children": [ { "type": "text", "tag": "", "attrs": {}, "nesting": 0, "level": 0, "content": "| Variable | Description | Example | Required |", "markup": "", "info": "", "meta": {}, "block": false, "hidden": false }, { "type": "softbreak", "tag": "br", "attrs": {}, "nesting": 0, "level": 0, "content": "", "markup": "", "info": "", "meta": {}, "block": false, "hidden": false }, { "type": "text", "tag": "", "attrs": {}, "nesting": 0, "level": 0, "content": "|----------|-------------|---------|----------|", "markup": "", "info": "", "meta": {}, "block": false, "hidden": false }, { "type": "softbreak", "tag": "br", "attrs": {}, "nesting": 0, "level": 0, "content": "", "markup": "", "info": "", "meta": {}, "block": false, "hidden": false }, { "type": "text", "tag": "", "attrs": {}, "nesting": 0, "level": 0, "content": "| ", "markup": "", "info": "", "meta": {}, "block": false, "hidden": false }, { "type": "code_inline", "tag": "code", "attrs": {}, "nesting": 0, "level": 0, "content": "TDDAI_GITEA_URL", "markup": "`", "info": "", "meta": {}, "block": false, "hidden": false }, { "type": "text", "tag": "", "attrs": {}, "nesting": 0, "level": 0, "content": " | Git platform URL | ", "markup": "", "info": "", "meta": {}, "block": false, "hidden": false }, { "type": "code_inline", "tag": "code", "attrs": {}, "nesting": 0, "level": 0, "content": "https://github.com", "markup": "`", "info": "", "meta": {}, "block": false, "hidden": false }, { "type": "text", "tag": "", "attrs": {}, "nesting": 0, "level": 0, "content": " | ✅ |", "markup": "", "info": "", "meta": {}, "block": false, "hidden": false }, { "type": "softbreak", "tag": "br", "attrs": {}, "nesting": 0, "level": 0, "content": "", "markup": "", "info": "", "meta": {}, "block": false, "hidden": false }, { "type": "text", "tag": "", "attrs": {}, "nesting": 0, "level": 0, "content": "| ", "markup": "", "info": "", "meta": {}, "block": false, "hidden": false }, { "type": "code_inline", "tag": "code", "attrs": {}, "nesting": 0, "level": 0, "content": "TDDAI_REPO_OWNER", "markup": "`", "info": "", "meta": {}, "block": false, "hidden": false }, { "type": "text", "tag": "", "attrs": {}, "nesting": 0, "level": 0, "content": " | Repository owner/org | ", "markup": "", "info": "", "meta": {}, "block": false, "hidden": false }, { "type": "code_inline", "tag": "code", "attrs": {}, "nesting": 0, "level": 0, "content": "myusername", "markup": "`", "info": "", "meta": {}, "block": false, "hidden": false }, { "type": "text", "tag": "", "attrs": {}, "nesting": 0, "level": 0, "content": " | ✅ |", "markup": "", "info": "", "meta": {}, "block": false, "hidden": false }, { "type": "softbreak", "tag": "br", "attrs": {}, "nesting": 0, "level": 0, "content": "", "markup": "", "info": "", "meta": {}, "block": false, "hidden": false }, { "type": "text", "tag": "", "attrs": {}, "nesting": 0, "level": 0, "content": "| ", "markup": "", "info": "", "meta": {}, "block": false, "hidden": false }, { "type": "code_inline", "tag": "code", "attrs": {}, "nesting": 0, "level": 0, "content": "TDDAI_REPO_NAME", "markup": "`", "info": "", "meta": {}, "block": false, "hidden": false }, { "type": "text", "tag": "", "attrs": {}, "nesting": 0, "level": 0, "content": " | Repository name | ", "markup": "", "info": "", "meta": {}, "block": false, "hidden": false }, { "type": "code_inline", "tag": "code", "attrs": {}, "nesting": 0, "level": 0, "content": "myproject", "markup": "`", "info": "", "meta": {}, "block": false, "hidden": false }, { "type": "text", "tag": "", "attrs": {}, "nesting": 0, "level": 0, "content": " | ✅ |", "markup": "", "info": "", "meta": {}, "block": false, "hidden": false } ], "content": "| Variable | Description | Example | Required |\n|----------|-------------|---------|----------|\n| `TDDAI_GITEA_URL` | Git platform URL | `https://github.com` | ✅ |\n| `TDDAI_REPO_OWNER` | Repository owner/org | `myusername` | ✅ |\n| `TDDAI_REPO_NAME` | Repository name | `myproject` | ✅ |", "markup": "", "info": "", "meta": {}, "block": true, "hidden": false }, { "type": "paragraph_close", "tag": "p", "attrs": {}, "nesting": -1, "level": 0, "content": "", "markup": "", "info": "", "meta": {}, "block": true, "hidden": false }, { "type": "heading_open", "tag": "h3", "attrs": {}, "map": [ 41, 42 ], "nesting": 1, "level": 0, "content": "", "markup": "###", "info": "", "meta": {}, "block": true, "hidden": false }, { "type": "inline", "tag": "", "attrs": {}, "map": [ 41, 42 ], "nesting": 0, "level": 1, "children": [ { "type": "text", "tag": "", "attrs": {}, "nesting": 0, "level": 0, "content": "Workspace Settings (Optional)", "markup": "", "info": "", "meta": {}, "block": false, "hidden": false } ], "content": "Workspace Settings (Optional)", "markup": "", "info": "", "meta": {}, "block": true, "hidden": false }, { "type": "heading_close", "tag": "h3", "attrs": {}, "nesting": -1, "level": 0, "content": "", "markup": "###", "info": "", "meta": {}, "block": true, "hidden": false }, { "type": "paragraph_open", "tag": "p", "attrs": {}, "map": [ 43, 46 ], "nesting": 1, "level": 0, "content": "", "markup": "", "info": "", "meta": {}, "block": true, "hidden": false }, { "type": "inline", "tag": "", "attrs": {}, "map": [ 43, 46 ], "nesting": 0, "level": 1, "children": [ { "type": "text", "tag": "", "attrs": {}, "nesting": 0, "level": 0, "content": "| Variable | Description | Default | Example |", "markup": "", "info": "", "meta": {}, "block": false, "hidden": false }, { "type": "softbreak", "tag": "br", "attrs": {}, "nesting": 0, "level": 0, "content": "", "markup": "", "info": "", "meta": {}, "block": false, "hidden": false }, { "type": "text", "tag": "", "attrs": {}, "nesting": 0, "level": 0, "content": "|----------|-------------|---------|---------|", "markup": "", "info": "", "meta": {}, "block": false, "hidden": false }, { "type": "softbreak", "tag": "br", "attrs": {}, "nesting": 0, "level": 0, "content": "", "markup": "", "info": "", "meta": {}, "block": false, "hidden": false }, { "type": "text", "tag": "", "attrs": {}, "nesting": 0, "level": 0, "content": "| ", "markup": "", "info": "", "meta": {}, "block": false, "hidden": false }, { "type": "code_inline", "tag": "code", "attrs": {}, "nesting": 0, "level": 0, "content": "TDDAI_WORKSPACE_DIR", "markup": "`", "info": "", "meta": {}, "block": false, "hidden": false }, { "type": "text", "tag": "", "attrs": {}, "nesting": 0, "level": 0, "content": " | TDD workspace directory | ", "markup": "", "info": "", "meta": {}, "block": false, "hidden": false }, { "type": "code_inline", "tag": "code", "attrs": {}, "nesting": 0, "level": 0, "content": ".tddai_workspace", "markup": "`", "info": "", "meta": {}, "block": false, "hidden": false }, { "type": "text", "tag": "", "attrs": {}, "nesting": 0, "level": 0, "content": " | ", "markup": "", "info": "", "meta": {}, "block": false, "hidden": false }, { "type": "code_inline", "tag": "code", "attrs": {}, "nesting": 0, "level": 0, "content": ".myproject_workspace", "markup": "`", "info": "", "meta": {}, "block": false, "hidden": false }, { "type": "text", "tag": "", "attrs": {}, "nesting": 0, "level": 0, "content": " |", "markup": "", "info": "", "meta": {}, "block": false, "hidden": false } ], "content": "| Variable | Description | Default | Example |\n|----------|-------------|---------|---------|\n| `TDDAI_WORKSPACE_DIR` | TDD workspace directory | `.tddai_workspace` | `.myproject_workspace` |", "markup": "", "info": "", "meta": {}, "block": true, "hidden": false }, { "type": "paragraph_close", "tag": "p", "attrs": {}, "nesting": -1, "level": 0, "content": "", "markup": "", "info": "", "meta": {}, "block": true, "hidden": false }, { "type": "heading_open", "tag": "h3", "attrs": {}, "map": [ 47, 48 ], "nesting": 1, "level": 0, "content": "", "markup": "###", "info": "", "meta": {}, "block": true, "hidden": false }, { "type": "inline", "tag": "", "attrs": {}, "map": [ 47, 48 ], "nesting": 0, "level": 1, "children": [ { "type": "text", "tag": "", "attrs": {}, "nesting": 0, "level": 0, "content": "Test Settings (Framework Defaults)", "markup": "", "info": "", "meta": {}, "block": false, "hidden": false } ], "content": "Test Settings (Framework Defaults)", "markup": "", "info": "", "meta": {}, "block": true, "hidden": false }, { "type": "heading_close", "tag": "h3", "attrs": {}, "nesting": -1, "level": 0, "content": "", "markup": "###", "info": "", "meta": {}, "block": true, "hidden": false }, { "type": "paragraph_open", "tag": "p", "attrs": {}, "map": [ 49, 54 ], "nesting": 1, "level": 0, "content": "", "markup": "", "info": "", "meta": {}, "block": true, "hidden": false }, { "type": "inline", "tag": "", "attrs": {}, "map": [ 49, 54 ], "nesting": 0, "level": 1, "children": [ { "type": "text", "tag": "", "attrs": {}, "nesting": 0, "level": 0, "content": "| Setting | Value | Description |", "markup": "", "info": "", "meta": {}, "block": false, "hidden": false }, { "type": "softbreak", "tag": "br", "attrs": {}, "nesting": 0, "level": 0, "content": "", "markup": "", "info": "", "meta": {}, "block": false, "hidden": false }, { "type": "text", "tag": "", "attrs": {}, "nesting": 0, "level": 0, "content": "|---------|-------|-------------|", "markup": "", "info": "", "meta": {}, "block": false, "hidden": false }, { "type": "softbreak", "tag": "br", "attrs": {}, "nesting": 0, "level": 0, "content": "", "markup": "", "info": "", "meta": {}, "block": false, "hidden": false }, { "type": "text", "tag": "", "attrs": {}, "nesting": 0, "level": 0, "content": "| ", "markup": "", "info": "", "meta": {}, "block": false, "hidden": false }, { "type": "code_inline", "tag": "code", "attrs": {}, "nesting": 0, "level": 0, "content": "tests_dir", "markup": "`", "info": "", "meta": {}, "block": false, "hidden": false }, { "type": "text", "tag": "", "attrs": {}, "nesting": 0, "level": 0, "content": " | ", "markup": "", "info": "", "meta": {}, "block": false, "hidden": false }, { "type": "code_inline", "tag": "code", "attrs": {}, "nesting": 0, "level": 0, "content": "tests/", "markup": "`", "info": "", "meta": {}, "block": false, "hidden": false }, { "type": "text", "tag": "", "attrs": {}, "nesting": 0, "level": 0, "content": " | Main test directory |", "markup": "", "info": "", "meta": {}, "block": false, "hidden": false }, { "type": "softbreak", "tag": "br", "attrs": {}, "nesting": 0, "level": 0, "content": "", "markup": "", "info": "", "meta": {}, "block": false, "hidden": false }, { "type": "text", "tag": "", "attrs": {}, "nesting": 0, "level": 0, "content": "| ", "markup": "", "info": "", "meta": {}, "block": false, "hidden": false }, { "type": "code_inline", "tag": "code", "attrs": {}, "nesting": 0, "level": 0, "content": "test_file_pattern", "markup": "`", "info": "", "meta": {}, "block": false, "hidden": false }, { "type": "text", "tag": "", "attrs": {}, "nesting": 0, "level": 0, "content": " | ", "markup": "", "info": "", "meta": {}, "block": false, "hidden": false }, { "type": "code_inline", "tag": "code", "attrs": {}, "nesting": 0, "level": 0, "content": "test_issue_{issue_num}_{scenario}.py", "markup": "`", "info": "", "meta": {}, "block": false, "hidden": false }, { "type": "text", "tag": "", "attrs": {}, "nesting": 0, "level": 0, "content": " | Test file naming pattern |", "markup": "", "info": "", "meta": {}, "block": false, "hidden": false }, { "type": "softbreak", "tag": "br", "attrs": {}, "nesting": 0, "level": 0, "content": "", "markup": "", "info": "", "meta": {}, "block": false, "hidden": false }, { "type": "text", "tag": "", "attrs": {}, "nesting": 0, "level": 0, "content": "| ", "markup": "", "info": "", "meta": {}, "block": false, "hidden": false }, { "type": "code_inline", "tag": "code", "attrs": {}, "nesting": 0, "level": 0, "content": "current_issue_file", "markup": "`", "info": "", "meta": {}, "block": false, "hidden": false }, { "type": "text", "tag": "", "attrs": {}, "nesting": 0, "level": 0, "content": " | ", "markup": "", "info": "", "meta": {}, "block": false, "hidden": false }, { "type": "code_inline", "tag": "code", "attrs": {}, "nesting": 0, "level": 0, "content": "current_issue.json", "markup": "`", "info": "", "meta": {}, "block": false, "hidden": false }, { "type": "text", "tag": "", "attrs": {}, "nesting": 0, "level": 0, "content": " | Active issue metadata file |", "markup": "", "info": "", "meta": {}, "block": false, "hidden": false } ], "content": "| Setting | Value | Description |\n|---------|-------|-------------|\n| `tests_dir` | `tests/` | Main test directory |\n| `test_file_pattern` | `test_issue_{issue_num}_{scenario}.py` | Test file naming pattern |\n| `current_issue_file` | `current_issue.json` | Active issue metadata file |", "markup": "", "info": "", "meta": {}, "block": true, "hidden": false }, { "type": "paragraph_close", "tag": "p", "attrs": {}, "nesting": -1, "level": 0, "content": "", "markup": "", "info": "", "meta": {}, "block": true, "hidden": false }, { "type": "heading_open", "tag": "h2", "attrs": {}, "map": [ 55, 56 ], "nesting": 1, "level": 0, "content": "", "markup": "##", "info": "", "meta": {}, "block": true, "hidden": false }, { "type": "inline", "tag": "", "attrs": {}, "map": [ 55, 56 ], "nesting": 0, "level": 1, "children": [ { "type": "text", "tag": "", "attrs": {}, "nesting": 0, "level": 0, "content": "Configuration Files", "markup": "", "info": "", "meta": {}, "block": false, "hidden": false } ], "content": "Configuration Files", "markup": "", "info": "", "meta": {}, "block": true, "hidden": false }, { "type": "heading_close", "tag": "h2", "attrs": {}, "nesting": -1, "level": 0, "content": "", "markup": "##", "info": "", "meta": {}, "block": true, "hidden": false }, { "type": "heading_open", "tag": "h3", "attrs": {}, "map": [ 57, 58 ], "nesting": 1, "level": 0, "content": "", "markup": "###", "info": "", "meta": {}, "block": true, "hidden": false }, { "type": "inline", "tag": "", "attrs": {}, "map": [ 57, 58 ], "nesting": 0, "level": 1, "children": [ { "type": "code_inline", "tag": "code", "attrs": {}, "nesting": 0, "level": 0, "content": ".env.tddai", "markup": "`", "info": "", "meta": {}, "block": false, "hidden": false }, { "type": "text", "tag": "", "attrs": {}, "nesting": 0, "level": 0, "content": " Format", "markup": "", "info": "", "meta": {}, "block": false, "hidden": false } ], "content": "`.env.tddai` Format", "markup": "", "info": "", "meta": {}, "block": true, "hidden": false }, { "type": "heading_close", "tag": "h3", "attrs": {}, "nesting": -1, "level": 0, "content": "", "markup": "###", "info": "", "meta": {}, "block": true, "hidden": false }, { "type": "fence", "tag": "code", "attrs": {}, "map": [ 58, 68 ], "nesting": 0, "level": 0, "content": "# TDDAi configuration for YourProject\n# Repository settings\nTDDAI_GITEA_URL=https://your-git-platform.com\nTDDAI_REPO_OWNER=yourusername\nTDDAI_REPO_NAME=yourproject\n\n# Workspace settings (optional)\nTDDAI_WORKSPACE_DIR=.yourproject_workspace\n", "markup": "```", "info": "bash", "meta": {}, "block": true, "hidden": false }, { "type": "heading_open", "tag": "h3", "attrs": {}, "map": [ 69, 70 ], "nesting": 1, "level": 0, "content": "", "markup": "###", "info": "", "meta": {}, "block": true, "hidden": false }, { "type": "inline", "tag": "", "attrs": {}, "map": [ 69, 70 ], "nesting": 0, "level": 1, "children": [ { "type": "code_inline", "tag": "code", "attrs": {}, "nesting": 0, "level": 0, "content": "tddai-setup.sh", "markup": "`", "info": "", "meta": {}, "block": false, "hidden": false }, { "type": "text", "tag": "", "attrs": {}, "nesting": 0, "level": 0, "content": " Format", "markup": "", "info": "", "meta": {}, "block": false, "hidden": false } ], "content": "`tddai-setup.sh` Format", "markup": "", "info": "", "meta": {}, "block": true, "hidden": false }, { "type": "heading_close", "tag": "h3", "attrs": {}, "nesting": -1, "level": 0, "content": "", "markup": "###", "info": "", "meta": {}, "block": true, "hidden": false }, { "type": "fence", "tag": "code", "attrs": {}, "map": [ 70, 81 ], "nesting": 0, "level": 0, "content": "#!/bin/bash\n# TDDAi environment setup script\n\nexport TDDAI_GITEA_URL=https://your-git-platform.com\nexport TDDAI_REPO_OWNER=yourusername\nexport TDDAI_REPO_NAME=yourproject\nexport TDDAI_WORKSPACE_DIR=.yourproject_workspace\n\necho \"✅ TDDAi configured for YourProject\"\n", "markup": "```", "info": "bash", "meta": {}, "block": true, "hidden": false }, { "type": "heading_open", "tag": "h2", "attrs": {}, "map": [ 82, 83 ], "nesting": 1, "level": 0, "content": "", "markup": "##", "info": "", "meta": {}, "block": true, "hidden": false }, { "type": "inline", "tag": "", "attrs": {}, "map": [ 82, 83 ], "nesting": 0, "level": 1, "children": [ { "type": "text", "tag": "", "attrs": {}, "nesting": 0, "level": 0, "content": "Platform Examples", "markup": "", "info": "", "meta": {}, "block": false, "hidden": false } ], "content": "Platform Examples", "markup": "", "info": "", "meta": {}, "block": true, "hidden": false }, { "type": "heading_close", "tag": "h2", "attrs": {}, "nesting": -1, "level": 0, "content": "", "markup": "##", "info": "", "meta": {}, "block": true, "hidden": false }, { "type": "heading_open", "tag": "h3", "attrs": {}, "map": [ 84, 85 ], "nesting": 1, "level": 0, "content": "", "markup": "###", "info": "", "meta": {}, "block": true, "hidden": false }, { "type": "inline", "tag": "", "attrs": {}, "map": [ 84, 85 ], "nesting": 0, "level": 1, "children": [ { "type": "text", "tag": "", "attrs": {}, "nesting": 0, "level": 0, "content": "GitHub Configuration", "markup": "", "info": "", "meta": {}, "block": false, "hidden": false } ], "content": "GitHub Configuration", "markup": "", "info": "", "meta": {}, "block": true, "hidden": false }, { "type": "heading_close", "tag": "h3", "attrs": {}, "nesting": -1, "level": 0, "content": "", "markup": "###", "info": "", "meta": {}, "block": true, "hidden": false }, { "type": "fence", "tag": "code", "attrs": {}, "map": [ 85, 90 ], "nesting": 0, "level": 0, "content": "TDDAI_GITEA_URL=https://github.com\nTDDAI_REPO_OWNER=yourusername\nTDDAI_REPO_NAME=yourrepo\n", "markup": "```", "info": "bash", "meta": {}, "block": true, "hidden": false }, { "type": "heading_open", "tag": "h3", "attrs": {}, "map": [ 91, 92 ], "nesting": 1, "level": 0, "content": "", "markup": "###", "info": "", "meta": {}, "block": true, "hidden": false }, { "type": "inline", "tag": "", "attrs": {}, "map": [ 91, 92 ], "nesting": 0, "level": 1, "children": [ { "type": "text", "tag": "", "attrs": {}, "nesting": 0, "level": 0, "content": "GitLab Configuration", "markup": "", "info": "", "meta": {}, "block": false, "hidden": false } ], "content": "GitLab Configuration", "markup": "", "info": "", "meta": {}, "block": true, "hidden": false }, { "type": "heading_close", "tag": "h3", "attrs": {}, "nesting": -1, "level": 0, "content": "", "markup": "###", "info": "", "meta": {}, "block": true, "hidden": false }, { "type": "fence", "tag": "code", "attrs": {}, "map": [ 92, 97 ], "nesting": 0, "level": 0, "content": "TDDAI_GITEA_URL=https://gitlab.com\nTDDAI_REPO_OWNER=yourusername\nTDDAI_REPO_NAME=yourrepo\n", "markup": "```", "info": "bash", "meta": {}, "block": true, "hidden": false }, { "type": "heading_open", "tag": "h3", "attrs": {}, "map": [ 98, 99 ], "nesting": 1, "level": 0, "content": "", "markup": "###", "info": "", "meta": {}, "block": true, "hidden": false }, { "type": "inline", "tag": "", "attrs": {}, "map": [ 98, 99 ], "nesting": 0, "level": 1, "children": [ { "type": "text", "tag": "", "attrs": {}, "nesting": 0, "level": 0, "content": "Self-hosted Gitea", "markup": "", "info": "", "meta": {}, "block": false, "hidden": false } ], "content": "Self-hosted Gitea", "markup": "", "info": "", "meta": {}, "block": true, "hidden": false }, { "type": "heading_close", "tag": "h3", "attrs": {}, "nesting": -1, "level": 0, "content": "", "markup": "###", "info": "", "meta": {}, "block": true, "hidden": false }, { "type": "fence", "tag": "code", "attrs": {}, "map": [ 99, 104 ], "nesting": 0, "level": 0, "content": "TDDAI_GITEA_URL=https://git.yourcompany.com\nTDDAI_REPO_OWNER=yourorganization\nTDDAI_REPO_NAME=yourproject\n", "markup": "```", "info": "bash", "meta": {}, "block": true, "hidden": false }, { "type": "heading_open", "tag": "h2", "attrs": {}, "map": [ 105, 106 ], "nesting": 1, "level": 0, "content": "", "markup": "##", "info": "", "meta": {}, "block": true, "hidden": false }, { "type": "inline", "tag": "", "attrs": {}, "map": [ 105, 106 ], "nesting": 0, "level": 1, "children": [ { "type": "text", "tag": "", "attrs": {}, "nesting": 0, "level": 0, "content": "API Integration", "markup": "", "info": "", "meta": {}, "block": false, "hidden": false } ], "content": "API Integration", "markup": "", "info": "", "meta": {}, "block": true, "hidden": false }, { "type": "heading_close", "tag": "h2", "attrs": {}, "nesting": -1, "level": 0, "content": "", "markup": "##", "info": "", "meta": {}, "block": true, "hidden": false }, { "type": "paragraph_open", "tag": "p", "attrs": {}, "map": [ 107, 108 ], "nesting": 1, "level": 0, "content": "", "markup": "", "info": "", "meta": {}, "block": true, "hidden": false }, { "type": "inline", "tag": "", "attrs": {}, "map": [ 107, 108 ], "nesting": 0, "level": 1, "children": [ { "type": "text", "tag": "", "attrs": {}, "nesting": 0, "level": 0, "content": "The configuration automatically constructs API URLs:", "markup": "", "info": "", "meta": {}, "block": false, "hidden": false } ], "content": "The configuration automatically constructs API URLs:", "markup": "", "info": "", "meta": {}, "block": true, "hidden": false }, { "type": "paragraph_close", "tag": "p", "attrs": {}, "nesting": -1, "level": 0, "content": "", "markup": "", "info": "", "meta": {}, "block": true, "hidden": false }, { "type": "fence", "tag": "code", "attrs": {}, "map": [ 109, 113 ], "nesting": 0, "level": 0, "content": "# Constructed from configuration\nissues_api_url = f\"{TDDAI_GITEA_URL}/api/v1/repos/{TDDAI_REPO_OWNER}/{TDDAI_REPO_NAME}/issues\"\n", "markup": "```", "info": "python", "meta": {}, "block": true, "hidden": false }, { "type": "heading_open", "tag": "h2", "attrs": {}, "map": [ 114, 115 ], "nesting": 1, "level": 0, "content": "", "markup": "##", "info": "", "meta": {}, "block": true, "hidden": false }, { "type": "inline", "tag": "", "attrs": {}, "map": [ 114, 115 ], "nesting": 0, "level": 1, "children": [ { "type": "text", "tag": "", "attrs": {}, "nesting": 0, "level": 0, "content": "Workspace Structure", "markup": "", "info": "", "meta": {}, "block": false, "hidden": false } ], "content": "Workspace Structure", "markup": "", "info": "", "meta": {}, "block": true, "hidden": false }, { "type": "heading_close", "tag": "h2", "attrs": {}, "nesting": -1, "level": 0, "content": "", "markup": "##", "info": "", "meta": {}, "block": true, "hidden": false }, { "type": "paragraph_open", "tag": "p", "attrs": {}, "map": [ 116, 117 ], "nesting": 1, "level": 0, "content": "", "markup": "", "info": "", "meta": {}, "block": true, "hidden": false }, { "type": "inline", "tag": "", "attrs": {}, "map": [ 116, 117 ], "nesting": 0, "level": 1, "children": [ { "type": "text", "tag": "", "attrs": {}, "nesting": 0, "level": 0, "content": "Default workspace layout (configurable via ", "markup": "", "info": "", "meta": {}, "block": false, "hidden": false }, { "type": "code_inline", "tag": "code", "attrs": {}, "nesting": 0, "level": 0, "content": "TDDAI_WORKSPACE_DIR", "markup": "`", "info": "", "meta": {}, "block": false, "hidden": false }, { "type": "text", "tag": "", "attrs": {}, "nesting": 0, "level": 0, "content": "):", "markup": "", "info": "", "meta": {}, "block": false, "hidden": false } ], "content": "Default workspace layout (configurable via `TDDAI_WORKSPACE_DIR`):", "markup": "", "info": "", "meta": {}, "block": true, "hidden": false }, { "type": "paragraph_close", "tag": "p", "attrs": {}, "nesting": -1, "level": 0, "content": "", "markup": "", "info": "", "meta": {}, "block": true, "hidden": false }, { "type": "fence", "tag": "code", "attrs": {}, "map": [ 118, 127 ], "nesting": 0, "level": 0, "content": ".tddai_workspace/\n├── current_issue.json # Active issue metadata\n└── issue_X/ # Issue-specific workspace\n ├── tests/ # Test files for this issue\n │ └── test_issue_X_*.py # Generated test files\n ├── requirements.md # Issue requirements analysis\n └── test_plan.md # Test planning document\n", "markup": "```", "info": "", "meta": {}, "block": true, "hidden": false }, { "type": "heading_open", "tag": "h2", "attrs": {}, "map": [ 128, 129 ], "nesting": 1, "level": 0, "content": "", "markup": "##", "info": "", "meta": {}, "block": true, "hidden": false }, { "type": "inline", "tag": "", "attrs": {}, "map": [ 128, 129 ], "nesting": 0, "level": 1, "children": [ { "type": "text", "tag": "", "attrs": {}, "nesting": 0, "level": 0, "content": "Environment Variable Overrides", "markup": "", "info": "", "meta": {}, "block": false, "hidden": false } ], "content": "Environment Variable Overrides", "markup": "", "info": "", "meta": {}, "block": true, "hidden": false }, { "type": "heading_close", "tag": "h2", "attrs": {}, "nesting": -1, "level": 0, "content": "", "markup": "##", "info": "", "meta": {}, "block": true, "hidden": false }, { "type": "paragraph_open", "tag": "p", "attrs": {}, "map": [ 130, 131 ], "nesting": 1, "level": 0, "content": "", "markup": "", "info": "", "meta": {}, "block": true, "hidden": false }, { "type": "inline", "tag": "", "attrs": {}, "map": [ 130, 131 ], "nesting": 0, "level": 1, "children": [ { "type": "text", "tag": "", "attrs": {}, "nesting": 0, "level": 0, "content": "You can override any configuration at runtime:", "markup": "", "info": "", "meta": {}, "block": false, "hidden": false } ], "content": "You can override any configuration at runtime:", "markup": "", "info": "", "meta": {}, "block": true, "hidden": false }, { "type": "paragraph_close", "tag": "p", "attrs": {}, "nesting": -1, "level": 0, "content": "", "markup": "", "info": "", "meta": {}, "block": true, "hidden": false }, { "type": "fence", "tag": "code", "attrs": {}, "map": [ 132, 139 ], "nesting": 0, "level": 0, "content": "# Override workspace directory for this session\nTDDAI_WORKSPACE_DIR=.custom_workspace make tdd-start NUM=5\n\n# Override repository for testing\nTDDAI_REPO_NAME=test_repo make tdd-status\n", "markup": "```", "info": "bash", "meta": {}, "block": true, "hidden": false }, { "type": "heading_open", "tag": "h2", "attrs": {}, "map": [ 140, 141 ], "nesting": 1, "level": 0, "content": "", "markup": "##", "info": "", "meta": {}, "block": true, "hidden": false }, { "type": "inline", "tag": "", "attrs": {}, "map": [ 140, 141 ], "nesting": 0, "level": 1, "children": [ { "type": "text", "tag": "", "attrs": {}, "nesting": 0, "level": 0, "content": "Validation", "markup": "", "info": "", "meta": {}, "block": false, "hidden": false } ], "content": "Validation", "markup": "", "info": "", "meta": {}, "block": true, "hidden": false }, { "type": "heading_close", "tag": "h2", "attrs": {}, "nesting": -1, "level": 0, "content": "", "markup": "##", "info": "", "meta": {}, "block": true, "hidden": false }, { "type": "paragraph_open", "tag": "p", "attrs": {}, "map": [ 142, 143 ], "nesting": 1, "level": 0, "content": "", "markup": "", "info": "", "meta": {}, "block": true, "hidden": false }, { "type": "inline", "tag": "", "attrs": {}, "map": [ 142, 143 ], "nesting": 0, "level": 1, "children": [ { "type": "text", "tag": "", "attrs": {}, "nesting": 0, "level": 0, "content": "The framework validates configuration on startup:", "markup": "", "info": "", "meta": {}, "block": false, "hidden": false } ], "content": "The framework validates configuration on startup:", "markup": "", "info": "", "meta": {}, "block": true, "hidden": false }, { "type": "paragraph_close", "tag": "p", "attrs": {}, "nesting": -1, "level": 0, "content": "", "markup": "", "info": "", "meta": {}, "block": true, "hidden": false }, { "type": "bullet_list_open", "tag": "ul", "attrs": {}, "map": [ 144, 148 ], "nesting": 1, "level": 0, "content": "", "markup": "-", "info": "", "meta": {}, "block": true, "hidden": false }, { "type": "list_item_open", "tag": "li", "attrs": {}, "map": [ 144, 145 ], "nesting": 1, "level": 1, "content": "", "markup": "-", "info": "", "meta": {}, "block": true, "hidden": false }, { "type": "paragraph_open", "tag": "p", "attrs": {}, "map": [ 144, 145 ], "nesting": 1, "level": 2, "content": "", "markup": "", "info": "", "meta": {}, "block": true, "hidden": true }, { "type": "inline", "tag": "", "attrs": {}, "map": [ 144, 145 ], "nesting": 0, "level": 3, "children": [ { "type": "text", "tag": "", "attrs": {}, "nesting": 0, "level": 0, "content": "", "markup": "", "info": "", "meta": {}, "block": false, "hidden": false }, { "type": "strong_open", "tag": "strong", "attrs": {}, "nesting": 1, "level": 0, "content": "", "markup": "**", "info": "", "meta": {}, "block": false, "hidden": false }, { "type": "text", "tag": "", "attrs": {}, "nesting": 0, "level": 1, "content": "Required fields", "markup": "", "info": "", "meta": {}, "block": false, "hidden": false }, { "type": "strong_close", "tag": "strong", "attrs": {}, "nesting": -1, "level": 0, "content": "", "markup": "**", "info": "", "meta": {}, "block": false, "hidden": false }, { "type": "text", "tag": "", "attrs": {}, "nesting": 0, "level": 0, "content": " must be non-empty (", "markup": "", "info": "", "meta": {}, "block": false, "hidden": false }, { "type": "code_inline", "tag": "code", "attrs": {}, "nesting": 0, "level": 0, "content": "gitea_url", "markup": "`", "info": "", "meta": {}, "block": false, "hidden": false }, { "type": "text", "tag": "", "attrs": {}, "nesting": 0, "level": 0, "content": ", ", "markup": "", "info": "", "meta": {}, "block": false, "hidden": false }, { "type": "code_inline", "tag": "code", "attrs": {}, "nesting": 0, "level": 0, "content": "repo_owner", "markup": "`", "info": "", "meta": {}, "block": false, "hidden": false }, { "type": "text", "tag": "", "attrs": {}, "nesting": 0, "level": 0, "content": ", ", "markup": "", "info": "", "meta": {}, "block": false, "hidden": false }, { "type": "code_inline", "tag": "code", "attrs": {}, "nesting": 0, "level": 0, "content": "repo_name", "markup": "`", "info": "", "meta": {}, "block": false, "hidden": false }, { "type": "text", "tag": "", "attrs": {}, "nesting": 0, "level": 0, "content": ")", "markup": "", "info": "", "meta": {}, "block": false, "hidden": false } ], "content": "**Required fields** must be non-empty (`gitea_url`, `repo_owner`, `repo_name`)", "markup": "", "info": "", "meta": {}, "block": true, "hidden": false }, { "type": "paragraph_close", "tag": "p", "attrs": {}, "nesting": -1, "level": 2, "content": "", "markup": "", "info": "", "meta": {}, "block": true, "hidden": true }, { "type": "list_item_close", "tag": "li", "attrs": {}, "nesting": -1, "level": 1, "content": "", "markup": "-", "info": "", "meta": {}, "block": true, "hidden": false }, { "type": "list_item_open", "tag": "li", "attrs": {}, "map": [ 145, 146 ], "nesting": 1, "level": 1, "content": "", "markup": "-", "info": "", "meta": {}, "block": true, "hidden": false }, { "type": "paragraph_open", "tag": "p", "attrs": {}, "map": [ 145, 146 ], "nesting": 1, "level": 2, "content": "", "markup": "", "info": "", "meta": {}, "block": true, "hidden": true }, { "type": "inline", "tag": "", "attrs": {}, "map": [ 145, 146 ], "nesting": 0, "level": 3, "children": [ { "type": "text", "tag": "", "attrs": {}, "nesting": 0, "level": 0, "content": "", "markup": "", "info": "", "meta": {}, "block": false, "hidden": false }, { "type": "strong_open", "tag": "strong", "attrs": {}, "nesting": 1, "level": 0, "content": "", "markup": "**", "info": "", "meta": {}, "block": false, "hidden": false }, { "type": "text", "tag": "", "attrs": {}, "nesting": 0, "level": 1, "content": "URLs", "markup": "", "info": "", "meta": {}, "block": false, "hidden": false }, { "type": "strong_close", "tag": "strong", "attrs": {}, "nesting": -1, "level": 0, "content": "", "markup": "**", "info": "", "meta": {}, "block": false, "hidden": false }, { "type": "text", "tag": "", "attrs": {}, "nesting": 0, "level": 0, "content": " should include protocol (", "markup": "", "info": "", "meta": {}, "block": false, "hidden": false }, { "type": "code_inline", "tag": "code", "attrs": {}, "nesting": 0, "level": 0, "content": "http://", "markup": "`", "info": "", "meta": {}, "block": false, "hidden": false }, { "type": "text", "tag": "", "attrs": {}, "nesting": 0, "level": 0, "content": " or ", "markup": "", "info": "", "meta": {}, "block": false, "hidden": false }, { "type": "code_inline", "tag": "code", "attrs": {}, "nesting": 0, "level": 0, "content": "https://", "markup": "`", "info": "", "meta": {}, "block": false, "hidden": false }, { "type": "text", "tag": "", "attrs": {}, "nesting": 0, "level": 0, "content": ")", "markup": "", "info": "", "meta": {}, "block": false, "hidden": false } ], "content": "**URLs** should include protocol (`http://` or `https://`)", "markup": "", "info": "", "meta": {}, "block": true, "hidden": false }, { "type": "paragraph_close", "tag": "p", "attrs": {}, "nesting": -1, "level": 2, "content": "", "markup": "", "info": "", "meta": {}, "block": true, "hidden": true }, { "type": "list_item_close", "tag": "li", "attrs": {}, "nesting": -1, "level": 1, "content": "", "markup": "-", "info": "", "meta": {}, "block": true, "hidden": false }, { "type": "list_item_open", "tag": "li", "attrs": {}, "map": [ 146, 148 ], "nesting": 1, "level": 1, "content": "", "markup": "-", "info": "", "meta": {}, "block": true, "hidden": false }, { "type": "paragraph_open", "tag": "p", "attrs": {}, "map": [ 146, 147 ], "nesting": 1, "level": 2, "content": "", "markup": "", "info": "", "meta": {}, "block": true, "hidden": true }, { "type": "inline", "tag": "", "attrs": {}, "map": [ 146, 147 ], "nesting": 0, "level": 3, "children": [ { "type": "text", "tag": "", "attrs": {}, "nesting": 0, "level": 0, "content": "", "markup": "", "info": "", "meta": {}, "block": false, "hidden": false }, { "type": "strong_open", "tag": "strong", "attrs": {}, "nesting": 1, "level": 0, "content": "", "markup": "**", "info": "", "meta": {}, "block": false, "hidden": false }, { "type": "text", "tag": "", "attrs": {}, "nesting": 0, "level": 1, "content": "Workspace directories", "markup": "", "info": "", "meta": {}, "block": false, "hidden": false }, { "type": "strong_close", "tag": "strong", "attrs": {}, "nesting": -1, "level": 0, "content": "", "markup": "**", "info": "", "meta": {}, "block": false, "hidden": false }, { "type": "text", "tag": "", "attrs": {}, "nesting": 0, "level": 0, "content": " are created automatically if they don't exist", "markup": "", "info": "", "meta": {}, "block": false, "hidden": false } ], "content": "**Workspace directories** are created automatically if they don't exist", "markup": "", "info": "", "meta": {}, "block": true, "hidden": false }, { "type": "paragraph_close", "tag": "p", "attrs": {}, "nesting": -1, "level": 2, "content": "", "markup": "", "info": "", "meta": {}, "block": true, "hidden": true }, { "type": "list_item_close", "tag": "li", "attrs": {}, "nesting": -1, "level": 1, "content": "", "markup": "-", "info": "", "meta": {}, "block": true, "hidden": false }, { "type": "bullet_list_close", "tag": "ul", "attrs": {}, "nesting": -1, "level": 0, "content": "", "markup": "-", "info": "", "meta": {}, "block": true, "hidden": false }, { "type": "heading_open", "tag": "h2", "attrs": {}, "map": [ 148, 149 ], "nesting": 1, "level": 0, "content": "", "markup": "##", "info": "", "meta": {}, "block": true, "hidden": false }, { "type": "inline", "tag": "", "attrs": {}, "map": [ 148, 149 ], "nesting": 0, "level": 1, "children": [ { "type": "text", "tag": "", "attrs": {}, "nesting": 0, "level": 0, "content": "Troubleshooting", "markup": "", "info": "", "meta": {}, "block": false, "hidden": false } ], "content": "Troubleshooting", "markup": "", "info": "", "meta": {}, "block": true, "hidden": false }, { "type": "heading_close", "tag": "h2", "attrs": {}, "nesting": -1, "level": 0, "content": "", "markup": "##", "info": "", "meta": {}, "block": true, "hidden": false }, { "type": "heading_open", "tag": "h3", "attrs": {}, "map": [ 150, 151 ], "nesting": 1, "level": 0, "content": "", "markup": "###", "info": "", "meta": {}, "block": true, "hidden": false }, { "type": "inline", "tag": "", "attrs": {}, "map": [ 150, 151 ], "nesting": 0, "level": 1, "children": [ { "type": "text", "tag": "", "attrs": {}, "nesting": 0, "level": 0, "content": "Common Errors", "markup": "", "info": "", "meta": {}, "block": false, "hidden": false } ], "content": "Common Errors", "markup": "", "info": "", "meta": {}, "block": true, "hidden": false }, { "type": "heading_close", "tag": "h3", "attrs": {}, "nesting": -1, "level": 0, "content": "", "markup": "###", "info": "", "meta": {}, "block": true, "hidden": false }, { "type": "paragraph_open", "tag": "p", "attrs": {}, "map": [ 152, 153 ], "nesting": 1, "level": 0, "content": "", "markup": "", "info": "", "meta": {}, "block": true, "hidden": false }, { "type": "inline", "tag": "", "attrs": {}, "map": [ 152, 153 ], "nesting": 0, "level": 1, "children": [ { "type": "text", "tag": "", "attrs": {}, "nesting": 0, "level": 0, "content": "", "markup": "", "info": "", "meta": {}, "block": false, "hidden": false }, { "type": "strong_open", "tag": "strong", "attrs": {}, "nesting": 1, "level": 0, "content": "", "markup": "**", "info": "", "meta": {}, "block": false, "hidden": false }, { "type": "code_inline", "tag": "code", "attrs": {}, "nesting": 0, "level": 1, "content": "gitea_url cannot be empty", "markup": "`", "info": "", "meta": {}, "block": false, "hidden": false }, { "type": "strong_close", "tag": "strong", "attrs": {}, "nesting": -1, "level": 0, "content": "", "markup": "**", "info": "", "meta": {}, "block": false, "hidden": false }, { "type": "text", "tag": "", "attrs": {}, "nesting": 0, "level": 0, "content": "", "markup": "", "info": "", "meta": {}, "block": false, "hidden": false } ], "content": "**`gitea_url cannot be empty`**", "markup": "", "info": "", "meta": {}, "block": true, "hidden": false }, { "type": "paragraph_close", "tag": "p", "attrs": {}, "nesting": -1, "level": 0, "content": "", "markup": "", "info": "", "meta": {}, "block": true, "hidden": false }, { "type": "bullet_list_open", "tag": "ul", "attrs": {}, "map": [ 153, 156 ], "nesting": 1, "level": 0, "content": "", "markup": "-", "info": "", "meta": {}, "block": true, "hidden": false }, { "type": "list_item_open", "tag": "li", "attrs": {}, "map": [ 153, 154 ], "nesting": 1, "level": 1, "content": "", "markup": "-", "info": "", "meta": {}, "block": true, "hidden": false }, { "type": "paragraph_open", "tag": "p", "attrs": {}, "map": [ 153, 154 ], "nesting": 1, "level": 2, "content": "", "markup": "", "info": "", "meta": {}, "block": true, "hidden": true }, { "type": "inline", "tag": "", "attrs": {}, "map": [ 153, 154 ], "nesting": 0, "level": 3, "children": [ { "type": "text", "tag": "", "attrs": {}, "nesting": 0, "level": 0, "content": "Solution: Create ", "markup": "", "info": "", "meta": {}, "block": false, "hidden": false }, { "type": "code_inline", "tag": "code", "attrs": {}, "nesting": 0, "level": 0, "content": ".env.tddai", "markup": "`", "info": "", "meta": {}, "block": false, "hidden": false }, { "type": "text", "tag": "", "attrs": {}, "nesting": 0, "level": 0, "content": " with ", "markup": "", "info": "", "meta": {}, "block": false, "hidden": false }, { "type": "code_inline", "tag": "code", "attrs": {}, "nesting": 0, "level": 0, "content": "TDDAI_GITEA_URL=your-url", "markup": "`", "info": "", "meta": {}, "block": false, "hidden": false } ], "content": "Solution: Create `.env.tddai` with `TDDAI_GITEA_URL=your-url`", "markup": "", "info": "", "meta": {}, "block": true, "hidden": false }, { "type": "paragraph_close", "tag": "p", "attrs": {}, "nesting": -1, "level": 2, "content": "", "markup": "", "info": "", "meta": {}, "block": true, "hidden": true }, { "type": "list_item_close", "tag": "li", "attrs": {}, "nesting": -1, "level": 1, "content": "", "markup": "-", "info": "", "meta": {}, "block": true, "hidden": false }, { "type": "list_item_open", "tag": "li", "attrs": {}, "map": [ 154, 156 ], "nesting": 1, "level": 1, "content": "", "markup": "-", "info": "", "meta": {}, "block": true, "hidden": false }, { "type": "paragraph_open", "tag": "p", "attrs": {}, "map": [ 154, 155 ], "nesting": 1, "level": 2, "content": "", "markup": "", "info": "", "meta": {}, "block": true, "hidden": true }, { "type": "inline", "tag": "", "attrs": {}, "map": [ 154, 155 ], "nesting": 0, "level": 3, "children": [ { "type": "text", "tag": "", "attrs": {}, "nesting": 0, "level": 0, "content": "Alternative: Run ", "markup": "", "info": "", "meta": {}, "block": false, "hidden": false }, { "type": "code_inline", "tag": "code", "attrs": {}, "nesting": 0, "level": 0, "content": "source tddai-setup.sh", "markup": "`", "info": "", "meta": {}, "block": false, "hidden": false }, { "type": "text", "tag": "", "attrs": {}, "nesting": 0, "level": 0, "content": " before tddai commands", "markup": "", "info": "", "meta": {}, "block": false, "hidden": false } ], "content": "Alternative: Run `source tddai-setup.sh` before tddai commands", "markup": "", "info": "", "meta": {}, "block": true, "hidden": false }, { "type": "paragraph_close", "tag": "p", "attrs": {}, "nesting": -1, "level": 2, "content": "", "markup": "", "info": "", "meta": {}, "block": true, "hidden": true }, { "type": "list_item_close", "tag": "li", "attrs": {}, "nesting": -1, "level": 1, "content": "", "markup": "-", "info": "", "meta": {}, "block": true, "hidden": false }, { "type": "bullet_list_close", "tag": "ul", "attrs": {}, "nesting": -1, "level": 0, "content": "", "markup": "-", "info": "", "meta": {}, "block": true, "hidden": false }, { "type": "paragraph_open", "tag": "p", "attrs": {}, "map": [ 156, 157 ], "nesting": 1, "level": 0, "content": "", "markup": "", "info": "", "meta": {}, "block": true, "hidden": false }, { "type": "inline", "tag": "", "attrs": {}, "map": [ 156, 157 ], "nesting": 0, "level": 1, "children": [ { "type": "text", "tag": "", "attrs": {}, "nesting": 0, "level": 0, "content": "", "markup": "", "info": "", "meta": {}, "block": false, "hidden": false }, { "type": "strong_open", "tag": "strong", "attrs": {}, "nesting": 1, "level": 0, "content": "", "markup": "**", "info": "", "meta": {}, "block": false, "hidden": false }, { "type": "code_inline", "tag": "code", "attrs": {}, "nesting": 0, "level": 1, "content": "repo_owner cannot be empty", "markup": "`", "info": "", "meta": {}, "block": false, "hidden": false }, { "type": "strong_close", "tag": "strong", "attrs": {}, "nesting": -1, "level": 0, "content": "", "markup": "**", "info": "", "meta": {}, "block": false, "hidden": false }, { "type": "text", "tag": "", "attrs": {}, "nesting": 0, "level": 0, "content": "", "markup": "", "info": "", "meta": {}, "block": false, "hidden": false } ], "content": "**`repo_owner cannot be empty`**", "markup": "", "info": "", "meta": {}, "block": true, "hidden": false }, { "type": "paragraph_close", "tag": "p", "attrs": {}, "nesting": -1, "level": 0, "content": "", "markup": "", "info": "", "meta": {}, "block": true, "hidden": false }, { "type": "bullet_list_open", "tag": "ul", "attrs": {}, "map": [ 157, 159 ], "nesting": 1, "level": 0, "content": "", "markup": "-", "info": "", "meta": {}, "block": true, "hidden": false }, { "type": "list_item_open", "tag": "li", "attrs": {}, "map": [ 157, 159 ], "nesting": 1, "level": 1, "content": "", "markup": "-", "info": "", "meta": {}, "block": true, "hidden": false }, { "type": "paragraph_open", "tag": "p", "attrs": {}, "map": [ 157, 158 ], "nesting": 1, "level": 2, "content": "", "markup": "", "info": "", "meta": {}, "block": true, "hidden": true }, { "type": "inline", "tag": "", "attrs": {}, "map": [ 157, 158 ], "nesting": 0, "level": 3, "children": [ { "type": "text", "tag": "", "attrs": {}, "nesting": 0, "level": 0, "content": "Solution: Set ", "markup": "", "info": "", "meta": {}, "block": false, "hidden": false }, { "type": "code_inline", "tag": "code", "attrs": {}, "nesting": 0, "level": 0, "content": "TDDAI_REPO_OWNER", "markup": "`", "info": "", "meta": {}, "block": false, "hidden": false }, { "type": "text", "tag": "", "attrs": {}, "nesting": 0, "level": 0, "content": " in ", "markup": "", "info": "", "meta": {}, "block": false, "hidden": false }, { "type": "code_inline", "tag": "code", "attrs": {}, "nesting": 0, "level": 0, "content": ".env.tddai", "markup": "`", "info": "", "meta": {}, "block": false, "hidden": false }, { "type": "text", "tag": "", "attrs": {}, "nesting": 0, "level": 0, "content": " or environment", "markup": "", "info": "", "meta": {}, "block": false, "hidden": false } ], "content": "Solution: Set `TDDAI_REPO_OWNER` in `.env.tddai` or environment", "markup": "", "info": "", "meta": {}, "block": true, "hidden": false }, { "type": "paragraph_close", "tag": "p", "attrs": {}, "nesting": -1, "level": 2, "content": "", "markup": "", "info": "", "meta": {}, "block": true, "hidden": true }, { "type": "list_item_close", "tag": "li", "attrs": {}, "nesting": -1, "level": 1, "content": "", "markup": "-", "info": "", "meta": {}, "block": true, "hidden": false }, { "type": "bullet_list_close", "tag": "ul", "attrs": {}, "nesting": -1, "level": 0, "content": "", "markup": "-", "info": "", "meta": {}, "block": true, "hidden": false }, { "type": "paragraph_open", "tag": "p", "attrs": {}, "map": [ 159, 160 ], "nesting": 1, "level": 0, "content": "", "markup": "", "info": "", "meta": {}, "block": true, "hidden": false }, { "type": "inline", "tag": "", "attrs": {}, "map": [ 159, 160 ], "nesting": 0, "level": 1, "children": [ { "type": "text", "tag": "", "attrs": {}, "nesting": 0, "level": 0, "content": "", "markup": "", "info": "", "meta": {}, "block": false, "hidden": false }, { "type": "strong_open", "tag": "strong", "attrs": {}, "nesting": 1, "level": 0, "content": "", "markup": "**", "info": "", "meta": {}, "block": false, "hidden": false }, { "type": "code_inline", "tag": "code", "attrs": {}, "nesting": 0, "level": 1, "content": "repo_name cannot be empty", "markup": "`", "info": "", "meta": {}, "block": false, "hidden": false }, { "type": "strong_close", "tag": "strong", "attrs": {}, "nesting": -1, "level": 0, "content": "", "markup": "**", "info": "", "meta": {}, "block": false, "hidden": false }, { "type": "text", "tag": "", "attrs": {}, "nesting": 0, "level": 0, "content": "", "markup": "", "info": "", "meta": {}, "block": false, "hidden": false } ], "content": "**`repo_name cannot be empty`**", "markup": "", "info": "", "meta": {}, "block": true, "hidden": false }, { "type": "paragraph_close", "tag": "p", "attrs": {}, "nesting": -1, "level": 0, "content": "", "markup": "", "info": "", "meta": {}, "block": true, "hidden": false }, { "type": "bullet_list_open", "tag": "ul", "attrs": {}, "map": [ 160, 162 ], "nesting": 1, "level": 0, "content": "", "markup": "-", "info": "", "meta": {}, "block": true, "hidden": false }, { "type": "list_item_open", "tag": "li", "attrs": {}, "map": [ 160, 162 ], "nesting": 1, "level": 1, "content": "", "markup": "-", "info": "", "meta": {}, "block": true, "hidden": false }, { "type": "paragraph_open", "tag": "p", "attrs": {}, "map": [ 160, 161 ], "nesting": 1, "level": 2, "content": "", "markup": "", "info": "", "meta": {}, "block": true, "hidden": true }, { "type": "inline", "tag": "", "attrs": {}, "map": [ 160, 161 ], "nesting": 0, "level": 3, "children": [ { "type": "text", "tag": "", "attrs": {}, "nesting": 0, "level": 0, "content": "Solution: Set ", "markup": "", "info": "", "meta": {}, "block": false, "hidden": false }, { "type": "code_inline", "tag": "code", "attrs": {}, "nesting": 0, "level": 0, "content": "TDDAI_REPO_NAME", "markup": "`", "info": "", "meta": {}, "block": false, "hidden": false }, { "type": "text", "tag": "", "attrs": {}, "nesting": 0, "level": 0, "content": " in ", "markup": "", "info": "", "meta": {}, "block": false, "hidden": false }, { "type": "code_inline", "tag": "code", "attrs": {}, "nesting": 0, "level": 0, "content": ".env.tddai", "markup": "`", "info": "", "meta": {}, "block": false, "hidden": false }, { "type": "text", "tag": "", "attrs": {}, "nesting": 0, "level": 0, "content": " or environment", "markup": "", "info": "", "meta": {}, "block": false, "hidden": false } ], "content": "Solution: Set `TDDAI_REPO_NAME` in `.env.tddai` or environment", "markup": "", "info": "", "meta": {}, "block": true, "hidden": false }, { "type": "paragraph_close", "tag": "p", "attrs": {}, "nesting": -1, "level": 2, "content": "", "markup": "", "info": "", "meta": {}, "block": true, "hidden": true }, { "type": "list_item_close", "tag": "li", "attrs": {}, "nesting": -1, "level": 1, "content": "", "markup": "-", "info": "", "meta": {}, "block": true, "hidden": false }, { "type": "bullet_list_close", "tag": "ul", "attrs": {}, "nesting": -1, "level": 0, "content": "", "markup": "-", "info": "", "meta": {}, "block": true, "hidden": false }, { "type": "heading_open", "tag": "h3", "attrs": {}, "map": [ 162, 163 ], "nesting": 1, "level": 0, "content": "", "markup": "###", "info": "", "meta": {}, "block": true, "hidden": false }, { "type": "inline", "tag": "", "attrs": {}, "map": [ 162, 163 ], "nesting": 0, "level": 1, "children": [ { "type": "text", "tag": "", "attrs": {}, "nesting": 0, "level": 0, "content": "Debug Configuration", "markup": "", "info": "", "meta": {}, "block": false, "hidden": false } ], "content": "Debug Configuration", "markup": "", "info": "", "meta": {}, "block": true, "hidden": false }, { "type": "heading_close", "tag": "h3", "attrs": {}, "nesting": -1, "level": 0, "content": "", "markup": "###", "info": "", "meta": {}, "block": true, "hidden": false }, { "type": "fence", "tag": "code", "attrs": {}, "map": [ 163, 167 ], "nesting": 0, "level": 0, "content": "# Check current configuration\npython -c \"from tddai.config import get_config; c=get_config(); print(f'URL: {c.gitea_url}\\\\nOwner: {c.repo_owner}\\\\nRepo: {c.repo_name}\\\\nWorkspace: {c.workspace_dir}')\"\n", "markup": "```", "info": "bash", "meta": {}, "block": true, "hidden": false }, { "type": "heading_open", "tag": "h2", "attrs": {}, "map": [ 168, 169 ], "nesting": 1, "level": 0, "content": "", "markup": "##", "info": "", "meta": {}, "block": true, "hidden": false }, { "type": "inline", "tag": "", "attrs": {}, "map": [ 168, 169 ], "nesting": 0, "level": 1, "children": [ { "type": "text", "tag": "", "attrs": {}, "nesting": 0, "level": 0, "content": "Migration from Other Projects", "markup": "", "info": "", "meta": {}, "block": false, "hidden": false } ], "content": "Migration from Other Projects", "markup": "", "info": "", "meta": {}, "block": true, "hidden": false }, { "type": "heading_close", "tag": "h2", "attrs": {}, "nesting": -1, "level": 0, "content": "", "markup": "##", "info": "", "meta": {}, "block": true, "hidden": false }, { "type": "paragraph_open", "tag": "p", "attrs": {}, "map": [ 170, 171 ], "nesting": 1, "level": 0, "content": "", "markup": "", "info": "", "meta": {}, "block": true, "hidden": false }, { "type": "inline", "tag": "", "attrs": {}, "map": [ 170, 171 ], "nesting": 0, "level": 1, "children": [ { "type": "text", "tag": "", "attrs": {}, "nesting": 0, "level": 0, "content": "When adapting tddai for a new project:", "markup": "", "info": "", "meta": {}, "block": false, "hidden": false } ], "content": "When adapting tddai for a new project:", "markup": "", "info": "", "meta": {}, "block": true, "hidden": false }, { "type": "paragraph_close", "tag": "p", "attrs": {}, "nesting": -1, "level": 0, "content": "", "markup": "", "info": "", "meta": {}, "block": true, "hidden": false }, { "type": "ordered_list_open", "tag": "ol", "attrs": {}, "map": [ 172, 190 ], "nesting": 1, "level": 0, "content": "", "markup": ".", "info": "", "meta": {}, "block": true, "hidden": false }, { "type": "list_item_open", "tag": "li", "attrs": {}, "map": [ 172, 177 ], "nesting": 1, "level": 1, "content": "", "markup": ".", "info": "1", "meta": {}, "block": true, "hidden": false }, { "type": "paragraph_open", "tag": "p", "attrs": {}, "map": [ 172, 173 ], "nesting": 1, "level": 2, "content": "", "markup": "", "info": "", "meta": {}, "block": true, "hidden": false }, { "type": "inline", "tag": "", "attrs": {}, "map": [ 172, 173 ], "nesting": 0, "level": 3, "children": [ { "type": "text", "tag": "", "attrs": {}, "nesting": 0, "level": 0, "content": "", "markup": "", "info": "", "meta": {}, "block": false, "hidden": false }, { "type": "strong_open", "tag": "strong", "attrs": {}, "nesting": 1, "level": 0, "content": "", "markup": "**", "info": "", "meta": {}, "block": false, "hidden": false }, { "type": "text", "tag": "", "attrs": {}, "nesting": 0, "level": 1, "content": "Copy configuration template", "markup": "", "info": "", "meta": {}, "block": false, "hidden": false }, { "type": "strong_close", "tag": "strong", "attrs": {}, "nesting": -1, "level": 0, "content": "", "markup": "**", "info": "", "meta": {}, "block": false, "hidden": false }, { "type": "text", "tag": "", "attrs": {}, "nesting": 0, "level": 0, "content": ":", "markup": "", "info": "", "meta": {}, "block": false, "hidden": false } ], "content": "**Copy configuration template**:", "markup": "", "info": "", "meta": {}, "block": true, "hidden": false }, { "type": "paragraph_close", "tag": "p", "attrs": {}, "nesting": -1, "level": 2, "content": "", "markup": "", "info": "", "meta": {}, "block": true, "hidden": false }, { "type": "fence", "tag": "code", "attrs": {}, "map": [ 173, 176 ], "nesting": 0, "level": 2, "content": "cp .env.tddai.example .env.tddai\n", "markup": "```", "info": "bash", "meta": {}, "block": true, "hidden": false }, { "type": "list_item_close", "tag": "li", "attrs": {}, "nesting": -1, "level": 1, "content": "", "markup": ".", "info": "", "meta": {}, "block": true, "hidden": false }, { "type": "list_item_open", "tag": "li", "attrs": {}, "map": [ 177, 185 ], "nesting": 1, "level": 1, "content": "", "markup": ".", "info": "2", "meta": {}, "block": true, "hidden": false }, { "type": "paragraph_open", "tag": "p", "attrs": {}, "map": [ 177, 178 ], "nesting": 1, "level": 2, "content": "", "markup": "", "info": "", "meta": {}, "block": true, "hidden": false }, { "type": "inline", "tag": "", "attrs": {}, "map": [ 177, 178 ], "nesting": 0, "level": 3, "children": [ { "type": "text", "tag": "", "attrs": {}, "nesting": 0, "level": 0, "content": "", "markup": "", "info": "", "meta": {}, "block": false, "hidden": false }, { "type": "strong_open", "tag": "strong", "attrs": {}, "nesting": 1, "level": 0, "content": "", "markup": "**", "info": "", "meta": {}, "block": false, "hidden": false }, { "type": "text", "tag": "", "attrs": {}, "nesting": 0, "level": 1, "content": "Update repository settings", "markup": "", "info": "", "meta": {}, "block": false, "hidden": false }, { "type": "strong_close", "tag": "strong", "attrs": {}, "nesting": -1, "level": 0, "content": "", "markup": "**", "info": "", "meta": {}, "block": false, "hidden": false }, { "type": "text", "tag": "", "attrs": {}, "nesting": 0, "level": 0, "content": ":", "markup": "", "info": "", "meta": {}, "block": false, "hidden": false } ], "content": "**Update repository settings**:", "markup": "", "info": "", "meta": {}, "block": true, "hidden": false }, { "type": "paragraph_close", "tag": "p", "attrs": {}, "nesting": -1, "level": 2, "content": "", "markup": "", "info": "", "meta": {}, "block": true, "hidden": false }, { "type": "fence", "tag": "code", "attrs": {}, "map": [ 178, 184 ], "nesting": 0, "level": 2, "content": "# Edit .env.tddai\nTDDAI_GITEA_URL=https://your-platform.com\nTDDAI_REPO_OWNER=your-username\nTDDAI_REPO_NAME=your-project\n", "markup": "```", "info": "bash", "meta": {}, "block": true, "hidden": false }, { "type": "list_item_close", "tag": "li", "attrs": {}, "nesting": -1, "level": 1, "content": "", "markup": ".", "info": "", "meta": {}, "block": true, "hidden": false }, { "type": "list_item_open", "tag": "li", "attrs": {}, "map": [ 185, 190 ], "nesting": 1, "level": 1, "content": "", "markup": ".", "info": "3", "meta": {}, "block": true, "hidden": false }, { "type": "paragraph_open", "tag": "p", "attrs": {}, "map": [ 185, 186 ], "nesting": 1, "level": 2, "content": "", "markup": "", "info": "", "meta": {}, "block": true, "hidden": false }, { "type": "inline", "tag": "", "attrs": {}, "map": [ 185, 186 ], "nesting": 0, "level": 3, "children": [ { "type": "text", "tag": "", "attrs": {}, "nesting": 0, "level": 0, "content": "", "markup": "", "info": "", "meta": {}, "block": false, "hidden": false }, { "type": "strong_open", "tag": "strong", "attrs": {}, "nesting": 1, "level": 0, "content": "", "markup": "**", "info": "", "meta": {}, "block": false, "hidden": false }, { "type": "text", "tag": "", "attrs": {}, "nesting": 0, "level": 1, "content": "Test configuration", "markup": "", "info": "", "meta": {}, "block": false, "hidden": false }, { "type": "strong_close", "tag": "strong", "attrs": {}, "nesting": -1, "level": 0, "content": "", "markup": "**", "info": "", "meta": {}, "block": false, "hidden": false }, { "type": "text", "tag": "", "attrs": {}, "nesting": 0, "level": 0, "content": ":", "markup": "", "info": "", "meta": {}, "block": false, "hidden": false } ], "content": "**Test configuration**:", "markup": "", "info": "", "meta": {}, "block": true, "hidden": false }, { "type": "paragraph_close", "tag": "p", "attrs": {}, "nesting": -1, "level": 2, "content": "", "markup": "", "info": "", "meta": {}, "block": true, "hidden": false }, { "type": "fence", "tag": "code", "attrs": {}, "map": [ 186, 189 ], "nesting": 0, "level": 2, "content": "make tdd-status\n", "markup": "```", "info": "bash", "meta": {}, "block": true, "hidden": false }, { "type": "list_item_close", "tag": "li", "attrs": {}, "nesting": -1, "level": 1, "content": "", "markup": ".", "info": "", "meta": {}, "block": true, "hidden": false }, { "type": "ordered_list_close", "tag": "ol", "attrs": {}, "nesting": -1, "level": 0, "content": "", "markup": ".", "info": "", "meta": {}, "block": true, "hidden": false }, { "type": "heading_open", "tag": "h2", "attrs": {}, "map": [ 190, 191 ], "nesting": 1, "level": 0, "content": "", "markup": "##", "info": "", "meta": {}, "block": true, "hidden": false }, { "type": "inline", "tag": "", "attrs": {}, "map": [ 190, 191 ], "nesting": 0, "level": 1, "children": [ { "type": "text", "tag": "", "attrs": {}, "nesting": 0, "level": 0, "content": "Best Practices", "markup": "", "info": "", "meta": {}, "block": false, "hidden": false } ], "content": "Best Practices", "markup": "", "info": "", "meta": {}, "block": true, "hidden": false }, { "type": "heading_close", "tag": "h2", "attrs": {}, "nesting": -1, "level": 0, "content": "", "markup": "##", "info": "", "meta": {}, "block": true, "hidden": false }, { "type": "bullet_list_open", "tag": "ul", "attrs": {}, "map": [ 192, 198 ], "nesting": 1, "level": 0, "content": "", "markup": "-", "info": "", "meta": {}, "block": true, "hidden": false }, { "type": "list_item_open", "tag": "li", "attrs": {}, "map": [ 192, 193 ], "nesting": 1, "level": 1, "content": "", "markup": "-", "info": "", "meta": {}, "block": true, "hidden": false }, { "type": "paragraph_open", "tag": "p", "attrs": {}, "map": [ 192, 193 ], "nesting": 1, "level": 2, "content": "", "markup": "", "info": "", "meta": {}, "block": true, "hidden": true }, { "type": "inline", "tag": "", "attrs": {}, "map": [ 192, 193 ], "nesting": 0, "level": 3, "children": [ { "type": "text", "tag": "", "attrs": {}, "nesting": 0, "level": 0, "content": "", "markup": "", "info": "", "meta": {}, "block": false, "hidden": false }, { "type": "strong_open", "tag": "strong", "attrs": {}, "nesting": 1, "level": 0, "content": "", "markup": "**", "info": "", "meta": {}, "block": false, "hidden": false }, { "type": "text", "tag": "", "attrs": {}, "nesting": 0, "level": 1, "content": "Use ", "markup": "", "info": "", "meta": {}, "block": false, "hidden": false }, { "type": "code_inline", "tag": "code", "attrs": {}, "nesting": 0, "level": 1, "content": ".env.tddai", "markup": "`", "info": "", "meta": {}, "block": false, "hidden": false }, { "type": "strong_close", "tag": "strong", "attrs": {}, "nesting": -1, "level": 0, "content": "", "markup": "**", "info": "", "meta": {}, "block": false, "hidden": false }, { "type": "text", "tag": "", "attrs": {}, "nesting": 0, "level": 0, "content": " for project-specific settings", "markup": "", "info": "", "meta": {}, "block": false, "hidden": false } ], "content": "**Use `.env.tddai`** for project-specific settings", "markup": "", "info": "", "meta": {}, "block": true, "hidden": false }, { "type": "paragraph_close", "tag": "p", "attrs": {}, "nesting": -1, "level": 2, "content": "", "markup": "", "info": "", "meta": {}, "block": true, "hidden": true }, { "type": "list_item_close", "tag": "li", "attrs": {}, "nesting": -1, "level": 1, "content": "", "markup": "-", "info": "", "meta": {}, "block": true, "hidden": false }, { "type": "list_item_open", "tag": "li", "attrs": {}, "map": [ 193, 194 ], "nesting": 1, "level": 1, "content": "", "markup": "-", "info": "", "meta": {}, "block": true, "hidden": false }, { "type": "paragraph_open", "tag": "p", "attrs": {}, "map": [ 193, 194 ], "nesting": 1, "level": 2, "content": "", "markup": "", "info": "", "meta": {}, "block": true, "hidden": true }, { "type": "inline", "tag": "", "attrs": {}, "map": [ 193, 194 ], "nesting": 0, "level": 3, "children": [ { "type": "text", "tag": "", "attrs": {}, "nesting": 0, "level": 0, "content": "", "markup": "", "info": "", "meta": {}, "block": false, "hidden": false }, { "type": "strong_open", "tag": "strong", "attrs": {}, "nesting": 1, "level": 0, "content": "", "markup": "**", "info": "", "meta": {}, "block": false, "hidden": false }, { "type": "text", "tag": "", "attrs": {}, "nesting": 0, "level": 1, "content": "Use environment variables", "markup": "", "info": "", "meta": {}, "block": false, "hidden": false }, { "type": "strong_close", "tag": "strong", "attrs": {}, "nesting": -1, "level": 0, "content": "", "markup": "**", "info": "", "meta": {}, "block": false, "hidden": false }, { "type": "text", "tag": "", "attrs": {}, "nesting": 0, "level": 0, "content": " for temporary overrides", "markup": "", "info": "", "meta": {}, "block": false, "hidden": false } ], "content": "**Use environment variables** for temporary overrides", "markup": "", "info": "", "meta": {}, "block": true, "hidden": false }, { "type": "paragraph_close", "tag": "p", "attrs": {}, "nesting": -1, "level": 2, "content": "", "markup": "", "info": "", "meta": {}, "block": true, "hidden": true }, { "type": "list_item_close", "tag": "li", "attrs": {}, "nesting": -1, "level": 1, "content": "", "markup": "-", "info": "", "meta": {}, "block": true, "hidden": false }, { "type": "list_item_open", "tag": "li", "attrs": {}, "map": [ 194, 195 ], "nesting": 1, "level": 1, "content": "", "markup": "-", "info": "", "meta": {}, "block": true, "hidden": false }, { "type": "paragraph_open", "tag": "p", "attrs": {}, "map": [ 194, 195 ], "nesting": 1, "level": 2, "content": "", "markup": "", "info": "", "meta": {}, "block": true, "hidden": true }, { "type": "inline", "tag": "", "attrs": {}, "map": [ 194, 195 ], "nesting": 0, "level": 3, "children": [ { "type": "text", "tag": "", "attrs": {}, "nesting": 0, "level": 0, "content": "", "markup": "", "info": "", "meta": {}, "block": false, "hidden": false }, { "type": "strong_open", "tag": "strong", "attrs": {}, "nesting": 1, "level": 0, "content": "", "markup": "**", "info": "", "meta": {}, "block": false, "hidden": false }, { "type": "text", "tag": "", "attrs": {}, "nesting": 0, "level": 1, "content": "Keep configuration in version control", "markup": "", "info": "", "meta": {}, "block": false, "hidden": false }, { "type": "strong_close", "tag": "strong", "attrs": {}, "nesting": -1, "level": 0, "content": "", "markup": "**", "info": "", "meta": {}, "block": false, "hidden": false }, { "type": "text", "tag": "", "attrs": {}, "nesting": 0, "level": 0, "content": " (but exclude sensitive tokens)", "markup": "", "info": "", "meta": {}, "block": false, "hidden": false } ], "content": "**Keep configuration in version control** (but exclude sensitive tokens)", "markup": "", "info": "", "meta": {}, "block": true, "hidden": false }, { "type": "paragraph_close", "tag": "p", "attrs": {}, "nesting": -1, "level": 2, "content": "", "markup": "", "info": "", "meta": {}, "block": true, "hidden": true }, { "type": "list_item_close", "tag": "li", "attrs": {}, "nesting": -1, "level": 1, "content": "", "markup": "-", "info": "", "meta": {}, "block": true, "hidden": false }, { "type": "list_item_open", "tag": "li", "attrs": {}, "map": [ 195, 196 ], "nesting": 1, "level": 1, "content": "", "markup": "-", "info": "", "meta": {}, "block": true, "hidden": false }, { "type": "paragraph_open", "tag": "p", "attrs": {}, "map": [ 195, 196 ], "nesting": 1, "level": 2, "content": "", "markup": "", "info": "", "meta": {}, "block": true, "hidden": true }, { "type": "inline", "tag": "", "attrs": {}, "map": [ 195, 196 ], "nesting": 0, "level": 3, "children": [ { "type": "text", "tag": "", "attrs": {}, "nesting": 0, "level": 0, "content": "", "markup": "", "info": "", "meta": {}, "block": false, "hidden": false }, { "type": "strong_open", "tag": "strong", "attrs": {}, "nesting": 1, "level": 0, "content": "", "markup": "**", "info": "", "meta": {}, "block": false, "hidden": false }, { "type": "text", "tag": "", "attrs": {}, "nesting": 0, "level": 1, "content": "Document custom workspace naming", "markup": "", "info": "", "meta": {}, "block": false, "hidden": false }, { "type": "strong_close", "tag": "strong", "attrs": {}, "nesting": -1, "level": 0, "content": "", "markup": "**", "info": "", "meta": {}, "block": false, "hidden": false }, { "type": "text", "tag": "", "attrs": {}, "nesting": 0, "level": 0, "content": " in project README", "markup": "", "info": "", "meta": {}, "block": false, "hidden": false } ], "content": "**Document custom workspace naming** in project README", "markup": "", "info": "", "meta": {}, "block": true, "hidden": false }, { "type": "paragraph_close", "tag": "p", "attrs": {}, "nesting": -1, "level": 2, "content": "", "markup": "", "info": "", "meta": {}, "block": true, "hidden": true }, { "type": "list_item_close", "tag": "li", "attrs": {}, "nesting": -1, "level": 1, "content": "", "markup": "-", "info": "", "meta": {}, "block": true, "hidden": false }, { "type": "list_item_open", "tag": "li", "attrs": {}, "map": [ 196, 198 ], "nesting": 1, "level": 1, "content": "", "markup": "-", "info": "", "meta": {}, "block": true, "hidden": false }, { "type": "paragraph_open", "tag": "p", "attrs": {}, "map": [ 196, 197 ], "nesting": 1, "level": 2, "content": "", "markup": "", "info": "", "meta": {}, "block": true, "hidden": true }, { "type": "inline", "tag": "", "attrs": {}, "map": [ 196, 197 ], "nesting": 0, "level": 3, "children": [ { "type": "text", "tag": "", "attrs": {}, "nesting": 0, "level": 0, "content": "", "markup": "", "info": "", "meta": {}, "block": false, "hidden": false }, { "type": "strong_open", "tag": "strong", "attrs": {}, "nesting": 1, "level": 0, "content": "", "markup": "**", "info": "", "meta": {}, "block": false, "hidden": false }, { "type": "text", "tag": "", "attrs": {}, "nesting": 0, "level": 1, "content": "Validate configuration", "markup": "", "info": "", "meta": {}, "block": false, "hidden": false }, { "type": "strong_close", "tag": "strong", "attrs": {}, "nesting": -1, "level": 0, "content": "", "markup": "**", "info": "", "meta": {}, "block": false, "hidden": false }, { "type": "text", "tag": "", "attrs": {}, "nesting": 0, "level": 0, "content": " before starting development sessions", "markup": "", "info": "", "meta": {}, "block": false, "hidden": false } ], "content": "**Validate configuration** before starting development sessions", "markup": "", "info": "", "meta": {}, "block": true, "hidden": false }, { "type": "paragraph_close", "tag": "p", "attrs": {}, "nesting": -1, "level": 2, "content": "", "markup": "", "info": "", "meta": {}, "block": true, "hidden": true }, { "type": "list_item_close", "tag": "li", "attrs": {}, "nesting": -1, "level": 1, "content": "", "markup": "-", "info": "", "meta": {}, "block": true, "hidden": false }, { "type": "bullet_list_close", "tag": "ul", "attrs": {}, "nesting": -1, "level": 0, "content": "", "markup": "-", "info": "", "meta": {}, "block": true, "hidden": false }, { "type": "hr", "tag": "hr", "attrs": {}, "map": [ 198, 199 ], "nesting": 0, "level": 0, "content": "", "markup": "----", "info": "", "meta": {}, "block": true, "hidden": false }, { "type": "paragraph_open", "tag": "p", "attrs": {}, "map": [ 200, 201 ], "nesting": 1, "level": 0, "content": "", "markup": "", "info": "", "meta": {}, "block": true, "hidden": false }, { "type": "inline", "tag": "", "attrs": {}, "map": [ 200, 201 ], "nesting": 0, "level": 1, "children": [ { "type": "em_open", "tag": "em", "attrs": {}, "nesting": 1, "level": 0, "content": "", "markup": "*", "info": "", "meta": {}, "block": false, "hidden": false }, { "type": "text", "tag": "", "attrs": {}, "nesting": 0, "level": 1, "content": "This configuration system supports the TDD8 methodology (ISSUE-TEST-RED-GREEN-REFACTOR-DOCUMENT-REFINE-PUBLISH) across any software development project with issue tracking.", "markup": "", "info": "", "meta": {}, "block": false, "hidden": false }, { "type": "em_close", "tag": "em", "attrs": {}, "nesting": -1, "level": 0, "content": "", "markup": "*", "info": "", "meta": {}, "block": false, "hidden": false } ], "content": "*This configuration system supports the TDD8 methodology (ISSUE-TEST-RED-GREEN-REFACTOR-DOCUMENT-REFINE-PUBLISH) across any software development project with issue tracking.*", "markup": "", "info": "", "meta": {}, "block": true, "hidden": false }, { "type": "paragraph_close", "tag": "p", "attrs": {}, "nesting": -1, "level": 0, "content": "", "markup": "", "info": "", "meta": {}, "block": true, "hidden": false } ]