Skip to main content

Prompt Delivery

Manicode delivers prompts to your team through a dedicated Git repository, your prompt repository. When new or improved prompts are released, Manicode opens an update pull request there and merges it into the main branch.

How It Works​

  1. Manicode publishes a release.
  2. Manicode delivers it to your prompt repo. It opens an update PR listing every prompt added, updated, or removed, then merges it into the main branch.
  3. You pull and copy. Pull the main branch, read the PR description for what changed, and copy the updated prompts you use into your code. See Quick Start for adding a prompt to your tool.

What an Update PR Contains​

  • Title: Update prompts to YYYY.MM.DD-HHMM, the release being delivered
  • Branch: prompts/YYYY.MM.DD-HHMM
  • Description: the release version and source commits, followed by the prompts added, updated, and removed, listed by id (for example python/django/5.2)

Your Prompt Repo​

Your prompt repo has this layout:

prompts/
├── VERSION which release this is
├── index.json every prompt's id, name, version, and last review date
└── <group>/<technology>/<version>/
└── prompt.md the prompt for that technology version
  • Prompt files — One prompt.md per technology per version, for example prompts/python/django/5.2/prompt.md. See Prompt Library for what a prompt contains. Groups are language ecosystems (python, js, jvm, dotnet, go, php, ruby, rust, swift, dart, beam, native) plus infra, cloud, policy, spec, and shell for technologies without one host language.
  • index.json — A list of every prompt in the release. Use it to look up a prompt's path, or to check when it was last reviewed.
  • A VERSION file — Metadata recording which release this is and where it came from.

A prompt's id is its path without the file name, for example python/django/5.2. Each supported version of a technology is a separate prompt, so Django 5.2 and Django 6.0 each have their own file.

Here is an index.json entry:

"python/django/5.2": {
"uuid": "c0827183-bb14-4354-8856-76a103e16ef8",
"name": "Django",
"version": "5.2",
"last_reviewed": "2026-09-29",
"path": "python/django/5.2/prompt.md"
}

The uuid stays the same for a given prompt across releases, so you can use it to join with your own records.

Finding a Prompt​

To find the prompt for a technology and see which versions are available:

jq -r '.prompts | to_entries[] | select(.value.name == "Django") | "\(.key)  reviewed \(.value.last_reviewed)"' prompts/index.json
python/django/5.2  reviewed 2026-09-29
python/django/6.0 reviewed 2026-09-12
python/django/6.1 reviewed 2026-09-12

Use the version that matches what your project runs. When you upgrade a framework, switch to that version's prompt. If a release removes a prompt you use, search the same way for the version that replaces it.

Versioning​

Releases use a date-based format: YYYY.MM.DD-HHMM in UTC (e.g., 2026.10.07-1430). A later date means a newer release.

The VERSION file included in every release contains:

version: 2026.10.07-1430
source_sha: 0559d73b9d821f8abc9da967623fe7cf2ec2eafc
context_sha: aab803f1d43c5090e86fa7cef452b6683531e04b
aegis_commit: 71093f23bfbee22378fb69c39d8c1b8473bc1216
released_at: 2026-10-07T14:30:00Z
FieldDescription
versionDate-based version identifier
source_sha, context_sha, aegis_commitThe Manicode source commits that produced this release. Include them when you report an issue with a prompt.
released_atUTC timestamp of when the release was created