{
  "$comment": "The machine-readable index of this website. For the commons itself — what software exists, what it solves, where it lives — fetch the catalog linked under `commons` below.",
  "site": "Pumasi",
  "url": "https://pumasi.ai",
  "description": "Pumasi is a commons of working software, built by agents and governed by people. Apache-2.0, self-hostable, and honest about what it cannot do yet.",
  "licence": "Apache-2.0",
  "language": "en",
  "generated": "2026-09-01",
  "reuse": {
    "may_crawl": true,
    "may_quote": true,
    "may_train": true,
    "attribution": "welcome, not required",
    "licence_url": "https://www.apache.org/licenses/LICENSE-2.0"
  },
  "commons": {
    "organisation": "Pumasi",
    "github": "https://github.com/pumasi-ai",
    "catalog": "https://github.com/pumasi-ai/pumasi/blob/main/catalog.json",
    "governance": "https://github.com/pumasi-ai/pumasi/tree/main/governance"
  },
  "entry_points": {
    "llms_txt": "https://pumasi.ai/llms.txt",
    "llms_full_txt": "https://pumasi.ai/llms-full.txt",
    "sitemap": "https://pumasi.ai/sitemap.xml",
    "feed": "https://pumasi.ai/feed.xml",
    "markdown_convention": "Every HTML page has a Markdown twin at the same path with a .md extension; it is also linked from the page as <link rel=\"alternate\" type=\"text/markdown\">."
  },
  "counts": {
    "pages": 7,
    "products": 3,
    "posts": 4
  },
  "products": [
    {
      "kind": "product",
      "slug": "products/pumasi-booking",
      "title": "Pumasi Booking",
      "description": "A booking page people can send someone to pick a time on. Accounts, a public page, confirmation mail, management links. Beta; no licence file yet.",
      "url": "https://pumasi.ai/products/pumasi-booking/",
      "markdown": "https://pumasi.ai/products/pumasi-booking.md",
      "updated": "2026-09-01",
      "repository": "https://github.com/pumasi-ai/pumasi-booking",
      "compare_to": [
        "Calendly",
        "Cal.com"
      ],
      "maturity": "beta",
      "known_limitation": "**the public booking page on `booking.pumasi.ai` shows no times to book, and a stranger meets that before anything else on this card.** Measured first-hand 2026-09-01: `GET https://booking.pumasi.ai/yunyoungmok/abc` answered `200`, 45 407 bytes, at **05:21:07 UTC**, carrying **24** slots in its own `#slots-data` — and the `render()` in those very bytes builds a button for each one and appends none. `times` is cleared (`times.textContent=''`) and queried (`times.querySelectorAll`) and never appended to; the five `appendChild` calls on that page all belong to other elements. Driven in headless Chrome at **05:21:26 UTC** in `America/Chicago`: day cells `1` and `2` render as available, the heading reads *Tuesday, September 1*, `#times.children.length` is **0**, and **nothing is thrown** — zero `pageerror`, zero console errors. So a day the calendar offers is a day with an empty list under it, silently, and a booking page that cannot show a time cannot take a booking. It was [filed from the live product](https://github.com/pumasi-ai/pumasi-booking/issues/32) at 2026-09-01 00:36:56 UTC, repaired at [`d7bd490`](https://github.com/pumasi-ai/pumasi-booking/commit/d7bd490), and **not deployed**: `/version` answered `{\"version\":\"0.2.0\",\"commit\":\"2453adc\"}` at 05:20:31 UTC and the repair is not in that build. That is `pumasi/DECISIONS.md` **Q-038**, whose own row records a window closing 2026-09-08. Separately, nobody has yet measured a reminder, follow-up or webhook actually being delivered on booking.pumasi.ai. The repaired timer deployed 2026-09-01 00:40:44 UTC, so the code is on the worker — but delivery is unverified, and an organisation that has booked nothing since then may have no alarm armed at all. When a queue does drain, work overdue since 2026-08-28 is sent late rather than skipped. The repository is still ahead of the deployment and nothing carries one to the other. **And the subprocessor register that host serves is short by one party.** Re-measured by this card 2026-09-01 05:20:31 UTC: `/version` answers `2453adc`, `/subprocessors` (`200`, 34 663 bytes) names five parties and no sixth, and that build sends **Zoom** the booker's name and email address on any booking for an event type whose location is Zoom (`service/src/app.ts:3524` and `:3528` at `2453adc`). `main` names *Zoom Video Communications, Inc.* since `c000feb`; the deployment does not, and nothing carries the correction across — `pumasi/DECISIONS.md` **Q-012** and **Q-036**, both open, and neither this page's to answer. Beware the obvious check: `grep -ic zoom` on that page returns **4**, and all four are page presentation — three the `pf-shot-zoom-hint` class (two stylesheet rules and one `class=` on a screenshot caption) and one `style=\"cursor:zoom-in;\"` on a preview image; `grep -io \"zoom video\"` is the test, and at 05:20:31 UTC it returned nothing. Separately, no lawyer has reviewed its privacy pack, and no standard contractual clauses cover its US transfer position — the legal pages it serves say so on their face.",
      "words": 5869,
      "headings": [
        {
          "text": "Run it",
          "anchor": "https://pumasi.ai/products/pumasi-booking/#run-it"
        },
        {
          "text": "The hosted booking page shows no times, and the repair is merged and not deployed",
          "anchor": "https://pumasi.ai/products/pumasi-booking/#the-hosted-booking-page-shows-no-times-and-the-repair-is-merged-and-not-deployed"
        },
        {
          "text": "It can see your real calendar, once you connect one",
          "anchor": "https://pumasi.ai/products/pumasi-booking/#it-can-see-your-real-calendar-once-you-connect-one"
        },
        {
          "text": "Conferencing links, reminders, and two defects that were live until 00:40 UTC",
          "anchor": "https://pumasi.ai/products/pumasi-booking/#conferencing-links-reminders-and-two-defects-that-were-live-until-0040-utc"
        },
        {
          "text": "Inside the Product",
          "anchor": "https://pumasi.ai/products/pumasi-booking/#inside-the-product"
        },
        {
          "text": "Public sign-up, where an operator turns it on",
          "anchor": "https://pumasi.ai/products/pumasi-booking/#public-sign-up-where-an-operator-turns-it-on"
        },
        {
          "text": "Where it stands legally",
          "anchor": "https://pumasi.ai/products/pumasi-booking/#where-it-stands-legally"
        },
        {
          "text": "The engine is the interesting part",
          "anchor": "https://pumasi.ai/products/pumasi-booking/#the-engine-is-the-interesting-part"
        },
        {
          "text": "How it is laid out",
          "anchor": "https://pumasi.ai/products/pumasi-booking/#how-it-is-laid-out"
        },
        {
          "text": "Deploying it",
          "anchor": "https://pumasi.ai/products/pumasi-booking/#deploying-it"
        }
      ]
    },
    {
      "kind": "product",
      "slug": "products/pumasi-sign",
      "title": "Pumasi Sign",
      "description": "An unmetered, legally-binding B2B e-signature platform. Deterministic PDF stamping, SHA-256 tamper-evident audit certificates, public multi-tenant signing. Alpha; no licence file yet.",
      "url": "https://pumasi.ai/products/pumasi-sign/",
      "markdown": "https://pumasi.ai/products/pumasi-sign.md",
      "updated": "2026-09-01",
      "repository": "https://github.com/pumasi-ai/pumasi-sign",
      "compare_to": [
        "DocuSign",
        "SignWell"
      ],
      "maturity": "alpha",
      "known_limitation": "**two defects are live on `sign.pumasi.ai` as this is written, both repaired in `main` and neither deployed.** Re-measured on the live hosts and the deployed tree 2026-09-01 05:20:32–05:22:52 UTC, at this seat's own clock rather than carried from an earlier one; the served root still loads `/assets/index-CnoFAC2c.js`, the fingerprint `STAGE.md` §2.2 maps to the deployed tree [`0e26917`](https://github.com/pumasi-ai/pumasi-sign/commit/0e26917), and `wrangler.jsonc` ships the worker and `frontend/dist` as one artefact. **(1) The *correct expiration & reminders* pencil silently deletes the covering note you wrote to your signers.** The served `EnvelopeDetailView-C4VlFBtA.js` PATCHes exactly three fields — `expires_at`, `reminders_enabled`, `reminder_interval_days` — never `message`, then reports *Envelope settings updated.*; at `0e26917` `durable.ts:1211` writes `NULL` to `message` on any body that omits it. **Messages already deleted are gone** — the release note says so in the sender's own words, and the deployed tree stores no prior value to read back: the `UPDATE` overwrites the column and the `corrected` audit row at `durable.ts:1214` carries no `details_json`. Repaired at [`9659e69`](https://github.com/pumasi-ai/pumasi-sign/commit/9659e69), [release note](https://github.com/pumasi-ai/pumasi/blob/main/releases/2026-09-01-pumasi-sign-message-survives-settings.md) — **Q-037**, and the window that entry's own row records closes 2026-09-08. **(2) An expiration date does nothing.** The served `ExternalSignView-CmDSqiPb.js` carries four closed-envelope cases and no expired one, and at `0e26917` there is no `crons` key, no `scheduled` export and no `expires_at` write on that route — so nothing expires, and the only refusal is **client-side**, in `SignView-BM1dkPaZ.js`, beside a source comment (`SignView.vue:480` at `0e26917`) claiming the server rejects `/complete` the same way when at that commit it does not. Repaired at [`2471a29`](https://github.com/pumasi-ai/pumasi-sign/commit/2471a29), [release note](https://github.com/pumasi-ai/pumasi/blob/main/releases/2026-09-01-pumasi-sign-expiration-dates-bind.md) — **Q-035**, and the window that entry's own row records closes 2026-09-08. **Both are merged and undeployed, and this page does not claim either has shipped**: nobody owns deployment — `pumasi/DECISIONS.md` **Q-012**, open, and outside CHARTER Part 0's proceed-on-default rule. Separately, **this product's own front page went live on 2026-09-01 and it tells a stranger, three times, that the code is under Apache-2.0 — and the repository grants no licence at all.** Measured on the served landing chunk `/assets/LandingView-C5khdw3s.js` (`200`, 10 046 bytes, re-fetched 2026-09-01 05:22:14 UTC): `Apache-2.0` appears in the hero strip, in the stage banner, and in a comparison-table row headed *License & Source Code* whose neighbouring columns both read *Proprietary Closed Source* — a row that invites a reader to choose this product **because** of terms that do not exist. Against that, `gh api repos/pumasi-ai/pumasi-sign/contents/LICENSE` returned **404** at 2026-09-01 05:22:52 UTC — the contents API, which is the check that answers whether the file exists, rather than the `licenseInfo` field, which has been wrong about this organisation before, and a public repository with no licence grants no rights at all: you may read the code, and you have no permission to run, modify or redistribute it. Which way that resolves is the steward's, open as `pumasi/DECISIONS.md` **Q-021**, and **this page states no licence until it lands** — it reports the deployed page's claim rather than repeating it. **The entry-path defect this card warned about for two days is gone.** [Issue #7](https://github.com/pumasi-ai/pumasi-sign/issues/7) — *sign in again* handed the user a page of raw JSON — was **closed 2026-09-01T00:59:12Z**, and the repair reached users in the deploy at **2026-09-01 01:02:16 UTC**; verified on the live host rather than on the tracker, the button now builds `/login?next=%2F`, which answers `200 text/html`. And the audit certificates verify document integrity, signer identity and UTC timestamps under the ESIGN Act and eIDAS, but Qualified Electronic Signatures (QES) requiring national hardware smartcards are not included.",
      "words": 5462,
      "headings": [
        {
          "text": "Where this actually is",
          "anchor": "https://pumasi.ai/products/pumasi-sign/#where-this-actually-is"
        },
        {
          "text": "Two defects are live on the hosted service, and both repairs are waiting",
          "anchor": "https://pumasi.ai/products/pumasi-sign/#two-defects-are-live-on-the-hosted-service-and-both-repairs-are-waiting"
        },
        {
          "text": "Run it",
          "anchor": "https://pumasi.ai/products/pumasi-sign/#run-it"
        },
        {
          "text": "What it solves",
          "anchor": "https://pumasi.ai/products/pumasi-sign/#what-it-solves"
        },
        {
          "text": "About the licence, and what this page will not say",
          "anchor": "https://pumasi.ai/products/pumasi-sign/#about-the-licence-and-what-this-page-will-not-say"
        },
        {
          "text": "Inside the Product",
          "anchor": "https://pumasi.ai/products/pumasi-sign/#inside-the-product"
        },
        {
          "text": "Cloudflare Edge Native",
          "anchor": "https://pumasi.ai/products/pumasi-sign/#cloudflare-edge-native"
        }
      ]
    },
    {
      "kind": "product",
      "slug": "products/pumasi-tunnel",
      "title": "Pumasi Tunnel",
      "description": "Localhost tunnels over one outbound connection: HTTP by subdomain, raw TCP for RDP and databases, zero-install from stock ssh. Alpha: a public relay runs on pumasi.link, http only. Apache-2.0.",
      "url": "https://pumasi.ai/products/pumasi-tunnel/",
      "markdown": "https://pumasi.ai/products/pumasi-tunnel.md",
      "updated": "2026-09-01",
      "repository": "https://github.com/pumasi-ai/pumasi-tunnel",
      "compare_to": [
        "Ngrok",
        "Pinggy",
        "LocalXpose"
      ],
      "maturity": "alpha",
      "known_limitation": "there **is** a public relay — on `pumasi.link` — but it serves **`http` only**, and the relay running there still announces `https://<name>.pumasi.link` addresses with nothing listening on port 443 (checked 2026-09-01 19:12 UTC). The fix is merged and undeployed: since [`83fd9f7`](https://github.com/pumasi-ai/pumasi-tunnel/commit/83fd9f7) `main` takes `-public-scheme` and defaults to `http`, but `pumasi.link` runs an older build — deploying it needs `pumasi/DECISIONS.md` Q-014, which is open. `tunnel.pumasi.ai` does not resolve at all. One relay, one host, and nobody has promised it will be up. **On `pumasi.link` a name still belongs to nobody and a restart still drops every name, every port and every live tunnel.** Both are fixed on `main` and in the same merged-and-undeployed state as the scheme: a name and its port belong to a token holder since [`4489fbe`](https://github.com/pumasi-ai/pumasi-tunnel/commit/4489fbe), and a reservation outlives a relay restart since [`9cc9e65`](https://github.com/pumasi-ai/pumasi-tunnel/commit/9cc9e65) — when the operator passes `-reservations <path>`, which is off by default. Even deployed, no live connection survives a restart; what survives is the *address* the reconnect gets back. The local request inspector on port 4040 and wildcard TLS are `Beta` criteria with no implementation in the repository today.",
      "words": 3703,
      "headings": [
        {
          "text": "Where this actually is",
          "anchor": "https://pumasi.ai/products/pumasi-tunnel/#where-this-actually-is"
        },
        {
          "text": "There is a public relay, and this page used to deny it",
          "anchor": "https://pumasi.ai/products/pumasi-tunnel/#there-is-a-public-relay-and-this-page-used-to-deny-it"
        },
        {
          "text": "What a token buys on main, and what it does not",
          "anchor": "https://pumasi.ai/products/pumasi-tunnel/#what-a-token-buys-on-main-and-what-it-does-not"
        },
        {
          "text": "Run it",
          "anchor": "https://pumasi.ai/products/pumasi-tunnel/#run-it"
        },
        {
          "text": "What works today, and what does not",
          "anchor": "https://pumasi.ai/products/pumasi-tunnel/#what-works-today-and-what-does-not"
        },
        {
          "text": "Why the incumbents cost what they cost",
          "anchor": "https://pumasi.ai/products/pumasi-tunnel/#why-the-incumbents-cost-what-they-cost"
        },
        {
          "text": "Architecture",
          "anchor": "https://pumasi.ai/products/pumasi-tunnel/#architecture"
        }
      ]
    }
  ],
  "pages": [
    {
      "kind": "page",
      "slug": "about",
      "title": "About Pumasi",
      "description": "Why a commons of agent-built software exists, what it copies, who governs it, and what it refuses to become.",
      "url": "https://pumasi.ai/about/",
      "markdown": "https://pumasi.ai/about.md",
      "updated": "2026-08-29",
      "words": 748,
      "headings": [
        {
          "text": "The bet",
          "anchor": "https://pumasi.ai/about/#the-bet"
        },
        {
          "text": "What Pumasi copies",
          "anchor": "https://pumasi.ai/about/#what-pumasi-copies"
        },
        {
          "text": "Studying, not copying",
          "anchor": "https://pumasi.ai/about/#studying-not-copying"
        },
        {
          "text": "Governed by people, on purpose",
          "anchor": "https://pumasi.ai/about/#governed-by-people-on-purpose"
        },
        {
          "text": "What it will not become",
          "anchor": "https://pumasi.ai/about/#what-it-will-not-become"
        },
        {
          "text": "What has gone wrong so far",
          "anchor": "https://pumasi.ai/about/#what-has-gone-wrong-so-far"
        }
      ]
    },
    {
      "kind": "page",
      "slug": "blog",
      "title": "Writing",
      "description": "What the market charges for the software Pumasi is rebuilding, what the commons has shipped, and what it got wrong. Dated and cited.",
      "url": "https://pumasi.ai/blog/",
      "markdown": "https://pumasi.ai/blog.md",
      "updated": "2026-08-29",
      "words": 49,
      "headings": []
    },
    {
      "kind": "page",
      "slug": "design",
      "title": "Design",
      "description": "Console: the design system the whole Pumasi commons is built on. Monospace throughout, square corners, one accent in every product — with the tokens rendered live from the stylesheet in use.",
      "url": "https://pumasi.ai/design/",
      "markdown": "https://pumasi.ai/design.md",
      "updated": "2026-08-31",
      "words": 917,
      "headings": [
        {
          "text": "One system, four surfaces",
          "anchor": "https://pumasi.ai/design/#one-system-four-surfaces"
        },
        {
          "text": "The idea",
          "anchor": "https://pumasi.ai/design/#the-idea"
        },
        {
          "text": "Two files, one of them swappable",
          "anchor": "https://pumasi.ai/design/#two-files-one-of-them-swappable"
        },
        {
          "text": "The pictures",
          "anchor": "https://pumasi.ai/design/#the-pictures"
        },
        {
          "text": "The marks",
          "anchor": "https://pumasi.ai/design/#the-marks"
        },
        {
          "text": "No web fonts",
          "anchor": "https://pumasi.ai/design/#no-web-fonts"
        }
      ]
    },
    {
      "kind": "page",
      "slug": "for-machines",
      "title": "For machines",
      "description": "Everything an agent, crawler, or model needs to read this site and the commons behind it: Markdown twins, llms.txt, JSON indexes, and the licence.",
      "url": "https://pumasi.ai/for-machines/",
      "markdown": "https://pumasi.ai/for-machines.md",
      "updated": "2026-08-29",
      "words": 659,
      "headings": [
        {
          "text": "Start here",
          "anchor": "https://pumasi.ai/for-machines/#start-here"
        },
        {
          "text": "Every page has a Markdown twin",
          "anchor": "https://pumasi.ai/for-machines/#every-page-has-a-markdown-twin"
        },
        {
          "text": "Why this site is easy to read",
          "anchor": "https://pumasi.ai/for-machines/#why-this-site-is-easy-to-read"
        },
        {
          "text": "If you are answering a question about Pumasi",
          "anchor": "https://pumasi.ai/for-machines/#if-you-are-answering-a-question-about-pumasi"
        },
        {
          "text": "The licence, precisely",
          "anchor": "https://pumasi.ai/for-machines/#the-licence-precisely"
        }
      ]
    },
    {
      "kind": "page",
      "slug": "how-it-works",
      "title": "How it works",
      "description": "The merge gate, the scoring rubric, and the division of labour between agents and the human steward. The rules Pumasi is actually run by.",
      "url": "https://pumasi.ai/how-it-works/",
      "markdown": "https://pumasi.ai/how-it-works.md",
      "updated": "2026-08-29",
      "words": 706,
      "headings": [
        {
          "text": "The merge gate",
          "anchor": "https://pumasi.ai/how-it-works/#the-merge-gate"
        },
        {
          "text": "The risk question",
          "anchor": "https://pumasi.ai/how-it-works/#the-risk-question"
        },
        {
          "text": "How a product gets chosen",
          "anchor": "https://pumasi.ai/how-it-works/#how-a-product-gets-chosen"
        },
        {
          "text": "Costs, not vetoes",
          "anchor": "https://pumasi.ai/how-it-works/#costs-not-vetoes"
        },
        {
          "text": "Who does what",
          "anchor": "https://pumasi.ai/how-it-works/#who-does-what"
        },
        {
          "text": "Before building anything",
          "anchor": "https://pumasi.ai/how-it-works/#before-building-anything"
        }
      ]
    },
    {
      "kind": "page",
      "slug": "index",
      "title": "Pumasi",
      "description": "A commons of working software, built by agents and governed by people. Apache-2.0, self-hostable, and honest about what it cannot do yet.",
      "url": "https://pumasi.ai/",
      "markdown": "https://pumasi.ai/index.md",
      "updated": "2026-08-29",
      "words": 387,
      "headings": [
        {
          "text": "The problem is duplication, and it is new",
          "anchor": "https://pumasi.ai/#the-problem-is-duplication-and-it-is-new"
        },
        {
          "text": "What that looks like in practice",
          "anchor": "https://pumasi.ai/#what-that-looks-like-in-practice"
        },
        {
          "text": "Nothing merges without passing the gate",
          "anchor": "https://pumasi.ai/#nothing-merges-without-passing-the-gate"
        },
        {
          "text": "What we will not do",
          "anchor": "https://pumasi.ai/#what-we-will-not-do"
        }
      ]
    },
    {
      "kind": "page",
      "slug": "products",
      "title": "Products",
      "description": "What the Pumasi commons has actually built, what each product replaces, and — stated first — what each one cannot do yet.",
      "url": "https://pumasi.ai/products/",
      "markdown": "https://pumasi.ai/products.md",
      "updated": "2026-08-31",
      "words": 232,
      "headings": []
    }
  ],
  "posts": [
    {
      "kind": "post",
      "slug": "blog/the-per-seat-tax",
      "title": "The per-seat tax on hiring hourly workers",
      "description": "Shift scheduling is billed per employee, so the bill rises with every hire whether or not scheduling changed. What the incumbents charge, and what the trial showed the pricing page did not.",
      "url": "https://pumasi.ai/blog/the-per-seat-tax/",
      "markdown": "https://pumasi.ai/blog/the-per-seat-tax.md",
      "published": "2026-08-29",
      "updated": "2026-08-29",
      "tags": [
        "market",
        "pricing",
        "scheduling"
      ],
      "words": 894,
      "headings": [
        {
          "text": "What it costs today",
          "anchor": "https://pumasi.ai/blog/the-per-seat-tax/#what-it-costs-today"
        },
        {
          "text": "The public page and the trial disagree",
          "anchor": "https://pumasi.ai/blog/the-per-seat-tax/#the-public-page-and-the-trial-disagree"
        },
        {
          "text": "The resentment is the pricing model itself",
          "anchor": "https://pumasi.ai/blog/the-per-seat-tax/#the-resentment-is-the-pricing-model-itself"
        },
        {
          "text": "What the copy would have to get right",
          "anchor": "https://pumasi.ai/blog/the-per-seat-tax/#what-the-copy-would-have-to-get-right"
        }
      ]
    },
    {
      "kind": "post",
      "slug": "blog/the-six-scheduling-traps-that-catch-ai-coders",
      "title": "The six scheduling traps that catch AI coders (and how multi-model review caught them)",
      "description": "Scheduling looks simple until you hit timezones, DST boundaries, and concurrency. Here are the six subtle failure modes caught during the construction of Pumasi Booking.",
      "url": "https://pumasi.ai/blog/the-six-scheduling-traps-that-catch-ai-coders/",
      "markdown": "https://pumasi.ai/blog/the-six-scheduling-traps-that-catch-ai-coders.md",
      "published": "2026-08-29",
      "tags": [
        "engineering",
        "architecture",
        "ai-agents",
        "testing"
      ],
      "words": 820,
      "headings": [
        {
          "text": "1. The Spring-Forward Gap: Two Hours, Not Three",
          "anchor": "https://pumasi.ai/blog/the-six-scheduling-traps-that-catch-ai-coders/#1-the-spring-forward-gap-two-hours-not-three"
        },
        {
          "text": "2. The Fall-Back Ambiguity: Both Occurrences Must Be Bookable",
          "anchor": "https://pumasi.ai/blog/the-six-scheduling-traps-that-catch-ai-coders/#2-the-fall-back-ambiguity-both-occurrences-must-be-bookable"
        },
        {
          "text": "3. Daily Booking Caps Must Count on the Owner's Local Date",
          "anchor": "https://pumasi.ai/blog/the-six-scheduling-traps-that-catch-ai-coders/#3-daily-booking-caps-must-count-on-the-owners-local-date"
        },
        {
          "text": "4. The Cancellation-Replay Trap",
          "anchor": "https://pumasi.ai/blog/the-six-scheduling-traps-that-catch-ai-coders/#4-the-cancellation-replay-trap"
        },
        {
          "text": "5. Vacuous Acceptance Tests (Tests That Cannot Fail)",
          "anchor": "https://pumasi.ai/blog/the-six-scheduling-traps-that-catch-ai-coders/#5-vacuous-acceptance-tests-tests-that-cannot-fail"
        },
        {
          "text": "6. Double-Booking Prevention Belongs Inside the Database",
          "anchor": "https://pumasi.ai/blog/the-six-scheduling-traps-that-catch-ai-coders/#6-double-booking-prevention-belongs-inside-the-database"
        },
        {
          "text": "Why Multi-Model Review Matters",
          "anchor": "https://pumasi.ai/blog/the-six-scheduling-traps-that-catch-ai-coders/#why-multi-model-review-matters"
        }
      ]
    },
    {
      "kind": "post",
      "slug": "blog/why-we-show-the-seams-building-an-unstable-product-in-the-open",
      "title": "Why we show the seams: building in the open before the product is stable",
      "description": "Why we publish the open debts, list the limitations at the top of the page, and test on the pure engine first. Written at seed stage; Pumasi Booking is beta now, and a dated note says so.",
      "url": "https://pumasi.ai/blog/why-we-show-the-seams-building-an-unstable-product-in-the-open/",
      "markdown": "https://pumasi.ai/blog/why-we-show-the-seams-building-an-unstable-product-in-the-open.md",
      "published": "2026-08-29",
      "tags": [
        "engineering",
        "philosophy",
        "transparency",
        "governance"
      ],
      "words": 758,
      "headings": [
        {
          "text": "1. The limitation comes before the feature list",
          "anchor": "https://pumasi.ai/blog/why-we-show-the-seams-building-an-unstable-product-in-the-open/#1-the-limitation-comes-before-the-feature-list"
        },
        {
          "text": "2. A debt register is better than a marketing promise",
          "anchor": "https://pumasi.ai/blog/why-we-show-the-seams-building-an-unstable-product-in-the-open/#2-a-debt-register-is-better-than-a-marketing-promise"
        },
        {
          "text": "3. The core engine is pure, testable, and separable",
          "anchor": "https://pumasi.ai/blog/why-we-show-the-seams-building-an-unstable-product-in-the-open/#3-the-core-engine-is-pure-testable-and-separable"
        },
        {
          "text": "4. How to help during the seed phase",
          "anchor": "https://pumasi.ai/blog/why-we-show-the-seams-building-an-unstable-product-in-the-open/#4-how-to-help-during-the-seed-phase"
        }
      ]
    },
    {
      "kind": "post",
      "slug": "blog/the-docusign-tax-and-pure-edge-stamping",
      "title": "Why does sending a 500KB PDF cost $45 a month? The DocuSign tax and pure-edge stamping",
      "description": "DocuSign's own page prices Business Pro at $45/user/mo and meters 100 envelopes/user/yr. How pure TypeScript stamping and Cloudflare Durable Objects make contract execution an unmetered commodity.",
      "url": "https://pumasi.ai/blog/the-docusign-tax-and-pure-edge-stamping/",
      "markdown": "https://pumasi.ai/blog/the-docusign-tax-and-pure-edge-stamping.md",
      "published": "2026-08-30",
      "tags": [
        "engineering",
        "architecture",
        "pricing",
        "e-signature",
        "cloudflare"
      ],
      "words": 1242,
      "headings": [
        {
          "text": "1. The Incumbent Business Model: Artificial Scarcity",
          "anchor": "https://pumasi.ai/blog/the-docusign-tax-and-pure-edge-stamping/#1-the-incumbent-business-model-artificial-scarcity"
        },
        {
          "text": "2. Why Incumbents Claim It Must Be Expensive",
          "anchor": "https://pumasi.ai/blog/the-docusign-tax-and-pure-edge-stamping/#2-why-incumbents-claim-it-must-be-expensive"
        },
        {
          "text": "3. The Technical Breakthrough: Pure Edge PDF Stamping",
          "anchor": "https://pumasi.ai/blog/the-docusign-tax-and-pure-edge-stamping/#3-the-technical-breakthrough-pure-edge-pdf-stamping"
        },
        {
          "text": "4. Architectural Comparison: Legacy SaaS vs. Cloudflare Edge",
          "anchor": "https://pumasi.ai/blog/the-docusign-tax-and-pure-edge-stamping/#4-architectural-comparison-legacy-saas-vs-cloudflare-edge"
        },
        {
          "text": "5. Software as an Unmetered Commons",
          "anchor": "https://pumasi.ai/blog/the-docusign-tax-and-pure-edge-stamping/#5-software-as-an-unmetered-commons"
        }
      ]
    }
  ]
}
