JacobLinCool Codex commited on
Commit
e50180d
·
verified ·
1 Parent(s): 490a71e

refactor: rename score goal fit field

Browse files

Co-authored-by: Codex <noreply@openai.com>

hackathon_advisor/scoring.py CHANGED
@@ -11,7 +11,7 @@ class ScoreCard:
11
  delight: int
12
  ai_necessity: int
13
  feasibility: int
14
- prize_fit: int
15
  verdict: str
16
  echoes: tuple[SearchHit, ...]
17
 
@@ -23,7 +23,7 @@ class ScoreCard:
23
  + self.delight * 0.20
24
  + self.ai_necessity * 0.20
25
  + self.feasibility * 0.15
26
- + self.prize_fit * 0.15
27
  ),
28
  1,
29
  )
@@ -34,7 +34,7 @@ class ScoreCard:
34
  "delight": self.delight,
35
  "ai_necessity": self.ai_necessity,
36
  "feasibility": self.feasibility,
37
- "prize_fit": self.prize_fit,
38
  "overall": self.overall,
39
  "verdict": self.verdict,
40
  "echoes": [
@@ -64,7 +64,7 @@ def score_idea(index: ProjectIndex, title: str, pitch: str, targets: list[str] |
64
  )
65
  complexity_penalty = _keyword_count(tokens, {"realtime", "video", "multiplayer", "payments", "social"})
66
  feasibility = clamp_score(8 - complexity_penalty)
67
- prize_fit = clamp_score(
68
  4
69
  + _keyword_count(tokens, {"local", "offline", "small", "llama", "fine", "trace", "gradio"}) * 2
70
  + min(len(targets), 3)
@@ -75,7 +75,7 @@ def score_idea(index: ProjectIndex, title: str, pitch: str, targets: list[str] |
75
  delight=delight,
76
  ai_necessity=ai_necessity,
77
  feasibility=feasibility,
78
- prize_fit=prize_fit,
79
  verdict=verdict,
80
  echoes=tuple(hits),
81
  )
 
11
  delight: int
12
  ai_necessity: int
13
  feasibility: int
14
+ goal_fit: int
15
  verdict: str
16
  echoes: tuple[SearchHit, ...]
17
 
 
23
  + self.delight * 0.20
24
  + self.ai_necessity * 0.20
25
  + self.feasibility * 0.15
26
+ + self.goal_fit * 0.15
27
  ),
28
  1,
29
  )
 
34
  "delight": self.delight,
35
  "ai_necessity": self.ai_necessity,
36
  "feasibility": self.feasibility,
37
+ "goal_fit": self.goal_fit,
38
  "overall": self.overall,
39
  "verdict": self.verdict,
40
  "echoes": [
 
64
  )
65
  complexity_penalty = _keyword_count(tokens, {"realtime", "video", "multiplayer", "payments", "social"})
66
  feasibility = clamp_score(8 - complexity_penalty)
67
+ goal_fit = clamp_score(
68
  4
69
  + _keyword_count(tokens, {"local", "offline", "small", "llama", "fine", "trace", "gradio"}) * 2
70
  + min(len(targets), 3)
 
75
  delight=delight,
76
  ai_necessity=ai_necessity,
77
  feasibility=feasibility,
78
+ goal_fit=goal_fit,
79
  verdict=verdict,
80
  echoes=tuple(hits),
81
  )
static/app.js CHANGED
@@ -700,7 +700,7 @@ function renderScore(score) {
700
  ["Delight", score?.delight || 0],
701
  ["AI Need", score?.ai_necessity || 0],
702
  ["Feasible", score?.feasibility || 0],
703
- ["Goal Fit", score?.prize_fit || 0],
704
  ];
705
  scoreEl.innerHTML = rows
706
  .map(
@@ -999,7 +999,7 @@ function renderArtifactCanvas(artifact) {
999
  ["Delight", seal.delight || 0],
1000
  ["AI Need", seal.ai_necessity || 0],
1001
  ["Feasible", seal.feasibility || 0],
1002
- ["Goal Fit", seal.prize_fit || 0],
1003
  ];
1004
  rows.forEach(([label, value], index) => {
1005
  const y = 418 + index * 34;
 
700
  ["Delight", score?.delight || 0],
701
  ["AI Need", score?.ai_necessity || 0],
702
  ["Feasible", score?.feasibility || 0],
703
+ ["Goal Fit", score?.goal_fit || 0],
704
  ];
705
  scoreEl.innerHTML = rows
706
  .map(
 
999
  ["Delight", seal.delight || 0],
1000
  ["AI Need", seal.ai_necessity || 0],
1001
  ["Feasible", seal.feasibility || 0],
1002
+ ["Goal Fit", seal.goal_fit || 0],
1003
  ];
1004
  rows.forEach(([label, value], index) => {
1005
  const y = 418 + index * 34;
tests/test_agent.py CHANGED
@@ -25,6 +25,10 @@ def test_agent_scores_and_persists_idea() -> None:
25
  assert result.score is not None
26
  assert result.state["ideas"]
27
  assert result.state["ideas"][0]["score"] is not None
 
 
 
 
28
  assert result.state["trace"]
29
  assert result.state["last_tool_resolution"]["call"]["name"] == "save_idea"
30
  assert result.state["trace"][0]["tool_resolution"]["call"]["name"] == "save_idea"
 
25
  assert result.score is not None
26
  assert result.state["ideas"]
27
  assert result.state["ideas"][0]["score"] is not None
28
+ assert "goal_fit" in result.state["ideas"][0]["score"]
29
+ assert "prize_fit" not in result.state["ideas"][0]["score"]
30
+ assert "goal_fit" in result.artifact["seal"]
31
+ assert "prize_fit" not in result.artifact["seal"]
32
  assert result.state["trace"]
33
  assert result.state["last_tool_resolution"]["call"]["name"] == "save_idea"
34
  assert result.state["trace"][0]["tool_resolution"]["call"]["name"] == "save_idea"