Skip to content

Commit e36b0b1

Browse files
committed
Add metadata query export to examples and generate .md output files
1 parent 3bd72d8 commit e36b0b1

8 files changed

Lines changed: 199 additions & 5 deletions

File tree

examples/basic.md

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
# Prompt: reply-to-ticket
2+
3+
**Version:** 1.0.0
4+
5+
## Role
6+
You are a customer support agent.
7+
8+
## Context: support-ctx
9+
| Key | Value |
10+
| --- | ----- |
11+
| domain | Customer support |
12+
| tone | Professional but friendly |
13+
14+
## Constraints
15+
1. Keep responses under 150 words.
16+
2. Never promise refunds without manager approval.
17+
18+
## Steps
19+
1. Read the ticket.
20+
2. Draft a reply.
21+
3. Check tone against guidelines.
22+
23+
## Inputs
24+
| Name | Type | Description |
25+
| ---- | ---- | ----------- |
26+
| ticket | string | Raw ticket text |
27+
28+
## Output Schema: reply-schema
29+
| Field | Type | Description |
30+
| ----- | ---- | ----------- |
31+
| response | string | The reply text |
32+
| tone | enum(formal\|casual) | Detected tone |
33+
| escalate | bool | Whether to escalate |
34+
35+
## Checkpoint: tone-check
36+
| Property | Value |
37+
| -------- | ----- |
38+
| after-step | 2 |
39+
| assertion | Response tone matches the context tone guideline |
40+
| on-fail | continue |

examples/basic.typ

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -48,5 +48,11 @@
4848
checkpoints: (my-checkpoint,),
4949
)
5050

51-
// Render to Markdown and display
52-
#raw(render-prompt(my-prompt), lang: "markdown")
51+
// Render to Markdown
52+
#let md = render-prompt(my-prompt)
53+
54+
// Display as PDF (typst compile)
55+
#raw(md, lang: "markdown")
56+
57+
// Export as raw Markdown (typst query --root . examples/basic.typ "<output>" --field value --one)
58+
#metadata(md) <output>

examples/e2e-pipeline.md

Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
# Prompt: ocd.gateway
2+
3+
**Version:** 0.2.0
4+
5+
## Role
6+
Configure Caddy reverse proxy for OpenClaw TLS termination
7+
8+
## Context: gateway-ctx
9+
| Key | Value |
10+
| --- | ----- |
11+
| proxy-target | 127.0.0.1:18789 (OpenClaw gateway, loopback-only) |
12+
| tls-provider | Let's Encrypt via Caddy automatic HTTPS |
13+
| webhook-port | 8787 (loopback-only, proxied for Telegram webhooks) |
14+
15+
## Constraints
16+
1. TLS certificates must be valid and auto-renewed
17+
2. Proxy timeout must not exceed 30 seconds
18+
3. Gateway port 18789 must never be exposed externally
19+
20+
## Steps
21+
1. Enable Caddy service with systemd
22+
2. Configure reverse proxy rules for gateway and webhook endpoints
23+
3. Verify TLS certificate issuance for the configured domain
24+
25+
## Inputs
26+
| Name | Type | Description |
27+
| ---- | ---- | ----------- |
28+
| domain | string | Public domain for TLS certificate (e.g. gateway.example.com) |
29+
| webhook-path | string | URL path for Telegram webhook endpoint |
30+
31+
## Output Schema: gateway-output
32+
| Field | Type | Description |
33+
| ----- | ---- | ----------- |
34+
| tls-active | bool | Whether TLS is active and certificate is valid |
35+
| proxy-status | enum(healthy\|degraded\|down) | Current reverse proxy health status |
36+
37+
## Checkpoint: verify-loopback
38+
| Property | Value |
39+
| -------- | ----- |
40+
| after-step | 2 |
41+
| assertion | Gateway port 18789 is not in allowedTCPPorts |
42+
| on-fail | halt |
43+
44+
## Checkpoint: verify-tls
45+
| Property | Value |
46+
| -------- | ----- |
47+
| after-step | 3 |
48+
| assertion | TLS certificate is valid and not expiring within 7 days |
49+
| on-fail | halt |

examples/e2e-pipeline.typ

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,12 @@
5353
// This is the final artifact — canonical Markdown suitable for
5454
// CLAUDE.md, AGENTS.md, or any agent context file.
5555

56+
#let md = render-prompt(result.prompt)
57+
5658
[== Rendered Prompt]
5759

58-
#raw(render-prompt(result.prompt), lang: "markdown")
60+
// Display as PDF (typst compile)
61+
#raw(md, lang: "markdown")
62+
63+
// Export as raw Markdown (typst query --root . examples/e2e-pipeline.typ "<output>" --field value --one)
64+
#metadata(md) <output>

examples/helpers.md

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
# Prompt: reply-to-ticket
2+
3+
**Version:** 1.0.0
4+
5+
## Role
6+
You are a customer support agent.
7+
8+
## Context: support-ctx
9+
| Key | Value |
10+
| --- | ----- |
11+
| domain | Customer support |
12+
| tone | Professional but friendly |
13+
14+
## Constraints
15+
1. Keep responses under 150 words.
16+
2. Never promise refunds without manager approval.
17+
18+
## Steps
19+
1. Read the ticket.
20+
2. Draft a reply.
21+
3. Check tone against guidelines.
22+
23+
## Inputs
24+
| Name | Type | Description |
25+
| ---- | ---- | ----------- |
26+
| ticket | string | Raw ticket text |
27+
28+
## Output Schema: reply-schema
29+
| Field | Type | Description |
30+
| ----- | ---- | ----------- |
31+
| response | string | The reply text |
32+
| tone | enum(formal\|casual) | Detected tone |
33+
| escalate | bool | Whether to escalate |
34+
35+
## Checkpoint: tone-check
36+
| Property | Value |
37+
| -------- | ----- |
38+
| after-step | 2 |
39+
| assertion | Response tone matches the context tone guideline |
40+
| on-fail | continue |

examples/helpers.typ

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,4 +40,11 @@
4040
checkpoints: (my-checkpoint,),
4141
)
4242

43-
#raw(render-prompt(my-prompt), lang: "markdown")
43+
// Render to Markdown
44+
#let md = render-prompt(my-prompt)
45+
46+
// Display as PDF (typst compile)
47+
#raw(md, lang: "markdown")
48+
49+
// Export as raw Markdown (typst query --root . examples/helpers.typ "<output>" --field value --one)
50+
#metadata(md) <output>

examples/toml-ingestion.md

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
# Prompt: reply-to-ticket
2+
3+
**Version:** 1.0.0
4+
5+
## Role
6+
You are a customer support agent.
7+
8+
## Context: support-ctx
9+
| Key | Value |
10+
| --- | ----- |
11+
| domain | Customer support |
12+
| tone | Professional but friendly |
13+
14+
## Constraints
15+
1. Keep responses under 150 words.
16+
2. Never promise refunds without manager approval.
17+
18+
## Steps
19+
1. Read the ticket.
20+
2. Draft a reply.
21+
3. Check tone against guidelines.
22+
23+
## Inputs
24+
| Name | Type | Description |
25+
| ---- | ---- | ----------- |
26+
| ticket | string | Raw ticket text |
27+
28+
## Output Schema: reply-schema
29+
| Field | Type | Description |
30+
| ----- | ---- | ----------- |
31+
| response | string | The reply text |
32+
| tone | enum(formal\|casual) | Detected tone |
33+
| escalate | bool | Whether to escalate |
34+
35+
## Checkpoint: tone-check
36+
| Property | Value |
37+
| -------- | ----- |
38+
| after-step | 2 |
39+
| assertion | Response tone matches the context tone guideline |
40+
| on-fail | continue |

examples/toml-ingestion.typ

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,4 +7,10 @@
77

88
// from-toml returns a dict. When all required sections are present,
99
// the "prompt" key holds the assembled prompt dict.
10-
#raw(render-prompt(result.prompt), lang: "markdown")
10+
#let md = render-prompt(result.prompt)
11+
12+
// Display as PDF (typst compile)
13+
#raw(md, lang: "markdown")
14+
15+
// Export as raw Markdown (typst query --root . examples/toml-ingestion.typ "<output>" --field value --one)
16+
#metadata(md) <output>

0 commit comments

Comments
 (0)