featureparity 0.0.21 → 0.0.23

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.
@@ -36,7 +36,7 @@ fp projects # list
36
36
  fp projects --json
37
37
  fp projects show <slug> # details + surfaces
38
38
  fp projects create <slug> --name "Name" [--description "..."] [--surfaces api,web]
39
- fp projects edit <slug> [--name "..."] [--description "..."]
39
+ fp projects edit <slug> [--name "..."] [--description "..."] [--showroom-welcome "..." | --showroom-welcome-file PATH]
40
40
  fp projects delete <slug> [--yes]
41
41
  ```
42
42
 
@@ -62,6 +62,7 @@ fp surfaces --project stowzilla --json
62
62
  fp surfaces show <key> --project stowzilla
63
63
  fp surfaces add <key> --project stowzilla [--name "..."] [--kind api|web|android|ios|other] [--audience ...] [--repo org/repo] [--default-branch main]
64
64
  fp surfaces edit <key> --project stowzilla [--name "..."] [--kind ...] [--audience ...] [--repo ...] [--default-branch ...] [--key new_key]
65
+ fp surfaces edit <key> --project stowzilla [--showroom-url URL] [--showroom-label "..."] [--showroom-instructions "..." | --showroom-instructions-file PATH] [--showroom-position N]
65
66
  fp surfaces delete <key> --project stowzilla [--yes]
66
67
  ```
67
68
 
@@ -74,6 +75,68 @@ A surface that requirements still require can't be deleted or re-keyed — the s
74
75
  refuses and names them. Taking a surface off a requirement is a human's call, so ask
75
76
  one rather than working around it.
76
77
 
78
+ ### fp showroom
79
+
80
+ The client showroom is the one page a client of the project sees: the project's
81
+ welcome note and a gallery of screenshots or videos under it, then a card per surface
82
+ with a link, a button label, instructions for signing in and trying it, and its own
83
+ media. The team's agents keep that content; this command
84
+ shows the result.
85
+
86
+ ```bash
87
+ fp showroom --project stowzilla # what a client sees, plus which surfaces are hidden and why
88
+ fp showroom --project stowzilla --json # { showroom, hidden, share_link }; showroom.gallery and each surface's media
89
+ ```
90
+
91
+ Writing the content:
92
+
93
+ ```bash
94
+ fp projects edit stowzilla --showroom-welcome "Hi Sam, here's what we built."
95
+ fp projects edit stowzilla --showroom-welcome-file docs/showroom/welcome.txt
96
+ fp surfaces edit web --project stowzilla \
97
+ --showroom-url https://dev.example.com \
98
+ --showroom-label "Open the web app" \
99
+ --showroom-instructions-file docs/showroom/web.txt
100
+ fp surfaces edit ios --project stowzilla --showroom-url "" --showroom-instructions "" # take the card down
101
+ fp surfaces edit web --project stowzilla --showroom-position 1 # clients see web first
102
+ fp surfaces edit web --project stowzilla --showroom-position "" # back to alphabetical
103
+ ```
104
+
105
+ Media — screenshots and videos on a surface's card, or in the project gallery under the
106
+ welcome note when `--surface` is omitted:
107
+
108
+ ```bash
109
+ fp showroom media --project stowzilla # gallery, then each surface in showroom order: id, kind, file, caption, position
110
+ fp showroom media --project stowzilla --json # { media: [...each with surface_key (null = gallery)], project }
111
+ fp showroom media add e2e/results/checkout.webm --project stowzilla --surface web \
112
+ --caption "Checking out with a saved card" --position 1
113
+ fp showroom media add docs/showroom/overview.png --project stowzilla # the gallery
114
+ fp showroom media edit <id> --project stowzilla --caption "New words" --position 2
115
+ fp showroom media edit <id> --project stowzilla --caption "" --position "" # clear the caption, move it last
116
+ fp showroom media remove <id> --project stowzilla --yes
117
+ ```
118
+
119
+ Accepted: png, jpg/jpeg, gif, webp, mp4, webm, mov, up to 100 MB. Anything else — SVG
120
+ (it can carry script) and PDF included — is refused with the reason before anything is
121
+ sent, as is a `--position` that isn't a whole number of 1 or more. Within a card or the
122
+ gallery, positions run 1..n with no gaps: `--position N` puts the item at slot N and
123
+ shifts the others, an empty `--position` moves it to the end, and `add` without one
124
+ appends. `remove`
125
+ asks you to type the filename back in a terminal and refuses non-interactively without
126
+ `--yes`.
127
+
128
+ A surface is on the showroom once it has a link, instructions, or media, and leaves it
129
+ when all three are empty; there is no separate on/off switch, so `fp showroom` lists the hidden
130
+ surfaces so a card that dropped out is noticed. Links must be `http://` or `https://`
131
+ (the CLI checks before sending). The `-file` variants are for anything longer than a
132
+ line: the showroom keeps line breaks, so write real paragraphs. Only the flags you pass
133
+ are sent.
134
+
135
+ Two things are deliberately not available to an agent's key: leaving feedback (that is
136
+ the client talking) and turning the share link on or off (publishing a link anyone can
137
+ open is a person's decision). `fp showroom` reports the share link as `unknown` for
138
+ that reason; a human checks it under Project Settings → Showroom in the web app.
139
+
77
140
  ### fp list
78
141
 
79
142
  List requirements.
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: featureparity
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.21
4
+ version: 0.0.23
5
5
  platform: ruby
6
6
  authors:
7
7
  - Stowzilla
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2026-10-20 00:00:00.000000000 Z
11
+ date: 2026-10-21 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: net-http
@@ -119,6 +119,8 @@ files:
119
119
  - lib/fp/commands/repos.rb
120
120
  - lib/fp/commands/setup.rb
121
121
  - lib/fp/commands/show.rb
122
+ - lib/fp/commands/showroom.rb
123
+ - lib/fp/commands/showroom_media.rb
122
124
  - lib/fp/commands/surfaces.rb
123
125
  - lib/fp/commands/version.rb
124
126
  - lib/fp/commands/whoami.rb