Block approve_ceo_strategy until hires exist
The CEO prompt carried a plea — "do not submit strategy before hires, we have observed a loop" — in place of an actual gate. The model could (and did) ignore it, land back in team_building mode, and resubmit. Move the invariant into the /approvals POST handler: reject approve_ceo_strategy with 409 STRATEGY_BEFORE_HIRES when no hire_agent approval exists for the company, and 409 STRATEGY_ALREADY_FILED when one is already pending or approved. Introduce listCompanyApprovalsByType on the database facade to keep the route stateless. Trim the prompt to describe the gate instead of begging the model to obey.
This commit is contained in:
1 parent
09d1e2bd30
commit
0443b4a197
4 files changed
+43
-6
No files matched your search
@@ -344,6 +344,7 @@ export class AppDatabaseBase {
|
||||
listApprovalsForApi(companyId: string, filters: { requestedByAgentId?: string; relatedTaskId?: string; statuses?: string[] | null }) { return this.approvalsMod.listApprovalsForApi(companyId, filters); }
|
||||
findPendingApprovalForTask(companyId: string, taskId: string) { return this.approvalsMod.findPendingApprovalForTask(companyId, taskId); }
|
||||
hasPendingReviewApprovalForAgent(companyId: string, agentId: string) { return this.approvalsMod.hasPendingReviewApprovalForAgent(companyId, agentId); }
|
||||
listCompanyApprovalsByType(companyId: string, type: string) { return this.approvalsMod.listCompanyApprovalsByType(companyId, type); }
|
||||
|
||||
// ─── Workspaces ────────────────────────────────────────────────────────────
|
||||
|
||||
|
||||
Reference in new issue
Block a user