Skip to main content
← Back to list
01Issue
FeatureShippedSwamp CLI
Assigneesstack72

Relationships

#596 Support CI-friendly adversarial review artifacts for extension push

Opened by jentz · 6/8/2026· Shipped 6/8/2026

This was generated by AI during triage.

Summary

swamp extension push currently checks for a content-hash-bound adversarial review report under a system temp directory such as /tmp/swamp-extension-review/<extension>-<hash>.json.

That works for local publishing, but it is awkward to automate in GitHub Actions. A review completed on a developer machine does not survive into a clean CI runner, so CI publishing workflows emit adversarial-review warnings even when the code was reviewed elsewhere.

Evidence from GitHub Actions publish logs

In jentz/swamp-extensions, publishing runs from a clean workflow_run runner after CI succeeds. These publish runs all succeeded, but emitted the same adversarial-review warning:

  • Run 27119479865, extension @jentz/aws-context-guard, 2026-06-08: /tmp/swamp-extension-review/_jentz_aws-context-guard-92f4990bdd4a480508779a8ecf753d86cd43beaee1b2dafb1587896b42516d68.json
  • Run 27119507505, extension @jentz/aws-rds-reservations, 2026-06-08: /tmp/swamp-extension-review/_jentz_aws-rds-reservations-8156e657841bca740df52fd2fc18091209953805152db2030567e24681f08baa.json
  • Run 27104269237, extension @jentz/aws-rds-inventory, 2026-06-07: /tmp/swamp-extension-review/_jentz_aws-rds-inventory-e20d841ef880a275957476c61e8a86cd83f168d48f402825070af7d3b10e3f8d.json
  • Run 27104121041, extension @jentz/aws-s3-bucket-audit, 2026-06-07: /tmp/swamp-extension-review/_jentz_aws-s3-bucket-audit-b97f39ca9516d1f6f67013e6ae79b478803f01255180b23fa97af1faad30e753.json
  • Run 27103500808, extension @jentz/aws-rds-reservations, 2026-06-07: /tmp/swamp-extension-review/_jentz_aws-rds-reservations-e2dcd2fb308fc8bd0b702ea78b3fdb44a5ad4cdbfd37ba565d9682583f9c1612.json

The repeated warning text is:

["medium"] "Adversarial review" — "/tmp/swamp-extension-review/<extension>-<hash>.json": "No adversarial review recorded for the current code — perform the review and write the report here (run with --dry-run --json for the fill-in skeleton, or see the swamp skill)."

Current local dry-runs also emit reviewRuleWarnings with ruleId: adversarial-review-report, a temp-path file, and an inline skeleton.

Current CI shape

The publish workflow checks out github.event.workflow_run.head_sha, detects changed extension manifests, then runs:

swamp extension push "<extension>/manifest.yaml" --yes

Because the runner is clean, it does not have any local temp review report from prior human/agent review work.

Why current workarounds are awkward

A repo-local workaround might be possible:

  1. In CI, run swamp extension push <manifest> --dry-run --json.
  2. Extract the expected review report temp path / basename.
  3. Copy or materialize a matching completed review JSON.
  4. Re-run dry-run to verify the warning is gone.
  5. Publish.

But this relies on scripting around an implementation detail: the temp path and content-hash filename. It also leaves extension authors without a documented durable place to store or verify review reports.

Requested improvement

Please provide a first-class CI-friendly way to satisfy the adversarial review gate.

Possible designs:

  1. Add a repo-local review directory flag, for example:

    swamp extension push manifest.yaml --review-dir .swamp-reviews

    where review files are keyed by extension content hash.

  2. Provide review lifecycle commands:

    swamp extension review init manifest.yaml --output .swamp-reviews
    swamp extension review check manifest.yaml --review-dir .swamp-reviews
  3. Allow committed review artifacts using a documented stable naming convention.

  4. Make --json easier for CI to consume by emitting one final structured object that includes:

    • reviewRuleWarnings
    • expected report paths / basenames
    • skeleton content
    • whether publish would require confirmation
  5. Document the recommended GitHub Actions pattern if temp-path materialization is intended.

This is separate from Lab #583. #583 was about helper imports being shown as bogus model entries in push preview. This issue is specifically about adversarial-review report persistence and CI automation.

02Bog Flow
OPENTRIAGEDIN PROGRESSSHIPPED+ 1 MOREASSIGNED+ 5 MOREREVIEW+ 3 MOREPR_MERGED+ 1 MORECONTRIBUTOR_NOTIFIED

Shipped

6/8/2026, 8:04:50 PM

Click a lifecycle step above to view its details.

03Sludge Pulse
stack72 assigned stack726/8/2026, 6:41:20 PM
Editable. Press Enter to edit.

stack72 commented 6/8/2026, 8:04:59 PM

Thanks @jentz for reporting this! The fix has been merged and a release is on its way. We appreciate your contribution to swamp.

Sign in to post a ripple.