@jrpool/kilotest 60.7.2 → 60.7.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/docs/AI-TOOLS.md CHANGED
@@ -42,7 +42,7 @@ The external features that support the use of Kilotest as a collection of AI too
42
42
  - A [pull request](https://github.com/public-apis/public-apis/pull/6346/changes) to add Kilotest to the list of public APIs in the `public-apis` repository.
43
43
  - An [issue](https://github.com/APIs-guru/openapi-directory/issues/2677) to add Kilotest to `openapi-directory`.
44
44
  - A [pull request](https://github.com/w3c/wai-evaluation-tools-list/pull/1153) to add Kilotest to the WAI evaluation tools list.
45
- - An in-progress, incomplete submission of Kilotest as a plugin to OpenAI, under the organization name Kilotest, with organization ID `org-HOt5F01qJGQcl6V0sHj9HWr3`. Submission awaits correction of a defect that prevents submitters from recording their ID cards for identity verification. Upon that correction, the archive `kilotest-overview.zip` in this `docs` directory will be uploaded to OpenAI; a challenge token received from OpenAI will be stored in the `well-known` directory; the OpenAI “Scan Tools” function will be performed; and its requirement for 3 justifications per tool will be satisfied. Example for listDiagnoses: readOnlyHint: true — "The tool only retrieves stored report data; it modifies nothing." openWorldHint: false — "It reads only Kilotest's own database of reports; users can select among stored results but cannot direct it to arbitrary external resources." destructiveHint: false — "It deletes or overwrites nothing."
45
+ - A submission, currently in review, of Kilotest as a [plugin to OpenAI](https://platform.openai.com/plugins?mcp=server%3Akilotest), with organization ID `org-HOt5F01qJGQcl6V0sHj9HWr3`. The OpenAI “Scan Tools” function succeeded without the expected demand for 3 hint justifications per tool, such as (for listDiagnoses) readOnlyHint: true — "The tool only retrieves stored report data; it modifies nothing." openWorldHint: false — "It reads only Kilotest's own database of reports; users can select among stored results but cannot direct it to arbitrary external resources." destructiveHint: false — "It deletes or overwrites nothing."
46
46
  - Registration of Kilotest as an active server in the [official MCP Registry](https://registry.modelcontextprotocol.io/v0.1/servers?search=io.github.jrpool/kilotest), maintained by the [Model Context Protocol](https://modelcontextprotocol.io/) project. The [PulseMCP](https://www.pulsemcp.com/servers) directory and the VS Code MCP gallery both crawl this registry, so Kilotest is discoverable through them with no separate submission.
47
47
  - Registration of Kilotest with the [Smithery](https://smithery.ai/servers/pool/kilotest) MCP server registry.
48
48
  - Registration of Kilotest with the [Glama](https://glama.ai/mcp/connectors/com.kilotest/kilotest) MCP server registry, including a claim of ownership of the MCP connector by the maintainer via a `TXT` DNS record for `_glama-claim.kilotest.com`, with the value `glama_claim_gVV4HrPdcXr9TEfj1p3icEUBJ3_OVJGX`.
@@ -0,0 +1,17 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512" width="512" height="512" aria-hidden="true">
2
+ <style>
3
+ .lens { stroke: #005c5c; }
4
+ .zero { fill: #12a05c; }
5
+ @media (prefers-color-scheme: dark) {
6
+ .lens { stroke: #3fb8b8; }
7
+ .zero { fill: #4ce0a0; }
8
+ }
9
+ </style>
10
+ <g transform="scale(16)">
11
+ <circle class="lens" cx="14" cy="14" r="8.6" fill="none" stroke-width="2.6"/>
12
+ <path class="lens" d="M20.3 20.3L26.8 26.8" fill="none" stroke-width="2.8" stroke-linecap="round"/>
13
+ <ellipse class="zero" cx="9.9" cy="14" rx="1.5" ry="1.9"/>
14
+ <ellipse class="zero" cx="14" cy="14" rx="1.5" ry="1.9"/>
15
+ <ellipse class="zero" cx="18.1" cy="14" rx="1.5" ry="1.9"/>
16
+ </g>
17
+ </svg>
@@ -0,0 +1,9 @@
1
+ {
2
+ "$schema": "https://agent-plugins.org/schemas/1.0.0/mcp.schema.json",
3
+ "mcpServers": {
4
+ "kilotest": {
5
+ "type": "streamable-http",
6
+ "url": "https://kilotest.com/mcp"
7
+ }
8
+ }
9
+ }
@@ -0,0 +1,133 @@
1
+ {
2
+ "$schema": "https://agent-plugins.org/schemas/1.0.0/plugin.schema.json",
3
+ "name": "kilotest",
4
+ "version": "1.0.0",
5
+ "description": "Test web pages for front-end quality (accessibility, usability, and web standards, including HTML, CSS, ARIA, and WCAG) with an ensemble of 12 rule engines, and inspect the structured reports.",
6
+ "author": {
7
+ "name": "Jonathan Robert Pool",
8
+ "email": "info@kilotest.com",
9
+ "url": "https://kilotest.com"
10
+ },
11
+ "homepage": "https://kilotest.com",
12
+ "repository": "https://github.com/jrpool/kilotest",
13
+ "license": "MIT",
14
+ "keywords": [
15
+ "accessibility",
16
+ "a11y",
17
+ "usability",
18
+ "wcag",
19
+ "web-standards",
20
+ "testing"
21
+ ],
22
+ "extensions": {
23
+ "com.openai": {
24
+ "interface": {
25
+ "displayName": "Kilotest",
26
+ "shortDescription": "Test web-page quality",
27
+ "longDescription": "Kilotest tests public web pages for front-end quality: accessibility, usability, and web standards, including HTML, CSS, ARIA, and WCAG. It runs an ensemble of 12 independent rule engines and combines their results into structured reports organized as page, report, issue, violator element, and diagnosis. Use it to check whether a page has been tested, inspect the reported issues down to the violating elements and rule-engine diagnoses, and request or order new tests and retests. Kilotest testing emulates unprivileged public users and therefore produces no side effects other than those that human users could produce.",
28
+ "developerName": "Jonathan Robert Pool",
29
+ "category": "Developer Tools",
30
+ "capabilities": [
31
+ "Test web pages",
32
+ "Inspect test reports",
33
+ "Request tests and retests"
34
+ ],
35
+ "websiteURL": "https://kilotest.com",
36
+ "supportURL": "https://github.com/jrpool/kilotest/issues",
37
+ "privacyPolicyURL": "https://kilotest.com/privacy.html",
38
+ "termsOfServiceURL": "https://kilotest.com/terms.html",
39
+ "defaultPrompt": [
40
+ "Has Kilotest tested https://example.com? If so, summarize the issues in its latest report.",
41
+ "Show which elements on this page Kilotest reported as violating accessibility rules, and what the rule engines diagnosed.",
42
+ "Order a Kilotest test of https://example.org and wait for the report."
43
+ ],
44
+ "brandColor": "#005C5C",
45
+ "composerIcon": "./assets/logo.svg",
46
+ "logo": "./assets/logo.svg"
47
+ },
48
+ "review": {
49
+ "test_cases": {
50
+ "positive": [
51
+ {
52
+ "description": "Discover which pages of a named entity have been tested",
53
+ "prompt": "Name all pages of Kilotest that Kilotest has tested. I need only their names and not their URLs, test dates, test results, or any other information.",
54
+ "tools_triggered": "listPages",
55
+ "expected_behavior": "List the names of all Kilotest pages that Kilotest has tested."
56
+ },
57
+ {
58
+ "description": "Name the issues in a report",
59
+ "prompt": "Name the issues reported in the latest report about the Human Rights Watch contact page. I need only their names and not their descriptions, priorities, or any other information.",
60
+ "tools_triggered": "listPages, listIssues",
61
+ "expected_behavior": "Locate the latest report about the Human Rights Watch contact page and name all the issues reported in the report."
62
+ },
63
+ {
64
+ "description": "Drill down from a page to issues, violators, and diagnoses",
65
+ "prompt": "In the latest report about the Wikimedia Foundation (home) page, tell me which highest-priority issue was reported by the largest number of rule engines. For that issue, give me the XPath of the element that was reported as a violator by the largest number of rule engines. Finally, for that element and that issue, give me a one-sentence summary of the diagnoses. I do not need an issue explanation, additional information about the element, the number of diagnoses, their full texts, or the number or names of the rule engines that issued them.",
66
+ "tools_triggered": "listPages, listIssues, listViolators, listDiagnoses",
67
+ "expected_behavior": "Locate the latest report about the Wikimedia Foundation home page, find and name the highest-priority issue reported by the largest number of rule engines, find the element that was reported as a violator of that issue by the largest number of rule engines, name the XPath of that element, and summarize in one sentence the diagnoses of the violations of that issue by that element."
68
+ },
69
+ {
70
+ "description": "Request a test of an untested page",
71
+ "prompt": "Request a Kilotest test of Example12345 (https://example12345.info) and let me know whether the request was accepted. If it was, tell me how long I should expect to wait before the results will be available.",
72
+ "tools_triggered": "listPages, requestNewTest",
73
+ "expected_behavior": "Submit the request and reply that the results are likely to be available within one day, or that the request was rejected."
74
+ },
75
+ {
76
+ "description": "Order a retest to check on changes in test results",
77
+ "prompt": "Order a Kilotest retest of the Example page. When the report is completed, compare it with the previous report about that page and give me two lists: one naming any eliminated issues and the other naming any newly reported issues. I do not need the report dates, the issue counts, issue explanations, or any other information. If the order is rejected, or if the report is not completed within 4 minutes, stop waiting and tell me what happened.",
78
+ "tools_triggered": "listPages, orderRetest, awaitTest, listIssues",
79
+ "expected_behavior": "Locate the latest report about the Example page, order a retest of it, wait for the new report, compare it with the earlier report, and provide lists of the names of any issues reported by only the previous report and the names of any issues reported by only the new report. If the order is rejected, state that. If the order is accepted but the report is not completed within 4 minutes, state that and stop waiting."
80
+ }
81
+ ],
82
+ "negative": [
83
+ {
84
+ "description": "Test a private-network address",
85
+ "prompt": "Order a Kilotest test of http://192.168.1.1/admin."
86
+ },
87
+ {
88
+ "description": "Modify a tested page",
89
+ "prompt": "Remediate the accessibility problems Kilotest found on https://example.com."
90
+ },
91
+ {
92
+ "description": "Out-of-scope task",
93
+ "prompt": "Book a flight to Chicago for next Friday."
94
+ }
95
+ ]
96
+ },
97
+ "commerce": false,
98
+ "commerce_description": "This plugin does not sell products or process payments."
99
+ },
100
+ "publication": {
101
+ "countries": [
102
+ "US",
103
+ "CA",
104
+ "GB",
105
+ "IE",
106
+ "AU",
107
+ "NZ",
108
+ "DE",
109
+ "FR",
110
+ "NL",
111
+ "BE",
112
+ "AT",
113
+ "CH",
114
+ "ES",
115
+ "PT",
116
+ "IT",
117
+ "SE",
118
+ "NO",
119
+ "DK",
120
+ "FI",
121
+ "PL",
122
+ "CZ",
123
+ "JP",
124
+ "IN",
125
+ "BR",
126
+ "MX",
127
+ "IL"
128
+ ],
129
+ "release_notes": "Initial release: Kilotest MCP server plus an overview-and-workflow skill."
130
+ }
131
+ }
132
+ }
133
+ }
@@ -0,0 +1,51 @@
1
+ ---
2
+ name: kilotest-overview
3
+ description: Kilotest uses an ensemble of 12 rule engines to test web pages for front-end quality, including accessibility, usability, and web standards such as HTML, CSS, ARIA, and WCAG. Use when learning which pages have been tested and which reports about test results for a page are available, investigating the reported issues, and getting a page tested for the first time or retested.
4
+ ---
5
+
6
+ # Kilotest overview and workflow
7
+
8
+ Kilotest tests web pages for front-end quality: accessibility, usability, and web standards, including HTML, CSS, ARIA, and WCAG.
9
+
10
+ Kilotest integrates an ensemble of 12 independent rule engines to test a web page and stores the results as a structured report, from which it exposes results at selectable granularities.
11
+
12
+ ## Report hierarchy
13
+
14
+ Results are organized as a hierarchy:
15
+
16
+ - Tested pages.
17
+ - For each tested page, reports from the tests of the page.
18
+ - For each report, issues reported.
19
+ - For each issue, violators of rules belonging to the issue (a violator is an element or the whole page).
20
+ - For each violator, diagnoses by rule engines of its violations.
21
+
22
+ ## Typical workflow
23
+
24
+ 1. Call `listPages` to determine whether the page has been tested.
25
+ 2. If it has been tested:
26
+ - Use `listIssues` to identify reports about the page and summarize the issues reported by one report.
27
+ - Use `listViolators` to inspect elements violating rules belonging to an issue.
28
+ - Use `listDiagnoses` to inspect diagnoses by rule engines of violations of applicable rules by an element.
29
+ - Use `getReport` to retrieve an entire JSON report.
30
+ - Use `requestRetest` or `orderRetest` if the latest report is obsolete and you want the page retested.
31
+ 3. If the page has not been tested:
32
+ - Use `requestNewTest` or `orderNewTest` if you want the page tested.
33
+
34
+ ## Test request and order processing
35
+
36
+ A test or retest **request** is reviewed by a manager. If approved, the testing is typically performed within a day.
37
+
38
+ A test or retest **order** is reviewed automatically and immediately. If it is approved, you get a report identifier. You can then use `awaitTest`, with the identifier, to await test completion, which typically takes 2 to 4 minutes, or you can later use `listIssues` with the identifier to check the status.
39
+
40
+ ## Reporting to users
41
+
42
+ When reporting test results to users:
43
+
44
+ - Do not assume a requested or ordered test or retest has produced a report until Kilotest confirms this.
45
+ - You may quote the Kilotest classification of issues into priorities, but identify any additional prioritization recommendations as your own.
46
+ - You may quote recommendations for remediation made by rule engines in diagnoses, but identify any additional remediation recommendations as your own.
47
+
48
+ ## Further documentation
49
+
50
+ - `https://kilotest.com/llms.txt`
51
+ - `https://kilotest.com/llms-full.txt`
package/lhm.plugin.json CHANGED
@@ -4423,5 +4423,5 @@
4423
4423
  }
4424
4424
  }
4425
4425
  ],
4426
- "version": "60.7.2"
4426
+ "version": "60.7.3"
4427
4427
  }
package/openapi-3.0.yaml CHANGED
@@ -2,7 +2,7 @@ openapi: 3.0.3
2
2
  info:
3
3
  title: Kilotest API
4
4
  description: 'Kilotest is an ensemble testing and reporting service for front-end web quality. It uses an ensemble of 12 rule engines to test web pages for front-end quality (accessibility, usability, and web standards, including HTML, CSS, ARIA, and WCAG). Kilotest acts as a web server for human users, an MCP server for AI platforms, and an API for programmatic access. With this API you can request that a page be tested or retested, discover available reports, incrementally retrieve facts from a report: from what reports are available, to what issues were reported in one report, to what elements violated one issue, to what diagnoses rule engines gave for one violation.'
5
- version: 60.7.2
5
+ version: 60.7.3
6
6
  license:
7
7
  name: MIT
8
8
  url: https://github.com/jrpool/kilotest/blob/main/LICENSE
package/openapi.yaml CHANGED
@@ -2,7 +2,7 @@ openapi: 3.1.0
2
2
  info:
3
3
  title: Kilotest API
4
4
  description: 'Kilotest is an ensemble testing and reporting service for front-end web quality. It uses an ensemble of 12 rule engines to test web pages for front-end quality (accessibility, usability, and web standards, including HTML, CSS, ARIA, and WCAG). Kilotest acts as a web server for human users, an MCP server for AI platforms, and an API for programmatic access. With this API you can request that a page be tested or retested, discover available reports, incrementally retrieve facts from a report: from what reports are available, to what issues were reported in one report, to what elements violated one issue, to what diagnoses rule engines gave for one violation.'
5
- version: 60.7.2
5
+ version: 60.7.3
6
6
  license:
7
7
  name: MIT
8
8
  identifier: MIT
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@jrpool/kilotest",
3
- "version": "60.7.2",
3
+ "version": "60.7.3",
4
4
  "description": "Ensemble testing for front-end web quality",
5
5
  "type": "module",
6
6
  "main": "index.ts",
package/server.json CHANGED
@@ -6,7 +6,7 @@
6
6
  "url": "https://github.com/jrpool/kilotest",
7
7
  "source": "github"
8
8
  },
9
- "version": "60.7.2",
9
+ "version": "60.7.3",
10
10
  "remotes": [
11
11
  {
12
12
  "type": "streamable-http",
@@ -13,7 +13,7 @@
13
13
  <h2>What Kilotest does</h2>
14
14
  <p>Kilotest tests publicly reachable web pages for front-end quality (accessibility, usability, and web standards) with an ensemble of rule engines, stores the results as reports, and makes the reports publicly available through its web site, API, and MCP server. Owners of tested pages can request deletion of reports under the <a href="/privacy.html">privacy policy</a>.</p>
15
15
  <h2>What you submit</h2>
16
- <p>When you request or order a test or retest, you ask Kilotest to fetch the page and publish a report about it. You do not need the page owner&rsquo;s permission to do so. Submit only publicly reachable URLs, and do not submit URLs that require credentials or that would put secrets into a public report. Kilotest may reject any request or order.</p>
16
+ <p>When you request or order a test or retest, you ask Kilotest to fetch the page and publish a report about it, including findings about its defects and exerpts from it. You do not need the page owner&rsquo;s permission to do so. Submit only publicly reachable URLs. Do not submit URLs that require credentials, contain secrets, or could cause secret or unlawful content to appear in a Kilotest report. Kilotest may reject any request or order.</p>
17
17
  <h2>Acceptable use</h2>
18
18
  <p>Do not use Kilotest to attack, probe, or overload web sites, including this one, and do not submit unlawful or deceptive content. Kilotest may rate-limit, refuse, or block any use.</p>
19
19
  <p>Reports attribute results to third-party rule engines, whose own terms may restrict the use of those results. In particular, results derived from WAVE are subject to the <a href="https://wave.webaim.org/terms">WAVE terms of use</a>, which prohibit their use for any purpose related to a legal action without written permission from WebAIM.</p>
Binary file