Skip to content
Back to skills

Orch Arch

ASecurity

Use when an accepted PRD under docs/prd/ needs a technical architecture before specs are written (step 2 of orch-plan). Reads the code and the PRD, writes docs/arch/NNN-<slug>.md with components, contracts, decisions and the phase/package split orch-spec turns into tasks. Never writes code, specs or tasks.json.

  • 2 stars
  • 0 votes
  • 0 copies
  • 2 views
  • Added September 23, 2026
developmentgo

Security analysis

A100/100

Scanned November 9, 2026

npx -y skills add hectorcanaimero/orch --skill orch-arch --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Orch Arch?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Orch Arch
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/hectorcanaimero-orch-arch/badge)](https://www.skillsdirectory.com/skills/hectorcanaimero-orch-arch)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: orch-arch
description: Use when an accepted PRD under docs/prd/ needs a technical architecture before specs are written (step 2 of orch-plan). Reads the code and the PRD, writes docs/arch/NNN-<slug>.md with components, contracts, decisions and the phase/package split orch-spec turns into tasks. Never writes code, specs or tasks.json.
---

# orch-arch — PRD → architecture

Second stage of **PRD → ARCH → SPEC → TASKS**. The architecture decides *how*
the PRD gets built and, just as important for orch, **how the work splits**:
the phases and packages you name here become the `# F<n>` and `## F<n>.<pkg>`
headers of the specs, and every task in `tasks.json` hangs off one of them.

## Inputs

0. `docs/arch/000-discovery.md`, when the repository has one (`orch-discover`):
   what the code is, with evidence. Build on its facts; a design that
   contradicts one says so explicitly and why, as with earlier architecture.
1. The PRD: `docs/prd/NNN-<slug>.md`. If there is none, stop and run
   `orch-prd` first — an architecture without requirements has nothing to be
   right about.
2. The code that exists. Read the layout, the dependency manifests and the
   modules the PRD touches **before** proposing anything; a design that ignores
   the stack already in the repo is a rewrite nobody asked for.
3. Earlier architecture under `docs/arch/` — extend or supersede it
   explicitly, never contradict it silently.

If the PRD still has open questions that change the design, ask them now,
in one batch. Questions that do not change the design can stay open.

## Where it goes

`docs/arch/NNN-<slug>.md`, reusing the PRD's `NNN-<slug>` when it covers one
PRD. **Never under `specs/`** — `orch atomize` walks the spec root and warns
about any non-spec file it meets.

```yaml
---
type: arch
project_id: <same as the PRD>
version: 0.1
depends_on:
  - docs/prd/NNN-<slug>.md
generated_by: orch-arch
generated_at: <YYYY-MM-DD>
title: <Feature name> — architecture
---
```

## Sections

```markdown
# <Feature name> — architecture

## Context
What exists today and what the PRD changes about it, in a paragraph.

## Components
One subsection per component: responsibility, what it owns, what it calls.

## Data model
Entities, key fields, ownership, and migrations if storage already exists.

## Interfaces
The contracts between components: routes, events, function signatures,
file formats. Precise enough that two agents working in parallel on either
side of one agree without talking.

## Decisions
- **D1 — <decision>.** Chosen: <option>. Rejected: <option> because <reason>.

## Risks
- <what could sink it>, *mitigation:* <what the plan does about it>.

## Requirement coverage
| Requirement | Component(s) |
| --- | --- |
| FR-1 | ... |

## Work breakdown
### F1 — <milestone M1 from the PRD>
- **F1.1 — skeleton**: the thinnest end-to-end path of M1, plus every file
  the slice shares (routes, schema, wiring). Files/dirs: `<path>`, `<path>`.
- **F1.2 — <package>**: <scope>. Files/dirs: `<path>`. Depends on: F1.1.
- **F1.3 — <package>**: <scope>. Files/dirs: `<path>`. Depends on: F1.1.
```

## Rules

- **Every FR and NFR appears in *Requirement coverage*.** A requirement with no
  component is either out of scope — say so — or a hole in the design.
- **One phase is one milestone of the PRD: a vertical slice.** Each phase
  ends in something a user can do end to end, never in a layer ("all the
  models", "all the endpoints"). Layers built apart pass their own tests and
  break when they meet; a slice is integrated from its first task.
- **Every phase starts with a skeleton package.** One task that wires the
  thinnest path of the slice through every layer — a stub where the real
  logic will go, a test that crosses the whole path — and creates the files
  the slice shares (route registration, schema, migrations). The other
  packages depend on it and fill in the layers in parallel without touching
  the shared files. A phase small enough to be one task is its own skeleton.
- **Phases are ordered delivery, packages are parallel work.** Packages in the
  same phase should be buildable at the same time by different agents; put a
  package in a later phase, or name its dependency, when it cannot be. orch
  dispatches ready tasks concurrently, so a hidden dependency here becomes two
  agents editing the same thing at once.
- **Name the files and directories each package owns.** `orch-spec` copies
  them into each task's `Files` list, and orch uses those lists to keep
  concurrent tasks off the same files.
- **Interfaces before implementations.** When two packages meet, the contract
  goes in *Interfaces* and belongs to the earlier phase, so the later tasks can
  start from something fixed.
- **Decisions show the alternative.** A decision with no rejected option is an
  assumption; list it as one.
- **Match the phase numbering already in `specs/`.** If `F0` and `F1` exist,
  new work starts at the next free phase — task ids are how `orch atomize`
  merges, and reusing a phase number collides with tasks already in
  `tasks.json`.

## Hand-off

Show the path, the phase/package list and any decision the user should
confirm. The next step is `orch-spec`, one spec file per phase.

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

View all in development →

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.