Icecream · A notation for intent
A sweeter way
to build.
Readable intent.
Explicit composition.
Compose readable documents, bring your data, and project the text your application needs.
Icecream combines an icedoc with a data model to produce a quote, a JSON request, an AI prompt, or configuration. Your application decides what to do with the result.
Readable
Keep text, substitutions and conditional branches together in a document people can review.
Composable
Capture reusable text and include named documents with an explicit model.
Focused
The .NET library renders text. Service calls, validation and permissions belong to the host.
Icedoc in. Projection out.
Capture readable instructions, substitute a topic, and escape the text for JSON. This output is rendered by the library used by this website.
Data model
{"Topic":"rainwater collection"}
Icedoc
<{#} set(#system)
Explain clearly. Return a JSON object.
{#}>
<{#} set(#user)
Explain <{Topic}>.
{#}>
{
"type": "gpt.prompt",
"system": "<{#system | jsonString}>",
"user": "<{#user | jsonString}>"
}Rendered output
{
"type": "gpt.prompt",
"system": "Explain clearly. Return a JSON object.\n",
"user": "Explain rainwater collection.\n"
}No AI service is called. gpt.prompt is a convention for the consuming application.
The current C# implementation is the source of truth. The reference records both supported behaviour and known limitations.