{
  "schemaVersion": 1,
  "generatedFrom": "src/data/catalogue.js",
  "wiki": {
    "title": "Co.Property internal wiki",
    "version": "2026.10.20.2",
    "date": "20 October 2026"
  },
  "page": {
    "stableId": "line-boundaries#page",
    "pageId": "line-boundaries",
    "pageTitle": "LINE boundaries: separate identities, accepted records, clear limits",
    "pageSlug": "workflows/line-boundaries",
    "sectionId": "page",
    "sectionTitle": "LINE boundaries: separate identities, accepted records, clear limits",
    "sectionProse": [
      "LINE employee operations bot, Hermes adapter, and company Official Account are separate identities. A message flow only becomes operational evidence when the right record and acceptance boundary are confirmed.",
      "Keep messaging concepts useful while preventing unconfirmed end-to-end acceptance or identity ownership from being represented as finished.",
      "The company Official Account, employee operations bot, and Hermes adapter are distinct. A reviewed record boundary determines whether an interaction can support an operational outcome.",
      "Separate identities prevent a message from gaining accidental authority",
      "The employee operations bot, Hermes adapter, and company Official Account are different identities. Their names may appear near one another in a system diagram, but that does not grant them the same role, audience, permissions, or acceptance authority.",
      "Before a messaging workflow is changed, identify which identity is intended to speak, which record will carry the result, and who can authorise the next step. Avoid using an adapter or console login as evidence that this boundary is settled.",
      "A conversation is not evidence until its record boundary is accepted",
      "A message can provide context, but an operational result needs an approved record link, known identity, and a reviewer who can accept the stated outcome. This is particularly important when a message could affect a guest, owner, or task state.",
      "Use a safe placeholder in documentation. Do not place private message text, phone numbers, tokens, or screenshots of live conversations into the wiki, llms.txt, or contextual work draft.",
      "Mark acceptance pending until a real, authorised case closes",
      "The available information does not confirm end-to-end LINE acceptance or final ownership. The safe status is pending, not “nearly done” or “live”. A future accepted case should describe its actor, approved identity, record, decision, evidence, and exception path.",
      "The wiki can help someone prepare a careful investigation or plan. It cannot send a test, alter an Official Account, change credentials, or claim the result."
    ],
    "version": "2026.10.20.2",
    "date": "20 October 2026",
    "status": "In progress",
    "currentStatus": "In progress — company-owned LINE acceptance, end-to-end confirmation, and final ownership are not confirmed.",
    "proposedStatus": "Verify approved identity, record linkage, consent/authority, accepted conversation, and exception handling before claiming operational readiness.",
    "expectedOutcome": "A team member knows which identity and record boundary needs confirmation before relying on a message in operations.",
    "tests": [
      "Check no page states that an end-to-end LINE conversation is accepted.",
      "Check context drafts contain no channel credential or message payload and retain the identity boundary."
    ],
    "sourcePointers": [
      "docs/LINE-OPERATIONS-BOT-OWNERSHIP-HANDOFF.md",
      "docs/CONNECTOR-CONTRACTS.md",
      "coprop_kb/webhooks.py",
      "coprop_kb/readers/line_oa.py",
      "tests/test_reader_line_oa.py",
      "Handoff / START-HERE.html",
      "Handoff / pages/workflows.html",
      "Handoff / pages/infrastructure.html"
    ],
    "related": [
      {
        "id": "hermes",
        "title": "Hermes: an adapter boundary, not a company identity",
        "summary": "Hermes is an adapter in the operating architecture. It does not replace the company Official Account, employee operations bot, provider authority, or a reviewed record boundary.",
        "status": "In progress",
        "path": "/systems/hermes/"
      },
      {
        "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": "services",
        "title": "Service directory: approved destinations, not shared access",
        "summary": "This directory names the approved service destinations used around Co.Property. Every destination requires an existing authorised account or approved auth; the wiki never stores tokens, credentials, or private logs.",
        "status": "Checked",
        "path": "/reference/service-directory/"
      }
    ],
    "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": {
    "identity-boundaries": {
      "stableId": "line-boundaries#identity-boundaries",
      "pageId": "line-boundaries",
      "pageTitle": "LINE boundaries: separate identities, accepted records, clear limits",
      "pageSlug": "workflows/line-boundaries",
      "sectionId": "identity-boundaries",
      "sectionTitle": "Separate identities prevent a message from gaining accidental authority",
      "sectionProse": [
        "The employee operations bot, Hermes adapter, and company Official Account are different identities. Their names may appear near one another in a system diagram, but that does not grant them the same role, audience, permissions, or acceptance authority.",
        "Before a messaging workflow is changed, identify which identity is intended to speak, which record will carry the result, and who can authorise the next step. Avoid using an adapter or console login as evidence that this boundary is settled."
      ],
      "version": "2026.10.20.2",
      "date": "20 October 2026",
      "status": "In progress",
      "currentStatus": "In progress — final ownership and end-to-end acceptance are explicitly not confirmed.",
      "proposedStatus": "Document approved identity, authorised operator, record linkage, and handoff conditions after an owner verifies them.",
      "expectedOutcome": "A message workflow can be assessed without conflating technical connectivity with organisational authority.",
      "tests": [
        "Check all three identities are separately named in the diagram and text equivalent.",
        "Check no exported prompt includes a credential request or suggests sending a test message automatically."
      ],
      "sourcePointers": [
        "docs/LINE-OPERATIONS-BOT-OWNERSHIP-HANDOFF.md",
        "docs/CONNECTOR-CONTRACTS.md",
        "coprop_kb/webhooks.py",
        "coprop_kb/readers/line_oa.py",
        "tests/test_reader_line_oa.py",
        "Handoff / START-HERE.html",
        "Handoff / pages/workflows.html",
        "Handoff / pages/infrastructure.html"
      ],
      "related": [
        {
          "id": "hermes",
          "title": "Hermes: an adapter boundary, not a company identity",
          "summary": "Hermes is an adapter in the operating architecture. It does not replace the company Official Account, employee operations bot, provider authority, or a reviewed record boundary.",
          "status": "In progress",
          "path": "/systems/hermes/"
        },
        {
          "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": "services",
          "title": "Service directory: approved destinations, not shared access",
          "summary": "This directory names the approved service destinations used around Co.Property. Every destination requires an existing authorised account or approved auth; the wiki never stores tokens, credentials, or private logs.",
          "status": "Checked",
          "path": "/reference/service-directory/"
        }
      ],
      "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."
        ]
      }
    },
    "conversation-evidence": {
      "stableId": "line-boundaries#conversation-evidence",
      "pageId": "line-boundaries",
      "pageTitle": "LINE boundaries: separate identities, accepted records, clear limits",
      "pageSlug": "workflows/line-boundaries",
      "sectionId": "conversation-evidence",
      "sectionTitle": "A conversation is not evidence until its record boundary is accepted",
      "sectionProse": [
        "A message can provide context, but an operational result needs an approved record link, known identity, and a reviewer who can accept the stated outcome. This is particularly important when a message could affect a guest, owner, or task state.",
        "Use a safe placeholder in documentation. Do not place private message text, phone numbers, tokens, or screenshots of live conversations into the wiki, llms.txt, or contextual work draft."
      ],
      "version": "2026.10.20.2",
      "date": "20 October 2026",
      "status": "In progress",
      "currentStatus": "In progress — company-owned LINE access and an approved conversation linked to a record remain an open rollout item.",
      "proposedStatus": "Verify a controlled, approved conversation with the intended record and review boundary before marking this path checked.",
      "expectedOutcome": "The team can distinguish useful message context from a confirmed operational record.",
      "tests": [
        "Search generated exports for token-like or message-payload content; none should be present.",
        "Check a selected context section contains only its own prose and source pointers."
      ],
      "sourcePointers": [
        "docs/LINE-OPERATIONS-BOT-OWNERSHIP-HANDOFF.md",
        "docs/CONNECTOR-CONTRACTS.md",
        "coprop_kb/webhooks.py",
        "coprop_kb/readers/line_oa.py",
        "tests/test_reader_line_oa.py",
        "Handoff / START-HERE.html",
        "Handoff / pages/workflows.html",
        "Handoff / pages/infrastructure.html"
      ],
      "related": [
        {
          "id": "hermes",
          "title": "Hermes: an adapter boundary, not a company identity",
          "summary": "Hermes is an adapter in the operating architecture. It does not replace the company Official Account, employee operations bot, provider authority, or a reviewed record boundary.",
          "status": "In progress",
          "path": "/systems/hermes/"
        },
        {
          "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": "services",
          "title": "Service directory: approved destinations, not shared access",
          "summary": "This directory names the approved service destinations used around Co.Property. Every destination requires an existing authorised account or approved auth; the wiki never stores tokens, credentials, or private logs.",
          "status": "Checked",
          "path": "/reference/service-directory/"
        }
      ],
      "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."
        ]
      }
    },
    "acceptance-pending": {
      "stableId": "line-boundaries#acceptance-pending",
      "pageId": "line-boundaries",
      "pageTitle": "LINE boundaries: separate identities, accepted records, clear limits",
      "pageSlug": "workflows/line-boundaries",
      "sectionId": "acceptance-pending",
      "sectionTitle": "Mark acceptance pending until a real, authorised case closes",
      "sectionProse": [
        "The available information does not confirm end-to-end LINE acceptance or final ownership. The safe status is pending, not “nearly done” or “live”. A future accepted case should describe its actor, approved identity, record, decision, evidence, and exception path.",
        "The wiki can help someone prepare a careful investigation or plan. It cannot send a test, alter an Official Account, change credentials, or claim the result."
      ],
      "version": "2026.10.20.2",
      "date": "20 October 2026",
      "status": "In progress",
      "currentStatus": "In progress — no final acceptance is asserted.",
      "proposedStatus": "Close only when an approved owner verifies a real case and records the acceptance evidence and exceptions.",
      "expectedOutcome": "Open uncertainty stays visible to the people responsible for resolving it.",
      "tests": [
        "Check “acceptance pending” is present in the page, Markdown export, and context export.",
        "Check Open Codex draft disables rather than truncates a long complete prompt."
      ],
      "sourcePointers": [
        "docs/LINE-OPERATIONS-BOT-OWNERSHIP-HANDOFF.md",
        "docs/CONNECTOR-CONTRACTS.md",
        "coprop_kb/webhooks.py",
        "coprop_kb/readers/line_oa.py",
        "tests/test_reader_line_oa.py",
        "Handoff / START-HERE.html",
        "Handoff / pages/workflows.html",
        "Handoff / pages/infrastructure.html"
      ],
      "related": [
        {
          "id": "hermes",
          "title": "Hermes: an adapter boundary, not a company identity",
          "summary": "Hermes is an adapter in the operating architecture. It does not replace the company Official Account, employee operations bot, provider authority, or a reviewed record boundary.",
          "status": "In progress",
          "path": "/systems/hermes/"
        },
        {
          "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": "services",
          "title": "Service directory: approved destinations, not shared access",
          "summary": "This directory names the approved service destinations used around Co.Property. Every destination requires an existing authorised account or approved auth; the wiki never stores tokens, credentials, or private logs.",
          "status": "Checked",
          "path": "/reference/service-directory/"
        }
      ],
      "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."
        ]
      }
    }
  }
}
