By zachbutton
Your context engineering doesn't survive the session. Pyrs gives AI agents persistent architectural contracts that do.
Invoke pyrs-foundation first. Produce or update code from a pyramid using incremental test-driven development. Triggered by ::apply P where P is an @-prefixed pyramid reference.
Invoke pyrs-foundation first. Intercepts when a user describes a code change, feature, or bug fix without using a :: command. Guides them into the pyramid workflow instead of modifying code directly.
Invoke pyrs-foundation first. Compare code against the pyramid(s) it should mirror and manage per-target unresolved-gap diff sidecars. Triggered by ::diff P where P is an @-prefixed pyramid reference or code reference.
CRITICAL — Agents MUST invoke this skill FIRST before executing any other pyrs skill. Whenever a user types any :: command (::, ::spec, ::apply, ::ingest, ::mend, ::sane, ::scan, ::diff, ::ls, ::help), invoke pyrs-foundation FIRST to load the pyramid workflow context, then proceed to the specific command skill. Can also be invoked standalone via :: to load pyramid context without performing an operation.
Invoke pyrs-foundation first. Show available pyramid workflow commands. Triggered by ::help.
Own this plugin?
Verify ownership to unlock analytics, metadata editing, and a verified badge. GitHub access is read-only (username + org membership).
Sign in to claimOwn this plugin?
Verify ownership to unlock analytics, metadata editing, and a verified badge. GitHub access is read-only (username + org membership).
Sign in to claimBased on adoption, maintenance, documentation, and repository signals. Not a security audit or endorsement.
Pronounced "pyres," short for pyramids.
An AI skill plugin for Claude Code and OpenCode that introduces a structured, hierarchical approach to building software with LLM agents.
You: "Add caching to this service"
Agent: rewrites half your architecture(new session)
You: "Fix this bug"
Agent: ignores caching layer entirely(that ^ doesn't have to be your life anymore!)
Persistent context for AI coding agents. As you work with an agent, PYRS produces simple markdown files ("pyramids") that capture what your system does and why. These pyramids accumulate as a natural byproduct of the conversations you're already having. They're not documentation you maintain; they're artifacts that keep every future agent session aligned with your architecture.
You get:
graph TD
A1["Agent · Session 1"] --> C["Code"]
A2["Agent · Session 2"] --> C
A3["Agent · Session N"] --> C
C --> X["scope creep · drift · decay"]
style X fill:#e74c3c,stroke:#c0392b,color:#fff
You get:
graph TD
B1["Agent · Session 1"] --> P["Pyramids<br/><i>source of truth · persistent contracts</i>"]
B2["Agent · Session 2"] --> P
B3["Agent · Session N"] --> P
P --> T["Tests · derived from contracts"]
T --> C["Code · passes tests"]
C -.-> P
style P fill:#4a90d9,stroke:#2c5f8a,color:#fff
style T fill:#f5a623,stroke:#c4841c,color:#fff
style C fill:#7ed321,stroke:#5a9e18,color:#fff
From within Claude Code:
/plugin marketplace add zachbutton/pyrs
/plugin install pyrs@zachbutton-pyrs
Clone the repo and run the install script. It adds the skills path to your OpenCode config at ~/.config/opencode/config.json, merging with any existing settings:
git clone https://github.com/zachbutton/pyrs.git ~/.local/share/pyrs
~/.local/share/pyrs/scripts/install-opencode
Or manually add the skills path to your OpenCode config (opencode.json in your project root or ~/.config/opencode/config.json):
{
"skills": {
"paths": ["~/.local/share/pyrs/skills"]
}
}
Skills are loaded on demand, not all at once. OpenCode scans the path for SKILL.md files and only reads a skill's full instructions when a task matches its description.
LLM coding agents are powerful, but they have a fundamental limitation: they lack durable, structured understanding of the system they're building. Each conversation starts fresh. Context windows are finite. And the bigger a project gets, the harder it is for an agent to hold the full picture in its head.
This leads to predictable failure modes:
npx claudepluginhub zachbutton/pyrs --plugin pyrsHarness for Claude Code — skills, /harness:* slash commands, persona subagents, lifecycle hooks, and MCP tools without per-repo `harness setup`. Sibling plugins exist for Cursor, Gemini CLI, and Codex.
Make your AI agent code with your project's architecture, rules, and decisions.
11 agents, 35 skills, 18 commands, 9 hooks — spec-driven multi-agent orchestration for Claude Code, with optional cross-device semantic memory.
(Alpha) Persistent memory, architectural decisions, and safety guardrails for Claude Code. Your agent starts every session with full project context — stack, decisions, patterns, safety rules, and a handoff from the previous session.
GSD Core is a meta-prompting, context engineering, and spec-driven development system for AI coding agents.
AI Development Environment - Multi-agent orchestration for Claude Code