Add Tech Stack and Monetization sections to OpenPRD (0.3) - #144
Merged
Conversation
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.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_017XRNNm6pK6nPi7rJ6bJNHu
ThreatCrush Security Scan21 finding(s) HIGH/CRITICAL: 3 | MEDIUM: 9 | LOW: 9
Snippets are redacted; ThreatCrush never prints matched credential material. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Adds two required body sections to the OpenPRD standard and bumps it to
0.3.What's new
Between
## UX Notesand## Success Metrics:## Tech Stack— languages, frameworks, datastores, third-party services, and anything the work must not depend on. It is what makes the requirements costable, and what stops the stack from being chosen silently in the first implementation PR.## 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 rather than by omission.PRD 0006 in this repo had already grown a hand-rolled
## Business modelsection, and 0002 an## Implementation Notes— the gap was real.Backward compatibility
Adding required sections would normally invalidate every 0.2 document ever written. It doesn't, because a document is now held to the section list its own
openprd:key fixes:0.20.3Adoption is per document, not per collection.
logicsrc prd validate --expect-version 0.3(new flag, wiring up theexpectedVersionoption the validator already had) reports stragglers asOP-L-VERSION— a warning, an error under--strict.The front-matter JSON Schema is untouched; both additions are body sections.
Conformance
The bundle proves both directions:
invalid/missing-monetization.md— a 0.3 document withoutMonetizationfails withOP-C-SECTION-MISSINGvalid/legacy-0-2.md— a 0.2 document with eight sections passes, uneditedThis repo's PRDs 0001-0006 deliberately stay at 0.2 as standing evidence that the rule holds. PRD 0007 records the decision, written at 0.3.
Surfaces updated
Spec (
docs/openprd.md, new Versioning section), template (docs/openprd/0000-template.md+prd/0000-template.md),@logicsrc/openprd(sectionsForVersion, exported), CLI, MCPdraft_prd/review_prdprompts, conformance fixtures, and thelogicsrc.com/openprdlanding page.Testing
packages/openprd— 79 passed, including three new tests for version-aware section listspackages/logicsrc-mcp— 17 passedtsc --noEmitclean onpackages/openprd; no new errors inpackages/cliorapps/logicsrc-webprd/collection: clean with no flag, sixOP-L-VERSIONwarnings with--expect-version 0.3🤖 Generated with Claude Code
https://claude.ai/code/session_017XRNNm6pK6nPi7rJ6bJNHu