Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .github/agents/security-sheriff.agent.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ You are the Risk Reviewer for security.
Rules:
- Flag risky changes to auth, secrets, or privilege boundaries.
- Prefer least-privilege and explicit error handling.
- `execute` permission is scoped to: `bash scripts/verify` and read-only diagnostic commands only.
- Add or improve tests for security-sensitive logic when possible.
- Run `bash scripts/verify` for any change you propose.
- Do not approve bypassing human review for high-risk changes.
1 change: 1 addition & 0 deletions .github/agents/test-specialist.agent.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ You are the Deterministic Verifier.
Rules:
- Prefer tests before production edits.
- Keep changes minimal and scoped.
- `execute` permission is scoped to: `bash scripts/verify` and test runner commands only.
- Run `bash scripts/verify` before handoff.
- Report exact command output in the PR Evidence section.
- If verification fails, provide a concise failure diagnosis.
30 changes: 26 additions & 4 deletions .github/pull_request_template.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,27 @@
## Related issues / PRs. Summarize issues.
- #
## Summary

## Summarize Changes
1.
- What changed?
- Why was it needed?

## Risk

- Risk level: `low | medium | high`
- Regression surface (frontend/backend/infra/docs/security/release):
- Security/runtime safety impact:

## Evidence

- Deterministic verification command: `bash scripts/verify`
- Command output summary:
- Any justified skips:

## Rollback

- Rollback command or steps:
- Data/schema/runtime rollback impact:

## Scope Guard

- [ ] Change is minimal and task-focused
- [ ] No unrelated refactors included
- [ ] No secrets or private tokens added
3 changes: 3 additions & 0 deletions .github/workflows/agent-label-sync.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,9 @@ name: Agent Label Sync
on:
workflow_dispatch:
push:
branches:
- main
- master
paths:
- '.github/workflows/agent-label-sync.yml'

Expand Down
25 changes: 23 additions & 2 deletions .github/workflows/agent-task-queue.yml
Original file line number Diff line number Diff line change
Expand Up @@ -46,6 +46,27 @@ jobs:
c.body?.includes(`- #${issue_number}:`)
);

// Idempotency guard: issue is already fully transitioned; skip label/comment mutations
// but still consume agent:ready to prevent ready+in-progress co-existence.
if (hadInProgress && existingContract) {
if (hadReady) {
try {
await github.rest.issues.removeLabel({
owner,
repo,
issue_number,
name: "agent:ready",
});
} catch (error) {
if (error.status !== 404) {
throw error;
}
}
}
core.info("Issue already in-progress with existing contract; skipping duplicate enqueue.");
return;
Comment thread
Prekzursil marked this conversation as resolved.
}

let addedInProgress = false;
let removedReady = false;

Expand Down Expand Up @@ -115,7 +136,7 @@ jobs:
name: "agent:in-progress",
});
} catch (rollbackError) {
core.warning(`Rollback remove agent:in-progress failed: ${rollbackError.message}`);
core.error(`Rollback remove agent:in-progress failed: ${rollbackError.message}`);
}
}

Expand All @@ -128,7 +149,7 @@ jobs:
labels: ["agent:ready"],
});
} catch (rollbackError) {
core.warning(`Rollback add agent:ready failed: ${rollbackError.message}`);
core.error(`Rollback add agent:ready failed: ${rollbackError.message}`);
}
}

Expand Down
7 changes: 6 additions & 1 deletion AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -27,4 +27,9 @@ bash scripts/verify
- Queue workflow will post a task packet and notify `@copilot`.

## Queue Trigger Warning
Applying label `agent:ready` triggers the queue workflow immediately.

> ⚠️ **Applying label `agent:ready` triggers the queue workflow immediately.**
> The workflow will transition the issue to `agent:in-progress`, post an Execution Contract
> comment, and notify `@copilot`. This action cannot be silently undone — any rollback
> failure is surfaced as a workflow error. Do not apply `agent:ready` unless the issue is
> fully scoped and ready for autonomous implementation.