https://github.com/jonnymiller99/page-language-model
Open-source framework for defining Page Language Models (PLMs) for intelligent app understanding and AI-assisted testing.
https://github.com/jonnymiller99/page-language-model
automation developer-tools json-schema llm manual-testing open-source page-language-model page-object-model playwright plm pom selenium test-automation test-driven-development testing testing-framework testing-tools ui-testing
Last synced: about 1 month ago
JSON representation
Open-source framework for defining Page Language Models (PLMs) for intelligent app understanding and AI-assisted testing.
- Host: GitHub
- URL: https://github.com/jonnymiller99/page-language-model
- Owner: JonnyMiller99
- License: mit
- Created: 2025-04-10T02:01:36.000Z (about 1 month ago)
- Default Branch: main
- Last Pushed: 2025-04-10T02:36:48.000Z (about 1 month ago)
- Last Synced: 2025-04-10T03:24:14.930Z (about 1 month ago)
- Topics: automation, developer-tools, json-schema, llm, manual-testing, open-source, page-language-model, page-object-model, playwright, plm, pom, selenium, test-automation, test-driven-development, testing, testing-framework, testing-tools, ui-testing
- Homepage:
- Size: 7.81 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# π Page Language Model (PLM)
**Page Language Model (PLM)** is a new open-source format for describing the structure, behavior, and flow of pages in web and mobile applications β designed specifically for **AI-assisted testing, automation, and reasoning**.
It combines the familiar **Page Object Model (POM)** with the power of **Large Language Models (LLMs)** to give intelligent agents a structured, machine-readable understanding of your app.
---
## π Why PLM?
Modern apps can be too complex to test with raw selectors and brittle flows.
PLM solves this by providing:
- π **Linked page flows** (what pages connect to what)
- π **Detailed component maps** (inputs, buttons, modals, etc.)
- β **Validation and requirement rules**
- π§ **AI-ready format** for test generation, analysis, and understandingIt's declarative, JSON-based, and version-controlled β built for developers, testers, and LLM-powered tools.
PLMs also support rich metadata like `description`, `intent`, `exampleInput`, and `llm_hint` to help LLMs understand the role and behavior of each component.
---
## π§ What Does a PLM Look Like?
Hereβs a basic example for a login page, using both structural fields and LLM-aware metadata:
```json
{
"page": "LoginPage",
"url": "/login",
"components": [
{
"id": "emailInput",
"type": "input",
"label": "Email",
"required": true,
"validation": "must be a valid email",
"exampleInput": "[email protected]",
"description": "User's login email address",
"intent": "Capture the user's email for login"
},
{
"id": "passwordInput",
"type": "input",
"label": "Password",
"required": true,
"validation": "minimum 8 characters",
"exampleInput": "securepass123",
"description": "User's password",
"intent": "Collect secure password input"
},
{
"id": "loginButton",
"type": "button",
"label": "Log In",
"action": "submitLoginForm",
"transitionsTo": "DashboardPage",
"llm_hint": "Only enable after email and password fields are filled and valid",
"description": "Submits login credentials and redirects on success"
}
]
}
```π See [`examples/login-page.json`](examples/login-page.json) for a full example.
---
## π§± Whatβs in This Repo?
- `schema/plm.schema.json` β the official v0.2 PLM JSON schema
- `examples/` β sample pages to learn from and fork
- `docs/` β deeper guides and best practices
- `cli/` β (coming soon) CLI tools for working with PLM files---
## π Coming Soon
- CLI to validate and scaffold PLMs
- PLM β test case generators (Cypress, Playwright, etc.)
- Visual editor + LLM agent integrations---
## β¨ Origin
PLM was created in 2025 by Jonathan Miller as a new standard to bridge the gap between UI automation, manual testing and AI reasoning.
> "Don't just test your UI β help AI understand it."
---
## π€ Want to Help?
- β Star the repo to follow along
- π Try building your own PLM files
- π£ Open issues or discussions
- π§ Spread the word and help define the standard---
π See [`docs/README.md`](docs/README.md) for the full PLM spec and advanced usage.
---
## π License
MIT License β free to use, modify, and build on.
If you're interested in contributing, collaborating, or helping shape this standard, [get in touch](https://github.com/JonnyMiller99).