@logicsrc/schemas 0.1.0 → 0.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +8 -1
- package/fixtures/openfleet/mixed.json +86 -0
- package/fixtures/openprd/conformance.json +14 -3
- package/fixtures/openprd/invalid/bad-filename.md +10 -1
- package/fixtures/openprd/invalid/bad-id-format.md +10 -1
- package/fixtures/openprd/invalid/bad-status.md +10 -1
- package/fixtures/openprd/invalid/dates-backwards.md +10 -1
- package/fixtures/openprd/invalid/duplicate-requirement.md +10 -1
- package/fixtures/openprd/invalid/id-mismatch.md +10 -1
- package/fixtures/openprd/invalid/missing-monetization.md +45 -0
- package/fixtures/openprd/invalid/missing-section.md +10 -1
- package/fixtures/openprd/invalid/missing-title.md +10 -1
- package/fixtures/openprd/invalid/no-front-matter.md +9 -0
- package/fixtures/openprd/invalid/out-of-order.md +10 -1
- package/fixtures/openprd/invalid/superseded-without-replacement.md +10 -1
- package/fixtures/openprd/invalid/unknown-key.md +10 -1
- package/fixtures/openprd/valid/bold-requirements.md +10 -1
- package/fixtures/openprd/valid/full.md +10 -1
- package/fixtures/openprd/valid/legacy-0-2.md +41 -0
- package/fixtures/openprd/valid/minimal.md +9 -1
- package/fixtures/openprd/valid/none-sections.md +9 -1
- package/fixtures/openprd/valid/subsections.md +10 -1
- package/fixtures/openprd/valid/superseded.md +10 -1
- package/fixtures/openwall/announcement.json +16 -0
- package/fixtures/openwall/broadcast.json +27 -0
- package/fixtures/openwall/direct.json +17 -0
- package/fixtures/openwall/receipt-accepted.json +13 -0
- package/fixtures/openwall/receipt-retrying.json +14 -0
- package/package.json +16 -3
- package/schemas/logicsrc-opencreds-audit-event.schema.json +54 -0
- package/schemas/logicsrc-opencreds-database.schema.json +94 -0
- package/schemas/logicsrc-opencreds-envelope.schema.json +38 -0
- package/schemas/logicsrc-opencreds-item.schema.json +240 -0
- package/schemas/logicsrc-opencreds-manifest.schema.json +31 -0
- package/schemas/logicsrc-opencreds-vault-meta.schema.json +70 -0
- package/schemas/logicsrc-openfleet.schema.json +323 -0
- package/schemas/logicsrc-openwall-message.schema.json +246 -0
- package/schemas/logicsrc-openwall-receipt.schema.json +229 -0
package/README.md
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
Canonical JSON Schemas (draft 2020-12) for the LogicSRC open coordination
|
|
4
4
|
standards, maintained by Profullstack, Inc.
|
|
5
5
|
|
|
6
|
-
|
|
6
|
+
Schema families include:
|
|
7
7
|
|
|
8
8
|
- **LogicSRC core** — `logicsrc-*.schema.json`: tasks, agents, runs, events,
|
|
9
9
|
plugins, connected accounts, email messages, social posts.
|
|
@@ -11,6 +11,13 @@ Two schema families ship from this package:
|
|
|
11
11
|
contract for CLI tools and AI agents (ads, placements, requests, responses,
|
|
12
12
|
impressions, clicks, campaigns). See `docs/agentad.md` in the repo;
|
|
13
13
|
[cl1s.tech](https://github.com/profullstack/cl1s.tech) is the reference network.
|
|
14
|
+
- **OpenWall draft** — `openwall-message` and `openwall-receipt` exports define
|
|
15
|
+
sender-side audience jobs and private delivery events. Fixtures are in
|
|
16
|
+
`fixtures/openwall`. See `docs/openwall.md` for consent, routing, and runtime
|
|
17
|
+
requirements beyond structural validation; no OpenWall delivery runtime ships.
|
|
18
|
+
- **OpenFleet draft** — the `openfleet` export describes fleets of OpenAgent
|
|
19
|
+
profiles and OpenSwarm file-key references, with metadata and CoinPay rental
|
|
20
|
+
offers. `@logicsrc/validators` also checks membership and rental references.
|
|
14
21
|
|
|
15
22
|
## Install
|
|
16
23
|
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
{
|
|
2
|
+
"type": "logicsrc.openfleet",
|
|
3
|
+
"version": "0.1",
|
|
4
|
+
"id": "https://example.com/fleets/research",
|
|
5
|
+
"name": "Research and distribution fleet",
|
|
6
|
+
"owner_did": "operator.coinpay",
|
|
7
|
+
"description": "An analyst agent and an encrypted reference-data swarm, offered together or separately.",
|
|
8
|
+
"updated_at": "2026-09-13T12:00:00Z",
|
|
9
|
+
"availability": "available",
|
|
10
|
+
"tags": [
|
|
11
|
+
"research",
|
|
12
|
+
"distribution"
|
|
13
|
+
],
|
|
14
|
+
"capabilities": [
|
|
15
|
+
"analysis",
|
|
16
|
+
"paid-seeding"
|
|
17
|
+
],
|
|
18
|
+
"metadata": {
|
|
19
|
+
"region": "eu-west",
|
|
20
|
+
"support_url": "https://example.com/support"
|
|
21
|
+
},
|
|
22
|
+
"members": [
|
|
23
|
+
{
|
|
24
|
+
"kind": "openagent",
|
|
25
|
+
"id": "analyst.coinpay",
|
|
26
|
+
"url": "https://example.com/agents/analyst.json",
|
|
27
|
+
"name": "Analyst",
|
|
28
|
+
"role": "analysis",
|
|
29
|
+
"metadata": {
|
|
30
|
+
"languages": [
|
|
31
|
+
"en"
|
|
32
|
+
]
|
|
33
|
+
}
|
|
34
|
+
},
|
|
35
|
+
{
|
|
36
|
+
"kind": "openswarm",
|
|
37
|
+
"id": "ed25519:0d87e09c7fea3ad6ba6c2f3e027ea47f5b245452899910948470906704c5295d",
|
|
38
|
+
"url": "https://example.com/swarms/references/manifest.json",
|
|
39
|
+
"name": "Reference corpus",
|
|
40
|
+
"role": "reference-data"
|
|
41
|
+
}
|
|
42
|
+
],
|
|
43
|
+
"rentals": [
|
|
44
|
+
{
|
|
45
|
+
"id": "fleet-hourly",
|
|
46
|
+
"scope": {
|
|
47
|
+
"kind": "fleet"
|
|
48
|
+
},
|
|
49
|
+
"rate": {
|
|
50
|
+
"amount": "25.000000",
|
|
51
|
+
"currency": "USD",
|
|
52
|
+
"unit": "hour"
|
|
53
|
+
},
|
|
54
|
+
"minimum_units": 1,
|
|
55
|
+
"maximum_units": 24,
|
|
56
|
+
"terms_url": "https://example.com/rental-terms",
|
|
57
|
+
"payment": {
|
|
58
|
+
"provider": "coinpay",
|
|
59
|
+
"payee_did": "operator.coinpay",
|
|
60
|
+
"checkout_url": "https://example.com/rentals/research"
|
|
61
|
+
}
|
|
62
|
+
},
|
|
63
|
+
{
|
|
64
|
+
"id": "analyst-task",
|
|
65
|
+
"scope": {
|
|
66
|
+
"kind": "members",
|
|
67
|
+
"members": [
|
|
68
|
+
{
|
|
69
|
+
"kind": "openagent",
|
|
70
|
+
"id": "analyst.coinpay"
|
|
71
|
+
}
|
|
72
|
+
]
|
|
73
|
+
},
|
|
74
|
+
"rate": {
|
|
75
|
+
"amount": "5.500000",
|
|
76
|
+
"currency": "USD",
|
|
77
|
+
"unit": "task"
|
|
78
|
+
},
|
|
79
|
+
"payment": {
|
|
80
|
+
"provider": "coinpay",
|
|
81
|
+
"payee_did": "operator.coinpay",
|
|
82
|
+
"checkout_url": "https://example.com/rentals/analyst"
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
]
|
|
86
|
+
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
|
-
"openprdConformance": "0.
|
|
3
|
-
"description": "Conformance fixtures for OpenPRD 0.
|
|
2
|
+
"openprdConformance": "0.3",
|
|
3
|
+
"description": "Conformance fixtures for OpenPRD 0.3. Every valid fixture must parse and validate with no errors; every invalid fixture must fail with the stated code. `file` is the filename the fixture must be validated as, since the standard's rules depend on it. A document is held to the section list its own `openprd:` version fixes, so valid/legacy-0-2.md still conforms with the eight sections 0.2 defined.",
|
|
4
4
|
"valid": [
|
|
5
5
|
{
|
|
6
6
|
"fixture": "valid/minimal.md",
|
|
@@ -25,6 +25,11 @@
|
|
|
25
25
|
{
|
|
26
26
|
"fixture": "valid/none-sections.md",
|
|
27
27
|
"file": "0005-keep-every-section-even-when-empty.md"
|
|
28
|
+
},
|
|
29
|
+
{
|
|
30
|
+
"fixture": "valid/legacy-0-2.md",
|
|
31
|
+
"file": "0006-keep-a-0-2-document-valid.md",
|
|
32
|
+
"reason": "A 0.2 document has eight sections and must keep conforming under 0.3."
|
|
28
33
|
}
|
|
29
34
|
],
|
|
30
35
|
"invalid": [
|
|
@@ -32,7 +37,13 @@
|
|
|
32
37
|
"fixture": "invalid/missing-section.md",
|
|
33
38
|
"file": "0001-missing-a-section.md",
|
|
34
39
|
"code": "OP-C-SECTION-MISSING",
|
|
35
|
-
"reason": "The
|
|
40
|
+
"reason": "The body sections are all required; Users is absent."
|
|
41
|
+
},
|
|
42
|
+
{
|
|
43
|
+
"fixture": "invalid/missing-monetization.md",
|
|
44
|
+
"file": "0001-omit-the-monetization-section.md",
|
|
45
|
+
"code": "OP-C-SECTION-MISSING",
|
|
46
|
+
"reason": "0.3 requires Tech Stack and Monetization; Monetization is absent."
|
|
36
47
|
},
|
|
37
48
|
{
|
|
38
49
|
"fixture": "invalid/out-of-order.md",
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
---
|
|
2
|
-
openprd: "0.
|
|
2
|
+
openprd: "0.3"
|
|
3
3
|
id: "0001"
|
|
4
4
|
title: Bad filename
|
|
5
5
|
status: Draft
|
|
@@ -31,6 +31,15 @@ _None._
|
|
|
31
31
|
|
|
32
32
|
_None._
|
|
33
33
|
|
|
34
|
+
## Tech Stack
|
|
35
|
+
|
|
36
|
+
TypeScript on Node 22, Postgres, and the existing Cloudflare worker. No new
|
|
37
|
+
runtime.
|
|
38
|
+
|
|
39
|
+
## Monetization
|
|
40
|
+
|
|
41
|
+
Bundled into the existing Pro plan at $19/mo; no separate SKU.
|
|
42
|
+
|
|
34
43
|
## Success Metrics
|
|
35
44
|
|
|
36
45
|
_None._
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
---
|
|
2
|
-
openprd: "0.
|
|
2
|
+
openprd: "0.3"
|
|
3
3
|
id: "1"
|
|
4
4
|
title: Two digit id
|
|
5
5
|
status: Draft
|
|
@@ -31,6 +31,15 @@ _None._
|
|
|
31
31
|
|
|
32
32
|
_None._
|
|
33
33
|
|
|
34
|
+
## Tech Stack
|
|
35
|
+
|
|
36
|
+
TypeScript on Node 22, Postgres, and the existing Cloudflare worker. No new
|
|
37
|
+
runtime.
|
|
38
|
+
|
|
39
|
+
## Monetization
|
|
40
|
+
|
|
41
|
+
Bundled into the existing Pro plan at $19/mo; no separate SKU.
|
|
42
|
+
|
|
34
43
|
## Success Metrics
|
|
35
44
|
|
|
36
45
|
_None._
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
---
|
|
2
|
-
openprd: "0.
|
|
2
|
+
openprd: "0.3"
|
|
3
3
|
id: "0001"
|
|
4
4
|
title: Unknown status
|
|
5
5
|
status: Shipped
|
|
@@ -31,6 +31,15 @@ _None._
|
|
|
31
31
|
|
|
32
32
|
_None._
|
|
33
33
|
|
|
34
|
+
## Tech Stack
|
|
35
|
+
|
|
36
|
+
TypeScript on Node 22, Postgres, and the existing Cloudflare worker. No new
|
|
37
|
+
runtime.
|
|
38
|
+
|
|
39
|
+
## Monetization
|
|
40
|
+
|
|
41
|
+
Bundled into the existing Pro plan at $19/mo; no separate SKU.
|
|
42
|
+
|
|
34
43
|
## Success Metrics
|
|
35
44
|
|
|
36
45
|
_None._
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
---
|
|
2
|
-
openprd: "0.
|
|
2
|
+
openprd: "0.3"
|
|
3
3
|
id: "0001"
|
|
4
4
|
title: Updated before created
|
|
5
5
|
status: Draft
|
|
@@ -33,6 +33,15 @@ _None._
|
|
|
33
33
|
|
|
34
34
|
_None._
|
|
35
35
|
|
|
36
|
+
## Tech Stack
|
|
37
|
+
|
|
38
|
+
TypeScript on Node 22, Postgres, and the existing Cloudflare worker. No new
|
|
39
|
+
runtime.
|
|
40
|
+
|
|
41
|
+
## Monetization
|
|
42
|
+
|
|
43
|
+
Bundled into the existing Pro plan at $19/mo; no separate SKU.
|
|
44
|
+
|
|
36
45
|
## Success Metrics
|
|
37
46
|
|
|
38
47
|
_None._
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
---
|
|
2
|
-
openprd: "0.
|
|
2
|
+
openprd: "0.3"
|
|
3
3
|
id: "0001"
|
|
4
4
|
title: Duplicate requirement id
|
|
5
5
|
status: Draft
|
|
@@ -32,6 +32,15 @@ _None._
|
|
|
32
32
|
|
|
33
33
|
_None._
|
|
34
34
|
|
|
35
|
+
## Tech Stack
|
|
36
|
+
|
|
37
|
+
TypeScript on Node 22, Postgres, and the existing Cloudflare worker. No new
|
|
38
|
+
runtime.
|
|
39
|
+
|
|
40
|
+
## Monetization
|
|
41
|
+
|
|
42
|
+
Bundled into the existing Pro plan at $19/mo; no separate SKU.
|
|
43
|
+
|
|
35
44
|
## Success Metrics
|
|
36
45
|
|
|
37
46
|
_None._
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
---
|
|
2
|
-
openprd: "0.
|
|
2
|
+
openprd: "0.3"
|
|
3
3
|
id: "0042"
|
|
4
4
|
title: Id does not match
|
|
5
5
|
status: Draft
|
|
@@ -31,6 +31,15 @@ _None._
|
|
|
31
31
|
|
|
32
32
|
_None._
|
|
33
33
|
|
|
34
|
+
## Tech Stack
|
|
35
|
+
|
|
36
|
+
TypeScript on Node 22, Postgres, and the existing Cloudflare worker. No new
|
|
37
|
+
runtime.
|
|
38
|
+
|
|
39
|
+
## Monetization
|
|
40
|
+
|
|
41
|
+
Bundled into the existing Pro plan at $19/mo; no separate SKU.
|
|
42
|
+
|
|
34
43
|
## Success Metrics
|
|
35
44
|
|
|
36
45
|
_None._
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
---
|
|
2
|
+
openprd: "0.3"
|
|
3
|
+
id: "0001"
|
|
4
|
+
title: Omit the monetization section
|
|
5
|
+
status: Draft
|
|
6
|
+
authors:
|
|
7
|
+
- anthony@profullstack.com
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
## Problem
|
|
11
|
+
|
|
12
|
+
The thing is broken and it costs us money every week.
|
|
13
|
+
|
|
14
|
+
## Goals
|
|
15
|
+
|
|
16
|
+
_None._
|
|
17
|
+
|
|
18
|
+
## Non-Goals
|
|
19
|
+
|
|
20
|
+
_None._
|
|
21
|
+
|
|
22
|
+
## Users
|
|
23
|
+
|
|
24
|
+
_None._
|
|
25
|
+
|
|
26
|
+
## Requirements
|
|
27
|
+
|
|
28
|
+
- R1 [P0] First required capability.
|
|
29
|
+
|
|
30
|
+
## UX Notes
|
|
31
|
+
|
|
32
|
+
_None._
|
|
33
|
+
|
|
34
|
+
## Tech Stack
|
|
35
|
+
|
|
36
|
+
_None._
|
|
37
|
+
|
|
38
|
+
## Success Metrics
|
|
39
|
+
|
|
40
|
+
_None._
|
|
41
|
+
|
|
42
|
+
## Risks & Open Questions
|
|
43
|
+
|
|
44
|
+
_None._
|
|
45
|
+
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
---
|
|
2
|
-
openprd: "0.
|
|
2
|
+
openprd: "0.3"
|
|
3
3
|
id: "0001"
|
|
4
4
|
title: Missing a section
|
|
5
5
|
status: Draft
|
|
@@ -27,6 +27,15 @@ _None._
|
|
|
27
27
|
|
|
28
28
|
_None._
|
|
29
29
|
|
|
30
|
+
## Tech Stack
|
|
31
|
+
|
|
32
|
+
TypeScript on Node 22, Postgres, and the existing Cloudflare worker. No new
|
|
33
|
+
runtime.
|
|
34
|
+
|
|
35
|
+
## Monetization
|
|
36
|
+
|
|
37
|
+
Bundled into the existing Pro plan at $19/mo; no separate SKU.
|
|
38
|
+
|
|
30
39
|
## Success Metrics
|
|
31
40
|
|
|
32
41
|
_None._
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
---
|
|
2
|
-
openprd: "0.
|
|
2
|
+
openprd: "0.3"
|
|
3
3
|
id: "0001"
|
|
4
4
|
status: Draft
|
|
5
5
|
authors:
|
|
@@ -30,6 +30,15 @@ _None._
|
|
|
30
30
|
|
|
31
31
|
_None._
|
|
32
32
|
|
|
33
|
+
## Tech Stack
|
|
34
|
+
|
|
35
|
+
TypeScript on Node 22, Postgres, and the existing Cloudflare worker. No new
|
|
36
|
+
runtime.
|
|
37
|
+
|
|
38
|
+
## Monetization
|
|
39
|
+
|
|
40
|
+
Bundled into the existing Pro plan at $19/mo; no separate SKU.
|
|
41
|
+
|
|
33
42
|
## Success Metrics
|
|
34
43
|
|
|
35
44
|
_None._
|
|
@@ -24,6 +24,15 @@ _None._
|
|
|
24
24
|
|
|
25
25
|
_None._
|
|
26
26
|
|
|
27
|
+
## Tech Stack
|
|
28
|
+
|
|
29
|
+
TypeScript on Node 22, Postgres, and the existing Cloudflare worker. No new
|
|
30
|
+
runtime.
|
|
31
|
+
|
|
32
|
+
## Monetization
|
|
33
|
+
|
|
34
|
+
Bundled into the existing Pro plan at $19/mo; no separate SKU.
|
|
35
|
+
|
|
27
36
|
## Success Metrics
|
|
28
37
|
|
|
29
38
|
_None._
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
---
|
|
2
|
-
openprd: "0.
|
|
2
|
+
openprd: "0.3"
|
|
3
3
|
id: "0001"
|
|
4
4
|
title: Sections out of order
|
|
5
5
|
status: Draft
|
|
@@ -31,6 +31,15 @@ _None._
|
|
|
31
31
|
|
|
32
32
|
_None._
|
|
33
33
|
|
|
34
|
+
## Tech Stack
|
|
35
|
+
|
|
36
|
+
TypeScript on Node 22, Postgres, and the existing Cloudflare worker. No new
|
|
37
|
+
runtime.
|
|
38
|
+
|
|
39
|
+
## Monetization
|
|
40
|
+
|
|
41
|
+
Bundled into the existing Pro plan at $19/mo; no separate SKU.
|
|
42
|
+
|
|
34
43
|
## Success Metrics
|
|
35
44
|
|
|
36
45
|
_None._
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
---
|
|
2
|
-
openprd: "0.
|
|
2
|
+
openprd: "0.3"
|
|
3
3
|
id: "0001"
|
|
4
4
|
title: Superseded with no replacement
|
|
5
5
|
status: Superseded
|
|
@@ -31,6 +31,15 @@ _None._
|
|
|
31
31
|
|
|
32
32
|
_None._
|
|
33
33
|
|
|
34
|
+
## Tech Stack
|
|
35
|
+
|
|
36
|
+
TypeScript on Node 22, Postgres, and the existing Cloudflare worker. No new
|
|
37
|
+
runtime.
|
|
38
|
+
|
|
39
|
+
## Monetization
|
|
40
|
+
|
|
41
|
+
Bundled into the existing Pro plan at $19/mo; no separate SKU.
|
|
42
|
+
|
|
34
43
|
## Success Metrics
|
|
35
44
|
|
|
36
45
|
_None._
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
---
|
|
2
|
-
openprd: "0.
|
|
2
|
+
openprd: "0.3"
|
|
3
3
|
id: "0001"
|
|
4
4
|
title: Unknown front matter key
|
|
5
5
|
status: Draft
|
|
@@ -32,6 +32,15 @@ _None._
|
|
|
32
32
|
|
|
33
33
|
_None._
|
|
34
34
|
|
|
35
|
+
## Tech Stack
|
|
36
|
+
|
|
37
|
+
TypeScript on Node 22, Postgres, and the existing Cloudflare worker. No new
|
|
38
|
+
runtime.
|
|
39
|
+
|
|
40
|
+
## Monetization
|
|
41
|
+
|
|
42
|
+
Bundled into the existing Pro plan at $19/mo; no separate SKU.
|
|
43
|
+
|
|
35
44
|
## Success Metrics
|
|
36
45
|
|
|
37
46
|
_None._
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
---
|
|
2
|
-
openprd: "0.
|
|
2
|
+
openprd: "0.3"
|
|
3
3
|
id: "0002"
|
|
4
4
|
title: Use bold requirement markers
|
|
5
5
|
status: Review
|
|
@@ -31,6 +31,15 @@ _None._
|
|
|
31
31
|
|
|
32
32
|
_None._
|
|
33
33
|
|
|
34
|
+
## Tech Stack
|
|
35
|
+
|
|
36
|
+
TypeScript on Node 22, Postgres, and the existing Cloudflare worker. No new
|
|
37
|
+
runtime.
|
|
38
|
+
|
|
39
|
+
## Monetization
|
|
40
|
+
|
|
41
|
+
Bundled into the existing Pro plan at $19/mo; no separate SKU.
|
|
42
|
+
|
|
34
43
|
## Success Metrics
|
|
35
44
|
|
|
36
45
|
_None._
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
---
|
|
2
|
-
openprd: "0.
|
|
2
|
+
openprd: "0.3"
|
|
3
3
|
id: "0001"
|
|
4
4
|
title: Expand the parked-domain service
|
|
5
5
|
status: Draft
|
|
@@ -38,6 +38,15 @@ _None._
|
|
|
38
38
|
|
|
39
39
|
_None._
|
|
40
40
|
|
|
41
|
+
## Tech Stack
|
|
42
|
+
|
|
43
|
+
TypeScript on Node 22, Postgres, and the existing Cloudflare worker. No new
|
|
44
|
+
runtime.
|
|
45
|
+
|
|
46
|
+
## Monetization
|
|
47
|
+
|
|
48
|
+
Bundled into the existing Pro plan at $19/mo; no separate SKU.
|
|
49
|
+
|
|
41
50
|
## Success Metrics
|
|
42
51
|
|
|
43
52
|
_None._
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
---
|
|
2
|
+
openprd: "0.2"
|
|
3
|
+
id: "0006"
|
|
4
|
+
title: Keep a 0.2 document valid
|
|
5
|
+
status: Draft
|
|
6
|
+
authors:
|
|
7
|
+
- anthony@profullstack.com
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
## Problem
|
|
11
|
+
|
|
12
|
+
The thing is broken and it costs us money every week.
|
|
13
|
+
|
|
14
|
+
## Goals
|
|
15
|
+
|
|
16
|
+
_None._
|
|
17
|
+
|
|
18
|
+
## Non-Goals
|
|
19
|
+
|
|
20
|
+
_None._
|
|
21
|
+
|
|
22
|
+
## Users
|
|
23
|
+
|
|
24
|
+
_None._
|
|
25
|
+
|
|
26
|
+
## Requirements
|
|
27
|
+
|
|
28
|
+
- R1 [P0] First required capability.
|
|
29
|
+
|
|
30
|
+
## UX Notes
|
|
31
|
+
|
|
32
|
+
_None._
|
|
33
|
+
|
|
34
|
+
## Success Metrics
|
|
35
|
+
|
|
36
|
+
_None._
|
|
37
|
+
|
|
38
|
+
## Risks & Open Questions
|
|
39
|
+
|
|
40
|
+
_None._
|
|
41
|
+
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
---
|
|
2
|
-
openprd: "0.
|
|
2
|
+
openprd: "0.3"
|
|
3
3
|
id: "0001"
|
|
4
4
|
title: Expand the parked-domain service
|
|
5
5
|
status: Draft
|
|
@@ -31,6 +31,14 @@ _None._
|
|
|
31
31
|
|
|
32
32
|
_None._
|
|
33
33
|
|
|
34
|
+
## Tech Stack
|
|
35
|
+
|
|
36
|
+
_None._
|
|
37
|
+
|
|
38
|
+
## Monetization
|
|
39
|
+
|
|
40
|
+
_None._
|
|
41
|
+
|
|
34
42
|
## Success Metrics
|
|
35
43
|
|
|
36
44
|
_None._
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
---
|
|
2
|
-
openprd: "0.
|
|
2
|
+
openprd: "0.3"
|
|
3
3
|
id: "0005"
|
|
4
4
|
title: Keep every section even when empty
|
|
5
5
|
status: Accepted
|
|
@@ -31,6 +31,14 @@ _None._
|
|
|
31
31
|
|
|
32
32
|
_None._
|
|
33
33
|
|
|
34
|
+
## Tech Stack
|
|
35
|
+
|
|
36
|
+
_None._
|
|
37
|
+
|
|
38
|
+
## Monetization
|
|
39
|
+
|
|
40
|
+
_None._
|
|
41
|
+
|
|
34
42
|
## Success Metrics
|
|
35
43
|
|
|
36
44
|
_None._
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
---
|
|
2
|
-
openprd: "0.
|
|
2
|
+
openprd: "0.3"
|
|
3
3
|
id: "0003"
|
|
4
4
|
title: Organize a long requirements section
|
|
5
5
|
status: Draft
|
|
@@ -37,6 +37,15 @@ _None._
|
|
|
37
37
|
|
|
38
38
|
_None._
|
|
39
39
|
|
|
40
|
+
## Tech Stack
|
|
41
|
+
|
|
42
|
+
TypeScript on Node 22, Postgres, and the existing Cloudflare worker. No new
|
|
43
|
+
runtime.
|
|
44
|
+
|
|
45
|
+
## Monetization
|
|
46
|
+
|
|
47
|
+
Bundled into the existing Pro plan at $19/mo; no separate SKU.
|
|
48
|
+
|
|
40
49
|
## Success Metrics
|
|
41
50
|
|
|
42
51
|
_None._
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
---
|
|
2
|
-
openprd: "0.
|
|
2
|
+
openprd: "0.3"
|
|
3
3
|
id: "0004"
|
|
4
4
|
title: Retire the old flow
|
|
5
5
|
status: Superseded
|
|
@@ -32,6 +32,15 @@ _None._
|
|
|
32
32
|
|
|
33
33
|
_None._
|
|
34
34
|
|
|
35
|
+
## Tech Stack
|
|
36
|
+
|
|
37
|
+
TypeScript on Node 22, Postgres, and the existing Cloudflare worker. No new
|
|
38
|
+
runtime.
|
|
39
|
+
|
|
40
|
+
## Monetization
|
|
41
|
+
|
|
42
|
+
Bundled into the existing Pro plan at $19/mo; no separate SKU.
|
|
43
|
+
|
|
35
44
|
## Success Metrics
|
|
36
45
|
|
|
37
46
|
_None._
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
{
|
|
2
|
+
"openwall": "0.1-draft",
|
|
3
|
+
"id": "urn:uuid:5bb154dd-edb3-47b7-8fc6-4cb65a19a9f8",
|
|
4
|
+
"sender": "did:web:ops.example",
|
|
5
|
+
"createdAt": "2026-09-13T12:00:00Z",
|
|
6
|
+
"expiresAt": "2026-09-20T12:00:00Z",
|
|
7
|
+
"visibility": "public",
|
|
8
|
+
"topic": "releases",
|
|
9
|
+
"audience": {
|
|
10
|
+
"kind": "public"
|
|
11
|
+
},
|
|
12
|
+
"content": {
|
|
13
|
+
"mediaType": "text/plain",
|
|
14
|
+
"text": "Version 1.2 is available."
|
|
15
|
+
}
|
|
16
|
+
}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
{
|
|
2
|
+
"openwall": "0.1-draft",
|
|
3
|
+
"id": "urn:uuid:94d908df-2876-48f1-bec8-c931f5c847d4",
|
|
4
|
+
"sender": "did:web:ops.example",
|
|
5
|
+
"createdAt": "2026-09-13T12:00:00Z",
|
|
6
|
+
"expiresAt": "2026-09-13T12:10:00Z",
|
|
7
|
+
"visibility": "private",
|
|
8
|
+
"topic": "maintenance",
|
|
9
|
+
"audience": {
|
|
10
|
+
"kind": "relationships",
|
|
11
|
+
"selectors": [
|
|
12
|
+
{
|
|
13
|
+
"source": "https://dev.example/contacts",
|
|
14
|
+
"actor": "did:web:ops.example",
|
|
15
|
+
"groups": [
|
|
16
|
+
"users"
|
|
17
|
+
],
|
|
18
|
+
"scope": "https://dev.example/workspaces/main"
|
|
19
|
+
}
|
|
20
|
+
],
|
|
21
|
+
"exclude": []
|
|
22
|
+
},
|
|
23
|
+
"content": {
|
|
24
|
+
"mediaType": "text/plain",
|
|
25
|
+
"text": "SERVER NOTICE\nMaintenance starts in 10 minutes.\nPlease save your work and pause running jobs."
|
|
26
|
+
}
|
|
27
|
+
}
|