mirror of
https://github.com/profullstack/logicsrc.git
synced 2026-09-10 19:26:00 +00:00
Add Tech Stack and Monetization sections to OpenPRD (0.3) (#144)
OpenPRD 0.2 fixed eight body sections, none of which asked what the thing is
built on or how it earns. The stack got chosen in the first implementation PR
instead of at review, and a PRD could be filled out completely without anyone
writing down who pays. PRD 0006 had already grown a hand-rolled
`## Business model` section, which is the gap showing.
0.3 adds two required sections between `UX Notes` and `Success Metrics`:
- Tech Stack — languages, frameworks, datastores, third-party services, and
anything the work must not depend on. It makes the requirements costable.
- Monetization — the revenue model: who pays, for what, how much, and when.
`_None._` stays a valid answer, but it now has to be said out loud.
Adding required sections would normally invalidate every document already
written, so a document is now held to the section list its own `openprd:` key
fixes. A 0.2 document keeps conforming with eight sections, forever; a 0.3
document needs ten. Adoption is per document, and `logicsrc prd validate
--expect-version 0.3` (new flag, wiring up the validator option that already
existed) reports the stragglers as OP-L-VERSION.
The front-matter schema is untouched — both additions are body sections.
Conformance bundle proves both directions: invalid/missing-monetization.md
fails with OP-C-SECTION-MISSING, and valid/legacy-0-2.md passes unedited.
This repo's own PRDs 0001-0006 stay at 0.2 as standing evidence that the
compatibility rule holds. PRD 0007 records the decision at 0.3.
Claude-Session: https://claude.ai/code/session_017XRNNm6pK6nPi7rJ6bJNHu
Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
parent
ca0283caa9
commit
91834179b7
36 changed files with 679 additions and 80 deletions
|
|
@ -1,5 +1,5 @@
|
|||
---
|
||||
openprd: "0.2"
|
||||
openprd: "0.3"
|
||||
id: "0000"
|
||||
title: "Short imperative title — start with a verb if possible"
|
||||
status: Draft
|
||||
|
|
@ -41,6 +41,16 @@ Who this is for; personas or segments.
|
|||
|
||||
Flows, states, and constraints that shape the experience.
|
||||
|
||||
## Tech Stack
|
||||
|
||||
Languages, frameworks, datastores, and third-party services this will be built
|
||||
on, and anything it must not depend on.
|
||||
|
||||
## Monetization
|
||||
|
||||
The revenue model: who pays, for what, how much, and when. None, when the
|
||||
change does not earn on its own.
|
||||
|
||||
## Success Metrics
|
||||
|
||||
How the goals will be measured.
|
||||
|
|
|
|||
129
prd/0007-add-tech-stack-and-monetization-to-openprd.md
Normal file
129
prd/0007-add-tech-stack-and-monetization-to-openprd.md
Normal file
|
|
@ -0,0 +1,129 @@
|
|||
---
|
||||
openprd: "0.3"
|
||||
id: "0007"
|
||||
title: Add Tech Stack and Monetization sections to OpenPRD
|
||||
status: Draft
|
||||
authors:
|
||||
- anthony@profullstack.com
|
||||
repo: profullstack/logicsrc
|
||||
created: 2026-09-06
|
||||
updated: 2026-09-06
|
||||
discussion:
|
||||
implementation:
|
||||
tags:
|
||||
- openprd
|
||||
- standards
|
||||
- monetization
|
||||
supersedes:
|
||||
superseded-by:
|
||||
---
|
||||
|
||||
# Add Tech Stack and Monetization sections to OpenPRD
|
||||
|
||||
## Problem
|
||||
|
||||
OpenPRD 0.2 fixes eight sections, and two questions that decide whether a
|
||||
product decision is a good one are missing from all of them.
|
||||
|
||||
The first is what the thing is built on. Requirements cannot be costed without
|
||||
it, so the stack gets picked in the first implementation PR instead, by
|
||||
whoever opens it, and the PRD that was supposed to record the *why* is silent
|
||||
on the most expensive choice in the change.
|
||||
|
||||
The second is how it earns. Every section in 0.2 is about the user and none is
|
||||
about the business. A PRD can be filled out completely, reviewed, accepted, and
|
||||
shipped without anyone writing down who pays. Across the fleet that is exactly
|
||||
the question that goes unanswered until after launch.
|
||||
|
||||
## Goals
|
||||
|
||||
- A reader of any OpenPRD 0.3 document can tell what it will be built on and
|
||||
how it earns without leaving the file.
|
||||
- The stack and the revenue model are settled at review time, when changing
|
||||
them is still cheap, rather than in the implementing PR.
|
||||
- "This does not earn on its own" stays a legitimate answer, said out loud
|
||||
rather than by omission.
|
||||
- Every document already written against 0.2 keeps conforming, untouched.
|
||||
|
||||
## Non-Goals
|
||||
|
||||
- No financial modelling: the section states a model, not a forecast, and
|
||||
nothing validates the numbers.
|
||||
- No architecture review: `Tech Stack` names what will be used, it is not an
|
||||
ADR and does not replace one.
|
||||
- No forced migration. Collections adopt 0.3 per document, or never.
|
||||
- No front-matter change. Both additions are body sections; the schema is
|
||||
untouched.
|
||||
|
||||
## Users
|
||||
|
||||
- **Authors** — human or agent — who now have somewhere to put two decisions
|
||||
that were previously made in silence.
|
||||
- **Reviewers**, who get a costable stack and a stated revenue model in the
|
||||
document they are already reading.
|
||||
- **Third-party implementers** of the standard, who need to know that a
|
||||
document is judged against the version it declares.
|
||||
|
||||
## Requirements
|
||||
|
||||
- R1 [P0] `## Tech Stack` and `## Monetization` are required body sections in
|
||||
OpenPRD 0.3, in that order, between `## UX Notes` and `## Success Metrics`.
|
||||
- R2 [P0] Both accept `_None._`, like every other section.
|
||||
- R3 [P0] A document is validated against the section list its own `openprd:`
|
||||
key fixes, so a `0.2` document is still held to eight sections and still
|
||||
conforms.
|
||||
- R4 [P0] `logicsrc prd new` scaffolds ten stub sections, and the shipped
|
||||
template carries both.
|
||||
- R5 [P1] The conformance bundle proves both directions: a 0.3 document missing
|
||||
`Monetization` fails with `OP-C-SECTION-MISSING`, and a 0.2 document with
|
||||
eight sections passes.
|
||||
- R6 [P1] The specification states the compatibility rule and how to adopt 0.3
|
||||
in an existing collection.
|
||||
- R7 [P2] `draft_prd` and `review_prd` on the MCP surface ask for both
|
||||
sections, and `review_prd` challenges a stack too vague to cost and a
|
||||
monetization answer that dodges who pays.
|
||||
|
||||
## UX Notes
|
||||
|
||||
Nothing about authoring changes: the sections appear in the template and in
|
||||
`logicsrc prd new` output, with the same `_TODO:` placeholders as the rest.
|
||||
|
||||
The failure a validator produces for a 0.3 document that predates the change is
|
||||
the ordinary `OP-C-SECTION-MISSING`, naming the section and listing what the
|
||||
declared version requires — so the fix is visible in the message, and the
|
||||
alternative fix (leave it at 0.2) is a one-line edit.
|
||||
|
||||
## Tech Stack
|
||||
|
||||
No new dependency. TypeScript in `packages/openprd` (the section list moves
|
||||
from one constant to a version-keyed lookup), the existing JSON Schema in
|
||||
`packages/schemas` — unchanged, since the front-matter is unchanged — the
|
||||
Markdown fixtures beside it, the Next.js landing page in `apps/logicsrc-web`,
|
||||
and the MCP surface in `packages/logicsrc-mcp`. Vitest covers it.
|
||||
|
||||
## Monetization
|
||||
|
||||
_None._ OpenPRD is an open standard published to be copied and cited; it is not
|
||||
sold and carries no plan, meter, or SKU. It earns indirectly, by making the
|
||||
LogicSRC standards surface worth adopting — and, from this change onward, by
|
||||
making sure every product decision downstream of it has answered the revenue
|
||||
question in writing.
|
||||
|
||||
## Success Metrics
|
||||
|
||||
- Every PRD written in this repo from 0007 onward declares `0.3` and fills both
|
||||
sections.
|
||||
- The conformance bundle's 0.2 fixture keeps passing, unedited, across future
|
||||
releases: the proof that the version rule holds.
|
||||
- Reviews stop discovering the stack in the implementation PR.
|
||||
|
||||
## Risks & Open Questions
|
||||
|
||||
- Ten required sections is more ceremony, and ceremony gets skipped. If
|
||||
`Monetization` becomes reflexive `_None._` on every PRD, the section has
|
||||
failed and should be reconsidered rather than left as decoration.
|
||||
- Version-aware validation means two live section lists forever. A third
|
||||
addition would make three; at that point the rule needs a real deprecation
|
||||
policy rather than a growing lookup.
|
||||
- Open: whether this repo's own 0001-0006 should be migrated to 0.3 or left as
|
||||
the standing evidence that 0.2 documents still conform. Left at 0.2 for now.
|
||||
|
|
@ -17,3 +17,4 @@ Status lives in each file's front-matter and is the source of truth:
|
|||
| [0004](./0004-add-logicsrc-opencreds-spec.md) | Add the LogicSRC OpenCreds specification | Draft | opencreds, credentials, vault, encryption, portability, schemas |
|
||||
| [0005](./0005-add-logicsrc-openswarm-spec.md) | Add the LogicSRC OpenSwarm specification family | Draft | openswarm, ipfile, ipdb, ipaudio, ipvideo, iplive, bittorrent, x402, c0mpute |
|
||||
| [0006](./0006-add-pay2seed-spec.md) | Add pay2seed, paid2seed, pay2stream and paid2stream to the OpenSwarm family | Draft | openswarm, pay2seed, paid2seed, pay2stream, paid2stream, iplive, hls, ipfile, ippay, ipdb, bittorrent, torlink, bittorrented, c0mpute |
|
||||
| [0007](./0007-add-tech-stack-and-monetization-to-openprd.md) | Add Tech Stack and Monetization sections to OpenPRD | Draft | openprd, standards, monetization |
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue