IssueTriage fixes
This commit is contained in:
@@ -1,8 +1,13 @@
|
||||
from dataclasses import field, dataclass
|
||||
|
||||
from pydantic import BaseModel
|
||||
|
||||
@dataclass
|
||||
class ProjectContext:
|
||||
|
||||
class TeamMemberModel(BaseModel):
|
||||
role: str
|
||||
nick: str
|
||||
|
||||
class ProjectContext(BaseModel):
|
||||
"""Static, per-project knowledge injected into every decomposition."""
|
||||
project_key: str # e.g. "ARCH"
|
||||
language: str = ""
|
||||
@@ -15,6 +20,9 @@ class ProjectContext:
|
||||
package_manager: str = "" # "uv", "poetry", "npm"
|
||||
auth: str = "" # "JWT via fastapi-users"
|
||||
deployment: str = "" # "Docker Compose on Hetzner"
|
||||
project_language: str = "english"
|
||||
default_responder: str | None = None
|
||||
team: list[TeamMemberModel] = field(default_factory=list)
|
||||
conventions: list[str] = field(default_factory=list) # free-form notes
|
||||
extra: dict[str, str] = field(default_factory=dict) # anything else
|
||||
|
||||
@@ -31,6 +39,7 @@ class ProjectContext:
|
||||
("Package manager", self.package_manager),
|
||||
("Auth", self.auth),
|
||||
("Deployment", self.deployment),
|
||||
("Comment language", self.project_language),
|
||||
]
|
||||
for label, value in fields:
|
||||
if value:
|
||||
@@ -42,4 +51,15 @@ class ProjectContext:
|
||||
lines.append("")
|
||||
lines.append("Conventions:")
|
||||
lines.extend(f"- {c}" for c in self.conventions)
|
||||
|
||||
if self.team:
|
||||
lines.append("**Team members** (address questions using the exact `nick`):")
|
||||
for m in self.team:
|
||||
lines.append(f"- `{m.nick}` — {m.role}")
|
||||
if self.default_responder:
|
||||
lines.append(
|
||||
f"**Default responder** (use this nick when no team member "
|
||||
f"clearly owns the question): `{self.default_responder}`"
|
||||
)
|
||||
lines.append("")
|
||||
return "\n".join(lines)
|
||||
Reference in New Issue
Block a user