While a coding agent builds a feature, it checks its own work in a fast loop. Your e2e suite checks the same feature later, slowly, in CI. The two loops never meet, even though your tests already know how to drive the app.
For over a year I've been building around this idea.
ayme exposes the Page Object Model from your @playwrightweb tests to your coding agent as MCP tools, on the live page. The playground is open before the alpha, come poke at it!
@housecor Agree on sharing, but I'd separate personal skills rather than avoid them.
I keep three buckets: shared with the team, synced across my machines, and ones that only make sense on one machine.
Personal ones aren't the problem, mixing them into the shared set is :)
@miriamschwab@elemntor Great to see WebMCP shipping in something as big as Elementor!
A question though: same release adds a honeypot and score-based reCAPTCHA to Atomic Forms.
Does the generated tool leave the honeypot out, and does the reCAPTCHA score let an in-browser agent through?
@PovilasKorop The agent can't tell which requirements a test is supposed to protect, so it pins down everything it touched
Those 4000 lines protect nothing a user would notice
Align upfront with the agent about what it should test and where, while writing the spec
@ChromiumDev Nice that it sets Baseline targets!
For CSS that can be a check instead: @eslint/css has a use-baseline rule, so the agent gets deterministic feedback instead of a suggestion.
Any plans to ship the lint config alongside the skills?
Checked out your durable-testing skill. I like that it steers with principles instead of dictating concrete test examples!
I'm doing something similar on the software side: systems thinking, essential vs accidental complexity, information hiding, small feedback loops.
My bet is that principles age better. The models already know the concepts.
Looking back at my older skills, they needed very concrete examples back then. Now that feels more like oversteering 😅
@anthonyshew the deleters had a point about one kind: unit tests pinned to internals break on every agent refactor
those should be moved to the seams instead of dropping the whole lane
e2e covers ccritical user flows piercing through the stack, unit tests cover can cover the app/domain rules
@davekiss imo this one shouldn't live in AGENTS.md
a pre-tool hook can match `test | tail` and reject the command with "write the output to a file"
the agent gets told the moment it does it, not only when it remembers the rule
missing one imo: the rule 17 check should end up as an e2e test in the pipeline
when the agent walks the path in the running app, it learns how to navigate it
not keeping that as a test is throwing tokens and money out the window
and the next agent's change can break it while the pipeline still goes green
imo it starts before the code
first get aligned with the agent on what it should build
with a proper spec, we can hand off the implementation and its verification too
inner loop: types, lint, unit tests steer it
outer loop: e2e judges it
then one human review at the end, scaled to the complexity of the change
that's how we keep up: our attention goes to what matters, the rest is outsourced within the right constraints
imo big upfront planning shouldn't come back
agents are great at divergent work: prototyping, trying a lot of options, finding answers fast
then we converge on what actually worked
AI gives us faster iteration, not a bigger upfront plan
plan after that, not before
the old waterfall problems still apply
imo review is still extremely important
The problem is we're drowning in it.
Agents spit out so much code, and nothing tells us which changes in the PR actually matter.
I still want PRs and a real review
what's missing is something that directs human attention at those changes, so we can happily leave the rest up ro ai
Slop in, slop out is still where it can still go wrong, even if you have all the checks in place. No check will save you, it just verifies the wrong thing.
But for keeping the agent on track, I 100% agree with you and pu e2e tests at the top of that list.
The closer a check sits to how users experience the product, the closer the outcome gets to what we meant.
e2e tests written in the product's language are docs that can't go stale. When they do, they fail.
I don't tell my agents to read the docs anymore. I tell them to read my tests :)
All circles around the same idea, but imo there's a split that's more important than the name itself
Inner loop: things running inside the agent loop (types, lint, unit tests) can steer the work.
Outer loop: Things running after the change (e2e in CI, monitoring) it can only judge it.
We need both
Good question, could come in handy!
I think I have a branch where I implemented discard functionality for interactions and the detected changes. I will try to salvage that!
Currently, alignment happens in your regular agentic dev env: If using the skill the agent will suggest you a test scenario and page object models before coding.
ayme is starting to take shape!
The recorder was collecting dust for a while, so I cut out about 2/3 of it and published the rest on npm :D
You walk through a flow in the browser, it records every interaction and what changed on the page after each one. Your coding agent turns that into page objects and a Playwright test, and runs it.
Next up: ayme inspector - see the page objects your agent writes, and expose them as WebMCP tools live in the browser.
One step closer to closing the inner and outer verification loop!
@poteto amazing times!
things that truly matter start to became more explicit, leaving the bloat behind
Finally you don't have to feel bad for preaching about testing and being rigorous about architecture 😅