Skip to main content

PRD Consistency Review and Update Log

Date: 2025-10-24 Reviewer: Claude Code Task: Review PRD files for consistency and update as needed


Executive Summary

Three PRD files were analyzed for consistency:

  1. TVL-Platform-Specification-2025-10-21.md (1097 lines) - High-level platform overview
  2. TVL Data and Domain Model Specification 2025-10-21 (1).md (3256 lines) - Detailed entity definitions
  3. tvl-mvp-v0-prd.updated.md (199 lines) - Hostaway distribution MVP

Total Changes Made: 5 critical updates across 3 files Files Modified: All 3 PRD files + orchestrator script Status: ✅ All critical inconsistencies resolved


Changes Summary Table

FileChange TypeLines ModifiedPriorityStatus
Data Model SpecDuplicate Removal~214 lines deletedHIGH✅ Complete
Data Model SpecEntity Addition25 lines addedHIGH✅ Complete
Data Model SpecClarification15 lines modifiedHIGH✅ Complete
MVP PRDRole Mapping6 lines addedHIGH✅ Complete
OrchestratorFormat Update40 lines modifiedHIGH✅ Complete

Detailed Changes

1. Fixed Duplicate Authorization Section

File: prd/TVL Data and Domain Model Specification 2025-10-21 (1).md Lines: 541-754 (removed) Priority: HIGH Issue: Complete duplicate of Authorization & Access Control domain

Change:

  • Removed duplicate section starting at line 541
  • Section was identical to the first occurrence at lines 327-540
  • Caused confusion and document bloat (~214 lines)

Rationale:

  • Document had two complete copies of the same Authorization section
  • This was likely a copy-paste error during document assembly
  • Keeping duplicate would cause maintenance issues

Impact:

  • Document reduced from 3256 to ~3042 lines
  • Improved document clarity and maintainability
  • No information loss (content was identical)

2. Added UnitSnapshot Entity Definition

File: prd/TVL Data and Domain Model Specification 2025-10-21 (1).md Lines: 1604-1629 (added) Section: Content, Media & Metadata → Core Concepts Priority: HIGH Issue: MVP PRD referenced UnitSnapshot entity that was not defined in platform specifications

Change Added:

### **UnitSnapshot (Version History)**

* **Purpose:** Captures immutable snapshots of Unit state for version history,
diff preview, and recovery/replay workflows.

* **Attributes:**
* `unit_id` (FK to Unit)
* `version` (incremented on each Unit update)
* `snapshot` (jsonb — complete Unit state including name, description, capacity, amenities, media)
* `diff_hash` (SHA-256 hash of changes from previous version)
* `created_at`, `created_by` (audit fields)

* **Why:** Enables operators to preview changes before publishing, compare versions,
and replay from a known-good state when distribution errors occur.

* **Lifecycle:** Created automatically on each Unit write; retained for 90 days or per retention policy.

* **MVP Use Case:** Powers diff preview in UI and manual replay for Hostaway distribution
(see Channels domain).

* **Relationships:**
* Unit → UnitSnapshot: 1→* (one Unit has many snapshots)
* UnitSnapshot referenced by ChannelListing for idempotency tracking

Rationale:

  • MVP PRD (Hostaway distribution) requires Unit versioning and snapshot capability
  • This entity was being used but not formally defined in the platform specification
  • Essential for idempotency, diff preview, and replay workflows in distribution system

Impact:

  • Platform specification now fully defines all entities referenced by MVP
  • Clear data model for version history and recovery mechanisms
  • Supports diff preview and manual replay features in distribution UI

3. Reconciled Role Naming Inconsistency

File: prd/tvl-mvp-v0-prd.updated.md Lines: 58-63 (added mapping section) Section: § 4.1 Authentication & Authorization Priority: HIGH Issue: MVP used different role names than Platform Specification

Platform Spec Roles: admin, ops, owner_admin, manager, viewer MVP Roles: Owner, ChannelPublisher, ContentManager, Viewer

Change Added:

- **Role Mapping to Platform Spec**: MVP roles map to platform authorization model as follows:
- `Owner` → combines `admin` + `owner_admin` permissions (full org/account management)
- `ChannelPublisher` → equivalent to `ops` with added `channel.manage` permission
- `ContentManager` → equivalent to `manager` with `space.write`, `media.write`, `unit.write`
- `Viewer` → maps directly to platform `viewer` role (read-only)
- **Note**: MVP uses simplified role names for operator UX; implementation uses
platform permission bundles.

Rationale:

  • MVP needed operator-friendly role names for UI/UX clarity
  • Platform Specification uses technical permission-based role names
  • Without mapping, developers would be confused about which roles to implement
  • Clarifies that MVP roles are aliases that map to platform permission system

Impact:

  • Clear mapping between MVP role names and platform authorization model
  • Developers can implement using platform's permission bundles
  • Operators see simplified, context-appropriate role names in MVP UI

4. Clarified Space vs Unit Distribution

File: prd/TVL Data and Domain Model Specification 2025-10-21 (1).md Sections Modified:

  1. Lines 1744-1750 (TL;DR section)
  2. Lines 1762-1766 (Relationships & Cardinality)
  3. Lines 1810-1822 (ChannelListing entity definition)

Priority: HIGH Issue: Ambiguous whether distribution works at Space level or Unit level

Changes Made:

A) TL;DR Section (lines 1744-1750):

* **ChannelListing** = the external representation of a Space or Unit on that channel.
* **Distribution Granularity:** MVP distributes at **Unit level** (one ChannelListing
per Unit per channel); Space-level distribution may be used for single-unit properties.
Multi-unit properties distribute Units individually.
* **Villa MVP:** one-way iCal and manual listing uploads (Airbnb, VRBO); Hostaway API
integration at Unit level.

B) Relationships & Cardinality (lines 1762-1766):

* **Channel → ChannelListing:** 1→\* — one listing per Space or Unit per channel.
* **Space → ChannelListing:** 1→\* — for Space-level distribution (single-unit properties).
* **Unit → ChannelListing:** 1→\* — for Unit-level distribution (MVP default; used for
multi-unit properties and Hostaway integration).

C) ChannelListing Entity (lines 1810-1822):

* **Attributes:**
* `space_id` (nullable, for Space-level distribution)
* `unit_id` (nullable, for Unit-level distribution)
* `channel_id`, `external_id`, `status (active|paused|archived)`
* `last_synced_at`, `sync_status (ok|error|pending)`, `last_payload_hash` (for idempotency)
* **Constraint:** exactly one of `space_id` or `unit_id` must be populated (not both, not neither)

* **MVP:** Unit-level distribution for Hostaway (automated API sync); manual entry of
external IDs for Airbnb/VRBO (Space-level iCal).

Rationale:

  • Original text only mentioned "Space" but MVP clearly uses Unit-level distribution
  • Multi-unit properties (e.g., hotels, resorts) need Unit-level granularity
  • Single-villa properties can use either Space or Unit level
  • Clarifies database schema constraint: one of space_id OR unit_id must be set

Impact:

  • Clear guidance on when to use Space-level vs Unit-level distribution
  • Schema constraint prevents invalid ChannelListing records
  • MVP implementation correctly reflects Unit-level distribution
  • Future support for both granularities is explicitly defined

5. Updated PRD Review Orchestrator

File: prompts/prd-review-orchestrator.txt Lines Modified: Multiple sections (title, inputs, sub-agents, validation gates, outputs) Priority: HIGH Issue: Orchestrator expected PDF files but PRD files are in Markdown (.md) format

Key Changes:

A) Title Update:

OLD: PRD PDF Review → Research Continuation → Docs Completion → API Deltas
NEW: PRD Markdown Review → Consistency Check → Docs Completion → API Deltas

B) Inputs Section:

- prd/*.md                           # Source PRD documents (Platform Spec, Data Model, MVP)
- meta/prd-consistency-analysis.md # PRD consistency analysis and mapping

C) PRD Files to Review (NEW):

1. TVL-Platform-Specification-2025-10-21.md
- Purpose: High-level platform architecture and domain overview (1097 lines)
2. TVL Data and Domain Model Specification 2025-10-21 (1).md
- Purpose: Detailed entity definitions (3256 lines)
- Note: Duplicate Authorization section has been removed (fixed)
3. tvl-mvp-v0-prd.updated.md
- Purpose: Hostaway distribution MVP specification (199 lines)
- Note: Uses Unit-level distribution; role mapping to platform spec added

D) Outputs Section:

- meta/reports/prd-consistency.md    # Cross-file consistency validation
- meta/prd-change-log.md # Log of all PRD modifications made

E) Sub-Agents Update:

A) PRD Ingestion & Consistency Agent
- Parse prd/*.md → meta/reports/prd-review/<file>.md
- Cross-validate consistency between Platform Spec, Data Model, and MVP
- Identify entity, role, and relationship mismatches
- Document resolved inconsistencies in meta/prd-change-log.md

F) Validation Gates:

- Stop on RED if:
- PRD .md file parse fails or is corrupted
- Critical inconsistencies between Platform Spec and Data Model
- Data model conflicts detected between PRD files

Rationale:

  • User provided .md files, not PDFs
  • Orchestrator needs to validate consistency between the three PRD files
  • Added explicit file listing so orchestrator knows what to review
  • Updated sub-agents to include consistency checking as core task
  • Added output for change log to track modifications

Impact:

  • Orchestrator can now process the actual PRD files provided
  • Consistency checking is a first-class concern
  • Clear audit trail of changes via prd-change-log.md
  • Validation gates catch inconsistencies between PRD files

Consistency Analysis Summary

Critical Issues Resolved ✅

  1. Duplicate Content

    • Issue: Complete duplicate Authorization section
    • Resolution: Removed duplicate (lines 541-754)
    • Impact: Document clarity, reduced maintenance burden
  2. Missing Entity Definition

    • Issue: UnitSnapshot referenced but not defined
    • Resolution: Added complete entity definition to Content domain
    • Impact: Complete data model, supports MVP requirements
  3. Role Naming Conflict

    • Issue: MVP roles different from Platform Specification roles
    • Resolution: Added explicit role mapping documentation
    • Impact: Clear implementation guidance, no developer confusion
  4. Distribution Granularity Ambiguity

    • Issue: Unclear if distribution is Space-level or Unit-level
    • Resolution: Clarified both are supported; MVP uses Unit-level
    • Impact: Clear schema design, correct MVP implementation
  5. Orchestrator File Format Mismatch

    • Issue: Orchestrator expected PDFs, actual files are .md
    • Resolution: Updated orchestrator for Markdown processing
    • Impact: Orchestrator can now run successfully

Remaining Items for Future Consideration

Medium Priority (Not Blocking MVP)

  1. Account vs Org Scoping in MVP

    • Platform Spec requires both org_id and account_id for all actor-owned data
    • MVP documentation doesn't explicitly mention account_id usage in distribution
    • Recommendation: Clarify whether ChannelTargets are org-scoped or account-scoped
    • Impact: Affects multi-Account scenarios (e.g., TVL Ops managing owner properties)
  2. Content Storage Strategy for Units

    • Platform Spec has separate Description, MediaAsset entities
    • MVP stores content in UnitSnapshot JSONB field
    • Recommendation: Document whether MVP uses Content domain tables or embedded snapshots
    • Impact: Affects data normalization and query patterns
  3. Financial Reconciliation Path

    • MVP explicitly states "Hostaway handles bookings and payments"
    • Platform Spec defines full Payments, Payouts, Ledger domain
    • Recommendation: Document how external bookings integrate with internal Ledger in future phases
    • Impact: Future v0.1+ when inbound booking data flows back from Hostaway
  4. Audit Trail Integration

    • Platform Spec uses AuditEvent entity with before/after snapshots and signatures
    • MVP uses "redacted body hashes and metadata" for outbound audit
    • Recommendation: Clarify if MVP audit should use platform AuditEvent or remain independent
    • Impact: Audit trail consistency across system

Low Priority (Future Phases)

  1. User Provisioning Flow

    • MVP mentions Google SSO and auto-provisioning
    • Platform Spec defines User, Membership, Org, Account relationships
    • Recommendation: Document complete journey: Google login → User creation → Membership assignment
    • Impact: Implementation detail for authentication system
  2. Schema Migration Strategy

    • MVP introduces UnitSnapshot table
    • Platform Spec mentions versioned migrations (Alembic/Liquibase)
    • Recommendation: Add migration template for UnitSnapshot in governance docs
    • Impact: Deployment planning and rollback procedures

Files Modified

PRD Files

  1. prd/TVL Data and Domain Model Specification 2025-10-21 (1).md

    • Removed duplicate Authorization section (~214 lines)
    • Added UnitSnapshot entity definition (25 lines)
    • Clarified Space vs Unit distribution (15 lines modified)
  2. prd/tvl-mvp-v0-prd.updated.md

    • Added role mapping to platform specification (6 lines)
  3. prd/TVL-Platform-Specification-2025-10-21.md

    • No changes required (high-level overview file; detailed definitions in Data Model file)

Orchestrator Files

  1. prompts/prd-review-orchestrator.txt
    • Updated to work with .md files instead of PDFs
    • Added consistency checking as explicit task
    • Added PRD file listing and status notes
    • Updated validation gates and outputs

New Files Created

  1. meta/prd-change-log.md (this file)
    • Complete documentation of all changes made

Validation Checklist

Consistency Validation ✅

  • All three PRD files reviewed for consistency
  • Entity definitions aligned (UnitSnapshot added)
  • Role naming reconciled with explicit mapping
  • Distribution granularity clarified (Space vs Unit)
  • No duplicate content remains
  • All MVP-referenced entities defined in platform spec

Schema Consistency ✅

  • ChannelListing schema supports both Space and Unit
  • UnitSnapshot schema defined with all attributes
  • Constraint added: exactly one of space_id or unit_id
  • Relationships and cardinality updated

Documentation Quality ✅

  • All changes documented with rationale
  • Impact assessment provided for each change
  • Future considerations identified
  • Change log follows structured format

Orchestrator Readiness ✅

  • Updated to process .md files
  • Consistency checking added to sub-agents
  • Validation gates updated for PRD consistency
  • Output includes prd-change-log.md

Next Steps

  1. Execute the Updated Orchestrator

    • Run prompts/prd-review-orchestrator.txt
    • Validate that all sub-agents can process the PRD files
    • Review generated reports in meta/reports/
  2. Review Generated Reports

    • Check meta/reports/prd-consistency.md for any additional issues
    • Review meta/reports/completeness-audit.md for documentation gaps
    • Examine meta/reports/api-deltas.md for API changes needed
  3. Address Medium Priority Items

    • Clarify account_id usage in MVP ChannelTargets
    • Document content storage strategy (Content domain vs embedded snapshots)
    • Define financial reconciliation path for future phases
  4. Update Domain Documentation

    • Ensure docs/02-domains/ reflects UnitSnapshot entity
    • Update Channel distribution documentation with Space vs Unit clarification
    • Add role mapping table to Authorization domain docs
  5. Schema Migration Planning

    • Create migration for UnitSnapshot table
    • Add migration for ChannelListing Space/Unit constraint
    • Document rollback procedures

Approval & Sign-off

Consistency Review Completed: 2025-10-24 Reviewed By: Claude Code Status: ✅ Ready for orchestrator execution

Critical Issues: 0 remaining Medium Priority Items: 4 identified (not blocking) Low Priority Items: 2 identified (future phases)


End of Change Log