{
  "schemaVersion": 1,
  "generatedFrom": "src/data/catalogue.js",
  "wiki": {
    "title": "Co.Property internal wiki",
    "version": "2026.10.20.2",
    "date": "20 October 2026"
  },
  "page": {
    "stableId": "sop-learning#page",
    "pageId": "sop-learning",
    "pageTitle": "SOP learning: turn observations into a better next step",
    "pageSlug": "workflows/sop-learning",
    "sectionId": "page",
    "sectionTitle": "SOP learning: turn observations into a better next step",
    "sectionProse": [
      "Learning connects incidents, reports, and repeated exceptions to a reviewed procedure. It prevents a useful lesson from being stranded in a one-off conversation.",
      "Show a safe path from an observation to a reusable, reviewed explanation of how work should happen next time.",
      "An observation is captured, shaped into a proposal, reviewed into an approved SOP, applied in work, and observed again. The loop connects Learning back to daily operations.",
      "Start with the observation, not the preferred solution",
      "An observation can be an incident, report finding, repeated exception, or an outcome that was unexpectedly hard to verify. Capture what happened, what source supports it, and why it matters before proposing a new procedure.",
      "This makes a learning item testable. It also prevents a useful local workaround from quietly becoming company policy without context, review, or evidence.",
      "A useful SOP explains the decision boundary",
      "An SOP should say when it applies, what source or record to inspect, who is responsible for each decision, what evidence is required, how exceptions are handled, and how to tell the action succeeded. A list of clicks without those boundaries is hard to safely reuse.",
      "For an operational SOP, do not confuse an implementation detail with the business rule. The rule may be “do not call readiness accepted without verified evidence”; the screen used to record that decision can change.",
      "Improve procedures through review and a bounded next test",
      "A proposed change should identify the expected outcome and the smallest test that could show whether it helps. For a UI change, include browser and mobile checks. For a connector, include duplicate, failure, and freshness fixtures. For a procedure, include a real or controlled case with an accountable reviewer.",
      "The Work on this panel prepares this information as a draft only. It does not alter an SOP, submit a pull request, or send a message."
    ],
    "version": "2026.10.20.2",
    "date": "20 October 2026",
    "status": "Checked",
    "currentStatus": "Checked — Learning is a documented operating responsibility; the wiki does not claim every procedure is current or approved.",
    "proposedStatus": "Review an SOP against current evidence and named ownership before relying on it for a live operational decision.",
    "expectedOutcome": "A repeatable issue becomes a reviewable change to shared knowledge rather than an undocumented workaround.",
    "tests": [
      "Check every SOP proposal identifies its evidence source and review owner.",
      "Check the page never presents an unreviewed observation as an approved procedure."
    ],
    "sourcePointers": [
      "docs/COMPANY-KNOWLEDGE.md",
      "coprop_kb/store.py",
      "coprop_kb/company_sources.py",
      "tests/test_kb.py",
      "tests/test_company_sources.py",
      "Handoff / pages/organisation.html",
      "Handoff / pages/workflows.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": "company-os",
        "title": "The Company OS: five connected responsibilities",
        "summary": "Managing, Selling, Planning, Delivering, and Learning are operational concepts for seeing the same company picture. They are not an invented staff chart.",
        "status": "Checked",
        "path": "/company-os/"
      },
      {
        "id": "workspace-pr",
        "title": "Contribution: isolated workspaces, meaningful tests, reviewed release",
        "summary": "A safe change begins by verifying the remote target, then uses an isolated worktree outside the installed project. It is tested, submitted as a pull request, and reviewed before a person releases it.",
        "status": "Checked",
        "path": "/contribution/workspace-and-pr/"
      }
    ],
    "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": {
    "learning-loop": {
      "stableId": "sop-learning#learning-loop",
      "pageId": "sop-learning",
      "pageTitle": "SOP learning: turn observations into a better next step",
      "pageSlug": "workflows/sop-learning",
      "sectionId": "learning-loop",
      "sectionTitle": "Start with the observation, not the preferred solution",
      "sectionProse": [
        "An observation can be an incident, report finding, repeated exception, or an outcome that was unexpectedly hard to verify. Capture what happened, what source supports it, and why it matters before proposing a new procedure.",
        "This makes a learning item testable. It also prevents a useful local workaround from quietly becoming company policy without context, review, or evidence."
      ],
      "version": "2026.10.20.2",
      "date": "20 October 2026",
      "status": "Checked",
      "currentStatus": "Checked — the loop reflects the documented Learning responsibility and shared knowledge practice.",
      "proposedStatus": "Use current incident or report references in the authorised system when a live procedure needs revision.",
      "expectedOutcome": "A lesson has enough context for another person to review it independently.",
      "tests": [
        "Check the example starts with an observed repeated pattern rather than a requested tool change.",
        "Check an injected user request remains quoted as untrusted text in the context draft."
      ],
      "sourcePointers": [
        "docs/COMPANY-KNOWLEDGE.md",
        "coprop_kb/store.py",
        "coprop_kb/company_sources.py",
        "tests/test_kb.py",
        "tests/test_company_sources.py",
        "Handoff / pages/organisation.html",
        "Handoff / pages/workflows.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": "company-os",
          "title": "The Company OS: five connected responsibilities",
          "summary": "Managing, Selling, Planning, Delivering, and Learning are operational concepts for seeing the same company picture. They are not an invented staff chart.",
          "status": "Checked",
          "path": "/company-os/"
        },
        {
          "id": "workspace-pr",
          "title": "Contribution: isolated workspaces, meaningful tests, reviewed release",
          "summary": "A safe change begins by verifying the remote target, then uses an isolated worktree outside the installed project. It is tested, submitted as a pull request, and reviewed before a person releases it.",
          "status": "Checked",
          "path": "/contribution/workspace-and-pr/"
        }
      ],
      "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."
        ]
      }
    },
    "sop-content": {
      "stableId": "sop-learning#sop-content",
      "pageId": "sop-learning",
      "pageTitle": "SOP learning: turn observations into a better next step",
      "pageSlug": "workflows/sop-learning",
      "sectionId": "sop-content",
      "sectionTitle": "A useful SOP explains the decision boundary",
      "sectionProse": [
        "An SOP should say when it applies, what source or record to inspect, who is responsible for each decision, what evidence is required, how exceptions are handled, and how to tell the action succeeded. A list of clicks without those boundaries is hard to safely reuse.",
        "For an operational SOP, do not confuse an implementation detail with the business rule. The rule may be “do not call readiness accepted without verified evidence”; the screen used to record that decision can change."
      ],
      "version": "2026.10.20.2",
      "date": "20 October 2026",
      "status": "Checked",
      "currentStatus": "Checked — this is an explanatory documentation standard, not a claim that all existing SOPs meet it.",
      "proposedStatus": "Add a review date and source pointer when an SOP is approved or materially revised.",
      "expectedOutcome": "A teammate can follow the procedure and explain why an exception requires escalation.",
      "tests": [
        "Check SOP sections include trigger, evidence, exception, and success condition.",
        "Check screenshot examples are presented as dated illustrations, not procedure authority."
      ],
      "sourcePointers": [
        "docs/COMPANY-KNOWLEDGE.md",
        "coprop_kb/store.py",
        "coprop_kb/company_sources.py",
        "tests/test_kb.py",
        "tests/test_company_sources.py",
        "Handoff / pages/organisation.html",
        "Handoff / pages/workflows.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": "company-os",
          "title": "The Company OS: five connected responsibilities",
          "summary": "Managing, Selling, Planning, Delivering, and Learning are operational concepts for seeing the same company picture. They are not an invented staff chart.",
          "status": "Checked",
          "path": "/company-os/"
        },
        {
          "id": "workspace-pr",
          "title": "Contribution: isolated workspaces, meaningful tests, reviewed release",
          "summary": "A safe change begins by verifying the remote target, then uses an isolated worktree outside the installed project. It is tested, submitted as a pull request, and reviewed before a person releases it.",
          "status": "Checked",
          "path": "/contribution/workspace-and-pr/"
        }
      ],
      "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."
        ]
      }
    },
    "safe-change": {
      "stableId": "sop-learning#safe-change",
      "pageId": "sop-learning",
      "pageTitle": "SOP learning: turn observations into a better next step",
      "pageSlug": "workflows/sop-learning",
      "sectionId": "safe-change",
      "sectionTitle": "Improve procedures through review and a bounded next test",
      "sectionProse": [
        "A proposed change should identify the expected outcome and the smallest test that could show whether it helps. For a UI change, include browser and mobile checks. For a connector, include duplicate, failure, and freshness fixtures. For a procedure, include a real or controlled case with an accountable reviewer.",
        "The Work on this panel prepares this information as a draft only. It does not alter an SOP, submit a pull request, or send a message."
      ],
      "version": "2026.10.20.2",
      "date": "20 October 2026",
      "status": "Checked",
      "currentStatus": "Checked — the change path is intentionally documentation-only until a reviewed contribution begins.",
      "proposedStatus": "Move a proposal to an approved record or PR only after the designated reviewer agrees to the scope and evidence.",
      "expectedOutcome": "Improvement remains reversible, testable, and reviewable.",
      "tests": [
        "Check all contextual action choices include expected outcome and tests.",
        "Check the panel’s Download Markdown output matches the complete displayed prompt."
      ],
      "sourcePointers": [
        "docs/COMPANY-KNOWLEDGE.md",
        "coprop_kb/store.py",
        "coprop_kb/company_sources.py",
        "tests/test_kb.py",
        "tests/test_company_sources.py",
        "Handoff / pages/organisation.html",
        "Handoff / pages/workflows.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": "company-os",
          "title": "The Company OS: five connected responsibilities",
          "summary": "Managing, Selling, Planning, Delivering, and Learning are operational concepts for seeing the same company picture. They are not an invented staff chart.",
          "status": "Checked",
          "path": "/company-os/"
        },
        {
          "id": "workspace-pr",
          "title": "Contribution: isolated workspaces, meaningful tests, reviewed release",
          "summary": "A safe change begins by verifying the remote target, then uses an isolated worktree outside the installed project. It is tested, submitted as a pull request, and reviewed before a person releases it.",
          "status": "Checked",
          "path": "/contribution/workspace-and-pr/"
        }
      ],
      "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."
        ]
      }
    }
  }
}
