feat: add WaitsFor parsing and mol bond command (gt-odfr, gt-isje)

WaitsFor parsing:
- Add WaitsFor []string field to MoleculeStep struct
- Parse WaitsFor lines in molecule descriptions
- Enables fanout gate semantics (e.g., WaitsFor: all-children)
- Case-insensitive parsing like Needs/Tier

mol bond command:
- Add gt mol bond for dynamic child molecule creation
- Supports --parent, --ref, and --var flags
- Enables Christmas Ornament pattern for parallel child execution
- Creates child issue with expanded template variables
- Instantiates proto steps under the bonded child

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
Steve Yegge
2025-12-23 21:44:08 -08:00
parent 92a3da90a8
commit 031a27c062
5 changed files with 235 additions and 1 deletions

View File

@@ -343,6 +343,11 @@ func TestWitnessPatrolMolecule(t *testing.T) {
t.Errorf("aggregate should need survey-workers, got %v", steps[4].Needs)
}
// aggregate should have WaitsFor: all-children
if len(steps[4].WaitsFor) != 1 || steps[4].WaitsFor[0] != "all-children" {
t.Errorf("aggregate should WaitsFor all-children, got %v", steps[4].WaitsFor)
}
// burn-or-loop needs context-check
if len(steps[8].Needs) != 1 || steps[8].Needs[0] != "context-check" {
t.Errorf("burn-or-loop should need context-check, got %v", steps[8].Needs)