42 lines
1.6 KiB
Python
42 lines
1.6 KiB
Python
"""ADW Phase: Plan — Analyze issue, generate spec, create implementation plan.
|
|
Connects to factory agents for research assistance."""
|
|
import sys, json, os
|
|
from pathlib import Path
|
|
|
|
def analyze_issue(issue_number, title, body):
|
|
plan = {
|
|
"issue": issue_number,
|
|
"title": title,
|
|
"type": "feature",
|
|
"spec_path": f"specs/adw-{issue_number}.md",
|
|
"tasks": [],
|
|
"factory_resources": [
|
|
"http://agent-site:8084/factory.html",
|
|
"http://git-proxy:8099/factory-status",
|
|
"http://git-proxy:8099/deploy"
|
|
]
|
|
}
|
|
body_lower = (title + " " + body).lower()
|
|
if any(w in body_lower for w in ["bug","fix","crash","error"]):
|
|
plan["type"] = "patch"
|
|
elif any(w in body_lower for w in ["refactor","clean"]):
|
|
plan["type"] = "refactor"
|
|
|
|
plan["tasks"] = [
|
|
{"step": "research", "description": f"Research {title}", "estimated": "5min"},
|
|
{"step": "design", "description": "Design solution approach", "estimated": "10min"},
|
|
{"step": "implement", "description": "Implement changes", "estimated": "30min"},
|
|
{"step": "test", "description": "Write and run tests", "estimated": "15min"},
|
|
]
|
|
return plan
|
|
|
|
if __name__ == "__main__":
|
|
issue = int(os.environ.get("ISSUE", sys.argv[sys.argv.index("--issue")+1] if "--issue" in sys.argv else "0"))
|
|
title = "ADW pipeline task"
|
|
body = ""
|
|
plan = analyze_issue(issue, title, body)
|
|
Path("specs").mkdir(exist_ok=True)
|
|
with open(plan["spec_path"], "w") as f:
|
|
f.write(f"# {plan['title']}\n\nType: {plan['type']}\n")
|
|
print(json.dumps(plan, indent=2))
|