OpenInstructions is an open-source catalog of phase-based instructions for LLMs and developers to create and refactor development projects.
OpenInstructions provides developers and LLMs with structured, versioned guidance for efficient project development.
Detailed instructions split by project phase with dependency tracking between phases and tasks for clear implementation guidance.
Git-based versioning with semantic versioning for instructions and build-time directory structure for reliable access to specific versions.
Support for multiple variants with shared components where appropriate, making it easy to adapt instructions to specific project needs.
Select different options for each variant dimension (e.g., React + GitHub Actions) for flexibility in project configuration and implementation.
Optimized for LLMs with clear task definitions and examples to ensure consistent and accurate implementation by AI systems.
Open to contributions for continuous improvement, ensuring the catalog stays current with industry best practices and emerging technologies.
Check out our catalog of instructions for various project types:
Go CLI Setup - Initialize a new Go CLI project
You can access instructions via various patterns:
https://openinstructions.org/catalog/latest/project_types/cli/go/setup.yaml
https://openinstructions.org/catalog/v1/project_types/cli/go/setup.yaml
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...
Configure CI workflows for Go CLI applications using GitHub Actions
Configure versioning and distribution for your Go CLI application
Implement core functionality for your Go CLI application
Create comprehensive documentation for your Go CLI application
Initialize a Go CLI project using the Cobra library
Create tests for your Go CLI application
OpenInstructions is an open-source initiative. Join us in making instruction-following more structured and effective.
Show your support by starring our repository and helping us grow
Join the conversation and share your ideas for improving the catalog
Report bugs or request new features to help make the project better
Learn how to contribute to the project and submit your own instructions
OpenInstructions uses two primary schema types to define structured instruction sets
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 |
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 |