{"id":50257146,"url":"https://github.com/nullhack/temple8","last_synced_at":"2026-05-27T07:03:26.064Z","repository":{"id":208484967,"uuid":"478989740","full_name":"nullhack/temple8","owner":"nullhack","description":"Spec-driven agent orchestration template. YAML state machines route multi-agent workflows. Any LLM, any process, zero lock-in.","archived":false,"fork":false,"pushed_at":"2026-05-22T18:04:18.000Z","size":2273,"stargazers_count":12,"open_issues_count":1,"forks_count":2,"subscribers_count":2,"default_branch":"main","last_synced_at":"2026-05-22T21:30:14.613Z","etag":null,"topics":["agent-orchestration","ai","bdd","claude-code","copilot","cursor","kiro","opencode","productivity","project-template","pytest","python","python-project-template","python3","spec-driven-development","specifications","state-machine","tdd","uv","vibe-coding"],"latest_commit_sha":null,"homepage":"https://nullhack.github.io/temple8/","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/nullhack.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":"AGENTS.md","dco":null,"cla":null}},"created_at":"2022-04-07T13:08:03.000Z","updated_at":"2026-05-22T18:03:30.000Z","dependencies_parsed_at":"2023-11-30T18:01:58.392Z","dependency_job_id":"5c2dca13-09a0-4d88-91ce-28cef60e00db","html_url":"https://github.com/nullhack/temple8","commit_stats":null,"previous_names":["nullhack/python-project-template","nullhack/temple8"],"tags_count":50,"template":false,"template_full_name":null,"purl":"pkg:github/nullhack/temple8","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nullhack%2Ftemple8","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nullhack%2Ftemple8/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nullhack%2Ftemple8/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nullhack%2Ftemple8/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/nullhack","download_url":"https://codeload.github.com/nullhack/temple8/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nullhack%2Ftemple8/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33554782,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-05-27T02:00:06.184Z","response_time":53,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["agent-orchestration","ai","bdd","claude-code","copilot","cursor","kiro","opencode","productivity","project-template","pytest","python","python-project-template","python3","spec-driven-development","specifications","state-machine","tdd","uv","vibe-coding"],"created_at":"2026-05-27T07:03:22.082Z","updated_at":"2026-05-27T07:03:26.059Z","avatar_url":"https://github.com/nullhack.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cdiv align=\"center\"\u003e\n\n\u003cimg src=\"docs/assets/banner.svg\" alt=\"temple8\" width=\"100%\"/\u003e\n\n\u003cbr/\u003e\u003cbr/\u003e\n\n[![Contributors][contributors-shield]][contributors-url]\n[![Forks][forks-shield]][forks-url]\n[![Stargazers][stars-shield]][stars-url]\n[![Issues][issues-shield]][issues-url]\n[![MIT License][license-shield]][license-url]\n[![Coverage](https://img.shields.io/badge/coverage-100%25-brightgreen?style=for-the-badge)](https://nullhack.github.io/temple8/coverage/)\n[![CI](https://img.shields.io/github/actions/workflow/status/nullhack/temple8/ci.yml?style=for-the-badge\u0026label=CI)](https://github.com/nullhack/temple8/actions/workflows/ci.yml)\n[![Python](https://img.shields.io/badge/python-%E2%89%A53.13-blue?style=for-the-badge)](https://www.python.org/downloads/)\n\n**From zero to hero: Spec-driven agent orchestration. Any workflow. Any LLM. Zero lock-in.**\n\n\u003c/div\u003e\n\n---\n\nYou have tried to ship features with AI assistants. The agent writes code, you review it, and somehow the spec still drifts from the implementation. Tests pass but the feature doesn't match what stakeholders asked for. Architecture decisions vanish into commit messages nobody reads. The review cycle is a black box: either everything passes or nothing does, with no structured progression.\n\n**temple8 replaces ad-hoc agent orchestration with state machines that route every step through the right agent with the right skills at the right time.**\n\nFlow definitions in YAML declare what happens at each state: who owns it, what they may read, what they must produce, and which conditions gate the next transition. No agent guesses what to do next. No step is skipped. Artifacts are scoped to each state's input/output contract.\n\n---\n\n## Who is this for?\n\n### Developers moving from vibe coding to agentic engineering\n\nYou have shipped code with AI assistants and hit the wall: the agent writes code, you review it, the spec drifts. Vibe coding works for prototypes. It breaks at scale. temple8 replaces \"prompt and pray\" with spec-driven development: BDD scenarios from interviews, title-based traceability from Example to test function, red-green-refactor cycles enforced by default, three-tier review that catches what linters miss.\n\n### Teams wanting structured agent orchestration without lock-in\n\nYour team follows a real methodology: Scrum, Kanban, SAFe, or something custom. Multi-agent orchestration should adapt to it, not the other way around. temple8 flows are YAML state machines you define, extend, or replace. Named specialists per state. No subscription, no vendor account, no code leaving your infrastructure. MIT licensed.\n\n### Anyone evaluating spec-driven development\n\nSpec-driven development is gaining traction across AI coding tools. You want to try it without committing to a cloud IDE or a monthly subscription. temple8 is a project template: clone it, run it locally with any LLM, see if the process discipline works for your team. Already have a Python project? Use [agents-smith](https://github.com/nullhack/agents-smith) to add temple8's agentic capabilities with one command.\n\n---\n\n## What it does\n\n```\nflowr check      →  inspect a state's owner, skills, and transitions\nflowr next       →  see which transitions pass given your evidence\nflowr transition →  advance to the next state with evidence\n```\n\n**State machines route the work.** YAML flows define the delivery pipeline: discovery, architecture, planning, TDD cycles, review gates, delivery. Each state declares an owner, skills, input/output artifacts, and guard conditions. The engine validates transitions. The agent executes.\n\n**Workflows are configurable.** The default flows cover spec-driven software development. Replace or extend them for your team's process: Kanban, SAFe, ITIL, or any custom pipeline. If it is a state machine, flowr can express it.\n\n**Agents execute it.** Each state's `owner` dispatches to the right agent (PO, SE, SA, DE, R). Skills are loaded per state. Input/output contracts constrain scope. Evidence gates prevent premature transitions.\n\n**Branch discipline is explicit.** Every state declares `git: main` or `git: feature`. Project-phase work commits to main. Feature work commits to a feature branch. No ambiguity about where changes belong.\n\n---\n\n## Quick start\n\n### New project\n\n```bash\ngit clone https://github.com/nullhack/temple8\ncd temple8\ncurl -LsSf https://astral.sh/uv/install.sh | sh  # skip if uv is already installed\nuv sync --all-extras\nopencode \u0026\u0026 @setup-project                        # personalise for your project\nuv run task test \u0026\u0026 uv run task lint \u0026\u0026 uv run task static-check\n```\n\n### Existing project\n\n```bash\npip install agents-smith\nsmith clone                              # adds temple8's agents, flows, skills, and knowledge\n```\n\n---\n\n## Commands\n\n```bash\nuv run task test          # full suite + coverage\nuv run task test-fast     # fast, no coverage (use during TDD loop)\nuv run task lint          # ruff format + check\nuv run task static-check  # pyright type checking\nuv run task run           # run the app\nuv run task doc-build     # build API docs + coverage report\n```\n\n---\n\n## FAQ\n\n### How is this different from Kiro?\n\ntemple8 evolved over years of accumulated practice, not as a response to Kiro. Both identified the same pain points in AI-assisted development. The standards differ: Kiro uses EARS notation and property-based testing; temple8 uses BDD, TDD, and DDD with three-tier progressive review. Kiro is a cloud IDE on Bedrock. temple8 is a local project template with any LLM. MIT licensed, zero cost.\n\n### How is this different from Cursor or Copilot?\n\nCursor and Copilot help write code. temple8 provides the process that decides what to write, in what order, and what review it passes before shipping. Think of them as the engine and temple8 as the map. Use both together.\n\n### How does this relate to Claude Code or opencode?\n\nClaude Code and opencode are general-purpose agent runners. temple8 gives them a process: YAML state machines, scoped agent roles, and evidence-based transitions. Without temple8, they follow prompts. With it, they follow a workflow.\n\n### Do I need to replace my existing tools?\n\nNo. temple8 is a project template: flows, agent definitions, skills, and knowledge files you drop into any Python project. Keep your editor. Bring your own LLM via opencode or a compatible agent runner. Already have a Python project? Use [agents-smith](https://github.com/nullhack/agents-smith) to add temple8's agents, skills, and flows with one command: `smith clone`.\n\n### Is this only for software development?\n\nThe default flows cover software development (discovery, architecture, TDD cycles, review). Any repeatable process with steps and conditions can be expressed as a flowr state machine: ops runbooks, compliance audits, content pipelines, incident response.\n\n---\n\n## Documentation\n\n- **[Product Definition](https://nullhack.github.io/temple8/)**: product boundaries, users, and scope\n- **[System Overview](https://nullhack.github.io/temple8/)**: architecture, domain model, module structure, and constraints\n- **[Glossary](https://nullhack.github.io/temple8/)**: living domain glossary\n\n---\n\n## License\n\nMIT. See [LICENSE](LICENSE).\n\n**Author:** [@nullhack](https://github.com/nullhack) · [Documentation](https://nullhack.github.io/temple8)\n\n\u003c!-- MARKDOWN LINKS --\u003e\n[contributors-shield]: https://img.shields.io/github/contributors/nullhack/temple8.svg?style=for-the-badge\n[contributors-url]: https://github.com/nullhack/temple8/graphs/contributors\n[forks-shield]: https://img.shields.io/github/forks/nullhack/temple8.svg?style=for-the-badge\n[forks-url]: https://github.com/nullhack/temple8/network/members\n[stars-shield]: https://img.shields.io/github/stars/nullhack/temple8.svg?style=for-the-badge\n[stars-url]: https://github.com/nullhack/temple8/stargazers\n[issues-shield]: https://img.shields.io/github/issues/nullhack/temple8.svg?style=for-the-badge\n[issues-url]: https://github.com/nullhack/temple8/issues\n[license-shield]: https://img.shields.io/badge/license-MIT-green?style=for-the-badge\n[license-url]: https://github.com/nullhack/temple8/blob/main/LICENSE","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnullhack%2Ftemple8","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnullhack%2Ftemple8","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnullhack%2Ftemple8/lists"}