Enable LLMs to handle webhooks with plaintext files
0
fork

Configure Feed

Select the types of activity you want to include in your feed.

switch templating engine from eta to Liquid

+28 -21
+8 -7
.claude/skills/create-lure/SKILL.md
··· 57 57 58 58 ### Template body 59 59 60 - Below the frontmatter is an [eta](https://eta.js.org) template. Write it as a 61 - natural language prompt for the LLM that will process the webhook. The 62 - following are available on `it`: 60 + Below the frontmatter is a [Liquid](https://liquidjs.com) template. Write it 61 + as a natural language prompt for the LLM that will process the webhook. The 62 + following variables are available: 63 63 64 - - `it.payload` — the request body (parsed JSON for `contentType: json`) 65 - - `it.headers` — request headers as a `Headers` object (`it.headers.get("X-Foo")`) 66 - - `it.query` — query string as a `URLSearchParams` object (`it.query.get("foo")`) 64 + - `payload` — the request body (parsed JSON for `contentType: json`) 65 + - `headers` — request headers as a plain object with lowercase keys (e.g. `{{ headers["x-my-header"] }}`) 66 + - `query` — query string as a plain object (e.g. `{{ query.foo }}`) 67 67 68 - Use `<%= expression %>` to interpolate values into the prompt. 68 + Use `{{ expression }}` to interpolate values and `{% if %}...{% endif %}` for 69 + conditionals. 69 70 70 71 ## Notes 71 72
+20 -14
README.md
··· 38 38 someValue: 3 39 39 --- 40 40 41 - You have received information about a <%= it.payload.event %> event on My 41 + You have received information about a {{ payload.event }} event on My 42 42 Service. Read the following payload and respond according to your skills: 43 43 44 - <%= it.payload.body %> 44 + {{ payload.body }} 45 45 ``` 46 46 47 47 Different verification methods can be supported, for generic implementations or ··· 50 50 51 51 ### Template scope 52 52 53 - Templates are evaluated using [eta](https://eta.js.org). The following 54 - properties are available on `it`: 53 + Templates are evaluated using [Liquid](https://liquidjs.com). The following 54 + variables are available: 55 55 56 - - `it.payload`: The request body. For `contentType: json`, this is the parsed 56 + - `payload`: The request body. For `contentType: json`, this is the parsed 57 57 JSON value. 58 - - `it.headers`: The request headers as a [`Headers`](https://developer.mozilla.org/en-US/docs/Web/API/Headers) object. 59 - - `it.query`: The query string parameters as a [`URLSearchParams`](https://developer.mozilla.org/en-US/docs/Web/API/URLSearchParams) object. 58 + - `headers`: The request headers as a plain object with lowercase keys 59 + (e.g. `{{ headers["x-my-header"] }}`). 60 + - `query`: The query string parameters as a plain object 61 + (e.g. `{{ query.foo }}`). 62 + 63 + Use `{{ expression }}` to interpolate values and `{% if %}...{% endif %}` for 64 + conditionals. 60 65 61 66 ## Usage 62 67 ··· 129 134 130 135 ## Template body 131 136 132 - Below the frontmatter is an eta template (https://eta.js.org). Write it as a 133 - natural language prompt for the LLM that will process the webhook. The 134 - following are available on `it`: 137 + Below the frontmatter is a Liquid template (https://liquidjs.com). Write it as 138 + a natural language prompt for the LLM that will process the webhook. The 139 + following variables are available: 135 140 136 - - `it.payload` — the request body (parsed JSON for `contentType: json`) 137 - - `it.headers` — request headers as a Headers object (`it.headers.get("X-Foo")`) 138 - - `it.query` — query string as a URLSearchParams object (`it.query.get("foo")`) 141 + - `payload` — the request body (parsed JSON for `contentType: json`) 142 + - `headers` — request headers as a plain object with lowercase keys (e.g. `{{ headers["x-my-header"] }}`) 143 + - `query` — query string as a plain object (e.g. `{{ query.foo }}`) 139 144 140 - Use `<%= expression %>` to interpolate values into the prompt. 145 + Use `{{ expression }}` to interpolate values and `{% if %}...{% endif %}` for 146 + conditionals. 141 147 142 148 ## Task 143 149