huskies: merge 763

This commit is contained in:
dave
2026-04-28 09:37:38 +00:00
parent 8a51dbd2ed
commit 3d986a733b
2 changed files with 10 additions and 35 deletions
-3
View File
@@ -53,9 +53,6 @@ pub(super) fn write_story_kit_gitignore(root: &Path) -> Result<(), String> {
"worktrees/", "worktrees/",
"merge_workspace/", "merge_workspace/",
"coverage/", "coverage/",
"work/2_current/",
"work/3_qa/",
"work/4_merge/",
"logs/", "logs/",
"token_usage.jsonl", "token_usage.jsonl",
"wizard_state.json", "wizard_state.json",
+8 -30
View File
@@ -27,20 +27,8 @@ pub(crate) fn scaffold_story_kit(root: &Path, port: u16) -> Result<(), String> {
let functional_root = specs_root.join("functional"); let functional_root = specs_root.join("functional");
let script_root = root.join("script"); let script_root = root.join("script");
// Create the work/ pipeline directories, each with a .gitkeep so empty dirs survive git clone // The `.huskies/work/` directory tree is no longer scaffolded — the CRDT
let work_stages = [ // is the canonical pipeline state store (see stories 738 / 758 / 763).
"1_backlog",
"2_current",
"3_qa",
"4_merge",
"5_done",
"6_archived",
];
for stage in &work_stages {
let dir = story_kit_root.join("work").join(stage);
fs::create_dir_all(&dir).map_err(|e| format!("Failed to create work/{}: {}", stage, e))?;
write_file_if_missing(&dir.join(".gitkeep"), "")?;
}
fs::create_dir_all(&tech_root).map_err(|e| format!("Failed to create specs/tech: {}", e))?; fs::create_dir_all(&tech_root).map_err(|e| format!("Failed to create specs/tech: {}", e))?;
fs::create_dir_all(&functional_root) fs::create_dir_all(&functional_root)
@@ -174,28 +162,18 @@ mod tests {
} }
#[test] #[test]
fn scaffold_story_kit_creates_work_pipeline_dirs() { fn scaffold_story_kit_does_not_create_work_pipeline_dirs() {
// After 763 the `.huskies/work/` tree is no longer scaffolded; CRDT is
// the canonical pipeline state store.
let dir = tempdir().unwrap(); let dir = tempdir().unwrap();
scaffold_story_kit(dir.path(), 3001).unwrap(); scaffold_story_kit(dir.path(), 3001).unwrap();
let stages = [ let work_root = dir.path().join(".huskies/work");
"1_backlog",
"2_current",
"3_qa",
"4_merge",
"5_done",
"6_archived",
];
for stage in &stages {
let path = dir.path().join(".huskies/work").join(stage);
assert!(path.is_dir(), "work/{} should be a directory", stage);
assert!( assert!(
path.join(".gitkeep").exists(), !work_root.exists(),
"work/{} should have a .gitkeep file", ".huskies/work/ should not be created at scaffold time"
stage
); );
} }
}
#[test] #[test]
fn scaffold_story_kit_agents_toml_has_coder_qa_mergemaster() { fn scaffold_story_kit_agents_toml_has_coder_qa_mergemaster() {