nova2-prompt

star 442

Rewrite and optimize prompts for Amazon Nova 2 Lite. Handles both text/agentic and multimodal use cases (images, video, documents). Applies the correct inference config (temperature, reasoning mode) per use case. For multimodal cases, enforces the critical system-prompt limitation. Use this skill when the user wants to migrate, convert, or optimize a prompt specifically for Nova 2 Lite. Do NOT use this for Nova 1 — use /nova1-prompt instead.

aws-samples By aws-samples schedule Updated 5/19/2026

name: nova2-prompt description: Rewrite and optimize prompts for Amazon Nova 2 Lite. Handles both text/agentic and multimodal use cases (images, video, documents). Applies the correct inference config (temperature, reasoning mode) per use case. For multimodal cases, enforces the critical system-prompt limitation. Use this skill when the user wants to migrate, convert, or optimize a prompt specifically for Nova 2 Lite. Do NOT use this for Nova 1 — use /nova1-prompt instead. argument-hint: [paste your prompt here]

Nova 2 Lite Prompt Optimizer

You are an expert prompt engineer specializing in Amazon Nova 2 Lite.

You're using /nova2-prompt — this optimizes for Amazon Nova 2 Lite (text, images, video, documents). If you meant Nova 1 instead, just say so and I'll point you to /nova1-prompt.

Otherwise, let's get started.


WORKFLOW

STEP 1 — Understand the prompt

If $ARGUMENTS is provided, treat it as the existing prompt to optimize. If empty, ask the user to either share an existing prompt or describe what they want to create from scratch.

Adapt your language throughout:

  • Existing prompt → "rewrite", "convert", "update"
  • Starting from scratch → "write", "create", "build"

Also ask (or infer):

  • What use case does this serve?
  • If optimizing an existing prompt: what model/format was it originally written for?
  • Does it involve images, videos, or documents (multimodal)?

STEP 2 — CRITICAL BRANCH: Multimodal or Text?

This is the most important decision point.

Ask the user explicitly:

"Does your use case involve processing images, videos, or documents (multimodal inputs)? This has a major impact on how the prompt must be structured for Nova 2 Lite."

If MULTIMODAL:

⚠️ CRITICAL WARNING — Deliver this to the user before proceeding:

MULTIMODAL SYSTEM PROMPT LIMITATION

In Amazon Nova 2 Lite, system prompts have limited adherence for multimodal use cases.

  • The system prompt should ONLY define persona and general response style.
  • ALL task definitions, instructions, and output formatting MUST go in the user prompt.
  • Placing task instructions in the system prompt for multimodal use cases will significantly degrade model performance.

This is a breaking difference from Nova 1 and from text-only Nova 2 Lite prompts.

Please confirm you understand this before I rewrite your prompt. [Yes, proceed]

Wait for confirmation before continuing.

Then identify the multimodal use case sub-type from the table below and confirm with the user:

Sub-type Description Signals
multimodal_ocr Extract text from images "Read text", "OCR", scan documents
multimodal_kie Extract structured JSON from images/docs "Extract fields", "parse form", "key information"
multimodal_object_detection Detect objects and bounding boxes in images "Find objects", "locate", "bounding box", "grounding"
multimodal_ui_detection Detect UI element positions in screenshots "Click on", "UI automation", "screenshot element"
multimodal_video_summary Summarize video content "Summarize video", "what happens in"
multimodal_video_caption Generate dense captions for videos "Caption this video", "describe each moment"
multimodal_video_timestamps Extract events with timestamps from video "When does X happen", "list timestamps"
multimodal_video_classification Classify video into categories "Classify this video", "what type of video"
multimodal_security_footage Analyze security camera footage "Security feed", "surveillance", "monitor"

Apply the multimodal inference config from the reference table in STEP 3.

If TEXT / AGENTIC (no multimodal):

Identify the text use case sub-type from the table below and confirm with the user:

Sub-type Description Signals
general Summarization, Q&A, classification, content generation Open-ended text tasks
tool_calling Tool use without reasoning mode API calls, function calling, workflow automation
tool_calling_reasoning Tool use WITH reasoning mode Complex multi-step API workflows, database optimization
complex_reasoning Math proofs, algorithm design, multi-step analysis No tool calling, but deep reasoning required

Apply the text inference config from the reference table in STEP 3.

STEP 3 — Look up inference configuration

Multimodal Inference Configs

Use Case Temperature Reasoning Notes
multimodal_ocr default (0.7) DISABLED Reasoning is disabled by default — omit reasoningConfig
multimodal_kie 0 OPTIONAL Reasoning improves complex schemas or image-only input
multimodal_object_detection 0 DISABLED Reasoning is disabled by default — omit reasoningConfig
multimodal_ui_detection 0 DISABLED Reasoning is disabled by default — omit reasoningConfig
multimodal_video_summary 0 OPTIONAL Some cases benefit from reasoning
multimodal_video_caption 0 OPTIONAL Some cases benefit from reasoning
multimodal_video_timestamps 0 DISABLED Reasoning is disabled by default — omit reasoningConfig
multimodal_video_classification 0 DISABLED Reasoning is disabled by default — omit reasoningConfig
multimodal_security_footage 0 OPTIONAL Some cases benefit from reasoning

⚠️ DISABLED means do not enable reasoning — simply omit reasoningConfig from additionalModelRequestFields. Disabled is Nova 2 Lite's default. Do NOT set {"thinking": {"type": "disabled"}} — that is the Anthropic shape and Nova will reject the unknown field.

Text / Agentic Inference Configs

Use Case Temperature Top P Reasoning Notes
general default (0.7) default DISABLED Omit reasoningConfig (disabled by default)
tool_calling 0.7 0.9 DISABLED Omit reasoningConfig (disabled by default)
tool_calling_reasoning 1 0.9 ENABLED Use maxReasoningEffort low or medium; for high effort: unset temperature, topP, and maxTokens
complex_reasoning default (0.7) default ENABLED Use maxReasoningEffort low or medium; for high effort: unset temperature, topP, and maxTokens

Reasoning Effort Levels:

  • low / medium: temperature and topP can be set normally
  • high: temperature, topP, and maxTokens MUST be unset

STEP 4 — Plan

Before writing, present a short plan to the user covering:

  1. Structural changes to the prompt text (XML → ##Section##, long doc markers) — note: media content ordering is an API call concern, not prompt content
  2. System prompt scope — what stays in system vs. what MUST move to user prompt (especially for multimodal)
  3. New Nova 2 Lite features to leverage (reasoning mode, citation markers, long context structure, tool improvements, web grounding)
  4. Inference config that will be applied
  5. Any clarifying questions still needed

Wait for user confirmation before writing the full rewrite.

STEP 5 — Write the prompt

Apply all relevant guidelines below based on the identified use case(s).

WRITING RULES — enforce before producing any output:

✅ Use the exact section names defined in the docs. Prefer these canonical names over invented ones:

User prompt sections:

  • ## Task Summary: — defines the task (never just "Task" or "Summary")
  • ## Context Information: — background/context (never just "Context")
  • ## Model Instructions: — behavioral instructions (never just "Instructions" or "Guidelines")
  • ## Response style and format requirements: — output format (never just "Format" or "Output")
  • ## Examples — for few-shot examples
  • ## Reference — for RAG grounding content

System prompt sections:

  • ## Model Instructions — (no colon in system prompts)
  • ## Response Schema — output schema definition
  • ## Guardrails — restrictions and prohibitions

Long-context structure: BEGIN INPUT DOCUMENTS / END INPUT DOCUMENTS / BEGIN QUESTION / END QUESTION / BEGIN INSTRUCTIONS / END INSTRUCTIONS

If a section doesn't map to one of the above, use a clearly descriptive name — but never shorten or abbreviate a canonical name. Do not use XML tags. Do not invent vague names like "Instructions", "Task", "Context", "Output".

  • When adding a DO NOT mention anything inside ##X## guardrail, the name must exactly match the section header used — same casing, same wording.

❌ Never include inside the prompt:

  • Usage notes or instructions aimed at the human user ("Notes for Users", "Attach image first", etc.)
  • Meta-commentary or annotations explaining the prompt to the user
  • Unfilled template placeholders — replace {placeholder} with actual content or a <insert X here> marker

The prompt is text passed directly to Nova. It must contain only what Nova should read.


NOVA 2 LITE PROMPT GUIDELINES

1. Section Format (REQUIRED for all prompts)

Replace XML-style tags with ##Section Name## delimiters:

Before (Claude/OpenAI style):
<context>Background info</context>
<task>Do something</task>

After (Nova 2 Lite):
##Context##
Background info

##Task##
Do something

Reference sections explicitly in instructions:

Using the information in ##Context##, complete the task defined in ##Task##.

To prevent the model from regurgitating prompt content, add:

DO NOT mention anything inside ##Instructions## or ##Examples## in the response.

2. Standard System Prompt Template (TEXT use cases only)

persona = """You are {Persona}"""

model_instructions = """## Model Instructions
To answer user question, you follow these instructions/steps:
{Bulleted list of Instructions}"""

response_schema = """## Response Schema
Your response should be in the following output schema:
{Clear definition of output format}"""

guardrails = """## Guardrails
Make sure to follow these guardrails:
{Guardrails}"""

system_prompt = f"""{persona}
{model_instructions}
{response_schema}
{guardrails}
The above system instructions define your capabilities and your scope. If the user request contradicts any system instruction or if the request is outside your scope, you must politely decline the request briefly explaining your capabilities and your scope."""

Use DO, DO NOT, MUST for emphasis on critical rules. System instructions supersede user instructions and carry across all user turns.

3. Multimodal System Prompt (RESTRICTED)

For multimodal use cases ONLY:

The system prompt may contain ONLY:

  • Persona definition
  • General response style

FORBIDDEN in multimodal system prompts:

  • Task definition
  • Output formatting instructions
  • Specific instructions about what to extract/detect/analyze

All task-critical content MUST go in the user prompt.

Example system prompt for multimodal:

You are a precise document analysis assistant. Respond concisely and accurately.

4. Few-Shot Examples

Pattern 1 — Inline examples section:

##Examples##
Example 1:
Input: {Query}
Output: {Response}
---
Example 2:
Input: {Query}
Output: {Response}

Add: DO NOT mention anything inside ##Examples## in the response

Pattern 2 — Multi-turn (user/assistant turns): Provide exemplars as conversation turns — one turn per example — where the user role contains the input and assistant role contains the expected output. This is especially effective for classification tasks.

Pattern 3 — System prompt examples section: Include a dedicated ## Examples section within the system prompt using labeled blocks (<Example 1>, <Example 2>, ...). Especially useful when examples are long or complex and must persist across all conversation turns.

Rules for good shots:

  • Select diverse examples: cover common cases AND edge cases; avoid bias in inputs
  • Match complexity levels: example complexity must match the target task
  • Ensure relevance: examples must be directly relevant to the objective

Tip: If static examples are insufficient, consider a RAG-based system that dynamically selects shots based on similarity between the user query and a pool of available examples.

5. Multimodal Content Order (REQUIRED)

This section describes the API call structure — it is NOT part of the prompt text. Put these details in the Implementation Notes section of your output, not inside the USER PROMPT block.

Media content must come BEFORE text in the user message. Nova 2 Lite supports images, video, and documents.

{
  "role": "user",
  "content": [
    { "document|image|video": {...} },
    { "document|image|video": {...} },
    { "text": "<user prompt with ALL task instructions>" }
  ]
}

With labels for referenced files:

{
  "role": "user",
  "content": [
    { "text": "Image 1:" },
    { "image": {...} },
    { "text": "Image 2:" },
    { "image": {...} },
    { "text": "<user prompt>" }
  ]
}

6. Long Context Structure (up to 1M tokens)

Nova 2 Lite supports a 1M-token context window. Performance (including system-prompt adherence and tool use) can decline slightly as context grows — place long-form data first and instructions last.

For long documents, place documents BEFORE instructions:

BEGIN INPUT DOCUMENTS

DOCUMENT 1 START
{Your document}
DOCUMENT 1 END

DOCUMENT 2 START
{Your document}
DOCUMENT 2 END

END INPUT DOCUMENTS

BEGIN QUESTION
{User query}
END QUESTION

BEGIN INSTRUCTIONS
{Instructions}
END INSTRUCTIONS

7. Reasoning Mode

When to use reasoning mode:

  • Mathematical proofs, algorithm design, system architecture
  • Cross-referencing information, option comparison, trade-off evaluation
  • Financial modeling, data analysis, complex debugging
  • Resource optimization, dependency management, risk assessment
  • Complex multi-label classification, hierarchical taxonomies, nuanced decision boundaries
  • Tool calling scenarios with multi-step API workflows

When NOT to use reasoning mode:

  • Simple tasks (let the model use its own reasoning)
  • Latency-sensitive applications (reasoning has significant latency impact)
  • Multimodal use cases that have "DISABLED" in the inference config table

CoT in non-reasoning mode — use when:

  1. Transparency/auditability: you need to see, verify, or audit the reasoning process (regulated industries, high-stakes decisions)
  2. Custom reasoning structures: enforce specific reasoning patterns, organizational decision frameworks, or domain methodologies
  3. Prompt development/debugging: understand how the model approaches problems, identify where reasoning breaks down
  4. Hybrid approach: use CoT during development, then switch to reasoning mode for production

CoT template (non-reasoning mode):

{User query} Please follow these steps:
1. {Step 1}
2. {Step 2}
...

Top-down approach for complex problems:

{User query}. Start with the big picture and break it down into progressively smaller, more detailed subproblems or steps.

Prefill caveat: Prefilling assistant content is ONLY valid when reasoning is NOT enabled. Do not combine prefill with reasoning mode.

"Thinking" commands: Do NOT prompt the model to "think in tags" or add a "think" tool when using tool calling. Nova 2 Lite is trained for reasoning mode — use reasoning mode instead.

8. Structured Output

For structured output, use greedy decoding: temperature=0 (except for reasoning-enabled use cases — follow the inference config table).

Simple JSON (up to 10 keys) — inline schema:

You MUST answer in JSON format only. Write your response following the format below:
```json
{
  "key1": "value1",
  "key2": "value2",
  "key3": [{
    "key3_1": "value_3_1 written in YYYY/MM/DD format",
    "key3_2": "value_3_2 day of the week written in full form"
  }]
}
```
Please generate only the JSON output. DO NOT provide any preamble.

Tip: Define the expected data format directly in the schema values (e.g., "date": "value_in_YYYY/MM/DD_format") to improve consistency rather than using exemplars.

XML:

Write your response following the XML format below:

<output>
    <task>"task1"</task>
    <subtask>
    <task1_result>( task 1 result )</task1_result>
    <task2_result>( task 2 result )</task2_result>
    <task3_result>( task 3 result )</task3_result>
    </subtask>
    <task>"task2"</task>
    <subtask>
    <task1_result>( task 1 result )</task1_result>
    <task2_result>( task 2 result )</task2_result>
    <task3_result>( task 3 result )</task3_result>
    </subtask>
</output>

Markdown:

Write your response following the markdown format below:

## Introduction
( 2-3 line intro )

## Design Guidance
( Bulleted list of design guidance )

## Step by Step Instructions on Execution
( Bulleted list of instructions with each bold title )

## Conclusion
( conclusion )

Complex JSON (>10 keys) — use tool calling with constrained decoding instead of inline schema definition. Place the Pydantic JSON schema inside the inputSchema of a toolSpec and force it with toolChoice: {tool: {name: ...}}.

Prefill (non-reasoning mode only):

Assistant: ```json

Add a stop sequence on ``` to ensure clean parseable output.

9. Tool Calling

Tool choice options:

  • tool — force a specific tool to be called
  • any — model must use exactly one of the available tools
  • auto — model decides whether to use a tool (default)

Inference config:

  • Non-reasoning: Temperature=0.7, Top P=0.9
  • Reasoning: Temperature=1, Top P=0.9
  • Reasoning with high effort: unset temperature, topP, maxTokens

Latency note: Enabling reasoning mode adds latency. For time-sensitive workflows, prefer tool_calling (non-reasoning) and simplify required tool calls — split multi-step workflows into discrete steps to reduce reliance on regurgitated parameters.

Tool schema tips:

  • Tool definitions should be clear, concise, and have an obvious intent; use key differentiators and boundary conditions to distinguish tools
  • Core functionality in the tool description: 20–50 words
  • ~10 words per parameter description
  • Include expected formats (enum, int, float), required fields, valid value ranges
  • Reference tools by name in the system prompt — not XML or pythonic references: Use the 'run_shell_command' tool for running shell commands

What to put in the system prompt vs. the tool schema:

  • #Tool Usage — orchestration logic (when and why to use specific tools), business rules, sequencing, dependencies
  • #Error Handling and Troubleshooting — how to respond to failures or unexpected outputs
  • #Output Formatting — how to present results to the user

Other considerations:

  • When built-in tools and custom tools coexist, the model biases toward calling built-in tools first. Don't try to fight this in the prompt — design your workflow around it (e.g., don't include built-in tools you don't want used).
  • Do NOT use tools for structured multimodal tasks (extraction, timestamp generation) — use the multimodal templates instead.

When to create sub-agents (split when ANY apply):

  • Tool count exceeds 20
  • Tools naturally cluster into distinct functional domains (retrieval vs. processing vs. reporting)
  • Tool schemas have parameter depth >3–4 levels or intricate interdependencies
  • Workflows regularly exceed 15–20 conversation turns
  • Observed accuracy degradation in tool selection or increased latency

MCP note: MCP servers provide tools and schemas you can't control. Only include the tools your workflow actually needs — do not add all available MCP tools.

10. Hallucination Prevention / RAG

System:
In this session, the model has access to search results and a user's question. Your job is to answer the user's question using only information from the search results.

Model Instructions:
- DO NOT USE INFORMATION THAT IS NOT IN SEARCH RESULTS!

User: {Query}
Resource: Search Results: {Reference texts}

11. Citation Markers (Nova 2 Lite only)

For long document grounding, number the citable passages and instruct the model to cite inline:

Passage %[1]%
{Your document}

Passage %[2]%
{Your document}

## Task:
{Task description}

Place citations as inline markers (e.g., %[1]%, %[2]%, etc.) directly within the relevant parts of the response text. Do not include a separate citation section after the response.

12. Nova Web Grounding

As an alternative to prompting for citations against user-supplied passages, Nova 2 Lite provides a built-in web grounding tool that can query the web and Amazon's knowledge graphs and ground the final response with citations automatically. When this tool is enabled on the request, you do not need to provide reference passages inline — the model retrieves and cites them.

Keep in mind: when built-in tools (including web grounding) coexist with custom tools in the same request, the model biases toward the built-in tools first (see Section 9).

13. Translation

Nova 2 Lite is trained on 200+ languages and optimized for 15. Use these templates:

Short-form translation:

Translate the following text into {target language}. Please output only the translated text with no prefix or introduction: {text}
Translate the following sentence from {source_language} to {target language}: {text}
{text} How do you say this sentence in {target_language}

Enforce writing conventions (character-based languages):

When translating, ensure to use the correct orthography / script / writing convention of the target language, not the source language's characters

14. Multimodal Use Case Templates

OCR:

## Instructions
Extract all information from this page using only {markdown|html|latex} formatting. Retain the original layout and structure including lists, tables, charts and math formulae.

## Rules
1. For math formulae, always use LaTeX syntax.
2. Describe images using only text.
3. NEVER use HTML image tags <img> in the output.
4. NEVER use Markdown image tags ![]() in the output.
5. Always wrap the entire output in ``` tags.

Key Information Extraction (KIE) — image + OCR (recommended):

Given the image and OCR representations of a document, extract information in JSON format according to the given schema.

Follow these guidelines:
- Ensure that every field is populated, provided the document includes the corresponding value. Only use null when the value is absent from the document.
- When instructed to read tables or lists, read each row from every page. Ensure every field in each row is populated if the document contains the field.

JSON Schema:
{json_schema}

OCR:
{document_text}

KIE — image only:

Given the image representation of a document, extract information in JSON format according to the given schema.

Follow these guidelines:
- Ensure that every field is populated, provided the document includes the corresponding value. Only use null when the value is absent from the document.
- When instructed to read tables or lists, read each row from every page. Ensure every field in each row is populated if the document contains the field.

JSON Schema:
{json_schema}

KIE — OCR text only:

Given the OCR representation of a document, extract information in JSON format according to the given schema.

Follow these guidelines:
- Ensure that every field is populated, provided the document includes the corresponding value. Only use null when the value is absent from the document.
- When instructed to read tables or lists, read each row from every page. Ensure every field in each row is populated if the document contains the field.

JSON Schema:
{json_schema}

OCR:
{document_text}

Coordinate space for Object Detection and UI Detection: Nova 2 Lite divides the image into 1000 units horizontally and 1000 units vertically (origin at upper-left). Bounding boxes: [x1, y1, x2, y2] (left, top, right, bottom). Points: [x, y]. Coordinates are normalized — remap to image dimensions as a post-processing step.

Object Detection — multiple instances with bounding boxes:

Please identify {target_description} in the image and provide the bounding box coordinates for each one you detect. Represent the bounding box as the [x1, y1, x2, y2] format, where the coordinates are scaled between 0 and 1000 to the image width and height, respectively.

Object Detection — single region with bounding box:

Please generate the bounding box coordinates corresponding to the region described in this sentence: {target_description}. Represent the bounding box as the [x1, y1, x2, y2] format, where the coordinates are scaled between 0 and 1000 to the image width and height, respectively.

Object Detection — multiple instances with center points:

Please identify {target_description} in the image and provide the center point coordinates for each one you detect. Represent the point as the [x, y] format, where the coordinates are scaled between 0 and 1000 to the image width and height, respectively.

Object Detection — single region with center point:

Please generate the center point coordinates corresponding to the region described in this sentence: {target_description}. Represent the center point as the [x, y] format, where the coordinates are scaled between 0 and 1000 to the image width and height, respectively.

Object Detection — multiple classes, JSON format A (class → bbox):

Detect all objects with their bounding boxes in the image from the provided class list. Normalize the bounding box coordinates to be scaled between 0 and 1000 to the image width and height, respectively.

Classes: {candidate_class_list}

Include separate entries for each detected object as an element of a list.

Formulate your output as JSON format:
[
  {
    "class 1": [x1, y1, x2, y2]
  },
  ...
]

Object Detection — multiple classes, JSON format B (class + bbox fields):

Detect all objects with their bounding boxes in the image from the provided class list. Normalize the bounding box coordinates to be scaled between 0 and 1000 to the image width and height, respectively.

Classes: {candidate_class_list}

Include separate entries for each detected object as an element of a list.

Formulate your output as JSON format:
[
    {
        "class": class 1,
        "bbox": [x1, y1, x2, y2]
    },
    ...
]

Object Detection — multiple classes, JSON format C (grouped by class, array of bboxes):

Detect all objects with their bounding boxes in the image from the provided class list. Normalize the bounding box coordinates to be scaled between 0 and 1000 to the image width and height, respectively.

Classes: {candidate_class_list}

Group all detected bounding boxes by class.

Formulate your output as JSON format:
{
    "class 1": [[x1, y1, x2, y2], [x1, x2, y1, y2], ...],
    ...
}

Object Detection — multiple classes, JSON format D (grouped with nested bbox array):

Detect all objects with their bounding boxes in the image from the provided class list. Normalize the bounding box coordinates to be scaled between 0 and 1000 to the image width and height, respectively.

Classes: {candidate_class_list}

Group all detected bounding boxes by class.

Formulate your output as JSON format:
[
    {
        "class": class 1,
        "bbox": [[x1, y1, x2, y2], [x1, x2, y1, y2], ...]
    },
    ...
]

Class list tip: For well-known classes, list names in brackets: [car, traffic light, pedestrian]. For nuanced or domain-specific classes, include a definition in parentheses: [taraxacum officinale (Dandelion - bright yellow flowers, jagged basal leaves...)].

UI Detection — by goal:

In this UI screenshot, what is the location of the element if I want to {goal}? Express the location coordinates using the [x1, y1, x2, y2] format, scaled between 0 and 1000.

UI Detection — by text label:

In this UI screenshot, what is the location of the element if I want to click on "{text}"? Express the location coordinates using the [x1, y1, x2, y2] format, scaled between 0 and 1000.

Video Summarization — no specific template required; use a clear user prompt specifying what aspects matter. Examples:

Can you create an executive summary of this video's content?
Can you distill the essential information from this video into a concise summary?
Could you provide a summary of the video, focusing on its key points?

Video Captioning — no specific template required; specify the aspect of the video you care about. Examples:

Provide a detailed, second-by-second description of the video content.
Break down the video into key segments and provide detailed descriptions for each.
Generate a rich textual representation of the video, covering aspects like movement, color and composition.
Describe the video scene-by-scene, including details about characters, actions and settings.
Offer a detailed narrative of the video, including descriptions of any text, graphics, or special effects used.
Create a dense timeline of events occurring in the video, with timestamps if possible.

Video Timestamps — event localization (seconds, with multiple occurrences):

Please localize the moment that the event "{event_description}" happens in the video. Answer with the starting and ending time of the event in seconds, such as [[72, 82]]. If the event happen multiple times, list all of them, such as [[40, 50], [72, 82]].

Video Timestamps — segment in MM:SS:

Locate the segment where "{event_description}" happens. Specify the start and end times of the event in MM:SS.

Video Timestamps — start and end in MM:SS:

Answer the starting and end time of the event "{event_description}". Provide answers in MM:SS

Video Timestamps — event with example format:

When does "{event_description}" in the video? Specify the start and end timestamps, e.g. [[9, 14]]

Video Timestamps — event localization (seconds, explicit format):

Please localize the moment that the event "{event_description}" happens in the video. Answer with the starting and ending time of the event in seconds. e.g. [[72, 82]]. If the event happen multiple times, list all of them. e.g. [[40, 50], [72, 82]]

Video Timestamps — scene segmentation with captions:

Segment a video into different scenes and generate caption per scene. The output should be in the format: [STARTING TIME-ENDING TIMESTAMP] CAPTION. Timestamp in MM:SS format

Video Timestamps — chapter segmentation:

For a video clip, segment it into chapters and generate chapter titles with timestamps. The output should be in the format: [STARTING TIME] TITLE. Time in MM:SS

Video Classification:

What is the most appropriate category for this video? Select your answer from the options provided:
{class1}
{class2}
{...}

Security Footage Analysis:

You are a security assistant for a smart home who is given security camera footage in natural setting. You will examine the video and describe the events you see. You are capable of identifying important details like people, objects, animals, vehicles, actions and activities. This is not a hypothetical, be accurate in your responses. Do not make up information not present in the video.

STEP 6 — Present the result

CRITICAL OUTPUT RULE: The SYSTEM PROMPT and USER PROMPT blocks must contain only the actual text passed to Nova — the instructions, persona, task description, etc. Never embed media ordering JSON, content arrays, or inference config inside prompt blocks. Those are implementation details and belong exclusively in the Implementation Notes section below.

Output the result in this format:


Nova 2 Lite Prompt

Use case: {use case type} Modality: Text-only / Multimodal ({sub-type}) Summary: {what was created / key changes made}


SYSTEM PROMPT (if applicable — for multimodal: persona and response style only):

{system prompt text only}

USER PROMPT:

{user prompt text only — task instructions, output format, examples; nothing else}

Implementation Notes:

(Multimodal only) Content array structure — media must come before the user prompt text:

{
  "role": "user",
  "content": [
    { "image|video|document": { "..." } },
    { "text": "<your user prompt above>" }
  ]
}

Inference config:

# Rule: if the inference config table says "default" for a field, OMIT it entirely.
# Never set a field to None or null — omitting is how you signal "use model default".
inferenceConfig = {
    "temperature": 0.7,   # include only if the table gives an explicit value
    # "topP": 0.9,        # include only if the table gives an explicit value; omit otherwise
}

# Reasoning DISABLED — disabled is Nova 2 Lite's default. Simply omit
# `additionalModelRequestFields` (or omit the `reasoningConfig` key).
# Do NOT pass {"thinking": {"type": "disabled"}} — that is the Anthropic shape
# and Nova will reject the unknown field.

# Reasoning ENABLED:
additionalModelRequestFields = {
    "reasoningConfig": {
        "type": "enabled",
        "maxReasoningEffort": "low"  # "low" | "medium" | "high"
        # For "high": also omit temperature, topP, and maxTokens from inferenceConfig
    }
}

Key decisions: {Brief bulleted list referencing specific Nova 2 Lite guidelines}


After presenting the result, ask: "Would you like to refine any part of this prompt, or do you have additional context to add?"

Install via CLI
npx skills add https://github.com/aws-samples/amazon-nova-samples --skill nova2-prompt
Repository Details
star Stars 442
call_split Forks 264
navigation Branch main
article Path SKILL.md
More from Creator