hackathon-advisor / tests /test_field_notes.py
JacobLinCool's picture
feat: build retrieval index with llama cpp
e12a049 verified
from pathlib import Path
from tests.helpers import load_test_index
from hackathon_advisor.agent import AdvisorEngine
from hackathon_advisor.data import ProjectIndex
from hackathon_advisor.field_notes import build_field_notes_markdown
from hackathon_advisor.trace_export import trace_metadata
def test_field_notes_markdown_contains_session_decisions() -> None:
index = load_test_index()
engine = AdvisorEngine(index)
state = {
"profile": {"skills": "frontend prototyping"},
"goals": ["Field Notes"],
}
first = engine.turn("A local-first archive cartographer for family photos", state)
planned = engine.turn("make a build plan", first.state)
markdown = build_field_notes_markdown(
planned.state,
{
**trace_metadata(index),
"project_count": len(index.projects),
},
)
assert "# Hackathon Advisor Field Notes" in markdown
assert "frontend prototyping" in markdown
assert "Goals: Build notes" in markdown
assert "Targets: Field Notes" not in markdown
assert "A local-first archive cartographer for family photos" in markdown
assert "## Build Plan" in markdown
assert "Write build notes from the exact decisions" in markdown
assert "## Session Decisions" in markdown
assert "### Decision 2" in markdown
assert "Recorded action: `make_plan`" in markdown
assert "Closest cited Spaces" in markdown
assert "Page " in markdown
assert "## Wood Map" in markdown
assert "echo score" in markdown
assert "## Turn Trace" not in markdown
assert "Planner call" not in markdown
assert "tool trace" not in markdown.lower()