feat(#252): detect and flag PRs modifying deprecated scaffold paths#276
feat(#252): detect and flag PRs modifying deprecated scaffold paths#276fullsend-ai-coder[bot] wants to merge 2 commits into
Conversation
Add a deprecated-path check to the review agent PR-specific checks (step 6e) that flags PRs touching internal/scaffold/fullsend-repo/ files with a high-severity finding directing the author to fullsend-ai/agents. The check triggers a reject outcome since these PRs target the wrong repository. Legitimate scaffold PRs (version bumps, propagation machinery) are exempted. The exemption requires every file matched by the deprecated prefix to be an exempt sync/deploy pipeline file. Also updates step 6f to route deprecated-path findings to reject instead of request-changes, and adds an invariant rule enforcing the reject outcome. Note: pre-commit could not run (shellcheck-py wheel build failure on Python 3.14). Post-script runs authoritative pre-commit on the runner. Closes #252
E2E tests did not runE2E tests run automatically for org/repo members and collaborators on pull requests. For other contributors, a maintainer must add the See E2E testing guide for details. |
|
🤖 Finished Review · ❌ Failure · Started 1:01 PM UTC · Completed 1:02 PM UTC |
|
/fs-review |
|
🤖 Finished Review · ✅ Success · Started 3:57 PM UTC · Completed 4:09 PM UTC |
ReviewFindingsLow
Previous runReviewFindingsMedium
Low
|
|
/fs-fix |
|
🤖 Finished Fix · ✅ Success · Started 5:38 PM UTC · Completed 5:47 PM UTC |
- Fix constraint inconsistency: append deprecated-path exception to the existing critical/high constraint bullet - Replace ambiguous "In either case" with "When a deprecated-path finding is raised" - Add deprecated-path checks to orchestrator-only constraint enumeration Addresses review feedback on #276
🔧 Fix agent — iteration 1 (human-triggered)Addressed all 3 review findings (1 medium, 2 low) in the pr-review SKILL.md. All changes are minimal text fixes in the deprecated-path section and Constraints section. Fixed (3):
Tests: passed Updated by fullsend fix agent |
|
🤖 Finished Review · ✅ Success · Started 5:50 PM UTC · Completed 6:04 PM UTC |
| Check whether the PR modifies files under deprecated paths. These are | ||
| locations whose canonical content has migrated to another repository. | ||
| Changes targeting them are almost certainly misdirected and will not | ||
| be merged. |
There was a problem hiding this comment.
[low] logic-ambiguity
Step 6f parenthetical exception for deprecated-path is slightly ambiguous when both a deprecated-path finding and separate critical/high findings coexist. The outcome resolves correctly via step 6e MUST-reject, but the 6f wording could be tightened to make the priority explicit.
Suggested fix: Rephrase the first bullet of 6f to state: if any deprecated-path finding is present, the outcome is reject regardless of other findings.
| `templates/shim-per-repo.yaml` and `templates/shim-workflow-call.yaml` | ||
| (workflow dispatch shims consumed by the propagation tooling). Agent | ||
| definitions, skills, schemas, scripts, policies, harness configs, | ||
| workflows, and environment files are never exempt. To qualify for the |
There was a problem hiding this comment.
[low] exemption-underspecification
The exemption clause gives two example files but relies on agent judgment for other files. The two named files are the only files in templates/ today, making examples effectively exhaustive, but a clearer pattern would reduce ambiguity if the directory grows.
Suggested fix: Consider using a directory-based pattern (e.g., files under templates/) instead of individual file examples.
Add a deprecated-path check to the review agent PR-specific checks (step 6e) that flags PRs touching internal/scaffold/fullsend-repo/ files with a high-severity finding directing the author to fullsend-ai/agents. The check triggers a reject outcome since these PRs target the wrong repository.
Legitimate scaffold PRs (version bumps, propagation machinery) are exempted. The exemption requires every file matched by the deprecated prefix to be an exempt sync/deploy pipeline file.
Also updates step 6f to route deprecated-path findings to reject instead of request-changes, and adds an invariant rule enforcing the reject outcome.
Note: pre-commit could not run (shellcheck-py wheel build failure on Python 3.14). Post-script runs authoritative pre-commit on the runner.
Closes #252
Post-script verification
agent/252-deprecated-scaffold-path-check)c776c248ac9a91f10998ca7107e974a6c9d76514..HEAD)