Update to FormHug
Snapshot Oct 24, 2026 · 12:51 UTC · version 2.0.1
Package or technical metadata updated
Package or technical metadata updated
Observed in package metadata. These changes alone do not establish a new customer-facing feature.
Up to 3 plugins free · no card required.
All fields and original values.
These are saved file metadata. Open a changed file to read its text edits.
Package file
Sep 30, 2026 · 22:47 UTC
Not present
Oct 24, 2026 · 12:51 UTC
{"sha256":"ea3dee9a5dd6e50e6588607bb1feca65be7fdf31f9c461d2370e11e161f105e8","size":10244}
Package file
Sep 30, 2026 · 22:47 UTC
91a8cc883773421e77b52dc3f629e861d74cd2e8df555c88c25f5474a5ed5abc
Oct 24, 2026 · 12:51 UTC
aaa47bb7ebd77f674c5e97d1aeaa8c23b7ecb39374fe2b384478cf730bf8b442
Package file
Sep 30, 2026 · 22:47 UTC
127
Oct 24, 2026 · 12:51 UTC
99
Package file
Sep 30, 2026 · 22:47 UTC
34e05a02e7fd5ebd47876a7c0e5b4dff5888826eb900664b0d9dc5b7995775f0
Oct 24, 2026 · 12:51 UTC
4b4e566ff34013d4dd284b585c0118f5d22b9b7a0446bc6a7beee2b42d57a3e2
Compare saved observations
Download comparison JSONChanged files
Choose a file to see its text changes. Binary or large files show metadata only.
mcp.json →
skills/formhug-analyze-responses/SKILL.md →
skills/formhug-analyze-responses/agents/openai.yaml →
skills/formhug-create-form/SKILL.md →
skills/formhug-create-form/agents/openai.yaml →
skills/formhug-create-quiz/SKILL.md →
skills/formhug-create-quiz/agents/openai.yaml →
README.md
− removed · + added
--- before +++ after @@ -0,0 +1,86 @@ +# FormHug OpenAI plugin + +This directory contains the source of the existing FormHug ChatGPT plugin. +Release `2.0.1` adds an explicit MCP connection and a portable manifest while +retaining the published plugin identity, listing text, and starter prompts. + +## Package layout + +```text +openai/ + plugin.json # Agent Plugins 1.0 manifest + mcp.json # Remote FormHug MCP connection + .codex-plugin/plugin.json # Compatibility manifest for older clients + assets/icon.png # 512 × 512 FormHug app and composer icon + skills/ + formhug-create-form/ + formhug-create-quiz/ + formhug-improve-form/ + formhug-analyze-responses/ +``` + +Keep identity, version, and interface metadata synchronized between the two +manifests. The portable manifest discovers `skills/` and `mcp.json` at their +fixed locations; the compatibility manifest references them explicitly. +The `formhug` server key matches every skill's `agents/openai.yaml` dependency. + +Both manifests reference `assets/icon.png` through `logo` and `composerIcon`. +The PNG reuses the existing FormHug brand icon from +`next-app-main/src/assets/images/icon.png`; include it in every exported ZIP. + +## MCP connection + +- Production endpoint: `https://formhug.ai/mcp`. +- Transport: Streamable HTTP (`streamable-http` in `mcp.json`, + `streamable_http` in skill dependency metadata). +- Authentication: the host completes FormHug OAuth authorization with PKCE + S256. No client secret, access token, or static Authorization header belongs + in this package. OAuth client secrets are Worker deployment secrets. +- Discovery: `https://formhug.ai/.well-known/oauth-protected-resource/mcp` + and `https://formhug.ai/.well-known/oauth-authorization-server`. +- UAT endpoint: `https://uat.formhug.ai/mcp`. Use it only in a separate test + copy, updating both `mcp.json` and all skill dependency URLs together. + +The endpoint and discovery routes are configured in the repository's +`wrangler.jsonc`; routing and OAuth are implemented in `src/index.ts`. +Tools and references come from the remote server, so the plugin does not bundle +the Worker runtime or duplicate its tool schemas. Installing the package does +not deploy the Worker. + +The server provides form and field management, settings, themes, conditional +rules, folders, entries, uploads, webhooks, public lookup pages, and account +information. The four packaged skills guide form creation, scored quizzes and +assessments, existing-form improvements, and response analysis. + +Read `formhug://guide` before a workflow. Then read the task-specific resource, +such as `formhug://field-types`, `formhug://themes`, `formhug://field-rules`, +`formhug://entries-filter`, or `formhug://entry-values`. Hosts without direct +resource access can call `read_reference` with the same URI. The authoritative +reference registry is `src/resources/index.ts`. + +## Export and verify + +Run these commands from the repository root. The staging directory uses the +existing manifest name to preserve the published identity. The archive includes +hidden compatibility files and excludes macOS metadata. + +```bash +staging_dir=$(mktemp -d) +plugin_name=$(node -p "require('./published-plugins/openai/plugin.json').name") +mkdir "$staging_dir/$plugin_name" +cp -R published-plugins/openai/. "$staging_dir/$plugin_name/" +archive_path="$PWD/published-plugins/formhug-openai-2.0.1.zip" +(cd "$staging_dir" && zip -r "$archive_path" "$plugin_name" -x '*/.DS_Store' '*/__MACOSX/*') +unzip -l "$archive_path" +``` + +Validate `plugin.json` and `mcp.json` against their declared schemas, check that +each skill's directory matches its frontmatter name, and verify that dependency +names and URLs match `mcp.json`. Before publishing, connect the plugin in the +intended host, complete OAuth, and call `read_reference` for `formhug://guide` +plus a read-only discovery tool such as `list_forms`. Check form-preview UI in +the host when preview behavior is part of the release. Do not create real test +submissions merely to validate installation. + +Source changes or an exported ZIP do not update the published plugin. Use the +existing plugin's release flow and preserve its sharing and permissions.
Full technical diff · 17 changed fields
added /files/.DS_Store
Field was absent
{
"sha256": "ea3dee9a5dd6e50e6588607bb1feca65be7fdf31f9c461d2370e11e161f105e8",
"size": 10244
}changed /files/.app.json/sha256
"91a8cc883773421e77b52dc3f629e861d74cd2e8df555c88c25f5474a5ed5abc"
"aaa47bb7ebd77f674c5e97d1aeaa8c23b7ecb39374fe2b384478cf730bf8b442"
changed /files/.app.json/size
127
99
changed /files/.codex-plugin~1plugin.json/sha256
"34e05a02e7fd5ebd47876a7c0e5b4dff5888826eb900664b0d9dc5b7995775f0"
"4b4e566ff34013d4dd284b585c0118f5d22b9b7a0446bc6a7beee2b42d57a3e2"
changed /files/.codex-plugin~1plugin.json/size
1505
1772
added /files/README.md
Field was absent
{
"sha256": "41c46dcb54b5650c0a0856725ed5296a114451941059b0ef3ca5c348e183c477",
"size": 4180
}added /files/assets~1icon.png
Field was absent
{
"sha256": "3088bda7dbcec1642c6ffad71cd383ee256f123c8c860bc655d1785a04de9eff",
"size": 4993
}added /files/mcp.json
Field was absent
{
"sha256": "64edf95da2c83135050f25afac5762300d0bc8ec8778ea18e7ebfc524dc98627",
"size": 192
}added /files/plugin.json
Field was absent
{
"sha256": "069a8d0bca271c4a4c90f647bae0d9268c976b582e481a3d829698467e14581b",
"size": 1988
}added /files/skills~1formhug-analyze-responses~1SKILL.md
Field was absent
{
"sha256": "febb2352a42adcad241cc39a8bcd3b254f600540ad967fb9bce040977165df81",
"size": 4289
}added /files/skills~1formhug-analyze-responses~1agents~1openai.yaml
Field was absent
{
"sha256": "819b6fe58bc5760744b5a807d6d938bc1cb330950fbf0b9994aa7335fecbba0c",
"size": 476
}added /files/skills~1formhug-create-form~1SKILL.md
Field was absent
{
"sha256": "79aa06095f4f7c85f84f1aece184f967f30369bbe866df39f73fcf56d73d9e41",
"size": 4705
}added /files/skills~1formhug-create-form~1agents~1openai.yaml
Field was absent
{
"sha256": "f631de8f16383bb5ea87ea2b96d37a12a8a6a8e53d9af37ecaa96673df91fb7e",
"size": 483
}added /files/skills~1formhug-create-quiz~1SKILL.md
Field was absent
{
"sha256": "87972b65b6ef5b919a72898071086c21e12007d08f3c4380e40234bb0216113b",
"size": 8080
}added /files/skills~1formhug-create-quiz~1agents~1openai.yaml
Field was absent
{
"sha256": "fc3124fb1abe607cf0766c945f4b2f72aeab1d0bfc85e35ad45836443d7444ad",
"size": 480
}added /files/skills~1formhug-improve-form~1SKILL.md
Field was absent
{
"sha256": "86fbeb74090dc189fa512592d0d5372eb378230927821315cf8fe6b52a504d24",
"size": 5110
}added /files/skills~1formhug-improve-form~1agents~1openai.yaml
Field was absent
{
"sha256": "2f6504962fed813bd3b37f9aaee06c15864bd9db6723cff859164492228cdaf3",
"size": 482
}Full snapshot data
{
"files": {
".DS_Store": {
"sha256": "ea3dee9a5dd6e50e6588607bb1feca65be7fdf31f9c461d2370e11e161f105e8",
"size": 10244
},
".app.json": {
"sha256": "aaa47bb7ebd77f674c5e97d1aeaa8c23b7ecb39374fe2b384478cf730bf8b442",
"size": 99
},
".codex-plugin/plugin.json": {
"sha256": "4b4e566ff34013d4dd284b585c0118f5d22b9b7a0446bc6a7beee2b42d57a3e2",
"size": 1772
},
"README.md": {
"sha256": "41c46dcb54b5650c0a0856725ed5296a114451941059b0ef3ca5c348e183c477",
"size": 4180
},
"assets/icon.png": {
"sha256": "3088bda7dbcec1642c6ffad71cd383ee256f123c8c860bc655d1785a04de9eff",
"size": 4993
},
"mcp.json": {
"sha256": "64edf95da2c83135050f25afac5762300d0bc8ec8778ea18e7ebfc524dc98627",
"size": 192
},
"plugin.json": {
"sha256": "069a8d0bca271c4a4c90f647bae0d9268c976b582e481a3d829698467e14581b",
"size": 1988
},
"skills/formhug-analyze-responses/SKILL.md": {
"sha256": "febb2352a42adcad241cc39a8bcd3b254f600540ad967fb9bce040977165df81",
"size": 4289
},
"skills/formhug-analyze-responses/agents/openai.yaml": {
"sha256": "819b6fe58bc5760744b5a807d6d938bc1cb330950fbf0b9994aa7335fecbba0c",
"size": 476
},
"skills/formhug-create-form/SKILL.md": {
"sha256": "79aa06095f4f7c85f84f1aece184f967f30369bbe866df39f73fcf56d73d9e41",
"size": 4705
},
"skills/formhug-create-form/agents/openai.yaml": {
"sha256": "f631de8f16383bb5ea87ea2b96d37a12a8a6a8e53d9af37ecaa96673df91fb7e",
"size": 483
},
"skills/formhug-create-quiz/SKILL.md": {
"sha256": "87972b65b6ef5b919a72898071086c21e12007d08f3c4380e40234bb0216113b",
"size": 8080
},
"skills/formhug-create-quiz/agents/openai.yaml": {
"sha256": "fc3124fb1abe607cf0766c945f4b2f72aeab1d0bfc85e35ad45836443d7444ad",
"size": 480
},
"skills/formhug-improve-form/SKILL.md": {
"sha256": "86fbeb74090dc189fa512592d0d5372eb378230927821315cf8fe6b52a504d24",
"size": 5110
},
"skills/formhug-improve-form/agents/openai.yaml": {
"sha256": "2f6504962fed813bd3b37f9aaee06c15864bd9db6723cff859164492228cdaf3",
"size": 482
}
}
}SHA-256 of public snapshot: 2f7996f69fa7a41d9a8dd810c2d9b64754f22f287a233ecae9d4c68929b1a0ed