mirror of
https://github.com/profullstack/logicsrc.git
synced 2026-10-01 20:33:50 +00:00
Fix CI: number the PRD requirements and advance the next-id assertion
Two checks the new PRD tripped, both by existing rather than by being wrong. The collection validator wants requirements as numbered R# entries and 0006 used a plain ordered list, so it reported OP-L-NO-REQUIREMENTS. Rewritten as R1 to R7 with priorities, one capability per entry, and the implementation tracking moved to a paragraph under them where it is not pretending to be a requirement. The MCP standards test asserts what the next free PRD id is, and its own comment says that advances with every PRD added. Adding 0006 makes it 0007. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01SKAohrRkqLKVQL2cGCAkR5
This commit is contained in:
parent
06858c7690
commit
f6725a2f88
2 changed files with 38 additions and 29 deletions
|
|
@ -203,7 +203,7 @@ describe("MCP: OpenPRD", () => {
|
|||
it("reports the next free id and the allowed lifecycle moves", async () => {
|
||||
const client = await connect();
|
||||
// Asserted against the live prd/ directory, so this advances with every PRD added.
|
||||
expect(toolText(await client.callTool({ name: "prd_next_id", arguments: {} }))).toBe("0006");
|
||||
expect(toolText(await client.callTool({ name: "prd_next_id", arguments: {} }))).toBe("0007");
|
||||
|
||||
const moves = await client.callTool({ name: "prd_next_statuses", arguments: { ref: "0001" } });
|
||||
const payload = JSON.parse(toolText(moves)) as { status: string; allowedNext: string[] };
|
||||
|
|
|
|||
|
|
@ -155,34 +155,43 @@ arrives.
|
|||
|
||||
## Requirements
|
||||
|
||||
1. `docs/openswarm/pay2seed.md` and `paid2seed.md` together specify: the attestation record and
|
||||
basis table; the claim window and requester standing; the offer record,
|
||||
its purchase over x402, and its lifecycle; public swarms, public feeds
|
||||
on `ipdb`, private swarms; the lease record and slot rules; storage
|
||||
challenges and probes; GiB-month accrual, receipts and payout through
|
||||
`ippay`; the hub record extension and API; seeder client behaviour;
|
||||
notices and takedown; the `ipfile.pin` mapping; events; conformance.
|
||||
1b. `docs/openswarm/pay2stream.md` and `paid2stream.md` specify the
|
||||
same for a live channel over `iplive`: consent for channels with the
|
||||
two rules for licensed feeds; relay offers per relay-hour with a
|
||||
gateway bonus; tickets and listings; presence proofs and the
|
||||
served-bytes ratio; gateways serving standard HLS in clear and sealed
|
||||
modes with an M3U and XMLTV EPG, so any IPTV player works with no new
|
||||
client; gateway-bound vouchers; stopping on a void.
|
||||
2. `docs/openswarm.md` lists the four in the family table, the stack
|
||||
diagram, "What it defines" and "What already exists".
|
||||
3. `docs/openswarm/spec.md` §11 registers the `pay2seed.*`, `paid2seed.*`, `pay2stream.*` and `paid2stream.*` record
|
||||
types and their signers.
|
||||
4. `docs/openswarm/cli.md` gains the `ip seed` and `ip stream` command groups.
|
||||
5. The `/openswarm` page on logicsrc.com lists the four among the
|
||||
protocols.
|
||||
6. Implementations, tracked outside this repo:
|
||||
- bittorrented.com (`profullstack/media-streamer`): the reference hub.
|
||||
- torlink (`baairon/torlink`, via the `ralyodio` fork): the seeder
|
||||
client. Per-torrent seed time (#186) is the first piece.
|
||||
- `@profullstack/pay2seed`: the shared client (hub calls, records,
|
||||
signing) and the promo surfaces the Profullstack media sites embed.
|
||||
- c0mpute: `ipfile.pin` interop per §11.
|
||||
- R1 [P0] Define `pay2seed`, the client half: the attestation record and
|
||||
basis table, the mandatory README and its hash, the claim window and
|
||||
requester standing, the offer record and its purchase over x402, the
|
||||
offer lifecycle, public swarms, public `ipdb` feeds and private swarms,
|
||||
the hub record extension, the requester API, notices and takedown.
|
||||
- R2 [P0] Define `paid2seed`, the server half: the lease record and slot
|
||||
rules, storage challenges and wire probes, GiB-month accrual, receipts
|
||||
and payout through `ippay`, the seeder API and client behaviour, seeder
|
||||
and requester standing, the `ipfile.pin` mapping, events, conformance.
|
||||
- R3 [P0] Define `pay2stream`, the client half for live: consent for
|
||||
channels with the two rules that separate a licensed rebroadcast from a
|
||||
stolen feed, relay offers per relay-hour with a gateway bonus, tickets
|
||||
and listings, watching as a peer or on any HLS player.
|
||||
- R4 [P0] Define `paid2stream`, the server half for live: relay leases,
|
||||
presence proofs and the served-bytes ratio, gateways serving standard
|
||||
HLS in clear and sealed modes with an M3U and XMLTV EPG so any IPTV
|
||||
player works with no new client, gateway-bound vouchers, stopping on a
|
||||
void.
|
||||
- R5 [P0] Specify encryption by default and access as the product: teams
|
||||
with roles and scopes, invitations that expire, member grants issued by
|
||||
the hub as keeper, re-encryption on removal, per-seat pricing, the 1
|
||||
percent fee on payments that cross the hub, and the advertisement that
|
||||
pays for public swarms.
|
||||
- R6 [P1] Say that a requester is a key rather than a person, so an
|
||||
autonomous agent can attest, price access, sell tickets and be paid,
|
||||
under the same consent rules and with a responsible operator key named
|
||||
on public attestations.
|
||||
- R7 [P1] Wire the family into the repo: `docs/openswarm.md` family table,
|
||||
stack diagram and "what already exists"; `spec.md` §11 record type
|
||||
registry; the `ip seed` and `ip stream` command groups in `cli.md`; and
|
||||
the four protocols listed on the `/openswarm` page.
|
||||
|
||||
Implementations are tracked outside this repo: bittorrented.com
|
||||
(`profullstack/media-streamer`) as the reference hub; torlink
|
||||
(`baairon/torlink`, via the `ralyodio` fork) as the seeder client, whose
|
||||
per-torrent seed time (#186) is the first piece; `@profullstack/pay2seed`
|
||||
as the shared client; and c0mpute for `ipfile.pin` interop.
|
||||
|
||||
## UX Notes
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue