Remove test_plan gate from the codebase
The test_plan field was a gate from the old interactive web UI workflow where a human would approve a test plan before the LLM could write code. With autonomous coder agents, this gate is dead weight — coders sometimes obey the README's "wait for approval" instruction and produce no code. Removes: TestPlanStatus enum, ensure_test_plan_approved checks in fs/shell, set_test_plan MCP tool + handler, test_plan from story/bug front matter creation, test_plan validation in validate_story_dirs, and all related tests. Updates README to remove Step 2 (Test Planning) and renumber steps. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -1,16 +1,8 @@
|
||||
use serde::Deserialize;
|
||||
|
||||
#[derive(Debug, Clone, PartialEq, Eq)]
|
||||
pub enum TestPlanStatus {
|
||||
Approved,
|
||||
WaitingForApproval,
|
||||
Unknown(String),
|
||||
}
|
||||
|
||||
#[derive(Debug, Clone, PartialEq, Eq, Default)]
|
||||
pub struct StoryMetadata {
|
||||
pub name: Option<String>,
|
||||
pub test_plan: Option<TestPlanStatus>,
|
||||
}
|
||||
|
||||
#[derive(Debug, Clone, PartialEq, Eq)]
|
||||
@@ -31,7 +23,6 @@ impl std::fmt::Display for StoryMetaError {
|
||||
#[derive(Debug, Deserialize)]
|
||||
struct FrontMatter {
|
||||
name: Option<String>,
|
||||
test_plan: Option<String>,
|
||||
}
|
||||
|
||||
pub fn parse_front_matter(contents: &str) -> Result<StoryMetadata, StoryMetaError> {
|
||||
@@ -60,11 +51,8 @@ pub fn parse_front_matter(contents: &str) -> Result<StoryMetadata, StoryMetaErro
|
||||
}
|
||||
|
||||
fn build_metadata(front: FrontMatter) -> StoryMetadata {
|
||||
let test_plan = front.test_plan.as_deref().map(parse_test_plan_status);
|
||||
|
||||
StoryMetadata {
|
||||
name: front.name,
|
||||
test_plan,
|
||||
}
|
||||
}
|
||||
|
||||
@@ -80,14 +68,6 @@ pub fn parse_unchecked_todos(contents: &str) -> Vec<String> {
|
||||
.collect()
|
||||
}
|
||||
|
||||
fn parse_test_plan_status(value: &str) -> TestPlanStatus {
|
||||
match value {
|
||||
"approved" => TestPlanStatus::Approved,
|
||||
"waiting_for_approval" => TestPlanStatus::WaitingForApproval,
|
||||
other => TestPlanStatus::Unknown(other.to_string()),
|
||||
}
|
||||
}
|
||||
|
||||
#[cfg(test)]
|
||||
mod tests {
|
||||
use super::*;
|
||||
@@ -96,7 +76,6 @@ mod tests {
|
||||
fn parses_front_matter_metadata() {
|
||||
let input = r#"---
|
||||
name: Establish the TDD Workflow and Gates
|
||||
test_plan: approved
|
||||
workflow: tdd
|
||||
---
|
||||
# Story 26
|
||||
@@ -107,7 +86,6 @@ workflow: tdd
|
||||
meta,
|
||||
StoryMetadata {
|
||||
name: Some("Establish the TDD Workflow and Gates".to_string()),
|
||||
test_plan: Some(TestPlanStatus::Approved),
|
||||
}
|
||||
);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user