Skip to content

Research to Prototype

Research-driven prototype pipeline. Starts with product research and a PRD, scaffolds an agentic loop prototype with the Platform tenant chart whose ModelGateway is its model path, and optionally adds a test plan for validation.

Nameresearch-to-prototype
Version0.1.0
Tagsresearch, prototype, product, ai, qa
Sourcecomposites/research-to-prototype.yaml

Render it

# CLI
npx @nanohype/sdk render-composite research-to-prototype --out ./my-app

# SDK
import { LocalSource, renderComposite } from "@nanohype/sdk";
const result = await renderComposite(source, "research-to-prototype", variables);

# MCP — from an agent
get_composite({ name: "research-to-prototype" })

What it draws together

TemplateRendered atNotes
monoreporootthe root project
research-frameworkdocs/research
prd-templatedocs/product
agentic-loopapps/agent
test-plandocs/qaonly when IncludeTests
k8s-app-tenantinfra

Variables

Required

ProjectName string
Project name used across all templates Must be lowercase kebab-case.

Optional

ResearchType string — defaults to generative
Type of research (generative, evaluative)
LlmProvider string — defaults to gateway
LLM provider the packages deployed on the substrate call: gateway, the Platform ModelGateway, which holds the Bedrock role there, so none of them holds a model credential
IncludeTests bool — defaults to true
Include test plan for prototype validation
Tenant string — defaults to ${ProjectName}
Owning team: the tenants-<team> namespace the Platform, BudgetPolicy and ModelGateway CRs are applied in, the Platform's spec.tenant, and the team label on the tenant chart's resources and telemetry
Image string — defaults to ${ProjectName}
Container image repository the tenant chart deploys, without a tag; each values-<env>.yaml pins one
AppMetric string — defaults to http
Prefix of the RED series the tenant chart's Grafana dashboard reads: <prefix>_requests_total, <prefix>_errors_total and <prefix>_request_duration_seconds. The default, http, is the prefix a ts-service emits them under; set it to the prefix the deployed service emits