Documentation
¶
Overview ¶
Package planner implements structured planning that generates artifacts before coding begins. It produces a Plan containing tasks, design notes, and risk analysis, and can persist/load plans as JSON files under .hawk/plans/.
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func FormatMarkdown ¶
FormatMarkdown renders the plan as readable markdown.
func MarkSkipped ¶
MarkSkipped marks a task as skipped. If the taskID is not found, this is a no-op.
Types ¶
type Plan ¶
type Plan struct {
Title string `json:"title"`
Summary string `json:"summary"`
Tasks []Task `json:"tasks"`
Design string `json:"design"` // high-level design notes
RiskNotes string `json:"risk_notes"` // identified risks and mitigations
CreatedAt time.Time `json:"created_at"`
}
Plan represents a structured development plan.
type PlanPrompt ¶
PlanPrompt contains the prompt to send to the LLM for plan generation.
func Generate ¶
func Generate(description string, repoContext string) *PlanPrompt
Generate creates a PlanPrompt from a feature description and repository context. This is a template -- the actual LLM call happens in hawk's engine.
type Task ¶
type Task struct {
ID int `json:"id"`
Description string `json:"description"`
File string `json:"file,omitempty"` // target file
Status string `json:"status"` // pending, done, skipped
Depends []int `json:"depends,omitempty"` // IDs of tasks this depends on
}
Task represents a single unit of work within a plan.
func PendingTasks ¶
PendingTasks returns all tasks that are still pending.