Created and presented by Nino Chavez.

Session S15 · 9 chaptersScroll to read · use ← → to step between chaptersSkip to the record

WAYS OF WORKING · DEMO 15 NINO CHAVEZ

The harder deliverable
wasn't the build.

Building a working reference implementation of a BigCommerce-native subscriptions capability was the demonstrable part. What a global systems integrator (GSI) actually needs before it can bid on building it for real — a ten-document scoping and estimation package, projected from a 28-epic, 218-story spec corpus — took longer to get right and stayed the harder problem the whole way through.

or scroll to advance · to go back

02 TEN DOCUMENTS, ONE JOB EACH

Not a spec dump — ten documents, each answering one question

The vendor-facing package, files 01 through 10, projects a 28-epic, 218-story requirements corpus into the shape an estimator actually needs. Every document exists to answer one question a bidder would otherwise have to ask in a discovery call.

Document
Answers, for an estimator
01Context & scope
What is being commissioned, for whom, and why native
02Capability catalog
What the capability consists of; the MVP-vs-deferred phase boundary
03User journeys
What the merchant, shopper, and system experiences actually are
04Competitive benchmark
The quality bar: table stakes vs. where this build must exceed it
05Platform integration contract
What the platform provides vs. what must be built; the biggest estimation drivers
06Non-functional requirements
Cross-cutting targets and the evidence bar for each
07Work breakdown
The estimable skeleton — every epic and story, phase-tagged
08Scope boundary & engagement model
In/out of scope, decided policies, change control
09Estimation scaffold
The required bid format; how bids get evaluated
10Reference prototype
The working system as behavior oracle; what bidders can access

Ten capability domains — onboarding, catalog, purchase, billing, orders, self-service, operations, platform, commerce, trust — organize all 28 epics. Every story rolls up to exactly one epic; every epic rolls up to exactly one domain.

03 WHAT MAKES IT BID-READY

A spec dump doesn't have tiers, decision points, or a required format

Effort tiers, where set

Stories carry an indicative relative-size tier — extra-small through large — from internal planning, where one exists. Untiered rows are marked TBD rather than left blank, so a missing tier reads as a grooming gap, not a signal that the story is trivial.

Labeled, not silent — a blank cell would read as an error.

Ten costed decision points

The platform-integration contract surfaces ten gaps between what the platform already provides and what the build still needs. Each one ends in a decision the vendor must answer in its own solution design, with both options costed — never left open for later.

One comparable answer format

Bids return eight required sections — fixed-scope estimate, options pricing, decision-point positions, assumptions and risk registers, a team plan, a knowledge-transfer plan, a delivery timeline — so every vendor's bid reads side by side instead of needing to be reformatted first.

Comparable, not just complete — the format is the point.

Scope is fenced the same way. The initial engagement is fixed against the MVP-tagged stories — roughly 104 of the 218 — with later phases priced as separately exercisable options, not silent inclusions. A bid that redraws any of these boundaries without saying so is treated as non-responsive on that item.

04 PROJECTION, NOT CANON

The package has no facts of its own

Everything in 01–10 derives from a canonical spec corpus that stays the internal source of truth. The package is that corpus's external, architecture-neutral projection — not a second copy someone edits by hand once it exists.

"PRD.md/BRD.md remain the internal source of truth; this package is the external projection — architecture-neutral and swept of internal-sensitive content." the package's own provenance note, docs/gsi-package/README.md

The work-breakdown tables are generated from a derived sizing file, not hand-typed. When the underlying spec changes materially before the package ships, the fix is regenerating the tables and re-stamping every document's source commit — never hand-editing a row. Two sources of truth is how a bid package rots.

05 THE SANITIZATION PIPELINE

Leakage prevention is a lint, not a proofread

Whitelisted at the section level

Only five sections per story ship — the story sentence, acceptance criteria, UX notes, non-functional notes, dependencies. Everything else drops by default, so a new section type in the source is export-safe before anyone remembers to redact it.

✓ enforced in the tool: a forbidden-pattern list — repo paths, runtime names, issue references, secret names, internal URLs — runs over the rendered output and hard-fails before anything is written.

Structure can't drift silently

The export expects exactly 218 stories across 28 epics.

✓ by design: any other count hard-fails the run. A corpus structure change gets absorbed on purpose — never shipped as a silently partial export.

Five documented failure modes already forced permanent fixes, not one-off patches: a forbidden-word match inside an unrelated string, a phase label written two ways that would have forked the export's phase vocabulary, a scrubbed link label that left its internal URL intact, a status-qualified section header the whitelist silently dropped, and reference-implementation route paths hiding inside sections that otherwise looked clean.

06 FROZEN, PER VENDOR

Every bidder gets the same package, name-stamped

Per-vendor frozen bundles

One script stages the sanitized export, stamps every document as issued, generates a cover page, and zips one identical, name-stamped copy per vendor — same content, different filename, so no bidder can argue a rival saw a different scope.

A gated preview, always marked draft

A basic-auth-gated web rendering exists for internal review and guided walkthroughs only. Every page carries a draft banner and is excluded from search indexing, and it is never the artifact handed to a bidder — the issued bundle only ever comes from the zip.

The rendered reading set — sidebar navigation, print styling for a PDF, zero external requests, no JavaScript — comes from the same staged files whether it's the gated preview or the delivered zip, so the reading experience can't fork from what actually ships.

07 THE HUMAN GATES

Every document here still says draft, internal review

Agents produced the ten-document package, the sanitization tool, and the bundling script. What they did not do is clear it for release. Every file in 01–10 carries a draft-internal-review status, and a sharing checklist gates anything leaving the repo — none of the following are checked yet.

Check
Status
Product-owner review — requirements-accuracy sign-off
unchecked
Engineering review — platform-contract accuracy
unchecked
Adversarial review — hunting internal leakage and overclaim a vendor could monetize
unchecked
Voice pass — no internal vocabulary reaching a vendor reader
unchecked
Sensitive-data re-sweep — codenames, people, vendor names
unchecked

The point isn't that agents can't be trusted with a bid package — it's where the boundary sits. Agents draft, sanitize, and freeze. A human decides the package is accurate and safe to leave the building. That decision doesn't get automated here.

08 YOUR VERSION OF THIS

Derive the package. Don't author it twice.

If you scope client work

Keep one canonical requirements source and generate every client-facing artifact from it — a bid package, a statement of work, a vendor RFP. The moment someone hand-edits the exported copy, there are two sources of truth and no way to tell which one is right.

If you ship anything to an outside party

Make leakage prevention a lint that runs before the file is written, not a review step someone can skip. A whitelist of what's allowed to ship beats a blacklist of what isn't — new content is unsafe by default until someone deliberately allows it.

If agents are doing the drafting

Write the release checklist before the package exists, and keep every draft labeled as a draft until every box on it is checked. The checklist is what keeps "the agent wrote it" from silently becoming "therefore it shipped."

projection, not canon a whitelist beats a blacklist draft until every box is checked

09 WHAT SHIPPED, WHAT DIDN'T

A working build, and a package that still says draft

The reference implementation runs end-to-end against a live BigCommerce sandbox store — a working system a bidder can be walked through rather than take on faith. The bid package that would let a GSI actually build it for real stayed exactly where the checklist left it: drafted, sanitized, unshipped.

Colophon. Every count on these slides — ten documents, 28 epics, 218 stories, ten capability domains, ten platform-gap decision points, five documented sanitizer failure modes — was re-read from the package's own files and the sanitization tool's own documentation on publication day, not from a session summary. Ten years as an architect and consultant on enterprise commerce programs, translating business needs into technology roadmaps for large-scale implementations, shaped what "bid-ready" needed to mean here. An independent demonstration by Nino Chavez — not a BigCommerce product. Demo 15 in the ways-of-working series — the sibling discipline for gates that block a stage from finishing prematurely is demo 13; the registry pattern for load-bearing facts a lint alone won't catch is demo 06.

What happened

The Harder Deliverable Wasn't the Build

A ten-document vendor bid package — the scoping and estimation kit a global systems integrator needs before it can bid on a BigCommerce-native subscriptions build — projected from a 28-epic, 218-story spec corpus in days, not weeks. A leakage lint hard-fails before a forbidden pattern ever reaches the export, and a bundling script freezes identical, name-stamped copies per vendor. Every document still carries status: draft-internal-review — the release checklist stayed a human's job.

Collection
Ways of Working
Record
S15
Format
Session
01 / Reader

Who this is for

Anyone evaluating how a client-facing deliverable — a bid package, an SOW, a scoping document — can be produced by agents without becoming a liability the moment it reaches an outside reader.

02 / Evidence

What the session shows

How a 10-document, 28-epic, 218-story vendor bid package gets projected — not authored — from a canonical spec corpus, sanitized by a hard-fail leakage lint instead of a proofread, frozen into identical per-vendor bundles, and held behind an unchecked human release checklist before anything ships.

03 / Practice

What to reuse

Keep one canonical source and generate every client-facing artifact from it. Make leakage prevention a whitelist-based lint that runs before the file is written, not a review step someone can skip. Write the release checklist before the package exists.