workflow-contracts: version: 1 purpose: > Cascade runtime의 artifact vocabulary, stage bundle, reviewer 권한을 한 곳에서 정의한다. state_engine은 이 파일에서 artifact-kind와 bundle을 직접 읽으며 command는 gate fact를 인자로 전달하지 않는다. default-payload-schema-ref: generic-workflow-artifact-payload.schema.json payload-enforcement: strict-tiers: [standard, heavy] # Light remains a deliberate low-paperwork path. These kinds use their dedicated # schemas and full required fields only in standard/heavy; light keeps the listed core. tiered-kinds: executive-decision-packet: [recommendation] overall-design: [basis-artifact-id, basis-artifact-sha256] api-design: [basis-artifact-id, basis-artifact-sha256] threat-model: [basis-artifact-id, basis-artifact-sha256] ui-design: [basis-artifact-id, basis-artifact-sha256] prd: [basis-artifact-id, basis-artifact-sha256] api-contract: [basis-artifact-id, basis-artifact-sha256] data-contract: [basis-artifact-id, basis-artifact-sha256] migration-plan: [basis-artifact-id, basis-artifact-sha256] wave-plan: [] company-context: [] venture-validation: [] competitive-experience-benchmark: [] experience-strategy: [] experience-blueprint: [] wireframe-set: [] design-system-release: [] design-engine-output: [] approved-direction: [parent-workflow-id, child-workflow-id, product-decision-id, direction-input-brief-sha256, selected-direction-ref, selected-direction-sha256, winner-prototype-ref, winner-prototype-sha256] role-capabilities: transition-executor: [OPS-ORCH] artifact-reviewer: [EXEC-CEO, EXEC-CPO, EXEC-CTO, EXEC-CPTO, EXEC-VPENG, PROD-PO, PROD-TPO, PROD-PPO, QA, HUMAN-001] decision-approver: [HUMAN-001, EXEC-CEO] design-approver: [EXEC-CPO, EXEC-CPTO, PROD-PO, DES-DIRECTOR, HUMAN-001] spec-approver: [PROD-PO, PROD-TPO, PROD-PPO, EXEC-CPO, EXEC-CPTO, HUMAN-001] quality-auditor: [QA, EXEC-VPENG, SEC-ENGINEER, SEC-APPSEC, HUMAN-001] data-quality-auditor: [QA, ARCH-DATA, EXEC-CPO, EXEC-CTO, HUMAN-001] architecture-auditor: [ARCH-EA, ARCH-SOLUTION, ARCH-SWAT, EXEC-CTO, HUMAN-001] security-auditor: [SEC-ENGINEER, SEC-APPSEC, SEC-CHAMPION, QA, HUMAN-001] product-quality-auditor: [PROD-PO, EXEC-CPO, EXEC-CPTO, QA, HUMAN-001] infrastructure-auditor: [SRE, INFRA-PLATFORM, SEC-DEVSECOPS, EXEC-VPENG, HUMAN-001] technical-accuracy-auditor: [ARCH-TECH, ARCH-APP, ARCH-SWAT, QA, EXEC-VPENG, HUMAN-001] documentation-approver: [DOC-LEAD, EXEC-CPO, HUMAN-001] release-decider: [HUMAN-001, EXEC-CEO] # Runtime state graph SSOT. Each transition is derived from a stage's next + exit-gate. # execution-plans.yaml and state-transition-rules.yaml are compatibility/documentation mirrors. workflows: cascade: terminal-stage: released stages: intake: command: ceo-intake next: discovery actor: { executor: [OPS-ORCH], decision-author-capability: [decision-approver] } outputs: { bundle: [decision-brief, workload-profile] } exit-gate: [decision-brief-present, workload-profile-present, company-context-ready] discovery: command: ground next: decide actor: { executor: [OPS-ORCH] } inputs: [decision-brief, workload-profile] outputs: { bundle: [grounding-contribution, competitive-market-grounding, grounding-package] } exit-gate: [grounding-evidence-present, option-set-present, grounding-lens-coverage-satisfied] decide: command: decide next: design actor: { executor: [OPS-ORCH], decision-author-capability: [decision-approver] } outputs: { bundle: [executive-decision-packet] } exit-gate: [decision-packet-accepted, evidence-grade-min] design: command: design next: spec actor: { executor: [OPS-ORCH], decision-author-capability: [design-approver] } outputs: { dynamic-bundle: design-bundle } exit-gate: [design-accepted, experience-foundation-gate-satisfied, design-system-release-attached, design-direction-gate-satisfied] spec: command: spec next: build actor: { executor: [OPS-ORCH], decision-author-capability: [spec-approver] } outputs: { dynamic-bundle: spec-bundle } exit-gate: [spec-accepted, must-read-designs-accepted] build: command: build next: verification actor: { executor: [OPS-ORCH] } outputs: { bundle: [completion-record] } exit-gate: [completion-record-present] verification: command: review-output next: acceptance actor: { executor: [OPS-ORCH], decision-author-capability: [quality-auditor] } outputs: { bundle: [quality-gate-review] } exit-gate: [quality-gate-passed, blocker-open-false] acceptance: command: release-check next: released actor: { executor: [OPS-ORCH], decision-author-capability: [release-decider] } outputs: { bundle: [release-decision] } exit-gate: [release-approved, no-unresolved-critical-risks, human-gate] released: command: null actor: { executor: [OPS-ORCH] } exit-gate: [] additional-transitions: - from: verification to: build allowed-by: { executor: [OPS-ORCH] } required-conditions: [quality-gate-failed] wave: terminal-stage: released stages: intake: { command: ceo-intake, next: plan, actor: { executor: [OPS-ORCH] }, outputs: { bundle: [decision-brief, workload-profile] }, exit-gate: [decision-brief-present, workload-profile-present, company-context-ready] } plan: { command: plan-wave, next: run, actor: { executor: [OPS-ORCH] }, outputs: { bundle: [wave-plan] }, exit-gate: [wave-plan-present] } run: { command: run-wave, next: verification, actor: { executor: [OPS-ORCH] }, outputs: { bundle: [completion-record] }, exit-gate: [completion-record-present] } verification: { command: review-output, next: acceptance, actor: { executor: [OPS-ORCH] }, outputs: { bundle: [quality-gate-review] }, exit-gate: [quality-gate-passed, blocker-open-false] } acceptance: { command: release-check, next: released, actor: { executor: [OPS-ORCH] }, outputs: { bundle: [release-decision] }, exit-gate: [release-approved, no-unresolved-critical-risks, human-gate] } released: { command: null, actor: { executor: [OPS-ORCH] }, exit-gate: [] } light: terminal-stage: acceptance stages: intake: { command: ceo-intake, next: run, actor: { executor: [OPS-ORCH] }, outputs: { bundle: [decision-brief, workload-profile] }, exit-gate: [decision-brief-present, workload-profile-present, company-context-ready] } run: { command: run-wave, next: verification, actor: { executor: [OPS-ORCH] }, outputs: { bundle: [completion-record] }, exit-gate: [completion-record-present] } verification: { command: review-output, next: acceptance, actor: { executor: [OPS-ORCH] }, outputs: { bundle: [quality-gate-review] }, exit-gate: [quality-gate-passed, blocker-open-false] } acceptance: { command: null, actor: { executor: [OPS-ORCH] }, exit-gate: [] } venture-bootstrap: terminal-stage: bootstrap-complete stages: intake: { command: ceo-intake, next: founder-setup, actor: { executor: [OPS-ORCH] }, outputs: { bundle: [decision-brief] }, exit-gate: [decision-brief-present] } founder-setup: { command: venture-validate, next: opportunity-discovery, actor: { executor: [OPS-ORCH] }, exit-gate: [founder-context-present] } opportunity-discovery: { command: venture-validate, next: venture-validation, actor: { executor: [OPS-ORCH] }, outputs: { bundle: [opportunity-cluster] }, exit-gate: [opportunity-clusters-present] } venture-validation: { command: venture-validate, next: venture-decision, actor: { executor: [OPS-ORCH] }, outputs: { bundle: [venture-validation] }, exit-gate: [venture-options-validated] } venture-decision: { command: company-bootstrap, next: company-context-commit, actor: { executor: [OPS-ORCH] }, outputs: { bundle: [venture-decision] }, exit-gate: [venture-decision-accepted, human-acceptance-receipt-present] } company-context-commit: { command: company-bootstrap, next: bootstrap-complete, actor: { executor: [OPS-ORCH] }, outputs: { bundle: [company-context] }, exit-gate: [company-context-provisional-committed, company-context-lint-passed, company-context-artifact-recorded] } bootstrap-complete: { command: null, actor: { executor: [OPS-ORCH] }, exit-gate: [] } experience-foundation: terminal-stage: foundation-approved stages: experience-foundation-intake: { command: experience-foundation, next: experience-benchmark, actor: { executor: [OPS-ORCH] }, exit-gate: [experience-parent-binding-present] } experience-benchmark: { command: experience-foundation, next: experience-strategy, actor: { executor: [OPS-ORCH] }, outputs: { bundle: [competitive-experience-benchmark] }, exit-gate: [competitive-benchmark-accepted] } experience-strategy: { command: experience-foundation, next: information-architecture, actor: { executor: [OPS-ORCH] }, outputs: { bundle: [experience-strategy, experience-technical-feasibility, experience-operational-feasibility] }, exit-gate: [experience-strategy-accepted, experience-technical-feasibility-accepted, experience-operational-feasibility-accepted] } information-architecture: { command: experience-foundation, next: wireframes, actor: { executor: [OPS-ORCH] }, outputs: { bundle: [experience-blueprint] }, exit-gate: [experience-blueprint-accepted] } wireframes: { command: experience-foundation, next: foundation-approved, actor: { executor: [OPS-ORCH] }, outputs: { bundle: [wireframe-set] }, exit-gate: [wireframe-set-accepted, experience-foundation-link-recorded] } foundation-approved: { command: null, actor: { executor: [OPS-ORCH] }, exit-gate: [] } design-direction: terminal-stage: design-direction-approved stages: design-direction-intake: { command: design-direction, next: design-direction-discovery, actor: { executor: [OPS-ORCH] }, exit-gate: [parent-binding-present, direction-input-brief-valid, experience-foundation-gate-satisfied] } design-direction-discovery: { command: design-direction, next: design-direction-divergence, actor: { executor: [OPS-ORCH] }, outputs: { bundle: [pre-direction-framing, direction-discovery, divergence-charter] }, exit-gate: [direction-discovery-present, divergence-charter-present] } design-direction-divergence: { command: design-direction, next: design-direction-decision, actor: { executor: [OPS-ORCH] }, outputs: { bundle: [direction-set, comparative-divergence-audit] }, exit-gate: [directions-diverged, divergence-audit-passed] } design-direction-decision: { command: design-direction, next: design-direction-prototype, actor: { executor: [OPS-ORCH] }, outputs: { bundle: [selected-direction] }, exit-gate: [selected-direction-accepted] } design-direction-prototype: { command: design-direction, next: design-direction-critique, actor: { executor: [OPS-ORCH] }, outputs: { bundle: [winner-prototype] }, exit-gate: [winner-prototype-present] } design-direction-critique: { command: design-direction, next: design-direction-finalize, actor: { executor: [OPS-ORCH] }, outputs: { bundle: [design-lens-review, design-review-panel] }, exit-gate: [direction-critique-passed] } design-direction-finalize: { command: design-direction, next: design-direction-approved, actor: { executor: [OPS-ORCH] }, outputs: { bundle: [approved-direction] }, exit-gate: [approved-direction-valid, approval-receipt-bound, parent-approval-link-recorded] } design-direction-approved: { command: null, actor: { executor: [OPS-ORCH] }, exit-gate: [] } additional-transitions: - { from: design-direction-decision, to: design-direction-discovery, allowed-by: { executor: [OPS-ORCH] }, required-conditions: [none-of-the-above-recorded] } - { from: design-direction-critique, to: design-direction-prototype, allowed-by: { executor: [OPS-ORCH] }, required-conditions: [critique-revision-requested] } - { from: design-direction-critique, to: design-direction-divergence, allowed-by: { executor: [OPS-ORCH] }, required-conditions: [concept-rejection-recorded] } side-transitions: - { from: "*", to: blocked, allowed-by: { executor: [OPS-ORCH] }, required-conditions: [blocked-report-present, resume-condition-present] } - { from: blocked, to: "", allowed-by: { executor: [OPS-ORCH] }, required-conditions: [resume-condition-satisfied, human-instruction-applied-if-needed] } artifact-kinds: decision-brief: producer-roles: [EXEC-CEO] reviewer-capability: decision-approver required-payload-fields: [mode, tier, candidate-families] payload-schema-ref: decision-brief.artifact.schema.json method-binding: { mode: workflow-control } workload-profile: producer-roles: [EXEC-CEO] reviewer-capability: decision-approver required-payload-fields: [surfaces, risk, required-capabilities] payload-schema-ref: workload-profile.artifact.schema.json method-binding: { mode: workflow-control } competitive-experience-benchmark: producer-roles: [GTM-CI] reviewer-capability: product-quality-auditor required-payload-fields: [parent-workflow-id, product-decision-id, category, target-job, surface-archetype, references, synthesis, no-copy-attestation] payload-schema-ref: competitive-experience-benchmark.artifact.schema.json method-binding: { mode: stage-synthesis } experience-strategy: producer-roles: [EXEC-CPO] reviewer-capability: decision-approver required-payload-fields: [parent-workflow-id, product-decision-id, benchmark-ref, benchmark-sha256, experience-thesis, target-users, jobs-to-be-done, value-proposition, differentiation, message-hierarchy, success-metrics, decision] payload-schema-ref: experience-strategy.artifact.schema.json method-binding: { mode: stage-synthesis } experience-technical-feasibility: producer-roles: [EXEC-CTO, EXEC-CPTO] reviewer-capability: decision-approver required-payload-fields: [parent-workflow-id, product-decision-id, strategy-ref, strategy-sha256, architecture-fit, delivery-sustainability, constraints, risks, mitigations, verdict] allow-empty-payload-fields: [risks, mitigations] payload-schema-ref: experience-technical-feasibility.artifact.schema.json method-binding: { mode: stage-synthesis } experience-operational-feasibility: producer-roles: [EXEC-COO] reviewer-capability: decision-approver required-payload-fields: [parent-workflow-id, product-decision-id, strategy-ref, strategy-sha256, operating-model, content-operations, support-and-recovery, constraints, risks, mitigations, verdict] allow-empty-payload-fields: [risks, mitigations] payload-schema-ref: experience-operational-feasibility.artifact.schema.json method-binding: { mode: stage-synthesis } experience-blueprint: producer-roles: [DOC-IA] reviewer-capability: product-quality-auditor required-payload-fields: [parent-workflow-id, product-decision-id, benchmark-ref, benchmark-sha256, strategy-ref, strategy-sha256, experience-thesis, target-users, jobs-to-be-done, value-proposition, differentiation, content-model, page-inventory, navigation-model, message-hierarchy, task-flows, state-matrix, responsive-priorities, accessibility-intent, success-metrics] payload-schema-ref: experience-blueprint.artifact.schema.json method-binding: { mode: stage-synthesis } wireframe-set: producer-roles: [DES-PROD] reviewer-capability: design-approver required-payload-fields: [parent-workflow-id, product-decision-id, blueprint-ref, blueprint-sha256, screens, validation, art-direction-deferred] payload-schema-ref: wireframe-set.artifact.schema.json method-binding: { mode: stage-synthesis } design-system-release: producer-roles: [DES-PLATFORM] reviewer-capability: design-approver required-payload-fields: [release-id, version, state, source-ref, source-sha256, principles-ref, taste-profile-ref, token-source-ref, component-ids, pattern-ids, page-archetype-ids, generated-artifacts] payload-schema-ref: design-system-release.artifact.schema.json method-binding: { mode: stage-synthesis } design-engine-output: producer-roles: [DES-PROD, DES-VISUAL, DES-PLATFORM, ENG-FEUX] reviewer-capability: design-approver required-payload-fields: [engine, screen-refs, editable-source, preview-url, screenshots, design-system-ref, source-provenance, verification] payload-schema-ref: design-engine-output.artifact.schema.json method-binding: { mode: stage-synthesis } first-draft-evaluation: producer-roles: [UX-RESEARCHER, DES-DIRECTOR] reviewer-capability: product-quality-auditor required-reviewer-roles: [HUMAN-001] required-payload-fields: [experiment-id, subject, arm-id, model-id, request-sha256, first-result-only, revision-count-at-capture, output-ref, output-sha256, screenshots, evaluator-blinded, metrics] payload-schema-ref: first-draft-evaluation.artifact.schema.json method-binding: { mode: independent-review } grounding-package: producer-roles: [STR-ANALYST] reviewer-capability: decision-approver required-payload-fields: [problem-structure, analysis-synthesis, evidence, options, source-contributions, lens-coverage] option-count-min: 2 payload-schema-ref: grounding-package.artifact.schema.json method-binding: mode: aggregate role-methods: STR-ANALYST: method-id: strategy-analysis checkpoint-step-id: diverge-options embedded-outputs: grounding-evidence: [problem-structure, evidence] analysis-synthesis: [analysis-synthesis] option-set: [options] grounding-contribution: producer-roles: [EXEC-CEO, EXEC-CTO, EXEC-CPO, EXEC-CFO, EXEC-COO, EXEC-CPTO, EXEC-VPENG, PROD-PM, PROD-PO, PROD-TPO, PROD-PPO, UX-RESEARCHER, DATA-ANALYST, DES-DIRECTOR, DES-PROD, DES-PLATFORM, DES-INTERNAL, DES-VISUAL, STR-ANALYST, ENG-FE, ENG-FEPLAT, ENG-FEUX, ENG-BE, ENG-BEGEN, ENG-PRODSERVER, ENG-PLATSERVER, ENG-PRODUCTMINDED, ENG-SW, ENG-DESKTOP, ENG-PRODCHAPTER, INFRA-DEV, INFRA-PLATFORM, INFRA-DEVOPS, SRE, SEC-DEVSECOPS, ARCH-EA, ARCH-SOLUTION, ARCH-APP, ARCH-TECH, ARCH-IT, ARCH-SYSANALYST, ARCH-SWAT, ARCH-BA, ARCH-BIZANALYST, ARCH-DATA, DATA-ENGINEER, DATA-BIGDATA, QA, SEC-ENGINEER, SEC-APPSEC, SEC-CHAMPION, OPS-CH, OPS-CREW, GTM-GROWTHPM, GTM-DEMANDGEN, GTM-PMM, GTM-CI, GTM-SALES, GTM-CS, GTM-PARTNER, GTM-REVOPS, GTM-PRICING, GTM-LEGAL, CONSULT-EM, CONSULT-STRAT, CONSULT-OPS, CONSULT-ORG, CONSULT-DIGITAL, CONSULT-FIN, DOC-LEAD, DOC-WRITER, DOC-IA, DOC-VISUAL, DOC-EDU] reviewer-capability: decision-approver required-payload-fields: [assigned-lens, producer-run-id, context-package-ref, context-package-sha256, findings, evidence-urls] payload-schema-ref: grounding-contribution.artifact.schema.json method-binding: { mode: lens-contribution } competitive-market-grounding: producer-roles: [GTM-CI] reviewer-capability: product-quality-auditor required-payload-fields: [assigned-lens, producer-run-id, context-package-ref, context-package-sha256, competitors-and-substitutes, current-alternatives, strengths-weaknesses, differentiation-hypotheses, evidence-urls] payload-schema-ref: competitive-market-grounding.artifact.schema.json method-binding: { mode: lens-contribution } executive-decision-packet: producer-roles: [EXEC-CEO] reviewer-capability: decision-approver required-payload-fields: [recommendation, selected-option-id, evaluation-criteria, option-evaluations, tradeoffs, dissent, kill-criteria, revisit-conditions, evidence-refs] allow-empty-payload-fields: [dissent] payload-schema-ref: executive-decision-packet.artifact.schema.json method-binding: mode: aggregate role-methods: EXEC-CEO: method-id: decide-direction checkpoint-step-id: converge-decision embedded-outputs: evidence-digest: [evidence-refs] option-evaluation: [evaluation-criteria, option-evaluations] product-decision: [recommendation, selected-option-id, tradeoffs, kill-criteria, revisit-conditions] overall-design: producer-roles: [ARCH-SOLUTION] reviewer-capability: architecture-auditor required-payload-fields: [basis-artifact-id, basis-artifact-sha256, source-artifact-refs, summary, architecture-boundaries, quality-attributes, decisions, dependencies, compatibility-assumptions] allow-empty-payload-fields: [dependencies] payload-schema-ref: overall-design.artifact.schema.json method-binding: { mode: stage-synthesis } api-design: producer-roles: [ARCH-APP, ARCH-TECH] reviewer-capability: technical-accuracy-auditor required-payload-fields: [basis-artifact-id, basis-artifact-sha256, summary, resources, auth-model, error-model, versioning, compatibility-assumptions] payload-schema-ref: api-design.artifact.schema.json data-model: producer-roles: [ARCH-DATA] reviewer-capability: data-quality-auditor required-payload-fields: [basis-artifact-id, basis-artifact-sha256, conceptual, logical, physical, ownership, classification, lineage, retention, compatibility, data-quality-thresholds] payload-schema-ref: data-model.artifact.schema.json metrics-analysis: producer-roles: [DATA-ANALYST] reviewer-capability: data-quality-auditor required-payload-fields: [metric-contract, dataset-snapshot, analysis-run, findings, limitations] payload-schema-ref: metrics-analysis.artifact.schema.json data-pipeline: producer-roles: [DATA-ENGINEER] reviewer-capability: data-quality-auditor required-payload-fields: [source-contract, schema-contract, correctness, time-semantics, lineage, operations, evidence-receipt-ids] payload-schema-ref: data-pipeline.artifact.schema.json bigdata-pipeline: producer-roles: [DATA-BIGDATA] reviewer-capability: data-quality-auditor required-payload-fields: [source-contract, schema-contract, processing-semantics, correctness, performance, recovery-tests, lineage, evidence-receipt-ids] payload-schema-ref: bigdata-pipeline.artifact.schema.json threat-model: producer-roles: [SEC-APPSEC, SEC-ENGINEER] reviewer-capability: security-auditor required-payload-fields: [basis-artifact-id, basis-artifact-sha256, dfd, trust-boundaries, threats, mitigations, residual-risks] allow-empty-payload-fields: [residual-risks] payload-schema-ref: threat-model.artifact.schema.json ui-design: producer-roles: [DES-PROD, DES-VISUAL, DES-DIRECTOR] reviewer-capability: product-quality-auditor required-payload-fields: [basis-artifact-id, basis-artifact-sha256, user-flows, screen-inventory, state-matrix, accessibility, design-system-bindings, visual-rationale] payload-schema-ref: ui-design.artifact.schema.json approved-design-direction: producer-roles: [DES-DIRECTOR] reviewer-capability: design-approver required-payload-fields: [basis-artifact-id, basis-artifact-sha256] prd: producer-roles: [PROD-PM, PROD-PO, PROD-TPO] reviewer-capability: product-quality-auditor required-payload-fields: [basis-artifact-id, basis-artifact-sha256, problem, outcomes, non-goals, user-stories, success-metrics, constraints] allow-empty-payload-fields: [non-goals, constraints] payload-schema-ref: prd.artifact.schema.json acceptance-criteria: producer-roles: [PROD-PO, PROD-PM] reviewer-capability: spec-approver required-payload-fields: [basis-artifact-id, basis-artifact-sha256, criteria] payload-schema-ref: acceptance-criteria.artifact.schema.json api-contract: producer-roles: [ARCH-TECH, ARCH-APP, ENG-BE, ENG-PRODSERVER] reviewer-capability: technical-accuracy-auditor required-payload-fields: [basis-artifact-id, basis-artifact-sha256, summary, protocol, version, operations, schemas, errors, compatibility] payload-schema-ref: api-contract.artifact.schema.json data-contract: producer-roles: [ARCH-DATA, DATA-ENGINEER] reviewer-capability: data-quality-auditor required-payload-fields: [basis-artifact-id, basis-artifact-sha256, datasets, schemas, ownership, quality-rules, privacy, versioning] payload-schema-ref: data-contract.artifact.schema.json migration-plan: producer-roles: [ARCH-DATA, DATA-ENGINEER, ENG-BE] reviewer-capability: data-quality-auditor required-payload-fields: [basis-artifact-id, basis-artifact-sha256, phases, rollback-plan, validation-plan, data-loss-tolerance, cutover-criteria] payload-schema-ref: migration-plan.artifact.schema.json completion-record: producer-roles: [ENG-BE, ENG-FE, ENG-BEGEN, ENG-PRODSERVER, ENG-SW, ENG-FEUX, ENG-PRODUCTMINDED, ENG-DESKTOP, DATA-ENGINEER, DATA-BIGDATA, DATA-ANALYST, ARCH-DATA, INFRA-DEVOPS, INFRA-PLATFORM, SRE, SEC-DEVSECOPS, SEC-ENGINEER, SEC-APPSEC, OPS-ORCH] reviewer-capability: quality-auditor required-payload-fields: [summary, source-revision, primary-artifacts, acceptance-criteria-coverage, verification-receipt-ids, remaining-risks] allow-empty-payload-fields: [remaining-risks] payload-schema-ref: completion-record.artifact.schema.json quality-gate-review: producer-roles: [QA, EXEC-VPENG, SEC-ENGINEER, SEC-APPSEC, ARCH-DATA] reviewer-capability: quality-auditor required-payload-fields: [quality-gate, blocker-open, reviewed-artifact-id, reviewed-artifact-sha256, checks, findings] allow-empty-payload-fields: [findings] payload-schema-ref: quality-gate-review.artifact.schema.json method-binding: { mode: independent-review } release-decision: producer-roles: [EXEC-CEO, HUMAN-001] reviewer-capability: release-decider required-payload-fields: [release-decision, unresolved-critical-risks, reviewed-completion-artifact-id, reviewed-completion-artifact-sha256, reviewed-quality-event-id, reviewed-quality-artifact-id, reviewed-quality-artifact-sha256] payload-schema-ref: release-decision.artifact.schema.json method-binding: { mode: workflow-control } blocked-report: reviewer-capability: artifact-reviewer required-payload-fields: [blocker, resume-condition] payload-schema-ref: blocked-report.artifact.schema.json resume-evidence: producer-roles: [OPS-ORCH, HUMAN-001] reviewer-capability: artifact-reviewer required-payload-fields: [resume-condition-satisfied] payload-schema-ref: resume-evidence.artifact.schema.json company-context: producer-roles: [OPS-ORCH] reviewer-capability: decision-approver required-payload-fields: [status, company, products, operating-constraints, assumptions, evidence-refs] allow-empty-payload-fields: [operating-constraints, assumptions] payload-schema-ref: company-context.artifact.schema.json opportunity-cluster: producer-roles: [STR-ANALYST] reviewer-capability: decision-approver required-payload-fields: [source-artifact-refs, id, problem-domain, target-user, triggering-event, current-alternative, why-now, founder-fit] payload-schema-ref: opportunity-cluster.artifact.schema.json method-binding: { mode: stage-synthesis } venture-validation: producer-roles: [EXEC-CEO] reviewer-capability: product-quality-auditor required-payload-fields: [source-artifact-refs, hypotheses, experiments, evidence, option-evaluations, kill-criteria, recommendation] payload-schema-ref: venture-validation.artifact.schema.json method-binding: { mode: stage-synthesis } venture-decision: producer-roles: [EXEC-CEO] reviewer-capability: decision-approver required-payload-fields: [recommendation, selected-option-id, evaluation-criteria, option-evaluations, tradeoffs, dissent, kill-criteria, revisit-conditions, evidence-refs] allow-empty-payload-fields: [dissent] payload-schema-ref: executive-decision-packet.artifact.schema.json method-binding: mode: aggregate role-methods: EXEC-CEO: method-id: decide-direction checkpoint-step-id: converge-decision embedded-outputs: evidence-digest: [evidence-refs] option-evaluation: [evaluation-criteria, option-evaluations] product-decision: [recommendation, selected-option-id, tradeoffs, kill-criteria, revisit-conditions] direction-discovery: producer-roles: [DES-DIRECTOR] reviewer-capability: design-approver required-payload-fields: [direction-input-brief-sha256, findings, constraints-restated] divergence-charter: producer-roles: [DES-DIRECTOR] reviewer-capability: design-approver required-payload-fields: [direction-cycle-id, representative-screen, directions, pairwise-separation] direction-set: producer-roles: [DES-VISUAL] reviewer-capability: design-approver required-payload-fields: [direction-cycle-id, divergence-charter-ref, divergence-charter-sha256, representative-screen, directions, comparison-preview] comparative-divergence-audit: producer-roles: [DES-VISUAL] reviewer-capability: design-approver required-payload-fields: [direction-cycle-id, divergence-charter-ref, divergence-charter-sha256, direction-set-ref, direction-set-sha256, reviewer-role-id, reviewer-run-id, verdict, pairwise-comparisons, full-size-previews, blocking-findings] allow-empty-payload-fields: [blocking-findings] selected-direction: producer-roles: [DES-DIRECTOR] reviewer-capability: design-approver required-reviewer-roles: [HUMAN-001] required-payload-fields: [direction-set-ref, direction-set-sha256, rejected-directions, parent-workflow-id, product-decision-id, direction-input-brief-sha256, selection-acceptance-receipt] winner-prototype: producer-roles: [DES-PLATFORM, ENG-FEUX, ENG-FE] reviewer-capability: design-approver required-payload-fields: [selected-direction-ref, selected-direction-sha256, source-artifact-refs, prototype-path, prototype-sha256, preview-receipt-ref, revision] method-binding: { mode: stage-synthesis } design-review-panel: producer-roles: [DES-DIRECTOR] reviewer-capability: design-approver required-payload-fields: [direction-cycle-id, target-prototype-id, target-prototype-sha256, reviews, synthesis] payload-schema-ref: design-review-panel.artifact.schema.json design-lens-review: producer-roles: [DES-PROD, UX-RESEARCHER, DES-VISUAL, DES-PLATFORM, GTM-PMM, ENG-FE] reviewer-capability: design-approver required-payload-fields: [direction-cycle-id, target-prototype-id, target-prototype-sha256, reviewer-role-id, reviewer-run-id, lens, verdict, findings] allow-empty-payload-fields: [findings] payload-schema-ref: design-lens-review.artifact.schema.json method-binding: { mode: independent-review } approved-direction: producer-roles: [DES-DIRECTOR] reviewer-capability: design-approver required-payload-fields: [parent-workflow-id, child-workflow-id, product-decision-id, direction-input-brief-sha256, selected-direction-ref, selected-direction-sha256, winner-prototype-ref, winner-prototype-sha256, visual-thesis, interaction-model, design-token-contract, acceptance-receipt-ref] payload-schema-ref: approved-direction.artifact.schema.json pre-direction-framing: producer-roles: [DES-PROD] reviewer-capability: design-approver required-payload-fields: [brief, experience-constraints, direction-input-brief] method-binding: mode: aggregate role-methods: DES-PROD: method-id: pre-direction checkpoint-step-id: author-input-brief embedded-outputs: design-brief: [brief] experience-constraints: [experience-constraints] direction-input-brief: [direction-input-brief] wave-plan: producer-roles: [OPS-ORCH] reviewer-capability: architecture-auditor required-payload-fields: [scope, work-items, dependencies, acceptance-criteria, risks, owners] allow-empty-payload-fields: [dependencies, risks] payload-schema-ref: wave-plan.artifact.schema.json compatibility-review: producer-roles: [QA, ARCH-SOLUTION, ARCH-SWAT, ARCH-DATA, SEC-ENGINEER] reviewer-capability: quality-auditor required-payload-fields: [left, right, dimensions, findings, verdict, reviewer-role-id] allow-empty-payload-fields: [findings] payload-schema-ref: compatibility-review.artifact.schema.json method-binding: { mode: independent-review } method-judgment-review: producer-roles: [QA, ARCH-SWAT, ARCH-DATA, SEC-ENGINEER, SEC-APPSEC, DES-DIRECTOR, DES-PROD, UX-RESEARCHER, EXEC-VPENG] reviewer-capability: quality-auditor required-payload-fields: [method-role-id, method-id, step-id, gate-id, criterion, reviewed-artifact-id, reviewed-artifact-sha256, reviewer-role-id, verdict, findings] allow-empty-payload-fields: [findings] payload-schema-ref: method-judgment-review.artifact.schema.json method-binding: { mode: independent-review } compatibility-contracts: - { left: overall-design, right: api-design, dimensions: [boundary, auth, versioning] } - { left: overall-design, right: data-model, dimensions: [ownership, lifecycle, consistency] } - { left: overall-design, right: threat-model, dimensions: [trust-boundary, controls, residual-risk] } - { left: approved-design-direction, right: ui-design, dimensions: [interaction, tokens, accessibility] } - { left: prd, right: api-contract, dimensions: [use-case, error-semantics, acceptance] } - { left: data-contract, right: migration-plan, dimensions: [schema, cutover, rollback] } - { left: api-contract, right: data-contract, dimensions: [identity, consistency, versioning] } artifact-bundles: design-bundle: always: [overall-design] conditional: - { when: public-api, require: [api-design] } - { when: persistence, require: [data-model] } - { when: security-bearing, require: [threat-model] } - { when: ui, require: [approved-design-direction, ui-design] } spec-bundle: always: [acceptance-criteria] conditional: - { when: product-feature, require: [prd] } - { when: public-api, require: [api-contract] } - { when: persistence, require: [data-contract, migration-plan] }