Skip to content

CI: project agent — silence-by-default bumps, gh shim enforcement, no orchestration issues, weekly cadence - #497

Merged
Szer merged 1 commit into
mainfrom
project-agent-despam
Sep 15, 2026
Merged

Szer merged 1 commit into
mainfrom
project-agent-despam

Conversation

@Szer

@Szer Szer commented Sep 15, 2026

Copy link
Copy Markdown
Owner

Problem

The project agent workflow (.github/workflows/project.yml, .github/prompts/project.md) was extremely spammy:

Changes

  1. Prompt rewrite (.github/prompts/project.md): deleted the "bump if exists" rule and its template. Rule 2 (search before creating) now defaults to doing nothing when a matching open issue exists — open already means "still relevant". New rule 3: a comment on an existing finding is allowed only to close it as resolved, or to add evidence that actually changed — never to restate what's already there — with hard exclusions (never comment if a human commented, a PR references it, or the last agent comment is <14 days old). All references to the orchestration issue are gone; the agent's final action is now writing its summary to $AGENT_SUMMARY_FILE, and it's told $AGENT_LOG_ISSUE exists and must never be touched.

  2. Mechanical enforcement (scripts/agent-shim/gh): a bash shim placed first on PATH for the agent step. It resolves the real gh, and refuses (REFUSED by project-agent gh shim: ..., exit 1) gh issue comment when the issue is the log issue, has a human comment, is referenced by a PR (via the timeline API), or was bot-commented on within AGENT_COMMENT_THROTTLE_DAYS (14d); refuses gh issue close on the log issue. Everything else passes through. Every call appends one line to $AGENT_ACTIONS_LOG (ALLOWED/REFUSED/PASSTHROUGH) — this log is the evidence the shim was actually live inside the codex sandbox. scripts/agent-shim/test.sh exercises all 7 rules against a fake gh (19/19 assertions pass, no network). Both scripts are shellcheck-clean.

  3. No more per-run orchestration issue (.github/workflows/project.yml): removed the cleanup job and per-run issue creation. Added "Ensure project agent log issue" (finds-or-creates one long-lived, pinned, open Project agent log issue) and a PATH/self-test step that fails the run if gh doesn't resolve to the shim. Post-agent steps (if: always()) assert the agent wrote a summary file and that the actions log is non-empty (empty = shim never reached inside the sandbox = hard failure, never a silent "clean day"), publish both to the step summary, and post to the log issue only when the actions log contains at least one ALLOWED line. Clean runs post nothing anywhere.

  4. Weekly cadence: cron 37 4 * * 1, workflow renamed Weekly Project Assessment. Updated workflow-canary.yml's stall threshold (7d2h) and agent-retry.yml's workflow-name match. Grepped the tracked tree for remaining "Daily Project Assessment" references — none left outside these files.

Verification

Follow-ups (not in this PR)

  • product.yml/product.md have the identical per-run orchestration-issue pattern; deliberately out of scope here.
  • The gh shim is reusable — product.yml could adopt it the same way if its own bump/comment behavior ever needs the same mechanical backstop.

🤖 Generated with Claude Code

… orchestration issues, weekly cadence

Daily bumps carried zero new information (#330 got 19 in 6 weeks, 9 after a
human replied with a linked PR) and every run spawned a throwaway
orchestration issue (33/month). Silence is now the default outcome, comment
rules are enforced mechanically by a gh shim rather than relying on prompt
compliance, findings post to one long-lived log issue only when something
happened, and the cadence drops to weekly.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
@Szer
Szer merged commit b68711e into main Sep 15, 2026
9 checks passed
@Szer
Szer deleted the project-agent-despam branch September 15, 2026 21:22
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant