01 / Overview
Research intelligence assembled into governed workflows.
Ingeniometrix turns structured academic intake and selected bibliographic evidence into a reviewable thesis-planning blueprint.
02 / Architecture
A live intelligence system with clear service boundaries.
The architecture separates interface, orchestration, retrieval, AI generation, persistence, and observability so each layer has a clear responsibility.
Application Layer
The interface captures structured intake, project context, and source-selection decisions.
AI Generation Layer
The model returns strict JSON schema output instead of uncontrolled narrative text.
Observability & Trust
Validation, audit logs, and traceability make the workflow reviewable.
03 / Validation
AI output is grounded by structure, validation, and traceability.
The system treats generation as one stage in a workflow that includes source retrieval, schema-grounded output, coherence validation, workflow state, and audit evidence.
Source-Grounded Generation
Blueprint generation is based on selected academic references rather than open-ended model recall.
Coherence Validation
Problem, gap, methods, objectives, and outputs are checked for alignment and coverage.
Workflow State
Created, processing, reviewed, and approved states make the process easier to operate.
04 / Output
The result is a review-ready research artifact.
Ingeniometrix packages model output into a blueprint that can be inspected, revised, versioned, and connected back to evidence.
05 / Engineering Signals
The model drafts; the system verifies.
The project demonstrates production-minded AI engineering through bounded inputs, selected evidence, structured outputs, validation logic, and versioned persistence.
Provider Abstraction
Generation is routed through a provider interface so orchestration is not hard-coupled to one model vendor.
Strict Schema
The output contract is enforced through JSON schema, then normalized and validated.
Traceability
References used in the blueprint must come from the selected evidence set.
Evaluation Layer
Coherence reporting turns generated output into something that can be reviewed and improved.
Technical Appendix
Key code patterns, shown without private implementation detail.
These excerpts show the core AI engineering ideas behind the workflow: validation, source traceability, and structured outputs.
Provider Abstraction
Model access behind a stable interface
The workflow avoids hard-coupling business logic to one LLM vendor by routing generation through a provider contract.
export interface LlmProvider {
readonly name: string;
generateStructuredObject(input: StructuredObjectInput): Promise<unknown>;
generateText(input: TextGenerationInput): Promise<string>;
generateTextDetailed(input: TextGenerationInput): Promise<TextGenerationResult>;
}Structured Output
Strict JSON schema generation
The response is constrained by a JSON schema, which is stronger than simply asking the model to return JSON.
client.responses.create({
model,
store: false,
input: prompt,
text: {
format: {
type: "json_schema",
name: "research_blueprint_core",
strict: true,
schema: researchBlueprintCoreSchema,
},
},
});Workflow Orchestration
Blueprint generation with validation gates
The generation path includes readiness checks, context building, fallback behavior, normalization, traceability validation, persistence, and audit-ready metadata.
const BLUEPRINT_PROMPT_VERSION = "ingeniometrix-blueprint-v3";
assertIntakeExists(project);
assertSelectedReferencesWithinRange(project.projectReferences);
const referenceInsights = buildReferenceInsights(project.projectReferences);
const readiness = buildBlueprintReadinessSnapshot({ intake, referenceInsights });
const rawBlueprint = await generateStructuredObjectWithTextFallback({
prompt,
schema: researchBlueprintCoreSchema,
}).catch(() => buildFallbackBlueprintDraft({ project, intake }));
const normalized = normalizeBlueprintDraft({ draft: rawBlueprint, project, intake });
const citationPlan = buildCitationPlan({ blueprint: normalized, intake, referenceInsights });
validateBlueprintTraceability(normalized, selectedReferences);
await prisma.blueprintVersion.create({
data: { promptVersion: BLUEPRINT_PROMPT_VERSION, blueprintJson, citationPlan },
});Traceability
Selected-source enforcement
The final blueprint cannot cite references that were not selected for the project, which reduces unsupported evidence drift.
const selectedReferenceIds = new Set(
selectedReferences.map((reference) => reference.id),
);
const invalidReferenceIds = blueprint.references_used
.map((reference) => reference.reference_id?.trim())
.filter(Boolean)
.filter((referenceId) => !selectedReferenceIds.has(referenceId));
if (invalidReferenceIds.length > 0) {
throw new Error(`Blueprint uses non-selected references: ${invalidReferenceIds.join(", ")}`);
}
if (blueprint.references_used.length === 0) {
throw new Error("Blueprint did not include traceable references.");
}Example Structured Output
{
"project": "Ingeniometrix",
"workflow": "thesis_blueprint_generation",
"intake": {
"topic": "Digital transformation in postgraduate academic advising",
"degree_level": "masters",
"methodology": "mixed_methods",
"language": "Spanish"
},
"selected_references": [
{
"id": "ref_openalex_01",
"provider": "OpenAlex",
"status": "selected"
},
{
"id": "ref_crossref_02",
"provider": "Crossref",
"status": "selected"
}
],
"blueprint": {
"problem": "Advising workflows need clearer planning structure and traceable evidence.",
"objectives": [
"Define planning gaps",
"Map evidence-backed methodology options"
],
"outputs": [
"research_problem",
"objectives",
"methods",
"citation_plan"
]
},
"validation": {
"schema_status": "pass",
"traceability_status": "pass",
"coherence_status": "warning",
"risk_flags": [
"Some sections require advisor review."
]
},
"audit": {
"workflow_state": "review_ready",
"prompt_version": "ingeniometrix-blueprint-v3",
"versioned_artifact": true
}
}