{
  "schemaVersion": 1,
  "generatedFrom": "src/data/catalogue.js",
  "wiki": {
    "title": "Co.Property internal wiki",
    "version": "2026.10.20.2",
    "date": "20 October 2026"
  },
  "page": {
    "stableId": "property-lifecycle#page",
    "pageId": "property-lifecycle",
    "pageTitle": "Property lifecycle: from enquiry to review",
    "pageSlug": "workflows/property-lifecycle",
    "sectionId": "page",
    "sectionTitle": "Property lifecycle: from enquiry to review",
    "sectionProse": [
      "A property service lifecycle connects owner needs, identity, stays, readiness, settlement, and learning. It is a model to validate, not a claim that every handover is automated.",
      "Show what should travel with a property through the service so a useful handover does not depend on memory or a familiar listing name.",
      "Enquiry becomes qualification, onboarding, listing, reservation, stay, turnover, readiness, settlement, and review. The turnover, finance, and learning pages explain the high-care stages.",
      "Each stage has a different useful question",
      "At enquiry and qualification, the useful question is whether the owner need, service fit, and responsible contact are understood. At onboarding and listing, it is whether the property identity and required readiness information can be matched to provider records.",
      "At reservation and stay, the operating date, arrivals, departures, and exceptions must be clear. At turnover and readiness, the team needs assigned work, evidence, and manager review. At settlement and review, it needs supported financial records, authorised review, and a lesson that can improve the next cycle.",
      "Identity is the thread through the lifecycle",
      "A familiar display name is not enough to join a departure, cleaning task, and next arrival. The same confirmed property identity must be present in the source record, task, and readiness decision.",
      "When identity is incomplete, treat the ambiguity as an exception. A plausible match is not a safe substitute for a confirmed one, especially where unit names or listing variants overlap.",
      "An exception is a visible work item, not a hidden gap",
      "If provider information is old, incomplete, or cannot be matched, the response is to confirm coverage or ask for a new source read. If a task is assigned but has no completion evidence, the response is to request the missing result. These are different states and should not share a reassuring label.",
      "The wiki does not claim that all exception routing is complete in the installed system. It explains the decision boundary so an operator can investigate it safely."
    ],
    "version": "2026.10.20.2",
    "date": "20 October 2026",
    "status": "Checked",
    "currentStatus": "Checked — the lifecycle stages are documented; automation and transition completeness are not assumed.",
    "proposedStatus": "Validate each handover against a current property record and its authoritative provider source.",
    "expectedOutcome": "An incoming need can become a supported operational result with a named exception when it cannot.",
    "tests": [
      "Check lifecycle nodes link to the focused turnover, finance, and learning pages.",
      "Check the content says that provider transitions need validation rather than asserting automation."
    ],
    "sourcePointers": [
      "docs/OPERATING-ARCHITECTURE.md",
      "coprop_kb/company_os.py",
      "coprop_kb/workflows.py",
      "coprop_kb/operations.py",
      "tests/test_workflows.py",
      "tests/test_operations.py",
      "Handoff / pages/workflows.html",
      "Handoff / pages/organisation.html"
    ],
    "related": [
      {
        "id": "turnover",
        "title": "Turnover readiness: evidence before a ready decision",
        "summary": "A turnover prepares a property between stays. Assignment, cleaning completion, evidence, verification, and readiness are separate states that must refer to the same confirmed property.",
        "status": "In progress",
        "path": "/workflows/turnover-evidence/"
      },
      {
        "id": "finance-records",
        "title": "Finance records: support the review before the conclusion",
        "summary": "Financial planning and settlement work need identifiable source records, clear commitments, authorised review, and a traceable link to any learning that follows.",
        "status": "Checked",
        "path": "/workflows/finance-records/"
      },
      {
        "id": "sop-learning",
        "title": "SOP learning: turn observations into a better next step",
        "summary": "Learning connects incidents, reports, and repeated exceptions to a reviewed procedure. It prevents a useful lesson from being stranded in a one-off conversation.",
        "status": "Checked",
        "path": "/workflows/sop-learning/"
      }
    ],
    "sshTarget": {
      "alias": "coproperty-office",
      "hostname": "copropertys-mac-mini.tail3ab9e5.ts.net",
      "user": "coproperty",
      "projectPath": "/Users/coproperty/Projects/coproperty-office-os",
      "codexPath": "/Users/coproperty/.local/bin/codex",
      "hostFingerprint": "SHA256:UUFmlsdclEmRtyRWNqAdVYUoFxeUkRUGhbzObQPsOPg",
      "requiredChecks": [
        "Verify the hostname, project path, and repository status before any work.",
        "Create an isolated task worktree outside the installed project.",
        "Never modify the installed runtime from this contribution path."
      ]
    }
  },
  "sections": {
    "lifecycle": {
      "stableId": "property-lifecycle#lifecycle",
      "pageId": "property-lifecycle",
      "pageTitle": "Property lifecycle: from enquiry to review",
      "pageSlug": "workflows/property-lifecycle",
      "sectionId": "lifecycle",
      "sectionTitle": "Each stage has a different useful question",
      "sectionProse": [
        "At enquiry and qualification, the useful question is whether the owner need, service fit, and responsible contact are understood. At onboarding and listing, it is whether the property identity and required readiness information can be matched to provider records.",
        "At reservation and stay, the operating date, arrivals, departures, and exceptions must be clear. At turnover and readiness, the team needs assigned work, evidence, and manager review. At settlement and review, it needs supported financial records, authorised review, and a lesson that can improve the next cycle."
      ],
      "version": "2026.10.20.2",
      "date": "20 October 2026",
      "status": "Checked",
      "currentStatus": "Checked — this describes the documented business lifecycle, not current automation coverage.",
      "proposedStatus": "Capture a real handover artifact for each stage before calling the transition complete.",
      "expectedOutcome": "Every stage has a question, source context, and a handover another person can verify.",
      "tests": [
        "Check all lifecycle labels are represented in the SVG text equivalent.",
        "Check no stage implies an accepted readiness result without supporting evidence."
      ],
      "sourcePointers": [
        "docs/OPERATING-ARCHITECTURE.md",
        "coprop_kb/company_os.py",
        "coprop_kb/workflows.py",
        "coprop_kb/operations.py",
        "tests/test_workflows.py",
        "tests/test_operations.py",
        "Handoff / pages/workflows.html",
        "Handoff / pages/organisation.html"
      ],
      "related": [
        {
          "id": "turnover",
          "title": "Turnover readiness: evidence before a ready decision",
          "summary": "A turnover prepares a property between stays. Assignment, cleaning completion, evidence, verification, and readiness are separate states that must refer to the same confirmed property.",
          "status": "In progress",
          "path": "/workflows/turnover-evidence/"
        },
        {
          "id": "finance-records",
          "title": "Finance records: support the review before the conclusion",
          "summary": "Financial planning and settlement work need identifiable source records, clear commitments, authorised review, and a traceable link to any learning that follows.",
          "status": "Checked",
          "path": "/workflows/finance-records/"
        },
        {
          "id": "sop-learning",
          "title": "SOP learning: turn observations into a better next step",
          "summary": "Learning connects incidents, reports, and repeated exceptions to a reviewed procedure. It prevents a useful lesson from being stranded in a one-off conversation.",
          "status": "Checked",
          "path": "/workflows/sop-learning/"
        }
      ],
      "sshTarget": {
        "alias": "coproperty-office",
        "hostname": "copropertys-mac-mini.tail3ab9e5.ts.net",
        "user": "coproperty",
        "projectPath": "/Users/coproperty/Projects/coproperty-office-os",
        "codexPath": "/Users/coproperty/.local/bin/codex",
        "hostFingerprint": "SHA256:UUFmlsdclEmRtyRWNqAdVYUoFxeUkRUGhbzObQPsOPg",
        "requiredChecks": [
          "Verify the hostname, project path, and repository status before any work.",
          "Create an isolated task worktree outside the installed project.",
          "Never modify the installed runtime from this contribution path."
        ]
      }
    },
    "identity-handover": {
      "stableId": "property-lifecycle#identity-handover",
      "pageId": "property-lifecycle",
      "pageTitle": "Property lifecycle: from enquiry to review",
      "pageSlug": "workflows/property-lifecycle",
      "sectionId": "identity-handover",
      "sectionTitle": "Identity is the thread through the lifecycle",
      "sectionProse": [
        "A familiar display name is not enough to join a departure, cleaning task, and next arrival. The same confirmed property identity must be present in the source record, task, and readiness decision.",
        "When identity is incomplete, treat the ambiguity as an exception. A plausible match is not a safe substitute for a confirmed one, especially where unit names or listing variants overlap."
      ],
      "version": "2026.10.20.2",
      "date": "20 October 2026",
      "status": "Checked",
      "currentStatus": "Checked — the handoff specifically warns against relying on familiar display names for overlapping units or listing variants.",
      "proposedStatus": "Route unresolved identity to a named verifier before it affects a readiness or financial decision.",
      "expectedOutcome": "A handover can be matched to the correct property without a heuristic becoming an unrecorded decision.",
      "tests": [
        "Check the safe example and context prompt describe a confirmed identifier, not a fabricated property name.",
        "Check exception wording appears in both page and Markdown export."
      ],
      "sourcePointers": [
        "docs/OPERATING-ARCHITECTURE.md",
        "coprop_kb/company_os.py",
        "coprop_kb/workflows.py",
        "coprop_kb/operations.py",
        "tests/test_workflows.py",
        "tests/test_operations.py",
        "Handoff / pages/workflows.html",
        "Handoff / pages/organisation.html"
      ],
      "related": [
        {
          "id": "turnover",
          "title": "Turnover readiness: evidence before a ready decision",
          "summary": "A turnover prepares a property between stays. Assignment, cleaning completion, evidence, verification, and readiness are separate states that must refer to the same confirmed property.",
          "status": "In progress",
          "path": "/workflows/turnover-evidence/"
        },
        {
          "id": "finance-records",
          "title": "Finance records: support the review before the conclusion",
          "summary": "Financial planning and settlement work need identifiable source records, clear commitments, authorised review, and a traceable link to any learning that follows.",
          "status": "Checked",
          "path": "/workflows/finance-records/"
        },
        {
          "id": "sop-learning",
          "title": "SOP learning: turn observations into a better next step",
          "summary": "Learning connects incidents, reports, and repeated exceptions to a reviewed procedure. It prevents a useful lesson from being stranded in a one-off conversation.",
          "status": "Checked",
          "path": "/workflows/sop-learning/"
        }
      ],
      "sshTarget": {
        "alias": "coproperty-office",
        "hostname": "copropertys-mac-mini.tail3ab9e5.ts.net",
        "user": "coproperty",
        "projectPath": "/Users/coproperty/Projects/coproperty-office-os",
        "codexPath": "/Users/coproperty/.local/bin/codex",
        "hostFingerprint": "SHA256:UUFmlsdclEmRtyRWNqAdVYUoFxeUkRUGhbzObQPsOPg",
        "requiredChecks": [
          "Verify the hostname, project path, and repository status before any work.",
          "Create an isolated task worktree outside the installed project.",
          "Never modify the installed runtime from this contribution path."
        ]
      }
    },
    "exception-route": {
      "stableId": "property-lifecycle#exception-route",
      "pageId": "property-lifecycle",
      "pageTitle": "Property lifecycle: from enquiry to review",
      "pageSlug": "workflows/property-lifecycle",
      "sectionId": "exception-route",
      "sectionTitle": "An exception is a visible work item, not a hidden gap",
      "sectionProse": [
        "If provider information is old, incomplete, or cannot be matched, the response is to confirm coverage or ask for a new source read. If a task is assigned but has no completion evidence, the response is to request the missing result. These are different states and should not share a reassuring label.",
        "The wiki does not claim that all exception routing is complete in the installed system. It explains the decision boundary so an operator can investigate it safely."
      ],
      "version": "2026.10.20.2",
      "date": "20 October 2026",
      "status": "In progress",
      "currentStatus": "In progress — current provider freshness and all transition acceptance need live evidence before a result is asserted.",
      "proposedStatus": "Record exception owner, source window, next check, and closure evidence in the relevant current system.",
      "expectedOutcome": "Uncertainty stays visible until the right person resolves it with supporting evidence.",
      "tests": [
        "Check “old source” and “assigned without evidence” remain separate states.",
        "Use the contextual panel to prepare an investigation prompt without sending or executing it."
      ],
      "sourcePointers": [
        "docs/OPERATING-ARCHITECTURE.md",
        "coprop_kb/company_os.py",
        "coprop_kb/workflows.py",
        "coprop_kb/operations.py",
        "tests/test_workflows.py",
        "tests/test_operations.py",
        "Handoff / pages/workflows.html",
        "Handoff / pages/organisation.html"
      ],
      "related": [
        {
          "id": "turnover",
          "title": "Turnover readiness: evidence before a ready decision",
          "summary": "A turnover prepares a property between stays. Assignment, cleaning completion, evidence, verification, and readiness are separate states that must refer to the same confirmed property.",
          "status": "In progress",
          "path": "/workflows/turnover-evidence/"
        },
        {
          "id": "finance-records",
          "title": "Finance records: support the review before the conclusion",
          "summary": "Financial planning and settlement work need identifiable source records, clear commitments, authorised review, and a traceable link to any learning that follows.",
          "status": "Checked",
          "path": "/workflows/finance-records/"
        },
        {
          "id": "sop-learning",
          "title": "SOP learning: turn observations into a better next step",
          "summary": "Learning connects incidents, reports, and repeated exceptions to a reviewed procedure. It prevents a useful lesson from being stranded in a one-off conversation.",
          "status": "Checked",
          "path": "/workflows/sop-learning/"
        }
      ],
      "sshTarget": {
        "alias": "coproperty-office",
        "hostname": "copropertys-mac-mini.tail3ab9e5.ts.net",
        "user": "coproperty",
        "projectPath": "/Users/coproperty/Projects/coproperty-office-os",
        "codexPath": "/Users/coproperty/.local/bin/codex",
        "hostFingerprint": "SHA256:UUFmlsdclEmRtyRWNqAdVYUoFxeUkRUGhbzObQPsOPg",
        "requiredChecks": [
          "Verify the hostname, project path, and repository status before any work.",
          "Create an isolated task worktree outside the installed project.",
          "Never modify the installed runtime from this contribution path."
        ]
      }
    }
  }
}
