Skip to content
Agentmart
Submit a tool

sre-forms

Form development reference for Sentinel SRE projects.

Skill by ndx-au

IndexedMIT
Write a review

Install

Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.

npx agentmarket install skill/ndx-au-sre-forms

Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.

Get the weekly diff

The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.

We use your email only for this newsletter. Privacy

About

Form development reference for Sentinel SRE projects. Use this skill when creating or editing form YAML files (fm/ directories), defining field types and validation rules, writing Go text/template responses (tp/ directories), configuring the template pipeline (go-tpl-lua-before/after, variables), wiring forms to flows via events.yaml, accessing form data in Lua (ctx.fm, ctx.data), or working with form cache and page embedding.

Use cases: data, ml, writing

No reviews yet. Installed it? Reviews come from verified installers only. How reviews work

Permissions

What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.

Tools
No tools found
Secrets
None asked for
Install scripts
None found

Network hosts it talks to 1

  • codeload.github.com · found in install command

Files it touches

  • ~/.claude/skills/sre-forms

What's inside

Skill name
sre-forms
Description
Form development reference for Sentinel SRE projects. Use this skill when creating or editing form YAML files (fm/ directories), defining field types and validation rules, writing Go text/template responses (tp/ directories), configuring the template pipeline (go-tpl-lua-before/after, variables), wiring forms to flows via events.yaml, accessing form data in Lua (ctx.fm, ctx.data), or working with form cache and page embedding.
License
MIT
Instructions
217 lines in SKILL.md · view on GitHub

Files (1)

  • SKILL.md

SKILL.md (first lines)

# Form YAML, Field Types, Templates, Events

## File Locations

| File | Purpose |
|------|---------|
| `{ns}.{name}/fm/{name}.yaml` | Form definition |
| `{ns}.{name}/tp/{template}.gohtml` | Go text/template for response |
| `{ns}.{name}/events.yaml` | Wire form submissions to flows |

Stub is inferred from the kit and filename: `kf.{ns}.{name}.{filename-without-ext}`

---

## Form YAML Schema

```yaml
name: "Contact Form"
description: "Contact us"
stub: "kf.sn.mykit.contact"     # auto-inferred if omitted
password: "bcrypt_hash"          # optional: password-protect the form
public: true                     # true = no auth required (default: false)
static-cache-ttl: 0              # 0=forever, -1=no cache, N=seconds
on-submit: "thankyou"            # template name to render on submit

fields:
  - name: email
    label: "Email Address"
    type: email
    required: true
    placeholder: "you@example.com"
    validation:
      pattern: "^[^@]+@[^@]+$"

  - name: message
    label: "Message"
    type: textarea
    required: true
    validation:
      min_length: 10
      max_length: 2000

  - name: age
    label: "Age"
    type: number
    validation:
      min_value: 18
      max_value: 120

  - name: attachment
    label: "File"
    type: file
    validation:
      max_size_mb: 10
      mime_types: ["image/png", "image/jpeg", "application/pdf"]

variables:
  greeting: |
    local name = ctx.data and ctx.data.name or "visitor"
    return "Hello, " .. name

go-tpl-lua-before: |
  -- Lua code run before template render
  -- Can call ctx.get/set, sn.db.query, etc.

go-tpl-lua-after: |
  -- Lua code run after template render
```

---

## Field Types

| Type | Go type | Notes |
|------|---------|-------|
| `text` | string | |
| `email` | string | HTML5 email validation |
| `number` | float64 | coerced from string |
| `password` | string | not echoed in templates |
| `textarea` | string | multiline |
| `select` | string | requires `options` list |
| `multiselect` | []string | multiple values |
| `checkbox` | bool | true if checked |
| `date` | string | ISO 8601 |
| `file` | string | upload ID (UUID) |
| `hidden` | string | not shown in form |

### Field with Options
```yaml
- name: priority
  label: "Priority"
  type: select
  options:
    - value: low
      label: "Low"
    - value: high
      label: "High"
  default: low
```

---

## Validation Schema

```yaml
validation:
  pattern: "^[a-z]+$"       # regex
  min_length: 1
  max_length: 500
  min_value: 0              # numeric fields
  max_value: 100
  max_size_mb: 5            # file fields
  mime_types:               # file fields
    - "image/png"
    - "image/jpeg"
```

Server-side validation runs on submit. `ValidationJSON` is available in templates for client-side hints.

From ndx-au/sre-init, MIT.

Signals

Stars
0
Forks
0
Open issues
0
Last commit (this folder)
Jun 16, 2026 (4 months ago)

From GitHub (fetched Oct 24, 2026).

Details

License
MIT
First seen
Oct 24, 2026
Last checked
Oct 24, 2026

More from ndx-au

Cite this page

sre-forms skill. Agent Mart. https://agentmart.dev/skills/ndx-au-sre-forms (last updated 2026-10-24)