TenantAtlas/specs/223-astrodeck-website-rebuild/contracts/rebuild-planning-artifacts.yaml
ahmido 71f94c3afa
Some checks failed
Main Confidence / confidence (push) Failing after 44s
spec: finalize 223 AstroDeck rebuild planning consistency (#262)
## Summary
- finalize Spec 223 planning artifact set for AstroDeck website rebuild
- align `spec.md`, `plan.md`, `tasks.md`, `research.md`, `data-model.md`, `quickstart.md`, and contract schema
- add/complete inventory, mapping, exception, drift-follow-up, and supersession artifacts
- mark legacy website-spec task references as superseded and wire follow-up ownership

## Key Outcomes
- no remaining cross-artifact consistency findings in the Spec 223 bundle
- explicit Spec 213 handling path added
- material-drift follow-up rules normalized
- exception register and documented exception model made explicit and schema-backed

## Validation
- Integrated browser smoke check passed for main website routes (`/`, `/product`, `/trust`, `/changelog`, `/contact`, `/privacy`, `/imprint`, `/legal`, `/security-trust`)
- no console errors/warnings observed during route smoke navigation
- YAML contract parses successfully

Co-authored-by: Ahmed Darrazi <ahmed.darrazi@live.de>
Reviewed-on: #262
2026-04-22 07:52:32 +00:00

345 lines
10 KiB
YAML

version: 1
feature: 223-astrodeck-website-rebuild
description: File-based contract for the planning artifacts required by the AstroDeck rebuild workflow.
artifacts:
astroDeckSourceIntake:
description: Reviewable source-intake record for the AstroDeck snapshot being evaluated before primitive mapping begins.
type: object
required:
- sourceSnapshotReference
- intakeConstraints
- reviewAssumptions
properties:
sourceSnapshotReference:
type: string
intakeConstraints:
type: array
items:
type: string
reviewAssumptions:
type: array
items:
type: string
currentWebsiteInventory:
description: Current `apps/website` surface inventory captured before any AstroDeck replacement work starts.
type: object
required:
- surfaces
properties:
surfaces:
type: array
items:
type: object
required:
- route
- sourceFile
- surfaceRole
- governingSpecs
- plannedDisposition
properties:
route:
type: string
sourceFile:
type: string
surfaceRole:
type: string
governingSpecs:
type: array
items:
type: integer
currentDependencies:
type: array
items:
type: string
plannedDisposition:
type: string
enum: [keep, adapt, remove, redirect]
astroDeckPrimitiveInventory:
description: Inventory of candidate AstroDeck pages, sections, and components.
type: object
required:
- primitives
properties:
primitives:
type: array
items:
type: object
required:
- primitiveId
- primitiveType
- sourceReference
properties:
primitiveId:
type: string
primitiveType:
type: string
enum: [page, section, component]
sourceReference:
type: string
candidateSurfaces:
type: array
items:
type: string
demoContentFlags:
type: array
items:
type: string
notes:
type: string
governingSpecClassification:
description: Classification of the active website spec set before rebuild implementation starts.
type: object
required:
- specs
properties:
specs:
type: array
items:
type: object
required:
- specId
- title
- classification
- scopeSummary
- rationale
- followUpPlan
properties:
specId:
type: integer
title:
type: string
classification:
type: string
enum: [continuing, "partially valid", superseded]
scopeSummary:
type: string
rationale:
type: string
followUpPlan:
description: Path to the per-spec mapping artifact or explicit supersession-closure artifact that owns current-slice delivery for this spec.
type: string
primitiveMapping:
description: Mapping of one governing website spec requirement to one AstroDeck primitive, including the replacement task ownership embedded in the same per-spec artifact.
type: object
required:
- mappings
properties:
mappings:
type: array
items:
type: object
required:
- specId
- requirementReference
- disposition
- acceptanceMapping
- replacementTasks
properties:
specId:
type: integer
requirementReference:
type: string
primitiveId:
description: Required when disposition is keep, adapt, or remove; omitted when disposition is exception.
type: string
disposition:
type: string
enum: [keep, adapt, remove, exception]
adaptationSummary:
type: string
acceptanceMapping:
type: string
replacementTasks:
description: Ordered replacement task list owned by the same per-spec mapping or disposition artifact.
type: array
items:
type: string
taskPrimitiveReferences:
description: Named AstroDeck pages, sections, components, or explicit mapping activities referenced by the replacement task list.
type: array
items:
type: string
materialDriftReferences:
type: array
items:
type: string
exceptionReference:
type: string
oneOf:
- properties:
disposition:
enum: [keep, adapt, remove]
required:
- primitiveId
- properties:
disposition:
enum: [exception]
required:
- exceptionReference
supersessionClosure:
description: Explicit closure artifact for an in-scope website spec that ends the rebuild review as superseded instead of continuing into a mapping-based plan.
type: object
required:
- specId
- classification
- closureRationale
- legacyTaskDispositionReference
- replacementReference
properties:
specId:
type: integer
classification:
type: string
enum: [superseded]
closureRationale:
type: string
legacyTaskDispositionReference:
type: string
replacementReference:
description: Replacement plan reference or an explicit `no replacement work required` statement.
type: string
notes:
type: string
legacyTaskDisposition:
description: Historical task record preserved while being superseded by the rebuild.
type: object
required:
- dispositions
properties:
dispositions:
type: array
items:
type: object
required:
- originalSpecId
- originalTaskReference
- disposition
- replacementReference
properties:
originalSpecId:
type: integer
originalTaskReference:
type: string
disposition:
type: string
enum: ["superseded by AstroDeck rebuild"]
replacementReference:
description: New plan, task set, or an explicit `no replacement work required` statement.
type: string
notes:
type: string
materialDriftFollowUp:
description: Explicit spec-update follow-up record for material page inventory, CTA logic, navigation, or trust messaging drift discovered during mapping.
type: object
required:
- driftRecords
properties:
driftRecords:
type: array
items:
type: object
required:
- affectedSpecId
- driftClass
- driftSummary
- requiredSpecAction
- targetSpecReference
properties:
affectedSpecId:
type: integer
driftClass:
type: string
enum: ["page inventory", "CTA logic", navigation, "trust messaging"]
driftSummary:
type: string
requiredSpecAction:
type: string
enum: ["update existing spec", "create follow-up spec"]
targetSpecReference:
type: string
notes:
type: string
exceptionRegister:
description: Standing review register for missing-candidate checks, including approved exceptions and explicit no-exception outcomes.
type: object
required:
- entries
properties:
entries:
type: array
items:
type: object
required:
- specId
- scope
- reviewOutcome
- reviewRationale
properties:
specId:
type: integer
scope:
type: string
reviewOutcome:
type: string
enum: ["approved exception", "no exception required"]
reviewRationale:
type: string
exceptionReference:
type: string
notes:
type: string
oneOf:
- properties:
reviewOutcome:
enum: ["approved exception"]
required:
- exceptionReference
- properties:
reviewOutcome:
enum: ["no exception required"]
documentedException:
description: Approved exception record for custom work when no adequate AstroDeck primitive exists, stored inside the exception register when reviewOutcome is `approved exception`.
type: object
required:
- exceptions
properties:
exceptions:
type: array
items:
type: object
required:
- scope
- missingCandidate
- unmetRequirement
- adequacyFailureReason
- boundedDeviation
- approvedBy
- approvalReference
- spreadControl
properties:
scope:
type: string
missingCandidate:
type: string
unmetRequirement:
type: string
adequacyFailureReason:
type: string
boundedDeviation:
type: string
approvedBy:
type: string
approvalReference:
type: string
spreadControl:
type: string