{
  "id": "shared-workspace-approval",
  "company": "Apex Instruments",
  "title": "The approval route",
  "summary": "The route is data, not a habit. It says what starts a review, who reviews what, how long a reviewer has, what happens when nobody answers, what happens on a rejection, and what the approval leaves behind.",
  "triggers": [
    {
      "id": "t-review-folder",
      "when": "A piece is moved into a for review folder.",
      "then": "The route reads the piece kind, names the reviewers, and starts the clock.",
      "note": "This is the ordinary path. Moving the file is the request."
    },
    {
      "id": "t-price",
      "when": "Any file under facts/prices changes.",
      "then": "Two reviewers are required and the piece cannot be approved by its author.",
      "note": "A price is quoted in dozens of documents, so it gets the heavier route."
    },
    {
      "id": "t-legal",
      "when": "Any file under approved/legal changes.",
      "then": "Leadership reviews, and the operational effect is checked by operations.",
      "note": "Two different questions, so two different readers."
    },
    {
      "id": "t-brand",
      "when": "A token, logo, or type rule under approved/brand changes.",
      "then": "Marketing reviews and the change is announced in the knowledge folder.",
      "note": "Brand changes are cheap to make and expensive to miss."
    },
    {
      "id": "t-external",
      "when": "A piece names a partner or is going outside the company.",
      "then": "Leadership reviews regardless of the piece kind.",
      "note": "The audience raises the bar, not the format."
    },
    {
      "id": "t-agent",
      "when": "The assistant produces a piece rather than a person.",
      "then": "The same route runs. There is no faster path for machine written work.",
      "note": "If the assistant had a shortcut, the shortcut would become the normal way to work."
    }
  ],
  "reviewers": [
    {
      "kind": "one pager",
      "label": "One pagers, flyers, spec sheets",
      "reviewers": [
        "Dana Whitfield"
      ],
      "count": 1,
      "note": "Anything a customer sees."
    },
    {
      "kind": "letter",
      "label": "Letters to customers",
      "reviewers": [
        "Dana Whitfield"
      ],
      "count": 1,
      "note": "Checked against the service plan facts."
    },
    {
      "kind": "proposal",
      "label": "Proposals and quotes",
      "reviewers": [
        "Dana Whitfield"
      ],
      "count": 1,
      "note": "Checked against the partner pricing floor."
    },
    {
      "kind": "price change",
      "label": "Price changes",
      "reviewers": [
        "Dana Whitfield",
        "Jordan Vale"
      ],
      "count": 2,
      "note": "Two reviewers, and never the author."
    },
    {
      "kind": "legal",
      "label": "Terms and warranty language",
      "reviewers": [
        "Dana Whitfield",
        "Morgan Reyes"
      ],
      "count": 2,
      "note": "Leadership for the words, operations for the effect."
    },
    {
      "kind": "deck",
      "label": "Decks",
      "reviewers": [
        "Dana Whitfield"
      ],
      "count": 1,
      "note": "Slides get reused, so they get read once properly."
    },
    {
      "kind": "email",
      "label": "Email templates and sequences",
      "reviewers": [
        "Sami Torres"
      ],
      "count": 1,
      "note": "Checked against the phrase register."
    },
    {
      "kind": "web copy",
      "label": "Web page copy",
      "reviewers": [
        "Sami Torres"
      ],
      "count": 1,
      "note": "Checked against the page frame and the heading order."
    },
    {
      "kind": "sheet",
      "label": "Workbook templates",
      "reviewers": [
        "Morgan Reyes"
      ],
      "count": 1,
      "note": "The column names are read by other systems."
    },
    {
      "kind": "runbook",
      "label": "Runbooks and knowledge",
      "reviewers": [],
      "count": 0,
      "note": "No review. Knowledge is written in the open and corrected in the open."
    },
    {
      "kind": "plan",
      "label": "Plans",
      "reviewers": [
        "Dana Whitfield"
      ],
      "count": 1,
      "note": "Only when the plan changes a commitment."
    },
    {
      "kind": "brief",
      "label": "Briefs",
      "reviewers": [],
      "count": 0,
      "note": "A brief is an input. The work it produces is what gets reviewed."
    }
  ],
  "clock": {
    "unit": "working days",
    "normal": 2,
    "heavy": 3,
    "reminderAt": 1,
    "note": "One reviewer has two working days. A two reviewer piece has three. A reminder goes out after one day."
  },
  "timeout": {
    "id": "timeout",
    "happens": "The clock runs out with at least one reviewer not signed.",
    "doesNot": "Nothing is approved by default. There is no such thing as approval by silence here.",
    "steps": [
      "The piece is returned to the owner with the reason recorded as a timeout, not as a rejection.",
      "The reviewer who did not answer is named in the record and told.",
      "Any reviewer who did sign keeps their signature. It counts again if the piece comes back unchanged.",
      "If the same reviewer times out twice on one piece, the route escalates to the reviewer named as their cover in the facts folder."
    ],
    "why": "A route that approves things when nobody looks is worse than no route, because it produces a record that says a person checked."
  },
  "rejection": {
    "id": "rejection",
    "happens": "A reviewer returns the piece.",
    "requires": "A reason. The route will not accept a return without one.",
    "steps": [
      "The piece moves back to the owner’s in progress folder. It does not go back to intake, and it is not deleted.",
      "The reason is written on the event, so it is visible in the feed without opening the file.",
      "The reviewer stays named. The same person reads it again unless the owner asks for a different one.",
      "The next move to review starts a fresh clock, and the previous round stays in the history."
    ],
    "why": "A rejection is a piece of information about the work. Losing the reason is how the same mistake gets made three times."
  },
  "record": {
    "title": "What an approval leaves behind",
    "fields": [
      {
        "field": "piece",
        "example": "Meridian Pro one pager",
        "note": "The document, by its stable id, not its filename."
      },
      {
        "field": "version",
        "example": "the exact bytes that were read",
        "note": "A fingerprint of the file as approved, so a later edit is visible."
      },
      {
        "field": "reviewer",
        "example": "Dana Whitfield, COO",
        "note": "A person, with the role they signed in."
      },
      {
        "field": "decided",
        "example": "approved",
        "note": "Approved, returned, or timed out. Three values, no free text."
      },
      {
        "field": "reason",
        "example": "Prices check against the October list.",
        "note": "Required on a return, optional on an approval."
      },
      {
        "field": "at",
        "example": "2026-08-28T08:47:00Z",
        "note": "When, not roughly when."
      },
      {
        "field": "route",
        "example": "one pager, one reviewer, two working days",
        "note": "Which rule ran, so an unusual approval can be explained later."
      },
      {
        "field": "destination",
        "example": "workspace/approved/collateral",
        "note": "Where the route put it. The only way anything gets into approved."
      }
    ],
    "note": "The record is written next to the piece in the same workspace. It is not in a separate system that somebody has to be given access to."
  },
  "walkthrough": [
    {
      "step": 1,
      "label": "Owner moves the piece to for review",
      "detail": "The move is the request. Nobody sends an email asking for a review."
    },
    {
      "step": 2,
      "label": "The route reads the piece kind",
      "detail": "Kind plus audience decides how many reviewers and how long they have."
    },
    {
      "step": 3,
      "label": "Reviewers are named on the piece",
      "detail": "Named, not a group. A group is nobody."
    },
    {
      "step": 4,
      "label": "The clock starts",
      "detail": "Two working days, or three when two reviewers are needed. A reminder after one."
    },
    {
      "step": 5,
      "label": "A reviewer reads it in place",
      "detail": "In the same folder, not in an attachment. Their note goes on the piece."
    },
    {
      "step": 6,
      "label": "Decision",
      "detail": "Approved, returned with a reason, or the clock runs out."
    },
    {
      "step": 7,
      "label": "The route moves the file",
      "detail": "On approval it writes into approved and into the shared folder the piece belongs in. On a return it goes back to in progress."
    },
    {
      "step": 8,
      "label": "The record is written",
      "detail": "Eight fields, next to the piece, readable by everyone."
    }
  ]
}
