Site navigation and actions.
Turn tickets into testable criteria, then check each one against the code and the running app.
Ticket has no acceptance criteria
PAY-142 describes the goal but lists nothing testable. Hydrofoil drafted 4 criteria from the description, a comment and the diff.
Criterion not met: expired codes are accepted
Applying an expired promo code lowered the order total instead of showing an expiry error.
Turns the ticket, the PR description and the diff into a numbered list of testable criteria.
Ticket text on the left, the numbered criteria Hydrofoil drafts from it on the right. Each criterion carries a coloured tag showing where it came from.
Customers can enter a promo code on the checkout page and see the discount applied to their total.1
Codes can expire. Invalid codes should show an error.
Given a valid promo code, when I apply it, then the order total is reduced.
JiraGiven an expired code, when I apply it, then I see an expiry error.
Jira2Given an invalid code, when I apply it, then I see an error and my total is unchanged.
PRGiven a code is applied, when I remove it, then the original total is restored.
inferred3Hydrofoil reads the Jira ticket (description, acceptance-criteria field, comments, subtasks) or GitHub issue, the PR description and the diff. It writes numbered, Given/When/Then-style criteria and tags each with its source: Jira, PR, or inferred. You can edit, add or remove criteria in the dashboard, and your edits persist across runs. Criteria can optionally be posted back to Jira as a comment. [TBD: confirm Jira write-back is live]
Ticket or issue, PR description and the diff.
Numbered, Given/When/Then-style and testable.
Jira, PR or inferred.
Your edits persist across runs.
Findings appear in the Hydrofoil dashboard and in your GitHub check, with a severity (blocker, major, minor or nit) and a confidence level. Low-confidence findings are marked Needs reviewand don't fail the check.
A numbered criteria list on the PR page, each tagged with its source.
What each finding includes.
Turn this review on or off for each repository in repository settings.Choose which Jira projects to read and which field holds acceptance criteria [TBD: confirm labels].
Checks each criterion against both the code and the running app, and flags changes no ticket explains.
Each criterion gets a verdict. Expand one to see the browser steps and screenshot behind it.
A valid promo code reduces the order total
Met1An expired code shows an expiry error
Not metThe total dropped instead of showing an error.
An invalid code shows an error and leaves the total unchanged
Partially metRemoving a code restores the original total
Unable to verifysrc/lib/analytics.ts changes tracking. No ticket or criterion explains it.For each criterion, Hydrofoil reasons about the diff, then the browser agent tries it in the running preview. Each criterion gets one of four results: Met, Partially met, Not met, Unable to verify.
Check the code against each criterion.
The browser agent exercises the running app.
Met, Partially met, Not met or Unable to verify.
List changes no ticket explains.
Findings appear in the Hydrofoil dashboard and in your GitHub check, with a severity (blocker, major, minor or nit) and a confidence level. Low-confidence findings are marked Needs reviewand don't fail the check.
A verdict per criterion, plus a list of unexplained changes. Not-met criteria become findings.
What each finding includes.
Turn this review on or off for each repository in repository settings.[TBD: add any check-specific options.]
Hydrofoil opens each preview in a real browser and posts what it finds to GitHub.