|
| 1 | +# Better T Stack |
| 2 | + |
| 3 | +Better T Stack is a project scaffolding CLI that turns a stack selection into a reproducible TypeScript starter project. |
| 4 | + |
| 5 | +## Language |
| 6 | + |
| 7 | +**Project Configuration**: |
| 8 | +A complete selection of stack choices used to scaffold one project. |
| 9 | +_Avoid_: Config blob, options bag |
| 10 | + |
| 11 | +**Core Stack**: |
| 12 | +The primary framework and infrastructure choices that define the generated project's shape. |
| 13 | +_Avoid_: Main options, basics |
| 14 | + |
| 15 | +**Addon**: |
| 16 | +An optional capability layered onto a generated project without changing the core stack identity. |
| 17 | +_Avoid_: Plugin, extra |
| 18 | + |
| 19 | +**Example**: |
| 20 | +A generated sample feature included to demonstrate the selected stack. |
| 21 | +_Avoid_: Demo, sample app |
| 22 | + |
| 23 | +**Exhaustive Matrix**: |
| 24 | +The set of all meaningful core-stack combinations after normalizing unordered selections. |
| 25 | +_Avoid_: All permutations |
| 26 | + |
| 27 | +**Addon Compatibility Coverage**: |
| 28 | +Focused coverage proving addon rules, interactions, and representative generated output without crossing every addon subset through the exhaustive matrix. |
| 29 | +_Avoid_: Addon exhaustive product |
| 30 | + |
| 31 | +**Input Shape**: |
| 32 | +The structural form of user-provided CLI input before it is normalized into a project configuration. |
| 33 | +_Avoid_: Edge case, weird input |
| 34 | + |
| 35 | +**Virtual Generation**: |
| 36 | +Generation of the project tree in memory without writing the scaffolded project to disk. |
| 37 | +_Avoid_: Dry run |
| 38 | + |
| 39 | +**Filesystem Scaffolding**: |
| 40 | +Creation of the generated project on disk. |
| 41 | +_Avoid_: Real generation |
| 42 | + |
| 43 | +**Curated Build Set**: |
| 44 | +A small representative set of generated projects that are installed, typechecked, or built. |
| 45 | +_Avoid_: Build every matrix case |
| 46 | + |
| 47 | +**Compatibility Oracle**: |
| 48 | +A test-owned model of which project configurations should be accepted or rejected. |
| 49 | +_Avoid_: Validator reuse |
| 50 | + |
| 51 | +**Matrix Job**: |
| 52 | +A separately runnable test job that exercises large project-configuration matrices outside the default fast test suite. |
| 53 | +_Avoid_: Normal test run |
| 54 | + |
| 55 | +**Default Suite**: |
| 56 | +The fast test suite that runs focused unit, integration, and regression tests during ordinary development. |
| 57 | +_Avoid_: Main matrix |
| 58 | + |
| 59 | +**Matrix Smoke**: |
| 60 | +A representative matrix slice that runs in regular CI to catch broad compatibility regressions without running the full matrix. |
| 61 | +_Avoid_: Mini exhaustive test |
| 62 | + |
| 63 | +**Full Matrix Job**: |
| 64 | +The sharded long-running matrix job that exercises the complete normalized core-stack matrix. |
| 65 | +_Avoid_: Default tests |
| 66 | + |
| 67 | +**Create Path**: |
| 68 | +The CLI workflow that turns a project configuration into a new scaffolded project. |
| 69 | +_Avoid_: Init path, generation path |
| 70 | + |
| 71 | +**Add Path**: |
| 72 | +The CLI workflow that adds capabilities to an existing Better T Stack project. |
| 73 | +_Avoid_: Update path, addon install path |
| 74 | + |
| 75 | +**MCP Surface**: |
| 76 | +The Model Context Protocol server and tools that expose Better T Stack planning, creation, addon, guidance, and schema operations to agents. |
| 77 | +_Avoid_: MCP addon |
| 78 | + |
| 79 | +## Relationships |
| 80 | + |
| 81 | +- A **Project Configuration** contains one **Core Stack** |
| 82 | +- A **Project Configuration** may include zero or more **Addons** |
| 83 | +- A **Project Configuration** may include zero or more **Examples** |
| 84 | +- The **Exhaustive Matrix** covers **Core Stack** combinations |
| 85 | +- **Addon Compatibility Coverage** covers addon-specific rules outside the exhaustive matrix |
| 86 | +- **Input Shape** checks validate raw CLI input before project-configuration behavior is evaluated |
| 87 | +- **Virtual Generation** and **Filesystem Scaffolding** are two ways to exercise project generation |
| 88 | +- A **Curated Build Set** proves generated projects compile without building every matrix case |
| 89 | +- A **Compatibility Oracle** predicts expected pass/fail before production validation runs |
| 90 | +- A **Matrix Job** provides broad confidence without making the default test suite slow |
| 91 | +- The **Default Suite**, **Matrix Smoke**, and **Full Matrix Job** are the three testing tiers |
| 92 | +- The **Create Path** owns exhaustive project-configuration coverage |
| 93 | +- The **Add Path** has a focused suite over existing-project state and addon behavior |
| 94 | +- The **MCP Surface** is a critical CLI surface alongside the **Create Path** and **Add Path** |
| 95 | +- The **MCP Surface** uses focused contract coverage instead of participating in the **Full Matrix Job** |
| 96 | + |
| 97 | +## Example dialogue |
| 98 | + |
| 99 | +> **Dev:** "Should the exhaustive tests include every order of addons?" |
| 100 | +> **Domain expert:** "No. The **Exhaustive Matrix** covers normalized **Project Configurations**; addon ordering is an **Input Shape** concern." |
| 101 | +
|
| 102 | +## Flagged ambiguities |
| 103 | + |
| 104 | +- "all possible combinations" was ambiguous between literal permutations and meaningful stack selections; resolved: use the **Exhaustive Matrix** for normalized core-stack combinations, with separate **Input Shape** tests for ordering, duplicates, and invalid `none` mixtures. |
| 105 | +- "all addon combinations" was ambiguous between rule coverage and a full addon-subset product; resolved: use **Addon Compatibility Coverage** instead of crossing every addon subset through the **Exhaustive Matrix**. |
| 106 | +- "all tests" was ambiguous between the default test suite and long-running exhaustive coverage; resolved: use a separate **Matrix Job** for broad matrix coverage. |
| 107 | +- "test the MCP" was ambiguous between matrix participation and protocol contract coverage; resolved: the **MCP Surface** gets focused contract coverage. |
| 108 | +- "complete CLI tests" was ambiguous between new-project creation and adding to existing projects; resolved: the **Create Path** gets exhaustive matrix coverage first, while the **Add Path** gets a focused complete suite. |
0 commit comments