Structured Instructions for Large Language Models

OpenInstructions is an open-source catalog of phase-based instructions for LLMs and developers to create and refactor development projects.

Why OpenInstructions?

OpenInstructions provides developers and LLMs with structured, versioned guidance for efficient project development.

Structured

Detailed instructions split by project phase with dependency tracking between phases and tasks for clear implementation guidance.

Versioned

Git-based versioning with semantic versioning for instructions and build-time directory structure for reliable access to specific versions.

Modular

Support for multiple variants with shared components where appropriate, making it easy to adapt instructions to specific project needs.

Multi-dimensional

Select different options for each variant dimension (e.g., React + GitHub Actions) for flexibility in project configuration and implementation.

AI-Ready

Optimized for LLMs with clear task definitions and examples to ensure consistent and accurate implementation by AI systems.

Community-Driven

Open to contributions for continuous improvement, ensuring the catalog stays current with industry best practices and emerging technologies.

Getting Started

Browse the instructions

Check out our catalog of instructions for various project types:

Go CLI Setup - Initialize a new Go CLI project

Access via direct URLs

You can access instructions via various patterns:

  • Latest: https://openinstructions.org/catalog/latest/project_types/cli/go/setup.yaml
  • Specific version: https://openinstructions.org/catalog/v1/project_types/cli/go/setup.yaml

Integrate with your application

Use the OpenInstructions catalog in your own applications:

import yaml
import requests

# Access the CLI setup instructions
setup_url = "https://openinstructions.org/catalog/latest/project_types/cli/go/setup.yaml"
setup = yaml.safe_load(requests.get(setup_url).text)

# Access CI/CD instructions
ci_url = "https://openinstructions.org/catalog/latest/project_types/cli/ci/github_actions/setup.yaml"
ci = yaml.safe_load(requests.get(ci_url).text)

# Process the instructions...
                    

Instruction Catalog

Version: 0.1.0 (Updated: 2025-03-31)

Cli

GitHub Actions CI Setup for Go CLI

Configure CI workflows for Go CLI applications using GitHub Actions

v0.1.0 View YAML

Go CLI Release Process

Configure versioning and distribution for your Go CLI application

v0.1.0 View YAML

Go CLI Development

Implement core functionality for your Go CLI application

v0.1.0 View YAML

Go CLI Documentation

Create comprehensive documentation for your Go CLI application

v0.1.0 View YAML

Go CLI Project Setup

Initialize a Go CLI project using the Cobra library

v0.1.0 View YAML

Go CLI Testing

Create tests for your Go CLI application

v0.1.0 View YAML

Join Our Community

OpenInstructions is an open-source initiative. Join us in making instruction-following more structured and effective.

Schema Specification

OpenInstructions uses two primary schema types to define structured instruction sets

Project Type Root Schema

Defines the structure of a project type with its supported variants and lifecycle phases

Field Type Status Description
catalog_version string Required Version of the catalog specification (e.g., "0.1.0")
project_type string Required Project type identifier (e.g., "web_app")
title string Required Human-readable name of the project type
description string Required Description of the project type's purpose
variants array Required List of variant dimensions available for this project type
variants[].id string Required Variant identifier (e.g., "language", "framework")
variants[].title string Required Human-readable name for this variant dimension
variants[].options array Required Available options for this variant
phases array Required Lifecycle phases in recommended sequence
phases[].id string Required Phase identifier (e.g., "setup", "development")
phases[].title string Required Human-readable phase name
phases[].dependencies array Optional Phases that must be completed first
phases[].required boolean Optional Whether phase is mandatory (default: true)
global_context object Optional Project-wide context information

Phase Instruction Schema

Defines the detailed implementation instructions for a specific phase

Field Type Status Description
instruction_id string Required Unique identifier for this instruction
title string Required Concise title of the instruction set
version string Required Version of this instruction (e.g., "0.1.0")
catalog_version string Required Version of the catalog specification
project_type string Required Must match parent project_type
phase string Required Must match phase.id from root schema
variant_option string Optional Variant this instruction implements (e.g., "react")
context object Required Information about the "why" of these instructions
context.objective string Required Overall goal of this phase
context.preconditions array Optional Conditions that must be true before starting
context.postconditions array Optional Conditions that must be true after completion
tasks array Required List of implementation tasks
tasks[].id string Required Task identifier (e.g., "task1")
tasks[].title string Required Short description of the task
tasks[].description string Required Detailed explanation of the task
tasks[].priority integer Optional Priority level (1-5, where 1 is highest)
tasks[].dependencies array Optional Tasks that must be completed before this one

Structure Overview

  • Project Types → Define categories
  • Variants → Implementation options
  • Phases → Sequential lifecycle stages
  • Tasks → Specific activities

Key Benefits

  • Modularity — Mix and match variants
  • Dependencies — Clear prerequisites
  • Structured Format — LLM-optimized
  • Versioning — Track changes over time