shiply-cli 0.14.4 → 0.15.0
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/dist/contract.js +143 -0
- package/dist/domain.js +64 -31
- package/dist/index.js +65 -0
- package/dist/psl.data.js +6943 -0
- package/package.json +1 -1
- package/skill/SKILL.md +51 -1
package/package.json
CHANGED
package/skill/SKILL.md
CHANGED
|
@@ -18,7 +18,7 @@ description: Publish static sites to the web instantly with shiply.now and manag
|
|
|
18
18
|
> fresh — your cached copy may be missing features like databases, projects,
|
|
19
19
|
> marketplace, or sending domains.
|
|
20
20
|
>
|
|
21
|
-
> **Last updated: 2026-06-
|
|
21
|
+
> **Last updated: 2026-06-21**
|
|
22
22
|
|
|
23
23
|
---
|
|
24
24
|
|
|
@@ -493,6 +493,56 @@ CLI: `shiply project ls · shiply project create <label> [--customer-email <e>]
|
|
|
493
493
|
|
|
494
494
|
Docs: https://shiply.now/docs/projects
|
|
495
495
|
|
|
496
|
+
## Contracts — draft, sign, amend (extends Projects)
|
|
497
|
+
|
|
498
|
+
Once a project reaches `brief_ready`, the dev drafts a signed contract from
|
|
499
|
+
the brief, the customer e-signs in the portal (typed-name + checkbox), and
|
|
500
|
+
the dev amends it later as scope evolves. A signed contract is immutable
|
|
501
|
+
— any change is a new amendment row chained off the parent. The portal
|
|
502
|
+
sends the customer; the dev can resend / remind / retract. A 7-day
|
|
503
|
+
reminder cron nudges unsigned contracts automatically.
|
|
504
|
+
|
|
505
|
+
MCP tools:
|
|
506
|
+
```
|
|
507
|
+
contract_draft — draft a contract from a brief_ready project (returns the new contract id)
|
|
508
|
+
contract_send — flip status='sent', fire customer email (parent OR amendment)
|
|
509
|
+
contract_amend — create an amendment draft on a SIGNED parent (scopeDelta required, fee + date optional)
|
|
510
|
+
contract_status — read state + amendments (poll this to see status='signed')
|
|
511
|
+
contract_pdf — base64-encoded signed PDF (parent + cert + signed amendments)
|
|
512
|
+
```
|
|
513
|
+
|
|
514
|
+
Edit-before-send today is REST-only: `PATCH /api/v1/contracts/{id}` lets
|
|
515
|
+
the dev tweak the 8 fields (scopeSummary, feeCents, currency, dates,
|
|
516
|
+
revisionCount, revisionOverageCents, jurisdiction). After PATCH, call
|
|
517
|
+
`contract_send` to fire it. Amendments are sent the same way (call
|
|
518
|
+
`contract_send` with the amendment id returned by `contract_amend`).
|
|
519
|
+
|
|
520
|
+
Example agent flow (draft → tweak fee → send → poll → amend):
|
|
521
|
+
1. `contract_draft({projectId})` → returns `{id, scopeSummary, feeCents:null, ...}`
|
|
522
|
+
2. `PATCH /api/v1/contracts/{id}` `{feeCents: 450000}` (Bearer key)
|
|
523
|
+
3. `contract_send({contractId: id})` → project flips to `contract_sent`
|
|
524
|
+
4. Poll `contract_status({contractId: id})` until `contract.status === 'signed'`
|
|
525
|
+
5. `contract_amend({parentContractId: id, scopeDelta: "Add login flow", feeDeltaCents: 50000})` → returns the amendment row
|
|
526
|
+
6. `contract_send({contractId: amendment.id})` (no PATCH needed if the amend fields are right)
|
|
527
|
+
|
|
528
|
+
REST (Bearer for dev, portal cookie for customer):
|
|
529
|
+
`POST /api/v1/projects/{id}/contracts` (draft) ·
|
|
530
|
+
`GET/PATCH /api/v1/contracts/{id}` (read either-party / dev edit) ·
|
|
531
|
+
`POST /api/v1/contracts/{id}/send` (dev) ·
|
|
532
|
+
`POST /api/v1/contracts/{id}/view` (customer ping) ·
|
|
533
|
+
`POST /api/v1/contracts/{id}/sign` (customer e-sign) ·
|
|
534
|
+
`POST /api/v1/contracts/{id}/retract` (dev; `?recoverAsDraft=true` to
|
|
535
|
+
recover the draft instead of voiding) ·
|
|
536
|
+
`POST /api/v1/contracts/{id}/amend` (dev; signed parents only) ·
|
|
537
|
+
`POST /api/v1/contracts/{id}/remind` ·
|
|
538
|
+
`POST /api/v1/contracts/{id}/resend` (manual nudges, rate-limited 3/24h) ·
|
|
539
|
+
`GET /api/v1/contracts/{id}/pdf` (binary, signed only).
|
|
540
|
+
|
|
541
|
+
`contract_pdf` returns `{filename, contentType:"application/pdf", base64,
|
|
542
|
+
byteLength}` so the MCP client can decode and save the bytes.
|
|
543
|
+
|
|
544
|
+
Docs: https://shiply.now/docs/contracts
|
|
545
|
+
|
|
496
546
|
## Marketplace — sell built sites
|
|
497
547
|
|
|
498
548
|
Devs can list any owned site for sale: set a price + short pitch, choose
|