lulu-spec · git:20260926.09b7c01 · 2026-09-26 · sha256 0c1603089e639a07

lulu-spec git:20260926.09b7c01A

Immutable. This exact content never changes and is served at /api/v1/blob/0c1603089e639a07.

---
name: lulu-spec
description: >-
  Produce and deliver a product-doc for a feature cycle.
disable-model-invocation: true
---

# lulu-spec

Own the stage-specific contract and inputs for composing the product doc.
Completion is delivery through the shared `compose` engine.

## Contract

| Boundary | Contract |
|---|---|
| Scope | Feature cycle only |
| Prerequisite | Delivered `lulu-bet` as a `decision-package` |
| Output | Delivered product doc |
| Ownership | `lulu-spec` prepares stage inputs; `compose` owns orchestration |

## Runtime

<HARD-GATE>
Do NOT proceed until you have read `../_runtime.md` and:

- loaded `$PROJECT_ROOT`, `$SKILL_ROOT`, and `$PLATFORM` from `## Platform Context`
- established `$CYCLE_ID` and `$CYCLE_TYPE` via `## Session Foundation`
- set `$SKILL_DIR` = `$SKILL_ROOT/lulu-spec`

</HARD-GATE>

## Compose

1. Run `$SPEC_PREFLIGHT`. Bind stdout `profile_path` as `$PROFILE_PATH` and `scope_package` as `$SCOPE_PACKAGE`.

<HARD-GATE>
Do NOT proceed until you have read `{SKILL_ROOT}/compose/SKILL.md` in full.
Continue from its `## Entry`.
</HARD-GATE>

## Script Macros

| Macro | Command |
|---|---|
| `$SPEC_PREFLIGHT` | `python3 "$SKILL_DIR/scripts/start/product_spec_preflight.py" --project-root "$PROJECT_ROOT" --cycle-id "$CYCLE_ID"` |