Icecream.ink

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.

Icecream: purple and pink scoops surrounding a hash above a golden waffle cone.
Data model+Icedoc→ProjectionEngine→Text output

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.

Edit this example

The current C# implementation is the source of truth. The reference records both supported behaviour and known limitations.